
Extreme Java G22.3033-007 Session 6 - Sub-Topic 1 Distributed Communications Enabling Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences 1 Enterprise Web Applications 2 1 Basic Web Applications Documents DB Internet Connection Databases Client Web Enterprise Browser Server Data CGI, SSJS, NSAPI, ISAPI, WAI, Etc. 3 Robust Web Applications Presentation Business Logic Tier Data Tier Tier HTTP Documents Databases Web Web Browser Servers Enterprise C/S IIOP Applications Application Server(s) Rich Clients Legacy (Java C/C++, VB) Systems4 2 Application Servers Internals Client Application Server Scalable, HTML Application Logic Reliable (Java, C/C++) Application Architecture Java Load Thread Fail Safe Persistence Versioning Balancing Manager Services Pre-Built System & C/C++ JDBC Connection Results Transactions Application Data Access Pooling Caching Services State / Messaging Session Mgt Directory Security Visual Basic Distributed Object Infrastructure Network Services Operating System Application Servers Technical Architectures Open and Extensible Extensions Application • TP Monitors Server • Legacy (Java, C/C++) • Client/server Extensions Data Sources Browsers Web •RDBMS Servers • Oracle ISAPI, NSAPI, CGI NSAPI, ISAPI, •Informix Web Connectors • Sybase (HTTP, KCP, KCP, IIOP) (HTTP, •DB2 Protocol Manager •SQL Server Open Client Library • OODBMS Embedded (bundled) •ODI OCL IONA ORB • ODBC & JDBC Data Access Engine Platforms Rich Clients Java, C/C++,VB •Sun Solaris •HP-UX • SGI Irix • Windows6 3 Application Server Categories • CORBA-based (OMA-based) • Java-based (J2EE-based) • COM+-based • HTML-Extended • XML-based • Adaptive • http://www.appserver-zone.com/guide.asp lists 77+ unclassified products !!! • All categories operate on top of a DOC layer 7 Application Servers Selection Criteria Q Usability Q Scalability Q Security Q Manageability Q Reusability Q Support Q Skills Q The underlying DOC platform is a key driver in the selection process 8 4 Distributed Object Computing and Application Servers 9 Computing Layers & Facilities Q Course Outline Q Distributed Object Computing Q Application Server Categories Q Client Interfaces (MOM & POP Applications) Q Web Application Modeling (UML/XML) Q Adaptiveness & Model-Driven Application Generation 10 5 Distributed Object Computing Models Q CORBA Q EJB & J2EE Q COM+ 11 CORBA 12 6 Common Object Request Broker Architecture Q Open distributed computing infrastructure/platform (OMA) Q Programming language independent DOC environment Q Based on OMG IDL, and IIOP/GIOP Q Standardized by the OMG Q Automates common networking programming tasks Q Object registration, location, activation Q Request demultiplexing Q Framing and error handling Q Parameter marshalling and demarshalling Q Operation dispatching 13 New in Corba 3 Q Component Model (CCM) Q Quality-of-service control Q Messaging invocation model Q Tightened integration with the Internet Q POA (Portable Object Adapter) Q EJB and Java support Q OMG specifications for analysis and design, and application interoperability Q UML, MOF, XMI, Common Warehouse Model 14 7 Overview of Corba: OMG Reference Model Architecture 15 Object Services (CORBAservices) Q Domain-independent interfaces used by many distributed object programs Q Naming Service: allows clients to find objects based on names Q Trading Service: allows clients to find objects based on their properties Q Other services: persistence, lifecycle management, security, transactions, event notification, etc. 16 8 Common Facilities (Horizontal CORBAfacilities) Q Horizontally-oriented interfaces Q Oriented towards end-user applications Q E.g.: Distributed Document Component Facility (DDCF) Q Compound document facility based on OpenDoc Q Allows for presentation and interchange of objects based on a document model (e.g., linking of spreadsheet object into a report document) Q Printing, Secure Time, Internationalization, and Mobile Agent Facilities 17 Domain Interfaces (Domain CORBAfacilities) Q Role similar to Object Services and Common Facilities Q Oriented towards specific application domains Q E.g., Product Data Management (PDM) Enablers for the manufacturing domain Q Other possibilities in the telecommunications, medical, and financial domains 18 9 Application Interfaces Q Interfaces developed for a given application Q Not standardized Q Might become candidates for future OMG standardization 19 CORBA ORB Architecture 20 10 Object Implementation Q Defines operations that implement a CORBA IDL interface Q Object implementations can be written in a variety of languages Q C, C++, Java, Smalltalk, Ada, etc. 21 Client Q Program that invokes an operation on an object implementation Q Accessing the services of a remote object is transparent to the caller Q As simple as calling a method on an object Q E.g., obj->op(args) 22 11 Object Request Broker (ORB) Q Provides mechanism for transparently communicating client requests to target object implementations Q Simplifies distributed programming by decoupling the client from the details of the method invocations Q Client requests appear to be local procedure calls Q ORB is responsible for finding the object implementation, activating it, delivering the request to the object, and returning a response to the caller 23 ORB Interface Q Abstract interface for an ORB Q ORB may be implemented in various ways Q One or more processes, set of libraries, etc. Q Interface provides various helper functions Q Converting object references to strings Q Creating argument lists for requests made through the dynamic invocation interface 24 12 CORBA IDL Stubs and Skeletons Q Serve as the “glue” between the client and server applications, and the ORB Q CORBA compiler automates the transformation between CORBA IDL definitions and the target programming language Q Use of compiler reduces the potential for inconsistencies between client stubs and server skeletons Q Use of compiler facilitates automated optimizations 25 Dynamic Invocation Interface (DII) Q Allows a client to directly access the underlying request mechanisms provided by an ORB Q Applications use the DII to dynamically issue requests to objects without requiring IDL interface- specific stubs to be linked in Q DII allows clients to make non-blocking deferred synchronous (separate send and receive operations) and oneway (send-only) calls 26 13 Dynamic Skeleton Interface (DSI) Q Server side analogue to the client side DII Q Allows an ORB to deliver requests to an object implementation that does not have compile-time knowledge of the type of the object it is implementing Q Client making the request has no idea whether the implementation is using type-specific IDL skeletons or dynamic skeletons 27 Object Adapter Q Assists the ORB with delivering requests to the object Q Assists the ORB with activating the object Q Associates object implementation with the ORB Q Can be specialized to provide support for certain object implementation styles (e.g., OODB object adapters for persistence) 28 14 ORB Products Q BEA WLE (formerly BEA M3) Q Expertsoft CORBAplus Q IBM WebSphere Product Family (Component Broker) Q Inprise VisiBroker Middleware Products Q IONA Orbix Q Merant CORBA Technology for COBOL Q PeerLogic DAIS Q ObjectSpace Voyager 29 Questions? 30 15 EJB and Java 2 Platform Enterprise Edition 31 Java 2 Platform, Enterprise Edition Q Released on 9/27/99 Q Complete development platform architected to meet the needs of enterprise application development Q Makes all Java APIs and functionality available and accessible in a well integrated fashion Q Simplifies the development, deployment, and management of multi-tier server-centric solutions Q Built on Enterprise JavaBeans component architecture 32 16 Java Technology Findings Q Open standards are better than closed Q Write Once, Run Anywhere beats proprietary vendor-lock technology Q Findings motivate the creation of a single, unified platform with an easy-to-use model for building distributed ebusiness applications across a wide array of products 33 J2EE Platform and Enterprise Computing Solutions 34 17 J2EE Key Value Propositions Q Simplified enterprise development Q Supports various pieces of server software Q Industrial strength scalability Q Legacy connectivity Q Open platform (choice/flexibility) Q Security Q Portability 35 J2EE Platform: The Whole is Greater than the Sum of its Parts 36 18 J2EE: A Complete Computing Environment Q Platform Specification Q Lists required elements of the platform Q Lists policies to follow for a valid implementation Q Reference Implementation Q Semantically correct prototype to test against Q Compatibility Test Suite Q API-level compatibility, component-level tests, end-to-end compatibility Q Application Programming Model: java.sun.com/j2ee 37 The Three Cs: Components, Containers, Connectors 38 19 J2EE: Components Q Enterprise JavaBeans Q Server-side solutions can be built without regards for the database, transaction server, or application they run on Q Servlets Q Run on vast majority of web servers Q JavaServer Pages Q Dynamic content leverages off the full power of Java 39 J2EE: Containers Q Containers provide high-performance, scalable environments for J2EE-enabled servers Q J2EE-enabled servers support EJB-based components, servlets, and JSP-based pages 40 20 J2EE: Connectors Q Connectors allow J2EE-based solution to preserve, protect, and leverage off of existing enterprise investments 41 J2EE: Unifying the Three Cs Q Single platform Q Standard platform-independent
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages37 Page
-
File Size-