bpm implementation with soa and mda€¦ · bpm implementation with soa and mda marc j. balcer vp,...

Post on 02-Oct-2020

10 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

BPM Implementationwith SOA and MDA

Marc J. BalcerVP, Product Development

AZORA™ TechnologiesSunnyvale, California

Promise

Business ProcessModel Existing Systems

and Data

How do you get fromhere to there?

Typical Scenario

Data

OtherSystem

Data

PolicySystem

Data

AutoSystem

Data

LOB 2 System

Data

Application System

Data

Application 2System

It doesn’t scale

Data

OtherSystem

Data

PolicySystem

Data

Data

AutoSystem

LOB 2System

Data

Data

Application 1System

Application 2System

The ultimate result?Gartner: “Enterprise Application Spaghetti”

Solution Approach

• Use “right kinds” of services for building BPMs• Organize the complete set of services to be usable in

our context• Use MDA to realize the design

Business ProcessModel Existing Systems

and Data

How do you get fromhere to there?

Partitioning Principles

• Business process models should be in the language of the business

• The steps in the BPMs should map to services that provide equivalent business functionality

• Business services should be built atop layers of services that reach down to implementation technologies

Domains

• A domain is a separate real, hypothetical, or abstract world inhabited by a distinct set of objects, all subject to the same rules and policies

Bookstore

Inventory

Credit Card Processing

Package Shipping

USPS FedEx

BankCard Processing

Authentication

Logging

Domains and Objects

• Each domain has its own independent object model– classes

– attributes

– associations

– specializations

codenameaddressorderingContact

productIDunitPricetitle

ISBNNumbersubtitle

runningTimeformat

version

quantityOnHandreorderThreshhold

orderingInstructionsdaysToDeliver

produces and markets1 0..*

namebiography

writes

0..*

0..*

role (0..1)

contributes to

0..*

0..*

role

codenameaddressorderingContact

productIDunitPricetitle

ISBNNumbersubtitle

runningTimeformat

version

quantityOnHandreorderThreshhold

orderingInstructionsdaysToDeliver

produces and markets1 0..*

namebiography

writes

0..*

0..*

role (0..1)

contributes to

0..*

0..*

role

/ quantityunitPricetotalPrice

orderNumberorderDatetotalPrice

selects 0..*1..*

accountNumberexpirationDatechargeAmountapprovalCode

/ isApproved

attempts to pay for

1

0..*

pays for

1

0..*

nameemailmailingAddress

places 11..*

Domains and Services

• Domains expose their capabilities as services– operations

– types

– documents

Services

Document definition

Bridges

• A bridge is a contract between domains that states how one domain makes use of services provided by another

Bookstore

Inventory

Credit Card Processing

Package Shipping

USPS FedEx

BankCard Processing

Authentication

Logging

The bookstore uses Package Shipping to send completed ordersto customers

Domains as Layers

• Business– the actual business

• Utility– generic capabilities

• Integration– combine operational resources

• Operational– existing systems

• Foundation– provided by the core software

architecture

Bookstore

Inventory

Credit Card Processing

Package Shipping

USPS FedEx

BankCard Processing

Authentication

Logging

Layered SOA Architecture

OperationalResources

IntegrationServices

BusinessServices

BusinessProcesses

IS IS IS IS ISISIS

Interfaces defined by enterprise semantics and requirements

Interfaces defined by enterprise modeltask definitiontask implementation

Use Cases and Scenarios

• Use cases define the context in which the domain will be used

• Individual scenario steps map to business services

• Messages carried between the steps map to business documents

Model Interconnections

Class

Operation

State Model

Document

Service

Scenario

Use Case

Actor

Step

Type

Attribute

Integrating Existing Systems

Bookstore

Inventory

Credit Card Processing

Package Shipping

USPS FedEx

BankCard Processing

Authentication

Logging

One existing system providesall the capabilities neededto realize a domain

Different existing systemsprovide capabilities to realize a domain

The integration servicecombines the existing systems’ capabilities

Existing systems can beenabled as services

Combining Multiple Systems

• Suppose we need to create a single customer view– billing

– provisioning

– trouble ticketing

• Hint:it’s not just a UI problem

Unified Enterprise Model

• Create one model of the combined domain

• Then map elements of the combined domain down to the existing capabilities

Enterprise Organizations

• Organize a business domain by the layers in the business– whole enterprise

– lines in the business

– industry standards

• Provides scope, visibility, and governance

What’s the Problem?Analysts createapplication modelsin a UMLmodelingtool…

… then the developers look at the models

and write the production code

…print them out…

What’s the Problem!

But once something is in a machine representation…

…we shouldn’t have to manually

reinterpret it (“re-code it”) into another.

The analyst’s diagrams don’t have to be complete, correct, or consistent models

The re-coding introduces development errors and

obscures analyst errors

Keeping the diagramsin sync with the code

is a daunting task.

SORA Metamodel

Class

Operation

State Model

Document

Service

Scenario

Use Case

Actor

Step

Type

Attribute

Software Architecture

• Basic design policy

• Conceptual Architecture– Platform-independent representation

– “Character” of the architecture

• Platform Architecture– Platform-specific representation

– Select technologies

– Define actual artifacts

• Once conceptual architecture can have many platform architectures

“Platform” is relative

PlatformIndependent

Model

PlatformSpecificModel 1

.Net® Web Services

PlatformSpecificModel 2

J2EE Web Services

J2EE with JMS

.Net with message queues

CIM PIM PSM

One Technology Platform

< < Platform> >TransformationService

< < Artifact> >ServiceTypeProperties

< < Artifact> >ConnectionTypeXml

< < Artifact> >TransformationXslt

< < Artifact> >EndpointTypeXml

< < Platform> >ConnectionType

< < Artifact> >ServiceTypeJava

< < Artifact> >ServiceTypeXml

< < Artifact> >EsbadminScript

< < Artifact> >ConnectionXml

< < Platform> >Container

< < Platform> >Process

< < Platform> >Service

< < Platform> >CbrService

< < Platform> >Endpoint

< < Platform> >ServiceType

< < Platform> >Connection

< < Platform> >EndpointType

< < Artifact> >ContainerXml

< < Artifact> >MessageXsd

< < Artifact> >ServiceXml

< < Artifact> >ProcessEsbp

< < Artifact> >RulesJs

< < Artifact> >EndpointXml

*

*

- type

*

*

- type*

*

- type

*

*

Example

InformationModel

classesattributes

associations

RelationalSchema

tablescolumns

primary keysforeign keys

SQL Create TableScript

Model element(from the SORA)

Conceptualentity

Platformartifact

Additional Information

InformationModel

classesattributes

associations

RelationalSchema

tablescolumns

primary keysforeign keys

SQL Create TableScript

TypeModel

domain-specific type

Type Mark

Mapdomain-specific

to platformtype

Translation

SOA elementsdefined in

metamodelMarks

(additional dataneeded to translate)

PlatformElements

Class

Attribute

Document Definition

XML Schema

Message Class

Java Type Mark

XSD Type Mark

Automation Overview

Reference Architecture

BusinessArchitecture Application

Architecture PlatformArchitecture

Graphical ModelingEnvironment

ProvidesReferenceArchitecture

Design ModelSpecifies BusinessServices, not Platform Constructs

Create Analysisand Design Models

ModelVerificationEnsuresCompliance

/**private String servicename = null;private com.sonicsw.xq.XQEnvelopeFactory

envFactory = null;private com.sonicsw.xq.XQAddressFactory

addFactory = null;private com.sonicsw.xq.XQMessageFactory

messageFactory = null;

public void init(com.sonicsw.xq.XQInitContextinitialContext) throws com.sonicsw.xq.XQServiceException

b2bc770a00000156 */

GenerateArtifacts

Code

Integration Platform

‘Glue’ code

Business Logic

COTS

100%Generated

StructureGenerated

Application Software Layers

Summary

• Three dimensions of layering– subject matter

– organization

– modeled / realized

• SOA Reference Architecture

• Translation– ensures platform independence

– improves development performance

Contact

Marc J. BalcerVP, Product DevelopmentAZORA™ TechnologiesSunnyvale, California

Marc.Balcer@azoratech.com

http://www.azoratech.com

top related