establishing a service factory

30
Specialists in Service Oriented Application Modernization www.everware-cbdi.com Establishing a Service Factory Federal SOA Community of Practice 14 th SOA for eGovernment Conference October 2, 2012 Dave Mayo

Upload: davemayo

Post on 29-Nov-2014

1.441 views

Category:

Education


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Establishing a service factory

Specialists in Service Oriented Application Modernization

www.everware-cbdi.com

Establishing a Service Factory

Federal SOA Community of Practice14th SOA for eGovernment ConferenceOctober 2, 2012

Dave Mayo

Page 2: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Topics

� Corporate Profile� Architecture – Engineering Model� What is a Service Factory?� Twin-Track Development� Product Line Engineering� Governance� Service Factory Methods & Tooling

� Service Architecture & Specification� Model Driven Development� Agile Methods

2

Page 3: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com3

Everware-CBDI is a Leader in Applied SOA

Worldwide SOA Reputation� Knowledgebase of SOA Best

Practices – CBDI-SAE™� Keynote Speakers on SOA� SOA Metamodel Submission

to OMG (SoaML)

Leadership in Advisory Groups & Standards Bodies� Industry Advisory Council � Federal SOA Community of Practice � Object Management Group (OMG)

Authors/PublicationsCBDI Journal (130+ Editions)Articles (EA Journal, Microsoft Journal)White Papers (Federal CIO Council, IAC, AFEI)Books (Service Orientation, Information Modeling)

Profile� Small Business� Founded in 1997� Offices in

� Fairfax, Virginia � London, UK

Offerings� Architecture Services� SOA Enablement Services� Application Modernization &

Development Services

Page 4: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Implementable Architecture: Standard Engineering Model

CustomerCustomer

ArchitectureArchitecture

• Balance Demands• Rationalization/Alignment• High Level Structure• High-level Solution Design

EngineeringEngineering

ConstructionConstruction

• Apply Constraints• Detailed Specification

• Build & Assemble• Hand off to QA

• Define & Communicate Needs

• Provide FundingFunctional Responsibilities

Remember: Architect, Invest & Implement?

4

Page 5: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Implementable Architecture: IT Roles

Business/ Mission

Business/ Mission

Enterprise Architect

Enterprise Architect

• Business Capability Requirements

• Analytical Products• IT Innovation

Contract-Based Interfaces

• Solution Portfolio

• Service Portfolio

• Architecture Policies

• Design Guidance

Solution ArchitectSolution Architect

Software EngineerSoftware Engineer

Application DeveloperApplication Developer

• Engineering Design Specification

• Solution Design

• Design Patterns

• Technical Patterns• Domain Knowledge

Service ArchitectService

Architect

• Service Specification

• Service Portfolio

Each level guides and constrains the next level.

Business Model (CIM)

Solution Model (PIM)

Platform Model (PSM)

5

Page 6: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Implementable Architecture: IT Roles

Business/ Mission

Business/ Mission

Enterprise Architect

Enterprise Architect

• Business Capability Requirements

• Analytical Products• IT Innovation

Contract-Based Interfaces

• Solution Portfolio

• Service Portfolio

• Architecture Policies

• Design Guidance

Solution ArchitectSolution Architect

Solution EngineerSolution Engineer

Solution Assembler

Solution Assembler

• Engineering Design Specification

• Solution Design

• Design Patterns

Service ArchitectService

Architect • Service Specification

• Service Portfolio

Each level guides and constrains the next level.

Service Developer

Service Developer

• Service

6

Page 7: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

What Is a Service Factory?

7

Page 8: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Factory: What is the Problem to Solve?

8

� IT Solution Delivery Issues� Quality� Cycle time� Risk

� Inconsistency of approach� Across teams (skills)� Semantics� Delivery technology� Methods

� Lack of reuse of implementation and process assets� Architectural mismatch� Ad hoc / program focused reuse

� Solutions Development projects do not have budget, charter or business scope to deliver shared service s

Page 9: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Factory: Concepts & Drivers

9

� Purpose� Execute repeatable process to produce shared

services in efficient manner

� Specialization of Software Factory� Manufacturing analogy� Assembly from components� Automation of standardized, repeatable processes� Mass customization� Produces families of products

� Factory Components� Skilled workers with diverse roles� Automated tools for design, construction and

coordination� Engineered processes, techniques and materials

Page 10: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Factory

� Systematic approach to reuse� Implementation Assets – tools, design patterns, frameworks� Process assets – test cases, harnesses, design methods� Production assets – software artifacts providing ROI through reuse

� Highly automated service software development� Building families of similar software service products� Assembling self describing service components� Developing DSL and tools using language definition, code

generation, tool development technologies – massive reduction in handwritten code

� Massive scalability � Larger projects� Geographical, Sector distribution� Extended product life cycles without

loss of agility10

Page 11: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Factory Fundamentals

� Frameworks � Bootstrap implementations of services � Based on common architectural styles

� Language based tools � Support development of services� Adapting, configuring and assembling framework based components

� Using tools to engage customers� Respond to changes in requirements rapidly � Building software services incrementally

� Capturing design decisions in a form that directly produces executables

� Brings all skillsets, disciplines, tools together i n a single organization

� Centralized funding11

Page 12: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

SDLC

Solution Provisioning: Twin Track Process

SDLCSDLCApplication Based Business

DemandSolutions

Current: Build to Order

Future: Assemble to Order

Solution AssemblySolution Assembly

ServiceProvisioning

ServiceProvisioning

ServiceInventoryService

Inventory

CapabilityBased

BusinessDemand

Architectureand

Portfolio

Solutions

Service Factory

12

Page 13: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Factory Supports the “Provide” Swim Lane of the CBDI-SAE™ Process

SolutionAssembly/

Implementation

ServiceImplementation

Legacy to ServiceReengineering

SolutionProvisioning

ServiceProvisioning

Legacy Application

Reengineering

Consume

Provide

Service Portfolio Plan(Service Architecture,Service requirements)

Solution Architecture

Service (implemented)

Service Implementation Requirement

Solution Component

Solution Component Requirement

(Note: only showing Application Modernization context)

Service Implementation Component

Application Modernization Plan

KDM Packages

Application Modernization Plan

KDM Packages

13

Page 14: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Factory: Context

14

ServiceFactory

ServiceRegistry / Repository

Solution Assembly TeamsLegacy

Portfolio Plan

ServicePortfolio Plan

Solution Portfolio Plan

Business Capability Priorities

Reference Architecture

Service Specification / Contract

COTS / GOTS Components

Page 15: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Delivery

Service Factory: Concepts & Drivers

15

Reusable, Configurable

Assets

Reference Framework

Software Factory Schema

Product Line Development

Product Line or Family Analysis

Product Line or Family Design

Product Line or Family

Implementation

Service Specification

Customized Tools

Service Implementation

Page 16: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Software Product Line Principles

16

� A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.

-- Software Engineering Institute

� Strategic & systematic reuse� Goal is to manage the product

line, rather than products individually

� Configuration management becomes critical

� Commonality and Variability

Page 17: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Software Product Lines: Commonality & Variation within a Product Family

17

� Commonality� Implement common service behavior patterns as

reusable components� Raise level of abstraction of reuse

� Architect for Variability� Deliver policy driven service architecture� Specialize family reference architecture to separate the

aspects of the service that change at different rates

� Prediction� Deliver generalized service components for family that

are designed to be configured to create variants

� Exploit the Predicted Changes� Standard infrastructure� Platform for service reuse – SDK, SLA plus related

processes� Upgradeable designs and components

Page 18: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Pick Exterior Colour

Product Line Engineering Enables Mass Customization

� Employ base products designed to be customised for individual customer / process requirements

� Engineer for faster delivery of finished product

� Enable concurrent delivery for multiple customers

� Maintains integrity of base product

� Uses range of assembly techniques to customise

Standard GT Spec Label

Base Product

????

Pick Interior Colour

????

Pick Wheel Style

????

Base Product

Finished Product

18

Page 19: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

SOA Governance

19

� Architected Services by Domain� Use of Reference Architectures� Use of Canonical Data Models

(MDM)� Use of Standard Technology

Stacks� SDLC Checkpoints for Services� Funding Mechanisms

� Shared Services Don’t Happen by Accident� Policies to Mandate Sharing & Reuse

CBDI-SAE™ Governance Framework

Page 20: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Factory Methods & Tooling

20

Page 21: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Oriented Application Modernization (SOAM) Provides Methods & Tools for the Service Factory

21

• Maximum leverage of legacy assets

• Reduced risk• Orderly

retirement of legacy apps

• Rapid development

• User feedback• Continuous

testing

• Rigorous specification

• Coordination• Automated

patterns

• Modularization• Reuse• Rapid

assembly

Service Oriented

Arch

Model Driven Dev

Portfolio Trans Eng

Agile Methods

Model-Driven Development

Agile Methods

Service Oriented

Architecture

Page 22: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

SOA: Domain-Based Service ArchitecturePatent Application Management (partial)

22

Page 23: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com23

Model-Driven Development (MDD) Provides Accelerators

Software delivery approach where specification models and other abstract artifacts are created to describe the structure and behavior of a system or module. Models are either executed directly or transformed into implementation code or environment control.

StartEvent1 Meets standards for enlistment, appoi ntment or inducti on?

enli st wi th M EPS?

appl icant not qual if ied for enlistment/accession

appl icant not enl isted wi th MEPS

shipping requested?

enl istee

quali fi ed not enlisted

shi pper

«BusinessProcess»1 appl icant qualification

«BusinessProcess»1 appl icant qualification

Appl icant chooses notto enl ist

«BusinessProcess»2 enlistment

«BusinessProcess»2 enlistment

Appl icant chooses notto enl ist

«BusinessProce.. .3 shipping

«BusinessProce.. .3 shipping

no

yes

no

yes

no, waiver granted

yes

Application & Service Models

Business Process Models

Metadata Models

Message Mgt

«Business T ype»Region

«Business T ype»Facili ty

+ name: string

«Business T ype»Armed Serv ice

«Business T ype»Reception/Training

Center

«Business T ype»Duty Station

«Business Type»Party

+ name

«Business Type»Role

«Busi ness Type»Organization

«Busi ness Type»Person

+ gender: Gender+ dob: date+ ssn: stri ng+ uniqueIdentif ier+ phone numbers+ f irstName: string+ m iddl eNam e: st ring+ l astName: string+ m aritalStatus: MaritalStatus+ prior mi litary service+ privileges+ preferences+ raci al Category: RacialCategory+ ethnicCategory: Ethni cCategory+ dependents: int+ religiousPreference: string+ educat ion: Education

«Business T ype»Location

+ street: st ri ng+ city: st ring+ county: st ring+ zipCode: st ring+ name

Parties and Facilities

«enumerat ion»Gender

male female other

«enumeration»Mari talStatus

married si ngle divorced

«enumerati on»RacialCategory

americanIndi anOrAlaskaNat ive asian blackOrAfricanAmerican nat iveHawai ianOrOtherPaci ficIslander whi te decl ineT oRespond

«enumeration»EthnicCategory

decl ineT oRespond hispani cOrLatino nonHispani cOrLatino

«Business T ype»ForeignLanguageSkill

+ language: st ring+ fi rst : boolean

*

residesat

*

1plays

*

incl udes

1

have

*

*i s locatedat

1

*

bel ongs to

1

*

+placeOfBi rth

1

1

hasLanguage

*

• Routing• Mediation• Translation

•Source code•Executables•Test Harness•Documentation

Workflow /OrchestrationControl

Business RulesLogic

Virtualized Data Access

Infrastructure /ESB Configuration

UML BPMN

BPEL

Java, C#, XSD,WSDL

UML, SBVR

DDL,XBRL, OCL

UML,OWL/RDF

DDL,SQL,SPARQL

Business Rule Models

Page 24: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Why Model-Driven?

24

Abstraction Gap

Requirements

Executables

Gap

Incr

easi

ng A

bstr

actio

n

� Productivity� Increase output (eg, function points)� Reduce time & cost of development

� Coordination� Across multiple (parallel) development

teams� Replicate modifications across modules� Rigorous specifications

� Application of Patterns� Encapsulate knowledge as reusable

assets� Automate the application of patterns

� Traceability & Reconstruction� Easily identify impacted components when

requirements change� Document & preserve design decisions

Problem Space

Solution Space

Page 25: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

MDD:Model Transformation and Code Generation

25

Model Design UML Model

Validation Model Parser

CartridgesXML

Schema Cartridge

Java Cartridge

SOA-P Cartridge

XML DB Cartridge

REST CXF Cartridge

Backbone.js Cartridge

Code .java .wsdl .xsd .xqy .java .js

Tran

sfor

mat

ion

Eng

ine

Page 26: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Agile Methods: Scrum

26

Feedback

Customer Require-ments

Page 27: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

MDD for Agile life cycle

27

Knowledge Discovery

UMLModels

Business Improvement

Test, Configuration and Deployment

Iteration and redeployment

User Stories, Use Cases

Code and Schema Generation

Cartridge Development

Reference Model

Enterprise and Solution Architecture

Code generation enables rapid and frequent iterationand evolution with integrity without the cost/ time overhead

Page 28: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Tooling for CMS/FFE Factory

28

Page 29: Establishing a service factory

© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com

Service Factory: Summary of Results

29

� Implementation of services based on architecture� Product Line approach ensures consistency� Facilitates Twin-Track provisioning� Practical implementation of service policies

(governance)� Semantics� Technology� Reuse

� Automates & accelerates provisioning process� Enables enterprise scale production

Page 30: Establishing a service factory

Specialists in Service Oriented Application Modernization

www.everware-cbdi.com

Thank You.

Questions?

Dave [email protected]