400 likes | 632 Views
Java Beans and Enterprise Java Beans. Kimble Cheron and Prof. Steven A. Demurjian Computer Science & Engr. Dept. steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818. Paul C. Barr The Mitre Corporation Eatontown NJ poobarr@mitre.org. Changing Perspectives.
E N D
Java Beans andEnterprise Java Beans Kimble Cheron and Prof. Steven A. Demurjian Computer Science & Engr. Dept. steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818 Paul C. Barr The Mitre Corporation Eatontown NJ poobarr@mitre.org
Changing Perspectives • Computers are Guilty of Creating More Disorder then Simplicity • Current Software Systems are Relics • Built Largely By and For Technical Computer Users • Never Intended to Operate in Today’s Environment • Designer’s Need to Break Out of Old Mold • Consider Total Design Space • Design Should Help Manage Complexity, Not Add to It • What is Available to Assist in Changing Times?
Components • Reusable Software Building Blocks • Pre-Constructed from Encapsulated Application Code • Easily Combined with Other Components • Seamlessly Merged with Custom Code • Rapid Prototyping of Complete Applicaiton • What is a Component? • GUI Widget (Button, Window, etc.) • Combination of Components (Window with Elevator Bars and Pull-Down Menus) • Application Service (Account Management Function)
Overview • A First Look at Java Beans • What are They and How are They Utilized? • Enterprise Java Beans • Not Just for Clients Anymore! • Capabilities and Usage • Relationship to “New” and “Old” Technologies • Component-Based Client/Server Model • Multi-Tiered Architecture and EJB • Tiered Development for Extensibility • Comparisons of Approaches • Java Blend for Database Interoperability • Overall Concluding Remarks
Java Beans • Extends "Write Once, Run Anywhere (WORA)TM" to Include "Reuse Everywhere” • What is a Bean? • Independent Reusable Software Component • Visually Manipulated in Builder Tools • Can Be Visible Object: • AWT Components • or Invisible Objects: • Queues and Stacks • or Composed Objects: • Calculator Ops + Keys + Display
Java Beans • Bean vs. Component • Source Code Inaccessible • Customizable to Suit Application Needs via External Properties • Powerful Means of Reuse • Examples • GUI Button with Property to Allow Button Name to be Set • Account Management Component that Allows Account Database Location to be Set • Properties Can be Very Complex and Offer Significant Power to Application Builders
What are Enterprise Java Beans ? • Expansion of Java Beans (Client-side) to Support Server Side Reusable Components • Server Components Run on Application Server • EJB Integral Part of Java Technology • Component Architecture for Distributed Systems • Multi-Tier Distributed Architecture • Movement of Application Logic from Client to Server Side • Creation of “Thin”, Easier to Maintain Clients • Framework for Creating Middle Ware • Integration of “New” and “Old” Technologies • RMI, IIOP, CORBA, RPC, Active X, etc.
Designer and Developer Roles in Enterprise Java Beans (EJB) • Towards “Highly Scalable, Highly Available, Highly Reliable, Highly Secure, Transaction Distributed Applications” • Enterprise Bean Provider • Creates and Sells EJBs • Application Assembler • Uses EJBs to Build an Application • EJB Server Provider • Creates and Sells EJB Server • EJB Container Provider • Creates and Sells EJB Containers • Server Provider Will Likely Provide Containers
The EJB Architecture • EJB Servers: Analogous to CORBA ORB • Server Software • Provides Naming and Transaction Services • Makes Containers Visible • EJB Containers: Interface Between EJB Bean and Outside World • Client Never Accesses Bean Directly • Access via Container-Generated Methods • These Methods Then Call the Bean’s Methods • EJB Clients • Locate EJB Containers Via JNDI • Make Use of EJB Beans • Enterprise Java Beans - Discussed Shortly
Enterprise Java Beans Session Beans • Associated With a Particular Client • Performs Operations on Behalf of Client • Accessing a Database • Performing Calculations • Created and Destroyed by a Client • Can be Transactional - But, Do Not Survive System Shutdown • Can be Stateless or Maintain Conventional State Across Methods and Transactions • Must Manage Own Persistent Data
Enterprise Java Beans Entity Beans • Object Representation of Persistent Data Maintained in Permanent Store (Database • Identifiable by Primary Key • Shared by Multiple Clients • Persist Across Multiple Invocations • Survive System Shutdown • Created by • Inserting Data into Database • Creating an Object Instance
Model for PersistencePassivation/Activation • Programmatic Model for Managing Persistent Objects • EJB Server has the Right to Manage its Working Set • Passivation • Saves State of a Bean to Persistent Storage • Then Swaps Bean Out • Activation • Restores State of a Bean From Persistent • Storage,Then Swaps Bean in • Applies to Both Session and Entity Beans
Stateless vs. Stateful Session Beans • Stateless • No Internal State • Do Not Need to Be "Pass-ivated" • Can Be Pooled to Service Multiple Clients • Stateful • Possess Internal State • Need to Handle Passivation/Activation • One Per Client
Entity Bean Persistence • Container-Managed • Container is Responsible for Saving State • In Deployment Descriptor, Specify Container-Managed Fields • Persistence Independent of Data Source • Bean-Managed • Bean is Responsible for Saving its Own State • Container Doesn’t Need to Generate DB Calls • Less Adaptable; Persistence is Hard-Coded
Deploying EJBs • EJBs Deployed As .SER Files: Serialized Instance • Manifest File Used to List EJBs • Must Also Provide a “Deployment Descriptor” • Sample Entry • Name: paul.RestaurantDeployment.ser • Enterprise-Bean: True • “Name” Line • Describes a Serialized Deployment Descriptor • “Enterprise-Bean” Line • Indicates Whether the Entry Should Be Treated as an EJB • (Not All Entries Need to Be EJBs)
WebLogic IBM Oracle GemStone BEA Borland Netscape Lotus Forte Progress Novell Novera Borland Informix IONA More... Who’s Announced EJB Support?
Typical Development and Deployment Scenario • EJB Server Provider • Creates and Sells an EJB Server • Provides EJB Containers That Will Run on These Servers • EJB Providers • Individuals Responsible for Developing the EJBs • Provide “Tools” and “Components” for Down-Stream Usage • Application Assemblers • Individuals that Utilize Pre-Built EJBs to Construct Their Domain-Specific Applications • Utilize “State-of-Art-Tools” for EJB and JB
EJB Component-Based Architecture EJB Server Invoke EJB Methods Invoke EJB Container Methods Enterprise Java Bean EJB Client EJB Container
Two-Tier, Three-Tier, Four-Tier Example Architectures From: http://java.sun.com/javaone/javaone98/sessions/T400/index.html
Wombat Securities • Web Access to Brokerage Accounts • Only HTML Browser Required on Front End • "Brokerbean" EJB Provides Business Logic • Login, Query, Trade Servlets Call Brokerbean • Use JNDI to Find EJBs, RMI to Invoke Them • Order and History Records from Java Blend Product • Records Mapped to Oracle Tables, JDBC Calls
Nocturnal Aviation, Inc. • Passenger Check-in for Regional Airline • Local Database for Seating on Today's Flights • Clients Invoke EJBs at Local Site Through RMI • EJBs Update Database and Queue Updates • JMS Queues Updates to Legacy System • DBC API Used to Access Local Database • JTS Synchs Remote Queue With Local Updates
Santa Cruz Widgets • Small Manufacturer Previously on C++ • New Order Entry, Inventory, and Invoicing Applications in Java Programming Language • Existing Customer and Order Database • Most of Business Logic in Stored Procedures • Tool-generated GUI Forms for Java Objects • Located Company on Web Using Widgets and Tcl, but Not Widgets and Java
Architecture Comparisons • Two-tier Through JDBC API: Simplest • Multi-tier: Separate Business Logic, Protect Database Integrity, More Scaleable • JMS Queues Vs Synchronous (RMI or IDL): • Availability, Response Time, Decoupling • JMS Publish & Subscribe: Off-line Notification RMI IIOP Vs JRMP Vs Java IDL: • Standard Cross-language Calls or Full Java Functionality • JTS: Distributed Integrity, Lockstep Actions
Further API Comparisons • Servlets: Simplifies HTML, Connections, Web Front-Ending Legacy Systems • EJBs: Simplifies Components, Scalability, Transactions, Multi-threading, Security, State • JDBC Vs ODMG Vs SQLJ API: • Programming Simplicity, Portability, SQL Knowledge • JNDI: Standardized Name Service Access • Enterprise Java APIs vs. Proprietary: • Multi-Platform, Multiple Providers
Summary & Key Messages • Enterprise Java APIs: EJB, JNDI, Java IDL, RMI, JDBC, ODMG, SQLJ, JMS, JTS, JMAPI, Servlets • Wide Variety of Architectural Alternatives: • Synchronous/Asynchronous, Multi-Tier, Transactional, HTTP/JRMP/IIOP • Benefits: • WORA Portability • Multiple Vendors • Legacy Connectivity • Java Programming Language Productivity
What Is the Java Blend Product? • Product That Integrates Java Programming Language Objects With Enterprise Data • Provides a Single Object Model Based on Java Programming Language Classes • Automatic Persistent Storage for Java Application Objects • Easy, Automatic Access to Existing Relational Databases From Java Applications • Result of Joint Development by the Javasoft Division, Baan and Tech@spree
JavaBlend Applications • JavaBlend Software Provides Mapping Capability Between Database Tables and Java Application Classes • Programmer Deals Only With Java Programming Language Objects, and Does Not Need to Know SQL or Database Representation
Java Blend Components • Flexible Development Tool for Automatic Bi-Directional Mapping • Objects to Relational • Relational to Objects • Powerful Runtime Environment • Transaction Management System • Query Processor • Cache Management System
Java Blend Software and Enterprise JavaBeans Technology • EJB Technology Provides Scaleable Component Architecture for Business Applications • Java Blend Product Provides Transparent Persistence for Enterprise Javabeans Technology • Beans Implementing Business Logic Use Java Blend for Database Access • Java Blend Product Works With the Enterprise Javabeans API Transaction Mechanisms
Concluding RemarksEnterprise Computing/Interoperability • Technologies Continue to Emerge and Mature • Complex Problem for Companies and Organizations • What are “Good” and “Stable” Technologies? • How can they be Leveraged for Gain? • Which Technologies Will Emerge in Short-Term and Long-Term? • How will Technologies Interact? • CORBA vs. DCOM vs. EJB • Java vs. Component Design/Programming • Heterogeneous Agent Platforms • Future Difficult to Predict!