51
Services Orientation <Presenter> <Presenter>

Soa Business And Technical Overview Presentation (Reed003707)

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Soa Business And Technical Overview Presentation (Reed003707)

Services OrientationServices Orientation

<Presenter><Presenter><Presenter><Presenter>

Page 2: Soa Business And Technical Overview Presentation (Reed003707)

Goal of Today

Discuss Strategy and build consensusfor the continued evolution of a flexibleEnterprise Architecture.

Page 3: Soa Business And Technical Overview Presentation (Reed003707)

Agenda

Flexible IT, Better Strategy Designing for Business Processes Developing for Business Solutions Challenges Ahead

Page 4: Soa Business And Technical Overview Presentation (Reed003707)

Agenda

Flexible IT, Better Strategy Designing for Business Processes Developing for Business Solutions Challenges Ahead

Page 5: Soa Business And Technical Overview Presentation (Reed003707)

Flexible IT, Better StrategyThe McKinsey Quarterly, 2003 Number 4

IT architecture determines the agility with which companies can carry out strategy The difficulty and cost of modifying today's IT

architectures can be so high that some companies would rather abandon new strategic initiatives than make a single change to the applications they already have in place.

Service-Oriented Architectures promise to reduce if not remove the current obstacles.

Information technology, far from lacking strategic worth, determines strategic value

Page 6: Soa Business And Technical Overview Presentation (Reed003707)

Business Processes RuleThis is the Fundamental Assumption

Everything Enterprise IT does is in the service of some business process

Service-Oriented Architecture (SOA) is about making business processes: Better Easier to change Cheaper to create Faster to Assemble

David Chappell: Service Oriented Architecture: What’s Next (www.davidchappell.com)

Page 7: Soa Business And Technical Overview Presentation (Reed003707)

Service Oriented Architecture Defining the Term

Flexible software providing Services leading to agile business processes.

Services are a technology agnostic

end point that either answers a question or raises a notification when a meaningful event occurs.

Page 8: Soa Business And Technical Overview Presentation (Reed003707)

What does SOA mean: To the CIO

means for protecting existing IT investments without inhibiting the deployment of new capabilities.

To the Business Analyst means of bringing information technology investments

more in line with business strategy. To the Developer

Means for creating dynamic collaborative applications. To the IT Manager

means for effectively integrating the diverse systems typical of modern enterprise data centers.

To Microsoft a crucial prerequisite to creating connected systems.

Page 9: Soa Business And Technical Overview Presentation (Reed003707)

SQLSQL

AppAppInternalsInternals

Service OrientationBasic Consumer/Provider view

ServiceServiceFaçadeFaçade

Service ConsumersService Consumers Service ProviderService Provider

How the application is constructed and hosted is How the application is constructed and hosted is independent of the service implementationindependent of the service implementation

Page 10: Soa Business And Technical Overview Presentation (Reed003707)

Shift To Service Orientation

Integrations = cost Function oriented Build to last Prolonged

development

FromFrom ToTo Integrations = value Process oriented Build for change Incrementally

deployed

Application silos Tightly coupled Object oriented

Orchestrated solutions

Loosely coupled Message oriented

Page 11: Soa Business And Technical Overview Presentation (Reed003707)

Enterprise Flexibility

Packaged Application

s

Custom Applications

Aggregation

Business Process Management

Identity and Access Mgmt

Web Services Management

Application Monitoring

Testing and Performance

Presentation Services

Data and Capabilities exposed as Services…

…customized via shared middle-tier middleware…

…are aggregated to fit user needs

Legacy

Warehouse

Process Aggregation

Single Sign On

Two-way integration

User Specific Experiences

Operations Executive Marketing

Infrastructure

Integration

Management

Page 12: Soa Business And Technical Overview Presentation (Reed003707)

Key Attributes

Flexible Sourcing Legacy Rationalization

Hidden from users Service Reuse Customization in Middle-Tier

Services remain Generic Process and Data Integration

Page 13: Soa Business And Technical Overview Presentation (Reed003707)

SOA is all about ROI

BillingOrder Mgmt

Custom Apps

PeopleSoft

Point to Point Integrations Point to Point Integrations are costly to develop and are costly to develop and

maintainmaintain

… … Services Services Integrations add Integrations add

Value by enabling Value by enabling FlexibilityFlexibility

Page 14: Soa Business And Technical Overview Presentation (Reed003707)

Why SOA Makes Sense: Business Benefits

Services are a Language to Discuss Business Processes So IT people can talk with them more

easily about solutions Business processes become explicit

So they can more easily be understoodand improved

Applications or business processes mightbe more easily replaced

Because they’re well-defined and discrete

Page 15: Soa Business And Technical Overview Presentation (Reed003707)

Why SOA Makes Sense: Technical Benefits

Deployment is explicit Bridges Infrastructure and Development

Building business processes is faster and cheaper Services can more easily be reused Applications can expose their services in

a standard way Applications can be exposed more

easily to diverse clients Windows clients, Web Clients, Host-based

clients, External Clients, etc…

Page 16: Soa Business And Technical Overview Presentation (Reed003707)

Agenda

Flexible IT, Better Strategy Designing for Business Processes Developing for Business Solutions Challenges Ahead

Page 17: Soa Business And Technical Overview Presentation (Reed003707)

Designing for Business ProcessesThinking in Services Orientation Business Services Conceptual Shifts Capabilities Analysis Enterprise Services Scenarios

Page 18: Soa Business And Technical Overview Presentation (Reed003707)

Designing Business ProcessesIdentify Business Services

BeginBegin

SuccessSuccess

FailFail

Page 19: Soa Business And Technical Overview Presentation (Reed003707)

Business ServicesSteps in the Larger Business Process Enterprises Need Business-Services

Projects One or More Services to the World Outside Business Process for a specific aspect Encapsulates Some Database Resident Data Implemented with Business-Logic

DataDataSQLSQL

BusinessBusinessServiceService

ServicesServices

Page 20: Soa Business And Technical Overview Presentation (Reed003707)

Composite Business-ServicesProcesses define Solutions A Business-Service May Be Implemented

by Many Business-Services Must Look Like a Single Business-Service

Can’t Tell from the Outside

Business-ServiceBusiness-Service

Biz-SvcBiz-Svc

Biz-SvcBiz-Svc

Biz-SvcBiz-Svc

Biz-SvcBiz-Svc

Biz-SvcBiz-Svc

Biz-SvcBiz-Svc

Biz-SvcBiz-Svc

Communication withCommunication withthe world outsidethe world outside

Page 21: Soa Business And Technical Overview Presentation (Reed003707)

Capabilities AnalysisExternalizing the Capabilities and Data

SQLSQL

AppAppInternalsInternals

Please Do Please Do this on my this on my

behalfbehalf

Please Please provide me provide me some data.some data.

Everyone! Everyone! This data This data changed.changed.OK, I’ll get OK, I’ll get

back to you back to you when it’s when it’s

done.done.

OK, here’s OK, here’s what I’ve what I’ve

got.got.

I completed I completed successfullysuccessfully

Page 22: Soa Business And Technical Overview Presentation (Reed003707)

Four Tenets of SOARules to Design By

Boundaries are explicit Services are autonomous Services share schema and contract,

not class Service compatibility is determined

based on policy

Page 23: Soa Business And Technical Overview Presentation (Reed003707)

Conceptual Shift: DataQuestions to Consider What system is Authoritative for this data?

How does this version over time? Is this data Idempotent?

What external data is needed by which systems? What is the SLA for this data of this data and why?

How often does external data change? What aspects of that change are meaningful? How fresh does this need to be in other systems?

At what level of detail? What relationships exist between data?

What happens when not everything can be changed? What happens when changes fail?

Page 24: Soa Business And Technical Overview Presentation (Reed003707)

Conceptual Shift: CapabilitiesQuestions to Consider

What are the discrete steps that make up this Business Solution?

What are the most important things an application does?

What are the scenarios where other applications might request another app to perform an action?

What are the most reusable capabilities an application provides?

On whose behalf do these actions need to take place?

Why might a request be rejected? What SLA is required for the activity?

Page 25: Soa Business And Technical Overview Presentation (Reed003707)

Business Services ImpactEnables Agility

Solutions Focus Flexible and Composable Applications Ability to rapidly Adapt systems to the

needs of the Business Compose new ways of doing things by

assembling new processes over existing services

Page 26: Soa Business And Technical Overview Presentation (Reed003707)

Enterprise Services Scenarios:Integration Patterns Policy and Business Interest Manager Business Entities and PeopleSoft Policy and Business Entities Publishing Endorsable Events

Page 27: Soa Business And Technical Overview Presentation (Reed003707)

Policy and Business InterestsRequest Response Pattern

BusinessInterest

Manager

A

PolicyA

<Message id=‘<Message id=‘200200’>’>

<Request Contract=‘<Request Contract=‘LocationListLocationList’ Version=‘’ Version=‘2.2’>2.2’>

<Customer Id=‘AllPeril’/><Customer Id=‘AllPeril’/>

</Request></Request>

</Message></Message>

Service Manager

<Message id=‘761’><Message id=‘761’>

<Response To=‘<Response To=‘200200’ Contract=‘’ Contract=‘LocationListLocationList’ Version=‘’ Version=‘2.22.2’>’>

<Customer Id=‘AllPeril’/><Customer Id=‘AllPeril’/>

</Response></Response>

</Message></Message>

<Body><Body>

<LocationList><LocationList>

<Location Id=‘1231’ Name = ‘HQ’ … /><Location Id=‘1231’ Name = ‘HQ’ … />

<Location Id=‘5377’ Name = ‘Div’ … /><Location Id=‘5377’ Name = ‘Div’ … />

<Location Id=‘9621’ Name = ‘Site’ … /><Location Id=‘9621’ Name = ‘Site’ … />

</LocationList></LocationList>

</Body></Body>

Stored Procedures

User Interface

Business Facade

Business Logic

Common Services

Data Storage

Typed Datasets

Page 28: Soa Business And Technical Overview Presentation (Reed003707)

Business Entities and PeopleSoft Publish Subscribe Pattern

PeopleSoft

A

BusinessEntities

A

<Message id=‘279’><Message id=‘279’>

<Notify Contract=‘ContactInfo’ Version=‘<Notify Contract=‘ContactInfo’ Version=‘1.71.7’>’>

<Action Type=‘Update’ Id=‘1990124’ EntityId=‘197811’/><Action Type=‘Update’ Id=‘1990124’ EntityId=‘197811’/>

</Notify></Notify>

<Body><Body>

<ContactInfo Type=‘Original’ Version=‘281’ …. /><ContactInfo Type=‘Original’ Version=‘281’ …. />

<ContactInfo Type=‘New’ Version=‘282’ …. /><ContactInfo Type=‘New’ Version=‘282’ …. />

</Body></Body>

</Message></Message>

OtherOtherServiceService

OtherOtherServiceService

BizTalkBizTalk

<Message id=‘507’><Message id=‘507’>

<Notify Contract=‘ContactInfo’ Version=‘<Notify Contract=‘ContactInfo’ Version=‘1.21.2’>’>

<Action Type=‘Update’ Id=‘1990124’ EntityId=‘197811’/><Action Type=‘Update’ Id=‘1990124’ EntityId=‘197811’/>

</Notify></Notify>

<Body><Body>

<ContactInfo Type=‘Original’ Version=‘281’ …. /><ContactInfo Type=‘Original’ Version=‘281’ …. />

<ContactInfo Type=‘New’ Version=‘282’ …. /><ContactInfo Type=‘New’ Version=‘282’ …. />

</Body></Body>

</Message></Message>

Page 29: Soa Business And Technical Overview Presentation (Reed003707)

OtherOtherServiceService

OtherOtherServiceService

Policy and Business Entities Notification and Conversation Pattern

Policy

ABusinessEntities

A<Message id=‘381’><Message id=‘381’>

<Notify Contract=‘AddressInfo’ Version=‘1.8’><Notify Contract=‘AddressInfo’ Version=‘1.8’>

<Action Type=‘Add’ Id=‘<Action Type=‘Add’ Id=‘171021171021’ EntityId=‘’ EntityId=‘197811197811’/>’/>

</Notify></Notify>

</Message></Message>

<Message id=‘<Message id=‘200200’>’>

<Request Contract=‘AddressInfo’ Version=‘2.2’><Request Contract=‘AddressInfo’ Version=‘2.2’>

<EntityId=‘<EntityId=‘197811197811’/>’/>

<Add Id=‘<Add Id=‘171021171021’/>’/>

</Request></Request>

</Message></Message>

<Message id=‘761’><Message id=‘761’>

<Response To=‘<Response To=‘200200’ Contract=‘AddressInfo’ Version=‘2.2’>’ Contract=‘AddressInfo’ Version=‘2.2’>

<EntityId=‘<EntityId=‘197811197811’/>’/>

<Add Id=‘<Add Id=‘171021171021’/>’/>

</Response></Response>

<Body><Body>

<AddressInfo Id=‘<AddressInfo Id=‘197811197811’ LocationName = ‘HQ’>’ LocationName = ‘HQ’>

<Street Id=‘5377’>201 Jones Road</Street><Street Id=‘5377’>201 Jones Road</Street>

……..

<Country Id=‘<Country Id=‘712712’/>’/>

<AddressInfo/><AddressInfo/>

</Body></Body>

</Message></Message>

<Message id=‘<Message id=‘201201’>’>

<Request Contract=‘CountryInfo’ Version=‘4.5’><Request Contract=‘CountryInfo’ Version=‘4.5’>

<CountryInfo Id=‘<CountryInfo Id=‘712712’/>’/>

</Request></Request>

</Message></Message>

<Message id=‘762’><Message id=‘762’>

<Response To=‘<Response To=‘201201’ Contract=‘CountryInfo’ Version=‘4.5’>’ Contract=‘CountryInfo’ Version=‘4.5’>

<CountryInfo Id=‘<CountryInfo Id=‘712712’/>’/>

</Response></Response>

<Body><Body>

<CountryInfo Id=‘<CountryInfo Id=‘712712’ Name = ‘<Name>’>’ Name = ‘<Name>’>

<GPSInfo Latitude=’48.17’ Longitude=’91.44’ /><GPSInfo Latitude=’48.17’ Longitude=’91.44’ />

<Capital Name=‘<Name> City’ …/><Capital Name=‘<Name> City’ …/>

</CountryInfo></CountryInfo>

</Body></Body>

</Message></Message>

BizTalkBizTalk

Page 30: Soa Business And Technical Overview Presentation (Reed003707)

RATS

Publishing Endorsable Events Database Isolation Pattern

CSS Database

Policy

Se

rvice In

terfa

ce

Stored Procedures

Data Storage

Models

Common Framework

Commands

A

User Interface

Page 31: Soa Business And Technical Overview Presentation (Reed003707)

Agenda

Flexible IT, Better Strategy Designing for Business Processes Developing for Business Solutions Challenges Ahead

Page 32: Soa Business And Technical Overview Presentation (Reed003707)

Developing for Business Solutions CSS Application Architecture 1.0 CSS Application Architecture 2.0

Page 33: Soa Business And Technical Overview Presentation (Reed003707)

CSS Application Architecture 1.0

Separated the layers of an application internally

Designed for potential reuse Façade provides security

Stored Procedures

User Interface

Business Facade

Business Logic

Common Services

Data Storage

Typed Datasets

Dataset changes rippled through the layers

Significant amount of code in stored procedures

Page 34: Soa Business And Technical Overview Presentation (Reed003707)

Issues with Architecture 1.0Appropriate for your Initial Implementations Tight coupling across layers

Results in brittle code that is not tolerant to data changes Security is Developer Dependent No clear enforcement of Business Rules with Data Business processes are not dynamic Database-centric architecture

Significant amount of Code inside the Database Significant amount of SQL-oriented Code in the UI/BL

Bound to a delivery (Web or Windows) Significant amount of Code in the UI

Deployment is a complex operation

Page 35: Soa Business And Technical Overview Presentation (Reed003707)

Design Principles for 2.0Targeted at Where You are Going

Promote Object Oriented Design Patterns Encapsulate Business Data within Rules Focus on Modeling the Domain Isolate dependencies per Layer

Reduce Code Duplication Create class hierarchies with inheritance to share

implementations – one place to fix Design Interfaces for extensibility

Integrate Infrastructure Build in Security, Instrumentation, Logging, etc.

XML-centric architecture Allows for DataSource agnostic approach Adds richness of Xml family (XPath, XSL, etc.)

Design for reuse: Web, Windows, Services Simplifies Packaging and Deployment

Page 36: Soa Business And Technical Overview Presentation (Reed003707)

CSS Application Architecture 2.0

Data Storage

Models

Common Framework

Domain Models

Underlying Domain Model implements the local business processes of an application

Designed for Reuse Designed to be independent of physical storage

User Interface

Web Framework

External Services Interfaces

Services Framework

Models

Page 37: Soa Business And Technical Overview Presentation (Reed003707)

Application Building Blocks

Page 38: Soa Business And Technical Overview Presentation (Reed003707)

Models and Commands CommonFramework abstracts Storage

Data Storage

Models

Commands

MSMQ

XMLXML

Web Services

ICommand

Page 39: Soa Business And Technical Overview Presentation (Reed003707)

Model

ModelCollection

Model

Model

ModelCollection

Model

IBehaviour

Model

ModelCollection

Model

IBehaviour

Model

Model

Domain Domain ModelsModels

Persistence Persistence ModelsModels

Service ModelsService Models

Contract Model

ID

Version

Schema Fields

Contract Model

ID

Version

Schema Fields

UI ModelsUI Models

Domain Driven Design

UI Model

ID

UI Fields

UI Behaviors

UI Model

ID

UI Fields

UI Behaviors

Page 40: Soa Business And Technical Overview Presentation (Reed003707)

Conceptual Shift: DevelopersQuestions to Consider

What Responsibilities does this application have? What Entities do I need to work with? How do I model these things and their

relationships? What Business Process is this application

supporting? Is it a part of a larger Process? What happens when the larger process fails?

Design for the Business Processes Stop designing from the Database Stop designing from the UI

Page 41: Soa Business And Technical Overview Presentation (Reed003707)

Conceptual Shift: BAs, BSLsQuestions to Consider

Why does the Business need this application?

Where are the Business processes evolving? i.e. where might change be inevitable?

How can a Business Process be automated What steps to be taken? What already exists?

Stop recreating Screens from other Systems…

Page 42: Soa Business And Technical Overview Presentation (Reed003707)

Agenda

Flexible IT, Better Strategy Designing for Business Processes Developing for Business Solutions Challenges Ahead

Page 43: Soa Business And Technical Overview Presentation (Reed003707)

Design Artifacts High level to Low Level

Enterprise View Application View Feature View

Page 44: Soa Business And Technical Overview Presentation (Reed003707)

Enterprise ViewOverall Solution

Analyze the impact on the Enterprise What is the organizational impact of… Define the steps of the Solution in an

abstract manner Identify the capabilities expected of

each Service Provider Determine failure paths What are the expected inputs and

outputs in each Business Process Step

Page 45: Soa Business And Technical Overview Presentation (Reed003707)

Enterprise Business ProcessOverall Solution View

BeginBegin

SuccessSuccess

FailFail

Page 46: Soa Business And Technical Overview Presentation (Reed003707)

Application ViewCapabilities Definitions

Design the local business process as series of small abstract steps

What is the responsibility of this application or service?

What features are required to process the inputs into the outputs Work backward from the outputs What abstract objects (responsibilities) are

required to execute this process? How does this fit or not fit with the overall

domain model Focus on abstract types (Interfaces, Abstract

base classes) Identify the relationships and dependencies

within the Domain and within each layer

Page 47: Soa Business And Technical Overview Presentation (Reed003707)

Model

ModelCollection

Model

Model

ModelCollection

Model

IBehaviour

Model

ModelCollection

Model

IBehaviour

Model

Model

Domain Domain ModelsModels

Persistence Persistence ModelsModels

Service ModelsService Models

Contract Model

ID

Version

Schema Fields

Contract Model

ID

Version

Schema Fields

UI ModelsUI Models

Application Level Processes

UI Model

ID

UI Fields

UI Behaviors

UI Model

ID

UI Fields

UI Behaviors

Page 48: Soa Business And Technical Overview Presentation (Reed003707)

Feature ViewLow Level Implementation Details

Low level design of the internals of the steps of a local business process

Design the specifics methods and properties of the objects involved

Detailed definition of the Contracts required to support the services

Design of the concrete classes that support the abstractions What factories are needed? How will a sub-type be defined?

Page 49: Soa Business And Technical Overview Presentation (Reed003707)

Leverage the Artifacts

GEA Model Business Process Models

Stems from the Business Activities Business Component Model High level view Take it to the next level of detail

Page 50: Soa Business And Technical Overview Presentation (Reed003707)

Challenges Ahead

Aspects of Change Adopting an SOA Adopting the Common Framework Change Issues

Page 51: Soa Business And Technical Overview Presentation (Reed003707)

Summary

Evolution of existing Architecture Architectural Solution for integrating

Authoritative Sources Actionable patterns to move the

Automation Plan forward