SOA Introduction Cobra Rahmani 02/19/10
Transcription
SOA Introduction Cobra Rahmani 02/19/10
SOA Introduction Cobra Rahmani 02/19/10 Table of Content • SOA Introduction • Web services • Web servers – – – – – Appache (Apache Http Server) 54% Microsoft (IIS) 24% Igor Sysoev(nginx) 8% Google (GWS) 7% Lighttpd (lighttpd) 0% [1] • Application servers – – – – – – – – AppaServer (Open Source) Glassfish (Open Source) Spring Framework (Open Source) Base 4 (Open Source) Zope (Open Source) WebSphere Application Server (IBM) WebObjects (Apple Inc.) WebLogic Server (Oracle) • Application server Architecture Reliability ? [1] ”Netcraft survey”, January 2010 SOA Introduction A service-oriented architecture is an information technology approach in which applications make use services available in a network such as the World Wide Web. A Service-Oriented Architecture [1] Service-Oriented Architecture and Web Services: Concepts, Technologies, and Tools, By Ed Ort, April 2005 Web services • Web services: self-contained, modular business applications that have open, Internet-oriented, standards-based interfaces [UDDI consortium] • the need for being compliant with Internet standards • Open, which essentially means that it has a published interface that can be invoked across the Internet [2] Web Services: Concepts, Architecture and Applications G. Alonso, F. Casati, H. Kuno, V. Machiraju. Springer, 2004. (Chapter 5) Web services Technologies used in Web services: XML – (Extensible Markup Language) UDDI SOAP – (Simple Object Access Protocol) A message exchange standard that supports service communication. WSDL- (Web Service Definition Language) This standard allows a service interface and its bindings to be defined. UDDI - (Universal Description Discovery and Integration) Defines the components of a service specification that may be used to discover the existence of a service. SOAP WSDL SOAP • SOAP provides the envelope for sending Web Services messages over the Internet/Interanet. (Standard specified by the W3C) [1] [1] http://www.service-architecture.com/ • WSDL WSDL is a way to describe services and how they should be bound to specific network addresses. WSDL has 3 parts [1]: – Definitions (expressed in XML and include both data type definitions and message definitions that use the data type definitions.) – Operations (Operations describe actions for the messages supported by a Web service) • 4 types of operations: – One-way: Messages sent without a reply required – Request/response: The sender sends a message and the receiver sends a reply. – Solicit response: A request for a response. – Notification: Messages sent to multiple receivers. – Service bindings • ( connect port types to a port. A port is defined by associating a network address with a port type. A collection of ports defines a service) [1] http://www.service-architecture.com/ UDDI • Universal Description, Discovery, and Integration (UDDI) provides the definition of a set of services supporting the description and discovery of – (1) businesses, organizations, and other Web Services providers, – (2) the Web Services they make available, and – (3) the technical interfaces which may be used to access those services. The idea is to "discover" organizations and the services that organizations offer, much like using a phone book or dialing information [1]. • • • • The UDDI Business Registry system consists of three directories: UDDI white pages: basic information such as a company name, address, and phone numbers, as well as other standard business identifiers like Dun & Bradstreet and tax numbers. UDDI yellow pages: detailed business data, organized by relevant business classifications. The UDDI version of the yellow pages classifies businesses according to the newer NAICS (North American Industry Classification System) codes, as opposed to the SIC (Standard Industrial Classification) codes. UDDI green pages: information about a company's key business processes, such as operating platform, supported programs, purchasing methods, shipping and billing requirements, and other higher-level business protocols. [1] http://www.service-architecture.com/ Emerging Web Services Platform [1] http://www.service-architecture.com/ SOA using Web services [1] http://www.service-architecture.com/ Example: Web Server and Application server communication Application server • An application server is a software framework dedicated to the efficient execution of procedures (scripts, routines, programs, ...) for supporting the construction of applications. • Acts as a set of components accessible to the software developer through an API defined by the platform itself. • For web applications, their main job is to support the construction of dynamic pages. • However, present-day application servers also implement services like clustering, fail-over and load-balancing, so developers can be focused just on implementing the business logic. [1] WikiPedia, Application Server Application server architecture other protocols Web server presentation layer application logic layer connection to resource mgmt layer firewall other servers (email, SOAP,..) wide area network (Internet) client HTTP browser resource management layer © Gustavo Alonso, ETH Zurich, 2004 Web services: Concepts, Architectures and Applications - Chapter 4 13 Application Server Architecture • The term application server sometimes refers to a J2EE or Java EE 5 application server. Some of the better-known Java Enterprise Edition application servers include: • • • • • • • • • • • • • • • Apache Geronimo (Apache Software Foundation) Apache Tomcat (Apache Software Foundation) Glassfish Application Server (open source) WebSphere Application Server and WebSphere Application Server Community Edition (IBM) JBoss (Red Hat) Jetty (Mort Bay Consulting) JRun (Adobe Systems) Oracle OC4J (Oracle) WebLogic Server (Oracle) SAP Netweaver AS (ABAP/Java) (SAP) tc Server (SpringSource) Sun GlassFish Enterprise Server (based on GlassFish Application Server)(Sun Microsystems) Sybase Enterprise Application Server (Sybase Inc) Tcat Server (MuleSoft) WebObjects (Apple Inc.) [1] Wikipedia, Application Server J2EE application server architecture • Application server provides middleware services. • The J2EE platform requires a database for the storage of business data. • This database is accessible through the JDBC, SQLJ, or JDO APIs. • The database is also accessible from web components, enterprise beans, and application client components. • J2EE uses a multi-tier distributed model. This model generally includes a Client Tier, a Middle Tier, and an EIS Tier. – Client Tier: applications or browsers – Middle Tier: a Web Server and an EJB Server (These servers are also called "containers.") – EIS Tier: Existing applications, files, and databases. [1] http://www.service-architecture.com/ J2EE application server architecture [1] http://www.service-architecture.com/ J2EE application server architecture http://docs.sun.com/app/docs/doc/819-3658/ablat?a=view Zope, the Python-based Application Server Reliability Study for Application Servers • Because a single application server is responsible for running many individual applications: one application could inadvertently affect the reliability of another. • Application servers force individual applications to share resources and services, increasing the likelihood that one trouble spot could affect the entire portfolio of executing applications. • All applications share server space, operating system resources, and common services, the chance that one bad application inclines another to sub-par performance and/or failure is enormous and unacceptable. • Another dimension of reliability is the providing of fail-over and load balancing among J2EE applications. • Today, additional application servers must be deployed—at considerable cost— on separate machines in order to achieve some satisfactory measure of fault tolerance. http://www.msmiami.com/custom/downloads/appserver%20partitioning.pdf, Borland Application Server Partitioning. WS-Reliability • Web Service Reliability: • “WS-Reliability is a specification for open, reliable Web service messaging including guaranteed delivery, duplicate message elimination and message ordering, enabling reliable communication between Web services. ” • The reliability features are based on extensions to the Simple Object Access Protocol (SOAP), rather than being tied to the underlying transport protocol. http://download-east.oracle.com/docs/cd/B25221_04/web.1013/b25603/reliability.htm WS-Reliability • Web Service Reliability encompasses the following features(Oracle Application Server): • guaranteed delivery—ensures that a sent message will be received. • duplication elimination—ensures that the receiver will not see any duplicate messages (messages with the same message ID are treated as duplicates). • guaranteed message delivery and duplicate message elimination— ensures that all messages sent will be received, and any duplicate messages will be removed. • message ordering—ensures that a sequence of messages that are sent will be received in the same order. http://download-east.oracle.com/docs/cd/B25221_04/web.1013/b25603/reliability.htm To be continued…. • Architecture-based reliability? • What are the Different types of Application Server Architecture? • Why one Application server is more reliable?