Thursday, March 12, 2015

J2EE Versions and Features

Features J2EE 1.2
(Dec 1999)
J2EE 1.3
(Sep 2001)
J2EE 1.4
(Nov 2003)
J2EE 5 
(May 2006)
J2EE 6
(Dec 2009)
J2EE 7
(June 2013)
JDBC Standard Extension API 2         4
Java Naming and Directory Interface Specification (JNDI) 1.2          
RMI-IIOP 1.1          
Java Servlet 2.2 2.3 2.4 2.5 3 3.1
JavaServer Pages (JSP) 1.1 1.2 2 2.1 2.2 2.3
JavaServer Pages Standard Tag Library (JSTL) X 1 1.1 1.2 1.2 1.2
Expression Language (EL)         2.2 3
JavaServer Faces (JSF) X   1.1 1.2 2 2.2
Debugging Support for Other Languages       1 1  
Enterprise JavaBeans (EJB) 1.1 2 2.1 3 3.1 3.2
Java Message Service API (JMS) 1   1.1 1.1 1.1 2
Java Transaction API (JTA) 1     1.1 1.1 1.2
JavaMail API 1.1 1.2 1.3 1.4 1.4 1.5
JavaBeans Activation Framework (JAF) 1     1.1   1.1
Java API for XML Processing (JAXP) X 1.1        
J2EE Connector Architecture X 1 1.5 1.5 1.6 1.7
Java Authentication and Authorization Service (JAAS)   1        
Web Services for J2EE 1.1 X X 1      
Java API for XML Processing (JAXP) X X 1.2     1.3
Java API for XML-based RPC (JAX-RPC) X X 1.1   1.1 1.1
Java API for XML Registries (JAXR) X X 1   1 1
Java Authorization Service Provider Contract for Containers (JACC) X X 1 1.1 1.4 1.5
Java Management Extensions (JMX) X X 1.2     2
Enterprise Edition Management API X X 1 1.1 1.1  
Enterprise Edition Deployment API X X 1.1 1.2 1.2  
Java API for RESTful Web Services (JAX-RS) X X X 1.1 2
Web Services X X X 1.2 1.3 1.3
Java API for XML-Based Web Services (JAX-WS) X X X 2 2.2 2.2
Java Architecture for XML Binding (JAXB) X X X 2 2.2  
Web Services Metadata for the Java Platform X X X 2 2.1  
SOAP with Attachments API for Java (SAAJ)  X X X 1.3    
Streaming API for XML (StAX) X X X 1   1
Java APIs for XML Messaging (JAXM) X X X X 1.3 1.3
Java Persistence API (JPA) X X X 1 2 2.1
Contexts and Dependency Injection for Java X X X X 1 1.1
Dependency Injection for Java X X X X 1 1
Bean Validation X X X X 1 1.1
Managed Beans X X X X 1  
Interceptors X X X X 1.1 1.2
Common Annotations for the Java Platform X X X 1 1.1 1.2
Java Authentication Service Provider Interface for Containers (JASPIC) X X X X 1 1.1
Java API for WebSocket X X X X X 1
Java API for JSON Processing X X X X X 1
Batch Applications for the Java Platform X X X X X 1
Concurrency Utilities for Java EE 1.0  X X X X X 1
Web Services Metadata for the Java Platform X X X X X 1

Wednesday, June 18, 2014

SOAP vs REST

Constraints

SOAP(simple object access protocol)

RESTful (Representational State Transfer)

Protocol
XML based protocol defines rules of message type/format on top running on any protocol (SMTP, HTTP, FTP, TCP/IP)
Describes architectural principles which runs on HTTP/HTTPS and have no additional message layer/formats
Data Type
Standard format of XML
No standard set of format and can be any type i.e., XML, JSON, HTML, Plain Text
State
State is maintained
Stateless and preferred for single operations. (GET, CREATE, READ, DELETE, Update)
Adding web services in existing application
Existing web application needs to be modified and need more effort to add web services into the application
Existing web application need not any modification and additional very less effort needed to add web services.
Lightweight
Heavyweight
Lightweight
Speed
Slow because of XML formats
Fast because of no additional message layers
Security
More secured as data going as XML with secured headers, encryption available.
Less secured data transfer.
Caching
Not available
Available for HTTP GET resources
Implementation and Client creation
Little bit complex
Implementation is easy and client creation also easy if we know the input/output data format.
Access Type
WSDL defines messages, bindings, operations and locations of web services.
Simple Unique URI for each resource and no further complex definitions
When to use?
1.   More reliable and secured as SOAP has more standard set of rules
2.   Both server and client has mutual contract between them
3.   If want to have state-full transactions
4.   Supports any transport protocol SMTP, TCP/IP, JMS and HTTP
5.   Best choice for combined and distributed and dependent services
6.   Complex and development needs learning
1.   If low bandwidth with high performance
2.   If you want to have CRUD kind of applications or expose resources and not fit business operations
3.   If you like to cache some static resources
4.   Supports only HTTP/HTTPs
5.   Best choice for direct point to point services like sharing IT assets or CRUD operations
6.   Easy to learn and implement