J2EE API and Services
JEE 5 API and Services
http://java.sun.com/javaee/technologies/
File:Overview-j2eeArchitecture.gif
EJB Container | Web Container | Application Client Container | Applet Container |
---|---|---|---|
J2SE | J2SE | J2SE | J2SE |
JAX-RPC | JAX-RPC | JAX-RPC | |
JAX-WS | JAX-WS | JAX-WS | |
SAAJ | SAAJ | SAAJ | |
Web Services | Web Services | Web Services | |
WS Meta data | WS Meta data | WS Meta data | |
StAX | StAX | StAX | |
JAXR | JAXR | JAXR | |
JMS | JMS | JMS | |
Management | Management | Management | |
Java Persistence | Java Persistence | Java Persistence | |
Java Mail | Java Mail | ||
JAF | JAF | ||
JACC | JACC | ||
Connectors | Connectors | ||
JTA | JTA | ||
EJB | |||
Java Server Faces | |||
JSTL | |||
Servlet | |||
JSP | |||
Application client | |||
Applet |
Services
J2SE
JAX-RPC
- Web services SOAP 1.1
- comparison to JAX-WS which is part of a series
- 90% of schema type covered - remainder mapped to SOAPElement - own mapping
- Synchronous
JAX-WS
- Replaces JAX-RPC
- Web services SOAP 1.1 and SOAP 1.2
- 100% schema type covered uses JAXB
- Supports asynchronous
- Supports message oriented
- dynamic server model
- MTOM - (Message Transmission Optimization Mechanism) Web Services attachment specification for efficient transmission of binary data. Uses XOP (XML-binary Optimized Packaging)
SAAJ
Soap with Attachements API for Java
- Basis for JAX-RPC and JAX-WS low level API
- Support SOAP messaging (asynchronous)
Web Services
WS Meta data
used with WS-Addressing, WSDL and WS-Policy for discovery about web service end point
- aids self configuration
- allows automated client
StAX
Streaming API for XML
- Pull based streaming API for XML
- Reading/writing
JAXR
Java API for XML Registries
- supports interacting with registries such as ebXML Registry and UDDI
- based on SAAJ
- can be used to exchange XML documents stored in registries
JMS
Java Message Service
- Asynchronous messaging
- Supports transactions
Models:
- Publish subscribe
- Point to point
Loosely coupled, reliable
Business component
Management
Java Persistence
- standards based object to relational mapping
- javax.persistence - API
- Java Persistence Query Language - similar to SQL but operates on objects
- Object/Relational mapping
SDO Service Data Object
Complimentary - for service oriented architecture - supports data formats other than relational models - OASIS spec (previously Web Data Objects)
- supports meta data so can represent object graph
Java Mail
Mail API for sending SMTP and reading mail from IMAP/POP Built with JAF
JAF
JavaBeans Activation Framework
- Enables finding the type of a piece of data, locate the object to encapsulate it and discover methods.
- Supports dynamic registering of types and actions
- Creates appropriate Java Bean component to perform operations
used in Java Mail libraries to deserialise attachments in the mail to objects
Connectors
JCA Java EE Connector Architecture
- for tools vendors ans system integrators
Resource adaptors to support EIS
- one per EIS/DB type
- interacts with JEE resource manager
- performance oriented, secure, scalable, message baseed
- supports transactions, integration of web services to EIS
- JAX-WS and JAC complimentary technologies for EAI (Enterprise Application Integration)
- may be synchronous or asynchronous
JDBC
Java DataBase Connectivity API
- For Invoking QSL from java
- can be used from JSP/Servlet or EJB
Must conform to two specifications:
- Application API
- Service provider interface for resource manager
JTA
Java Transaction API
- demarcation of transaction boundaries
- allows multiple resources to participate
- based on open API - X/Open XA
Default commit on one update - allows wrapping multiple updates
Transaction manager (Transaction Processing monitor - TP monitor)
- Interacts with the resource manager
- API for container
- Client interacts to begin/commit/rollback transaction
- API for client (separate from container)
Java Server Faces
Interface framework based on MVC
- JSP for display with custom tag libraries
- event model
- state management
- java beans with dependency injection
- expression language
Supports:
- input validation
- page navigation configuration
- managed model object creation
- data conversion between objects/components
Rendering model supporting different markup languages
- Renderkit - HTML 4.01
JSTL
JavaServer Pages Standard Tag Library
- extends JSP adding a tag library
includes:
- loops
- xml processing
- conditional constructs
- internationalisation
- functions - string manipulation
- database
Servlet
Request response programming
JSP
Now includes expression language (JSP 2.1) - simple way to access data objects
- deferred expressions - not immediatly evaluated
- set and get expressions - ability to access server side
- method expressions
Mixes static data - html/xml/wml & jscp - scripting code for dynamic page construction
JACC
Java Authorization Contract for Containers
Allows third party authorisation tools to decide on access to J2EE resources
Authenticated user makes a request to a web or a EJB resource
- security runtime decides on access. (access decision)
- JACC defines the permission object to be created
- policy context handlers are registered
- policy context identifier (contextID) is set
- call to the java.security.Policy implemented by the provider - makes the access decision
EJB
Three types of Enterprise Beans
- Session Beans
- transient conversation with client
- Entity Beans
- replaced by Java Persistence API
- persistence manager responsible for data being stored
- Message Driven Beans
- asynchronous business component
JAXP
Java API for XML Processing
- processing via DOM
supports:
- SAX - Simple API for XML
- XSLT
- namespaces/schemas
JNDI
Java Naming Directory Interface
- Common API to access LDAP, NDS, DNS, NIS
- Setting attributes or objects
- Searching for object by attributes
- can be configured by JNDI naming context and environment
- e.g. can change DB without change to source code
- includes system objects such as JTA for user transactions
- should exist in naming context e.g. java:/comp/env/ejb java:/comp/env/jdbc
- relationship to JAX-R
- The JAXR API needs richer metadata capabilities for classification and association, as well as richer query capabilities.
JAAS
Java Authentication and Authorisation Service
- allows a java app to authenticate and authorise user or group
- is a instance of PAM - Pluggable Authentication Module
- extends java security architecture to support user based authentication