Java Beans and Enterprise Java Beans

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

description

Java Beans and Enterprise Java Beans. Kimble Cheron and Prof. Steven A. Demurjian Computer Science & Engr. Dept. [email protected] http://www.engr.uconn.edu/~steve (860) 486 - 4818. Paul C. Barr The Mitre Corporation Eatontown NJ [email protected]. Changing Perspectives. - PowerPoint PPT Presentation

Transcript of Java Beans and Enterprise Java Beans

Page 1: Java Beans and Enterprise Java Beans

EJB-1.1

CSE298

CSE300

CSE333

Java Beans andJava Beans andEnterprise Java BeansEnterprise Java Beans

Paul C. BarrThe Mitre Corporation

Eatontown NJ

[email protected]

Kimble Cheron andProf. Steven A. Demurjian

Computer Science & Engr. Dept.

[email protected]://www.engr.uconn.edu/

~steve(860) 486 - 4818

Page 2: Java Beans and Enterprise Java Beans

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?

Page 3: Java Beans and Enterprise Java Beans

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)

Page 4: Java Beans and Enterprise Java Beans

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

Page 5: Java Beans and Enterprise Java Beans

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

Page 6: Java Beans and Enterprise Java Beans

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

Page 7: Java Beans and Enterprise Java Beans

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.

Page 8: Java Beans and Enterprise Java Beans

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

Page 9: Java Beans and Enterprise Java Beans

EJB-1.9

CSE298

CSE300

CSE333

EJB Roles & DeploymentEJB Roles & Deployment

Page 10: Java Beans and Enterprise Java Beans

EJB-1.10

CSE298

CSE300

CSE333

Utilizing EJB TechnologyUtilizing EJB Technology

Page 11: Java Beans and Enterprise Java Beans

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

Page 12: Java Beans and Enterprise Java Beans

EJB-1.12

CSE298

CSE300

CSE333

EJB ContainerEJB Container

Page 13: Java Beans and Enterprise Java Beans

EJB-1.13

CSE298

CSE300

CSE333

Enterprise Java APIsEnterprise Java APIs

Page 14: Java Beans and Enterprise Java Beans

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

Page 15: Java Beans and Enterprise Java Beans

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

Page 16: Java Beans and Enterprise Java Beans

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

Page 17: Java Beans and Enterprise Java 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

Page 18: Java Beans and Enterprise Java Beans

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

Page 19: Java Beans and Enterprise Java Beans

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)

Page 20: Java Beans and Enterprise Java Beans

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

Page 21: Java Beans and Enterprise Java Beans

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

Page 22: Java Beans and Enterprise Java Beans

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

Page 23: Java Beans and Enterprise Java Beans

EJB-1.23

CSE298

CSE300

CSE333

Client-Server Component ModelClient-Server Component Model

Page 24: Java Beans and Enterprise Java Beans

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

Page 25: Java Beans and Enterprise Java Beans

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

Page 26: Java Beans and Enterprise Java Beans

EJB-1.26

CSE298

CSE300

CSE333

Four-Tier Architecture ExampleFour-Tier Architecture Example

Page 27: Java Beans and Enterprise Java Beans

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

Page 28: Java Beans and Enterprise Java Beans

EJB-1.28

CSE298

CSE300

CSE333

Three-Tier ExampleThree-Tier Example

Page 29: Java Beans and Enterprise Java Beans

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

Page 30: Java Beans and Enterprise Java Beans

EJB-1.30

CSE298

CSE300

CSE333

Santa Cruz Widgets (2-tier) Santa Cruz Widgets (2-tier)

Page 31: Java Beans and Enterprise Java Beans

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

Page 32: Java Beans and Enterprise Java Beans

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

Page 33: Java Beans and Enterprise Java Beans

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

Page 34: Java Beans and Enterprise Java Beans

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

Page 35: Java Beans and Enterprise Java Beans

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

Page 36: Java Beans and Enterprise Java Beans

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

Page 37: Java Beans and Enterprise Java Beans

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

Page 38: Java Beans and Enterprise Java Beans

EJB-1.38

CSE298

CSE300

CSE333

Java Blend Runtime ArchitectureJava Blend Runtime Architecture

Page 39: Java Beans and Enterprise Java Beans

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

Page 40: Java Beans and Enterprise Java Beans

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!