Date post: | 21-Jan-2016 |
Category: |
Documents |
Upload: | valentine-miles |
View: | 222 times |
Download: | 0 times |
EJB-1.1
CSE298
CSE300
CSE333
Java Beans andJava Beans andEnterprise Java BeansEnterprise Java Beans
Paul C. BarrThe Mitre Corporation
Eatontown NJ
Kimble Cheron andProf. Steven A. Demurjian
Computer Science & Engr. Dept.
[email protected]://www.engr.uconn.edu/
~steve(860) 486 - 4818
EJB-1.2
CSE298
CSE300
CSE333
Changing PerspectivesChanging Perspectives
Computers are Guilty of Creating More Disorder Computers are Guilty of Creating More Disorder then Simplicitythen Simplicity
Current Software Systems are RelicsCurrent 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 MoldDesigner’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?What is Available to Assist in Changing Times?
EJB-1.3
CSE298
CSE300
CSE333
ComponentsComponents
Reusable Software Building BlocksReusable Software Building Blocks Pre-Constructed from Encapsulated Application Pre-Constructed from Encapsulated Application
CodeCode Easily Combined with Other Components Seamlessly Merged with Custom Code Rapid Prototyping of Complete Applicaiton
What is a Component?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)
EJB-1.4
CSE298
CSE300
CSE333
OverviewOverview
A First Look at Java BeansA First Look at Java Beans What are They and How are They Utilized?
Enterprise Java BeansEnterprise 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 EJBMulti-Tiered Architecture and EJB Tiered Development for Extensibility Comparisons of Approaches
Java Blend for Database InteroperabilityJava Blend for Database Interoperability Overall Concluding RemarksOverall Concluding Remarks
EJB-1.5
CSE298
CSE300
CSE333
Java BeansJava Beans
Extends "Write Once, Run Anywhere (WORA)Extends "Write Once, Run Anywhere (WORA)TMTM" " to Include "Reuse Everywhere”to Include "Reuse Everywhere”
What is a Bean?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
EJB-1.6
CSE298
CSE300
CSE333
Java BeansJava Beans
Bean vs. ComponentBean vs. Component Source Code Inaccessible Customizable to Suit Application Needs via
External Properties Powerful Means of Reuse
ExamplesExamples 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 Properties Can be Very Complex and Offer
Significant Power to Application BuildersSignificant Power to Application Builders
EJB-1.7
CSE298
CSE300
CSE333
What are Enterprise Java Beans ?What are Enterprise Java Beans ?
Expansion of Java Beans (Client-side) to Support Expansion of Java Beans (Client-side) to Support Server Side Reusable ComponentsServer Side Reusable Components Server Components Run on Application Server EJB Integral Part of Java Technology
Component Architecture for Distributed Systems 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 WareFramework for Creating Middle Ware Integration of “New” and “Old” Technologies RMI, IIOP, CORBA, RPC, Active X, etc.
EJB-1.8
CSE298
CSE300
CSE333
Designer and Developer Roles in Designer and Developer Roles in Enterprise Java Beans (EJB)Enterprise Java Beans (EJB)
Towards Towards “Highly Scalable, Highly Available, “Highly Scalable, Highly Available, Highly Reliable, Highly Secure, Transaction Highly Reliable, Highly Secure, Transaction Distributed Applications”Distributed Applications”
Enterprise Bean Provider Enterprise Bean Provider Creates and Sells EJBs
Application Assembler Application Assembler Uses EJBs to Build an Application
EJB Server Provider EJB Server Provider Creates and Sells EJB Server
EJB Container Provider EJB Container Provider Creates and Sells EJB Containers Server Provider Will Likely Provide Containers
EJB-1.9
CSE298
CSE300
CSE333
EJB Roles & DeploymentEJB Roles & Deployment
EJB-1.10
CSE298
CSE300
CSE333
Utilizing EJB TechnologyUtilizing EJB Technology
EJB-1.11
CSE298
CSE300
CSE333
The EJB ArchitectureThe EJB Architecture
EJB Servers: Analogous to CORBA ORB EJB Servers: Analogous to CORBA ORB Server Software Provides Naming and Transaction Services Makes Containers Visible
EJB Containers: Interface Between EJB Bean and EJB Containers: Interface Between EJB Bean and Outside World Outside World Client Never Accesses Bean Directly Access via Container-Generated Methods These Methods Then Call the Bean’s Methods
EJB Clients EJB Clients Locate EJB Containers Via JNDI Make Use of EJB Beans
Enterprise Java Beans - Discussed ShortlyEnterprise Java Beans - Discussed Shortly
EJB-1.12
CSE298
CSE300
CSE333
EJB ContainerEJB Container
EJB-1.13
CSE298
CSE300
CSE333
Enterprise Java APIsEnterprise Java APIs
EJB-1.14
CSE298
CSE300
CSE333
Enterprise Java Beans Enterprise Java Beans Session BeansSession Beans
Associated With a Particular ClientAssociated With a Particular Client Performs Operations on Behalf of ClientPerforms Operations on Behalf of Client
Accessing a Database Performing Calculations
Created and Destroyed by a Client Created and Destroyed by a Client Can be Transactional - But, Do Not Survive Can be Transactional - But, Do Not Survive
System ShutdownSystem Shutdown Can be Stateless or Maintain Conventional State Can be Stateless or Maintain Conventional State
Across Methods and TransactionsAcross Methods and Transactions Must Manage Own Persistent DataMust Manage Own Persistent Data
EJB-1.15
CSE298
CSE300
CSE333
Enterprise Java Beans Enterprise Java Beans Entity BeansEntity Beans
Object Representation of Persistent Data Object Representation of Persistent Data Maintained in Permanent Store (DatabaseMaintained in Permanent Store (Database
Identifiable by Primary KeyIdentifiable by Primary Key Shared by Multiple Clients Shared by Multiple Clients Persist Across Multiple Invocations Persist Across Multiple Invocations Survive System ShutdownSurvive System Shutdown Created byCreated by
Inserting Data into Database Creating an Object Instance
EJB-1.16
CSE298
CSE300
CSE333
Model for PersistenceModel for PersistencePassivation/ActivationPassivation/Activation
Programmatic Model for Managing Persistent Programmatic Model for Managing Persistent ObjectsObjects
EJB Server has the Right to Manage its Working EJB Server has the Right to Manage its Working Set Set
Passivation Passivation Saves State of a Bean to Persistent Storage Then Swaps Bean Out
Activation Activation Restores State of a Bean From Persistent Storage,Then Swaps Bean in
Applies to Both Session and Entity BeansApplies to Both Session and Entity Beans
EJB-1.17
CSE298
CSE300
CSE333
Stateless vs. Stateful Session BeansStateless vs. Stateful Session Beans
Stateless Stateless No Internal State Do Not Need to Be "Pass-ivated" Can Be Pooled to Service Multiple Clients
Stateful Stateful Possess Internal State Need to Handle Passivation/Activation One Per Client
EJB-1.18
CSE298
CSE300
CSE333
Entity Bean PersistenceEntity Bean Persistence
Container-Managed Container-Managed Container is Responsible for Saving State In Deployment Descriptor, Specify Container-
Managed Fields Persistence Independent of Data Source
Bean-Managed Bean-Managed Bean is Responsible for Saving its Own State Container Doesn’t Need to Generate DB Calls Less Adaptable; Persistence is Hard-Coded
EJB-1.19
CSE298
CSE300
CSE333
Deploying EJBsDeploying EJBs
EJBs Deployed As .SER Files: EJBs Deployed As .SER Files: Serialized InstanceSerialized Instance Manifest File Used to List EJBs Manifest File Used to List EJBs Must Also Provide a “Deployment Descriptor” Must Also Provide a “Deployment Descriptor” Sample Entry Sample Entry
Name: paul.RestaurantDeployment.ser Enterprise-Bean: True
“ “Name” Line Name” Line Describes a Serialized Deployment Descriptor
“ “Enterprise-Bean” Line Enterprise-Bean” Line Indicates Whether the Entry Should Be Treated
as an EJB (Not All Entries Need to Be EJBs)
EJB-1.20
CSE298
CSE300
CSE333
Who’s Announced EJB Support?Who’s Announced EJB Support?
WebLogic WebLogic IBM IBM Oracle Oracle GemStone GemStone BEA BEA Borland Borland Netscape Netscape LotusLotus
Forte Forte Progress Progress Novell Novell Novera Novera Borland Borland Informix Informix IONA IONA More...More...
EJB-1.21
CSE298
CSE300
CSE333
Typical Development and Deployment Typical Development and Deployment ScenarioScenario
EJB Server Provider EJB Server Provider Creates and Sells an EJB Server Provides EJB Containers That Will Run on
These Servers EJB ProvidersEJB Providers
Individuals Responsible for Developing the EJBs
Provide “Tools” and “Components” for Down-Stream Usage
Application AssemblersApplication Assemblers Individuals that Utilize Pre-Built EJBs to
Construct Their Domain-Specific Applications Utilize “State-of-Art-Tools” for EJB and JB
EJB-1.22
CSE298
CSE300
CSE333
EJB Component-Based ArchitectureEJB Component-Based Architecture
EJB Client
EJB Container
EJB Server
Enterprise Java Bean
Invoke EJB Container Methods
Invoke EJB Methods
EJB-1.23
CSE298
CSE300
CSE333
Client-Server Component ModelClient-Server Component Model
EJB-1.24
CSE298
CSE300
CSE333
Two-Tier, Three-Tier, Four-Tier Two-Tier, Three-Tier, Four-Tier Example ArchitecturesExample Architectures
From: http://java.sun.com/javaone/javaone98/sessions/T400/index.html
EJB-1.25
CSE298
CSE300
CSE333
Wombat SecuritiesWombat Securities
Web Access to Brokerage Accounts Web Access to Brokerage Accounts Only HTML Browser Required on Front End Only HTML Browser Required on Front End "Brokerbean" EJB Provides Business Logic "Brokerbean" EJB Provides Business Logic Login, Query, Trade Servlets Call Brokerbean Login, Query, Trade Servlets Call Brokerbean Use JNDI to Find EJBs, RMI to Invoke ThemUse JNDI to Find EJBs, RMI to Invoke Them Order and History Records from Java Blend Order and History Records from Java Blend
Product Product Records Mapped to Oracle Tables, JDBC Calls Records Mapped to Oracle Tables, JDBC Calls
EJB-1.26
CSE298
CSE300
CSE333
Four-Tier Architecture ExampleFour-Tier Architecture Example
EJB-1.27
CSE298
CSE300
CSE333
Nocturnal Aviation, Inc.Nocturnal Aviation, Inc.
Passenger Check-in for Regional Airline Passenger Check-in for Regional Airline Local Database for Seating on Today's Flights Local Database for Seating on Today's Flights Clients Invoke EJBs at Local Site Through RMI Clients Invoke EJBs at Local Site Through RMI EJBs Update Database and Queue Updates EJBs Update Database and Queue Updates JMS Queues Updates to Legacy System JMS Queues Updates to Legacy System DBC API Used to Access Local Database DBC API Used to Access Local Database JTS Synchs Remote Queue With Local UpdatesJTS Synchs Remote Queue With Local Updates
EJB-1.28
CSE298
CSE300
CSE333
Three-Tier ExampleThree-Tier Example
EJB-1.29
CSE298
CSE300
CSE333
Santa Cruz WidgetsSanta Cruz Widgets
Small Manufacturer Previously on C++ Small Manufacturer Previously on C++ New Order Entry, Inventory, and Invoicing New Order Entry, Inventory, and Invoicing
Applications in Java Programming Language Applications in Java Programming Language Existing Customer and Order Database Existing Customer and Order Database Most of Business Logic in Stored Procedures Most of Business Logic in Stored Procedures Tool-generated GUI Forms for Java ObjectsTool-generated GUI Forms for Java Objects Located Company on Web Using Widgets and Tcl, Located Company on Web Using Widgets and Tcl,
but Not Widgets and Javabut Not Widgets and Java
EJB-1.30
CSE298
CSE300
CSE333
Santa Cruz Widgets (2-tier) Santa Cruz Widgets (2-tier)
EJB-1.31
CSE298
CSE300
CSE333
Architecture ComparisonsArchitecture Comparisons
Two-tier Through JDBC API: Simplest Two-tier Through JDBC API: Simplest Multi-tier: Separate Business Logic, Protect Multi-tier: Separate Business Logic, Protect
Database Integrity, More Scaleable Database Integrity, More Scaleable JMS Queues Vs Synchronous (RMI or IDL): JMS Queues Vs Synchronous (RMI or IDL):
Availability, Response Time, Decoupling JMS Publish & Subscribe: Off-line Notification JMS Publish & Subscribe: Off-line Notification
RMI IIOP Vs JRMP Vs Java IDL: RMI IIOP Vs JRMP Vs Java IDL: Standard Cross-language Calls or Full Java
Functionality JTS: Distributed Integrity, Lockstep ActionsJTS: Distributed Integrity, Lockstep Actions
EJB-1.32
CSE298
CSE300
CSE333
Further API ComparisonsFurther API Comparisons
Servlets: Simplifies HTML, Connections, Web Servlets: Simplifies HTML, Connections, Web Front-Ending Legacy SystemsFront-Ending Legacy Systems
EJBs: Simplifies Components, Scalability, EJBs: Simplifies Components, Scalability, Transactions, Multi-threading, Security, StateTransactions, Multi-threading, Security, State
JDBC Vs ODMG Vs SQLJ API: JDBC Vs ODMG Vs SQLJ API: Programming Simplicity, Portability, SQL
Knowledge JNDI: Standardized Name Service Access JNDI: Standardized Name Service Access Enterprise Java APIs vs. Proprietary: Enterprise Java APIs vs. Proprietary:
Multi-Platform, Multiple Providers
EJB-1.33
CSE298
CSE300
CSE333
Summary & Key MessagesSummary & Key Messages
Enterprise Java APIs: EJB, JNDI, Java IDL, RMI, Enterprise Java APIs: EJB, JNDI, Java IDL, RMI, JDBC, ODMG, SQLJ, JMS, JTS, JMAPI, Servlets JDBC, ODMG, SQLJ, JMS, JTS, JMAPI, Servlets
Wide Variety of Architectural Alternatives: Wide Variety of Architectural Alternatives: Synchronous/Asynchronous, Multi-Tier,
Transactional, HTTP/JRMP/IIOP Benefits: Benefits:
WORA Portability Multiple Vendors Legacy Connectivity Java Programming Language Productivity
EJB-1.34
CSE298
CSE300
CSE333
EJB RoadmapEJB Roadmap
API Specification Complete ProductsEJB JavaSoft 1.0Q1 See PartnersJNDI JavaSoft 1.0 done Download SPJIDL OMG 1.0 Q2 JDK 1.2RMI JavaSoft 1.0 done JDK 1.1JDBC JavaSoft 2.0 Q2 JDK 1.2 PartnerODMG Consortium 2.0 done JavaBlendSQLJ Consortium 1.0 Q2 See PartnersJMS JavaSoft 1.0 Q2 See PartnersJTS OMG 1.0 done PartnersJMAPI JavaSoft 1.0 Q2 See PartnersSevlets JavaSoft 1.1 done Java Web Server
EJB-1.35
CSE298
CSE300
CSE333
What Is the Java Blend Product?What Is the Java Blend Product?
Product That Integrates Java Programming Product That Integrates Java Programming Language Objects With Enterprise Data Language Objects With Enterprise Data
Provides a Single Object Model Based on Java Provides a Single Object Model Based on Java Programming Language ClassesProgramming 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 Result of Joint Development by the Javasoft
Division, Baan and Tech@spree Division, Baan and Tech@spree
EJB-1.36
CSE298
CSE300
CSE333
JavaBlend ApplicationsJavaBlend Applications
JavaBlend Software Provides Mapping Capability JavaBlend Software Provides Mapping Capability Between Database Tables and Java Application Between Database Tables and Java Application ClassesClasses
Programmer Deals Only With Java Programming Programmer Deals Only With Java Programming Language Objects, and Does Not Need to Know Language Objects, and Does Not Need to Know SQL or Database RepresentationSQL or Database Representation
EJB-1.37
CSE298
CSE300
CSE333
Java Blend ComponentsJava Blend Components
Flexible Development Tool for Automatic Flexible Development Tool for Automatic Bi-Directional MappingBi-Directional Mapping Objects to Relational Relational to Objects
Powerful Runtime EnvironmentPowerful Runtime Environment Transaction Management System Query Processor Cache Management System
EJB-1.38
CSE298
CSE300
CSE333
Java Blend Runtime ArchitectureJava Blend Runtime Architecture
EJB-1.39
CSE298
CSE300
CSE333
Java Blend Software and Enterprise Java Blend Software and Enterprise JavaBeans Technology JavaBeans Technology
EJB Technology Provides Scaleable Component EJB Technology Provides Scaleable Component Architecture for Business ApplicationsArchitecture for Business Applications
Java Blend Product Provides Transparent Java Blend Product Provides Transparent Persistence for Enterprise Javabeans TechnologyPersistence 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
EJB-1.40
CSE298
CSE300
CSE333
Concluding RemarksConcluding Remarks Enterprise Computing/Interoperability
Technologies Continue to Emerge and MatureTechnologies Continue to Emerge and Mature Complex Problem for Companies and Complex Problem for Companies and
OrganizationsOrganizations 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!Future Difficult to Predict!