g22 3033 007 c71 - nyu.eduqbuilding java enterprise systems: part iii, 14-18 qusing java 2...

21
1 1 Extreme Java G22.3033-007 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 RMI, RMI IIOP, and JavaIDL CORBA COM+ Web-Enabling Facilities Readings Class Project & Assignment #3b

Upload: others

Post on 15-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

1

1

Extreme JavaG22.3033-007

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

Dr. Jean-Claude Franchitti

New York UniversityComputer Science Department

Courant Institute of Mathematical Sciences

2

Agenda

Summary of Previous SessionRMI, RMI IIOP, and JavaIDLCORBACOM+Web-Enabling FacilitiesReadingsClass Project & Assignment #3b

Page 2: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

2

3

Summary of Previous Session

Distribution MechanismsNetwork and Socket ProgrammingWeb CommunicationsArchitecture FrameworksJavaBeansReadingsClass Project & Assignment #3a

4

Part I

CORBA for Java

Page 3: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

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 Javaenvironment

Page 4: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

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 manydistributed object programsProvide basic functionality for distributed objectapplicationsNaming Service: allows clients to find objects basedon namesTrading Service: allows clients to find objects basedon their propertiesOther services: persistence, lifecycle management,security, transactions, event notification, etc.

Page 5: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

5

9

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

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

Printing, Secure Time, Internationalization, and MobileAgent Facilities

10

Information Management Horizontal Facility

Page 6: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

6

11

Domain Interfaces (Vertical CORBAfacilities)

Role similar to Object Services and CommonFacilitiesOriented towards specific application domainsE.g., Product Data Management (PDM) Enablers forthe 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 OMGstandardization

Page 7: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

7

13

CORBA OMA Services

Activation ServicesCORBA POACORBA Lifecycle

Naming ServiceCosNaming

Directory and Trading ServicesCosTrading

Object Transaction Service (OTS)Messaging Services

CORBA Event ServiceCORBA Notification Service

14

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, andapplication interoperability

UML, MOF, XMI, Common Warehouse Model

Page 8: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

8

15

Part II

RMI, RMI-IIOP, and JavaIDL

Also See:

“Java.rmiThe Remote Method Invocation Guide”

16

RMI-JRMP, RMI-IIOP, and JavaIDL

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

Page 9: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

9

17

J2EE OMA Services

Activation ServicesRMI Activation FrameworkJavaBeans Activation Framework

Naming and Directory ServiceJNDI and JNDI SPIs for CosNaming, RMI, NIS, NDS, LDAP

Trading ServiceJini

JTA and JTSMessaging Services

JMSJavaMail

18

Part III

DNA

Also See:

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

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

Page 10: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

10

19

COM+

See Session 6 Presentations:Sub-Topic 1 Presentation on DistributedCommunications EnablingSub-Topic 3 Presentation on Introduction toCORBA, DCOM, and RMI

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

20

Microsoft Component Object Model(Logical Architecture)

Page 11: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

11

21

Win32 Services

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

Service is registered with SCM, and understands and obeysSCM commands

Service has its own login session or shares one withanother service

Service runs as a user or local system and abides to applicablesecurity

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

22

COM+ = DCOM/COM + MTS

Page 12: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

12

23

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

24

COM+ Services

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

Page 13: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

13

25

Part IV

Web-Enabling Facilities Also See Session 6 Handout on:

“Applets, Servlets, and Java Server Pages”

26

Web and Application Services

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

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

Custom Transaction ServicesBased on Encina, Tuxedo, etc.

Custom Messaging ServicesTIBCOMQSeries

Page 14: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

14

27

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/

28

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

Page 15: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

15

29

DNA Web Architectures

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

30

Content, Discovery, Universal access, andIntelligent 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 ofa UDDI registryAlso 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 16: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

16

31

XML-Based e-Services Protocols andArchitectures

XML-RPC and Peer-to-Peer Computinghttp://xml.coverpages.org/xml-rpc.html

Simple Object Application Protocol (SOAP)http://soap.develop.com/xmlrpc/

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)

32

XML-Based e-Services Protocols andArchitectures (continued)

XML Protocol (XMLP): XML-Based MessagingSystems

Standardized application to application XML messaging (viaHTTP, and MQSeries)

XML and User Identification/SecurityXML and Databases

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

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

Page 17: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

17

33

XML-Based e-Services Protocols andArchitectures (continued)

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

34

Microsoft .NET PlatformSmart Devices + Windows XP + Web Services

http://www.microsoft.com/netFirst set of Microsoft Web Services

http://www.microsoft.com/net/hailstorm.asp

Page 18: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

18

35

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/

36

Sample Palm ApplicationBeaming contact information from a custom Palm database

Page 19: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

19

37

Part V

Conclusion

38

Summary

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

Page 20: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

20

39

Architecture Frameworks (ongoing)

CORBA & Applets (e.g., VisiBroker, and ORBacus)Web Servers (e.g., Apache), Servlet & JSP Engines(e.g., Tomcat, JRun)J2EE Application Servers (e.g., WebLogic)XML Parsers (e.g., Xerces J)XML server-side POP frameworks (e.g., Cocoon)XML EAI frameworks (e.g., WebMethods)IDEs (e.g., JBuilder), and JavaBeans Development Kit(e.g., BDK)

40

AssignmentReadings

Building Java Enterprise Systems: Part III, 14-18Using Java 2 Enterprise Edition: Parts I, and IIISlides and handouts posted on the course web site

Assignment #3b:Modify ongoing version of Java-based XML Tree Viewerapplication to operate as a client-server application usingCORBA. Both a “rich” Java client and an applet should beprovided on the client side. The server component should beimplemented using VisiBroker 4.5 for Java.Implement a modified version using JavaIDL and RMI-IIOP

Page 21: g22 3033 007 c71 - nyu.eduQBuilding Java Enterprise Systems: Part III, 14-18 QUsing Java 2 Enterprise Edition: Parts I, and III QSlides and handouts posted on the course web site QAssignment

21

41

Next Session:Java Distributed EnterpriseCommunications (Part III)

Review Information Covered in Session 6RMI Activation Service & JAFJNDI Naming and Directory ServicesJini Trading ServiceJMS & JavaMailJTA and JTSPersistence ServiceSecurity Service