Monday, July 4, 2016

J2EE APIs Placement based on Usage point of view


J2EE Specification has various APIs each having its own functionality to cater for. While developing an Application using these, each API may or may not need others. Following is a usage/interaction level diagram that shows how they can be positioned wrt each other.


Looking from Web Application development based on J2EE compliant server, the EJB container and Web Container APIs are mandatory. Rest of the APIs such as - JMS, JPA, JTA etc are all going to be used based on the services that they offer.

Hence the Container APIs are placed at the center and rest of the APIs are surrounding them.

Note on Terminology:
Container APIs are generally called as Component APIs
Rest of the Service providing APIs - JMS, JAX-WS, JPA, Security - are termed as Resource APIs or Service APIs.

Overview of how Server Runs:
J2EE App Server runs using J2SE Platform APIs and both run in Java Runtime Environment(JRE) on Java Virtual Machine(JVM)

Sunday, July 3, 2016

API level Matching between J2EE compliant Server and Spring Eco System

Having experienced in developing  Java based Web Applications using J2EE compliant app servers and Spring Framework, below is my understanding of how various APIs fit-in if compared at API level in terms of similarity or analogy.

Note: Comparison is not based on performance or any other metrics.




J2EE compliant Application Server: Any implementation of the J2EE specifications. Oracle's WebLogic, IBM's WebSphere are most popular examples. But they are many more that can be found if you search for J2EE compliant Servers.


How J2EE components work together in any Container - Spring or Application Server

In a Spring+Jersey+Hibernate RESTful webapplication, we can spot various J2EE components - JTA, JPA, Java Bean Validation, JSON-B API for B...