g22 3033 011 c71 - nyu.edu · QJNDI, JMS, JTS, CMP/BMP/JDBC, JavaMail, etc. QJ2EE Web Architectures...
Transcript of g22 3033 011 c71 - nyu.edu · QJNDI, JMS, JTS, CMP/BMP/JDBC, JavaMail, etc. QJ2EE Web Architectures...
1
1
Application ServersG22.3033-011
Session 7 - Main ThemeJ2EE Component-Based Computing Environments
(Part II)
Dr. Jean-Claude Franchitti
New York UniversityComputer Science Department
Courant Institute of Mathematical Sciences
2
AgendaDOC Architectures DetailedOMA Services DetailedWebLogicWebSphereOpen Source J2EE Environments
JBossEnhydraOpenEJB
Security in J2EE Application Servers (continued)SummaryReadingsAssignment #5 (continued)
2
3
Summary of Previous Session
EJB Component ModelJ2EE Services
JNDI, JMS, JTS, CMP/BMP/JDBC, JavaMail, etc.J2EE Web ArchitecturesSecurity in J2EE Application Servers (Part I)SummaryReadingsAssignment #5
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, DNA
4
7
CORBA Architecture Review
8
CORBA Object Activation/Method Invocation(top layer - basic programming architecture)
5
9
CORBA Object Activation/Method Invocation(middle layer - remoting architecture)
10
CORBA Object Activation/Method Invocation(bottom layer - wire protocol architecture)
7
13
DCOM Object Activation/Method Invocation(top layer - basic programming architecture)
14
DCOM Object Activation/Method Invocation(middle layer - remoting architecture)
8
15
DCOM Object Activation/Method Invocation(bottom layer - wire protocol architecture)
16
Part II
OMA Services Detailed
9
17
CORBA OMA Services(* items are covered in this session)
Activation Services*CORBA POACORBA Lifecycle
Naming Service*CosNaming
Directory and Trading Services*CosTrading
Object Transaction Service (OTS)Messaging Services
CORBA Event ServiceCORBA Notification Service
18
Activation Service - CORBA POA(Server Structure)
10
19
Activation Service - CORBA POA(Server Registration)
20
Activation Service - CORBA POA(Client Request - Initial Steps)
11
21
Activation Service - CORBA POA(Client Request - Next Steps)
22
Naming Service Conceptual Architecture(review)
12
23
Naming Service - CosNaming(Binding and Resolving Names in a Naming Context)
Naming Context
<name1, object_ref1>…
<namen, object_refn>
Servant
Clientbind(name, object_ref);
resolve(name);
object_ref
24
Naming Service - CosNaming(Federated Naming Context)
Naming Context3
<name, object_ref>…
Naming Context2
<name, object_ref>…
Naming Context1
<name, object_ref> …
13
25
Naming Service - CosNaming(Non Persistent Naming Services Perform Best)
Remote Context Creation
0
10
20
30
40
50
60
70
Number of Contexts
Mill
isec
onds
HARDPack 2.555 2.6375 2.698333333 2.8275 2.935
VisiBroker 21.515 28.0325 41.90333333 45.44125 52.812
TAO 11.52 12.105 12.94833333 13.865 14.726
ObjectBus 59.11 60.56 59.17166667 60.07375 61.392
200 400 600 800 1000
26
Naming Service - CosNaming(Only TAO Has Nearly Constant Bind Latency)
Remote Name Binding
1
10
100
1000
Number of Bindings
Mili
seco
nds
HARDPack 4.545 8.0087 11.6458667 15.17475 18.62976 22.1068 25.4752571 28.88025
VisiBroker 4.929 6.6575 6.22993333 7.71965 10.08208 14.5067667 15.8996286 20.664125
TAO 2.2858 2.4306 2.42653333 2.4863 2.48508 2.60353333 2.55254286 2.5722
ObjectBus 69.36 110.496 151.574667 192.532 233.0668 273.938 314.84 355.345
5000 10000 15000 20000 25000 30000 35000 40000
14
27
Naming Service - CosNaming(TAO and Visibroker Achieve Nearly Constant Resolve Time)
Remote Name Resolution
0
1
2
3
4
5
6
7
8
9
Number of Resolutions
Mili
seco
nds
HARDPack 3.679625 5.6826625 7.97755
VisiBroker 2.21074 2.2919375 2.362541667
TAO 2.1773025 2.6174125 2.387075
ObjectBus 5.48295 6.2143375 6.923641667
4000 8000 12000
28
Naming Service - CosNaming(Multithreaded Naming Servers Perform Best)
��������������������
��������������������
�������������������������
�����������������������������������
����������������������������������������
���������������
���������������
���������������
���������������
����������������
����������
����������
���������������
���������������
������������������
����������������
��������������������
�������������������������
�����������������������������������
Multi-client name Resolution Latency
0
2
4
6
8
10
12
Mill
isec
onds
���� HARDPack 3.8227 4.45548 6.22214 8.31908 10.47662��
VisiBroker 2.38974 2.62138 2.81726 3.49356 4.14808��TAO 2.0372 2.11244 2.36938 2.88452 3.36642��ObjectBus 4.4998 5.06372 6.67668 8.4932
1 Clients 2 Clients 3 Clients 4 Clients 5 Clients
15
29
Naming Service - CosNaming(Memory Utilization)
Contexts (Kbytes) Names (Kbytes)
Vendor Process 0 1 100 0 1 100
TAO Naming Server 8168 8216 13000 8168 8168 8272VisiBroker Naming Server 5336 5352 5872 5336 5352 5576VisiBroker osagent 2208 2224 2576 2208 2224 2224VisiBroker persistent store .686 .801 12.01 .686 .930 24.91HARDPack Naming Server 3104 3104 3104 3104 3240 3248ObjectBus Naming Server 3832 3832 3832 3832 3840 3928ObjectBus rvd daemon 1928 1928 1928 1928 1928 1928ObjectBus persistent store .976 .976 .976 .976 1.298 50.80
30
Naming Service - CosNaming(Conclusion)
Product ContextCreation
NameBinding
NameResolution
VisiBroker 3 2 1HARDPack 1 3 3
TAO 2 1 2
ObjectBus 4 4 4
16
31
Trader Service - CosTradingTrader = Automatic Yellow Pages for ServicesServices Offer Interfaces and PropertiesCriteria Match Clients to Appropriate ServicesSee http://www-mtl.mit.edu/~mvermins/corba/trader/ppframe.htmInterface:
AdminImportAttributesLinkLinkAttributesLookupOfferIdIteratorOfferIteratorProxyRegisterSupportAttributesTraderComponents
32
J2EE OMA Services(* items are covered in this session)
Activation Services*RMI Activation Framework
http://www.devx.com/upload/free/features/javapro/2000/11nov00/tm0011/tm0011.asp
JavaBeans Activation Framework
Naming and Directory Service*JNDI and JNDI SPIs for CosNaming, RMI, NIS, NDS, LDAP
Trading Service*Jini
JTA and JTSMessaging Services
JMSJavaMail
17
33
RMI Activation Framework(classes of the RMI activation API)
34
JavaBeans Activation Framework(Glasgow releas of the JavaBeans Component Model)
Extensible Runtime Containment and Services ProtocolDCOM Activation Framework
Drag and Drop Subsystem for the Java Foundation ClassesJavaBeans Activation Framework (JAF)
A Data typing and command registry APILets users discover an arbitrary data object type (e.g., file)Users can then lookup command applications or beans that canprocess such data type (e.g., browser plug-in to view/edit file)Can activate the command
19
37
Using JNDI to support Mobile Agents(Traders need to locate places where agents can migrate to)
38
Using JNDI to support Mobile Agents(Agents have classcodes needed by the mobile agent system to execute them)
20
39
Using JNDI to support Mobile Agents(Agents must be registered so they can be located as needed)
40
The Architecture of JNDI
21
41
JNDI Detailed Architecturehttp://java.sun.com/products/jndi/serviceproviders.html
42
Jini’s Service-Based Architecture
23
45
Sample Jini “Loan Approval” Service
46
RMI Activation Framework(Illustrated RMI Activation Protocol)
24
47
DNA OMA Services(* items are covered in this session)
Activation Services*DCOM Activation Framework
Naming and Directory Service*DCOM Class and Object Naming (i.e., CLSIDs, ProgIDs, and Monikers)
Trading Service*Microsoft Active Directory
Transaction ServiceCOM+ MTS
Messaging ServiceCOM+ MSMQ
48
COM+ Services(* items are covered in this session)
COM+ Catalog (v.s. Windows Registry)*COM+ Load BalancingCOM+ In-Memory Database (IMDB)COM+ Object PoolingCOM+ Queued ComponentsCOM+ EventsC++ Compiler Changes
25
49
DCOM Class and Object Naming(file moniker file: bind)
50
DCOM Class and Object Naming(url moniker http:, ftp:, gopher: bind)
26
51
DCOM Class and Object Naming(class moniker clsid: bind)
Display name for class monikers:display-name = "CLSID:" string-clsid-no-curly-braces*[";" clsid-options] ":"clsid-options = clsid-param "=" valueclsid-param = none currently defined
C++ example (tell moniker to use an object that can reada document instead of the document itself):ProgIDFromCLSID( &clsid, "xyz.activator.1")CreateClassMoniker( clsid, &pmkClass )MkParseDisplayName( pcb,"\\northamerica\central\employee.doc", &dwEaten,pmkFile )pmkFile->BindToObject( pcb, pmkClass, IID_IDispatch,&pDisp )
52
Trading Service - Active Directoryhttp://www.microsoft.com/windows2000/server/evaluation/features/dirlist.asp
27
53
COM+ Catalog v.s. Windows Registry
Stores COM+ application attributes, class attributes, andcomputer-level attributesGuarantees consistency among attributesProvide common operations on top of attributesTwo different stores
COM+ registration databaseMicrosoft Windows Registry (HKEY_CLASSES_ROOT)
COM components that do not require new COM+ servicesType libraryInterface proxy/stub registration
Unified logical view via COM+ Admin Library
54
Part III
WebLogic
Also See Session 7 Handouts on:
“Deploying an EJB Application”“Building a Stateless Session Bean”
“Using Enterprise JavaBeans”“EJB Application Servers”
“Application Servers Comparison”
28
55
J2EE Support
J2EE Specifications SupportEJB, JSP, Servlets, JNDI, JDBC, JMS, JTA/JTS
RMI 1.0 SupportIIOPHTTPT3 (rich sockets)
Multiplexed, bi-directional, asynchronousOne socket per thread
56
Security
Secure Socket LayerRSA EncryptionX.509 digital certificatesACL down to the method level by users/groupsSecurity realms
Can import information from otherauthorization/authentication systems into the ACL
Firewall tunneling via HTTP and HTTPS tunnelingSecurity audit and logging interfaces
29
57
Data Stores
RDBMS support via JDBCOODBs (e.g., Versant, ODI)Object relational mapping tools
(e.g., WebGain’s TOPLink)Cache accelerators:
TimesTen’s Front-Tier
58
Supported Client Types
Thin ClientsWeb Clients (e.g., HTML, WML)
Fat ClientsProgrammatic Clients (e.g., Java applets, Javastandalone applications, COM clients)Use XML/RMI to communicate with server
Client AdministrationZero Administration Client (ZAC)
30
59
Management
Swing-based ConsoleMonitoring/Update of Applications and ClustersViewing of Detailed Execution Information
Servlets, EJBs, JMS queues/topicsThird Party Management Framework Support via SNMP
60
JVM and Platform Certification
PlatformsLinuxIBM OS/390Sun SolarisNT and Windows 2000
Certified JVMs listed on the BEA Web Site
31
61
Tools Support
IBM VisualAge for JavaKLGroup JprobeWebGain Studio
Visual Café Enterprise SuiteMacroMedia DreamWeaverTendril Structure BuilderTOPLink O/R Mapping Tool
62
Enterprise Assurance Features
PerformanceHigh Performance HTTP Web ServerPlugins: Netscape (NSAPI), IIS (ISAPI), ApacheSocket Handling via interrupts (performance pack)Clustering (load balancing, automatic failover)
ReliabilityScalability
32
63
Application Support and Proprietary Extensions
Common logs, instrumentation, configuration, mgmt, etc.dbKona and htmlKona (OO interface to HTML)The WorkSpace (thread-safe hash table)Scheduling (define actions or triggers)File I/O (seamless manipulation of remote files)CGI Support (to support migration of first generation apps)Connection Filtering (block/allow connections fromclients)
64
WebLogic 6.1 New Features
Web Services (SOAP and WSDL support)J2EE Connector Architecture 1.0EJB 2.0, Servlet 2.3, and JSP 1.2XML Support:
JAXP 1.1, SAX 2.0, DOM Level 2, W3C SchemasJMS Performance Enhancements
Optional asynchronous I/ODeployment descriptor editing utilities
Tuxedo IntegrationOracle optimizations, EJB caching improvements, etc.
33
65
Part IV
WebSphere (more in next session)
See Session 7 Handouts on:
“Deploying and EJB Application” “Application Servers Comparison”
“WebSphere by IBM”
66
Part V
Open Source J2EE Environments(JBoss)
34
67
JBoss(www.jboss.org)
Component ArchitectureBasic EJB Container (low memory/disk space requirements)Java Management Extension (JMX) InfrastructurePlug and Play Services: JBossMQ (JMS), JBossMX JavaMail),JBossTX (JTS/JTA), JBossSX (JAAS), JBossCX (JCAconnectivity), JBossCMP
Unique FeaturesBuilt-in SQL database server (Cloudscape not required)Hot deploy, Runtime generated stubs/skeletons objects(distributed invocation enablers)
See References:http://www.jboss.org/testimonials.jsp
68
Jboss JMX Infrastructure(Version 2.4.3 for JVM 1.3+)
^TomCat Servlet Container
Jetty Web Server/Servlet Container
35
69
Part VI
Conclusion
70
Summary
CORBA, RMI/RMI IIOP, and COM+ have comparablearchitectures based on RPC support layersActivation and naming services provided by CORBA 3, J2EE,and DNA platforms have different architectures and APIs.WebLogic provides a comprehensive and competitive J2EEsolutionJBoss provides a resource and platform effective alternative tohigher end J2EE application serversJBoss is an open source solution use by many small enterprisestoday
36
71
Readings
ReadingsBuilding Application Servers: Part III, Chapters 4-6Professional Java II: Chapters 4-8Handouts posted on the course web siteExplore J2EE environmentsRead related white papers/documentation on the J2EEenvironments
72
Project Frameworks
Project 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-IIOPWebLogic, WebSphere, JBoss, Enhydra, OpenEJB
37
73
Assignment
Assignment:Explore the textbooks’ references to Application Servertechnology (continued)#5 (continued): Due date is 11/05/01Session 7 special assignment: Write a short report thatdocuments your findings and recommendations with respectto selection criteria in support of development environmentsfor the application servers covered in this session (due alongwith assignments #5a and #5b)
74
Next Session:J2EE Component-Based
Computing Environments (Part III)
WebSphereOther Open Source EJB Application Servers
Enhydra and OpenEJB
Security in J2EE Application ServersOther J2EE Application Servers
InpriseiPlanetSybase EAServeretc.