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?