37
1 1 Application Servers G22.3033-011 Session 7 - Main Theme J2EE Component-Based Computing Environments (Part II) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 2 Agenda DOC Architectures Detailed OMA Services Detailed WebLogic WebSphere Open Source J2EE Environments JBoss Enhydra OpenEJB Security in J2EE Application Servers (continued) Summary Readings Assignment #5 (continued)

g22 3033 011 c71 - nyu.edu · QJNDI, JMS, JTS, CMP/BMP/JDBC, JavaMail, etc. QJ2EE Web Architectures QSecurity in J2EE Application Servers (Part I) QSummary QReadings QAssignment #5

Embed Size (px)

Citation preview

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

3

5

Part I

DOC Architectures Detailed

6

RPC Structure(review)

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)

6

11

12

DCOM Architecture Review

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

18

35

Naming Conventions(DNS v.s. NFS)

36

Directory Services(LDAP directory attributes)

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

22

43

Jini’s Relationship to Other Java Services

44

RMI in the Jini Environment

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.