Service Oriented Architectures



Similar documents
The Service Revolution software engineering without programming languages

Lesson 18 Web Services and. Service Oriented Architectures

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Enterprise Application Integration (Middleware)

Enterprise Application Integration (Middleware)

C/S Basic Concepts. The Gartner Model. Gartner Group Model. GM: distributed presentation. GM: distributed logic. GM: remote presentation

What Is the Java TM 2 Platform, Enterprise Edition?

JOURNAL OF OBJECT TECHNOLOGY

Service Oriented Architecture

Service-Oriented Architecture and Software Engineering

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

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

SOA Myth or Reality??

What is Middleware? Software that functions as a conversion or translation layer. It is also a consolidator and integrator.

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

How To Understand A Services-Oriented Architecture

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Service-oriented architecture in e-commerce applications

A standards-based approach to application integration

Introduction to Service-Oriented Architecture for Business Analysts

Enterprise Application Integration

Contents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform

PERFORMANCE MONITORING OF JAVA COMPONENT-ORIENTED DISTRIBUTED APPLICATIONS

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

Service Oriented Architecture 1 COMPILED BY BJ

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

15 Years of Service Oriented Architecture at Credit Suisse

B. WEB APPLICATION ARCHITECTURE MODELS

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

Enterprise Integration Architectures for the Financial Services and Insurance Industries

Base One's Rich Client Architecture

Middleware Lou Somers

SERVICE-ORIENTED MODELING FRAMEWORK (SOMF ) SERVICE-ORIENTED SOFTWARE ARCHITECTURE MODEL LANGUAGE SPECIFICATIONS

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

Introduction to Service Oriented Architectures (SOA)

zen Platform technical white paper

ebay : How is it a hit

Detailed Table of Contents

Internet Engineering: Web Application Architecture. Ali Kamandi Sharif University of Technology Fall 2007

Chapter 2: Remote Procedure Call (RPC)

Service Oriented Architecture (SOA) Implementation Framework for Satellite Mission Control System Software Design

Unlocking the Power of SOA with Business Process Modeling

VALLIAMMAI ENGINEERING COLLEGE SRM NAGAR, KATTANKULATHUR DEPARTMENT OF COMPUTER APPLICATIONS SUBJECT : MC7502 SERVICE ORIENTED ARCHITECTURE

Technical Track Session Service-Oriented Architecture

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

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

Google Web Toolkit (GWT) Architectural Impact on Enterprise Web Application

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

Service-Oriented Architectures

Service Virtualization: Managing Change in a Service-Oriented Architecture

A Quick Introduction to SOA

Web Services. Copyright 2011 Srdjan Komazec

SOA, case Google. Faculty of technology management Information Technology Service Oriented Communications CT30A8901.

SOA for Healthcare: Promises and Pitfalls

What You Need to Know About Transitioning to SOA

Core J2EE Patterns, Frameworks and Micro Architectures

Client-Server Architecture & J2EE Platform Technologies Overview Ahmed K. Ezzat

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

Client/server is a network architecture that divides functions into client and server

COM 440 Distributed Systems Project List Summary

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

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Common Lisp for Service Oriented Architecture Programs th Street, Suite 1450 Oakland, CA Phone:

Chapter 4. Architecture. Table of Contents. J2EE Technology Application Servers. Application Models

Presentation Outline. Key Business Imperatives Service Oriented Architecture Defined Oracle SOA Platform SOA Maturity/Adoption Model Demo Q&A

Combining Service-Oriented Architecture and Event-Driven Architecture using an Enterprise Service Bus

Service Oriented Architecture

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

Prerequisites for Successful SOA Adoption

Christoph Bussler. B2B Integration. Concepts and Architecture. With 165 Figures and 4 Tables. IIIBibliothek. Springer

Web Services - Consultant s View. From IT Stategy to IT Architecture. Agenda. Introduction

Scientific versus Business Workflows

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

An introduction to SOA and the HP NonStop server environment

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

Virtual Credit Card Processing System

Business Process Execution Language for Web Services

SOFTWARE ARCHITECTURE FOR FIJI NATIONAL UNIVERSITY CAMPUS INFORMATION SYSTEMS

SOA Planning Guide The Value Enablement Group, LLC. All rights reserved.

Leveraging Service Oriented Architecture (SOA) to integrate Oracle Applications with SalesForce.com

How to Build an E-Commerce Application using J2EE. Carol McDonald Code Camp Engineer

Distributed Objects and Components

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Middleware for Heterogeneous and Distributed Information Systems

Techniques for Scaling Components of Web Application

AquaLogic Service Bus

Web Application Development for the SOA Age Thinking in XML

SOA CERTIFIED JAVA DEVELOPER (7 Days)

SOA REFERENCE ARCHITECTURE

How To Write A Microsoft.Net Event Management System (Mnet)

Getting Started with Service- Oriented Architecture (SOA) Terminology

Table of Contents. 1 Executive Summary SOA Overview Technology Processes and Governance... 8

Net-WMS FP Net-WMS SPECIFIC TARGETED RESEARCH OR INNOVATION PROJECT. Networked Businesses. D.8.1 Networked architecture J2EE compliant

The Integration Between EAI and SOA - Part I

Version Overview. Business value

Transcription:

8 Service Oriented Architectures Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/

The context for SOA

A bit of history Enterprise computing has evolved along many directions in the last decade: Data centers Islands of information Scale up vs. scale out Networking and distribution Internet and WWW Middleware RPC vs messaging Programming languages This is an evolutionary process with many changes and many aspects to it but with common themes: Making enterprise IT more cost efficient and manageable Making systems faster, more robust, more flexible We are in the middle of the evolution Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 3

An e-commerce platform Diagram courtesy of Robert Barnes, Microsoft 5 2 5 2 Cache Server ASP FARM A SSL ASP FARM B SSL SQL Product Server ASP File Server Basket/Ad/Surplus ASP File Server SQL Product Server Receipt/Fulfillment Games/Music Videos Games/Music Videos Comp/Soft Books Music Monitor and cache Comp/Soft Books Music Search Servers Search Servers Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 4

Enterprise architecture at Credit Suisse Multiple backends, multiple frontends, flexible composition Graphic courtesy of Claus Hagen, Stephen Murer and Hanspeter Uebelbacher of Credit Suisse Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 5

Integration Infrastructure - Credit Suisse Client Client Client Client App Logic App App Logic App Logic App Logic CS Service Infrastructure (CORBA, Web Service based) Server Core Banking Systems (Host) Bought Applications Other Business Units International IT IT Platforms Data Warehouses Business Partners CS EventBus Infrastructure (Message based) Bulk integration infrastructure (File Transfer) Graphic courtesy of Claus Hagen, Stephen Murer and Hanspeter Uebelbacher of Credit Suisse Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 6

Switching to services Service Architecture adoption at Credit Suisse (graph courtesy of Stephan Murer) Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 7

Many trends but one direction Dominant trends: Loose coupling Messaging (instead of RPC) Software encapsulation at a larger scale (service) Need for governance Reliance on more complex infrastructures These elements are emphasized in different ways as technology evolves. Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 8

An integration backbone Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 9

Imposing some order For many years, enterprise computing was very confusing: Many products Many platforms Incompatibilities Many different approaches Field was not yet mature Service orientation is the first attempt at bringing some order Borrowing concepts from software engineering Making services the unit of discourse Understanding architectures Understanding the key concepts Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 10

web client applet client java client CLIENT TIER WWW and WAP browsers specialized clients (Java,.NET) Eclipse RCP, SMS... HTML, SOAP, XML api business object ACCESS TIER api business object api business object APP TIER WWW servers, J2EE, CGI JAVA Servlets API MOM, HTML, IIOP, RMI-IIOP, SOAP, XML wrapper INTEGRATION TIER wrapper wrapper TP-Monitors, stored procedures programs, scripts, beans MOM, IIOP, RMI-IIOP, XML system federations, filters object monitors, MOM ODBC, JDBC, RPC, MOM, IIOP, RMI-IIOP db db db databases, multi-tier systems backends, mainframes

SOA metamodel Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 12

What is SOA SOA = Services Oriented Architecture Services = another name for large scale components wrapped behind a standard interface (Web services although not only) Architecture = SOA is intended as a way to build applications and follows on previous ideas such as software bus, IT backbone, or enterprise bus The part that it is not in the name Loosely-coupled = the services are independent of each other, heterogeneous, distributed Message based = interaction is through message exchanges rather than through direct calls (unlike Web services, CORBA, RPC, etc.) Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 13

The novelty behind SOA The concept of SOA is not new: Message oriented middleware Message brokers Event based architectures The current context is different Emergence of standard interfaces (Web services) Emphasis on simplifying development (automatic) Use of complex underlying infrastructure (containers, middleware stacks, etc.) Interest in SOA arises from a number of reasons: Basic technology in place More clear understanding of distributed applications The key problem is integration not programming Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 14

Web Services and SOA

Automatic Software Generation Programmer domain High Level Declarative Programming Extension, compilation, resolution, monitoring System domain Enactment, enforcement adaptation, failure handling, notification Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 16

System Integration SOA is not an abstract idea, it is a response to Very well defined needs in enterprise computing Changes in technology (cluster, networking, distribution) The Internet Business-to-Business integration Enterprise Computing coming of age Large scale distributed information systems To understand SOA, the key is to understand the underlying problems, not just the technology involved in solving them Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 17

Automatic Plumbing Generation The promise of SOA is to facilitate integration by Letting the system automatically decide on integration decisions protocols to use intermediate processing needed routing and distribution data transformations Enforcing standards for defining and operating with services Enforcing the use of service interfaces Related to this, there are many additional opportunities: Languages for orchestration and composition Reasoning about compositions Integration by non-experts (IBM s situational integration) Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 18

Facilitate integration In the medium term, service orientation will solve the problem of connectivity at the syntax level Model Driven Architectures Business Processes Orchestration Programmer domain extensions extensions protocols protocols data map data map mode System Domain mode Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 19

WS standards Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 20

Separation of concerns Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 21

The software engineering aspects of SOA

SOA is HAD HAD is an old concept in distributed information systems H = Heterogeneous A = Autonomous D = Distributed HAD is The essence of and the reason for SOA The problem SOA tries to solve HAD is where the OO paradigm has failed CORBA Object Oriented Databases Reuse Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 23

No HAD in OO: OO Detours (Steve Cook, ECOOP 06) Reuse Problem: Objects ignore the environment where they live Real objects in different systems are autonomous Real objects in different systems are heterogeneous Distribution Problem: Abstracting away the problem s essence Tight coupling (language, interaction, development, operation) Database Problem: impedance mismatch Still present with XML, messages, and events Modeling Problem: from OO models to software systems Objects are too low level to model real HAD systems Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 24

Services not components The two sides: Integration is based on services Programming is based on objects and components There are similarities in theory, in practice they are very different Services are not object oriented Services have document based interfaces Services have a behavioral contract with their consumers Services are reusable by definition Services are (should be) loosely coupled Services are autonomous Services have (very) explicit boundaries Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 25

Objects Components - Services Object orientation Component systems Service platforms Compiler based Object/method interfaces Behavior explicit in object Program is closed world Programming language Middleware based Component interfaces Behavior in composition Program is open world Middleware + plumbing Container + middleware Service interfaces Behavior in code, container and composition Autonomic, large scale Service oriented architectures Component Models - Middleware Programming languages Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 26

Services engineering

Services: integration not programming The key issue in enterprise computing today is integration Services are the best way to approach integration known so far Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 28

What SOA is about Conventional SOA is about: software engineering cannot address: Non-functional properties of complex distributed systems: performance, reliability, security, Large scale composition Document and message based interaction Distributed systems architecture Run time properties and contracts Protocols, data formats Reusability SOA and web services bring to the fore the dependencies of existing programming languages on (single CPU) hardware concepts Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 29

Two contemporary examples XML Programming language variables Semi-structured Documents Procedural interfaces Document based interfaces Behavioral interfaces Variable assignment Declarative queries Asynchronous Data Streams Procedural control flow Event based control flow Language based distribution Platform based distribution Behavioral interfaces Sequential programs Highly parallel and concurrent Impedance mismatch Model mismatch Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 30

Services = run time Software Engineering A Service contract involves the interface, the Service Level agreement and QoS Contracts are key to be able to develop, debug, optimize and maintain systems developed as a combination of services The management of the information about services, and the engineering of systems based on services leads to the notion of SOA Governance Service contracts are not the static, compile time preand post-conditions of conventional programming languages They are an additional software layer in charge of the dynamic aspects of using services Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 31

Aspects of SOA Governance

SOA Governance Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 33

SOA governance SOA governance introduces different aspects to standard software engineering concepts: Service definition (the scope, interface, and boundaries of a service) Service deployment lifecycle (the lifecycle stages) Service versioning (including compatibility) Service migration (deprecation and sunsetting) Service registries (dependencies) Service message model (canonical data models) Service monitoring (problem determination) Service ownership (corporate organization) Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 34

Service definition The biggest challenge by service definition is to identify service boundaries: Services are seen as having well defined, clear boundaries In practice, not that easy What is a service? Functionality vs data Data cohesion services that use common data are difficult to separate Boundaries make sense at the business level not at the implementation level: A single database can expose many services but it remains a single database Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 35

Coupling Tighter coupling tends to cost more over time: Synchronization Coordinated deployment and deployment; updates Combinatorial explosion in dependencies Services are not independent (boundaries) Coupling implies more expensive testing Looser coupling requires greater investment up front: More design work Generality Message model More implementation work Queues Message management Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 36

Life cycle Services are autonomous entities used by other services Individual maintenance is not enough Coordination across entities Dependency management Service versioning Necessary to maintain compatibility across dependencies (otherwise all connected services need to be upgraded simultaneously) Service migration Eventually all consumer services need to be migrated to the newest version Cascading dependencies Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 37

Registries for control and information The service registry serves as the name and directory server for services and related information Versions available Services and providers Consumer and dependencies (less common) UDDI specification quite useful for this purpose Technical information Documentation Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 38

SOA development Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 39

Message model Services are asynchronous and communicate through messages: What if each service defines its own messages What about formats and conventions A message model acts as a standard determining The formats and conventions for messages May standardize messages as documents Published as canonical model Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 40

Monitoring Processes and service composition involve the invocation of many remote services What happens if the service is not there Exception, failure, error? Services are autonomous Queues help Eventual manual intervention How to fix the problem? Alternative services Migration Several tools in the market Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 41

Ownership Arbitrage is necessary when many consumer services use the same provider service: Priorities Life cycle Versioning and migration Load and performance Centralized and distributed solutions Both become complex at large scales Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 42

Conceptual model Gustavo Alonso, Dept. of Computer Science, ETH Zürich. 43