Alan L. Batongbacal CS 4244 / 01 Nov 2000 J2EE: A Bird’s-Eye View Alan L. Batongbacal CS 4244 / 01 Nov 2000
What is J2EE? A set of Java-related software practices and technologies for building enterprise-class applications Emphasis on availability, security, reliability and scalability Multi-tiered application model
Why use multiple tiers? Enterprises spread across multiple geographic and organization boundaries Pendulum has swung from data center to desktop to somewhere in-between
Component Technologies Enterprise JavaBeans Java Servlets Java Server Pages HTTP / HTTPS Java RMI-IIOP JavaIDL JDBC Java Naming and Directory Interface JavaMail and Java Activation Framework Java Messaging Service Java Transaction API
Enterprise JavaBeans Partition app construction task by role Shift much of development burden to bean containers by taking advantage of container services Select desired services declaratively Support non-persistent (session) and persistent (entity) usage Roles: bean provider, container provider, server provider, application assembler, deployer, system admin Container services: distributed transaction management, security, resource management and component lifecycle, persistence, remote accessibility, multiclient support, component location transparency
EJB App Construction Roles Bean provider Container provider Server provider Application assembler Application deployer System administrator
EJB Container Services Implicit: distributed transaction management, security, resource management and component lifecycle, persistence, remote accessibility, multiclient support, component location transparency Explicit: naming and directory services
Java RMI-IIOP Java RMI uses Java Remote Method Protocol (JRMP) as its default comm layer Internet Inter-ORB Protocol (IIOP) is the standard protocol used by CORBA Provides greater reusability, cross-language use, better integration into legacy systems, firewall navigation and context propagation
Java IDL Addresses semantic differences between RMI and CORBA relating to distributed garbage collection, object conversion and type mapping
JDBC Provides access to most database management systems via SQL Similar, though not identical to Microsoft ODBC
Java Naming and Directory Interface Provides a unified API for associating names with objects, accessing objects by their names and associating attributes with objects Acts as an adapter to LDAP, Novell NDS, Sun NFS, Java RMI and both Unix-style and DOS-style file systems
JavaMail and Java Activation Framework Provides a high-level API for accessing an e-mail system Uses service providers for SMTP, IMAP, POP3 and other protocols JAF provides means to describe and display content of varying types
Java Messaging Service Provides an API for message-based interprocess communications Supports point-to-point and publish/subscribe models J2EE provides interfaces; third-party vendors supply implementations (IBM MQSeries, Progress SonicMQ, FioranoMQ)
Java Transaction API Low-level API for defining units of work and maintaining the logical integrity thereof Not explicitly used by EJB programmers
EJB Container/Server Implementations Reference implementation from Sun BEA Systems WebLogic IBM WebSphere Oracle 8i enhydra.org openejb.org
Future Directions Updates to EJB, Servlet and JSP specs Addition of JAXP, JAAS Addition of message-driven bean type Addition of J2EE Connector Architecture Improvements to container-managed persistence
Other Technologies Common Object Request Broker Architecture (CORBA) Microsoft COM/DCOM, COM+, .NET
Additional Reading “Designing Enterprise Applications with the Java 2 Platform, Enterprise Edition”, http://java.sun.com/j2ee/blueprints/ “Mastering EJB” by Roman (Wiley) “Developing Java Enterprise Applications” by Asbury and Weiner (Wiley) “Java Network Programming” by Harold (O’Reilly)