Introduction to Service Oriented Architecture ( SOA )

Post on 20-Jan-2016

78 views 10 download

description

课程名:以服务为中心的软件开发设计与实现. Introduction to Service Oriented Architecture ( SOA ). Outline. Definitions Why Service-Orientation? SOA Characteristics Service-orientation vs. object-orientation Service-oriented architecture vs. distributed object architecture. What is Service?. - PowerPoint PPT Presentation

Transcript of Introduction to Service Oriented Architecture ( SOA )

1

Introduction to Service Oriented Architecture (SOA)

课程名:以服务为中心的软件开发设计与实现

2

Outline

• Definitions

• Why Service-Orientation?

• SOA Characteristics

• Service-orientation vs. object-orientation

• Service-oriented architecture vs. distributed

object architecture

3

What is Service?

• Services may mean different things to different people:– A piece of business logic accessible via the Internet using

open standards (Microsoft).– Encapsulated, loosely coupled, contracted software functions,

offered via standard protocols over the Web (DestiCorp). – Loosely coupled software components that interact with one

another dynamically via standard Internet technologies (Gartner).

– A software application identified by a URI, whose interfaces and binding are capable of being defined, described, and discovered by XML artifacts and supports direct interactions with other software applications using XML-based messages via Internet-based protocols (W3C).

Loosely coupledStandard internet protocols

4

What is SOA?

• Just like object a generation ago, services is now the killer buzzword. However, SOA is a often misunderstood topic in IT today.

“My architect thinks it’s service-oriented, my developers insist it’s object-oriented, and my analysts wish it would be more business-oriented. All I can tell you is that it isn’t what it was before we started building Web services.”

• “In computing, service-oriented architecture (SOA) provides a set of principles of governing concepts used during phases of systems development and integration.”– From http://en.wikipedia.org/wiki/Service-oriented_architecture

5

In Web 2.0 & Cloud Computing

Web Services

Service-oriented

architecture+

6

SOA: Service Oriented Architecture面向服务的体系架构

… a service?

A repeatable business task – e.g., check customer credit; open new account

… service orientation?

A way of integrating your business as linked servicesand the outcomes that they bring

… service oriented architecture (SOA)?

An IT architectural style that supports service orientation

… a composite application?

A set of related & integrated services that support a business process built on an SOA

SOA

A New Way of Thinking Why????

7

Why SOA is A New Way of Thinking?

Everything is service

Decompose ComposeAnalyzer Developer

8

Organization X

Service broker

Application 1

Organization ZOrganization Y

ComponentLibrary

Services

FoundAuto-searchable

Application 2

BusinessProcess

The SOA Story

RegistrationRegistration Registration

9

Outline

• What is SOA

• Why Service Orientation?

• SOA Characteristics

• Service-orientation vs. object-orientation

• Service-oriented architecture vs. distributed

object architecture

10

Why Service-Orientation?

Marketing

Manufacturing

Accounting

Research &Development

Customer Service

Sales

Distributed Business

RequiresDistributed Computing

Distributed DataDistributed ComputationDistributed users…..

Distributed DataDistributed ComputationDistributed users…..

Market i ng

Manuf actur i ng

Account i ng

Research &Devel opment

Cust omer Servi ce

Sal es

Distributed DataDistributed ComputationDistributed users…..

Distributed DataDistributed ComputationDistributed users…..

11

Why Service-Orientation?

• Interoperation issues– Heterogeneous network protocols– Heterogeneous hardware platforms– Heterogeneous operating systems– Heterogeneous application formats– ……

There must be consensus On Interoperability !

There must be consensus On Interoperability !

12

Changing Market Dynamics

Business process decision-makingRigid organizational structureSlow and steady economic growthLong-term product lifecyclePassive operational risk management

Collaborative, integrated value netsDynamic, adaptive, learningUnpredictable fluctuationsShortening product lifecycleProactive risk managementIncreased focus on privacy and security

Fixed CostsProprietary systemsLabor-intensiveUsers adapt to technology

Variable costsOpen, integrated systemsSelf-healing, self-managing systemsTechnology adapts to users

Business Technology

Sta

tic

On

Dem

and

13

SOA builds flexibility on your current investments The next stage of integration

Flexibility

Point-to-Point connection between applications

Simple, basic connectivity

Messaging Backbone

EAI connects applications via a centralized hub

Easier to manage larger number of connections

Enterprise Application Integration (EAI)

Integration and choreography of services through an Enterprise Service Bus

Flexible connections with well defined, standards-based interfaces

Service Orientated Integration

14

Outline

• What is SOA

• Why Service Orientation?

• SOA Characteristics

• Service-orientation vs. object-orientation

• Service-oriented architecture vs. distributed

object architecture

15

Related Concepts

SOA

ObjectOriented

CBSD

Web Application

DistributedComputing

BPM

EnterpriseIntegration

CBSD: Component-Based Software Development BPM: Business Process Management

16

Program

Paradigm

Distributed

Com

puting

1950 1960 1970 1980 1990 2000

Assembler

COBOL

SIMULA

Pascal

Modular2

Smalltalk

PROLOG

Ada

C++

Java

C#

VT3270

VT100

Client/Server

RPC

Stored Procedure

TCP/IP

CORBA

EAI

WWW

MQ

EJB

NFSWSDL

SOAP

SO

ASOA Evolution

17

SOA Characteristics

• Based on open standards• Foster inherent reusability• Foster intrinsic interoperability• Emphasizes extensibility• Fundamentally autonomous• Promotes dynamic discovery• Promotes architectural composability• Promotes loose coupling• Supports incremental implementation

18

SOA Principles

• The business drives the services, and the services drive the technology.

• Business agility is a fundamental business requirement.

• A successful SOA is always in flux.

19

SOA Roadmap (SOA Standards Organizations)

W3C OASIS WS-IEstablished 1994 1993 as SGML Open,

1994 as OASIS2002

Approximate membership

400 600 200

SOA goal To further the evolution of the Web, by providing fundamental standards that improve online business and information sharing.

To promote online trade and commerce via specialized Web services standards.

To foster standardized interoperability using Web services standards.

SOA deliverables

XML, XML Schema, XQuery, XML Encryption, XML Signature, XPath, XSLT, WSDL, SOAP, WS-CDL, WS-Addressing, Web Services Architecture

UDDI, ebXML, SAML, XACML, WS-BPEL, WS-Security

Basic Profile, Basic Security Profile

World Wide Web ConsortiumOrganization for the Advancement of Structured Information

Standards (OASIS)

Web Services Interoperability Organization

20

Outline

• What is SOA

• Why Service-Orientation?

• SOA Characteristics

• Service-orientation vs. object-orientation

• Service-oriented architecture vs. distributed

object architecture

21

Conceptual Relationship• Several principles of service-orientation are related to

and derived from object-orientation principles.– abstraction -- Decomposition– Encapsulation -- Reusability– Interface first -- Loose coupling– Composition -- Autonomy– Statelessness -- Discoverability

• Some object-orientation principles, such as inheritance, do not fit into the service-orientation world.

• Some service-orientation principles, such as loose coupling and autonomy, are not directly promoted by object-orientation.

22

Conceptual Differences

Loose coupling between units of processing logic.

Based on predefined class dependencies, resulting in more tightly bound objects.

Coarse-grained interfaces (service description)Message-based communication

Fine-grained interfaces (APIs), Communication based on RPC or local API calls.

Large unit of processing logic (service),May vary significantly in scope.

Unit of logic (object) tend to be smaller and More specific in scope.

Promotes the creation of activity-agnostic units of processing logic (services) that are driven into action by intelligent units of communication (message).

Encourages the binding of processing logic with data, resulting in highly intelligent

units (object).

Prefers that units of processing logic (services) be designed to remain as stateless as possible.

Promotes binding of data and logic, resultingIn the creation of more stateful units (objects).

Service-Orientation Object-Orientation

23

The Paradigm Shift

Object-OrientedConcept & Architecture

Service-OrientedConcept & Architecture

SimulaSmalltalk

Objective C C++Java

XMLUDDI ebXMLWSDLSOAPOWL

UML

BPELWSFL

XLANGBPEL4WS

Software EngineeringOOADOOT

OO FrameworkOODB

OO Process model

System EngineeringMDASOT

SO FrameworkOntology DB

SO lifecycle process

ProgrammingLanguage

StandardSpecification

Modeling

Modeling

Technology &Methodology

Technology &Methodology

24

Outline

• What is SOA

• Why Service-Orientation?

• SOA Characteristics

• Service-orientation vs. object-orientation

• Service-oriented architecture vs. distributed

object architecture

25

Conceptual Relationship

• SOA is a radical departure from client-server architecture

• Current SOAs still employ some of the technologies originally used to build client-server applications

• Distributed Internet architecture has much in common with SOA. However, SOA has distinct characteristics relating to both technology and its underlying design principles.

26

Distributed System Architecture

Client

Server

Data ManagementApplication Processing

Presentation

Client

Server

Data Management

PresentationApplication Processing

Two Tier with Thin Client

Two Tier with Fat Client

Server

Application Processing

Server

DataManagement

Client

Presentation

Three Tier

27

Multi-Tier System Architecture

• RPC-based– Client and middleware server is tightly coupled

• Remote Object based– Remote objects communicates through standard

interface languages– Object models: OMG CORBA, SUN Java RMI, DCOM

• Web based– Browser + “Dynamic content generation”– Enabling techniques: CGI, Java Servlet/JSP, ASP

28

Distributed Object Computing

• Coupled with a powerful communications infrastructure, distributed objects divide monolithic client/server applications into self-managing components, or objects, that can interoperate across disparate networks and operating systems. – SUN J2EE

• JavaTM 2 Platform, Enterprise Edition – MS DCOM

• Distributed Component Object Model– OMG CORBA

• Common Object Request Broker Architecture

29

Advantages of Distributed Object Architecture

• It allows the system designer to delay decisions on where and how services should be provided

• It is a very open system architecture that allows new resources to be added to it as required

• The system is flexible and scaleable• It is possible to reconfigure the system

dynamically with objects migrating across the network as required

30

Weakness of Distributed Object Architecture

• Tightly coupled– Both ends of each distributed computing link had to

agree on the details of the API. A code change to a COM object, for example, required corresponding changes to the code accessing that object.

• Proprietary– Microsoft controlled DCOM– Implementing a CORBA architecture typically

necessitated the decision to work with a single vendor's implementation of the specification.

31

SOA -- an Evolution

• SOA is an evolutionary development upon the weaknesses of distribute object computing technique.– Standard-based

• Reliance upon universally accepted standards provides broad interoperability among different vendors’ solutions

– loosely couples • Separates the participants in distributed computing

interactions so that modifying the interface of one participant in the exchange does not break the other.

32

Summary• SOA enables dynamic collaboration among loosely

coupled, reusable software components through standard Internet protocols.

• SOA is driven by both business and technology needs for open collaboration, cost saving and flexibility to dynamic changes.

• SOA is developed from other software techniques including distributed object computing, component-based software engineering, and enterprise application integration.

33

Key References• Web Services: Principles and Technology• 毛新生 . SOA原理、方法、实践 . 2007• SOA for business developer: Concepts, BPEL,

and SCA.• 白晓颖 . 面向服务软件工程技术 -IBM精品课课件 . 2007c

34

Additional Reading• M. P. Singh and M. N. Huhns, “Service-Oriented Computing”, John Wiley & Sons, 2005.• Thomas Erl, “Service-Oriented Architecture: Concepts, Technology, and Design”, Prentice Hall,

2005.• Eric Newcomer and Greg Lomow, “Understanding SOA with Web Services”, Addison Wesley,

2005. • D. Krafzig, K. Banke and D. Slama, “Enterprise SOA: Service-Oriented Architecture Best

Practice”, Prentice Hall, 2005. • Wei-Tek Tsai, “What is SOA? Why should you care?”, Peking University Summer Course on

Service-Oriented Computing and Architecture, 2006. • Jen-Yao Chung, “Service-Oriented Architecture and Web Services”, keynote speaking, SOSE

2005. • Jason Bloomberg, “Principles of SOA”, Feb. 2003. • “A Practical Guide to SOA for IT Management”, Systinet Corp. 2005.• Shireesh Jayashetty, Pradeep Kumar M, “Adopting Service Oriented Architecture increases the

flexibility of your enterprise”, Infosys, 2006.• Ian Summerville, “Software Engineering” (6th Edition), Addison-Wesley, 2000.• ObjectWeb, http://middleware.objectweb.org/• OMG, http://www.omg.org/• Doug Schmidt’s CORBA page, http://www.cs.wustl.edu/~schmidt/corba.html

35

Thanks!

HP: http://keg.cs.tsinghua.edu.cn/persons/tj/

Arnet: http://jietang.arnetminer.org/