Download presentation
Presentation is loading. Please wait.
Published byValentine Miles Modified over 9 years ago
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!
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.