soa introduction cobra rahmani 02/19/10. table of content soa introduction web services web servers...

22
SOA Introduction Cobra Rahmani 02/19/10

Upload: ophelia-robinson

Post on 23-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

SOA Introduction

Cobra Rahmani02/19/10

Page 2: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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

Page 3: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

SOA Introduction

A Service-Oriented Architecture

[1] Service-Oriented Architecture and Web Services: Concepts, Technologies, and Tools, By Ed Ort, April 2005

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.

Page 4: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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)

Page 5: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

Web services

Technologies used in Web services: XML – (Extensible Markup Language)

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.

UDDI

SOAP

WSDL

Page 6: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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/

Page 7: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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/

Page 8: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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/

Page 9: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

Emerging Web Services Platform

[1] http://www.service-architecture.com/

Page 10: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

SOA using Web services

[1] http://www.service-architecture.com/

Page 11: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

Example: Web Server and Application server communication

Page 12: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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

Page 13: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

Application server architecture

13

connection to resource mgmt layer

presentation layer

resource management layer

application logic layer

client

application server

Web server

wid

e a

rea n

etw

ork

(In

tern

et)

fire

wall HTTP

browser

other protocols

other servers (email, SOAP,..)

© Gustavo Alonso, ETH Zurich, 2004 Web services: Concepts, Architectures and Applications - Chapter 4

Page 14: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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

Page 15: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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/

Page 16: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

J2EE application server architecture

[1] http://www.service-architecture.com/

Page 17: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

J2EE application server architecture

http://docs.sun.com/app/docs/doc/819-3658/ablat?a=view

Page 18: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

Zope, the Python-based Application Server

Page 19: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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.

Page 20: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

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

Page 21: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

• 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

WS-Reliability

Page 22: SOA Introduction Cobra Rahmani 02/19/10. Table of Content SOA Introduction Web services Web servers – Appache (Apache Http Server) 54% – Microsoft (IIS)

To be continued….

• Architecture-based reliability?• What are the Different types of Application Server Architecture?• Why one Application server is more reliable?