Thursday, July 23, 2015

Glossary ~

*** Work In progress ***
  • ATG - Art Technology Group. ATG provides all the necessary functionalities required to create an e-commerce web application. It is currently owned by Oracle. 
  • Maven - Maven is a build automation tool used primarily for Java projects. The word maven means 'accumulator of knowledge' in Yiddish. Maven addresses two aspects of building software: First, it describes how software is built, and second, it describes its dependencies. Contrary to preceding tools like Apache Ant, it uses conventions for the build procedure, and only exceptions need to be written down. An XMLfile describes the software project being built, its dependencies on other external modules and components, the build order, directories, and required plug-ins. It comes with pre-defined targets for performing certain well-defined tasks such as compilation of code and its packaging. Maven dynamically downloads Java libraries and Maven plug-ins from one or more repositories such as the Maven 2 Central Repository, and stores them in a local cache.[4] This local cache of downloaded artifacts can also be updated with artifacts created by local projects. Public repositories can also be updated.
  • POM.xml - A Project Object Model or POM is the fundamental unit of work in Maven. It is an XML file that contains information about the project and configuration details used by Maven to build the project. It contains default values for most projects. Examples for this is the build directory, which is target; the source directory, which is src/main/java; the test source directory, which is src/test/java; and so on. 
    The POM was renamed from project.xml in Maven 1 to pom.xml in Maven 2. Instead of having a maven.xml file that contains the goals that can be executed, the goals or plugins are now configured in thepom.xml. When executing a task or goal, Maven looks for the POM in the current directory. It reads the POM, gets the needed configuration information, then executes the goal. 
    Some of the configuration that can be specified in the POM are the project dependencies, the plugins or goals that can be executed, the build profiles, and so on. Other information such as the project version, description, developers, mailing lists and such can also be specified.
  • PEBL/Jenkins - Jenkins is an open source continuous integration tool written in Java. Builds can be started by various means, including being triggered by commit in a version control system, by scheduling via a cron-like mechanism, by building when other builds have completed, and by requesting a specific build URL. We have stopped using Jenkins directly since it overwhelms users with lot of options that is not needed for a simple jar / war project. We have started using PEBL which is an easy to use in-house developed wrapper UI tool. Read more here: https://confluence.walmart.com/x/7k88Bw
  • JSON - JavaScript Object Notation, is an open standard format that uses human-readable text to transmit data objects consisting of attribute–value pairs. It is used primarily to transmit data between a server and web application, as an alternative to XML. Code for parsing and generating JSON data is readily available in many programming languages. The official Internet media type for JSON is application/json. The JSON filename extension is .json.
  • POJO - Plain Old Java Object, is a normal Java object class (that is, not a JavaBean, EntityBean etc.) and does not serve any other special role nor does it implement any special interfaces of any of the Java frameworks.
  • Jackson - Jackson Api contains a lot of functionalities to read and build json using java. It has very powerful data binding capabilities and provides a framework to serialize custom java objects to json string and deserialize json string back to java objects. 
  • JAXB  - JAXB stands for Java architecture for XML binding.It is used to convert XML to java object and java object to XML. JAXB defines an API for reading and writing Java objects to and from XML documents. There are two operations you can perform using JAXB 1. MarshallingConverting a java object to XML 2. UnMarshallingConverting a XML to java object.
  • GIT -  Git is a distributed revision control system with an emphasis on speed, data integrity, and support for distributed, non-linear workflows.
  • Apache-camel - 
  • Liquibase - 
  • CXF - 
  • Logmon -  Logging and monitoring tool
  • Mockito - Mockito is an open source Java mocking framework used for unit testing of Java code. Mockito library enables mocks creation, verification and stubbing.
  • TestNG - TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use, such as:
    • Annotations.
    • Run your tests in arbitrarily big thread pools with various policies available (all methods in their own thread, one thread per test class, etc...).
    • Test that your code is multithread safe.
    • Flexible test configuration.
    • Support for data-driven testing (with @DataProvider).
    • Support for parameters.
    • Powerful execution model (no more TestSuite).
    • Supported by a variety of tools and plug-ins (Eclipse, IDEA, Maven, etc...).
    • Embeds BeanShell for further flexibility.
    • Default JDK functions for runtime and logging (no dependencies).
    • Dependent methods for application server testing.
    TestNG is designed to cover all categories of tests:  unit, functional, end-to-end, integration, etc...
  • DTO - Data Transfer Objects don't have any logic. They only have fields (state). They are used when transferring data from one layer/subsystem to another. One use case is DTO can be sent to UI.
  • DO - Domain objects can have logic and they are usually related to the database structure. One use case is DO are used to persist in DB
  • XML - Extensible Markup Language is a markup language that defines a set of rules for encoding documents in a format which is both human-readable and machine-readable. It is used as a data carrier and to write WSDL and SOAP documents. Services are defined by WSDL, exchanged using SOAP, and validated with schemas documents (XSD)
  • XSD - XML Schema Document. Validates XML data and structure.
  • UDDI - Universal Description, Discovery and Integration is a platform-independentExtensible Markup Language (XML)-based registry by which businesses worldwide can list themselves on the Internet, and a mechanism to register and locate web service applications.
  • WSDL - The Web Services Description Language (WSDL) is an XML-based interface definition language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service, which provides a machine-readable description of how the service can be called, what parameters it expects, and what data structures it returns. It thus serves a purpose that corresponds roughly to that of a method signature in a programming language. In other words, WSDL defines the interaction or contract between set service consumers and web service. It is similar to a Java interface but written in XML. The six major sections of a WSDL document are: 
  • <definitions> Root element
        <types> Data types to be transmitted
        <message> Messages to be transmitted
        <portType> Operations / functions supported
        <binding> How the messages will be transmitted, SOAP specific details
        <service> URL/Location of the service
    </definitions>
    
  • SOAP - Simple Object Access protocol, is a protocol specification for exchanging structured information in the implementation of web services in computer networks. It uses XML Information Set for its message format, and relies on other application layer protocols, most notably Hypertext Transfer Protocol (HTTP) or Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission.
  • JSP - JavaServer Pages is a technology that helps software developers create dynamically generated web pages based on HTMLXML, or other document types. To deploy and run JavaServer Pages, a compatible web server with a servlet container, such as Apache Tomcat or Jetty, is required.
  • JSTL - The JSP syntax adds additional tags, called JSP actions, to invoke built-in functionality. Additionally, the technology allows for the creation of custom JSP tag libraries that act as extensions to the standard JSP syntax.  One such library is the JSTL, with support for common tasks such as iteration and conditionals (the equivalent of "for" and "if" statements in Java.) The JavaServer Pages Standard Tag Library (JSTL) is a component of the Java EE Web application development platform. It extends the JSP specification by adding a tag library of JSP tags for common tasks, such as XML data processing, conditional execution, database access, loops and internationalization
  •  REST - REST stands for Representational State Transfer. It relies on a stateless, client-server, cacheable communications protocol -- and in virtually all cases, the HTTP protocol is used. REST is an architecture style for designing networked applications. The idea is that, rather than using complex mechanisms such as CORBA, RPC or SOAP to connect between machines, simple HTTP is used to make calls between machines. In many ways, the World Wide Web itself, based on HTTP, can be viewed as a REST-based architecture. RESTful applications use HTTP requests to post data (create and/or update), read data (e.g., make queries), and delete data. Thus, REST uses HTTP for all four CRUD (Create/Read/Update/Delete) operations.
  • HTTP - HTTP stands for Hyper Text Transfer Protocol. Protocol means a language or mechanism for communication. So, HTTP is a way to exchange and communicate information online. The stuff you exchange and transfer in HTTP is called hypertext. (Hence the name). Hypertext is a structured form of text that has one interesting property: it contains logical links to other text. These links are called hyperlinks. A common and popular way to write hypertext is using a language called HyperText Markup Language, or HTML. HTTP has what are called methods or verbs that you can use to interact with URLs. The most common HTTP methods are GET, PUT, POST, DELETE.

2 comments:

  1. and,

    *REST* - Representational State Transfer (REST) is a software architecture style for building scalable web services. REST gives a coordinated set of constraints to the design of components in a distributed hypermedia system that can lead to a more performant and maintainable architecture. RESTful systems typically, but not always, communicate over the Hypertext Transfer Protocol with the same HTTP verbs (GET, POST, PUT, DELETE, etc.) which web browsers use to retrieve web pages and to send data to remote servers. REST interfaces usually involve collections of resources with identifiers, for example /people/paul, which can be operated upon using standard verbs, such as DELETE /people/paul.

    ReplyDelete