Presentation is loading. Please wait.

Presentation is loading. Please wait.

EJB-1.1 CSE298 CSE300 CSE333 Java Beans and Enterprise Java Beans Paul C. Barr The Mitre Corporation Eatontown NJ Kimble Cheron and Prof.

Similar presentations


Presentation on theme: "EJB-1.1 CSE298 CSE300 CSE333 Java Beans and Enterprise Java Beans Paul C. Barr The Mitre Corporation Eatontown NJ Kimble Cheron and Prof."— Presentation transcript:

1 EJB-1.1 CSE298 CSE300 CSE333 Java Beans and Enterprise Java Beans Paul C. Barr The Mitre Corporation Eatontown NJ poobarr@mitre.org Kimble Cheron and Prof. Steven A. Demurjian Computer Science & Engr. Dept. steve@engr.uconn.edu http://www.engr.uconn.edu/~steve (860) 486 - 4818

2 EJB-1.2 CSE298 CSE300 CSE333 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 EJB-1.3 CSE298 CSE300 CSE333Components  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 EJB-1.4 CSE298 CSE300 CSE333Overview  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 EJB-1.5 CSE298 CSE300 CSE333 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 EJB-1.6 CSE298 CSE300 CSE333 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 EJB-1.7 CSE298 CSE300 CSE333 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 EJB-1.8 CSE298 CSE300 CSE333 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-1.9 CSE298 CSE300 CSE333 EJB Roles & Deployment

10 EJB-1.10 CSE298 CSE300 CSE333 Utilizing EJB Technology

11 EJB-1.11 CSE298 CSE300 CSE333 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-1.12 CSE298 CSE300 CSE333 EJB Container

13 EJB-1.13 CSE298 CSE300 CSE333 Enterprise Java APIs

14 EJB-1.14 CSE298 CSE300 CSE333 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 EJB-1.15 CSE298 CSE300 CSE333 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 EJB-1.16 CSE298 CSE300 CSE333 Model for Persistence Passivation/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 EJB-1.17 CSE298 CSE300 CSE333 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 EJB-1.18 CSE298 CSE300 CSE333 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 EJB-1.19 CSE298 CSE300 CSE333 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 EJB-1.20 CSE298 CSE300 CSE333 Who’s Announced EJB Support?  WebLogic  IBM  Oracle  GemStone  BEA  Borland  Netscape  Lotus  Forte  Progress  Novell  Novera  Borland  Informix  IONA  More...

21 EJB-1.21 CSE298 CSE300 CSE333 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-1.22 CSE298 CSE300 CSE333 EJB Component-Based Architecture EJB Client EJB Container EJB Server Enterprise Java Bean Invoke EJB Container Methods Invoke EJB Methods

23 EJB-1.23 CSE298 CSE300 CSE333 Client-Server Component Model

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

25 EJB-1.25 CSE298 CSE300 CSE333 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 EJB-1.26 CSE298 CSE300 CSE333 Four-Tier Architecture Example

27 EJB-1.27 CSE298 CSE300 CSE333 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 EJB-1.28 CSE298 CSE300 CSE333 Three-Tier Example

29 EJB-1.29 CSE298 CSE300 CSE333 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 EJB-1.30 CSE298 CSE300 CSE333 Santa Cruz Widgets (2-tier)

31 EJB-1.31 CSE298 CSE300 CSE333 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 EJB-1.32 CSE298 CSE300 CSE333 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 EJB-1.33 CSE298 CSE300 CSE333 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-1.34 CSE298 CSE300 CSE333 EJB Roadmap

35 EJB-1.35 CSE298 CSE300 CSE333 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 EJB-1.36 CSE298 CSE300 CSE333 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 EJB-1.37 CSE298 CSE300 CSE333 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 EJB-1.38 CSE298 CSE300 CSE333 Java Blend Runtime Architecture

39 EJB-1.39 CSE298 CSE300 CSE333 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 EJB-1.40 CSE298 CSE300 CSE333 Concluding Remarks Concluding Remarks Enterprise 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!


Download ppt "EJB-1.1 CSE298 CSE300 CSE333 Java Beans and Enterprise Java Beans Paul C. Barr The Mitre Corporation Eatontown NJ Kimble Cheron and Prof."

Similar presentations


Ads by Google