1 introduction to service oriented architecture (soa)...
TRANSCRIPT
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/