Extreme Java G22.3033-007

Extreme Java G22.3033-007

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

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    37 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us