extreme java g22.3033-006 · 3 5 readings see session 6 handouts: interoperability and the corba...

53
1 1 Extreme Java G22.3033-006 Session 7 - Main Theme Java Distributed Enterprise Communications (Part II) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 2 Agenda Summary of Previous Session CORBA Component Modeling and Communications CORBA Naming and Trading Services POA, COSNaming, COSTrading RMI / RMI-IIOP Component Modeling and Communications RMI / RMI-IIOP Naming and Trading Services JNDI and Jini COM+, DNA, and .Net Web- and Application-Enabling Facilities Readings Class Project & Assignment #3b

Upload: others

Post on 23-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

1

1

Extreme Java G22.3033-006

Session 7 - Main ThemeJava Distributed Enterprise Communications (Part II)

Dr. Jean-Claude Franchitti

New York UniversityComputer Science Department

Courant Institute of Mathematical Sciences

2

AgendaSummary of Previous SessionCORBA Component Modeling and CommunicationsCORBA Naming and Trading Services

POA, COSNaming, COSTrading

RMI / RMI-IIOP Component Modeling and CommunicationsRMI / RMI-IIOP Naming and Trading Services

JNDI and Jini

COM+, DNA, and .NetWeb- and Application-Enabling FacilitiesReadingsClass Project & Assignment #3b

Page 2: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

2

3

Summary of Previous SessionSummary of Previous SessionReview of Network and Web Communications Introduction to Distributed Enterprise CommunicationsIntroduction to ORB ImplementationsCORBARMI & RMI-IIOPDOC Platforms InteroperabilityWeb-Enabled and XML-Enabled PlatformsWeb-Enabled DOC PlatformsArchitecture FrameworksJavaBeans and the JavaBeans Activation FrameworkReadingsClass Project & Assignment

4

Part I

CORBA for Java

Page 3: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

3

5

Readings

See Session 6 Handouts:Interoperability and the CORBA SpecificationObject Request Brokers (ORB) InteroperabilityThe Object Request Broker (ORB) ArchitectureThe OMG Object ModelThe Interface Definition Language (IDL)IDL to Java MappingA Simple Java ORB ApplicationCoding Examples for VisiBroker, OrbixWeb, and JavaCORBA Activation Service - Portable Object Adapter (POA)

6

CORBA/IIOP Communications

IDL-to-Java mappingObjects by value over CORBA

Object serialization capabilities limited to Java environment

Page 4: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

4

7

OMG Reference Model Architecture (OMA)

Current and Next Generation OMASee http://www.omg.org/gettingstarted/specintro.htm#OMASee http://www.objs.com/staging/OMG-OMA-NG.html

8

Object Services (CORBAservices)

Domain-independent interfaces used by many distributed object programsProvide basic functionality for distributed object applicationsNaming Service: allows clients to find objects based on namesTrading Service: allows clients to find objects based on their propertiesOther services: persistence, lifecycle management, security, transactions, event notification, etc.

Page 5: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

5

9

Common Facilities (Horizontal CORBAfacilities)Horizontally-oriented interfaces (useful across business domains)Oriented towards end-user applications (e.g., user interface, information mgmt, system mgmt, task mgmt)E.g.: Distributed Document Component Facility (DDCF)

Compound document facility based on OpenDocAllows for presentation and interchange of objects based on a document model (e.g., linking of spreadsheet object into a report document)

Printing, Secure Time, Internationalization, and Mobile Agent Facilities

10

Information Management Horizontal Facility

Page 6: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

6

11

Domain Interfaces (Vertical CORBAfacilities)

Role similar to Object Services and Common FacilitiesOriented towards specific application domainsE.g., Product Data Management (PDM) Enablers for the manufacturing domainOther possibilities in the telecommunications, medical, and financial domains

12

Application Interfaces

Custom interfaces developed for a given applicationNot standardizedMight become candidates for future OMG standardization

Page 7: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

7

13

CORBA OMA Services

Activation Services: POA + Lifecycle ServicesNaming Service: POA + CosNaming Services

Session 7 Handouts:Naming Services – CosNaming, The CosNaming Module

Session 6 Handout: CORBA Activation Service - Portable Object Adapter (POA)

Directory and Trading Services: CosTradingSee Session 7 Sub-Topic 3 Presentation: OMA Trading Services

Object Transaction Service: OTSMessaging Services: Event + Notification Services

14

Naming Service Conceptual Architecture(review)

Page 8: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

8

15

Directory Service Conceptual Architecture(review)

16

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

Page 9: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

9

17

Naming Service - CosNaming(Federated Naming Context)

Naming Context3

<name, object_ref>…

Naming Context2

<name, object_ref>…

Naming Context1

<name, object_ref> …

18

New in Corba 3

CORBA 3 & CORBA Component Model (CCM)See http://ditec.um.es/~dsevilla/ccm/

Quality-of-service controlMessaging invocation modelTightened integration with the InternetPOA (Portable Object Adapter)EJB and Java supportOMG specifications for analysis and design, and application interoperability

UML, MOF, XMI, Common Warehouse Model

Page 10: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

10

19

Part II

RMI, RMI-IIOP, and JavaIDL

Also See:

“Java.rmi The Remote Method Invocation Guide”

20

RMI-JRMP, RMI-IIOP, and JavaIDL

See Session 7 Handouts:RMI ExampleRMI-IIOP ExampleThe RMI Activation FrameworkThe RMI Naming Service

Page 11: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

11

21

J2EE OMA ServicesActivation Services: RMI & JavaBeans Activation Fmks

Session 7 Handout: The RMI Activation Framework

Naming and Directory Service: JNDIJNDI and JNDI SPIs for CosNaming, RMI, NIS, NDS, LDAP

See Session 7 Handout: JNDISee Session 7 Sub-Topic 2 Presentation:

Java Naming and Directory Interface

Trading Service: JiniSee Session 7 Handouts:

Jini – The Universal Network?, Jini Connection Technology

Transaction Service: JTA and JTSMessaging Services: JMS + JavaMail

22

The Architecture of JNDI

Page 12: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

12

23

JNDI Detailed Architecturehttp://java.sun.com/products/jndi/serviceproviders.html

24

Jini’s Service-Based Architecture

Page 13: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

13

25

Jini’s Relationship to Other Java Services

26

RMI in the Jini Environment

Page 14: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

14

27

Sample Jini “Loan Approval” Service

28

Part III

COM+, DNA, and .Net

Also See:

“http://members.tripod.com/gsraj/misc/ejbmts/ejbmtscomp.html and related archives”

and Session 7 Sub-Topic 1 Presentation on “A COM+ Application Scenario”

Page 15: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

15

29

COM+

See Session 6 Presentations:Sub-Topic 1 Presentation on Distributed Communications Enabling Sub-Topic 3 Presentation on Introduction to CORBA, DCOM, and RMI

See Session 7 Presentation:Sub-Topic 1 Presentation on A COM+ Application Scenario

30

Microsoft Component Object Model(Logical Architecture)

Page 16: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

16

31

Win32 Services

Win32 executable that satisfy several propertiesLifetime is controlled by the Service Control Mgr (SCM)

Service is registered with SCM, and understands and obeys SCM commands

Service has its own login session or shares one with another service

Service runs as a user or local system and abides to applicable security

Service implements a set of service-specific functions:Starting up, message handler, communication back to SCM

32

COM+ = DCOM/COM + MTS

Page 17: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

17

33

DNA OMA Services

Activation ServicesDCOM Activation Framework

Naming and Directory ServiceDCOM Class and Object Naming (i.e., CLSIDs, ProgIDs, and Monikers)

Trading ServiceMicrosoft Active Directory

Transaction ServiceCOM+ MTS

Messaging ServiceCOM+ MSMQ

34

COM+ Services

COM+ Catalog (v.s. Windows Registry)COM+ Load BalancingCOM+ In-Memory Database (IMDB)COM+ Object PoolingCOM+ Queued ComponentsCOM+ EventsC++ Compiler Changes

Page 18: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

18

35

DCOM Class and Object Naming(file moniker file: bind)

36

DCOM Class and Object Naming(url moniker http:, ftp:, gopher: bind)

Page 19: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

19

37

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 read a 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 )

38

Trading Service - Active Directoryhttp://www.microsoft.com/windows2000/server/evaluation/features/dirlist.asp

Page 20: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

20

39

COM+ Catalog v.s. Windows Registry

Stores COM+ application attributes, class attributes, and computer-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

40

COM+ Load Balancing

Page 21: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

21

41

COM+ IMDB

42

COM+ Queued Components

Page 22: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

22

43

COM+ Events

44

C++ Compiler Changes

Sample Attributes:in/out direction of parameter in a methodthreading modelcomponent housing (i.e., DLL or EXE)

Page 23: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

23

45

Distributed InterNet Applications Architecture (DNA)

46

Creating an MTS ComponentExample:

try {

// create the MTS componentbank.IChecking server=

(bank.IChecking) new bank.Checking ();

// invoke business methods on the componentserver.createAccount (1234, "Athul", 1000671.54d);

}catch (Exception ex) {ex.printStackTrace ();

}

Page 24: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

24

47

Microsoft .NET PlatformSmart Devices + Windows XP + Web Services

http://www.microsoft.com/net

48

.NET Framework

Common Language Runtime (CLR)Accessible to any compiler that produced Microsoft Intermediate Language (IL) code

Runtime ClassesVisual Studio.Net (VS.Net)

Includes VB.Net, VC.Net (C#), and Visual C++.Net

Page 25: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

25

49

.NET, Win32, COM, and COM+

.Net applications can call functions that reside in Win32 DLLs via the DllImport attribute of System.Runtime.InteropServices’ platform invocation (PInvoke) services.Net applications can call traditional COM components using Runtime Callable Wrappers (RCWs) which uses interop assemblies (i.e., .Net components) created via COM Interop using the TLBIMP utilityCOM+ services (transactions, object pooling, JIT activation) can be used from .Net (via System.EnterpriseServices namespace).Net runtime uses COM+ to support some of its services (e.g., transactions for managed classes)

50

.Net Remoting(http://www.dotnetremoting.cc/)

Native .Net Remote Object InvocationAllows Object Invocation and Communications Across Processes and MachinesWire Protocol and Format IndependentExtensible via Custom Formatters (SOAP, Binary, etc.), Channels (HTTP, TCP, etc.), and Sink Chain (i.e., Channels + Formatters) StepsFlexible as Configuration can be Changed after Deployment with Little or no Code ChangesFlexible (IIS not required on server) but more Complex than Web Services

Page 26: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

26

51

.Net Remoting Vs. DCOM

Not as Transparent as DCOMHas no COM Interop InvolvedOffers More Deployment OptionsNot Tied to a Specific Wire Protocol or FormatFirewall FriendlyAllows you to Specify which Objects are Remoted

52

.Net CLR and COM+CLR Introduces a Newer and Easier Programming Model for COM+The COM+ Services are still Available only at the OS/Unmanaged WorldTransitions Between Managed/Unmanaged Layers are Taken Care of by “System.EnterpriseServices” Namespace

System.EnterpriseServices.ContextUtil class provides access to contexts (as did CoGetObjectContext)

Services are Made Available to Components Using Attributes

Page 27: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

27

53

ContextUtil ClassUseful Static Members

ActivityIdIsSecurityEnabledTransactionIdDesactivateOnReturnMyTransactionVote

Rich Set of Member FunctionsSetCompleteSetAbortEnableCommitDisableCommitIsCallerInRoleGetNamedProperty

54

.Net and ServicedComponent

COM+ Class Derives from “ServicedComponent”[ComVisible(true)][ObjectPooling(MinPoolSize=2, MaxPoolSize=5)][Guid(“57F01F20-9C0C-4e63-9588-720D5D537E66)][Transaction(TransactionOption.Required)]public class SVCCompClass : ServicedComponent

In COM+ 1.0, the List of Services Are not ChangedIn COM+ 1.5 (Microsoft Windows XP Professional and .Net server), Newer Services are Available to Leverage CLR Features

Page 28: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

28

55

Component Layers in .Net Applications/Services(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/distapp.asp)

56

Security Policies in .Net Applications/Services

Page 29: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

29

57

Operational Mgmt Policies in .Net Applications/Services

58

Communication Policies in .Net Applications/Services

Page 30: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

30

59

.Net Applications Support Technologies/Services(continued)

Security, Operational Management, Communication provided by Microsoft Windows OS Services

Active Directory ServiceMessage QueuingWindows Management Instrumentation (WMI)etc.

60

Part IV

Web- and Application-Enabling FacilitiesAlso See Session 6 Handout on:

“Applets, Servlets, and Java Server Pages”

Page 31: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

31

61

Web and Application Services

Activation ServicesClient: MIME Handler, and Applet ActivationWeb Server: File-Stream, Process, Script Engine, Servlet, JSP, and EJB Activation

Naming and Directory ServiceDNS and Java-Based DNS InterfacingNIS, NDS, LDAP

Custom Transaction ServicesBased on Encina, Tuxedo, etc.

Custom Messaging ServicesTIBCO

MQSeries

62

J2EE Web-Enabling Component Models

Javasoft’s Applet Tutorial:http://java.sun.com/docs/books/tutorial/applet/TOC.html

Swing Applets:http://java.sun.com/docs/books/tutorial/uiswing/start/swingApplet.html

Java Web Start:http://www.javasoft.com/products/javawebstart/index.html

Servlets, Servlet filters, Cocoon/XSPsSee previous session and related session 6 handouts

Connected and Wireless Deviceshttp://java.sun.com/j2mehttp://webdev.apl.jhu.edu/~rbe/kvm/

Page 32: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

32

63

Java Servlets & Java Server Pages

See Session 6 Handout:Applets, Servlets, and Java Server Pages

See Javasoft’s Documentation on Servlets:http://java.sun.com/products/servlet/index.html

See Javasoft’s Documentation on JSPs:http://java.sun.com/products/jsp/

Servlet Example: Cocoonhttp://xml.apache.org

64

DNA Web Architectures

FORM+ = Merger of Win32 GUI and Web APIs (~DHTML)STORAGE+ = OLE DBCOM+ = COM + MTS

Page 33: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

33

65

Service Oriented Architecture

66

Content, Discovery, Universal access, and Intelligent Software Agents

UDDI: Universal Description, Discovery, and IntegrationIndustry-wide effort to bring a common standard for business-to-business(B2B) integrationSet of standard interfaces for accessing a database of web servicesSee UDDI Browser at http://www.soapclient.com/uddisearch.htmljUDDI (pronounced "Judy") is an open source Java-based implementation of a UDDI registry Also see

http://www.sun.com/software/xml/developers/uddi/http://www-3.ibm.com/services/uddi/index.htmlhttp://uddi.microsoft.com/default.aspxhttp://www.oasis-open.org/cover/uddi.htmlhttp://www.itpapers.com/cgi/SubcatIT.pl?scid=436

Intelligent Software Agents: ATLAS, Aglets, etc.

Page 34: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

34

67

XML-Based e-Services Protocols and Architectures

XML-RPC and Peer-to-Peer ComputingSimple Object Application Protocol (SOAP)Universal Description, Discovery, and Integration (UDDI)Web Service Definition Language (WSDL)

http://www.w3.org/TR/wsdl

Pervasive devicesResource Description Framework (RDF)

Platform for Internet Content Selection (PICS)Platform for Privacy Preferences (P3P)Channel Definition Format (CDF)Rich Site Summary (RSS)Blocks Extensible Exchange Protocol (BXXP)

68

XML-Based e-Services Protocols and Architectures (continued)

XML Protocol (XMLP): XML-Based Messaging Systems

Standardized application to application XML messaging (via HTTP, and MQSeries)

XML and User Identification/SecurityXML and Databases

XML and JDBCXML Extensions and Tools for Oracle, Informix, IBM DB2, and Microsoft SQL Server

Transaction Authority Markup Language (XAML)Coordinated processing of transaction-supporting web services between internal fulfillment services and external services

Page 35: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

35

69

XML-Based e-Services Protocols and Architectures (continued)

Sun’s Open Net Environment (ONE)HP’s NetAction/e-speak platformOracle’s Dynamic Services platformMicrosoft .NET platformIBM WebSphere Architecture (WSA) platform

70

Web Services Stack

Page 36: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

36

71

Implementation Diagram

72

Derivative Architecture Patterns

Page 37: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

37

73

Web Services Latest Specifications(http://msdn.microsoft.com/webservices/ , http://www.ibm.com/webservices/,

http://dev2dev.bea.com/techtrack/standards.jsp)

Baseline WS SpecificationsSOAP, UDDI, WSDL

BPEL4WSBusiness Process Execution Language for WS

Global WS SpecificationsWS-CoordinationWS-InspectionWS-ReferralWS-RoutingWS-SecurityWS-PolicyWS-Transaction

74

.Net Applications Support Technologies/Services

Page 38: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

38

75

XML Tools for Information Appliances

See http://www.topxml.com/java/articles/javaxml/3.asp

Java 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 little as 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/

76

Sample Palm ApplicationBeaming contact information from a custom Palm database

Page 39: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

39

77

Part V

Introduction to Building Presentation Logicusing

J2EE Application Servers

78

J2EE Server and Containers

Page 40: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

40

79

Servlets Technology(http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Servlets.html

http://www.java-shop.com/jsp.htm)

Java’s standard mechanism for writing code that runs and extends the functionality of a servlet engineA servlet is to a server what an applet is to a browserHTTP servlets

Replacement for CGIStandard mechanisms for handling cookies, sessions, session/application contextsAdvantages over CGI: performance, platform and web-server independance

Servlet filters are new in the Java Servlet Specifiation 2.3

80

JSP Technology(http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/JSPIntro.html)

Answer to Microsoft’s Active Server PagesProvide mechanism for including tags/scriptlets into an HTML or XML pageJSPs have .jsp extension and are processed using a special servlet

JSP page is compiled into a servlet upon first access or after each modification

Ability to instantiate and access JavaBeans within JSP pages

Page 41: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

41

81

Distributed Multitiered Applications

82

Server Communications

Page 42: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

42

83

Web Tier and J2EE Application

84

Web Tier and J2EE Application

Page 43: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

43

85

Business and EIS Tiers

86

Part VI

A Practical ApplicationPlants-By-WebSphere Sample

Page 44: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

44

87

Web Browser Clients• Tier-0 Clients

– Presentation is handled by logic running in the Web Application Server and rendered by the browser

– Differences in browsers may require server awareness• Tier-1 Clients

– Commonly used for Intranet development– Rich set of presentation features– Rely on direct communication with business logic using IIOP

or SOAP– Supported by libraries such as SWT and JFC/Swing

• Pervasive Devices– WebSphere provides servlet extension that detects the client

device type and selects a presentation specific to that device.– WebSphere Everyplace Access provides transcoding

technology

88

Plants-By-WebSphere

• Plants-By-WebSphere is a Sample Shipped with WAS– A mail-order storefront for plants, trees, and gardening tools– Includes source code– Meant to demonstrate a classic J2EE application– Functional – Logic-based

• Model-based PL Comparison Framework– JSP Pages– HTML pages – Servlets– Model Wrappers– EJBs– Helper Classes

Page 45: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

45

89

JSP Pages(presentation)

• cart– Content obtained from ShoppingCart EJB

• checkout– Credit card/shipping info gathering form

• orderdone– Confirmation of completed order submission

• product– View of selected item

• salesitems– Frames component images of the main home-page logo for

the store front• showcatalog

– Lists contents of the catalog retrieved from Inventory EJB

90

Other Pages

• index.html– Home page: logo + navigation

• banner.html– Standard noteback tab metaphor for

navigation

Page 46: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

46

91

Servlets

• ShoppingControllerServlet– Main point of control for user input to the

plant store Web interface

92

Model Wrappers

• CartModel– Wrapper to ShoppingCart EJB

• CustomerModel– Wrapper to Customer EJB

• InventoryModel– Wrapper to Inventory EJB

• OrderModel– Wrapper to Order EJB

Page 47: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

47

93

EJBs• Catalog

– stateless session bean, collects info from store inventory• Customer

– CMP entity bean• FulFillOrder

– Stateless session bean• Inventory

– CMP entity bean• Order

– CMP entity bean• OrderIdGenerator

– CMP entity bean• OrderItem

– CMP entity bean• OrderSender

– Stateless session bean used to send a message when the order is complete• OrderReceiver

– Message-driven bean that receives order messages and calls the FulFillOrder bean• ShoppingCart

– Stateful session bean that holds the contents of the shopping cart

94

Helper Classes• CustomerInfo

– Java holder object for the Customer bean• InsufficientInventoryException

– Exception thrown by FulFillOrder bean if the order cannot be filled

• OrderInfo– Holder-Object for the Order bean

• StoreItem– Holder-Object for the contents of an item in the

Catalog• Util

– Supports various helper functions (get EJB homes, get initial JNDI context, etc.)

Page 48: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

48

95

Web Services

• PlantsByWebSphereCatalogService– Represents the PlantByWebSphereCatalog

port-type with a SOAP binding– Service can be used to get product information

from the Catalog

96

Engineering Approach• Develop JSP pages and Servlets• Use a set of wrappers to the EJBs

– Allows the Web application to be developed in parallel with the EJBs

– Model wrappers used as temporary stand-ins to the EJBs during the development of the web application

• Map or delegate the model objects to actual EJBs

Page 49: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

49

97

Implementation Challenges• Transactional coordination of updates to the

database and JMS queues– Use XA data sources to the Cloudscape database that

ships with WebSphere?• Use of relationships

– An order aggregates multiple OrderItems• OrderSender and FulFillOrder EJBs may need to

use the Java 2 Connector Architecture (JCA) to connect to an underlying legacy system

• Use of a Web Service

98

Web Tier Development Process

Create projects necessary for the applicationCreate the home pageCreate the banner and the navigation menuCreate the controllerCreate the model JavaBeansRepeat for adding additional content and pages and updating the controller

Page 50: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

50

99

Creating the ProjectsUse WebSphere Studio WizardsWeb Application Project Must Reside in a J2EE Enterprise Application ProjectCreate a Web Application Project (File | New | Project )

Static Web project used for creating static HTML pagesJ2EE Web application project used to create dynamic content using JSP pages and servlets as well as static content

Customize the Web Project Features .cvsignore fileDefault CSS fileInclude tag libraries (JSP access, database access, internationalization, JSP standard tag library, utility tag lib)

100

Creating the Home PageFile | New is Perspective SensitiveSelect the Web Content project folder and right click to bring up HTML/XHTML FileCode Generation Model is not used by WSADThe HTML/JSP editor can be used in “Source” view to edit the file, then go back to “Design” view to see the changesSelect a Style Sheet on the Gallery tab in the Outline view

Import a style sheet by selecting the theme folder in the Web project in the Navigator view, then right click on File | Import

Page 51: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

51

101

Part V

Conclusion

102

Summary

OMG, Sun, and Microsoft DOC platforms all share the OMA architectureOMG’s OMA provides the most comprehensive and detailed set of specifications for CORBAfacilities, and CORBAservicesJavaSoft has focused mostly on OMA services as part of the J2SE, J2EE, and J2ME architecturesMicrosoft provides platform specific support for services and anintegrated set of horizontal and vertical facilities bundled with the OSAll platforms support web-enabling which is being extended with trading capabilities via Web Services

Page 52: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

52

103

Architecture Frameworks

CORBA & Applets (e.g., VisiBroker, and ORBacus)RMI-JRMP and RMI-IIOPWeb Servers (e.g., Apache), Servlet & JSP Engines (e.g., Tomcat,JRun, WebSphere Client and Web Containers)J2EE Application Servers (e.g., WebSphere, WebLogic, JBoss)XML Parsers (e.g., XercesJ)XML server-side POP frameworks (e.g., Cocoon 2/XSP)XML EAI frameworks (e.g., WebMethods), B2Bi, BPM, LE, and EIIIDEs (e.g., JBuilder), and JavaBeans Development Kit (e.g., BDK)

104

Assignment• Readings

– J2EE: Part IV Chap. 14, 18, Appendix E– Expert One-on-One: Introduction (cont.)– Selected readings mentioned in class or referenced in the handouts – Handouts posted on the course web site

• Assignment #3b: (submit report and implementation archive)– Provide a modified version of the Java-based application developed in assignment

#3a to operate as a client-server application using CORBA. Your program should be implemented using the Visibroker for Java CORBA framework. Both a “rich” Java client and an applet should be provided on the client side. You are not required to use CosNaming in this assignment.

– Experiment with the Plants-By-WebSphere Presentation Logic Implementation– Extra Credit: Implement same assignment using Java IDL, and RMI-IIOP and JNDI.

• Project Framework Setup– J2EE IDE: IBM WSAD, WAS, DB2– Java Plug-in, Java Web Start, Apache’s Xerces/Xalan – J2SE 1.3.1, 1.4.0 or 1.4.1 (SDK)– IDE: Eclipse, NetBeans, Sun ONE Studio, JBuilder, Visual Age, Visual Café,

Codewarrior, WebGain Studio, Oracle JDeveloper, etc.– Editors: JCreator, UltraEdit, etc.– Visibroker 4.5.1 or BES 5.2 – RMI-IIOP / Java IDL

Page 53: Extreme Java G22.3033-006 · 3 5 Readings See Session 6 Handouts: Interoperability and the CORBA Specification Object Request Brokers (ORB) Interoperability The Object Request Broker

53

105

Next Session:Java Distributed Enterprise Communications (Part III)

Review Information Covered in Session 7JMSJTA and JTSJAAS/JCE/JSSEJavaMail