g22 3033 011 c111 - nyu.edu · 6 11 ejb component/programming model 12 entity beans in ejb...
Post on 03-Apr-2020
1 Views
Preview:
TRANSCRIPT
1
1
Application ServersG22.3033-011
Session 11 - Main ThemeXML-Based Capabilities
in Component-Based Environments
Dr. Jean-Claude Franchitti
New York UniversityComputer Science Department
Courant Institute of Mathematical Sciences
2
Agenda
Channel Independence and Pervasive DevicesConnected Devices
XML in Component-Based Development EnvironmentsXML and JavaBeans/EJBsDeployment Descriptors for OMA ServicesMore on the OMA Persistence Service
EAI EnvironmentsB2Bi Environments (e.g., WebMethods Framework)SummaryReadingsAssignment #8 (will be handed out on 11/26, due: 12/10)
2
3
Summary of Previous Session
Web-Enabling Facilities (continued)Java Web Start (JWS)
COM / DCOM Component Model and OLECOM+ MTS Services: Transactions and SecurityCOM+ Message QueuingSummaryReadingsAssignment #7 (continued)
4
Application Servers ArchitecturesApplication Servers for Enhanced HTML (traditional)
a.k.a., Page-Based Application ServersMostly Used to Support Standalone Web Applications
New Generation Page-Based Script-Oriented App. ServersFirst Generation Extensions (e.g., Microsoft IIS with COM+/ASP)Servlet/JSP EnvironmentsXSP EnvironmentCan now be used as front-end to enterprise applicationsHybrid development environments
Distributed Object Computing PlatformsProvide an infrastructure for distributed communications enablingStill need to merge traditional web-oriented computing with object computing
Object Management ArchitecturesDOC Platform + APIs to reusable services and facilities
OMAs + Component Models -> J2EE, CCM, DNAMDAs with Web Services- and Channels/B2Bi-Enabling services
3
5
Part I
Connected Devices
Also See Session 6 Handout on:“The Basics of the Palm Platform and the PalmOS Emulator”
6
XML Tools for Information Appliances
See http://www.topxml.com/java/articles/javaxml/3.aspJava Soap library
KVM kSOAP (http://ksoap.enhydra.org/)
Environment Needed to Run XML-Based Java ApplicationsJava KVM for J2ME
Java Kilobyte Virtual Machine (KVM) designed to operate with as littleas 160 to 512 KB of memory
NanoXMLLightweight DOM-style XML parser and document generator
Palm OS Emulator (POSE)Software that emulates the hardware of different Palm devices (Palm III,Vx, VII, etc.)Can be used as a unit testing platform
Also See http://webdev.apl.jhu.edu/~rbe/kvm/
4
7
Sample Palm ApplicationBeaming contact information from a custom Palm database
8
Part II
XML in Component-Based Environment:(1) XML and JavaBeans/EJBs
(2) Deployment Descriptors for OMA Services (3) More on the Persistence Service
(focused on EJBs as CCM is nascent)
Also See Session 6 Handouts on:“Enterprise JavaBeans Patterns”
“Persistence in EJB Frameworks”“Efficient CMP Development”
5
9
XML Support for JavaBeans and EJBs
XML and JavaBeans integratione.g., BML, Coins, etc.
JavaBeans and EJB state persistence using XMLXML serialization for Java (e.g., Koala, etc.)
XML Application Services as JavaBeans/EJBse.g., Parsing, rendering, querying, messaging beans
10
Towards XML Model Based Computing
Step 1: Document Object ModelStep 2: XML Data BindingStep 3: Standard XML Information ModelsStep 4: XML Application Services Frameworks
Processing, Rendering, Querying, Secure Messaging
Step 5: XML-Based “Web Object Model”Web Services Architecture
Step 6: XML Model Driven Architectures (to come)
6
11
EJB Component/Programming Model
12
Entity Beans in EJB Application ServersRepresent sets of data (all or part of a database table or a view)Functionality limited to creation, update, and deletion of dataManage persistence of dataMaintained in a cacheCan be container or bean managed
Container-managed beans are under the control of an applicationserver for persistence and transaction managementContainer-managed beans are restricted in the type andcomplexity of data they can manageBean-managed beans rely on user provided code for persistenceand transaction management
7
13
Session Beansin EJB Application Servers
Handle the business logic of EJB applicationsMay use multiple entity beans to gather application data
14
Anatomy of a CMP BeanEJB remote interface (extends javax.ejb.EJBObject)
Contains method signatures for any method that accesses or modifies datastored in the bean
EJB remote implementation (implements javax.ejb.EntityBean)Provides an implementation of all the methods defined in the remote interface,in addition to methods required by the application server
EJB home interface (extends javax.ejb.EJBHome interface)Declares method signatures for any method that creates new instances of thebean, and for all methods that are used to retrieve instances of the bean (findermethods
EJB keyContains the unique primary key implementation for the beanany class that is a legal value type in RMI-IIOP
8
15
Anatomy of a CMP Bean(continued)
EJB finder helper interface (optional)Contains one static java.lang.String field for each finder method declared inthe EJB home interfaceStrings are initialized with SQL queries executed dynamically when beaninstances are retrieved in a finder methodSome server ignore this file and put queries in XML deployment descriptorsusing proprietary query language formats
Deployment descriptor (XML -> serialized data object)Names of EJB classes/interfaces, list of persistent fields, etc.
Database scriptsApplication server may generate them
16
EJB Generation(e.g., IBM EJBMaker, BEA WebGain Studio)
<?xml version="1.0"?> <!DOCTYPE ejbmaker SYSTEM "ejbmaker.dtd"> <ejbmaker> <!—default attributes for beans --> <transaction-attr>TX_REQUIRED</transaction-attr> <isolation-level>SERIALIZABLE</isolation-level> <run-as-mode>SPECIFIED_IDENTITY</run-as-mode> <re-entrant>false</re-entrant>
<!—A Simple Account CMP entity EJB --> <bean name = "Account" type = "entity"> <persistent_field dt="int" col_dt="INTEGER"> ACCTNUMBER </persistent_field> <persistent_field dt="java.lang.String" col_dt="VARCHAR(13)"> SSN </persistent_field> <persistent_field dt="double" col_dt="DOUBLE"> BALANCE </persistent_field> <finder_method name="findNegativeAcct"> <sql> SELECT * FROM EJB.ACCOUNTBEANTBL WHERE BALANCE < 0 </sql> </finder_method> </bean> </ejbmaker>
9
17
Container Managed Persistence Architecture
18
Bean Managed Persistence Architecture
10
19
EJB Development Approach 1
Handcode Everything: EJB remote interface EJB remote implementation EJB home interface EJB key EJB finder helper interface Deployment descriptor Database scripts
20
EJB Development Approach #2:Handcode the Bean and Descriptor
11
21
EJB Development Approach #3:Graphical Bean and Descriptor Generator
22
Four Patterns for Managing Persistence
Pattern Entity Mgt. UsesEntityBeans
UsesSessionBeans
1. Container-managedEntity Beans withSession Beans
Container Yes Yes
2. Bean-managedEntity Beans withSession Beans
Bean Yes Yes
3. Entity Beans Only Container Yes No*4. Session Beans Only N/A No Yes* Session beans are used in this example for complex databaseinteractions, but they do not serve as a front-end for Entity beans.Instead, they access the database directly as an Entity bean would.
12
23
Container-Managed Entity Beans + Session Beans
EntityManagement
Uses EntityBeans
UsesSessionBeans
Container Yes Yes
DatabaseJDBCSessionBeansClient
Application Server
EntityBeans
24
Beans-Managed Entity Beans + Session Beans
EntityManagement
Uses EntityBeans
UsesSessionBeans
Bean Yes Yes
DatabaseJDBCSessionBeansClient
Application Server
EntityBeans
13
25
Entity Beans Only
EntityManagement
Uses EntityBeans
UsesSessionBeans
Container Yes No
Database
JDBC
Client
Application Server
EntityBeans
JDBCSessionBeans
26
Session Beans Only
EntityManagement
Uses EntityBeans
UsesSessionBeans
N/A No Yes
DatabaseJDBCSessionBeansClient
Application Server
14
27
Performance Characteristics
Max
Avg
90th
Min
StdD
ev
0.001.002.003.004.005.006.007.008.00
Pattern Comparison400 users, 50 iterations, 4 server
instances/200MB
S e ssion Only 6.36 0.20 0.15 0.02 0.612
Cont a ine r Ma na ge d 6.74 0.31 0.79 0.04 0.706
Be an Mana ge d 7.02 0.31 0.95 0.04 0.687
Ma x Avg 90t h Min S t dDe v
28
Performance Characteristics(continued)
Max Avg 90 th MinStdDev
0.001.002.003.00
4.005.00
Pattern Comparison100 users, 50 iterations, 4 server
instances/200MB
Entity Only 4.49 0.30 0.35 0.08 0.426
Container Managed 1.52 0.06 0.07 0.04 0.112
Max Avg 90th Min StdDev
15
29
SQL Statements v.s. Finder Methods
Max
Avg
90th
Min
StdD
ev
0.002.004.006.00
8.00
10.00
SQL vs. Finder Method Comparison (for getting lists of data)
SQL 5.54 0.20 0.15 0.04 0.571
Finder Methods 9.99 1.06 2.92 0.05 1.457
Max Avg 90th Min StdDev
30
Summary of Findings
Pattern 1:(better choice)Great for design and flexibility
Good separation of presentation, data, and business logicFast time to market
Pattern 4:Best for performance and throughput
Pattern 3:Faster time to market than pattern 1
No need to code session beansProhibitive performance cost
16
31
Part III
EAI and B2Bi:Enterprise Application Integration
and Business to Business Integration Also See Session 11 Presentations:
“Enterprise Application Integration (EAI)”“Practical Application of EAI”
“The STP and T+1 Application”
and the Session 11 Handout on:“Enterprise Application Integration (EAI)”
32
XML & DBMSs ComparisonBoth separate data from rendition/presentation infoSimilar languages
DBMSs: Forms and Reporting, DDL, DQL, DCLXML: XSL, XQL, and processing instructions
No DML in XMLXML is paired with a scripting or programming language
Validation capabilitiesDBMSs: datatyping, relationship constraintsXML: data type validity and semantic consistency checks
XML can handle data too complex for some databasesXML interchangeable form of data vs. multidatabases
17
33
MOM Application Development Tools
Serializing Java objects into XML usingreflection
Sims Computing lightweight XML messagingframework (based on JMS)xmlBlaster Message Oriented Middlewareproject
MOM platform that uses XML for the messagemeta-data and quality of service informationMessages can be filtered using XPath expressionswhich match against the XML header document
Developing MOM applications using theSAX/DOM APIs
34
Architecture of an XML MOMApplication Server
18
35
Sample XML Application Flow
36
EAI-Based Architectures
Reliable Messaging
Bus. Process Modeling & Automation
Data Transformation
System Administration & Monitoring
Transaction Management
Metadata Management
Security Dev.Tools
Application A
dapters (E
RP, C
RM
, APS, L
egacy, …)
Technology A
dapters (D
B, X
ML
, HT
TP, file, …
)
WebApplication Server
E-BusinessTrading Partner
ERP System
CRM or SFAApplication
Legacy Application
19
37
Comparison of EAI Packages
Product Vendor Oper
atin
g Sy
stem
Proc
ess M
odeli
ng T
ools
Relia
ble M
essa
ging
Data
Tra
nsfo
rmat
ion
Tran
sact
ion
Mgm
tMe
tada
ta M
gmt
Scala
bilit
ySe
curit
ySy
stem
Adm
inist
ratio
nBu
sines
s to
Busin
ess
Deve
lope
r Too
lsPr
e-Bu
ilt P
roce
ss M
odels
Appl
icatio
n Ad
apte
rsTe
chno
logy
Ada
pter
sMa
infra
me A
dapt
ers
Unified ApplicationsArchitecture (UAA)
CrossWorldsSoftware NS 5 4 5 4 5 4 3 3 3 3 5 5 3 3
BusinessWare VitriaTechnologies NSH 4 5 4 5 5 5 4 5 0 3 3 4 3 NOTE: Product
B2Bi Integration Serv. WebMethods NS 5 5 5 5 5 5 5 5 3 5 3 4 5 5 functionality isMQ Series family IBM/NEON NSHI 3 5 5 3 4 4 4 4 0 3 3 5 5 5 evolving.E*Gate STC 4 4 4 0 3 4 4 4 0 3 0 4 4 5Rendezvous TIBCO 3 5 4 4 4 5 4 4 3 3 3 5 5 5
H=HP UX, S=Sun Solaris, I=IBM AIX, N=MS Windows, 5 = strongest
38
B2Bi: B2B commerce and EnterpriseApplication Integration (EAI)
B2Bi is based on the transformation and routingof XML documentsB2Bi patterns:
Direct Application IntegrationData ExchangeClosed Process IntegrationOpen Process Integration
Existing Frameworks:WebMethods B2Bi EAI frameworkMQSI (MQSeries Integrator)
See STP/T+1 in Sub-Topic 2/3 Presentations
20
39
B2Bi Direct Application IntegrationArchitecture
40
B2Bi Direct Application IntegrationRequirements
Ability to interact directly with applicationAPIsIntegration brokers with built-in support foradapters, transformations, and asynchronouscontent0based routingSame Integration Broker on both endsSecure transport, componentauthentification, and user authorizationsFederated security control
21
41
Data Exchange B2BiArchitecture
42
Data Exchange B2BiRequirements
Translation of data native to an applicationinto a common document format, andtransmission via a gatewayNo constraints on the presence ofIntegration BrokersB2B transactions enabled via a commondata exchange format
22
43
Closed Process Integration B2BiArchitecture
44
Closed Process Integration B2BiRequirements
Principal participant responsible formanaging processesOther participants are secondary, and do nothave visibility into the entire processRequires the introduction of businessprocess integration (BPI) services
B2Bi product offerings are beginning toincorporate BPI as an essential componentIn this case, B2Bi enables the integration oflogical business process elements expressed asactivities rather than data
23
45
Open Process Integration B2BiArchitecture
46
Open Process Integration B2BiRequirements
Introduces the notion of shared processesrather than operating from a centralizedmaster process manager modelEach participant is actively managingbusiness processes within its domainThe BPI layer must support fine-grainedcontrol of managed processes
24
47
EAI Frameworks and XMLXML complements EAI technology
Powerful meta languageSimplicitySeparation of content and presentation formatCommon open standard
EAI Frameworks must address thelimitations of XML
Limited Semantics InterpretationLack of data transformation facilitiesInefficiencies of text-based documentsAbsence of component-based routing
48
EAI Provides Data Transformations
25
49
Efficiency: Binary Objects on the Wire
50
Part V
Conclusion
26
51
SummaryJava and XML technologies are available on connected devicesWhile bean-managed persistence provides the most portability, itgenerally fall short with respect to productivity.Container- managed persistence in EntityBeans provides the mostproductivityContainer-managed persistence typically provide the highest degreeof performance since, together, the code generation tools and thebean programmer can take advantage of container- specific mappingand caching technologyContainer-managed persistence currently falls short in the area ofportability
52
Summary(continued)
XML complements application server technology by conveyingstructured data in a portable wayXML complements EAI technology, but future EAI framework stillneed to address XML’s limitationsWeb services platforms provide a shift from traditional enterprisedistributed object computing technology to P2P computing withsupport for pervasive devices, discovery and intelligent agentcapabilities
27
53
Readings
ReadingsBuilding Application Servers: Part II, and IIIHandouts posted on the course web siteExplore Palm EnvironmentExplore EAI/B2Bi EnvironmentRead related white papers/documentation on the Palm, andEAI/B2Bi environments
54
Project FrameworksProject Frameworks Setup (ongoing)
Apache Web Server (version 1.3.20, www.apache.org)Perl (version 5.x, www.perl.com), PHPMicrosoft IIS with COM+ and ASP (), ChiliSoftApache TomcatMacromedia JRunApache Cocoon 2/XSPVisibroker, OrbacusRMI-IIOPWindows 95/98/NT/2000 or Software AG’s EntireXWebLogic, WebSphere, JBoss, Enhydra, OpenEJBInprise AppServer, iPlanet.com iPlanet, Sybase EAServer, Oracle 9i, IONA iPortal, Xoology Concerto, AligoM-1, Advanced Network Systems WebIxGOAL Group OpenCCM, ExoLab.org OpenCCM, iCMG K2-CCM (C++), MICO/E (Eiffel ORB),JavaCCM, TAO Group, IONA iPortal (no CCM), Borland AppServer (no CCM), Sourceforge MI-3(“Mission Impossible 3”) and CIF projectsMicrosoft DNAApache’s XercesJ, XalanJ, XMLSpy, Antenna House XML Formatter, Apache’s FOP, X-smilesJWS, XMI Toolkit, IBM’s Web Service ToolkitPOSE, KVM for J2ME, NanoXMLIBM Alphaworks WSTK, XMI Toolkit, EJBMaker, WebMethods, etc.
28
55
Assignment
Explore the references to Channel Independent, and EAI/B2BiApplication Server technologyHomework #6 due date is 11/19/01Homework #7: due date is 11/26/01Homework #8: due date is 12/10/01
56
Next Session:Web Services Platforms (Part I)
XML-RPCSOAPUDDIWSDLC# and .Net
top related