Getting Started with Service- Oriented Architecture (SOA) Terminology



Similar documents
Service-Oriented Architecture and its Implications for Software Life Cycle Activities

SOA for Healthcare: Promises and Pitfalls

Introduction to Service-Oriented Architecture for Business Analysts

Service-Oriented Architectures

SOA Myth or Reality??

Service Oriented Architecture

Principles and Foundations of Web Services: An Holistic View (Technologies, Business Drivers, Models, Architectures and Standards)

Architectural Implications of Cloud Computing

Service-Oriented Architecture and Software Engineering

Service-Oriented Architecture: Analysis, the Keys to Success!

Introduction to Service Oriented Architectures (SOA)

Sadržaj seminara: SOA Architecture. - SOA Business Challenges s: Billion Dollar Lock-In. - Integration Tools. - Point-to-Point Approach

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur

A standards-based approach to application integration

Service Mediation. The Role of an Enterprise Service Bus in an SOA

Assurance Cases for Design Analysis of Complex System of Systems Software

1 What Are Web Services?

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Introduction to WebSphere Process Server and WebSphere Enterprise Service Bus

Service Oriented Architecture 1 COMPILED BY BJ

Designing an Enterprise Application Framework for Service-Oriented Architecture 1

Exploring the Interactions Between Network Data Analysis and Security Information/Event Management

Service-oriented architecture in e-commerce applications

Service-Oriented Computing and Service-Oriented Architecture

How To Understand A Services-Oriented Architecture

1 What Are Web Services?

Federal Enterprise Architecture and Service-Oriented Architecture

AquaLogic ESB Design and Integration (3 Days)

What s New in Sonic V7.5 Rick Kuzyk

Building the European Biodiversity. Observation Network (EU BON)

An Oracle White Paper November Oracle Primavera P6 EPPM Integrations with Web Services and Events

EAI OVERVIEW OF ENTERPRISE APPLICATION INTEGRATION CONCEPTS AND ARCHITECTURES. Enterprise Application Integration. Peter R. Egli INDIGOO.

Government's Adoption of SOA and SOA Examples

How To Create A C++ Web Service

David Pilling Director of Applications and Development

Applying Software Quality Models to Software Security

Enterprise Application Designs In Relation to ERP and SOA

A Comprehensive Solution for API Management

SOA CERTIFIED CONSULTANT

Web Services Manageability Concepts (WS-Manageability)

A Unified Messaging-Based Architectural Pattern for Building Scalable Enterprise Service Bus

Extending SOA Infrastructure for Semantic Interoperability

The Enterprise Service Bus: Making Service-Oriented Architecture Real

IBM WebSphere Enterprise Service Bus, Version 6.0.1

Supply-Chain Risk Management Framework

Lesson 18 Web Services and. Service Oriented Architectures

AquaLogic Service Bus

2012 CyberSecurity Watch Survey

Methods and tools for data and software integration Enterprise Service Bus

REST vs. SOAP: Making the Right Architectural Decision

SOA REFERENCE ARCHITECTURE: SERVICE TIER

2 (18) - SOFTWARE ARCHITECTURE Service Oriented Architecture - Sven Arne Andreasson - Computer Science and Engineering.

Improving Agility at PHMSA through Service-Oriented Architecture (SOA)

Introduction to UDDI: Important Features and Functional Concepts

SOA Blueprints Concepts

Architectural Requirements for an SOA Based on Web Services. Jim Bole VP, Engineering Infravio, Inc. April 23, 2003

BEA AquaLogic Integrator Agile integration for the Enterprise Build, Connect, Re-use

Increasing IT flexibility with IBM WebSphere ESB software.

Enterprise IT Architectures SOA Part 2

Service Oriented Architecture (SOA) Architecture, Governance, Standards and Technologies

Moving Target Reference Implementation

SOA GOVERNANCE MODEL

An Oracle White Paper June Integration Technologies for Primavera Solutions

Introduction into Web Services (WS)

A Quick Introduction to SOA

SOA REFERENCE ARCHITECTURE

Oracle SOA Reference Architecture

A BIAN Building Block Service Repository and Registry

Cloud Computing & Service Oriented Architecture An Overview

An Oracle White Paper October Maximize the Benefits of Oracle SOA Suite 11g with Oracle Service Bus

Service-Oriented Architecture Foundation

E-Business Suite Oracle SOA Suite Integration Options

Integration Platforms Problems and Possibilities *

An introduction to SOA and the HP NonStop server environment

So You Want an SOA: Best Practices for Migrating to SOA in the Enterprise. Eric Newcomer, CTO

UIMA and WebContent: Complementary Frameworks for Building Semantic Web Applications

Air Force SOA Enterprise Service Bus Study Using Business Process Management Workflow Orchestration for C4I Systems Integration

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

MD Link Integration MDI Solutions Limited

Enterprise Application Integration (EAI) Architectures, Technologies, and Best Practices

Business Intelligence and Service Oriented Architectures. An Oracle White Paper May 2007

Research on the Model of Enterprise Application Integration with Web Services

Closer Look at Enterprise Service Bus. Deb L. Ayers Sr. Principle Product Manager Oracle Service Bus SOA Fusion Middleware Division

Roles for Maintenance and Evolution of SOA-Based Systems

Service Governance and Virtualization For SOA

Service Oriented Architecture (SOA) An Introduction

The Challenges in Real Life ESB Deployments

Transcription:

Getting Started with - Oriented Architecture (SOA) Terminology Grace Lewis September 2010 -Oriented Architecture (SOA) is a way of designing, developing, deploying, and managing systems it is neither a system architecture nor a complete system. Software Engineering Institute Carnegie Mellon University 4500 Fifth Avenue Pittsburgh, PA 15213-2612 Phone: 412-268-5800 Toll-free: 1-888-201-4479 This white paper presents basic terminology related to - Oriented Architecture (SOA). 1 The goal of the paper is to establish a baseline of terms for service-oriented systems. -Oriented Architecture and -Oriented Systems -Oriented Architecture (SOA) is a way of designing, developing, deploying, and managing systems, in which s provide reusable business functionality via well-defined interfaces. There is a clear separation between service interface and service implementation. consumers are built using functionality from available services. An SOA infrastructure enables discovery, composition, and invocation of services. Protocols are predominantly, but not exclusively, message-based document exchanges. From a more technical point of view, SOA is an architectural style or design paradigm; it is neither a system architecture nor a complete system. Systems that are built based on the SOA characteristics listed above are called serviceoriented systems. A high-level view of a service-oriented system is presented in Figure 1. s s are reusable components that represent business or operational tasks, such as customer lookup, credit card validation, weather lookup, or line-of-sight calculation. Reusable is a key element of this definition because it is what enables the creation of new business and operational processes based on these services. s expose their capabilities via well-defined, standard service interfaces. In a service-oriented environment, service interface definitions are available in some form of service registry. 1 The basic terminology has been extracted from the SEI course -Oriented Architecture: Best Practices for Successful Adoption. For more information about the course, visit http://www.sei.cmu.edu/training/p81.cfm. www.sei.cmu.edu Toll-free: 1-888-201-4479

End User Application Portal Internal System External Consumer Consumers SOA Infrastructure Internet Security Discovery Data Transformation Infrastructure A B C D Interfaces Internal Users Enterprise Information System Legacy or New Code External System Implementation Figure 1: High-Level View of a -Oriented System The service implementation corresponds to the actual system capabilities that implement the service interface. implementations typically reside in enterprise information systems, such as ERP (Enterprise Resource Planning) systems; in legacy or new service code built specifically to provide service capabilities; or in external systems. This separation between service interface and service implementation is what allows platform independence service consumers access the services via standardized service interfaces that hide the complexity and diversity of service implementations from consumers. The organization that hosts a service implementation is referred to as the service provider. The elements of a service-oriented system are services, service consumers, and the SOA infrastructure that binds service consumers to services. SOA Infrastructure An SOA infrastructure is the set of technologies that bind service consumers to services through an agreed-upon communication model, such as one based on Web s, message-oriented middleware (MOM), publish/subscribe, or Common Object Request Broker Architecture (CORBA). In addition, SOA infrastructures typically host infrastructure services that can be used by service providers and service consumers to perform common tasks or satisfy quality attribute requirements of the environment. Typical infrastructure services include security, discovery, and data transformation. Consumers consumers are the clients for the functionality provided by the services. Examples of service consumers are end-user applications, internal systems, external systems, and composite services. Consumers programmatically bind to services (i.e., there is a piece of code running on the consumer side that invokes a piece of code running on the provider side that corresponds to the service interface). 1 GETTING STARTED WITH SERVICE-ORIENTED ARCHITECTURE (SOA)

Three Basic Operations to Support -Oriented Systems The SOA infrastructure enables the three basic operations to support serviceoriented systems: service discovery, service composition, and service invocation. Discovery discovery is the mechanism by which service consumers become aware of available services and their capabilities. discovery starts with a onetime operation in which the service provider publishes its service in some form of service registry. The form of registry can range from a simple web page to a robust implementation with advanced query capabilities. The service registry is then queried at design time by the developers of service consumers for services with desired capabilities. Even though there is much discussion about runtime discovery of services, the reality is that current technologies do not support runtime discovery. Even though there is much discussion about runtime discovery of services, the reality is that current technologies do not support runtime discovery. The word dynamic is often used to describe the binding between service consumers and services. There are various degrees of dynamism. At the lower end of the spectrum is late binding of a proxy service to a specific service instance that depends on user context or load-balancing policies. At the higher end of the spectrum is fully dynamic binding in which service consumers are capable of querying service registries at runtime, selecting the best service from the list of returned services, and invoking the selected service all at runtime, and without human intervention. Late binding is a common, out-of-the-box feature of many commercial and open-source SOA infrastructures. Fully dynamic binding, on the other hand, requires semantically described services that use an ontology that is shared between service consumers and service providers. Semantic Web s represent an active area of research, as well as an unsolved problem that is not yet ready for large-scale deployment. Composition composition is the mechanism by which services are combined to fulfill a business or operational process. composition can be done fully within the service consumer, but there is also considerable support for service composition within SOA infrastructures, specifically in Business Process Modeling (BPM) infrastructure components. Typical BPM components enable a service consumer developer to graphically compose services available in a registry and then generate the appropriate code for the orchestration. Invocation invocation is the mechanism by which services are invoked by service consumers at runtime. There are two basic invocation patterns: point-to-point and mediated. 2 GETTING STARTED WITH SERVICE-ORIENTED ARCHITECTURE (SOA)

In the point-to-point invocation pattern, service consumers directly invoke services over a network. Point-to-point is most acceptable in environments that are small in number of services and consumers, homogenous in implementation technologies, and have low pace of change (business and technology). In the mediated pattern, service consumers invoke services via a middleware component such as an Enterprise Bus (ESB). The mediated pattern is most acceptable in environments that are large in number of services and consumers, technologically diverse and rapidly changing. Because it is the most common technology pattern, Web s is often equated to SOA. Initially, Web s were commonly implemented using the WS* stack. In the last several years, an alternative called REST has surfaced and is being widely adopted. Web s Web s is one technology pattern for implementing service-oriented systems, as shown in Figure 2. Because it is the most common technology pattern, Web s is often equated to SOA. Initially, Web s were commonly implemented using the WS* stack. More recently, an alternative called REpresentational State Transfer (REST) has surfaced and is being widely adopted. Class of System Architecture Pattern Technology Pattern Implementation -Oriented Systems Web s WS*Web s Distributed Systems Peer-to-Peer Systems Broker Architecture RESTful Web s Figure 2: Web s in the Context of Distributed Systems.. CORBA Implemented using WS* Web s In the simplest implementation of WS* Web s interfaces are described using Web s Description Language (WSDL). Data is transmitted using SOAP over HTTP. There is a way for service consumers to discover services and obtain information of how to bind to them, such as UDDI-based registries, databasebased service registries, web pages, or wikis. In a traditional request-response implementation of WS* Web s, a service request is formed as an XML document according to the WSDL documentation of the service and bundled in a SOAP message that is transported via HTTP. The 3 GETTING STARTED WITH SERVICE-ORIENTED ARCHITECTURE (SOA)

service request is parsed and processed appropriately by the service provider, which then sends back a service response that is also an XML document formed according to the service s WSDL document and processed in the same way. Even though the number changes frequently, there are currently approximately 100 WS* standards. In addition to these base standards, there are many additional standards that deal with aspects such as service orchestration and choreography, as well as the support for cross-cutting quality attributes, as shown in Figure 3. Even though the number changes frequently, there are currently over 100 WS* standards. In Figure 3, standards names in green mean that the standard is fairly stable, yelloworange means that it is becoming the standard, and red means that work on the standard has stopped but the standard is still used. Base Stack Orchestration and Choreography WSCL, WSCI, BPEL, WS-Coordination, BPML, BPSS Discovery UDDI Description WSDL Message Format SOAP Encoding XML Transport HTTP Security Quality of Transactions Management Adapted from XML and Web s Unleashed, SAMS Publishing Figure 3: WS* Protocol Stack A problem in WS* s is that most of the standards related to the crosscutting quality attributes are still emerging and even competing. This means that standards for implementing higher levels or cross-cutting aspects of the protocol stack require careful evaluation and selection. Another aspect that is worth mentioning is that interoperability needs agreement on both syntax and semantics. WS* Web s enable syntactic interoperability but do not guarantee semantic interoperability. Even though XML Schema 4 GETTING STARTED WITH SERVICE-ORIENTED ARCHITECTURE (SOA)

defines structure and data types and WSDL defines the service interfaces (operations, parameters, and return values), XML and WSDL do not define the meaning of data and WSDL does not define what a service does. From an implementation perspective, what all this means is that systems that implement the WS* base stack are highly interoperable at the syntactic level, but this is not a guarantee for systems that implement higher levels or cross-cutting aspects of the protocol stack. Also, higher levels of interoperability such as semantic interoperability have to be built into the system through the use of data models or ontologies that describe the data that is being exchanged. RESTful Web s REST provides a much simpler implementation of Web s. In the REST implementation of Web s, every entity that can be identified, named, or handled is considered a resource that is addressable by using a universal syntax (i.e., Universal Resource Identifier URI). Consumers communicate with services using basic HTTP operations: GET, POST, PUT, and DELETE. The main strength of RESTful Web s is their simplicity: the request is a simple HTTP operation and the response is plain XML text embedded in an HTTP response. However, in REST there are no standards to support quality attributes, other than the basics (e.g., transport-level security using HTTPS). This means that REST may not be appropriate in environments with demanding quality attribute requirements. WS* vs. REST Web s are commonly implemented using the WS* stack, but REST is starting to be widely adopted. The decision to implement WS* or REST will depend mainly on system quality attributes requirements. WS* implementation has greater support for security, availability, transaction management, etc. RESTful implementations, because of their simplicity, are more appropriate for read-only capabilities, typical of mashups, where there are minimal quality attribute requirements and concerns. Enterprise Bus (ESB) An Enterprise Bus (ESB) is a middleware product that connects and mediates all communications and interactions between service consumers and services, usually based on standards. 2 Even though an ESB is not required to implement a service-oriented system, it is useful in large, heterogeneous serviceoriented environments because it reduces the complexity of connecting services 2 Definition from Wikipedia: http://en.wikipedia.org/wiki/enterprise_service_bus 5 GETTING STARTED WITH SERVICE-ORIENTED ARCHITECTURE (SOA)

with their consumers by implementing the VETRO pattern, 3 as shown in Figure 4. Example XML Document Verify that it is a well-formed XML document and conforms to a particular schema or WSDL document that describes the message. Add additional data to the message to make it more meaningful and useful to a target service or system Convert message to a target format Route message based on content or environment conditions Invoke the target service or interact in some way with the target system Figure 4: The VETRO Pattern The implementation of the VETRO pattern is the way that the ESB manages aspects such as interface compatibility, service versioning, service routing, and data transformations. In essence, an ESB handles many of the potential incompatibilities between service consumers and services and provides elements to guarantee quality attribute requirements such as routing based on load balancing to promote performance and availability. Another important component of an ESB is the service registry. As mentioned previously, the registry contains metadata about services that have been registered by their providers and are available for use. At a minimum, the registry contains the specification (or contract) for using the service (e.g., the WSDL document in the case of WS* Web s). However, a registry can be configured to capture additional information that can be used in queries, such as Description Classification Usage history Test cases and test results Quality attribute metrics Additional documentation A registry can also help keep track of service consumers. This is useful to understand required service levels, facilitate change impact analysis, and notify consumers of service changes. 3 Source: Dave Chappell, Enterprise Bus (O Reilly, 2004, ISBN 0-596-00675-6) 6 GETTING STARTED WITH SERVICE-ORIENTED ARCHITECTURE (SOA)

Summary SOA is currently the best option available for systems integration and the leveraging of legacy systems. Technologies to implement service-oriented systems will certainly evolve to address emerging needs, but the concepts will remain. It is important to have a common SOA terminology and create a baseline for activities such as evaluating technologies in their context of use selecting technologies based on their relationship to business and operational goals understanding situations in which a service-oriented approach is appropriate and situations in which it is not analyzing service-oriented systems from the perspective of the service consumer, the service provider, and the SOA infrastructure understanding which parts of the system will come out-of-the box and which will have to be built Resources Learn about SOA through SEI courses. For more information, visit http://www.sei.cmu.edu/go/soaofferings/index.cfm. Explore SEI SOA reports, webinars, podcasts, and presentations. For more information, visit http://www.sei.cmu.edu/library/abstracts/soa/. For information on SEI products and services, write to info@sei.cmu.edu. Copyright 2010 Carnegie Mellon University. NO WARRANTY THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN AS-IS BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. Use of any trademarks in this report is not intended in any way to infringe on the rights of the trademark holder. Internal use. Permission to reproduce this document and to prepare derivative works from this document for internal use is granted, provided the copyright and No Warranty statements are included with all reproductions and derivative works. External use. Requests for permission to reproduce this document or prepare derivative works of this document for external and commercial use should be directed to permission@sei.cmu.edu. This work was created in the performance of Federal Government Contract Number FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. The Government of the United States has a royalty-free government-purpose license to use, duplicate, or disclose the work, in whole or in part and in any manner, and to have or permit others to do so, for government purposes pursuant to the copyright license under the clause at 252.227-7013. 7 GETTING STARTED WITH SERVICE-ORIENTED ARCHITECTURE (SOA)