Top Banner
1 Architecture and Design of Service-Oriented Systems - Part 2 © 2013 Carnegie Mellon University The layout of your screen is completely customizable by you
43

The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

May 22, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

1

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

The layout of your screen is completely customizable by you

Page 2: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

Report Documentation Page Form ApprovedOMB No. 0704-0188

Public reporting burden for the collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering andmaintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information,including suggestions for reducing this burden, to Washington Headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, ArlingtonVA 22202-4302. Respondents should be aware that notwithstanding any other provision of law, no person shall be subject to a penalty for failing to comply with a collection of information if itdoes not display a currently valid OMB control number.

1. REPORT DATE 06 MAR 2013 2. REPORT TYPE

3. DATES COVERED 00-00-2013 to 00-00-2013

4. TITLE AND SUBTITLE Architecture and Design of Service-Oriented Systems - Part 2

5a. CONTRACT NUMBER

5b. GRANT NUMBER

5c. PROGRAM ELEMENT NUMBER

6. AUTHOR(S) 5d. PROJECT NUMBER

5e. TASK NUMBER

5f. WORK UNIT NUMBER

7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) Carnegie Mellon University ,Software Engineering Institute,Pittsburgh,PA,15213

8. PERFORMING ORGANIZATIONREPORT NUMBER

9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSOR/MONITOR’S ACRONYM(S)

11. SPONSOR/MONITOR’S REPORT NUMBER(S)

12. DISTRIBUTION/AVAILABILITY STATEMENT Approved for public release; distribution unlimited

13. SUPPLEMENTARY NOTES

14. ABSTRACT

15. SUBJECT TERMS

16. SECURITY CLASSIFICATION OF: 17. LIMITATION OF ABSTRACT Same as

Report (SAR)

18. NUMBEROF PAGES

42

19a. NAME OFRESPONSIBLE PERSON

a. REPORT unclassified

b. ABSTRACT unclassified

c. THIS PAGE unclassified

Standard Form 298 (Rev. 8-98) Prescribed by ANSI Std Z39-18

Page 3: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

2

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Today’s Speaker

Grace Lewis Senior member of Technical staff Software Engineering Institute

Grace Lewis has over 20 years of professional software development experience,

mainly in industry. Her main areas of expertise include service-oriented architecture

(SOA), cloud computing and mobile applications.

Before joining the SEI, Lewis was Chief of Systems Development for

Icesi University, where she served as project manager and technical lead for the

university-wide administrative systems. Other work experience includes Design

and Development Engineer for the Electronics Division of Carvajal S.A. where she

developed software for communication between PCs and electronic devices;

developed embedded software on the microcontroller that was used on the devices;

and provided technical assistance to sales personnel during on-site visits to potential

and actual clients.

Page 4: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

3

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Agenda: Architecture and Design of Service-Oriented Systems

Review Part 1

SOA Infrastructure Design Considerations

Service Design Considerations

Summary

Page 5: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

4

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Architecture and Design of Service-Oriented Systems: Goals

Present and discuss

• Basic concepts related to software architecture design

• Impact of service orientation on system qualities

• SOA infrastructure design considerations

• Decomposition of an Enterprise Service Bus (ESB) into patterns and tactics

as an example of SOA infrastructure

• Principles of service design

Provide a starting point for using quality attribute requirements to design

infrastructure and services for service-oriented systems

Page 6: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

5

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Review Part 1

A software architecture is the earliest life-cycle artifact that embodies

significant design decisions: choices and tradeoffs

Design decisions are made in the context of the architecturally

significant requirements

Architectural design patterns are typically chosen to promote one or two

qualities that are important to an organization

Service-orientation promotes interoperability and modifiability at the

expense of performance

Service-orientation is a starting point that is often augmented by other

patterns and tactics to create a complete architectural solution

Page 7: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

6

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Agenda: Architecture and Design of Service-Oriented Systems

Review Part 1

SOA Infrastructure Design Considerations

Service Design Considerations

Summary

Page 8: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

7

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Focus of this Section

End User

Application

Service

A

SOA Infrastructure

Enterprise

Information System

Portal

Internet

External

System

Service

B

Service

C

Service

D

Internal Users

DiscoverySecurity

Legacy or New

Service Code

Internal

System

Service

Consumers

Infrastructure

Service

Implementation

Service

Interfaces

External

Consumer

Data

Transformation

Page 9: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

8

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Integration Approach

There are multiple approaches for integration of service consumers and

service providers, e.g.

• Point-to-point

• Hub-and-spoke

• ESB (Enterprise Service Bus)*

* NOTE: Some ESB vendors contend that ESB is not hub-and-spoke. However, ESB is a logical hub-and-spoke topology where components may be distributed to eliminate performance bottleneck or single-point-of-failure (SPOF).

Page 10: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

9

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB vs. Point-to-Point

Source: Bianco et al. Evaluating a Service-Oriented Architecture. Software Engineering Institute. http://www.sei.cmu.edu/reports/07tr015.pdf (2007)

Consumer

A

Service

Interface

ESB

System

A

Consumer

B

System B

Service

Interface

Service

Interface

System

N

Consumer

N …

Service

Interface …

Consumer

A

Service

Interface

System

A

Consumer

B

System B

Service

Interface

Service

Interface

System

N

Consumer

N …

Service

Interface …

ESB Point-to-Point

Page 11: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

10

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Point-to-Point

Services are directly connected to service consumers

Each service consumer must adapt to comply with all connected service

interfaces

• Interface technology (e.g. asynchronous vs. synchronous, SOAP vs. REST,

versioning)

• Business service interface (e.g. call interface including arguments, semantics,

exceptions, versioning)

• Security (authentication, authorization and privacy)

Point-to-point is most acceptable in environments that are

• Small in number of services and consumers

• Homogenous in technology

• Have low pace of change (business and technology)

Page 12: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

11

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB 1

Services connect to a common backbone using Web services or other

standards or adapters

ESBs manage

• Interface compatibility (technology/service interface and “schema”)

• Service routing

– Based on content, availability, load or other rules

– May be dynamically determined

– May be one-to-many or aggregate from many-to-one

• Data transformations (format and business semantics)

ESBs are most acceptable in environments that

• Are technologically diverse

• Rapidly changing

• Large

Page 13: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

12

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB 2

Tends to promote a greater degree of loose coupling / independence of

connected systems

Advanced tools and techniques are provided for development and

management

Specialized development, maintenance and management resources are

required

Page 14: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

13

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Bottom Line

There is a debate often fueled by vendors with vested interest over

whether to

• directly integrate applications, or

• use an ESB strategy

There is no single right answer

Most organizations have some of each

Page 15: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

14

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Point-to-Point vs. ESB Tradeoffs 1

Point-to-Point ESB

Modifiability

L Changes to a service induce

change to all service

consumers

J Service consumers and

providers may change

independent of each other.

Compatibility is managed

within the ESB for certain

changes

Performance

J Tends to perform better (no

transformation and routing

layers)

L Additional layers affect

performance

Security

L Authentication and

authorization between

services and consumers must

be managed on a case-by-

case basis

J Allows central management of

security for each service

Page 16: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

15

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Point to Point vs. ESB Tradeoffs 2

Point-to-Point ESB

Serviceability

L Problem determination is

spread across services—

there is no central point to

manage connectivity

J Centralized service interface

management provides

opportunity to centrally log/audit

interactions

Reliability

L Strong coupling between

consumers and services

may result in complex

failure modes and

unintended dependencies

L Additional components add

complexity and introduce failure

modes

J Loosely-coupled approach

improves overall reliability

Interoperability

L Consumer and service

need to both support

agreed-upon message

protocols and data formats

J ESBs are designed to support

diverse connection mechanisms

Page 17: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

16

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Enterprise Service Bus (ESB) 1

There is no consensus on what constitutes an ESB, although there is a

wide agreement on many of the responsibilities

• Some consider ESB a product: “middleware product that connects and

mediates all communications and interactions between service consumers

and services, usually based on standards*”

• Some do not consider ESB a product, but rather a pattern for which there are

multiple vendor and open source implementations — or you could implement

your own

In practice, it is common to start from a vendor or open source

implementation and then to add extensions or customizations to meet

business needs

* Source: Wikipedia

Page 18: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

17

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Enterprise Service Bus (ESB) 2

Business goals for using an ESB

• Reuse of IT assets

• Agility for adding, changing and removing business partners

• Realignment of responsibilities through business reorganizations

• Integration with legacy systems

From a general perspective, an ESB is designed to reduce the

complexity of connecting services with their consumers

From a technical perspective, an ESB is a complex integration pattern

that can be broken down into several less complex supporting patterns

and tactics

• These tactics and patterns have known influence on quality attributes

Page 19: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

18

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Enterprise Service Bus (ESB) 3

How do ESBs work? The VETRO Pattern

Source: Dave Chappell, "Enterprise Service Bus" (O’Reilly: June 2004, ISBN 0-596-00675-6)

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

Exam

ple

Enterprise Service Bus (ESB)

Validate Enrich Transform Route OperateMessage

Page 20: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

19

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB Patterns: Broker 1

The Broker architectural pattern is responsible for translating protocols

and data format*

Supports the interoperability driver

Architectural Tactics

• Abstract common services (modifiability)

• Adherence to defined protocols (interoperability, modifiability, developer

usability)

• Use of an intermediary (modifiability)

• Restricted communication paths (modifiability)

* Source: Thomas Erl. SOA Design Patterns. 2009

Page 21: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

20

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB Patterns: Broker 2

Service

Consumer A request

uses

SOAP 1.2 and XML

data

Service C

understands SOAP 1.1 and CSV

data

Broker

Manager is invoked to

handle

translations

Protocol Bridge

translates from SOAP 1.1 to SOAP 1.2 and

vice versa

Data Format

Transformer translates from XML to CSV and

vice versa

The Hub controls

all message flow

ESB

Internal

DB

Broker

Key

Component Call and ReturnEnd point

Service

Consumer

A

Database

Service

C

Service

Consumer

B

Service

D

Broker

Manager

Protocol

Bridge

Data

Format

Transformer

ODBC \JBDC

Hub

Subscribe to Event

Logging

Page 22: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

21

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB Patterns: Routing 1

The Routing architectural pattern is responsible for using runtime factors

(current logical conditions, business rules or utilization) to route

messages and to allow dynamic composition of services*

Supports the scalability driver

Architectural Tactics

• Abstract common services (modifiability)

• Load balancing (performance, scalability)

• Runtime binding (modifiability)

• Component replacement (modifiability)

* Source: Thomas Erl. SOA Design Patterns. 2009

Page 23: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

22

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB Patterns: Routing 2

Monitors and records service

response times, usage rates, and throughput handled by

each service

Applies rules to

message content to determine its

destination

Multiple

instances of service C to handle large

request volumes

Routes

messages based on business

rules, service load or

message content

Multiple

instances of service D

depending on

content, e.g. language,

consumer location

ESB

Internal

DB

Broker Router

Key

Component Call and Return

Load

Balancer

End Point

Router

Service

Consumer

A

Database

Performance

Monitor

Service

C

Service

Consumer

B

Content-

Based

Router

Service

D1

Business

Rules

Engine

Business

Rules

Broker

Manager

Protocol

Bridge

Data

Format

Transformer

ODBC/JBDCSubscribe to Event

Logging

Hub

Service

C’

Service

D2

Page 24: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

23

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB Patterns: Asynchronous Queue 1

The Asynchronous Queue architectural pattern provides an intermediate

buffer that allows service providers and consumers to be temporally

decoupled*

Supports the reliability driver

Architectural Tactics

• Adherence to standard protocols (modifiability, interoperability and developer

usability)

• Increase available resources (performance)

* Source: Thomas Erl. SOA Design Patterns. 2009

Page 25: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

24

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB Patterns: Asynchronous Queue 2 Provides guaranteed

message delivery,

recording of

messages, and

support for

asynchronous

service invocation

Call back

endpoint for

asynchronous

requests

Long running

asynchronous

service

ESB

Internal

DB

Router

Key

Component Call and Return

Load

Balancer

End point

Rule-

Based

Router Service

Consumer

A

Database

Performance

Monitor

Service

C

Service

Consumer

B

Content-

Based

Router

Service

D2

Business

Rules

Engine

Business

Rules

Broker

Manager

Protocol

Bridge

Data

Format

Transformer

Message

StorageMessage Queue

Asynchronous

call ODBC \JBDC

Hub

P Publishes event to S

P S

Subscribe to event

Logging

Service

C’

Service

D1

Page 26: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

25

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB Patterns: Metadata Centralization 1

The Metadata Centralization architectural pattern provides a registry for

service metadata to be formally published or registered to allow for

service discovery by developers of service consumers

Architectural Tactics

• Adherence to standard protocols (modifiability, interoperability and developer

usability)

• Use of an intermediary (modifiability)

• Maintain existing interface (modifiability)

* Source: Thomas Erl. SOA Design Patterns. 2009

Page 27: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

26

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB Patterns: Metadata Centralization 2

Service Provider Perspective Service

Provider

registers

services

Service metadata

is validated against

established rules

and service

description

templates

A

mandatory

element of

service

metadata is

service

location

This step is

probably the

last step of a

larger process

to promote

Logic

Centralization

and Service

Normalization

Service Registry

ESB

Service

Metadata

Key

Component Call and ReturnEnd point

Service

Registration

Front-End

Database

Service

C

Service

D

Registry

Manager

Service

Metadata

Validator

ODBC \JBDC Reference

Page 28: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

27

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

ESB Patterns: Metadata Centralization 3

Service Consumer/Developer Perspective

Service Registry

ESB

Service

Metadata

Key

Component Call and ReturnEnd point

Service

Discovery

Front-End

Database

Service

C

Service

D

Service

Discovery

Engine

ODBC/JBDC

Hub

Reference

Service

Consumer

Query

Service

Metadata

Service Consumer

Developer queries the

Service Registry at

design time

Service

Consumer

Developer

writes code

to invoke

discovered

services

Services are

invoked by

Service

Consumer at

runtime

Page 29: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

28

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Summary

An ESB can be broken down into several supporting tactics and patterns

These patterns and tactics have a known influence on software quality

attribute scenario response measures

Page 30: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

29

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Agenda: Architecture and Design of Service-Oriented Systems

Review Part 1

SOA Infrastructure Design Considerations

Service Design Considerations

Summary

Page 31: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

30

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Focus of this Section

End User

Application

Service

A

SOA Infrastructure

Enterprise

Information System

Portal

Internet

External

System

Service

B

Service

C

Service

D

Internal Users

DiscoverySecurity

Legacy or New

Service Code

Internal

System

Service

Consumers

Infrastructure

Service

Implementation

Service

Interfaces

External

Consumer

Data

Transformation

Page 32: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

31

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Principles of Service Design*

Standardized Service Contracts

Loose Coupling

Discoverability

Reusability

Autonomy

Statelessness

Composability

Abstraction

Main Question: How to determine what type of functionality makes a

good service?

* Source: Thomas Erl. SOA Design Patterns. 2009

Page 33: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

32

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Service Identification: The Strategic Perspective

Two common approaches

• Top-Down: starting with business process inventory

– Business processes to support business goals are identified.

– Shared steps between business processes are identified as service

candidates.

• Bottom-Up: starting with legacy system inventory

– Systems with capabilities to support business goals are identified as

migration candidates.

– Key capabilities are identified as service candidates.

In practice it is usually a combination of both

• Service prioritization is done based on relationship to business goals for SOA

adoption

Page 34: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

33

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Service Identification: The Technical Perspective

Common criteria for service selection

• Strategic reuse

• Functionality or data that is private and requires access control

• Functionality that needs to be highly reliable and/or highly available

• Functionality that needs to be run concurrently

• Functionality that will be accessed often (scalability)

In practice, a combination of the strategic and technical perspectives will

lead to a good service portfolio

• Service prioritization should be done based on relationship to business and

technical goals for SOA adoption

Page 35: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

34

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Service Design

Creating service layers responsible for abstracting logic based on

functional type can improve reuse and promote agility

• Layers that represent generic logic (not related to functional context)

• Layers that represent single-purpose logic (related to functional context)

Three typical service layers are

• Utility

• Entity or data

• Process or task

Page 36: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

35

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Utility Service Layer

Provides reusable utilities services for use by other services in the

inventory

Goal is to maintain strict separation of utility-based functions and

specific business functionality to avoid replication of the utility-based

functions across the service inventory

Examples of utility services

• Notifications

• Logging

• Auditing

• Authentication

• Data transformation

Page 37: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

36

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Entity or Data Service Layer

Provides services associated with the processing of business entities

Goal is to maintain strict separation of entity-based functions and

specific business functionality because business entities are generally

more stable

• Businesses processes change whenever organizations change the way they

do business, but the entities that are operated on change less frequently

Entity services are derived from a logical or enterprise data model

• Granularity is not always determined by the underlying data model

– Some services may operate on multiple entities and some entities may be

operated on by more than one service

Examples of entity services • Employee

• Customer

• Sales Order • Invoice

Page 38: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

37

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Process or Task Layer

Usually created after the entity and utility services have been defined

• A process service will typically be a composition of business logic plus

invocation of entity, utility and process services

Separating the process layer from the other layers promotes service

inventory agility for business process changes

• Separating the task-specific functionality from the task-agnostic utilities

reduces redundant implementation of the utilities

• The goal is to change only the process-layer internal logic and recompose

with the other layers

• Separating the business entities from the specific tasks reduces governance

challenges

– The business entity expertise and the business process expertise often reside in different groups

Page 39: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

38

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Summary

The design of individual services has a huge impact on overall system

quality

• Stateless services can be replicated to promote scalability

• Services that are discoverable potentially allow for runtime binding

(modifiability)

• Services that use a standardized service contract promote interoperability

Defining services requires careful consideration

• Is the functionality useful in other contexts?

• Constraints may eliminate certain candidates, e.g. regulations, technology

availability

Logically grouping services into layers can reduce the complexity of

compositions and promote reuse

• Utility, entity or data, and process or task layers are a good place to start

Page 40: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

39

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Agenda: Architecture and Design of Service-Oriented Systems

Review Part 1

SOA Infrastructure Design Considerations

Service Design Considerations

Summary

Page 41: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

40

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Summary

Quality attributes have the strongest influence on architectural design

decisions

• Quality attributes requirements can be captured as scenarios

SOA is a design pattern that promotes interoperability and modifiability

• SOA is not a complete architecture

• It is often combined with other patterns and tactics

There are many ways to design service-oriented systems

• A service-oriented design can be as simple as a small set of services that are

integrated point-to-point

• A service-oriented design can include a complex infrastructure that helps

enterprises manage rapidly evolving business processes in more agile ways

Page 42: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

41

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

As projects continue to grow in scale and complexity, effective collaboration across geographical, cultural, and technical boundaries is

increasingly prevalent and essential to system success. SATURN 2012 will explore the theme of “Architecture: Catalyst for Collaboration.”

www.sei.cmu.edu/saturn/2013

Page 43: The layout of your screen is completely …The layout of your screen is completely customizable by you Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden

42

Architecture and Design of

Service-Oriented Systems - Part 2

© 2013 Carnegie Mellon University

Copyright 2013 Carnegie Mellon University

This material has been approved for public release and unlimited distribution except as restricted below.

This material is distributed by the Software Engineering Institute (SEI) only to course attendees for their own individual study. Except for the U.S. government purposes described below, this material SHALL NOT be reproduced or used in any other manner without requesting formal permission from the Software Engineering Institute at [email protected].

This material 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 U.S. Government's rights to use, modify, reproduce, release, perform, display, or disclose this material are restricted by the Rights in Technical Data-Noncommercial Items clauses (DFAR 252-227.7013 and DFAR 252-227.7013 Alternate I) contained in the above identified contract. Any reproduction of this material or portions thereof marked with this legend must also reproduce the disclaimers contained on this slide.

Although the rights granted by contract do not require course attendance to use this material for U.S. Government purposes, the SEI recommends attendance to ensure proper understanding.

NO WARRANTY. THE MATERIAL IS PROVIDED ON AN “AS IS” BASIS, AND CARNEGIE MELLON DISCLAIMS ANY AND ALL WARRANTIES, IMPLIED OR OTHERWISE (INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE, RESULTS OBTAINED FROM USE OF THE MATERIAL, MERCHANTABILITY, AND/OR NON-INFRINGEMENT).