Top Banner
Montages Partner Meeting - Zurich – Nov 4-5, 2006 Modernize Legacy IT System with SOA and MDA Chung Yeung Pang [email protected]
29
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Download Presentation

Montages Partner Meeting - Zurich – Nov 4-5, 2006

Modernize Legacy IT Systemwith SOA and MDA

Chung Yeung [email protected]

Page 2: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 2

Relation to MAMA

MAMA Service Methodology

MA

MA

Ser

vice

Met

hodo

logy

MA

MA

Service M

ethodology

MAMA Service Methodology

Model DrivenConsulting

Model DrivenAnalysis

Model DrivenEngineering

TransitionConsulting

RequirementsConsulting

ChangeConsulting

Fast Prototyping

ModellingArchitecture

QualityAnalysis

ProcessAnalysis

BusinessAnalysis

FrameworkEngineering

Page 3: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 3

Situation in Software Development

• Mainframes are still alive and survive y2k.

• Unmanageable & undocumented code.

• Modeling gains its importance through the use of MDA and SOA best practice.

• Shortage of good IT expert for mainframe.

• Most mission critical applications have been written in COBOL.– The dependency on the interfaces, performance,

transaction scopes prohibits the change and mixing of other programming languages.

Page 4: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 4

Facts

• IBM reported the usage of zSeries mainframes grew 28% year-to-year in 2005.

• Forrester Research publishes findings:– Insurance companies stay with mainframe– “A global bank shed one mainframe for another to

consolidate” (September 2006, Phil Murphy in Forrester Best Practices)

• The COBOL Center publishes:– Investment in COBOL is over $1.5 Trillion.– Number of transaction in COBOL > hits on the

Internet.

Page 5: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 5

What Do We Have?

• Over 6 years of experience in mega project with budget over 1.0 billion Euro in a Swiss bank.

• Success stories from 6 IT projects from the Strategic Solution.– Treasury Products, Credit, Payments, and Securities.

– Project size: 10-30 team members.

Page 6: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 6

What Did We Experience?

• Turned failure projects to success.– From

• Undocumented systems• Ad-hoc software development style• Low productivity• Error prone• Inflexible for code adaptation to standards• Low/no reusability• Require experienced programmers for the development

– To• Documented systems with modeling• Architect & Analyst driven development• High productivity• Minimum error• Flexible code adaptation to standards• High reusability• Automation through the use of models and effectively reduce the

number of experienced programmers for the development

Page 7: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 7

What Do We Offer?

• Modernization of COBOL development.

• Integration to modern systems via SOA framework.

• Establishment of software factories.

Page 8: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 8

Modern? How?

• UML Modeling

• Code generation

• Maximize reuse

• Unified Process best practices

ServiceMediator

Initialization

«Paragraph»

Read-Input-File

«Paragraph»

Parse-Input

«Paragraph»

Map-SOAService-Record

«Paragraph»

Process-Service

«Code Segment»

Write-Output-File

«Paragraph»

Set-SOA-Tree

«Paragraph»

Render-Output

«Paragraph»

Initialization

«Paragraph»

Read-Input-File

«Paragraph»

Parse-Input

«Paragraph»

Map-SOAService-Record

«Paragraph»

Process-Service

«Code Segment»

Write-Output-File

«Paragraph»

Set-SOA-Tree

«Paragraph»

Render-Output

«Paragraph»

Pattern

Add-Struct-To-Context

«Code Pattern»

Do-Process-Flow

«Code Pattern»

Render-Context-Tree

«Code Pattern»

Write-File

«Code Pattern»

Add-Logical-Ref

«Code Pattern»

Parse-XML

«Code Pattern»

Read-File

«Code Pattern»

Add-Struct-To-Context

«Code Pattern»

Do-Process-Flow

«Code Pattern»

Render-Context-Tree

«Code Pattern»

Write-File

«Code Pattern»

Add-Logical-Ref

«Code Pattern»

Parse-XML

«Code Pattern»

Read-File

«Code Pattern»

FD=F-XML-InpFD-Buf=V-InpData-Buf=W-XML

Tree=SOA-TreeXML-String-Ref=ADDRESS OF W-XMLXML-String-Len=W-Len ...

Record-Struct=SOAServiceModule-Name='DEMOM000'Context-Name='SOAService'Tree=SOA-Tree

Process-Flow=Module-Name

Context-Name='Output'

FD=F-XML-OutFD-Buf=V-OutData-Buf=W-XMLData-Len=SOA-Len

Logical-Name='Input-Tree'Record-Ref=SOA-Tree

«Section»

Resolve-Process-Flow

*+---+---+---+---+---+---+----------+----------------------------* LINKAGE SECTION. *+---+---+---+---+---+---+----------+----------------------------* 01 PC-Data. COPY FWPC0000. *----------------------------------------------------------------* PROCEDURE DIVISION USING PC-Data . *+---+---+---+---+---+---+----------+----------------------------* * Mainprocessing * MAIN SECTION. PERFORM Initialization PERFORM Read-Input-File PERFORM Resolve-Process-Flow PERFORM Set-SOA-Tree MOVE Module-Name TO SOA-Module-Name CALL SOA-Module-Name USING PC-Data PERFORM Render-Output PERFORM Write-Output-File .

Page 9: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 9

Model and Generate Cobol Modules based on Class and Activity Diagrams

• Section• Paragraph• Programming logics

– Statement– Decision– Iteration

• Code templates & patterns

• Data structure definition

ActionChain

Map-Input

«Paragraph»

Display-Input

«Code Segment»

EVALUATE Type

Set-Company

«Code Segment»

Set-Private

«Code Segment»

Err

«Code Segment»

Init

«Paragraph»

Joint

Get-Input-Tree

«Paragraph»

Map-Input

«Paragraph»

Display-Input

«Code Segment»

EVALUATE Type

Set-Company

«Code Segment»

Set-Private

«Code Segment»

Err

«Code Segment»

Init

«Paragraph»

Joint

Get-Input-Tree

«Paragraph»

Pattern

Add-Struct-To-Context

«Code Pattern»

Print-Tree

«Code Pattern»

Init-Action-Chain

«Code Pattern»

Set-Event

«Code Pattern»

Get-Logical-Ref

«Code Pattern»

Add-Struct-To-Context

«Code Pattern»

Print-Tree

«Code Pattern»

Init-Action-Chain

«Code Pattern»

Set-Event

«Code Pattern»

Get-Logical-Ref

«Code Pattern»

Record-Struct=Input-DataModule-Name='DEMOM001'Context-Name='Input'Tree=SOA-Tree

Tree=SOA-Tree

['Company']

['Private']

[OTHER]

event='Customer is Company'

event='Customer is Private'

Logical-Name='Input-Tree'Record-Ref=SOA-Tree

Working Storage

«SOAF Start Class»Demo::Data Structure List::SOA Service XML::SOAService

«SOAF Start Class»ServiceMediator-Var

W-XML : an5000

«SOAF Start Class»Demo::Data Structure List::SOA Service XML::SOAService

«SOAF Start Class»ServiceMediator-Var

W-XML : an5000

Linkage

Local Storage File

«SOAF Start Class»«SOAF File»

{File Handle Name = F-Xml-Input}{File Name = Input.xml}

{File Organization = LINE SEQUENTIAL}V-Input

F-In-Xml : an5000

«SOAF Start Class»«SOAF File»

{File Handle Name = F-Xml-Output}{File Name = Output.xml}

{File Organization = LINE SEQUENTIAL}V-Output

F-Out-Xml : an5000

«SOAF Start Class»«SOAF File»

{File Handle Name = F-Xml-Input}{File Name = Input.xml}

{File Organization = LINE SEQUENTIAL}V-Input

F-In-Xml : an5000

«SOAF Start Class»«SOAF File»

{File Handle Name = F-Xml-Output}{File Name = Output.xml}

{File Organization = LINE SEQUENTIAL}V-Output

F-Out-Xml : an5000

Parameter

«SOAF Start Class»Param-List

Parameter-1 : Personal Title

«SOAF Start Class»Param-List

Parameter-1 : Personal Title

Page 10: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 10

Software Architecture

• Software system is not built from a set of independent program modules.

• It needs an architecture to lay out the fundamental organization of the system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.

Page 11: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 11

Traditional Modular Architecture

• Strong coupling of modules with no central control of business logic.

• Difficult to test individual modules.

• Does not allow plug and play of modules.

• Difficult to enhance and maintain.

A

B C

D E F G H

Service Interface

Page 12: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 12

Example of Enterprise IT System Topology

Mainframe Data

Message Queue

Client Servers

External Systems

Web Server

Workstations

Mainframe

ExternalSystems

Web Servers

ApplicationServers

Page 13: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 13

Component Based Service Oriented Architecture

Service Mediator

Sec

urity

Con

trol

ler

Context Container

Service Controller

Business Component 1

Business Component 2

Business Component 3

Service Interfaces in XML

Page 14: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 14

XML-Cobol Transformation

• COBOL XML parser– Parse the incoming XML message in COBOL.

• XML to COBOL mapping– Map the XML data into COBOL data structure based on meta-

information (mapping schema).• COBOL to XML rendering

– Render the XML data from COBOL data structure based on meta-information (mapping schema).

• Meta-information (mapping schema) generator– Generate meta-information from UML class diagrams.

• COBOL copybook generator– Generate the COBOL copybook from UML class diagram.

• Support XPath for XML navigation.

Service MediatorS

ecu

rity

Con

tro

ller

Context Container

Service Controller

Business Component 1

Business Component 2

Business Component 3

Page 15: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 15

Service Mediator

• Service mediator COBOL module– Control transaction, retrieve XML message,

set up the context container, resolve and instantiate the requested service and return XML message.

– This module must be tailored to the customer's platform and error handling mechanism.

Service MediatorS

ecu

rity

Con

tro

ller

Context Container

Service Controller

Business Component 1

Business Component 2

Business Component 3

Page 16: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 16

Service Controller

• Finite state machine COBOL module– Centralized controlling of the process of the

business service based on process description with state, event and transition.

• Process flow– Generation of the process flow description of

the business service from UML activity diagram.

Service MediatorS

ecu

rity

Con

tro

ller

Context Container

Service Controller

Business Component 1

Business Component 2

Business Component 3

Page 17: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 17

Context Container

• Context tree COBOL structure– Context tree has a data structure of a tree form.– Each node within the tree has a node name.– It can contain a sub-tree, a value, or a complete

COBOL record structure with an associated meta-information.

• Context tree API COBOL modules– A set of COBOL modules is available to create,

remove and edit tree nodes as well as complete navigation (stepwise or using xpath) in a context tree.

Service MediatorS

ecu

rity

Con

tro

ller

Context Container

Service Controller

Business Component 1

Business Component 2

Business Component 3

Page 18: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 18

Business Component

• COBOL code generator– COBOL modules for business components can be

modeled through class and activity diagrams and COBOL code are generated from these diagrams.

• Templates and patterns– a set of standard templates and patterns are provided

for the COBOL code generator.– These templates and patterns can be tailored and

extended to the specific requirements of the projects.– Standard patterns are provided for the usages of the

framework such as the API for context tree.

Service MediatorS

ecu

rity

Con

tro

ller

Context Container

Service Controller

Business Component 1

Business Component 2

Business Component 3

Page 19: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 19

Development Lifecycle

Requirement Statement

Use Case Model Sequence Diagram

LogicalActivity Model

Process Flow

Business DomainModel

Data StructureAction Module

Interface Definition

COBOL Code COBOL Code XML/DTD/XSDData Structure

Mapping

Documentation

Implementation

COBOLData Structure

COBOL Code

Workflow Model

Page 20: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 20

Typical Business Case

time

A customer comes to the Bank

The customer inquiries a

product

The client advisor calculate the product price

The customer takes a look at the product specification

& price

The customer sign the deal to purchase the

product

No buy

1 2 3 4 5

Page 21: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 21

Interface Definition

• Class diagram with– Service definition

– Input parameters

– Output parameters «SOAF Start Class»SOAService

«SOAF Class»Process_Flow

«SOAF Attribute» Name : Process Flow Name

«SOAF Attribute» Module_Name : Module Name

«SOAF Start Class»Input

«SOAF Class»Customer

«SOAF Attribute» Customer Id : Customer Id

«SOAF Attribute» Type : Customer Type

Output

«SOAF Class»Customer

«SOAF Attribute» Customer Id : Customer Id

«SOAF Attribute» Type : Customer Type

«SOAF Start Class»Corporate

«SOAF Attribute» Company Name : Name

«SOAF Start Class»Private

«SOAF Start Class»Process_Result

Process_Result_Info : Process_Result_Info

1

1

1

1

1

1

*

1

1

1

1

1

XML/DTD/XSD

Data StructureMapping

COBOLData Structure (Copy book)

Page 22: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 22

Data Structure

• Standard UML class diagram with stereotype

• Structure and composition

«SOAF Class»Customer

«SOAF Attribute» Customer Id : Customer Id

«SOAF Attribute» Type : Customer Type

«SOAF Class»Address

«SOAF Attribute» Address : Address

«SOAF Attribute» City : City

«SOAF Attribute» Country : Country

«SOAF Start Class»Private

«SOAF Start Class»Corporate

«SOAF Attribute» Company Name : Name

«SOAF Class»Personal_Data

«SOAF Attribute» Title : Personal Title

«SOAF Attribute» First Name : Name

«SOAF Attribute» Last Name : Name

11

1

1

1

1

Contact Person

Page 23: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 23

Simple Process

CalculateDiscount

Get Price

ValidateDeal Input

• All or none

• Single commit

Page 24: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 24

Process Over Time

Get CustomerProfile

Initialize Deal

Validate Deal

Open Deal

CalculateDiscount

Get Price

ValidateDeal Input

time

• May continue from last consistent point

• Multi commits

Page 25: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 25

Process Flow

• Based on Activity Diagram

• It describes:– Process

– Event/Action

• Compositional plug and play of modules

Process

Resolve Input

«Action Module»

Module NameDEMOPF01

Process Corporate Customer Data

«Action Module»

Module NameDEMOPF02

Process Private Customer Data

«Action Module»

Module NameDEMOPF03

Generate Output

«Action Module»

Module NameDEMOPF04

Resolve Input

«Action Module»

Module NameDEMOPF01

Process Corporate Customer Data

«Action Module»

Module NameDEMOPF02

Process Private Customer Data

«Action Module»

Module NameDEMOPF03

Generate Output

«Action Module»

Module NameDEMOPF04

Init

Customer is Company Customer is Private

Is OK Is OK

Is OK

COBOL Code

Page 26: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 26

Business Workflow

• Service orchestration

• Modelling of Workflow using State Diagram

COBOL Code

Deal_Initialization

Deal_In_Process Deal_Cancellation

Deal_Established

Initial

new_deal/ init_deal

process_deal/enter_dealcancel_deal/cancel_init

cancel_deal/cancel_deal

es tablish_deal/accept_deal

m odify_deal/edit_deal

Page 27: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 27

Benefits

• Best practices.• Well documented system.• Plug & play SOA.• Simplify testing and integration.• Maximize reuse.• Scalable development.• Reduce development &

maintenance cost.• Traceable from requirement to the

code.

Page 28: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 28

Demo

• Model Definition

• Code Generation

Page 29: Download Presentation

Copyright © 2006 – Chung Yeung Pang. All Rights Reserved Worldwide Slide 29

Links

• http://www.infogoal.com/cbd/

• http://www.forrester.com