Automating Application Development For Legacy IT Systems With SOA & MDA
Automating Application Development For Legacy IT Systems With SOA & MDA
Automating Application Development For Legacy IT Systems With SOA & MDA
Success in 8 IT projects
Treasury Products, Credit, Payments, and Securities.
Project size: 10-30 team members.
Achievement
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 modelling
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
Traditional Modular Architecture
Strong coupling of
modules with no central
control of business logic.
Difficult to test individual Service Interface
modules. A
Does not allow plug and
play of modules.
Difficult to enhance and B C
maintain.
Silo or monolithic D E F G H
approach to solving
business requirements.
Component Based Service
Oriented Architecture
Mainframe
Adaptor
Existing Program
Service Process
Controller
Adaptor
Existing Program
XML
Service Mediator
Service Component
Context Container
(IDOM)
Service Component
Framework
XML Handling Facilities in COBOL, PL1, C++, Java
XML parser for transformation of XML messages into integrated document object
model IDOM.
Marshalling and Unmarshalling Data Object structure to and from XML tree
structure using meta-information from Service Data Object Descriptors (SDOD).
XPath support.
Service Mediator
Control transaction.
Handle service messages.
Set up the context container.
Resolve and instantiate service process controller.
Context Container (IDOM)
Contains service context in a document style tree structure in an Integration
Document Object Model.
Provides API to insert and extract data from the service context as well as
navigation of the context tree.
Service Process Controller
A finite state machine that performs the centralized process control based on
Service Process Control Descriptor (SPCD) with state, event and transition.
Message Interface Modelling and
Generation
Message Interface Modelling (MIM) and SDOD generation based
on class diagrams
Data Structure
of Existing
Program (e.g.
COBOL Copy
Book)
Optional
Customer Address
*
Account
no : txt32
type : txt32
balance : amount
infoText : txt256
Bank Account
Custody Account FX Account
interestRate : n3
1
1 1
Movement
transId : txt32
mDate : date
type : txt32
mAmount : amount
infoText : txt256
Service Process Control Descriptor
Design and Generation
SPCD design and generation from
Customer Asset View Request
state model.
«Process State »
Customer Info Processing
Service
Get Customer Info
«Process State »
Account Info Processing
Service
Get Customer Account Info
Custody Account Info Retrieved Account Info Retrieved FX Account Info Retrieved
LINKAGE SECTION .
Module Pattern *+---+---+---+---+---+---+---------- +---------------------------- *
01 CustomerInfo .
COPY CUSTINFO .
01 PC-Data.
Error Sequence Frame COPY FWPC 0000.
LogicalName="Customer ID"
«Procedure» Reference=CustomerID «Code Pattern»
setLogicalRef SetLogicalRef
Test Automation (1)
Test data has XML format and structure is generated from class
model.
Direct testing for business services with XML messages.
Test service components or any existing applications with test
modules generation.
*
«use»
1 Test Case Model
«use»
1 1
* generates
Test Module
generates * Test XML
mapXMLToDataStructure ()
callApplModule ()
renderOutputXMLFromDataStructure ()
Test Automation (2)
Use of SOA for testing.
Case Tool Host System
mapXMLToDataStructure ()
callApplModule ()
renderOutputXMLFromDataStructure ()
1
calls
1
Application Module
Trade Sequence Test Case VBS Pattern
Variable-Name=aFiles
«Code Segment» Variable-Value="""" & Directory & "TR.xml", """" & Directory & "TB.XML", """" & Directory
«Code Pattern»& "TC.xml"
Define_Files «Use Pattern» Define-Variables
Variable-Name=abacus_id
Modelling test process using «Code Segment»
Update_Abacus_Id
With-Value=+1 «Code Pattern»
Calculate-Value
«Code Segment»
User-Name=User-Name
File-Name=fileName
Output=testResult «Code Pattern»
Do_Test «Use Pattern» Execute-Test-From-File
Stream=testResult
XPath="//Status@Result"
«Code Segment» Return=status «Code Pattern»
Get_Status «Use Pattern» Get-XML-Value-From-Stream
«Action Module» «Code Segment» Entry-Value="File Name: ", fileName, " Status: ", status} «Code Pattern»
Test-Case-One «Action Module»
Log_Status «Use Pattern» Add-Log-Entry
Yeung Test Case One:Test-Case-One::Test-Case-One
User-Name User-Name = yeung
Directory Directory = C:\TestData\Yeung
Library-Directory = S:\Test Automation Demo\Library\ Library-Directory = S:\Test Automation Demo\Library\
If
«Action Module Constructor» Test-Case-One ()
[status = 'Exception']
File-Name="exception.xml"
«Code Segment» Value=output «Code Pattern»
Write_Output «Use Pattern» Write-String-To-File
File-Name="exception.xml"
«Code Segment» Application-Name="notepad" «Code Pattern»
Test Script Display_Output «Use Pattern» Display-File-In-Application
«Code Segment»
Exit_For
Joint