Presentation on theme: "1 Introduction to Service Oriented Architecture (SOA) 课程名：以服务为中心的软件开发设计与实现."— Presentation 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 coupled Standard 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_architecturehttp://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 services and 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 DecomposeCompose AnalyzerDeveloper
8 Organization X Service broker Application 1 Organization Z Organization Y Component Library Services FoundAuto-searchable Application 2 Business Process The SOA Story 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? Distributed Data Distributed Computation Distributed users ….. Distributed Data Distributed Computation Distributed users ….. Distributed Data Distributed Computation Distributed users ….. Distributed Data Distributed Computation Distributed 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-making Rigid organizational structure Slow and steady economic growth Long-term product lifecycle Passive operational risk management Collaborative, integrated value nets Dynamic, adaptive, learning Unpredictable fluctuations Shortening product lifecycle Proactive risk management Increased focus on privacy and security Fixed Costs Proprietary systems Labor-intensive Users adapt to technology Variable costs Open, integrated systems Self-healing, self-managing systems Technology adapts to users BusinessTechnology Static On Demand
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 Object Oriented CBSD Web Application Distributed Computing BPM Enterprise Integration CBSD: Component-Based Software Development BPM: Business Process Management
16 Program Paradigm Distributed Computing 195019601970198019902000 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 NFS WSDL SOAP SOA SOA 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 ) W3COASISWS-I Established19941993 as SGML Open, 1994 as OASIS 2002 Approximate membership 400600200 SOA goalTo 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 Consortium Organization 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, resulting In the creation of more stateful units (objects). Service-OrientationObject-Orientation
23 The Paradigm Shift Object-Oriented Concept & Architecture Service-Oriented Concept & Architecture Simula Smalltalk Objective C C++ Java XML UDDI ebXML WSDL SOAP OWL UML BPEL WSFL XLANG BPEL4WS Software Engineering OOAD OOT OO Framework OODB OO Process model System Engineering MDA SOT SO Framework Ontology DB SO lifecycle process Programming Language Standard Specification 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 Management Application Processing Presentation Client Server Data Management Presentation Application Processing Two Tier with Thin Client Two Tier with Fat Client Server Application Processing Server Data Management 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 Java TM 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” (6 th Edition), Addison-Wesley, 2000. ObjectWeb, http://middleware.objectweb.org/http://middleware.objectweb.org/ OMG, http://www.omg.org/ Doug Schmidt’s CORBA page, http://www.cs.wustl.edu/~schmidt/corba.html