primitives and design patterns for top-down soa implementations

20
03/30/09 Primitives and Design Patterns for Top-Down SOA Implementations Michael zur Muehlen Stevens Institute of Technology Hoboken NJ 1

Upload: michael-zur-muehlen

Post on 06-May-2015

1.759 views

Category:

Business


0 download

DESCRIPTION

Presentation given at the SOA Symposium 2009, Government and Industry Issues and Solutions. This presentation focuses on the development of a BPMN styleguide for the Department of Defense.

TRANSCRIPT

Page 1: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Primitives and Design Patterns for Top-Down SOA ImplementationsMichael zur MuehlenStevens Institute of TechnologyHoboken NJ

1

Page 2: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Engineering vs. Architecture

‣ If you show the same circuit diagram to two electrical engineers they will be able to understand the diagram because- The symbols are drawn the same

way everywhere- The symbols have a well-defined

meaning (semantics)- All electrical engineers are

trained on the same set of symbols

2

Page 3: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09 3

Moreover: They are likely to build functionally equivalent

and interoperableimplementations

Page 4: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Enterprise Architecture

‣Many Frameworks

‣Many Views

‣Many Techniques- UML, IDEF, BPMN, RAD, EPC, PowerPoint and many, many others...

4

<<TupleType>>

Activities::PerformerRuleConstrainsActivityOverlap

<<TupleType>>

ResourceFlows::PersonnelTypePartOfSystem

<<TupleType>>Activities::ActivityWholeConsumingPartOfActivity

<<TupleType>>ResourceFlows::SkillPartOfPersonnelType

<<TupleType>>

Rules::RuleGuidanceOfActivityValidUnitorCondition

<<TupleType>>Activities::ActivityWholeProducingPartOfActivity

<<powertype>>

ResourceFlows::ArchitectureOverviewAndPurpose

<<type>>Locations::IntentionallyConstructedInd

ividual

<<TupleType>>Goals::VisionsRealizedByDesiredEff

ect

<<powertype>>ResourceFlows::Information

<<TupleType>>ResourceFlows::PerformerLocationOverlap

<<type>>ResourceFlows::Resource

<<powertype>>ResourceFlows::ResourceType

<<powertype>>

Activities::ConsumingPartOfActivity

<<powertype>>ResourceFlows::PerformerType

<<TupleType>>Activities::ActivityPerformedByPerformer

<<TupleType>>Activities::ActivityResultsInEffect

<<TupleType>>ResourceFlows::MaterielPartOfSystem

<<type>>ResourceFlows::EffectObject

<<TupleType>>Capability::CapabilityPerformerManifestation

<<TupleType>>Goals::EffectPartOfCapability

<<TupleType>>Locations::FacilityPartOfSite

<<powertype>>Measures::Measure Type

<<powertype>>

ResourceFlows::DomainInformation

<<powertype>>

ResourceFlows::ServiceDescription

<<TupleType>>

InformationAndData::DescribedBy

<<TupleType>>ResourceFlows::DataPartOfInformation

<<TupleType>>Services::ServiceEnablesAccessTo

<<powertype>>

Activities::ProducingPartOfActivity

<<TupleType>>

Activities::ActivityChangesEffectObject

<<IndividualType>>

Locations::GeoPoliticalExtent

<<TupleType>>

ResourceFlows::nameTypeInstance

<<IndividualType>>ResourceFlows::IndividualResou

rce

<<IndividualType>>Locations::PlanerSurface

<<TupleType>>Activities::PerformerSupportingActivity

<<TupleType>>Activities::ActivityPerformerOverlap

<<IndividualType>>ResourceFlows::IndividualPerfo

rmer

<<type>>ResourceFlows::Means

<<type>>ResourceFlows::Performer

<<powertype>>

ResourceFlows::Service<<powertype>>

ResourceFlows::PersonnelTyp

e

<<TupleType>>

Activities::ActivityResourceOverlap

<<powertype>>ResourceFlows::NameType

<<powertype>>TrainingSkillEducation::Skill

<<TupleType>>

Activities::ActivityConditionOverlap

<<TupleType>>Rules::RuleConstrainsActivity

<<type>>Measures::NeedsSatisfaction

Measure

<<powertype>>ResourceFlows::Materiel

<<TupleType>>InformationAndData::namedBy

<<powertype>>ResourceFlows::Data

<<IndividualType>>ResourceFlows::Organizatio

n

<<TupleType>>Activities::ActivityPartOCapability

<<powertype>>ResourceFlows::System

<<TupleType>>

Goals::DesiredEffectDirectsActivity

<<IndividualType>>Locations::Location

<<type>>Services::ServicePort

<<TupleType>>Services::PortPartOfPerformer

<<type>>Measures::Maintainability

Measure

<<IndividualType>>Locations::Site

<<type>>Measures::Organizational

Measure

<<IndividualType>>Locations::Facility

<<TupleType>>Project::GoalsRealizedByProject

<<TupleType>>

InformationAndData::tuple

<<NameType>>ResourceFlows::Address

<<TupleType>>InformationAndData::DataAss

ociation

<<powerType>>Services::ServiceChannel

<<type>>Measures::PhysicalMe

asure

<<type>>Measures::SpatialMea

sure

<<type>>Measures::Performanc

eMeasure

<<type>>Measures::AccuracyPr

ecision

<<type>>Measures::RateThroug

hput

<<type>>Measures::Capacity

<<type>>

Measures::Dependability

<<type>>

Measures::Trustworthiness

<<type>>

Measures::Reliability

<<type>>

Measures::Security

<<type>>Measures::ServiceLev

el

<<type>>Measures::Adaptability

Measure

<<type>>Measures::Interoperabi

lity

<<type>>Measures::EffectsMea

sure

<<type>>Measures::Cost

<<IndividualType>>Locations::GeoFeature

<<IndividualType>>Locations::Surface

<<IndividualType>>Locations::Line

<<IndividualType>>Locations::Point

<<IndividualType>>Locations::Country

<<IndividualType>>

Locations::RegionOfCountry

<<IndividualType>>Locations::SolidVolum

e

<<IndividualType>>

Locations::Installation

<<TupleType>>Locations::SitePartOfIn

stallation

<<IndividualType>>Locations::RealPropert

y

<<IndividualType>>Goals::Vision

<<IndividualType>>Goals::Goal

<<powertype>>ResourceFlows::Organ

izationType

<<type>>Services::Port

<<IndividualType>>Measures::Measure

<<powerType>>Rules::TechnicalStandard

<<type>>InformationAndData::Thing

<<type>>

Measures::Timeliness

<<NameType>>

ResourceFlows::Name

<<powerType>>Activities::ServiceFunction

<<individualType>>Rules::FunctionalStandard

<<TupleType>>

Services::InterfaceType

<<individualType>>Rules::Guidance

<<type>>

Capability::Capability

<<powertype>>Activities::Activity

<<individualType>>Rules::SecurityAttributes

Group

<<individualType>>Rules::Constraint

<<powerType>>Rules::ServicePolicy

<<IndividualType>>Project::Project

<<powertype>>

Activities::Condition

<<individualType>>Rules::Rule

<<individualType>>Rules::Agreement

<<powertype>>

Goals::DesiredEffect

<<individualType>>Rules::Standard

<<powerType>>

Activities::Event

<<powertype>>

Project::Plan

1

0..*

place2Type

place1Type

nameType

place2Type

nameInstance

place1Type

wholeInformation

place2Type

dataPart

place2Type

place1Type

place1Type

place2Type

2

pointOnLine

place2Typeplace1Type

place2Type

place1Type

place2Type

1..*

place1Type

place1Typeplace2Type

0..1

place1Type

nameType

place4Type

place2TypeassociateOne

place3Typerelationship

place1TypeassociateTwo

place1Type

thingDescribed

place2Type

tuplePlace2

place1Type

tuplePlace1

place1Typeplace2Type

place1Type

place2Type

place2Typedescription

place2Type

place2Type

place1Type

place1Type

thingBeingDescribed

place2Type

place1Type

place2Type place1Type

place1Type

place2Type

place1Type

place2Type

place1Type

place2Type

place2Type

place1Type

place1Type

place1Type

place1Type

place1Type

place2Type0..*

place3Type

place2Type

place3Type

place1Type

place2Type

place2Type

place2Type

place1Type

place1Type

place2Type

place1Type

place2Type

place1Typeplace3Type

place2Type

0..*

Page 5: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Modeling Freedom

5

Page 6: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Design Primitives and Patterns

6

Page 7: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Low- and High-Level Patterns

7

Patterns are composed of Primitives!

Page 8: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

The Nescafé Process

8

Page 9: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

The Espresso Machine Process

9

Page 10: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

The Starbucks Process

10

Page 11: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Systematic Composition

11

Page 12: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

3-Level Hierarchy: Milestones

12

Page 13: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

3-Level Hierarchy: Collaboration

13

Page 14: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

3-Level Hierarchy: Procedures

14

Page 15: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Hohpe’s SOA on a Napkin

15

Source: Gregor Hohpe (2009)

Page 16: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Hohpe’s SOA on a Napkin

16

Source: Gregor Hohpe (2009)

Object-oriented Dev’mnt

Process Modeling

Protocol Design

Declarative Programming Object-Document Mapping

Page 17: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Define Your Vocabulary First

17

Define Capabilities

What is the architecture supposed to achieve?

Items:• Objectives• Features• Services

Define Resources

Which data/resources will be consumed or produced?

Items:•Nouns

Define Activities

Which processes/activities will provide the capabilities?

Items:• Verbs

Define Performers

Who/What will be involved?

Items:• Roles• Systems• Actors

Page 18: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

How the Vocabulary Relates

18

Resource Resources may be Performers

Activity(Process)

realized through

Sub-Activity(Activity)

In/Out

Decom

p.

Resource

Define Capabilities

Define Resources

Define Activities

Define Performers

Capability

Perfo

rms

Performer

Page 19: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

Summary

‣Minimize Diagram Types: Fewer primitives to learn‣Standardize Patterns: Unified use of modeling language‣Define Vocabulary first: Lexicon ties model types together

‣A realistic design standard for modelers, architects, and tool vendors

19

Page 20: Primitives And Design Patterns for Top-Down SOA Implementations

03/30/09

For More Information

20

Available on DKO:

Email: [email protected]