You are on page 1of 44

IBM Research – Zurich

Services Management/Architectural Decision Knowledge Tools

Architectural Knowledge Management:


Decision Guidance in Service-Oriented Architecture Design
Dr. Olaf Zimmermann
Executive IT Architect
olz@zurich.ibm.com

1 © 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

How to Participate Today

Open and close your Panel


View, Select, and Test your audio
Submit text questions

Q&A addressed at the end of today’s


session

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Today’s Speaker
Dr. Olaf Zimmermann is the leader for the Architectural Knowledge
Management theme at the SEI Architecture Technology User Network
(SATURN 2011) Conference. He is also a research staff member at
IBM Research in Zurich, Switzerland. His research interests include
architectural knowledge management and service-oriented
architecture design. For his doctoral dissertation work at Stuttgart
University in 2009, he created an architectural decision modeling
framework for service-oriented architecture design. From 1999 to
2005, Zimmermann worked as a solution architect, helping IBM clients
designing SOA/web services and Java Enterprise Edition (JEE)
solutions on professional services projects. He also educated
practitioners around the world on emerging middleware technologies.
In the beginning of his career, Zimmermann worked as a scientific
consultant in the IBM European Networking Center (ENC) in
Heidelberg, Germany, focusing on industry-specific middleware
frameworks for systems and network management. He is a regular
conference speaker and an author of the Springer text book
Perspectives on Web Services. He contributed to several IBM
Redbooks including the first Redbook on Eclipse and Web services
authored in 2001. Olaf received a graduate "Diplom-Informatiker"
degree in computer science from the Technical University in
Braunschweig, Germany, in 1993. He is an Open Group Distinguished
Certified IT Architect and IBM Senior Certified IT Architect.
5 © 2010 IBM Corporation
IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Agenda

 SOA principles and patterns


 Case studies
 Architectural decisions
 SOA Decision Modeling (SOAD) assets
 Discussion and summary

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Agenda

 SOA principles and patterns


 Case studies
 Architectural decisions
 SOA Decision Modeling (SOAD) assets
 Discussion and summary

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

What is a Service-Oriented Architecture (SOA)?

No single definition – “SOA is different things to different people” Business


Domain
Analyst

– A set of services that a business wants to expose to their


customers and partners, or other portions of the organization.

IT
– An architectural style which requires a service provider (a.k.a. Architect
server) and a service requestor (a.k.a. consumer or client).
– A set of architectural patterns such as service consumer-provider
contract, enterprise service bus, service composition, and service
registry, promoting principles such as modularity, layering, and
loose coupling to achieve design goals such as separation of
concerns, reuse, and flexibility. Developer,
Administrator

– A programming and deployment model realized by standards, tools


and technologies such as Web services and Service Component
Architecture (SCA).

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Agenda

 SOA principles and patterns


 Case studies
 Architectural decisions
 SOA Decision Modeling (SOAD) assets
 Discussion and summary

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Case 1: Core Banking SOA with Web Services

Platform WSDL Documentation


Java Client .NET Client Browser Office
independent

IBM generate
WebSphere® SOAP SOAP SOAP
(pSeries) Web
Application

generate
Web Services Adapter Layer
JavaTM API
Java Backend Connectors (IBM WebSphere MQ, CICS®) Repository

Access Layer
Database generate
(IBM DB2®)
Business Function
IBM
CICS
(zSeries)

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Case 2: Multi-Channel Order Management (B2B)

Web
 Functional domain browser

– 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

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Agenda

 SOA principles and patterns


 Case studies
 Architectural decisions
 SOA Decision Modeling (SOAD) assets
 Discussion and summary

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

What are Architectural Decisions? Why Bother?


 “The design decisions that are costly to change” (Grady Booch, 2009)

 Our definition (from IEEE Software article “Architectural Decisions as Reusable


Design Assets”, http://www.computer.org/portal/web/csdl/doi/10.1109/MS.2011.3):
“Architectural decisions capture key design issues and the rationale behind chosen
solutions. They are conscious design decisions concerning a software-intensive system
as a whole or one or more of its core components and connectors in any given view. The
outcome of architectural decisions influences the system’s nonfunctional characteristics
including its software quality attributes.”

 From IBM UMF work product description ART 0513 (previous name: ARC 100):
“The purpose of the Architectural Decisions work product is to:
– Provide a single place to find important architectural decisions
– Make explicit the rationale and justification of architectural decisions
– Preserve design integrity in the provision of functionality and its allocation to system
components
– Ensure that the architecture is extensible and can support an evolving system
– Provide a reference of documented decisions for new people who join the project
– Avoid unnecessary reconsideration of the same issues”
© 2010 IBM Corporation
IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Architectural Decision (AD) about Integration Style –


Documented according to IBM Unified Method Framework (UMF)
Subject Area Process and service layer design Topic Integration
Name Integration Style AD ID 3
Decision Made We decided for RPC and the Messaging pattern (Enterprise Integration Patterns)
Issue or Problem How should process activities and underlying services communicate?
Assumptions Process model and requirements NFR 1 to NFR 7 are valid and stable
Motivation If logical layers are physically distributed, they must be integrated.
Alternatives File transfer, shared database, no physical distribution (local calls)
Justification This is an inherently synchronous scenario: VSP users as well as internal T staff
expect immediate responses to their requests (NFR 5). Messaging will give us
guaranteed delivery (NFR 3, NFR 6).
Implications Need to select, install, and configure a message-oriented middleware.
Derived Many finer grained patterns are now eligible and have to be decided upon:
Requirements message construction, channel design, message routing, message transformation,
system management (see Enterprise Integration Patterns book).
Related Decisions Next, we have to decide on one or more integration technologies implementing the
selected two integration styles. Many alternatives exist, e.g., Java Message
Service (JMS) providers.

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Agenda

 SOA principles and patterns


 Case studies
 Architectural decisions
 SOA Decision Modeling (SOAD) assets
 Discussion and summary

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Entity Types and Associations in UML Metamodel


Guidance Model Problem and criteria Decision Model
Decisions Required Decisions Actually
and Candidate Made on Projects
Solutions
“We decided for the MVC
“When designing a alternative to resolve the web
presentation layer, page flow issue because we
you will have to gained positive experience with it
select a pattern to on many similar projects.”
control the Web page
flow.”

“Model View Controller


(MVC) is a common
architectural pattern to Chosen solution
control the Web page and justification
flow.”

Our extension Potential solutions with pros and cons UMF template (ART 0513/ARC 100)
© 2010 IBM Corporation
IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

From AD Documentation to Active Method Guidance


Business
Executive Level for each project

Architectural
600+ Decisions in Architectural
Decision Issue
Style SOA Decision Guidance Model (with Alternatives)
(SOA or other?)
(SOAD)
Decision Made/Alternative Selected
SOA

Conceptual Level
for each service

Service Composition Process-Enabled SOA Transaction Boundaries?


Message Exchange Pattern
Paradigm Service Granularity?
(Request-Reply? One Way?) Message Confidentiality?
(Processes? Classes?)

Process-Enabled SOA Synchronous Request-Reply

Technology Level for each process

Workflow Transaction Qualifiers in SCA?


Language Transport Protocol Operations per WSDL Port Type?

(SOAP over HTTP?) HTTPS or WSSE?
(BPEL? Other?)

BPEL 2.0 SOAP/HTTP 1.1

Vendor Asset
Level

BPEL Engine IBM WebSphere Transaction Settings?



SOAP Engine Eclipse Web Tools Project (WTP) Usage?
(IBM WPS? Other?) (Apache Axis2?) Apache/WebSphere Configuration?

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #1 – Addressing Service Granularity Topic


WSDL,
Service Scope: Role: Phase: XML Schema
Model Service Operation Service Modeler Macro Design Contracts

Decision drivers: Functional requirements (domain model), capabilities of BPEL, SOAP,


WSDL, XML processors (verbosity), interoperability, network topology, number of
deployment artifacts and generated code structure, strong vs. weak typing philosophy.
XML Profiling

Issue: In Message Granularity (Conceptual/Technology Level)


Business How many message parts should be defined in the service contract?
Granularity How deep should the part elements be structured?
Out Message
The four alternatives have not been published as patterns yet. Granularity

Alternative 1: Alternative 2: Alternative 3: Alternative 4:


Service Dot Pattern Bar Pattern Dotted Line Pattern Comb Pattern
Operation To
Type Single scalar Single complex Multiple scalar Multiple complex Service
parameter parameter parameters parameters Grouping

Easy to process for Deep structure and Handled by all Combination of


SOAP/XML engines, exotic types can common engines, options 2 and 3,
much work for cause some programmer biggest overhead Component
Enterprise programmer interoperability convenience. for processing Wrapping
Data Model issues. engines.

Recommendation: All alternatives have their place; alternatives 2 and 3 are often chosen. WDSL, XSD
Base decision on layer and service type. Avoid overly deep nesting of data structures Editor
unless you want to stress test the XML processing. Minimize message verbosity. Selection

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Architectural Decisions Knowledge Tools

 Regulatory compliance
– E.g., maturity models
 Collaboration
– In geographically distributed teams
 Reuse
– Of already gained knowledge

 Other required features:


– Import and export
– Searching and filtering
– Dependency management
– Report generation

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Three Usage Scenarios for Architectural Decisions

EA Group, Center of Excellence


Knowledge Engineer Project Team
in Enterprise External Parties (e.g. Auditors)
Architecture (EA)
Scenario 3:
Group
Solution Architect Cross Role Collaboration

Scenario 2: 3.1 Identify issues in requirements


artifacts and trace their resolution
Active Method Guidance
3.2 Bind architectural decisions to
2.1 Distinguish decisions required
enterprise-wide architectural
(issues) from decisions made
principles and reusable assets such
(outcomes)
Solution Architect as pattern repositories
2.2 Share issues and related best
Scenario 1: practices via guidance models
3.3 Enforce decisions in UML and
After-the-Fact topology models
Decision Capturing 2.3 Assign design work items (issues
3.4 Integrate with process tasks
with open outcomes) to team
1.1 Document decisions made and members and track decision making
their rationale (supporting decision log 3.5 Measure decision making
progress (a.k.a. “backlog”)
report generation) practices (model analysis)

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Agenda

 SOA principles and patterns


 Case studies
 Architectural decisions
 SOA Decision Modeling (SOAD) assets
 Discussion and summary

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

SOA Lessons Learned


 SOA concepts and Web services technologies work
– Interoperability proven
– Performance not an issue
 Same old architecture?
– Broker vs. Enterprise Service Bus
– Workflow vs. service composition
– Directory service vs. registry www.soadecisions.org
 Not all patterns always have to be used
– Judge and decide on a pattern-by-pattern base
– Decision making driven by (non-)functional project/program requirements
– Don’t confuse concepts and technology (SOA vs. Web services, REST)
 Follow a crawl, walk, run approach
– As for any other non-trivial problem/solution
– Don’t over-engineer (e.g. complex XML schema)

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Summary and Discussion

 Architectural decision making is a key responsibility of IT architects which


is often underestimated and underrepresented in existing methods and
tools.
 In SOA design, many decisions recur. This makes it possible to reduce
the documentation effort and to share architectural decision knowledge
including best practices (design acceleration and quality assurance).

 Prototypical tool support for decision modeling with reuse is available.


 We would like to hear from you now…
– … are the presented scenarios, concepts, and tool features useful and
usable?
– … would you have additional requirements, e.g. collaboration and integration
needs?

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Value of Architectural Decision Modeling

Legend

Goal
Scenario
Practice
Measure

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

More Information and Upcoming Events


 SOAD overview article:
– Olaf Zimmermann, "Architectural Decisions as Reusable Design Assets," IEEE
Software, vol. 28, no. 1, pp. 64-69, Jan./Feb. 2011, doi:10.1109/MS.2011.3

 SOAD tutorial and case study reports:


– http://soadecisions.org/soad.htm

 Upcoming conferences with focus on Architectural Knowledge


Management (AKM) and/or SOA/Web services design:
– SEI SATURN 2011 (May 16-20, Burlingame, California, USA)
• Registration now open
– IEEE WICSA 2011 (June 20-24, Boulder, Colorado, USA)
• Paper submissions still accepted until Feb 14, 2011
– IEEE ECOWS 2011 (Sept 14-16, Lugano, Switzerland)
• Call for papers out and submissions accepted until April 15/April 30, 2011

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Decision Guidance in Service-Oriented


Architecture Design – Reference Material
Dr. Olaf Zimmermann
Executive IT Architect
olz@zurich.ibm.com

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

SOA Patterns Overview


Zimmermann O., An Architectural Decision
Modeling Framework for SOA Design.
Dissertation.de, 2009

 No industry consensus on SOA principles and patterns yet:


 Each author defines his/her own – many terminology mismatches

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #10 – Reference Architecture (RA)

Requirements Decision drivers: Vendor Architecture


Scope: Phase: Solution Outline
and EA preferences, enterprise Overview
Project or Enterprise Role: Lead Architect
Artifacts architecture principles Diagram

Issue: Reference Architecture Selection (BusinessExecutiveLevel)


Which reference model should be used to define architectural layers?
Background reading: Krafzig et al “Enterprise SOA”, Josuttis “SOA in Practice”
Integration
Layer
Patterns
Alternative 1: Alternative 2: Alternative 3:
SOMA/SOA Solution RA from Other Software RA from Standards
Stack 5+2 or 5+4 Vendors and Professional Body or Book Author
Model (IBM) Services Firms
E.g., The Open Group
Pros: Platform- Consult the respective is in the process of Process
Architectural neutral, websites and developer standardizing a SOA Layer
Style comprehensive, networks. reference model. OMG Patterns
Selection widely adopted SysML extends UML to
Pro: Often close to
define core SOA
Cons: Rather implementation reality.
concepts. “Enterprise
abstract, has to be
Con: May promote SOA” and “SOA in
refined for projects Service
proprietary concepts. Practice” come with
and solutions Component
their own approaches.
Layer
Patterns
Recommendation: All listed reference models have their place. Whichever one you choose,
make sure to profile to relevant subset and to provide concrete usage examples.

Decision Identification Decision Making Decision Enforcement

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #9 – Overall Integration Layer Design Pattern


Decision drivers: Number and Component
System
Scope: Entire technical diversity of service Phase: Solution Outline Model,
Context
Integration Layer providers and consumers, Role: Lead Architect Operational
Diagram
change dynamics Model

Issue: Integration Style (Conceptual Level)


Reference
Architecture Which architectural pattern (if any) is selected to structure the integration layer?
Selection
Background reading: Hohpe/Woolf “Enterprise Integration Patterns” Message
Exchange
Pattern
Alternative 1: Alternative 2:
Vanilla Message Broker or Peer-to-Peer Integration
SOA ESB (No Integration Layer)
Hub-and-spoke (stateful or Each service consumer directly talks
stateless) with broker as hub, to one or more service providers, e.g. Integration
message channels as spokes via file transfer, shared database, or Technology
remote procedure invocation patterns.
Pros: Flexible and extensible, can
Pro: Less architectural components
mediate technical differences
Cons: Many connectors, maintenance
ESB: Cons: There is a risk of scope
and extensibility issues, development
Enterprise creep – business logic might end Message
and management effort. Consumers
Service Bus up in integration layer. Broker/ESB
and providers tightly coupled.
Product

Recommendation: Introduce ESB pattern if loose coupling (i.e., location, format, protocol,
and implementation transparency) is a valued strategic architectural principle.

Decision Identification Decision Making Decision Enforcement

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #8 – A Detailed Integration Layer Design Issue


Decision drivers: Reliability
Service Scope: needs, systems Phase: Macro Design
WSDL
Model Operation management capabilities, Role: Integration Architect
availability of provider

Issue: Message Exchange Pattern (Conceptual/Technology Level)


Do consumer and provider communicate synchronously or asynchronously?
Background reading: Hohpe/Woolf “Enterprise Integration Patterns”
Integration
Style
Alternative 1: Alternative 2: Alternative 3:
Request-Reply One Way over Reliable Pseudo-Asynchronous
Transport
SOAP/HTTP Combination of
JMS or WS-RM Alternative 1 on
Simple to manage, application integration
but no guaranteed Consumer and provider layer, Integration
delivery, so *might* up times can differ; Alternative 2 on Technology
MOM:
Message-Oriented have to deal with guaranteed delivery (once underlying transport
Middleware undelivered and/or and only once) when layer
duplicate using persistent
JMS: Same as Alternative 1,
messages messages. Must manage
Java Messaging but guaranteed
dead letter queue.
Service delivery

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

Decision Identification Decision Making Decision Enforcement

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #7 – Integration Layer Technologies


Decision drivers: Quality of
Component Scope: Service (QoS) needs, Phase: Macro Design Component
Model Operation endpoint technologies, Role: Integration Architect Model
team preferences

Issue: Integration Technology (Technology Level)


Which technology standards should be used to implement the chosen
integration patterns?
HTTP Server
Background reading: Pautasso et al “RESTful vs. Big Web Services”
Selection

Alternative 1: Alternative 2:
WS-* Technologies RESTful Integration
Integration
Style SOAP/HTTP, WSDL and other HTTP with certain principles
appropriate XML languages (see PhD thesis by Roy Fielding) MOM/JMS
Pros: HTTP ubiquity, scalability, Provider
Pros: Tool and standards support, perceived to be simple Selection
interoperability
Cons: No interface definition
Message Cons: Perceived to be complex language and few tools, so many
Exchange and under vendor control (tools integration responsibilities shifted
Pattern and middleware needed for XML back to application developer. Does
editing and processing). Limited not support asynchronous SOAP Engine
support in scripting languages. messaging. Not transactional. Selection

Recommendation: Both alternatives have their place. Avoid being biased in the decision
making. Note that REST often is positioned as a architectural style (alternative to SOA).

Decision Identification Decision Making Decision Enforcement

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #6 – Overall Process Layer Design Pattern


Decision drivers: Business
Architecture
Entire Project or scenario, resource Solution Outline Component
Overview
Solution coordination/protection Lead Architect Model
Diagram
needs, team preferences

Reference Issue: Service Composition Paradigm (Conceptual Level)


Architecture Workflow
Should a process layer be introduced? If so, how is service composition done?
Selection Language
Background reading: Leymann/Roller “Production Workflow” and Engine
Selection

Alternative 1: Alternative 2: Alternative 3:


Workflow (BPM) Composite pattern via Other Layer Process
modern programming Lifetime
Executable process with Composition
language (e.g., OO) (Macroflow,
sub-processes, responsibilities
activities, etc. Proven, used in other may also be taken Microflow)
architectural layers by presentation
BPM: Highly expressive, tool layer (mashups)
Does not provide engine
Business Process and engine supported, or by integration
support for business
Management separates composites layer (stateful Control Flow
transactions; runs the risk
from atomic services broker) Patterns
OO: of not structuring the
Object Orientation Additional programming business logic layer
paradigm (graph-based) properly (into sub-layers).

Recommendation: Introduce process layer and realize it with workflow pattern and Invocation
technologies if business scenario is long running multi-actor scenario with advanced Transactio-
resource coordination/protection requirements. Use OO composition in other cases. nality Pattern

Decision Identification Decision Making Decision Enforcement

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #5 – Transaction Management Topic

WBM or RSA Decision drivers: Resource Macro Design


Process Activity/
protection needs, data Application
Model Operation
currency, performance Architect

Issue: Invocation Transactionality Pattern (Conceptual Level)


Workflow
Should a business process, its activities, and the service components it Compensation
pattern
invokes run in a single or in multiple system transactions? Patterns
selection
See ICSOC 2007 paper by Zimmermann et al. for available patterns.

Alternative 1: Alternative 2: Alternative 3: SCA qualifiers,


Transaction Islands Transaction Bridge Stratified Stilts BPEL server
Workflow
engine Do not share Tx Share Tx context Use asynchronous configuration,
selection context messaging and WS-AT usage
Best resource
suspend Tx
Best performance, protection, but
loose coupling, but large, long running Supports loose
no full ACID Tx tightly coupling coupling best, but no
Tx: Transaction
protection for activities and full ACID protection.
resources. services.
ACID:
Atomicity,
Consistency,
Isolation, Recommendation: Use Transaction Islands as default, Stratified Stilts for long WID
Durability running, distributed processes. Decision injection into model transformation BPEL
SCA: or BPEL code in WebSphere Integration Developer is possible. Process Model
Service Component
Architecture

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #4 – Process Layer Technologies

Decision drivers: Language


Component Entire Project or Macro Design Component
expressivity, tool and
Model Solution Application Architect Model
engine support, portability

Issue: Workflow Language (Conceptual Level)


Workflow
pattern Which BPM/workflow language should be selected?
selection
Background reading: Websites of standards bodies and analyst reports

Alternative 1: Alternative 1: Alternative 3:


WS-BPEL 2.0 BPEL 2.0 predecessor Other Standardized or
(a.k.a. BPEL) from such as BPEL 1.x, WSFL, Proprietary Language
OASIS or FD(M)L Workflow
Other service
Engine
BPM: Business Standardized, Might expose engine- composition and BPM
Selection
Process (partially) specific features such as paradigms exist, e.g.
Management supported by tools dead path elimination based on Petri Nets
and engines better than standard. rather than graphs.
BPEL:
Business Process
Execution Language
Recommendation: This decision is often constrained by the workflow engine
selection (if that decision is made upfront). Look for standards compliance if
portability is an important requirement; avoid usage of proprietary language
features during process modeling.

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #3 – Service/Component Layer Design Patterns

Decision drivers: Complexity


Component Entire Project or of business domain, number Macro Design Component
Model Solution and nature of user channels, Application Architect Model
experience

Issue: Service and Component Layer Patterns (Conceptual Level)


Reference How should the service and the component layer be organized?
Architecture
Background reading: Fowler “Patterns of Enterprise Application Architecture”,
Selection
Buschmann et al “Patterns of Software Architecture”,
Gamma et al “Design Patterns”

Alternative 1: Alternative 2: Alternative 2: Alternative 3: Gof, PoEAA,


Traditional GOF, Domain-Driven Core J2EE Patterns from pattern
POSA and Design (DDD) Patterns Other adoption
PoEAA patterns pattern (Evans) Languages decisions
See book by
Façade, Broker, Context and Alur et al See Software
GoF: Domain Model Ubiquitous Architecture
Proven for low
Gang of Four are three of many Language Handbook
level design
applicable ones. patterns are website by Other pattern
POSA: and coding (not
particularly Booch. adoption
Patterns of all are
useful. decisions
Software architectural)
Architecture
PoEAA: Recommendation: Follow a best-of-breed approach and select patterns from
Patterns of multiple languages as justified by project requirements and already existing
Enterprise designs. E.g., apply the façade/wrapper pattern to separate the service layer from
Application the component layer. Make services as stateless as possible (Client State or
Architecture Database State patterns). Identify, make, and enforce pattern adoption decisions.

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #2 – Service/Component Layer Technologies

Decision drivers: Container


Component Entire Project or Macro Design Component
services and tools, market
Model Solution Application Architect Model
acceptance, portability

Issue: Container Technology (Technology Level)


Which interface definition language and container technology is used?
Background reading: Web portals such as InfoQ and TheServerSide.com Service/
Service and Component
Component Container
Layer Selection
Patterns Alternative 1: Alternative 2: Alternative 3:
WSDL and SCA Java Enterprise Edition Other, e.g. Ruby on
(several versions) (JEE) and remote object Rails, Spring
interfaces (e.g., EJB) framework, and many
See OSOA.org and
more
W3C.org See various Java
websites (from Java Support for modern
Expressive,
WSDL: vendors, from others) container concepts
platform-neutral
Web Service such as dependency
Mature, in use since
Description XML documents injection
1990s
Language hard to create and
Vendor support?
maintain manually Under vendor control
OSOA:
Open SOA
EJB:
Recommendation: This decision is often constrained by service container selection. Look
Enterprise JavaBean
for standards compliance if portability is an important requirement. Find a balance between
container features (services) and maintainability and keeping architectural control.

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

AD Issue #1 – Addressing Service Granularity Topic


WSDL,
Service Scope: Role: Phase: XML Schema
Model Service Operation Service Modeler Macro Design Contracts

Decision drivers: Functional requirements (domain model), capabilities of BPEL, SOAP,


WSDL, XML processors (verbosity), interoperability, network topology, number of
deployment artifacts and generated code structure, strong vs. weak typing philosophy.
XML Profiling

Issue: In Message Granularity (Conceptual/Technology Level)


Business How many message parts should be defined in the service contract?
Granularity How deep should the part elements be structured?
Out Message
The four alternatives have not been published as patterns yet. Granularity

Alternative 1: Alternative 2: Alternative 3: Alternative 4:


Service Dot Pattern Bar Pattern Dotted Line Pattern Comb Pattern
Operation To
Type Single scalar Single complex Multiple scalar Multiple complex Service
parameter parameter parameters parameters Grouping

Easy to process for Deep structure and Handled by all Combination of


SOAP/XML engines, exotic types can common engines, options 2 and 3,
much work for cause some programmer biggest overhead Component
Enterprise programmer interoperability convenience. for processing Wrapping
Data Model issues. engines.

Recommendation: All alternatives have their place; alternatives 2 and 3 are often chosen. WDSL, XSD
Base decision on layer and service type. Avoid overly deep nesting of data structures Editor
unless you want to stress test the XML processing. Minimize message verbosity. Selection

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

Vision: Enterprise-Wide Guidance Model

 Enterprise architecture group owns and maintains guidance model


– Input comes from solution architects on development/integration projects
– Quality assured, aligned with enterprise IT strategy
 Does not mandate a particular architecture, but frames design work
– Recommend certain alternatives:
• E.g. “always use document/literal SOAP”
– Ban others:
• E.g. “no open source assets can be used due to open legal issues”
– Finding a balance between freedom-of-choice and freedom-from-choice
 Allows project teams to share lessons learned and best practices
– Actionable enterprise architecture
– Enterprise architects perceived as friends, not foes

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

http://www.sei.cmu.edu/training/elearning/

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

CERT's Podcast Series:


Security for Business Leaders
www.cert.org/podcast/

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

© 2010 IBM Corporation


IBM Research – Zurich
Services Management/Architectural Decision Knowledge Tools

NO WARRANTY

ANY CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING


INSTITUTE MATERIAL IS FURNISHED ON AN “AS-IS" BASIS. CARNEGIE MELLON
UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR
IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF
FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS
OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY
DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM
FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.

This Presentation may be reproduced in its entirety, without modification, and freely
distributed in written or electronic form without requesting formal
permission. Permission is required for any other use. Requests for permission should
be directed to olz@zurich.ibm.com.

The views expressed are those of the author and do not necessarily reflect those of
Carnegie Mellon University or its Software Engineering Institute (SEI).

© 2010 IBM Corporation

You might also like