Download
java beans and enterprise java beans n.
Skip this Video
Loading SlideShow in 5 Seconds..
Java Beans and Enterprise Java Beans PowerPoint Presentation
Download Presentation
Java Beans and Enterprise Java Beans

Java Beans and Enterprise Java Beans

175 Vues Download Presentation
Télécharger la présentation

Java Beans and Enterprise Java Beans

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. 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

  2. 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?

  3. 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)

  4. 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

  5. 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

  6. 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

  7. 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.

  8. 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

  9. EJB Roles & Deployment

  10. Utilizing EJB Technology

  11. 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

  12. EJB Container

  13. Enterprise Java APIs

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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)

  20. WebLogic IBM Oracle GemStone BEA Borland Netscape Lotus Forte Progress Novell Novera Borland Informix IONA More... Who’s Announced EJB Support?

  21. 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

  22. EJB Component-Based Architecture EJB Server Invoke EJB Methods Invoke EJB Container Methods Enterprise Java Bean EJB Client EJB Container

  23. Client-Server Component Model

  24. Two-Tier, Three-Tier, Four-Tier Example Architectures From: http://java.sun.com/javaone/javaone98/sessions/T400/index.html

  25. 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

  26. Four-Tier Architecture Example

  27. 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

  28. Three-Tier Example

  29. 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

  30. Santa Cruz Widgets (2-tier)

  31. 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

  32. 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

  33. 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

  34. EJB Roadmap

  35. 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

  36. 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

  37. 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

  38. Java Blend Runtime Architecture

  39. 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

  40. 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!