Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• Distributed Component Architectures for Cooperative Information Systems Edward Cobb Vice President, Architecture & Standards BEA Systems [email protected] 7 September, 2001 Trademarks •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • The following are trademarks of the Object Management Group – CORBA – UML • The following are trademarks of Sun Microsystems – Java – JavaBeans – Enterprise JavaBeans – J2EE – J2SE – J2ME • The following are trademarks of their respective companies: – – – – 7 September 2001 WebLogic - BEA Systems Websphere - IBM Corporation iPlanet - Sun Microsystems/AOL Microsoft .NET - Microsoft Corporation COOPIS 2001 - Trento, Italy 2 Agenda •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Today’s Business Environment • Evolution of Component Technologies – – – – – Desktop Objects CORBA and DCOM Object Transaction Monitors Java and J2EE Microsoft’s .NET • Loosely-Coupled vs. Tightly-Coupled • Convergence via Web Services • Conclusions 7 September 2001 COOPIS 2001 - Trento, Italy 3 Today’s Business Environment •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •Increased Competition – Time to Market – Flexibility – Adaptability •Cost Containment – Shortage of IT skills – “Do More with Less” – IT contribution to bottom line •Pace of Technology Innovation – Difficult to Keep Up – Opportunity to gain and maintain competitive advantage 7 September 2001 COOPIS 2001 - Trento, Italy 4 What is a Component? •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •A self-contained unit of software code with – its own data and logic – well-defined connections or interfaces – exposed for communication. •Designed for repeated use – in developing applications – with or without customization. 7 September 2001 COOPIS 2001 - Trento, Italy 5 Why Components? •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Time to market – Improved application developer productivity – Reduced complexity – Reuse of existing code • Programming by assembly (manufacturing) rather than development (engineering) – Reduced skills requirements – Focus expertise on domain problems • Key benefit will be seen with server-side development 7 September 2001 COOPIS 2001 - Trento, Italy 6 Objects on the Desktop •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •Key to Graphical User Interfaces (GUIs) •Pioneered by the Apple Macintosh •Brought to the PC by Microsoft and IBM •Key Enabling Technology for the success of Microsoft’s Windows •Has become the preferred approach for all GUI development •A tightly-coupled model 7 September 2001 COOPIS 2001 - Trento, Italy 7 The Client/Server Revolution •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Local Area Networks make Sharing Efficient and cost-effective – Devices (e.g. printers) – Files – Databases • Power to the Desktop User – Applications Reside of Client Desktop – Rise of Powers tools (Microsoft Visual Basic, Sybase Power Builder) for the desktop programmer – Servers used for fixed function (data and device access) 7 September 2001 COOPIS 2001 - Trento, Italy 8 Objects on the Server •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Two competing alternatives – CORBA from the Object Management Group (multilanguage, multi-OS, and vendor neutral) – DCOM from Microsoft (multi-language but Windows only) • Interface Definition Language (IDL) – Defines the contract between client and server – Forms the basis of the on-the-wire interoperability protocol – Based on a tightly-coupled RPC model • Both had limited success – Distribution costs of fine-grain objects – Scalability problems inherent in client-server architectures – Complexity of supporting multiple programming languages 7 September 2001 COOPIS 2001 - Trento, Italy 9 Common Object Request Broker Architecture (CORBA) •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 7 September 2001 COOPIS 2001 - Trento, Italy 10 Object Transaction Monitors •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • A need breed of application middleware – – – – – Not a CORBA ORB with a “suite” of services Not a TP monitor with O-O language binding a new software platform built from “open standards” a component-based development model AND the performance and “abilities” of a TP monitor • Examples: – BEA WebLogic Enterprise (previously called M3 and now part of BEA Tuxedo) – Microsoft’s MTS 4 November 1998 Object Computing Europe 98 - Helsinki 11 Java Makes CORBA a Big Success •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •Rise of the web shifts focus from client to the server •Virtual machine architecture provides better portability and security •Java programming language eliminates many of the complexities of C++ •Focus on portability rather than interoperability •Single language results in APIs which are more natural for the Java programmer than IDL mappings of CORBA APIs 7 September 2001 COOPIS 2001 - Trento, Italy 12 Application Server Architecture •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• Web Clients (via Web Server) Web Server HTTP routing (e.g., Net Director), Firewall Web Clustering Web Server State Data State Data (routing, load balancing, failover) Firewall, Net Director Servlet/ Servlet/ Web JHTML/JSP JHTML/JSP Container Component, Object Clustering State Data Servlet/ Servlet/ Web JHTML/JSP JHTML/JSP Container Enterprise Enterprise Application JavaBeans JavaBeans Container State Data (routing, load balancing, failover) Enterprise Enterprise Application JavaBeans JavaBeans Container Web Clients State Data Programmed Clients 7 September 2001 COOPIS 2001 - Trento, Italy Enterprise Enterprise Application JavaBeans JavaBeans Container 13 What is J2EE? •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • One of three Java platform specifications – Java 2 Micro Edition (J2ME) – Java 2 Standard Edition (J2SE) – Java 2 Enterprise Edition (J2EE) • A Java API specification for Enterprise Applications – Includes J2SE plus – Web container – EJB container • The architecture of the Application Server – BEA WebLogic – IBM Websphere – Sun iPlanet 7 September 2001 COOPIS 2001 - Trento, Italy 14 J2EE 1.3 Architecture •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• Applet HTTP SSL J2SE Application Client Java Mail DB JCX JDBC JAXP JAF EJB JTA JAA JMS Java Mail JCX JDBC JAXP HTTP SSL JTA JAA JMS J2SE Servlet JSP JAF J2SE JDBC JAA JTA JMS HTTP SSL J2SE 7 September 2001 COOPIS 2001 - Trento, Italy 15 Web Container •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Client Access – HTTP(S) Clients with HTML – HTTP(S) Clients with XML documents • Programming APIs – Servlets – Java Server Pages (JSP) • Dynamic HTML content • Custom Tag Libraries – XML parsing (JAXP) in J2EE 1.3 • Back-end access – EJBs via Java RMI – DB via JDBC – Enterprise Information Systems via JCA in J2EE 1.3 7 September 2001 COOPIS 2001 - Trento, Italy 16 EJB Container •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• create find remove EJB Home (bean identifier) EJB Home implements all lifecycle services for the bean. Client methods EJB Object EJB Object EJB EJBObject Object (client view) Enterprise Bean Enterprise Bean Enterprise Bean Enterprise Bean EJB Object provides a client view of the enterprise bean. It intercepts all calls and performs transaction, state, persistence, and security services for the bean. 7 September 2001 COOPIS 2001 - Trento, Italy 17 EJB Taxonomy •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •Session Beans •“TP Monitor” style •Short-lived, no key •1-to-1 relationship to client •Explicit DB access •E.g., Bank Teller, Commerce Server (Inventory agent, “MTS style”) Session Beans Stateless 7 September 2001 Enterprise JavaBeans E- Many EJB applications will use both! (Web shopping cart) Stateful Entity Beans Component view of DB row or object May be long-lived Primary key, stateful 1-to-many relationship to client(s) E.g., Customer, Order Entity Beans (via O/R mapping) ContainerManaged COOPIS 2001 - Trento, Italy (via explicit JDBC; when automated tools are insufficient) BeanManaged 18 User Code EJB Architecture Generated Code All else, system code •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• EJB Server EJB Container Client EJB home stub EJB Object Stubs 7 September 2001 EJB Objects EJB home object Deployment Descriptor COOPIS 2001 - Trento, Italy DBMS Enterprise Beans 19 Microsoft .NET •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Third party .NET services • Building-block services • .NET Platform – – – – Infrastructure + tools User experience Building blocks Mega services • .NET Products and services – – – – – Windows.NET MSN.NET Personalized subscription services Office.NET VisualStudio.NET • VB style • Generates XML – bCentral.NET • BizTalk • Business process orchestration • CRM services 7 September 2001 – Identity (Passport) – Notification and messaging • Unified IM, e-mail, voice mail, … – Personalization – XML store • SOAP • Data description • Unified data access??? – Calendar service – Directory and search – Dynamic delivery COOPIS 2001 - Trento, Italy 20 Loosely-Coupled and TightlyCoupled Architectures •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• •Tightly-Coupled •Loosely-Coupled – High Degrees of Interdependence – Difficult to change parts – Synchronous Invocations (RPCs, conversations) – Implicit State Sharing – Implicit Contexts – 2PC Transactions – Best for intra-enterprise •CORBA 2, J2EE 1.2, and DCOM are all tightly-coupled – Greater Independence – Much easier to change parts – Asynchronous invocations (messaging) – Meta-Data Sharing – Explicit Contexts in messages – Workflow – Ideal for inter-enterprise (web) •CORBA 3, J2EE 1.3, and .NET add loosely-coupled capabilities Web Services is an architecture for loosely-coupled applications 7 September 2001 COOPIS 2001 - Trento, Italy 21 Business Rationale for Loose Coupling Booking a Business Trip •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• Cancel S8 failure Check flight Schedules T2 S2 S6 T1 S1 S2 Start failure S4 S5 S9 hotel car End flight S2 7 September 2001 S3 S7 Reservations COOPIS 2001 - Trento, Italy 22 Web Services Architecture •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• 7 September 2001 COOPIS 2001 - Trento, Italy 23 Web Services Definition •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• “Web services are content and software processes delivered over the Internet using loosely coupled messages (and increasingly, XML interfaces) that ‘service’ a particular set of user needs.” David Smith, Gartner Group 11 October 2000 7 September 2001 COOPIS 2001 - Trento, Italy 24 Web Services Characteristics •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • XML based • Locatable via a registry • Accessible over the web • Loosely-coupled • Message-based • Standard Web Protocols 7 September 2001 COOPIS 2001 - Trento, Italy 25 What’s Different with Web Services? •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Standardization moves to Schema/DTD space – Focus on exchange of complete documents rather than just core information – Versions of schemas used critical to communication • Interoperability rather than Portability but… – As with standard protocols, little work in self-defining documents and interchange (vs. dynamic interface discovery) – Still have to code business logic and create/parse XML – Closer to EDI than to traditional networking – Long-lived business transactions (not 2PC) – Simpler model of interaction than businesses currently use 7 September 2001 COOPIS 2001 - Trento, Italy 26 Web Services Framework •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Wire (or exchange format) – The components representing what is sent during a given exchange; data, the envelope and the metadata necessary for a meaningful transmission • Description – The specifications required for the format definition, use or application of the wire components • Discovery – The specifications that provide the mechanisms for automatic searching and discovery of the components in the Wire and Description stacks 7 September 2001 COOPIS 2001 - Trento, Italy 27 Wire (or exchange format) •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Message Envelope and controlled extensibility (XML) – Versioning – Mandatory and optional message parts – Message components for different intermediaries • Binary attachments • Message Exchange (Routing) – The means to designate different intermediaries and their expected response. – Intermediaries identified by service type 7 September 2001 COOPIS 2001 - Trento, Italy 28 Description •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • XML Schemas • Service Description – Web Services Definition Language (WSDL) – Messages, sent and received, protocols used to exchange them, logical ports associated with services, binds to address(es) – Functionally analogous to IDL • Process Flow Orchestration – Valid sequences of messages – Relationships between messages and the business processes they initiate – Relationships between messages and the (external) contractual provisions they pertain to. 7 September 2001 COOPIS 2001 - Trento, Italy 29 Discovery •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • Inspection – Protocols enabling a web service to obtain metadata about itself such as • a service description • process flow or • related contracts. • Discovery (UDDI) – A protocol to obtain identifiers of services based on given characteristics – Functionally similar to CORBA Trader 7 September 2001 COOPIS 2001 - Trento, Italy 30 Conclusion •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• • The Next Generation Web will be based on communicating programs not browsers • These programs need a common language to exchange information • XML is being adopted as that common language – meets the functional requirements – has support from all major vendors – is an open standard • “The brunt of XML’s Web impact will be on restructuring the economics of Web-based transactions” - Rita Knox, Gartner Group 7 September 2001 COOPIS 2001 - Trento, Italy 31