making the right architectural decisions with soa decision ... · worked with an arc 100 work...

50
Business Integration Technologies © 2009 IBM Corporation Making the Right Architectural Decisions with SOA Decision Modeling (SOAD) and Architectural Decision Knowledge Wiki (ADkwik) USI Guest Lecture April 30, 2009 Olaf Zimmermann Executive IT Architect, RSM IBM Zurich Research Lab

Upload: others

Post on 04-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation

Making the Right Architectural Decisions with SOA Decision Modeling (SOAD) and Architectural Decision Knowledge Wiki (ADkwik)

USI Guest Lecture April 30, 2009

Olaf ZimmermannExecutive IT Architect, RSMIBM Zurich Research Lab

Page 2: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation2 Zurich Research Laboratory

Abstract

Software architects view systems under construction from multiple viewpoints such as the 4+1 logical, development, physical, process, and scenario viewpoints used in the Unified Process. Methods and tools for software architects typically center on such structural viewpoints. The capturing of architectural decision rationale and knowledge, however, is another essential viewpoint, which has been neglected by software architecture research so far.

In this lecture, we first present two large-scale SOA industry projects to motivate the need for architectural decision modeling. Next, we introduce a domain meta model for architectural decision capturing and a reusable SOA decision model harvested from full lifecycle projects since 2001. We also investigate selected decisions such as the selection of message exchange patterns and configuration of system transaction boundaries in detail. After that, we demonstrate how to capture architectural decisions and alternatives in Architectural Decision Knowledge Wiki, a Web 2.0 collaboration system and application wiki supporting decision maker collaboration over the Web. Domain meta model, reusable SOA decision model and application wiki jointly support real-world usage scenarios such as project team education, architecture design method support, and facilitation of technical quality assurance reviews and SOA governance. The tool can be downloaded from: http://www.alphaworks.ibm.com/tech/adkwik.

Page 3: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation3 Zurich Research Laboratory

ZRL BIT at a Glance

IBM Zurich Research Lab (ZRL), Rüschlikon/ZH

Computer science department:– Security/Cryptography and Systems Management

– Business Process Management (BPM) and Distributed Systems

Business Integration Technologies (BIT) group: – ~10 BPM and Service-Oriented Architecture (SOA) researchers

– Scientific contributions to modeling languages, formal methods and verification, software engineering, software architecture

– Key focus: compiler technology for process-oriented languages & IT architecture design methods

– Main transfer channel: IBM WebSphere product

– Participation in industry standards, customer consulting

Page 4: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation4 Zurich Research Laboratory

Agenda

1. State of the practice: case studiesBroker-based integration of core banking application componentsOrder management in the telecommunications industry

2. Existing workArchitectural patterns and decision capturing

3. SOA Decision Modeling (SOAD) overviewFramework and domain meta modelExcerpts from Reusable Architectural Decision Model (ADM) for SOAArchitectural Decision Knowledge Wiki collaboration system

4. Discussion

5. Summary

Page 5: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation5 Zurich Research Laboratory

Agenda

1. State of the practice: case studiesBroker-based integration of core banking application componentsOrder management in the telecommunications industry

2. Existing workArchitectural patterns and decision capturing

3. SOA Decision Modeling (SOAD) overviewFramework and domain meta modelExcerpts from Reusable Architectural Decision Model (ADM) for SOAArchitectural Decision Knowledge Wiki collaboration system

4. Discussion

5. Summary

Page 6: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation6 Zurich Research Laboratory

Java Client

Web Application

.NET Client Browser Office

Web Services Adapter Layer

JavaTM API (Dynamic Interface)

Java Backend Connectors (IBM WebSphere MQ, CICS®)

Access Layer

Business Function

WSDL

generate

generateDatabase(IBM DB2®)

Repository

generate

Documentation

(pSeries)

(zSeries)

Platform independent

IBM CICS

IBM WebSphere®

Case Study: Core Banking SOA with Web Services

Dyn

amic

Inte

rfac

e

SOAPSOAP SOAP

Page 7: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation7 Zurich Research Laboratory

Some of the Required Architecture Design Activities

Selection of top-level integration pattern– BROKER from “Patterns of Software Architecture” (POSA) is an obvious choice

POSA suggests six steps to implement the pattern:“(1) Define an object model. (2) Decide which type of component interoperability the system should offer, binary or Interface Description Language (IDL). (3) Specify the APIs the broker component provides for collaborating with clients and servers. (4) Use proxy objects to hide implementation details from clients and servers. (5) Design the broker component (6) Develop IDL compilers.”

Step (5) has nine sub steps: “(5.1) On-the-wire protocol, (5.2) Local broker, (5.3) Direct communication variant, (5.4) (Un)marshalling, (5.5) Message buffers, (5.6) Directory service, (5.7) Name service, (5.8) Dynamic method invocation, (5.9) The case in which something fails”.

This is helpful, but which other patterns are suited to implement the steps? What about the required technology choices? Product selections?

Buschmann F., Meunier R., Rohnert H., Som-merlad P., and Stal M., Pattern-Oriented Soft-ware Architecture – a System of Patterns. Wiley, 1996

Page 8: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation8 Zurich Research Laboratory

Case Study: Multi-Channel Order Management SOA in the Telecommunications Industry (in production since Q1/2005)

Functional domain– Order entry management– Two business processes:

new customer, relocation– Main SOA drivers: deeper

automation grade, share services between domains

Service design– Top-down from requirement

and bottom-up from existing wholesaler systems

– Recurring architectural decisions: • Protocol choices• Transactionality• Security policies• Interface granularity

BusinessProcessLayer

ChannelController

BusinessServices

Screen1 Screen2Presen-tation

Browser Channel Web Services Channel

ApplicationServices

Business Objects

CoreSystems

BusinessObjects

CoreSystem 1

BS1 BSn

AS1 ASn

. . . . . . other

? WS Façades

Activity Stub 1 Activity Stub n?

BSF1 BSF n

Client Client

ValueObject

ValueObjectShort Running

ProcessActivities

WSDLWSDL

WSDLWSDL

ActivityImplementation 1

ActivityImplementation n

CoreSystem n

Business Process Engine

Message exchange pattern? Transport protocol?

Interface granularity (WSDL contract design)?Message- or transport layer encryption ?

Transaction boundaries inside process?Which BPM/workflow engine to use?

Page 9: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation9 Zurich Research Laboratory

Recurring Service Design Issues and Decisions

1. Selection and adoption of application and integration patterns

2. Technology choices – protocols, containers, operating systems, etc.

3. Commercial and open source asset selection and configuration

Hundreds, if not thousands, of such decisions per role, phase, scope:– Many decisions already made before project starts

• By client – previous projects, legacy systems• By other parties – software vendor, IT consultants

– Many forces that the influence decision making, often contradictory [Booch]– Numerous complex dependencies between the decisions [Kruchten]– Never enough time to analyze all options in detail– Pattern literature is overwhelming

Booch G., Handbook of Software Architecture,

http://www.booch.com/architecture

Kruchten P. et al, Building Up and Reasoning About Architectural Knowledge, QOSA 2006

Page 10: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation10 Zurich Research Laboratory

Agenda

1. State of the practice: case studiesBroker-based integration of core banking application componentsOrder management in the telecommunications industry

2. Existing workArchitectural patterns and decision capturing

3. SOA Decision Modeling (SOAD) overviewFramework and domain meta modelExcerpts from Reusable Architectural Decision Model (ADM) for SOAArchitectural Decision Knowledge Wiki (collaboration system)

4. Discussion

5. Summary

Page 11: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation11 Zurich Research Laboratory

Decision Capturing Templates and Ontologies

IBM Global Services Method a.k.a. Unified Method Framework (UMF)– Defines a work product (artifact) “ART0513/ARC 100 Architectural Decisions”

Tyree and Akerman created a decision capturing template having worked with an ARC 100 work product for e-business architectures– Issue, decision, status, group, assumptions, constraints, positions, argument– Implications, related decisions, related artifacts, related principles, notes

Kruchten et al. define decision and dependency types– State model, decision types, decision dependencies

Retrospective decision capturing for documentation purposes (no reuse)!

J. Tyree, A. Akerman, Architecture Decisions: Demystifying Architecture, IEEE Software, vol. 22, no. 2, 2005

Kruchten, P., Lago, P., van Vliet, H.: Building up and Reasoning about Architectural Knowledge. In: Hofmeister, C., Crnkovic, I., Reussner, R. (eds.) QoSA 2006. LNCS, vol. 4214, pp. 39–47. Springer, Heidelberg (2006)

Page 12: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation12 Zurich Research Laboratory

The current state of the art and the practicedoes not allow architects to reuse decisions during SOA design.

Problem 2: Text documents used

manual work, limited scalability

Consequence: Little reuse – no catalog of recurring SOA design issues exists today

design work always conducted from scratch and in isolation – time consuming, error prone

Problem 1: Template designed

to capture decisions made

unwelcome documentation task, out of design context

Decision

Related Decisions

Derived Requirements

Implications

Justification

Alternatives

Motivation

Assumptions

Issue or Problem

2AD IDArchitectural Decision

TopicSubject Area

“We decided for the Broker pattern [POSA] …

…because we gained positive experience with it on many similar projects.”

… to integrate front end and backend…

Page 13: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation13 Zurich Research Laboratory

Agenda

1. State of the practice: case studiesBroker-based integration of core banking application componentsOrder management in the telecommunications industry

2. Existing workArchitectural patterns and decision capturing

3. SOA Decision Modeling (SOAD) overviewFramework and domain meta modelExcerpts from Reusable Architectural Decision Model (ADM) for SOAArchitectural Decision Knowledge Wiki (collaboration system)

4. Discussion

5. Summary

Page 14: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation14 Zurich Research Laboratory

Vision: Architectural Decision Modeling Framework

SOA Literature (e.g., pattern books,

technology standards, vendor documentation)

Reusable Modelof Decisions

Required

Decisions Made on Project

reuse

harvest

scope

Architectural Decision Modeling

Framework

AD: “You will have to resolve issue X;

consider alternative Y1 and Y2, base

decision on driver Z”

AD: “We decided for alternative X to resolve

issue Y because of requirement Z”

Make decisions explicit with: Decision modeling and decision reuse

Our Focus:

Page 15: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation15 Zurich Research Laboratory

Extended Usage Scenario for Architectural Decisions

Architecture Design:Decisions required (issues)

Architecture Documentation:Decisions made

Web Users

Other Systems

Business Process

Business Services

Components

Other Systems Databases

“You can pick one of three ESBs from Apache. Data Power performed well on

several reference projects. See the following white

paper: http://....”

AD3: “We decided for Apache Axis as our Enterprise Service Bus (ESB) assetbecause it performs and scales well.”

AD1: “We decided for the Model-View-Controller (MVC) pattern to

control Web page flow because we gained positive experience with it on

many similar projects.”

AD2: “We decided for the BPEL language as workflow technology

because it is standardized and supported by tools.”

“You will have to make a conscious decision for one of

the many workflow technologies. Portability

needs and tool support will drive your decision making.”

“When designing a presentation layer, you will have to select a pattern to control the Web page flow. MVC is a common choice.”

Page 16: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation16 Zurich Research Laboratory

SOA Decision Modeling Framework (SOAD) Solution

Collaboration System (Architectural Decision Knowledge Wiki)

Possible Solutions (Alternatives)

Decisions Required (Issues)

Integrity Constraints, Prod. Rules

Logical and Temporal Relations

Metamodel of Entity Types Formalized Relationship Types

Pattern-Centric Decision Identification Technique

Presentation Layer Issues Business Logic Layer Issues

Reusable Architectural Decision Model (RADM) for SOA

Decisions Made (Outcomes) Managed Issue List

Integration Issues Persistence Layer Issues

Decision Injection in Model-Driven Development (MDD)

Part 1: Architectural

Decision Modeling Framework

Concepts (Solving Problems 1 to 6)

Part 2: SOA

Content(Validation)

Part 3: Tool (Solving

Problem 7)

Page 17: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation17 Zurich Research Laboratory

Part 1 (Concepts): Entity Types in UML Metamodel

Chosen solution and justification

Problem and criteria

Potential solutions with pros and cons

Reusable Model of Decisions Required

Decisions Made on Projects

“We decided for the MVC alternative to resolve the web page flow issue because we

gained positive experience with it on many similar projects.”

“When designing a presentation layer,

you will have to select a pattern to control the Web

page flow.”

“Model View Controller (MVC) is a common

architectural pattern to control the Web page

flow.”

UMF template (ART 0513/ARC 100)SOAD contribution

Page 18: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation18 Zurich Research Laboratory

Part 1 (Concepts): Relationship Types and Levels

t1

i2

a21

a22

i3 a31

issue

alter-native

Conceptual Level(Platform-Independent)

Technology Level(Platform-Specific,

here: Java)

PresentationLayer Issues

t1i4

a41

a42

JavaPresentation

LayerIssues

(d)ecomposesInto

(r)efinedBy

d

r

contains

i1 a11

a32

topicgroup

d

f

(f)orces

(in)compatibleWith

i

„Web PageFlow“

„MVC Pattern“

„Code“

„Java Server Pages“

„Java Servlets“

„Java ViewTechnology“

„ViewConcept“

„Server Pages“

„Business Logic

Interface“

Figure Legend:(Outcomes not shown)

„PlainObject“

„Bean“

t2Integration

Layer Issues

Page 19: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation19 Zurich Research Laboratory

Part 2: Sample SOA Decision Content (AD, ADAlternative)

Decision drivers: reliability needs, systems

management capabilities, availability of provider

Scope: Operation (Layer 3 + Layer 6)

AD: Msg-01, Message Exchange Pattern (Conceptual/Technology Level)

Do consumer and provider communicate synchronously or asynchronously?

Background reading: Hohpe/Woolf “Enterprise Integration Patterns”

Phase: Macro DesignRole: Integration Architect

Recommendation: Do not follow the MOM hype – decoupling in time is just one of several dimensions of loose coupling. The equation (NOT RM => NOT SOA) does not hold true.

Service Model WSDL

Alternative 1:Request-Reply

SOAP/HTTP

Simple to manage, but no guaranteed

delivery, so *might* have to

deal with undelivered and/or

duplicate messages

Alternative 2:One Way over Reliable

Transport

JMS or WS-RM

Consumer and provider up times can differ;

guaranteed delivery (once and only once) when

using persistent messages. Must manage

dead letter queue. SOAP Engine Selection

MOM/JMSProvider Selection

HTTP Server Selection

Alternative 3:Pseudo-

Asynchronous

Combination of Alternative 1 on Layer

3 (service), Alternative 2 on Layer

6 (transport)

Same as Alternative 1, but guaranteed

delivery

Decision Identification Decision EnforcementDecision Making

MOM:Message-Oriented Middleware

JMS: Java MessagingService

WS: Web Services

RM:Reliable Messaging

Page 20: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation20 Zurich Research Laboratory

Application Architecture Infrastructure Architecture Example

Decision Model Organized by Layers and Levels

Business Requirements

Decisions

Conceptual Level

Technology Level

Vendor AssetLevel

Executive Decisions

Physical VP:Conceptual Decisions

Logical VP:Conceptual Decisions

Physical VP: Technology Decisions

Logical VP:Technology Decisions

Physical VP: Vendor/Asset

Decisions

Logical VP: Vendor/Asset

Decisions

e.g. Message Exchange Pattern

e.g. Transport Protocol

e.g. DataPower Configuration

Component Layer

Service Layer

Process Layer

Integration Layer

QoS

Layer

Consumer Layer

Resource Layer

Component Layer

Service Layer

Process Layer

Integration Layer

QoS

Layer

Consumer Layer

Resource Layer

Component Layer

Service Layer

Process Layer

Integration Layer

QoS

Layer

Consumer Layer

Resource Layer VP – Viewpoint

Business Executive Level

e.g. Platform Preferences

Page 21: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation21 Zurich Research Laboratory

Conceptual Transactionality Decision

Drivers: Resource Protection Needs, Data Currency,

Performance

Activity/Operation

AD Srd-05: Invocation Transactionality (Conceptual)

Should process and invoked services run in a single or in multiple system transactions?

See ICSOC 2007 paper by Zimmermann et al

Alternative 1: Transaction Islands

Do not share Txcontext

Best performance, loose coupling, but

no full ACID protection for

resources.

Macro Design Process Modeler

Recommendation: Use Transaction Islands as default, Stratified Stilts for long running, distributed processes.

Injection into model transformation or BPEL code in WID is possible.

WBM or RSAProcess

Model

Workflow pattern and

engine selection

WID BPEL

Process Model

Compensation Patterns

Alternative 2: Transaction Bridge

Share Tx context

Best resource protection, but

large, long running Tx tightly coupling

activities and services.

Alternative 3:Stratified Stilts

Use asynchronous messaging and

suspend Tx

Supports, loose coupling best, but

no full ACID protection.

SCA qualifiers, BPEL server

configuration, WS-AT usage

Page 22: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation22 Zurich Research Laboratory

Conceptual and Technology Decisions about Encryption

Drivers: Confidentiality needs, performance, number of

intermediariesScope: Operation

AD: Msg-03, Encryption Layer and Technology (Technology Level)

Where and how should service messages be encrypted?

See book by Weerawarana et al: “Web Services Platform Architecture”

Phase: Macro DesignRole: Security Specialist

Recommendation: Stick to SSL/TLS unless message-level security required due to business requirements; use HW accelerator when deciding for WSSE

Service Model

Security Architecture Directions

WSDL, XSD

Alternative 1:Transport-Layer

Encryption

SSL/TLS (HTTPS)

Well adopted on the Web, but no

end-to-end security.

Alternative 2:Message-Layer

Encryption

XML digital signatures WSSE

Allows end-to-end security across

intermediaries, but is expensive.

WSSE Engine Selection(SW, HW)

Engine Configuration

(HTTP, WSSE)

SSL Provider Selection(SW, HW)

Page 23: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation23 Zurich Research Laboratory

Vendor Asset Level Clustering Decision

Drivers: Availability needs, budget, logical service design

(session affinity)Scope: Node

AD: Wesb-01 WebSphereClustering (Vendor Asset Level)

Should WebSphere Application Server be deployed in a standalone or in a high availability configuration?

See WebSphere Info Center and platform patterns documents

Phase: Macro DesignRole: Infrastructure Architect

Recommendation: Stick to Alternative 1 unless business requirements and NFRs force you to use Alternative 2. Design services to be able to run in clustered configuration

(e.g., store only serializable Java objects and only a few KB in HTTP session object)

NFRs,Component

Model

Runtime Topology Directions

Operational Model

Alternative 1:Single Server

No node manager

Easy to manage, but service consumers can not be served

when WAS instance or server HW are

down. Server failure leads to loss of session data.

Alternative 2:Cluster

Enable node manager, have multiple nodes that can take over from each

other

Higher availability from consumers perspective,

hot/cold session takeover required. Systems

management needs.

Systems Management

Decisions

Cluster Configuration

(WAS)

Storage Decisions

(HA?)

Page 24: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation24 Zurich Research Laboratory

400+ Decisions in Reusable ADM (RADM) for SOA

In and Out Parameter Granularity

Transaction Management

Session Management

SOAP Engine Selection

Transaction Attributes

Patterns

Page 25: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation25 Zurich Research Laboratory

Part 3 (Tool): Architectural Decision Knowledge Wiki

Topic Group Tree Issue, Alternative, and Outcome Display and Processing

Context-Specific Display (Decision Filtering)

Page 26: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation26 Zurich Research Laboratory

Presentation:Web UI (Wiki)

Persistence:Rel. DB

Architecture of Architectural Decision Knowledge Wiki

Domain:OO-PHP

Java

Content Repository1

Outcome Lifecycle

4

Depen-dencies

3

Collabo-ration

5

Import/ Export

2

Hosted instance on IBM W3: http://9.4.17.220/ibmmsk/qed/wiki_web_app/page/show?pg=AdKwik%2FAdkwikHome

Download URL: http://www.alphaworks.ibm.com/tech/adkwik

Page 27: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation27 Zurich Research Laboratory

Agenda

1. State of the practice: case studiesBroker-based integration of core banking application componentsOrder management in the telecommunications industry

2. Existing workArchitectural patterns and decision capturing

3. SOA Decision Modeling (SOAD) overviewFramework and domain meta modelExcerpts from Reusable Architectural Decision Model (ADM) for SOAArchitectural Decision Knowledge Wiki (collaboration system)

4. Discussion5. Summary

Page 28: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation28 Zurich Research Laboratory

Agenda

1. State of the practice: case studiesBroker-based integration of core banking application componentsOrder management in the telecommunications industry

2. Existing workArchitectural patterns and decision capturing

3. SOA Decision Modeling (SOAD) overviewFramework and domain meta modelExcerpts from Reusable Architectural Decision Model (ADM) for SOAArchitectural Decision Knowledge Wiki (collaboration system)

4. Discussion

5. Summary

Page 29: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation29 Zurich Research Laboratory

Modeling Architectural Decisions

Part 1: Framework (method/model) to represent architectural decision knowledge and decision outcomes

- Structural representation

- Integrity constraints to ensure consistency of knowledge base and decisions

Part 2: Content for SOA

- Announced by IBM GTS

- Proven successful in several customer projects

Part 3: Tool that implements the model to view and work with the content

- Evaluated UML (and others) – different modeling paradigm

- Selected QEDWiki for alphaWorks release (an application wiki technology developed by IBM Software Group Emerging Internet Technologies)

Page 30: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation30 Zurich Research Laboratory

Key Concepts in SOAD

Decision models rather than text templates – Three levels of refinement from concepts to technology to assets– Population of decision space based on experience from earlier projects

Decision model as domain-specific guide through the stages, architecture and design patterns describe alternatives in detail– Architectural decisions are conceptual alternatives– Design and technology patterns come in on subsequent stages

Prescriptive design method for domain-specific architecture design– Comprehensive, but still comprehensible– Works for domains and styles with recurring decisions for which patterns

have been mined (new decision alternatives also are a pattern source)– For example: enterprise applications and SOA

Page 31: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation31 Zurich Research Laboratory

Advanced Usage Scenarios and Future Research

Project planning and health checking– Work breakdown structures can be created from the decision model, as open

decisions correspond to required activities

– If there are many, frequent changes, or many questions are still unresolved in late project phases, the project is likely to be troubled

Decision models as input to software configuration planning– Product selection and operational modeling decisions define which software

licenses are required, and on which hardware nodes the required software has to be installed

Enterprise architecture instrument– Company-specific instance of the SOA RADM, consisting of a subset of

decisions and alternatives to give freedom of choice to individual project teams without sacrificing overall architectural integrity

Page 32: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation

Guest Lecture Part 2: Decision Making Exercise

USI Guest Lecture April 30, 2009

Olaf ZimmermannExecutive IT Architect, RSMIBM Zurich Research Lab

Page 33: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation33 Zurich Research Laboratory

“T” Case Study: Context & Business Problems

Wholesale subsidiary of large telecommunications company T (former monopolist, deregulated)– Provides wire line and wireless telephony services to retailer subsidiary of T

and to 150 other companies, called Virtual Service Providers (VSPs)

– One physical telephony network, owned and operated by T

Strategic imperative of T:– Drive down cost of operations by interacting with VSPs efficiently

Response: single, partially automated order management system– VSPs are expected to use the order management processes of T to connect,

configure, or disconnect telephony services for their end users

– Multiple channels required, including the World-Wide Web (Internet)

Page 34: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation34 Zurich Research Laboratory

VSP 1 (Browser)

VSP 2 (Other System via Web Service)

Internal Channelfor T Staff

Order Management System

Customer Database Telephony Network Billing System

MoveCreate

MoveCreate

MoveCreate

System Context Diagram

T

Page 35: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation35 Zurich Research Laboratory

VSP 1 (Browser)

VSP 2 (Other System via Web Service)

Internal Channelfor T Staff

Two Order Management Processes: „Create PSTN Service“, „Move PSTN Service“:

About 20 processing steps, taking up to 24 hours to complete. Steps include:

1. Address validation – complex and requiring several user interactions2. Resource reservation, e.g. copper transmission path, telephone number

Customer Database Telephony Network Billing System

MoveCreate

MoveCreate

MoveCreate

Functional Requirements

T

PSTN – Public Switched Telephone Network

Page 36: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation36 Zurich Research Laboratory

Important Non-Functional Requirements (NFRs)

1. The software system supporting the two order management processes must be accessible both over a private industry-sponsored network and the Internet. The detailed VSPs and backend system landscape changes over time.

2. Business volumes are approximately 20,000 “create” requests and 15,000 “move”requests per month.

– Given up to 20 steps per process, and a peak hour load of 30% above average, this equates to a peak load of about 4,550 steps executed per hour (based on core business hours of ten hours per day, 20 days per month)

3. Initially, a process must be able to persist from first step to last for three hours; however, this time will be extended to up to 24 hours in the future.

4. VSPs are spread across a number of time zones, operating 23 hours per day and seven days per week.

5. Average response time targets vary by process step, typically 3-5 seconds; 95% of the user interactions need to complete execution in 5-8 seconds.

6. Domain-specific architecture design challenges include: 1. Address validation completeness and timeliness, 2. Releasing reserved resources (copper transmission path, telephone number) when a process instance fails or customer walks away.

7. Communication patterns and protocols must support multiple platforms.

Page 37: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation37 Zurich Research Laboratory

VSP 1 (Browser)

VSP 2(Other System viaWeb Service)

Internal Channelfor T Staff

Solution: Service-Oriented Architecture (SOA) with Process & Service Layers

Customer Database Telephone Network Billing System

MoveCreate

MoveCreate

MoveCreate

Architecture Overview Diagram (First Design Iteration)

T

„Create“ Process „Move“ Process

„Validation“ Service „Pricing“ Service „Transmission Reservation“ Service

ProcessLayer

Service Layer

uses

Page 38: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation38 Zurich Research Laboratory

Software Architecture Fundamentals

Responsibilities of a software architect in custom application development:– Synthesizes technical solution from requirements (supported by methods)

– Technically leads project and estimates development efforts

– Coaches developers and other technical staff

Key concepts: Quality attributes, architectural patterns, architectural decisions– Quality attributes are architecturally significant requirements

– ... that drive selection of architectural patterns

– … which is captured in the form of architectural decisions

Foundations date back to late 1990s (academia and industry) – Bass et al. “Software Architecture in Practice”, Shaw/Garlan “Software Architecture…”

– Buschmann et al. “Patterns of Software Architecture” (POSA)

Page 39: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation39 Zurich Research Laboratory

Software Quality Attributes (QAs)

How does a system provide its functionality (not what it does)– Reliability, usability, efficiency (e.g., performance, scalability), maintainability, and

portability areas defined in ISO/IEC specification 9126-2001

Requirements in case study deal with QAs tacitly or explicitly:– QA “Accuracy”: orders must not be lost, transmission reservations must be undone– QA “Efficiency” (performance): response times specified by NFR 5– QA “Interoperability”: multiple platforms to be supported as per NFR 7 (which ones?)

Practical challenges:– Many attributes, many conflicts between them; many attributes hard to quantify– Often under-specified (unknown) or over-specified (overly ambitious)– Often stated on inadequate level of abstraction, e.g., per system (not per function)

Page 40: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation40 Zurich Research Laboratory

Architectural Patterns

Proven, common solution to known, recurring architecture design problem:– Context captured by intent section– QAs discussed in forces section– A problem statement is given often in question form– There is a sketch of the solution (not a complete design!)

Examples in case study:– “Layers” pattern from [POSA] structures the architecture overview diagram– See http://www.vico.org/pages/PatronsDisseny/Pattern%20Layers/index.html

Practical challenges:– Many eligible pattern languages– Link to requirements covered insufficiently– Transition to platform-specific design not addressed (or only in the form of examples)

Page 41: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation41 Zurich Research Laboratory

Architectural Decisions

Capture rationale justifying a design, in addition to design itself

Example in case study:– “We selected the Layers pattern to make the order management architecture

future proof and to be able to add VSP channels in a flexible manner”

– See http://www.ibm.com/developerworks/architecture/library/ar-knowwiki1

Practical challenges:– Retrospective decision capturing takes time and does not yield sufficient

benefits

– Relation to other architectural concepts and viewpoints (quality attributes, patterns) not understood well and not supported in methods and tools

Page 42: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation42 Zurich Research Laboratory

Larger Example: Process Manager Pattern“How do we route a message through multiple processing steps when the required steps may not be known at design-time and may not be sequential?”

“Use a central processing unit, a Process Manager, to maintain the state of the sequence and determine the next processing step based on intermediate results.” [EIP]

Process manager takes care of process instance creation and deletion, control flow routing, error handling in timeout situations, etc.

Pattern source: Hohpe/Woolf, “Enterprise Integration Patterns” (EIP). Supporting website: http://www.eaipatterns.com/ProcessManager.html

Page 43: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation43 Zurich Research Laboratory

We decided for the Process Manager pattern from the [EIP] bookDecision

Next, we have to decide on an integration style for link betweenprocesses and services and on implementation technologies for the selected patterns.

Related Decisions

Security requirements: to be able to correlate process instances and VSPs, users have to be identified in the order management system

Derived Requirements

Need to educate the team on process management and SOAImplications

The problem statement and the sketched solution of the pattern fit the requirements of the project (multiple processing steps, not sequential, correctness QA and timeout management NFR).

JustificationObject-oriented programming, proprietary EAI toolsAlternatives

Process control is a mandatory requirement with high architectural significance

MotivationProcess model and requirements NFR 1 to NFR 7 are valid and stableAssumptionsHow to control the “create PSTN” and “move PSTN” processing?Issue or Problem

2AD IDService Composition ParadigmADWorkflowTopicProcess layer designSubject Area

Architectural Decision (AD) to Use Process Mgr. Pattern

Page 44: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation44 Zurich Research Laboratory

Summary of Status Quo in Case Study

T has compiled a short list of vendors (professional services) and hosted an information day today. During the information day, T has presented:– Business strategy and system context

– Order management requirements (functional and non-functional)

– Design decisions already made including a high-level architecture overview diagram

You learned about:– Architectural decision making based on quality attributes and patterns

Page 45: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation45 Zurich Research Laboratory

The Assignment

T issues a “Request for Proposal (RFP)” and expects a response within a week:

– You are taking business analyst and software architect role in one of the professional services companies on the short list

Your RFP response should contain:1. Second iteration of architecture overview diagram (mandatory)

2. Technical questions about methods, languages, and tools (optional)

Page 46: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation46 Zurich Research Laboratory

Task 1: Refine Architecture with Integration Patterns

Decide for an integration style to connect the activities in the two order management processes (“create PSTN”, “move PSTN”) to the atomic services (“validation” and “transmission reservation”) and justify your decision.– File Transfer pattern?

– Shared Database pattern?

– Remote Procedure Invocation pattern?

– Messaging pattern?

Input– System context diagram, architecture overview diagram (iteration 1/2), NFRs

Output:– Documentation of architectural decision and updated architecture overview diagram

Page 47: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation47 Zurich Research Laboratory

Task 2: Method Aspects and Technical Questions (Optional)

Which requirements engineering method do you propose, and why?– Which other ones did you consider, and why did you decide against them?

Are you content with the introduction of a process manager into the architecture (and why)? – Which service composition paradigm to use – workflow, other? – Which programming language – Java, BPEL, other?– Which workflow or other engine (open source, commercial)?

Which remote communication protocol would you use to support thechosen integration style, making the services available to the processes? Name the relevant technology standard.

Page 48: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation48 Zurich Research Laboratory

Additional Project Information

Cultural environment– Developed country, multicultural society. High amount of immigration/emigration.– Telecommunications company positions itself as a thought leader and early adopter of

emerging technology in its geography, ready to operate in risk-reward sharing mode– Java skills available, Business Process Execution Language (BPEL) education planned

Team– About 100 people already on board, who worked on previous order management system

(in production, but not process-oriented): ~5 project managers, ~5 architects, ~20 business requirement analysts, ~50 developers, ~20 testers

Existing assets– 20 backend systems to be integrated in total, Java adapters available– 100.000 lines of legacy code (Java and other), e.g., validation and reservation EJBs– Technology platforms to be supported: Microsoft .NET clients, JEE clients and servers,

SQL and relational database, proprietary telephony hardware, commercial billing package

Page 49: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation49 Zurich Research Laboratory

Summary of What We Have Learned (Take Aways)

Start from functional requirements and – even more importantly – NFRs, particularly the explicit and tacit software quality attributes

Find architectural patterns which resolve the forces underneath the NFRs, e.g., in the [POSA] book series and the [PoEAA] and [EIP] books

Make conscious pattern selection decisions and follow-on decisions about technologies and products– Based on experience or reusable asset

Page 50: Making the Right Architectural Decisions with SOA Decision ... · worked with an ARC 100 work product for e-business architectures – Issue, decision, status, group, assumptions,

Business Integration Technologies

© 2009 IBM Corporation50 Zurich Research Laboratory

Thank You!

Questions?

Comments?

“Perspectives on Web Services”, Springer-Verlag– Captures project experience 2001-2003, incl. 26 reusable

architectural decisions

– Foreword by Grady Booch

– Website also has case study reports and other referenced papers

WWW: http://www.soadecisions.orgIBM W3: http://bpia.zurich.ibm.com/downloads/adkwik