Independent Insight for Service Oriented Practice Techniques Toward a Service Oriented Architecture...

21
Independent Insight for Service Oriented Practice www.cbdiforum.com Techniques Toward a Service Oriented Architecture John Dodd
  • date post

    22-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of Independent Insight for Service Oriented Practice Techniques Toward a Service Oriented Architecture...

Independent Insight for Service Oriented Practice

www.cbdiforum.com

Techniques Toward a Service Oriented Architecture

John Dodd

© 2005 CBDI Forum Limited

Agenda

Techniques for SOA Service Portfolio Planning Rich Service Specification Solution-Driven Service Delivery

Organizing for SOA Teams Process

I’ll assume you know what SOA means Written from perspective of enterprise committed to using SOA to improve its

applications and interactions with partners Not from perspective of organization that plans to sell services

© 2005 CBDI Forum Limited

Service Portfolio Planning

Identifies the set of software services your enterprise needs Defines the policies

Govern how service acquisition and usage proceeds Defines “default” non-functional attributes of services

Quality-of-service Standards to be followed Overridden or extended for given domains, services or

operations

This up-front effort does not deliver any software Typical objective for the Plan:

more flexible software that will support more adaptable business processes and easier integration between applications

Ensures that service acquisition and usage is orderly, in enterprise’s best interests, aligned to business objectives

© 2005 CBDI Forum Limited

Features of Service Portfolio Plan (1)

Does not identify all operations, focus is on services & service scope

operations defined as service provisioning authorized

Operations defined as needed by Solution teams the Plan enables operations to be assigned to services

“Core business services” driven from enduring business concepts (resources, things, entities), not business processes (functions, activity, capability)

The Plan itself is big -- so built incrementally a business domain at a time according the business priorities

© 2005 CBDI Forum Limited

Features of Service Portfolio Plan (2)

Services View

(consuming developers)

Deployment View

(operations)

Implementation View

(service developers)

Organizes services into layers

Three views of Services in Plan Service View Implementation View Deployment View

© 2005 CBDI Forum Limited

Services Organized into Layers

Process Services(optional layer)

Order FulfillmentService

Core Business Services(“backbone” layer)

Underlying Services(if required)

Stock Movements ServiceProductsService

Orders Service

Stock Management Service

Purchasing(from highly generic component)

Order System

Stock ControlApplication

Product DevSystem

Application Layer(UI, may be more)

Utility ServicesCurrencyConversionServiceAddressReformatter

AccountsReceivableAPI(from legacy Accounting System)

Stock Reordering

© 2005 CBDI Forum Limited

Three Views of Planned Services

Deployment View

Service ViewOrders Service

Accounts Receivable APIProducts Service

Implementation View

a: applicationServer a: Mainframe

<<SOAP over JMS>>

EJB Container

Order Fulfillment

Stock Management

Product Management

TP Monitor

Ordering Component

Purchasing Component

Sales And Billing

Accounting Package

Stock

Reordering<<quasiComponent>>

Ordering

Component

Stock

Movements

<<component>>Product

ManagementProducts Service

<<legacySystem>>

Accounting

Package

Accounts

Receivable API

Accounts Payable API

Orders

Service

© 2005 CBDI Forum Limited

Domains

Business Domain : “Major logical partition of an enterprise consisting of a set of well-related business concepts and the business processes which maintain concept instances”

Example:

Business Service Bus: A collection of related services for a given business domain (such as Human Resources, Logistics, CRM, etc) that follows a certain set of conventions and standards relevant to that domain.

Aim to develop a BSB for each business domain

PURCHASING

MANUFACTURING

INVENTORY

DISTRIBUTION

MARKETING

SALES & BILLING

HUMAN RESOURCESFINANCE

FACILITIES

© 2005 CBDI Forum Limited

Business Service Bus Plan and deploy a separate Software Service Portfolio for each domain Includes a “business service bus” of “core business services” for each

domain

Breaks architecture design effort into manageable units – “divide & conquer” Services of domain can share

a semantic model instance data lower-level utility services data storage (perhaps) WS-standards quality-of-service other policies

Inter-domain service dependencies disallowed or minimized, to simply software maintenance

«businessServiceBus» InventoryServices

LocationsManagement

StockTakingService

StockAcceptanceService

StockIssue & Requisition Service

StockMonitoringService

InventoryDesignService

© 2005 CBDI Forum Limited

Rich Service Specifications

Service signatures do not explain enough WSDL is not good at explaining service behaviour

Service Specification Sections Interface Definition (signatures of operations) Behaviour Definition (without pre-empting how implemented) Service Information model (possible service states) Mandatory Message Patterns Properties and Features Quality of Service (variations from Portfolio Plan defaults) Standards Conformance (variations from SOA defaults)

Non-functional

spec.

Functional

spec.

© 2005 CBDI Forum Limited

Service Information Model

Stock Admin Service

allocateStock( )orderStock( )newProduct( )etc

Product

identifier: Number6name: String25totalStock: Number11

*

1

Warehouse

code: Number6name: String25address: Line[4]

1

*

Stock Item

actual: Number9available: Number9allocated: Number9location: String8

1

*holds

1

*

stored as

knowsknows

1. For Product:totalStock=SUM of actual Stock Items

2. For Stock Item:actual = available + allocated

3. For Stock Item- - location cannot be used for two stock Items (different products)(location + associated Warehouse) IS UNIQUE

4. For Stock Item - - same Product can be stored in more than one location of a Warehouse(location + associated Product) NOT UNIQUE

5. For Warehousecode IS UNIQUE

© 2005 CBDI Forum Limited

Pre- and Post-Condition

CONTEXT: StockAdminService :: allocateStock (inProductId, inWarehouseCode, inQuantity, outResult)

DESCRIPTION: Transfers a quantity of stock, held at a specific location in a particular Warehouse, from being “available” to “allocated”. (Does not record which order the stock is allocated to.)

PRE: all inputs supplied andStockItem exists for input product and warehouse

POST: if available stock greater than inQuantity then:decrement available stock by inQuantity and increment allocated stock by inQuantity andoutResult is “OK, stock allocated”

else outResult is “insufficient stock”

PRE: all inputs supplied andStockItem does not exist for input product and warehouse

POST: outResult is “product not held at this warehouse”

© 2005 CBDI Forum Limited

Solution-Driven Delivery of Services

Only acquire the operations you need for underway or imminent projects You can’t acquire the whole portfolio at once, you have to do it a chunk at

a time Why not do it according to current demand? Further ops. added later If other operations come in the service you acquire, that’s OK It is governed by the Plan – service structure, standards, QoS, policies

Other strategies: Services in Advance

Acquire services before Solution Delivery projects initiated Common situation: services already available from supplier of your

installed enterprise application packages Projects speeded up, not waiting for services High up-front cost, may result in unused services

Services By Opportunity Only acquire services (as per plan, in advance) that are fast or low

cost to obtain E.g. external supplier, part of package, can wrap legacy Lower up-front cost, may need more compromises

© 2005 CBDI Forum Limited

Software Solution Projects

Should be driven by Business Process Improvement projects these are non-IT projects focused on designing new business

processes, reengineering business processes, or improving processes (incrementally)

improvements often require IT support e.g. integrating two applications using WS e.g. integrating with partners via web services

BPI projects should be driven by business priorities based on business strategies, targets, goals, etc.

Operations delivered are then based on business priorities not what’s easiest not what IT believes is most important nor what’s most technical fascinating

Business Goals

BPI Projects

Software Solution projects

ServiceDeliverypriorities

© 2005 CBDI Forum Limited

Golden Rules

Keep Service Development and Application Development separate Work done in “twin tracks” Solution developers should not be building/testing acquired

services Service implementers are not a part of Solution teams

Separation helps to ensure: Service operations are built/acquired for sharing – to be used in

multiple solutions Solution developers code to the service specification; they do not

utilize knowledge of how implemented Strong subdivision of labour and responsibility

Services are only accessed through their interfaces calling software codes to the spec, not implementation knowledge implementation can change without impact on consumer consumer and service tester follow same specification

© 2005 CBDI Forum Limited

IT Teams & the project “services” they perform

Application Dev.Service Provisioning

Service Architecture

Service Implementation

Bus. Process Design Service OperationsDesign/Refine S PortfolioApproval Activities Design/Refine E S BusDesign/Refine S SecurityAnalyze Performance

Specify ServiceOrganize Service Prov’gCertify ServiceImprove Service Spec.

Plan for BPIRedesign Bus. ProcessRollout Imp. Bus. Process

Deploy ServicesOperate ServicesMonitor ServicesTune Services

Construct Automation UnitTest Automation UnitFix Automation Units

Bus. Strategy & Arch. IT Strategy & Arch. Systems OperationsInstall OperateMonitorTune

HardwareNetworksMiddlewareApplications

Create IT StrategyDefine IT ArchitectureImplement IT ArchitectureVerify ESB Compatibility

Design Software SolutionConstruct Softw. SolutionFix Solution

Capture Business StrategyDefine Bus. ArchitectureImplement Business Arch.

Strategic TeamsService Consumption TeamsService Provider Teams

Main interactions between teams

© 2005 CBDI Forum Limited

Layered View of Teams: Main Direction of Work Flow

Business Strategy

and Architecture

Business Process

Design

(planning)

Business Process

Design

(improvement)

Application

Development

(soln. design)

Application

Development

(soln.construction)

Systems

Operations

IT Strategy

and Architecture

Service Archi-

tecture (portfolio

and platform)

Service

Provisioning

Service

Implementation

Service

Operations

BUSINESS STRATEGIC

PLAN & ARCHITECT

DESIGN & SPECIFICATION

DESIGN, CODE & TEST

PRODUCTION RUNNING

© 2005 CBDI Forum Limited

Business Process Improvement drives SOA success

RedesignBusiness Process

BUSINESS PROCESS DESIGN APPLICATION DEV. SERVICE PROVISIONING SERVICE IMPLEMENTAT’N

DesignSoftwareSolution

SpecifyService

CertifyService

[Approved Solution Spec]

[Required ServiceDescrip-

tion]Construct

AutomationUnit

[Automation Unit

Spec]

[ApprovedServiceSpec]

TestAutomation

Unit

[externalprovisioning]

[ApprovedServiceSpec]

[AcceptanceTested

Service]

ConstructSoftwareSolution

[CertifiedService]

Rollout ImprovedBusiness Process

[AcceptanceTested

Solution]

[ApprovedProcess Design]

[Justifi-cation forProcessredesign]

[ApprovedProcess Design]

[ImplementedBusiness ProcessImprovement]

© 2005 CBDI Forum Limited

RedesignBusiness Process

BUSINESS PROCESS DESIGN APPLICATION DEV. SERVICE PROVISIONING SERVICE IMPLEMENTAT’N

DesignSoftwareSolution

SpecifyService,OrganizeProvis’g

CertifyService

[Approved Solution Spec]

[Required ServiceDescrip-

tion]Construct

AutomationUnit

[Automation Unit

Spec]

[ApprovedServiceSpec]

TestAutomation

Unit

[externalprovisioning]

[ApprovedServiceSpec]

[AcceptanceTested

Service]

ConstructSoftwareSolution

[CertifiedService]

Rollout ImprovedBusiness Process

[AcceptanceTested

Solution]

[ApprovedProcess Design]

[ApprovedProcess Design]

Imp

lem

en

ted

Bu

sin

ess

Pro

cess

Imp

rovem

en

t]

[selectedprocess]

Plan for BPI

[Portfolio Fragment for Solution]

[Verified Fragment]

BUSINESS STRATEGYAND ARCHITECTURE

IT STRATEGY & ARCH.

DefineIT StrategyDefine

Business Strategy

CreateBusiness

Architecture

Create IT Architecture

Verify ESB Compatibility

SERVICE PLANNING AND ARCHITECTURE

Design/RefineSoftware ServicePortfolio Plan

Design/RefineEnterprise Service Bus Design

ApproveService & AUSpecification

ApprovePortfolio

Fragment

[SPP]

[goals, etc.]

[goals,targets etc.]

[priorityprocesses]

[BPIPlan]

Assess Fitwith Strategy

[goals,targets]

[ESBdesign]

[Technical Infrastructure Design, Policies]

[IT goals, etc.]

[Technical Infrastructure Design, Policies]

[SPP][SPPchanges]

[business models]

[business models]

[SPPchanges][SPP]

[candidate services]

Go

vern

ed b

y S

trat

egy,

Arc

hit

ectu

re &

Po

rtfo

lio

Pla

n[bus. andIT goals]

[ESBdesign]

[spec.changes]

[proposed serviceand AU spec.]

© 2005 CBDI Forum Limited

Summary

Focus was on 3 specific techniques for SOA Where may be different from “establishment” wisdom for SOA

Service Portfolio Plan Defines services, policies, default QoS & standards to follow Proposes set of services, not operations Establishes a framework for service acquisition & management

Business Service Bus per domain this is not the Enterprise Service Bus -- that’s needed too

Rich Service Specifications – for implementers, testers, consumers Service provisioning driven by Solutions being developed SOA & IT teams

Twin track: solutions & services separate A service-based IT organization?

a project is performed by orchestrating other services

© 2005 CBDI Forum Limited

www.cbdiforum.com