Download - The Javaâ„¢ 2 Platform
![Page 1: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/1.jpg)
OptionalPackages
Java 2Enterprise
Edition(J2EE)
Java 2StandardEdition(J2SE)
JVM
Java Card APIs
CardVM
OptionalPackages
Personal Basis Profile
Personal Profile
Foundation Profile
CDC
MIDP
CLDC
KVM
Java 2 Platform Micro Edition(J2METM)
The Java™ 2 Platform
![Page 2: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/2.jpg)
Java Technology Overview● Java 2 Standard Edition (J2SE)
– Compiler, tools, runtime and APIs for Java application development
● Java 2 Enterprise Edition (J2EE)– APIs for development, deployment and management
of server-based, distributed, multi-tier and component-based applications
● Java 2 Micro Edition (J2ME)– Highly optimized version for resource-limited
consumer device software development
![Page 3: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/3.jpg)
The Java™ 2 Platform
High-EndServer
Java TechnologyEnabled Desktop
WorkgroupServer
Java TechnologyEnabled Devices
![Page 4: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/4.jpg)
Evolution of Enterprise Applications
● Single-Tier– monolithic, direct connection
● Two-Tier– fat clients
● Three-Tier– Browser, Web Server, DB
– Remote Procedure Calls (RPC-based)
– Component-based (CORBA, RMI, DCOM)
DBSQL
DB
SQL HTTP
![Page 5: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/5.jpg)
Trends in Enterprise Applications
● Transition from single-tier/two-tier to multi-tier applications
● Transition from monolithic applications to object-based applications
● Transition from application "fat client" to a web browser client
![Page 6: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/6.jpg)
Problems● The "Middle Tier" is complex
● Each application must duplicate the same basic system services:– concurrent access to resources
– transactional access to resources
– load-balancing among resources
– securing access to resources
– managing resources
– managing persistence of data
![Page 7: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/7.jpg)
Solution - J2EE
J2EE provides– a standard set of Application Programming Interfaces
(APIs), and
– a component-based architecture, and
– the idea of a container to provide standarized system services to all applications,
to reduce the complexity of "Middle Tier" programming
![Page 8: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/8.jpg)
J2EE Contents● Platform Specification
– Defines the standard APIs
● Reference Implementation and SDK
– Implements the complete specification as an operational definition of J2EE
● Compatability Test Suite
– Tests compliance with the standard, guarantees portability
● Blueprints
– Architecture and design guidelines
![Page 9: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/9.jpg)
J2EE Platform Architecture
![Page 10: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/10.jpg)
J2EE Core Concepts
● Open, published Specification
● Distributed Applications
● Component-Based
● Containers
● Packaging / Assembly
● Deployment
● Roles
![Page 11: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/11.jpg)
J2EE Core Concepts (1)
● J2EE is an open, formal Specification– What must be supported, but not how
– Agree on standard and compete on implementation
– Sun Microsystems participates but does not control the standard
● Applications are distributed– Application components can run on different devices
connected by a network
![Page 12: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/12.jpg)
J2EE Core Concepts (2)● Applications are based on components
– A component is an application-level unit of code
– Supported components:● JavaBeans (from J2SE)
● Java Applets (client side)
● Java Application Clients (client side)
● Enterprise Java Beans (server side)● Web Components (server side)
● Resource Adapter Components (server side)
– A component is responsible for:● Presentation logic
● Business logic
![Page 13: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/13.jpg)
J2EE Core Concepts (3)● Applications run in containers providing:
– Services to components (transaction management, object distribution, concurrent access, security, persistence, resource management, life-cycle management)
– Standardized access methods to Enterprise Information Systems (EIS), such as SAP
– Control over application behaviour at assembly and deployment time, as well as at run time (in the code)
![Page 14: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/14.jpg)
Components and ContainersResponsibilities
● Containers handle:– Concurrency
– Security
– Availability
– Scaleability
– Persistence
– Transactions
– Life-cycle Management
● Components handle:– Presentation logic
– Business logic
![Page 15: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/15.jpg)
A Typical J2EE Environment
![Page 16: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/16.jpg)
J2EE Core Concepts (4)Packaging / Assembly
EJB
App licationC lient
M odule
WEB
WEB
Web C lient
M odule
EJBM odule
Deployment Tool
APP
D DDD1
2
3
1
2
3
J2EE APP
DD
DD
DD
DD
DD
EJB
EJB
![Page 17: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/17.jpg)
J2EE Core Concepts (5)
● Deployment– Applications are configurable at packaging/assemby
AND deployment time via deployment descriptors
– Changes can be made without programming:● Transactional behaviour
● Security characteristics (user/group, role assignments)
● External resource references (databases, EIS)
● Container-specific features (load-balancing, clustering)
![Page 18: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/18.jpg)
Creation Assembly Deployment
Created by Component Developer
Assembledand Augmentedby Application
Assembler
Processed by Deployer
Deploy
EnterpriseComponents
J2EE Container
J2EE APPJ2EE Modules
J2EE Core Concepts (6)Roles
● Platform/Container provider● Tools provider● Component provider● Application assembler● Deployer● System administrator
Administration
![Page 19: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/19.jpg)
J2EE Application Architecture● The J2EE Application Architecture defines - but
does not require - these tiers:
– Client tier (the user interface)
● Browser-based clients
● Standalone application clients, including J2ME clients
● Non-Java clients; eg, VB making HTTP requests
● Standards on the client tier - HTTP, HTML, XML
– Middle tier (one or more, client services and business logic)
● Web containers for Servlets and JSPs
● EJB containers for Enterprise Java Beans
– Back-end tier (data management)
● Oracle Database or EIS such as SAP
![Page 20: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/20.jpg)
J2EE Application ArchitectureFull Multi-Tier Example
![Page 21: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/21.jpg)
J2EE End-to-End Architecture
DBMS
ERP
CMS
EJB
EJB
Servlet
JSP
Web Container EJB Container
Server-SidePresentation
Server-SideBusiness Logic EIS
Client-SidePresentation
XHTML/WML
MIDP Devices
HTML/XML
RMI/IIOP
Rich Clients
Browsers
J2CA
CORBA
JDBC
JMS
J2EE Application Server
XML/HTTP
SOAP/HTTPB2B Application
SOAP/HTTP
SOAP
![Page 22: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/22.jpg)
Best Practices/Design Patterns
● Java BluePrint for J2EE– Guidelines, patterns and code examples
– http://java.sun.com/blueprints/enterprise
● J2EE Patterns– Best practices and design strategies (common
solutions to common problems)
– J2EE Pattern Catalog from the Sun Java Center
![Page 23: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/23.jpg)
Benefits for Developers
● Containers provide common services
● Freedom on choice for servers, tools and components
● Comprehensive resources available
● Integration methods for existing information systems
● Configurable security model
![Page 24: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/24.jpg)
Benefits for IT Managers
● Applications are portable
● No vendor lock-in
● Large marketplace, many vendors to choose from
![Page 25: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/25.jpg)
J2EE APIs and Technologies● JDBC (Java Database Connectivity)
● Java IDL (Interface Definition Language for CORBA)
● EJB (Enterprise Java Beans)
● Java Servlets
● JSP (Java Server Pages)
● JMS (Java Message Service)
● JNDI (Java Naming and Directory Interface)
● XML APIs (JAXP, JAXR, JAX-RPC)
● JavaMail
● J2EE Connector Architecture (JCA)
● Transactions (JTA / JTS)
![Page 26: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/26.jpg)
J2EE/EIS Integration APIs
● J2EE Technologies used in EIS integration:
– J2EE Connector Architecture (JCA)● For Enterprise Information Systems (EIS); for example, SAP
– JDBC
● For Databases; for example, ORACLE
– Java Message Service (JMS)● For Message-Oriented-Middleware; for example, SunONE Message Queue or
IBM MQ Series
– Java Naming and Directory Interface (JNDI)● For Directory Services; for example, LDAP Directories
– JavaMail● For E-Mail Systems
![Page 27: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/27.jpg)
J2EE Integration Architecture
![Page 28: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/28.jpg)
JCA Overview● Process
– EIS provides a JCA-compliant adapter
– J2EE Application Server supports JCA
– EIS Adapter plugs into Application Server
– J2EE Applications running in Application Server access EIS via the Adapter
● EIS Vendors provide only one Adapter for all Application Servers
● EIS accessed in a standard way in all Application Servers
![Page 29: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/29.jpg)
JCA Components
![Page 30: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/30.jpg)
J2EE/SAP Integration Methods● SAP Web Application Server (mySAP)
– "Fully J2EE Compatible"
– Java and/or ABAP Application runs in server
– Application --> Integration Engine --> SAP
– Adapters allow SAP Exchange Infrastructure to use Java to talk to external systems
● SAP Java Connector (JCo)
– SAP-specific Java adapter (deprecated in favour of JCA Adapter)
● SAP J2EE Connector Architecture (JCA) Adapter
– J2EE Application Server supports JCA
– SAP JCA Adapter supports JCA
– J2EE Application Server application calls SAP via the SAP Adapter
![Page 31: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/31.jpg)
J2EE Releases● J2EE 1.4:
– New APIs for core Web Services protocols
– New management and deployment APIs
– New versions of JSPs, EJBs, Connector APIs
● J2EE 1.5
– Simplification of J2EE Application Development
– Enhance the influence of J2EE in the entire Java Development Community
– XML Standards (XMLdsig, XML Encryption, WS-Security
– APIs (Portlets, Java Server Faces, JAXB)
![Page 32: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/32.jpg)
Resources
● Starter Kit– J2SE, J2EE and J2ME JDK software
– Java training and code samples
– Development tools, including Studio 5 IDE
– Web Services Tutorial and Building Services on the J2EE Platform
– J2EE Middleware
![Page 33: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/33.jpg)
Resources continued● http://java.sun.com/blueprints/enterprise/
• Blueprint - "Designing Enterprise Applications with the J2EE Platform, 2nd Edition"
● http://java.sun.com/j2ee
– Software, tutorials and documentation
● http://java.net
– Java Developer Portal
● http://wwws.sun.com/software/products/appsrvr/home_appsrv
– Sun Application Server product web site
● http://wwws.sun.com/software/sundev/index.html
– Sun Studio product web site
![Page 34: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/34.jpg)
J2EE APIs and Technologies● JDBC (Java Database Connectivity)
● Java IDL (Interface Definition Language for CORBA)
● EJB (Enterprise Java Beans)
● Java Servlets
● JSP (Java Server Pages)
● JMS (Java Message Service)
● JNDI (Java Naming and Directory Interface)
● XML APIs (JAXP, JAXR, JAX-RPC)
● JavaMail
● J2EE Connector Architecture (JCA)
● Transactions (JTA / JTS)
![Page 35: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/35.jpg)
JDBC
● Standard API for accessing tabular data– Connect to a database or tabular data source
(including spreadsheets and flat files)
– Send SQL statements
– Process the results
● Packages:– java.sql
– javax.sql
● http://java.sun.com/products/jdbc/index.html
![Page 36: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/36.jpg)
Java IDL
● Adds CORBA capability
● Enables invocation of remote network services using OMG IDL and IIOP
● Includes an ORB for distributed computing using IIOP
● J2SE 1.3 includes the IDL-to-Java compiler● http://java.sun.com/products/jdk/idl/index.html
![Page 37: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/37.jpg)
Enterprise Java Beans● Standard server-side component
● Session Beans– Process and task management
● Entity Beans– Persistent objects in a database
● Message-Driven Beans– Send/receive asynchronous JMS messages
● http://java.sun.com/products/ejb/index.html
![Page 38: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/38.jpg)
Java Servlets
● Component-based, platform-independent method for building web-based applications
● An applet that runs on the server side
● Generates dynamic content
● Packages:– javax.servlet
– javax.servlet.http
● http://java.sun.com/products/servlet
![Page 39: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/39.jpg)
Java Servlets vs. CGI
Request CGI2
Request Servlet1
Request Servlet2
CGIBased
WebserverChild for CGI2
Servlet Based Webserver
JVM
Servlet1
Servlet2
Request CGI1Child for CGI1
![Page 40: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/40.jpg)
Java Server Pages● Extension of Java Servlets
● Separates the user interface from content generation
– Presentation in HTML or XML/XSLT
– Business logic in JavaBeans or Custom Tags
– Easier to maintain
● Packages:
– javax.servlet.jsp
– javax.servlet.jsp.tagext
● http://java.sun.com/products/jsp
![Page 41: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/41.jpg)
Java Message Service
● Access to Enterprise Messaging, or Message Oriented Middleware, via standard API
● Requires a Message Provider (Sun Message Queue is built into Sun Application Server)
● Package javax.jms● http://java.sun.com/products/jms
![Page 42: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/42.jpg)
Java Naming and Directory Interface● Standard extension to the Java Platform
● Unified interface to naming and directory services
● Class libraries and service providers for:– LDAP, DNS, NIS/NIS+, CORBA COS Naming, RMI
Registry, file system
● http://java.sun.com/products/jndi
![Page 43: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/43.jpg)
XML APIs
● JAXP (Java API for XML Processing)– Processing of XML documents using DOM, SAX and
XSLT
● JAXR (Java API for XML Registries)– Bindings for Web Services Registries - ebXML Registry
and UDDI Registry v2.0
● JAX-RPC (Java API for XML-Based RPC)– Core API for web services development/deployment
– Builds SOAP-based web services
![Page 44: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/44.jpg)
JavaMail
● Platform-independent and protocol-independent API to build mail and messaging applications
● Requires JavaBeans Activation Framework extension (javax.activation package)
● http://java.sun.com/products/javamail/index.html
![Page 45: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/45.jpg)
J2EE Connector Architecture● Standard architecture for connecting the
J2EE platform to heterogenous Enterprise Information Systems (EIS) - such as SAP
● EIS vendor provides a standard resource adapter for its EIS
● Adapter plugs into the Application Server, providing connectivity between the EIS and the enterprise application
● http://java.sun.com/j2ee/connector
![Page 46: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/46.jpg)
Transactions● Supports distributed transaction
management
● JTA (Java Transaction API)– high-level, implementation-independent, protocol-
independent API allowing access to transactions
● JTS (Java Transaction Service)– Implementation of a Transaction Manager supporting
JTA
– Implementation of Java mapping to OMG Object Transaction Service (OTS) 1.1
● http://java.sun.com/j2ee/transactions.html
![Page 47: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/47.jpg)
J2EE Flexibility
● J2EE specifies, but does not require, multi-tier architectures
● Both the Web and EJB Containers are optional
● There is no bias or preference for one architecture over another; however, there can be preferred ways of doing things
![Page 48: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/48.jpg)
Possible Architectures
● Following are just three possibilities:
– Web-Oriented application
– Standalone-Client application
– Multi-Tier application
![Page 49: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/49.jpg)
Web-Oriented
● Cases where EJB Container components would be overkill and deliver poor performance
● Web Container hosts presentation logic (JSP) and business logic (Java Servlets)
● Web Container components use JDBC, JMS and JCA to access EIS Resources
![Page 50: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/50.jpg)
Standalone-Client
● Client accesses EJB Container components directly
– EJB Container components access EIS Resources via JDBC, JMS and JCA
● Client accesses content provided by Web Container components
– Client handles display logic
– Web container components handle business logic, may use EJB Container components for EIS access, or may access directly
● Client access EIS directly using JDBC, JMS and JCA
– Client handles all logic
![Page 51: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/51.jpg)
Multi-Tier
● Client is a Web Browser
● Presentation and business logic provided by Web Container components
– Java Servlets recommended for request processing and application control
– JSPs recommended for user interface/display logic
● EJB Container components manage access to EIS resources using JDBC, JMS and JCA
![Page 52: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/52.jpg)
Logical View
● Tries to use existing security services
● Role-based Security Implementation– Role - Application Developer
● Declarative Security (deployment descriptors)
● Programmatic Security (Java code)
– Role - Application Deployer● Configures Security Policy
– Role - Application Container (J2EE Container)● Enforces Security Policy
![Page 53: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/53.jpg)
Mechanisms● Authentication
– Web-Tier Authentication
– EJB-Tier Authentication
– EIS-Tier Authentication
● Authorisation
– Declarative and Programmatic
– Provider and User of component
● Signing
● Encryption
– Integrity and Confidentiality
● Auditing
![Page 54: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/54.jpg)
Why Use EJBs
● Takes advantages of the server-side component model; that is, container services
● Separates business logic from system code
● Enables component portability across J2EE Servers and Operating Systems
● Enables configuration at deployment time as well as at development time
![Page 55: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/55.jpg)
EJB Architecture
![Page 56: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/56.jpg)
EJB Component Types● Session Bean
– Implementation of Workflows or Services– Stateless (no session state from request to request)– Statefull (session state persists across requests)
● Entity Bean– Represents state and behaviour of an actual Object– State is persistent across requests and clients– Container-Managed Persistence
● EJB Container manages database interaction– Bean-Managed Persistence
● Programmer codes SQL statements to manage database interaction
● Message Driven Bean– Allows the sending and receiving of JMS Messages within an EJB
Container
![Page 57: The Javaâ„¢ 2 Platform](https://reader035.vdocuments.net/reader035/viewer/2022071523/613d04e50c37c14a830d2931/html5/thumbnails/57.jpg)
J2EE and .NET Development
● J2EE– One language (Java)
– Many platforms (Solaris, Windows, Linux...)
● .NET– One platform (Windows)
● Mono effort in progress (Linux and UNIX)
– Many languages (C#, Managed C++, VB.NET...)