1. Introduction
2. Concepts

1. Introduction

This page contains informal descriptions of certain words used in the site.

2. Concepts

  1. The Atomic Consistent Isolation Durability (ACID) set of properties guarantees that a single set of data can be manipulated reliably by multiple, concurrent processes. The database transactions in a modern RDBMS are a visible mechanism that guarantees ACID.
  2. Apache Ant is a Java build scripting tool. Scripts are written in an XML language. Ref.
  3. Java Annotation - source code metadata facility . The JSR 175 defined a "Metadata Facility for the Java Programming Language" that has been introduced in Java 5. It consists of an "@" + name preceding language elements such has method names. For instance @Override indicates a method that overrides a method declared in one of the super types and allows a compiler to signal mistakes when e.g. the method changed in the superclass but the developer forgets to change the overriding method.
  4. Coherence describes how focused a class/component is, how it has as little responsibilities as possible. The "Do one thing and do it well" philosphy. A high level of cohesion is good for maintainability, reusability and testability.
  5. Business Intelligence (BI) is a name given to a set of practices, tools and technologies that provide quantified insight into the events and commercial reality of a company. It relies on metrics (KPI's), data mining, data warehouses etc. to assemble reports and views that support decision making.
  6. Breadth first traversal describes how nodes of a tree are visited, first look at all the direct descendants, the go to the next generation: root, child1, child2, grandchild11, grandchild12, grandchild21, grandchild22,...
  7. A Blocking method call is a statement containing method invocation that keeps a thread from executing the next statement until all the work in the invoked method is done. The opposite non-blocking call returns immediately. A non-blocking call needs another thread of execution to do the work, this can be by starting a new thread, delegating to another existing thread or process - in real world situations these are often remote invocations such as web services, EJB's etc.
  8. Common Object Request Broker Architecture (CORBA) is an older (1991) standard for distributed collaboration between processes, defined by the OMG . These processes can run on different computers, implemented in different programming languages etc.
  9. Customer Relationship Management (CRM) , a practice of explicitly managing communication with customers and other relations. The term is mostly identified sith tools that support that practice.
  10. Deadlock occurs when two threads - or processes - compete for two or more resources and each obtained at least one lock thereby blocking the other thread.
  11. Depth first traversal describes how nodes of a tree are visited, follow each branch of the tree until there are no more descendants: root, child1, grandchild11, grandchild12, child2, grandchild21, grandchild22,... as is opposed to breadth first traversal
  12. Document Object Model (DOM) is a term originally used for a standardized way to represent an XML document as a set of nodes (Composite Pattern), as defined by the W3C . It is also used as the term to describe the internal structure of an (x)html document as it is available to scripting languages such as JavaScript.
  13. Daylight Savings Time (DST) is the practic of advancing clocks one hour during the summer, in order to save energy. The practice is a little controversial.
  14. Data Transfer object (DTO) , is a pattern from the J2EE Design Pattern catalog. It is an object with possibly some dependend objects that can be passed around between e.g. the data layer and the business layer.
  15. Enterprise Java Bean (EJB) the basic business component in the JEE , it is a component deployed on an application server such as jBoss or Websphere.
  16. An Enterprise Service Bus (ESB) is an architecture or software product that envisages a pluggable enterprise architecture - where services and applications can be plugged in and work together easily.
  17. Enterprise Application Integration (EAI) is a set of software and systems used for integrating different applications, regardless of the fact that they were ever intended to be integrated. EAI projects have a reputation for being prohibitively expensive and not achieving their goals.
  18. Eclipse Java IDE , Eclipse is an open source, open development platform, using extensible frameworks - or plugins. It is best known as one of the most used Java IDE's, although other languages are supported.
  19. Hibernate is an Object Relational Mapping library, that is database independent - i.e. the same mapped classes can be used on a large number of RDBMS's like MySQL, Oracle, DB2, SQLServer, HSQLDB, etc. The mappings can be made using XML-files or Java annotations (both JPA or Hibernate specific ones). Hibernate is owned by jBoss. Site reference .
  20. Hyper Text Transfer Protocol (HTTP) is the communications protocol that underpins the World Wide Web , every webpage is requested and served up using messages that are defined by HTTP.
  21. Infrastructure as a Service (IaaS) is a kind of Cloud Computing offering. The others are PaaS and SaaS . The service provider typically offers virtualized OS instances to deploy the customers applications on. Amazon's EC2 for instance let's you run virtualized Linux instances.
  22. Inversion Of Control (IOC) . Configuration approach where an object does not look up or creates its own dependencies, but where the dependencies are set ("injected") by an IOC container. The Spring framework provides such a container.
  23. Java Architecture for XML Binding (JAXB) is a specification and a set of tools for describing how to represent Java objects in XML - and the reverse, how to parse XML and create corresponding Java objects from that.
  24. Java API for XML Web Services (JAX-WS) it is the successor to JAX-RPC and defines API's for working with web services in Java.
  25. Java API for XML processing (JAX-P) provides API's and implementations for XML processing, parsing and representation. Standardizing XSL-T, DOM and SAX parsing, StAX .
  26. Java API for XML Remote Procedure Call (JAX-RPC)
  27. Java API for XML Registries (JAXR) JSR-93 API for repositories of XML metadata. An example is as a way to access UDDI servers or ebXML repositories.
  28. Streaming API for XML (StAX) an iterator style approach to accessing XML data. Code "pulls" the next node instead of being fed a node (SAX) or looking it up in a tree structure (DOM).
  29. Java Enterprise Edition (JEE) A set of API's and specifications that define a set of services available on a JEE application server. It includes EJB's, Servlets, JSP, JSF, JMS, JavaMail, distributed transactions and so on.
  30. Java Persistence API (JPA) is the result of the JSR 220 and is heavily influenced by Hibernate . The API is included in the javax.persistence packages for JEE 5 and is available separately with Hibernate for instance.
  31. Java Speech API (JSAPI) defines a Java API for voice command and control, dictation systems and speech synthesizers.
  32. Java Server Pages (JSP) is a standard UI layer technology of the Java Enterprise Edition. Simply put, they can be seen as dynamic, html templates.
  33. Java Virtual Machine (JVM) . A JVM is a program that is capable of running Java Bytecode and that implements Sun's JVM specification. Since these specifications are well defined and documented, several implementations exist open sourced or not and from different vendors. And above all, on most operating systems.
  34. Loosely Coupled is the quality of a system/class/component to have few outside dependencies. A system made of highly cohesive components is probably also loosely coupled.
  35. Luntbuild is a build automation and management tool with a web based user interface. Ref.
  36. Message Oriented Middleware (MoM) , software infrastructure that relies on message queues to deliver messages to message consumers, mostly asynchronously, reliably and in a point-to-point or publish-subscribe fashion. Well known examples are Websphere MQ, jBossMQ, Apache's ActiveMQ etc.
  37. Model-View-Controller (MVC) is the pattern - originally introduced in Smalltalk-80 - where business logic is separated from representation (View - the visual rendering) and input validation and command invocation (Controller). The term MVC has been applied to libraries as a design pattern (e.g. in Swing), to web applications as an architectural pattern (MVC2, JEE, Struts,...).
  38. Object Management Group (OMG) is a consortium that is best known for its standardization of, amongst other things, CORBA , MDA and UML.
  39. Object Orientation (OO)
  40. Object Orientation Analysis and Design (OOAD)
  41. Mutex or mutual exclusion is the name for an algorithm for protecting critical sections where concurrent access of a shared resource might cause problems. Mutex sometimes refers to the lock or monitor used to implement the mutual exclusion.
  42. Platform as a Service (PaaS) is a kind of Cloud Computing offering. The others are SaaS and IaaS . The service provider offers a programming platform. Google App Engine e.g. offers a Java VM as platform.
  43. Plain Old Java Object (POJO) describes a simple class. Often frameworks and programming models such as EJB's require a special runtime dependency (e.g. an application server) or depend on a lot of other third party classes. This can make it difficult to test or reuse such classes. There is no real definition of POJO, but I would describe it as a simple class with no external dependencies (outside of Java SE or more strictly, java.lang and java.util).
  44. Refactoring is a set of small transformations of code, where the structure is changed without affecting the behavior. The transformations are done to improve the overall quality of the code base. Refactoring was introduced by Martin Fowler in his book Refactoring: Improving the Design of Existing Code , there is a dedicated website .
  45. A Regular Expression is text pattern matching description expressed in a powerfull formal language. It is used to find occurrences of certain patterns in a text, the expression "t[aio]p" would match words like "tap", "tip", "top" but also the first three letters of "tapas". A good introduction can be found at regular-expressions.info , a more thorough book is available from O'Reilly.
  46. Remote Method Invocation (RMI) is a standard Java API for distibuted inter process collaboration. Current versions work on top of CORBA also known as RMI-IIOP (Internet Inter-ORB Protocol). It works by making a local instance available over the network to other processes.
  47. Remote Procedure Call (RPC) is generic term for distributed, inter-process communication. Examples are SOAP and CORBA .
  48. SOAP with Attachments API for Java (SAAJ) JSR-67 API for sending XML documents over SOAP. It offers a document centric or message style alternative to JAX-RPC for remote service interaction.
  49. Software as a Service (SaaS) is a kind of Cloud Computing offering. The others are PaaS and IaaS . The service provider lets you use software hosted on their application servers.
  50. Separation of concerns is related to coherence. It describes how good different concerns -behaviors or features- are separated by encapsulation into different classes or modules.
  51. Apache ServiceMix is an Open Source ESB implementation. Apache Foundation
  52. Service Oriented Architecture (SOA) is an architecture where applications use different services as building blocks and services are autonomous and easily reusable. SOA is often associated with SOAP over HTTP, but this is not a fundamental requirement.
  53. Simple Object Access Protocol (SOAP) is protocol for distributed inter-process collaboration - or RPC . The difference with most other such protocols is that it builds on widely available technologies such as HTTP and XML. The advantage is that using HTTP allows for RPC over different networks without having to open special ports, since port 80 is by default open for web browsing. Similarly, XML parsers are available for most programming languages and helped adoption of the protocol.
  54. Spring MVC is part of the Spring Framework from SpringSource . It is an MVC2 framework comparable to Struts etc.
  55. Swing is a standard GUI toolkit for java , it is build on AWT and Java2D and is platform independent.
  56. Graphical User Interface (GUI) or User Interface (UI) is the collection of widgets such as buttons and text fields together with some code that lets a user interact with a software system.
  57. Coordinated Universal Time (UTC) UTC is standardized and artificial time, maintained by the International Bureau of Weights and Measures (BIPM) that replaced Greenwich Mean Time (GMT) as an international standard in 1972. For practical purposes, both express the solar time at the 0° - or prime - meridian, that passes through Greenwich, UK.
  58. World Wide Web Consortium (W3C or W3) is the organization that manages the official standards of the web: (x)html, xml, CSS, and much, much more. Their website is here
  59. Web Service Description Language (WSDL) is an XML language for specifying web services. It is not officially part of SOAP , but it is closely related.
  60. XML Schema (sometimes unofficially XSD) defines the structure of other XML documents. It is itself an XML vocabulary . It is similar in purpose to DTD or RelaxNG . It has been criticised as being too complex, but it is the official W3C recommendation (standard) and it allows for fain grained control of types and values (strongly typed).
  61. eXtensible Stylesheet Language - Transformations (XSL-T) one part of the XML related stylesheet language, that allows for an XML document to be processed and changed into another XML document, with a different structure. The target document does not necessarily have to be XML, it can be any text based document. The 'Stylesheet' in the name comes from the initial intention to use it in conjunction with XSL-FO for purely representational goals - rendering and formatting.