1 / 56

Introduction to Service-Orientation

Introduction to Service-Orientation. Xiaoying Bai Department of Computer Science and Technology Tsinghua University March 2007. Outline. SOA definition and its business and technology values Service-orientation vs. object-orientation

rune
Download Presentation

Introduction to Service-Orientation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Service-Orientation Xiaoying Bai Department of Computer Science and Technology Tsinghua University March 2007

  2. Outline • SOA definition and its business and technology values • Service-orientation vs. object-orientation • Service-oriented architecture vs. distributed object architecture

  3. 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.”

  4. What are Services? • Services may mean different things to different people: • 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).

  5. What are Services? • 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). • Services are self-contained, reusable software modules that are independent of applications and the computing platforms on which they run. Services have with well-defined interfaces and allow a 1:1 mapping between business tasks and the exact IT components needed to execute the task. (IBM)

  6. What is SOA? • SOA definition is still evolving. • A set of components which can be invoked, and whose interface description can be published and discovered (W3C). • Service-oriented architecture is a client/server design approach in which an application consists of software services and software service consumers (also known as clients or service requesters). SOA differs from the more general client/server model in its definitive emphasis on loose coupling between software components, and in its use of separately standing interfaces (Gartner).

  7. What is SOA? • Service-Oriented Architecture is a business-driven IT architecture approach that supports integrating your business as linked, repeatable business tasks, or services. SOA helps today’s business innovate by ensuring that IT systems can adapt quickly, easily and economically to support rapidly changing business needs. SOA helps customers increase the flexibility of their business processes, strengthen their underlying IT infrastructure and reuse their existing IT investments by creating connections among disparate applications and information sources. (IBM) • A New Way of Thinking

  8. A CD Player Example • Take a CD for instance. If you want to play it, you put your CD into a CD player and the player plays it for you. The CD player offers a CD playing service. Which is nice because you can replace one CD player with another. You can play the same CD on a portable player or on your expensive stereo. They both offer the same CD playing service, but the quality of service is different.

  9. Application 1 Application 2 Found Auto-searchable Registration Registration Registration Organization Z Organization Y Organization X The SOA Story Business Process Service broker Services Component Library

  10. Why Service-Orientation? Distributed Data Distributed Computation Distributed users …..

  11. Why Service-Orientation? There must be consensus On Interoperability ! • Interoperation issues • Heterogeneous network protocols • Heterogeneous hardware platforms • Heterogeneous operating systems • Heterogeneous application formats • ……

  12. Why Service-Orientation? Static On Demand 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 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

  13. Why Service-Orientation?

  14. Business Drivers • New opportunities • Innovative products and services from the key differentiator to gain competitive edge. • Ability to leverage technology to adopt newer business models, thus enabling more channels to earn revenue. • Cost Savings • Cost reduction through reduced Total Cost of Ownership adds to the bottom-line. • Business Agility • With cut-throat competition, every missed business opportunity positions an enterprise below its competitors. The ability of an enterprise to quickly respond to various business stimuli will be key to survival. • Faster time to market increases customer satisfaction and also customer loyalty. This results in increased business and higher revenues. • Ability to provide on demand service, in real-time 24/7. • Seamless collaboration with partners and customers helps to improve service quality and time to market.

  15. SOA Business Values to IT Management • Make interoperability an innate characteristic of IT applications. • Offer an easy way to speed time-to-market • Respond quickly to changing business conditions • Eliminate rework and maximize the value of existing assets.

  16. Technology Drivers • Openness • Dependency on external technology and platform vendors is a risk to an organization on which it has little control. However, adopting open standards mitigates this risk. • Cost Saving • Reduction in maintenance cost • Increased reuse of investment in IT leads in to increased productivity resulting in increased ROI. • Agility • Loose coupling increased application agility and reduces time to market for a new application. • Seamless scalability at minimal cost to cater to seasonal increase in load.

  17. Technology Drivers • Software architecture design principles • Abstraction • Separation of concerns • Anticipation of changes • Design with reuse

  18. Related Concepts Enterprise Integration Object Oriented BPM SOA Distributed Computing CBSD Web Application CBSD: Component-Based Software Development BPM: Business Process Management

  19. SOA Evolution 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# Distributed Computing Program Paradigm SIMULA Assembler C++ 1950 1960 1970 1980 1990 2000

  20. 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 throughout the enterprise • Supports incremental implementation

  21. SOA Potential Benefits • Improved Integration, intrinsic interoperability • Inherent reuse • Streamlined architectures and solutions • Leveraging the legacy investment • Establishing standardized XML data representation • Focused investment on communications infrastructure • Best-of-breed alternatives • Organizational agility

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

  23. SOA Standards Organizations

  24. Service Orientation vs. Object Orientation

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

  26. 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).

  27. The Paradigm Shift Technology & Methodology Programming Language Modeling OOAD OO Framework OODB OO Process model Simula Smalltalk Objective C C++ Java UML Standard Specification Technology & Methodology Modeling XML UDDI ebXML WSDL SOAP OWL BPEL WSFL XLANG MDA SO Framework Ontology / Service DB SO lifecycle process Object-Oriented Concept & Architecture Service-Oriented Concept & Architecture

  28. Service Oriented Architecture vs. Distributed Object Architecture

  29. 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. Though more sophisticated, SOAs introduce complexity that sharply contrasts the simplicity of a two-tier client-server architecture. • Distributed Internet architecture has much in common with SOA, including a significant amount of its technology. However, SOA has distinct characteristics relating to both technology and its underlying design principles.

  30. Distributed System Architecture Server Server Data Management Application Processing Data Management Server Server Application Processing Data Management Presentation Two Tier with Thin Client Client Presentation Application Processing Two Tier with Fat Client Client Presentation Client Three Tier

  31. 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, MS DCOM • Web based • Browser + “Dynamic content generation” • Enabling techniques: CGI, Java Servlet/JSP, MS ASP

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

  33. Middleware • In a distributed computing system, middleware is defined as the software layer that lies between the operating system and the applications on each site of the system. It serves to "glue together" or mediate between separate components. • Objectives • Hiding distribution • Hiding the heterogeneity • Providing uniform, standard, high-level interfaces • Supplying a set of common services • Examples • Transaction processing monitors • Data converters • Communication controllers

  34. Middleware • Design Challenges • Performance • Scalability • Complexity of administration • Mobility and dynamic reconfiguration • Global information network to manage large applications that are heterogeneous, widely distributed and in permanent evolution

  35. CORBA – A bit of history • OMG Standard, “to allow applications to communicate with one another no matter where they are located or who has designed them” • 1991, CORBA 1.1, IDL & API within an ORB • 1994, CORBA interoperability & IIOP (Internet Inter-ORB Protocol) • 2002, CORBA Component Model

  36. CORBA – Objectives • Distributed object computing middleware that shields applications from heterogeneous platform dependencies. • To simplify development of distributed applications by automating/encapsulating • Object location • Connection & memory mgmt. • Parameter (de)marshaling • Event & request demultiplexing • Error handling & fault tolerance • Object/server activation • Concurrency • Security • CORBA defines interfaces, not implementations

  37. CORBA Application Structure • Object Request Broker: enables objects to transparently make and receive requests and responses in a distributed environment. • The core of the reference model, “telephone exchange” • Object Services: a collection of services (interfaces and objects) that support basic functions for using and implementing objects. • e.g. Naming, Trading, and Life Cycle Service • Common Facilities: a collection of services that many applications may share, but which are not as fundamental as the Object Services • e.g. e-mail facility • Application Objects: products of a single vendor on in-house development group that controls their interfaces.

  38. CORBA Application Structure Application Objects Domain Facilities Horizontal CORBA Facilities Object Request Broker Domain Facilities

  39. CORBA Middleware Architecture Object Adapter ORB Core GIOP/IIOP/ESIOPS Interface Repository IDL Compiler Implementation Repository Client Object IDL Skeleton Dynamic Skeleton Dynamic Invocation IDL Stub ORB Interface

  40. Object Request Broker (ORB) • A logical set of services • Locates the remote object, communicates the request, waits for the results and when available communicates the results back to the client • Location transparency • Programming language independent: interface translation and language binding Client Object Object Request Broker (ORB)

  41. Interface Definition Language (IDL) • Language neutral, Language mapping • Modularized object interface • Operations and attributes that an object supports • Exceptions raised by an operation • Data types of an operation return value, its parameters, and an object’s attributes Client Object IDL Stub IDL Skeleton Object Request Broker (ORB)

  42. Two-way Processing Activate server Implementation Repository 1S In args Client Object 3S Obj. ref. Operation () Process Request Out args + return value 1C 4C Return Control to Client Locate target object IDL Skeleton IDL Stub Return Request Activate Object’s Servant Wait for request to complete Send request to server 4S 2S 3C 2C ORB CORE

  43. CORBA Interoperability • Motivation • ORB implementation diversity • ORB boundaries: • Partition the environment into different ORBs • Simplified test, management, and maintenance • Decentralized control • e.g. internet ORB, company ORB • ORB vary in scope, distance and lifetime • e.g. archives ORB, game ORB • Elements • Inter-ORB Bridge: transactions between ORB domains • General Inter-ORB Protocol (GIOP): ORB-ORB interactions over connection-oriented transport protocol • Internet Inter-ORB Protocol (IIOP): ORB-ORB communication across the Internet (TCP/IP)

  44. CORBA Interoperability Client Object Client Object IDL Stub IDL Skeleton IDL Stub IDL Skeleton IIOP ORB 2 ORB 1 Interoperability uses ORB-to-ORB communication

  45. CORBA Services

  46. J2EE • A platform for developing applications • Oct. 1994, Public introduction of Java • Jan. 1996, JDK 1.0 released • Apr. 1997, EJB specification announced • Dec. 1998, Java 2, SDK 1.2 released • Jun. 1999, J2EE announced • Dec. 1999, J2EE platform released • Sep. 2001, J2EE 1.3 released • Nov. 2003, J2EE 1.4 released

  47. J2EE Application Architecture Enterprise Information System Client Side Presentation Server Side Presentation Server Side Business Logic Browser Web Server EJB Container Pure HTML JSP EJB Java Applet JSP EJB Desktop Java Servlet EJB Java Application J2EE platform J2EE platform Other Device J2EE Client

  48. J2EE Middleware Architecture

  49. J2EE Interoperability

  50. J2EE Services • HTTP/HTTPS • JAAS – Java Authorization and Authentication Service • JTA – Java Transaction API • JNDI – Java Naming and Directory Service • RMI-IIOP • JDBC – Java DataBase Connectivity • JMS – Java Message Service • JavaMail • JAXP – Java API for XML Parsing • Java IDL • ……

More Related