Java Product Suite
Estimated time to read: 3 minutes
Product Suite Overview¶
Java SE (Standard Edition)¶
The Standard Edition, is what people usually see as 'Java', includes; Language JVM Core Libraries
Java EE (Enterprise Edition)¶
The Enterprise Edition is not so much an extension of SE. It is an application server framework, using SE.
It is an application server, with some additional libraries, but first and foremost handles dynamic and interactive web-components. - Application Server Framework - Handles web components - Business logic
ME (Micro Edition)¶
Micro Edition is rarely seen by developers as it did not do well within its sector. It also did not do well in the mobile arena. ME is tailored towards Integrated Application usage such as in Blu-Ray players, Cars, Set-Top boxes, etc
Java Standard Edition (Java SE)¶
Standard Edition is the core of Java. It underpins the Enterprise and Micro Editions of Java.
It is composed of a Java Runtime Environment (JRE) and the Java Development Kit (JDK) for programming in Java.
Its key toolset includes: - javac - Java's Compiler - java - Application Runner - javadoc - Tool for generating Javadoc's from a Java file - jdb - Java's debugger (Rarely used as IDE's provide a better debugging experience)
Java SE also includes a version of the stand-alone JRE, which can be used to run most applications.
Java Enterprise Edition (Java EE)¶
The Enterprise Edition is an application server written using the standard edition.
It provides the following core APIs: - Java Servlets and Java Server Pages (JSP) - Enterprise Java Beans (EJB) - Java Messaging Service (JMS) - Everything provided by the Standard Edition^
^ There are certain features, such as threading / parallel processing, that are reserved for use by the EE application server and are not allowed within developer code.
And features: - Defines a set of standard APIs for multi-tier enterprise scale applications - Designed to work in conjunction with an application server environment such as WebSphere
Java EE API¶
It includes support for:
- JDBC Core API - Database connectivity
- RMI-IIOP API - Remote method invocations (otherwise known as a Remote Procedure Call) allowing a client to invoke a function that is running somewhere else.
- JNDI API - Java Directory Naming Interface - A layer of abstraction that enables lookups with an AD or LDAP server
- JDBC Extensions 2.0
- EJB (Enterprise Java Beans)
- Servlet API - Designed to be agnostic but is now used primarily for HTTP.
- JSP (Java Server Pages) - A way of writing HTML with a reference to Java, enabling interactive web pages. 'View Technologies' such as JSP is being deprecated. AngularJS et al are the way forward.
- JMS (Java Messaging Service) - JMS does for messaging what JDBC does for databases. It is a vendor-neutral messaging API that sits on top of a vendor specific provider / driver.
- JTA (Java Transaction API) - Very much the same as JDBC and JMS design wise.
- JavaMail - Deals with SMTP, IMAP, POP.
- JAF (Java Activation Framework) - How to handle MIME-types in Java. There are other frameworks for this, but JAF is standardised.
- JAXP (Java API for XML Parsing)
- JCA (Java Connector Architecture) - A way of describing how to manage connections inbound or outbound.
- JAAS (Java Authentication and Authorisation Service) - 'PAM for Java'
Java Micro Edition (Java ME)¶
Micro Edition defines a set of APIs and Configurations for Embedded and Mobile Devices.
Configurations facilitate the packaging of a JVM and a restricted set of APIs to match the capabilities of a specific type of device.
Such devices are typically limited in terms of memory and processing speed.
Outside of Blu-Ray players and Set-Top boxes, ME sees very little usage in 2020 onwards.
For more information, see the article on BD-J on Wikipedia.
Implementation¶
For reference creating an application in Java ME / BD-J, see the following: Creating your first BD-J Application Responding to User Input