C. Rahmani, SOA Introduction - Ahvaz.unomaha.edu

makeshiftklipInternet and Web Development

Oct 31, 2013 (3 years and 9 months ago)

66 views

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

[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.


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)


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

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


13

connection to resource mgmt
layer

presentation layer

resource management layer

application logic layer

client

Web
server

wide area network (Internet)

firewall

HTTP

browser

other protocols

other servers
(email, SOAP,..)

©

Gustavo Al onso, ETH Zuri ch, 2004

Web servi ces: Concepts, Archi tectures and Appl i cati ons
-

Chapter 4

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

J
2
EE

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


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

To be continued….



Architecture
-
based
reliability?


What are the Different types of Application Server Architecture?


Why one Application server is more reliable?