38
© 2008 Carnegie Mellon University Service-Oriented Architecture and its Implications for Software Life Cycle Activities Grace A. Lewis Software Engineering Institute Integration of Software-Intensive Systems (ISIS) Initiative

Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

  • Upload
    lekien

  • View
    235

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

© 2008 Carnegie Mellon University

Service-Oriented Architecture

and its Implications for

Software Life Cycle Activities

Grace A. LewisSoftware Engineering Institute

Integration of Software-Intensive Systems (ISIS) Initiative

Page 2: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

2Version 1.7.1

© 2008 Carnegie Mellon University

Agenda

SOA: Basic Concepts

Pillars of Service-Oriented Systems Development

Implications of SOA for Software Life Cycle Activities

Conclusions

SOA: Basic Concepts

Page 3: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

3Version 1.7.1

© 2008 Carnegie Mellon University

What is SOA?

Service-oriented architecture is a way of designing, developing, deploying

and managing systems, in which

• Services provide reusable business functionality.

• Service consumers are built using functionality from available services.

• Service interface definitions are first-class artifacts.

• An SOA infrastructure enables discovery, composition, and invocation of

services.

• Protocols are predominantly, but not exclusively, message-based document

exchanges.

SOA: Basic Concepts

Page 4: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

4Version 1.7.1

© 2008 Carnegie Mellon University

Services

Services are reusable components that represent

business tasks.

• Customer lookup

• Credit card validation

• Weather

• Hotel reservation

Services can be

• Globally distributed across organizations

• Reconfigured into new business processes

Service interface definitions are well-defined first-

class artifacts (ideally) available in a service

repository.

SOA: Basic Concepts

Page 5: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

5Version 1.7.1

© 2008 Carnegie Mellon University

SOA Infrastructure

Set of technologies that bind service consumers to services

• Products, standards and protocols that support communication

— Typically message-based document exchanges

o Web Services (HTTP, SOAP, WSDL)

o Message-oriented middleware (i.e. IBM Websphere MQ)

o Publish/subscribe (i.e. Java Messaging Service — JMS)

o CORBA …

• Infrastructure services available to service providers and/or

service consumers

— Security, discovery, data transformation, …

• Development, deployment and management tools and guidelines

SOA: Basic Concepts

Page 6: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

6Version 1.7.1

© 2008 Carnegie Mellon University

Service Consumers

Clients for the functionality provided by the services

• End-user applications

• Internal systems

• External systems

• Composite services

Consumers programmatically bind to services.

SOA: Basic Concepts

Page 7: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

7Version 1.7.1

© 2008 Carnegie Mellon University

Services and Cost-Efficiency

Order Processing

Application

Customer

Lookup - 1

Invoicing Application

Customer

Lookup - 2

CRM Application

Customer

Lookup - 3

Customer

Lookup

Service

A service with equivalent

functionality can be implemented, and used by all three

applications.

SOA: Basic Concepts

Page 8: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

8Version 1.7.1

© 2008 Carnegie Mellon University

Services and Agility

Order Processing

Application

Customer

Lookup

Service

Credit

Check

Service

Item

Lookup

Service

Inventory

Check

Service

Course Management

Application

Room

Availability

Service

The new application can use available

services.

New services can be used by other applications as

well.

SOA: Basic Concepts

Page 9: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

9Version 1.7.1

© 2008 Carnegie Mellon University

Services and Adaptability

Order Processing

Application

Customer

Lookup

Service

Credit

Check

Service

Item

Lookup

Service

Inventory

Check

Service

SOA Infrastructure

The SOA Infrastructure

provides a standard communication

mechanism between consumers

and services.

Changes in services have potentially no impact on existing service consumers.

SOA: Basic Concepts

Page 10: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

10Version 1.7.1

© 2008 Carnegie Mellon University

Services and Legacy Leverage

Order

Processing

Application

Customer

Lookup

Service

Credit

Check

Service

Item

Lookup

Service

Inventory

Check

Service

SOA Infrastructure

Customer

Management

System

Consumers access the services in a standard way.

It is the service’s task to invoke the

legacy system.

Legacy platform

diversity and complexity is transparent to consumers.

Manufacturing System

SOA: Basic Concepts

Page 11: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

11Version 1.7.1

© 2008 Carnegie Mellon University

Components of a Service-Oriented System

End User

Application

Service

A

SOA Infrastructure

Enterprise

Information System

Portal

Internet

External

System

Service

B

Service

C

Service

D

Internal Users

DiscoverySecurityDevelopment

Tools

Legacy or New

Service Code

Internal

System

Service Consumers

Infrastructure

Service

Implementation

Service Interfaces

External

Consumer

SOA: Basic Concepts

Page 12: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

12Version 1.7.1

© 2008 Carnegie Mellon University

Three Basic Operations to Support Service-Oriented Systems

Service Discovery

• Services repositories are queried for services with desired characteristics.

Service Composition

• Applications/service consumers are built by integrating functionality provided by services.

Service Invocation

• Services are invoked and service code is executed.

SOA: Basic Concepts

Page 13: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

13Version 1.7.1

© 2008 Carnegie Mellon University

An Example of SOA Implementation: WS* Web Services

WS* Web Services is one

mechanism for implementing a

service-oriented system.

• Service interfaces are

described using Web

Services Description

Language (WSDL).

• Data is transmitted using

SOAP over HTTP.

• UDDI is optionally used as

the directory service.

Because it is the most common

mechanism, Web Services is

often equated to SOA.

SOA: Basic Concepts

DiscoveryUDDI

DescriptionWSDL

Message FormatSOAP

EncodingXML

TransportHTTP

Se

cu

rity

Ma

na

ge

me

nt

Tra

nsa

ctio

ns

Qu

ality

of S

erv

ice

Orchestration and

ChoreographyWSCL, WSCI, BPEL,

WS-Coordination

BPML, BPSS

Base

Stack

Adapted from “XML and Web Services Unleashed”, SAMS Publishing

Page 14: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

14Version 1.7.1

© 2008 Carnegie Mellon University

So What Is Different?

There is nothing conceptually new, but it has brought together existing

technologies and good practices in a way that works.

• More aligned with business

— Services represent coarse-grained business tasks

• Backed by industry

• Standards-based

• Greater degree of rigor in interface specifications

• Truly loosely-coupled

— No need to install specific components

— Platform-independent

o What is behind the interface is invisible to the consumer

SOA: Basic Concepts

Page 15: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

15Version 1.7.1

© 2008 Carnegie Mellon University

So What is the Challenge? Creating Good Services!

Represent reusable tasks

Have (or may have) multiple consumers

Permit consumers to bind to services programmatically

Correspond to functionality of a stateless nature

• Service has no knowledge of previous visits

Enable service inputs and outputs that do not require the construction of very complex consumers

Are of a request-response nature

• Although SOA 2.0 supports events

SOA: Basic Concepts

Page 16: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

16Version 1.7.1

© 2008 Carnegie Mellon University

Agenda

SOA: Basic Concepts

Pillars of Service-Oriented Systems Development

Implications of SOA for Software Life Cycle Activities

Conclusions

Pillars

Page 17: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

17Version 1.7.1

© 2008 Carnegie Mellon University

Pillars of Service-Oriented Systems Development

Strategic

AlignmentHigh-level mission and

business goals need to

dictate the focus of the

strategy of SOA

adoption and

implementation.

SOA Design Principles

SOA-Based Systems

Development

SOA

GovernanceSOA governance

provides a set of

policies, rules, and

enforcement

mechanisms for

developing, using, and

evolving SOA assets

and for analysis of their

business value.

Technology

EvaluationContextual technology

evaluation allows early

insight into technologies

within the context in

which they will be used.

Change of

MindsetDevelopment is different

from traditional systems

development—loose

coupling between

consumers and

providers, multiple

ownership, shared

semantics, etc.

Pillars

Page 18: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

18Version 1.7.1

© 2008 Carnegie Mellon University

Different Business Needs and Goals Drive Different SOA Strategies

Business Needs and Goals SOA Strategy

Increase information available to

business customers

• Intuitive portals

• Creation of services related to customer

information

Integrate business partners • Heterogeneous interoperability

• Back office integration

• Identification of business rules

Improve business processes • Identification of key processes

• Elimination of redundancy

• Consistency between processes

• Services that access legacy systems

Pillars: Strategic Alignment

Page 19: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

19Version 1.7.1

© 2008 Carnegie Mellon University

Linkage of Business Processes to Services

1. Business processes to support business goals are identified.

2. Candidate services are identified.

• Top-Down

— Shared steps between business processes are identified as

service candidates.

• Bottom-Up

— Legacy system inventory is performed.

— Systems with functionality to support business processes are

identified as migration candidates.

3. Services are selected based on relationship to business goals.

Pillars: Strategic Alignment

Page 20: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

20Version 1.7.1

© 2008 Carnegie Mellon University

Disciplined SOA Adoption

Adapted from “Meeting the Challenges of SOA Adoption,” keynote by Roy Schulte at the SOA In Action Virtual Conference,

November 2006.

Introduction

Address Specific Pain

Proof of Concept

Single ApplicationSpreading

Process Integration

Establish Technology

Platform

Multiple Applications

(1BU)

Exploitation

Process Flexibility

Leverage Service

Sharing

Multiple Applications

(Across BUs)

Plateau

Continuous Adaptation

and Evolution

Enterprise SOA

Infrastructure

Virtual Enterprise

Pillars: Strategic Alignment

Page 21: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

21Version 1.7.1

© 2008 Carnegie Mellon University

SOA Governance

SOA governance provides a set of policies, rules, and enforcement

mechanisms for developing, using, and evolving SOA assets and for

analysis of their business value.

It provides the who, that what and the how decisions business,

engineering and operations are made in order to support a SOA strategy.

• Policies and procedures

• Roles and responsibilities

• Design-time governance

• Runtime governance

Source: Integration and SOA: Concepts, Technologies and Best Practices. Beth Gold-Bernstein & Gary So. Pillars: SOA Governance

Page 22: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

22Version 1.7.1

© 2008 Carnegie Mellon University

Examples of Governance Elements

Governance elements adapted from a presentation by Dr Mohamad Afshar from Oracle Corporation and Ben Moreland from The Hartford at the

Business Transformation Conference 2007

Projects

Service Ownership

Service Lifecycle

Shared Artifacts

People

Roles & Responsibilities

Service and Process Owners

Financial

Service Funding Model

Service Usage Fees

Platform Funding

Portfolio

Projects

Business Services

Applications Technology

Strategic SOA Platform

Enforcement Platform Decisions

Shared Infrastructure Services

Information

Data Ownership

Data Standards

Data Quality

Architecture

Reference Architectures

Architectural Standards

Blueprints & Patterns

Operations

Capacity Planning

Enforcement Service Levels

Enforcement Policies

Metrics Collection

Business

Engineering

Operations

Pillars: SOA Governance

Page 23: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

23Version 1.7.1

© 2008 Carnegie Mellon University

Match of Technologies to the Problem Domain

Need a realistic understanding on what technologies can do in the

specific problem domain

How to understand and keep up with the “alphabet soup”?

• XML, SOAP, WSDL, UDDI, WS-Security?

How to determine which standards and technologies to implement in

specific situations?

How to build systems that are resilient to changes in standards and

commercial products that implement them?

How to determine if selected technologies will meet QoS requirements?

• Security

• Availability

• Performance

All the above questions suggest a need for contextual experimentation.

Pillars: Technology Evaluation

Page 24: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

24Version 1.7.1

© 2008 Carnegie Mellon University

T-CheckSM

Experiment, situated in a specific context,

with the goal of providing a “technology

sanity check”

The approach

1. Formulate hypotheses about the technology

2. Examine these hypotheses against very

specific criteria through experimentation

Extremely efficient

• Focus on implementing the simplest

experiment to validate technology claims

Pillars: Technology Evaluation

Develop

Hypotheses

Develop

Criteria

Design and

Implement Solution

Evaluate Solution

Against Criteria

[Hypotheses Sustained] [Hypotheses Refuted]

Context

Page 25: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

25Version 1.7.1

© 2008 Carnegie Mellon University

Service-Oriented Systems Require a Different Development Approach

Pillars: Change of Mindset

Traditional Systems

Development

Service-Oriented Systems

Development

Tight coupling between system

components

Loose coupling between service

consumers and services

Semantics shared explicitly at

design time

Semantics shared without much

communication between developers

of consumers and services

—In the future, even at runtime

Known set of users and usage

patterns

Potentially unknown set of users and

usage patterns

System components owned by

the same organization

Systems components potentially

owned by multiple organizations

Ch

an

ge o

f

Min

dset

Page 26: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

26Version 1.7.1

© 2008 Carnegie Mellon University

Agenda

SOA: Basic Concepts

Pillars of Service-Oriented Systems Development

Implications of SOA for Software Life Cycle Activities

Conclusions

SOA and the Software Life Cycle

Page 27: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

27Version 1.7.1

© 2008 Carnegie Mellon University

General Process Implications

Processes must reflect the required strategic approach

Processes must be iterative

• Short iterations to respond to business needs

SOA governance must be embedded across the full life cycle

• Emphasis on problematic areas

• Automation where possible

Processes must be targeted

• Processes targeted at service provider types: internal services vs. external

services

• Processes targeted at system component provider: service, consumer or

infrastructure

Technology evaluation must become an integral process component

SOA and the Software Life Cycle

Page 28: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

28Version 1.7.1

© 2008 Carnegie Mellon University

Some Implications for Requirements Activities

Require an business process management (BPM) focus

Must deal with a larger number of stakeholders

First step is to look at the inventory of business processes

and services

• Negotiation and adaptation to increase reuse

• May cause refactoring of services

• A high quality registry makes the process easier

In the case of service providers, these need to work with

potential requirements

• In the same way COTS products vendors work

SOA and the Software Life Cycle

Page 29: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

29Version 1.7.1

© 2008 Carnegie Mellon University

Some Implications for Architecture and Design Activities

The responsibilities of each system component need to be clearly

defined—consumers, services and infrastructure

• Security, transaction management, data transformations, etc.

Constant technology evaluation

Evaluation of expected quality of service (QoS)

• Tradeoff analysis

• Contextual experimentation

• Implications of external consumers and services

Decisions must promote reuse

SOA and the Software Life Cycle

Page 30: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

30Version 1.7.1

© 2008 Carnegie Mellon University

Some Implications for Development Activities

Development environments need to be similar/same as

production environments—as in any distributed system

environment

• In some cases, the simulation of the production

environment might be necessary

The emergent characteristics of many SOA technologies

cause instability in development activities

Require the establishment of processes for the

implementation of service interfaces and infrastructure

components

• Traditional processes apply to service implementation

SOA and the Software Life Cycle

Page 31: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

31Version 1.7.1

© 2008 Carnegie Mellon University

Some Implications for Testing Activities

System testing of a service consumer requires all services (or test

instances of them) to be available

• From a service consumer perspective, the service is a black box

Requires greater and more diverse exception handling

• For example, what happens if the service is not available?

Regression tests have to evaluate against all consumer requirements and

service-level agreements (SLAs)

SOA and the Software Life Cycle

Page 32: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

32Version 1.7.1

© 2008 Carnegie Mellon University

Some Implications for Maintenance Activities

Impact analysis affects a larger number of users

• Internal and external users

• Service users and users of the systems that implement the services

Configuration management becomes more complicated

• What artifacts are placed under configuration management? Consumers?

Services? Infrastructure?

Greater coordination of release cycles (if possible)

• Between services and consumers

• Between infrastructure and services/consumers

SOA and the Software Life Cycle

Page 33: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

33Version 1.7.1

© 2008 Carnegie Mellon University

Less Control

Requires giving up full control—not easy

• Tradeoff is agility

Anticipate objections and understand validity

• Security

• Performance

• Control

Greatest challenges come from

• Single organization may not own the complete system

• Services used in unknown ways by (potentially) unknown users

Education and training on new mindset is needed.

SOA and the Software Life Cycle

Page 34: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

34Version 1.7.1

© 2008 Carnegie Mellon University

Agenda

SOA: Basic Concepts

Pillars of Service-Oriented Systems Development

Implications of SOA for Software Life Cycle Activities

Conclusions

Conclusions

Page 35: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

35Version 1.7.1

© 2008 Carnegie Mellon University

Conclusions 1

SOA is an approach to software development where

• Services provide reusable functionality with well-defined interfaces.

• An SOA infrastructure enables discovery, composition, and invocation of

services.

• Service consumers are built using functionality from available services.

SOA is real

• Many successful case studies, mainly in commercial enterprises

• Main goal for adoption of SOA is internal integration and business process

improvement

• Main adoption barriers are lack of governance and finding people with the

right skills

Conclusions

Page 36: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

36Version 1.7.1

© 2008 Carnegie Mellon University

Conclusions 2

SOA is not just a buzzword

• Currently the best option available for loosely coupled systems integration

and leverage of legacy systems

• The technologies to implement SOA will change over time, but the concepts

are here to stay

— SOA is much broader than its most popular instantiation (Web

Services)

Development of service-oriented systems is about more than just

technologies and standards

• It is a way of developing systems

• It requires a change of mindset

• It requires alignment with business goals and processes to be of value

Conclusions

Page 37: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

37Version 1.7.1

© 2008 Carnegie Mellon University

2008-2009 Course Dates for Migrating Legacy Components to SOA Environments

2008

October 15-16 SEI DC

2009

January 28-29 SEI Pittsburgh

April 16-17 SEI Pittsburgh

July 29-30 SEI DC

September 10-11 SEI Europe

October 28-29 SEI Pittsburgh

Course Dates

Page 38: Service-Oriented Architecture (SOA) - SEI Digital Library · Service-oriented architecture is a way of designing, developing, deploying and managing systems, in which •

38Version 1.7.1

© 2008 Carnegie Mellon University

References

SMART: The Service Migration and Reuse Technique

• SMART: Analyzing the Reuse Potential of Legacy Components in a Service-Oriented Architecture Environment: http://www.sei.cmu.edu/publications/documents/08.reports/08tn008.html

T-Checks• Process: http://www.sei.cmu.edu/publications/documents/05.reports/05tn025.html

• Applications:

— Web Services and Security: Single Sign-On: http://www.sei.cmu.edu/publications/documents/08.reports/08tn026.html

— Open Grid Services Architecture: http://www.sei.cmu.edu/publications/documents/07.reports/07tn016.html

— Web Services: http://www.sei.cmu.edu/publications/documents/06.reports/06tn021.html

— OWL-S (OWL Web Ontology Language for Services): http://www.sei.cmu.edu/publications/documents/06.reports/06tn018.html

— MDA (Model-Driven Architecture): http://www.sei.cmu.edu/publications/documents/05.reports/05tn022.html

References