590 likes | 1.17k Views
课程å:以æœåŠ¡ä¸ºä¸å¿ƒçš„软件开å‘设计与实现. 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?.
E N D
课程名:以服务为中心的软件开发设计与实现 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? • 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
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
In Web 2.0 & Cloud Computing Service-oriented architecture Web Services +
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 SOA … 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 Why???? • A New Way of Thinking
Why SOA is A New Way of Thinking? Everything is service Decompose Compose Analyzer Developer
Found Auto-searchable Registration Registration Registration The SOA Story Application 1 Application 2 Business Process Service broker Services Component Library Organization Z Organization Y Organization X
Outline • What is SOA • Why Service Orientation? • SOA Characteristics • Service-orientation vs. object-orientation • Service-oriented architecture vs. distributed object architecture
Why Service-Orientation? Distributed Data Distributed Computation Distributed users ….. Distributed Data Distributed Computation Distributed users …..
There must be consensus On Interoperability ! Why Service-Orientation? • Interoperation issues • Heterogeneous network protocols • Heterogeneous hardware platforms • Heterogeneous operating systems • Heterogeneous application formats • ……
Changing Market Dynamics Business Technology Business process decision-making Rigid organizational structure Slow and steady economic growth Long-term product lifecycle Passive operational risk management Fixed Costs Proprietary systems Labor-intensive Users adapt to technology Static Collaborative, integrated value nets Dynamic, adaptive, learning Unpredictable fluctuations Shortening product lifecycle Proactive risk management Increased focus on privacy and security Variable costs Open, integrated systems Self-healing, self-managing systems Technology adapts to users On Demand
Flexibility SOA builds flexibility on your current investments The next stage of integration Service Orientated Integration Enterprise Application Integration (EAI) Messaging Backbone Integration and choreography of services through an Enterprise Service Bus Flexible connections with well defined, standards-based interfaces EAI connects applications via a centralized hub Easier to manage larger number of connections Point-to-Point connection between applications Simple, basic connectivity
Outline • What is SOA • Why Service Orientation? • SOA Characteristics • Service-orientation vs. object-orientation • Service-oriented architecture vs. distributed object architecture
Related Concepts Enterprise Integration Object Oriented BPM SOA Distributed Computing CBSD Web Application CBSD: Component-Based Software Development BPM: Business Process Management
Client/Server SOA WSDL CORBA NFS VT3270 MQ RPC EJB VT100 EAI SOAP TCP/IP WWW Stored Procedure Modular2 COBOL Smalltalk Pascal Java PROLOG Ada C# Program Paradigm Distributed Computing SIMULA Assembler C++ 1950 1960 1970 1980 1990 2000 SOA Evolution
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
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.
SOA Roadmap (SOA StandardsOrganizations) Organization for the Advancement of Structured Information Standards (OASIS) Web Services Interoperability Organization World Wide Web Consortium
Outline • What is SOA • Why Service-Orientation? • SOA Characteristics • Service-orientation vs. object-orientation • Service-oriented architecture vs. distributed object architecture
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.
Conceptual Differences Service-Orientation Object-Orientation 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).
The Paradigm Shift Technology & Methodology Programming Language Modeling Software Engineering OOAD OOT OO Framework OODB OO Process model Simula Smalltalk Objective C C++ Java UML Object-Oriented Concept & Architecture Standard Specification Technology & Methodology Modeling XML UDDI ebXML WSDL SOAP OWL BPEL WSFL XLANG BPEL4WS System Engineering MDA SOT SO Framework Ontology DB SO lifecycle process Service-Oriented Concept & Architecture
Outline • What is SOA • Why Service-Orientation? • SOA Characteristics • Service-orientation vs. object-orientation • Service-oriented architecture vs. distributed object architecture
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.
Server Server Data Management Application Processing Data Management Server Server Data Management Application Processing Distributed System Architecture Presentation Two Tier with Thin Client Client Presentation Application Processing Two Tier with Fat Client Client Presentation Client Three Tier
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
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
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
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.
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.
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.
Key References • Web Services: Principles and Technology • 毛新生. SOA原理、方法、实践. 2007 • SOA for business developer: Concepts, BPEL, and SCA. • 白晓颖. 面向服务软件工程技术-IBM精品课课件. 2007c
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. • ShireeshJayashetty, 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
Thanks! HP: http://keg.cs.tsinghua.edu.cn/persons/tj/ Arnet: http://jietang.arnetminer.org/