180 likes | 340 Views
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.
E N D
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
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 Component Technologies
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
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)