establishing a service factory
DESCRIPTION
TRANSCRIPT
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
© 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
© 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
© 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
© 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
© 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
© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com
What Is a Service Factory?
7
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 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
© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com
Service Factory Methods & Tooling
20
© 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
© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com
SOA: Domain-Based Service ArchitecturePatent Application Management (partial)
22
© 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
© 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
© 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
© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com
Agile Methods: Scrum
26
Feedback
Customer Require-ments
© 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
© 2012 Everware-CBDI IncV1.0 052012 www.everware-cbdi.com
Service Tooling for CMS/FFE Factory
28
© 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
Specialists in Service Oriented Application Modernization
www.everware-cbdi.com
Thank You.
Questions?
Dave [email protected]