Java Technology Terminology

JavaServer Pages, JPA, EJB, JAX-RS and Servlets --Java technology names and acronyms can be confusing for newcomers and experienced developers. This article defines the most common Java terminology in easy-to-scan.  

Java Terminology Definition
Java Persistence API The Java Persistence API provides a POJO persistence model for object-relational mapping. More info
Enterprise JavaBeans (EJB) EJB is a server-side specification that handles business logic such as persistence, transactional integrity, and security in a standardized way
JAX-RS JAX-RS is a Java API for RESTful Services. It supports the creation of web services using Representational State Transfer (REST) architecture. JAX-RS provides annotations to help with mapping a resource class (POJO) as a web resource
Abstract Window Toolkit (AWT) AWT is a package of classes for creating components such as buttons, menus, and scrollbars for applets and standalone applications.
Applet An applet is a Java program that runs within the web browser. Applets use a graphical user interface and may have text, images, buttons, scrollbars, and sound.
HotSpot VM

On platforms typically used for client applications, the JDK comes with a VM implementation called the Java HotSpot Client VM (client VM). The client VM is tuned for reducing start-up time and memory footprint. It can be invoked by using the -client command-line option when launching an application. The JDK also comes with an implementation of the Java virtual machine called the Java HotSpot Server VM (server VM). The server VM is designed for maximum program execution speed. It can be invoked by using the -server command-line option when launching an application.

Java Advanced Imaging (JAI) API The JAI API provides a set of object-oriented interfaces that support a simple, high-level programming model which lets you manipulate images easily, and JAI broadens the reach of the Java platform to allow sophisticated, high performance image processing functionality to be incorporated into Java applets and applications.
Java API The Java Application Programming Interface (API) is prewritten code, organized into packages of similar topics. For instance, the Applet and AWT packages include classes for creating fonts, menus, and buttons. 
Java API for XML Processing (JAXP) JAXP enables applications to parse validate and transform XML documents. The latest release is JAXP 1.3, which is part of J2SE 5.0. An implementation that works for earlier versions of J2SE is also available.
Java Authentication and Authorization Services (JAAS) JAAS is a set of APIs that enable services to authenticate and enforce access controls upon users. It implements a Java technology version of the standard Pluggable Authentication Module (PAM) framework, and supports user-based authorization.
Java Communications API The Java Communications API can be used to write platform-independent communications applications for technologies such as voice mail, fax, and smart cards.
Java Cryptography Extension (JCE) JCE is a set of packages that provides a framework and implementations for encryption, key generation and key agreement, and Message Authentication Code (MAC) algorithms. Support for encryption includes symmetric, asymmetric, block, and stream ciphers. The software also supports secure streams and sealed objects.
Java Foundation Classes (JFC) JFC are a set of GUI components and other services simplifying the development and deployment of desktop and Internet/Intranet applications. The JFC are a superset that contains AWT. JFC extends AWT by adding many components and services. JFC consists of Swing, Java 2D, AWT, Accessibility, and the Drag-and-Drop APIs.
Java Media FrameWork (JMF) JMF enables audio, video and other time-based media to be added to applications and applets built on Java technology. This optional package, which can capture, playback, stream, and transcode multiple media formats, extends the Java platform for multimedia developers by providing a powerful toolkit to develop scalable, cross-platform technology.
Java Native Interface (JNI) JNI is the native programming interface for Java that is part of the JDK. The JNI allows Java code to operate with applications and libraries written in other languages, such as C, C++, and assembly. Recommended only for advanced programmers.
Java 3D API The Java 3D API provides a set of object-oriented interfaces that support a simple, high-level programming model you can use to build, render, and control the behavior of 3D objects and visual environments. With the Java 3D API, you can incorporate high-quality, scalable, platform-independent 3D graphics into applications and applets based on Java technology.
Java Virtual Machine 1 (JVM) The JVM executes instructions that a Java compiler generates. This runtime environment, or JVM, is embedded in various products, such as web browsers, servers, and operating systems.
Java Web Start Using Java Web Start technology, standalone Java software applications can be deployed with a single click over the network. Java Web Start ensures the most current version of the application will be deployed, as well as the correct version of the Java Runtime Environment (JRE).
JavaBeans JavaBeans architecture provides a way of designing reusable software components, that can be visually manipulated in builder tools. JavaBeans can be simple like buttons, or more complex like a tool to access databases.
Javadoc Tool The Javadoc tool is used to generate API documentation in HTML format from doc comments in source code. It can be downloaded only as part of the JDK download.
JavaHelp System JavaHelp software is a full-featured, platform-independent, extensible help system that enables you to incorporate online help in applets, components, applications, operating systems, and devices. Authors can also use the JavaHelp software to deliver online documentation for the Web and corporate intranet.
JavaServer Faces Technology JavaServer Faces technology simplifies building user interfaces for JavaServer applications. Developers of various skill levels can quickly build web applications by assembling reusable UI components in a page, connecting these components to an application data source, and wiring client-generated events to server-side event handlers.
JavaServer Pages (JSP) Create dynamic web pages with JSP pages by embedding scriptlets (Java programming language code) with HTML. JSP pages process forms, perform calculations, or do anything else that can be written with the Java programming language. To develop and test JSP pages, download NetBeans
JDBC JDBC is a Java API for executing SQL statements. By using the JDBC API, you can access almost any data source, from relational databases to spreadsheets to flat files. 
JDK JDK is the short-cut name for the set of Java development tools, consisting of the API classes, a Java compiler, and the Java virtual machine interpreter, regardless of which version. The JDK is used to compile Java applications and applets. The most current version is the J2SE., the preferred term these days. If you use J2SE 1.2 and later to develop applications, you are using what's known as the Java 2 Platform.
JINI The Jini network technology enables any service--from enterprise systems to kitchen appliances--to network smoothly and simply. The Jini architecture lets each service (device or software) tell others how to talk to it, without any administrator settings.
RMI RMI lets Java applications communicate across a network. The communicating applications can be running on different computers on opposite sides of the planet. This higher-level and method-based approach to network communications allows access to a remote object as easily as a local object.
Servlets A servlet is an extension to a server that enhances the server's functionality. Servlets are most commonly used to process forms, handle redirects or authenticate user names and passwords, and create dynamic content. To develop and test servlets, download NetBeans.