Introduction to Service Oriented Architecture ( SOA )

35
1 Introduction to Service Oriented Architecture (SOA) 课课课 课课课课课课课课课课课课课课课课

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 )

Page 1: Introduction to Service Oriented Architecture ( SOA )

1

Introduction to Service Oriented Architecture (SOA)

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

Page 2: 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

Page 3: Introduction to Service Oriented Architecture ( SOA )

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

Page 4: Introduction to Service Oriented Architecture ( SOA )

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

Page 5: Introduction to Service Oriented Architecture ( SOA )

5

In Web 2.0 & Cloud Computing

Web Services

Service-oriented

architecture+

Page 6: Introduction to Service Oriented Architecture ( SOA )

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????

Page 7: Introduction to Service Oriented Architecture ( SOA )

7

Why SOA is A New Way of Thinking?

Everything is service

Decompose ComposeAnalyzer Developer

Page 8: Introduction to Service Oriented Architecture ( SOA )

8

Organization X

Service broker

Application 1

Organization ZOrganization Y

ComponentLibrary

Services

FoundAuto-searchable

Application 2

BusinessProcess

The SOA Story

RegistrationRegistration Registration

Page 9: Introduction to Service Oriented Architecture ( SOA )

9

Outline

• What is SOA

• Why Service Orientation?

• SOA Characteristics

• Service-orientation vs. object-orientation

• Service-oriented architecture vs. distributed

object architecture

Page 10: Introduction to Service Oriented Architecture ( SOA )

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

Page 11: Introduction to Service Oriented Architecture ( SOA )

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 !

Page 12: Introduction to Service Oriented Architecture ( SOA )

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

Page 13: Introduction to Service Oriented Architecture ( SOA )

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

Page 14: Introduction to Service Oriented Architecture ( SOA )

14

Outline

• What is SOA

• Why Service Orientation?

• SOA Characteristics

• Service-orientation vs. object-orientation

• Service-oriented architecture vs. distributed

object architecture

Page 15: Introduction to Service Oriented Architecture ( SOA )

15

Related Concepts

SOA

ObjectOriented

CBSD

Web Application

DistributedComputing

BPM

EnterpriseIntegration

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

Page 16: Introduction to Service Oriented Architecture ( SOA )

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

Page 17: Introduction to Service Oriented Architecture ( SOA )

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

Page 18: Introduction to Service Oriented Architecture ( SOA )

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.

Page 19: Introduction to Service Oriented Architecture ( SOA )

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

Page 20: Introduction to Service Oriented Architecture ( SOA )

20

Outline

• What is SOA

• Why Service-Orientation?

• SOA Characteristics

• Service-orientation vs. object-orientation

• Service-oriented architecture vs. distributed

object architecture

Page 21: Introduction to Service Oriented Architecture ( SOA )

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.

Page 22: Introduction to Service Oriented Architecture ( SOA )

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

Page 23: Introduction to Service Oriented Architecture ( SOA )

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

Page 24: Introduction to Service Oriented Architecture ( SOA )

24

Outline

• What is SOA

• Why Service-Orientation?

• SOA Characteristics

• Service-orientation vs. object-orientation

• Service-oriented architecture vs. distributed

object architecture

Page 25: Introduction to Service Oriented Architecture ( SOA )

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.

Page 26: Introduction to Service Oriented Architecture ( SOA )

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

Page 27: Introduction to Service Oriented Architecture ( SOA )

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

Page 28: Introduction to Service Oriented Architecture ( SOA )

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

Page 29: Introduction to Service Oriented Architecture ( SOA )

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

Page 30: Introduction to Service Oriented Architecture ( SOA )

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.

Page 31: Introduction to Service Oriented Architecture ( SOA )

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.

Page 32: Introduction to Service Oriented Architecture ( SOA )

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.

Page 33: Introduction to Service Oriented Architecture ( SOA )

33

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

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

Page 34: Introduction to Service Oriented Architecture ( SOA )

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

Page 35: Introduction to Service Oriented Architecture ( SOA )

35

Thanks!

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

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