Upload
lesley-fitzgerald
View
212
Download
0
Embed Size (px)
Citation preview
1
A Model-Driven Approach For Information System
Migration
Raymonde Le Delliou1, Nicolas Ploquin2, Mariano Belaunde3, Reda Bendraou4, Louis Féraud5
1 Electricité de France, 2 SOFT-MAINT, 3 France Télécom, 4 LIP6, 5 IRIT
1 [email protected], 2 [email protected], 3 [email protected], 4 [email protected], 5 [email protected]
2
Outline
• The TRAMs project (2002-2003)
• RM-ODP Standard as an Intermediate Metamodel (IMM)
• The COBOL to JAVA Demonstrator
• Coupling RM-ODP and Action Semantics standards
• Conclusion and further works
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
3
Aims
• Define a methodology
• Provide an open and modular migration framework
In order to– Insure IS migrations in a cost effective manner – Experiment metamodels and model transformation
techniques
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
EDFElectricitéde France
EDFElectricitéde France
4
TRAMs: a methodology and a Framework
• The preparing migration phase– Identify the migration nature (business
or technologic)– Identify the Metamodels to be used– Model the migration process (eg. in
SPEM)– Specify the transformation components
• The execution phase
– Monitored by a management component– Insured by several tools and
components– Includes the execution of manual
actions/interactions
M M
•Process•Pattern
ComponentsLibrary
Preparing Migration
meta-modelM M
Expertise
M M
•Source
•Target
•IMM
Migration development
Transformation tools
I.S. VnBusiness,
data,software
+ Changes
I.S. Vn+1Business,
data,software
Framework Management Component
TRAMsFramework
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
5
The TRAMs generic migration-process
In Conformity
Metamodel (A)
IntermediateMetamodel
based onRM-ODP
Metamodel (B)
Model (A)
Model (A)
Source (A) Source (A) Target (B)Target (B)
IMIM Model (B)
Model (B)
Transformation rules
IMM->(B)
Transformation rules
IMM->(B)
Transformation rules
(A) -> IMM
Transformation rules
(A) -> IMM
ReverseModeling
In Conformity In Conformity
Generation
Transformation engine Transformation engine
I.S. improvement/changes
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
6
Why an Intermediate Metamodel?
• To decrease significantly the number of model transformers to be developed
• To decrease time and cost for further migrations of the Information System
1 12 23 3. .. .n n
IMM
1 12 23 3. .. .n n
Point to point Migration Migration using an Intermediate Metamodel
For n formalisms n(n-1) set of transformation rules
For n formalisms Only 2nset of transformation rules
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
7
IMM Specification : RM-ODP standard• RM-ODP (Reference Model Open Distributed Processing) as an
Intermediate Metamodel
• Why RM-ODP?
- Generic, stable and rigorous concepts
- Concern separation based System Specification: the Viewpoints (Enterprise, Information, Computational, Engineering et Technology)
- Used in several domains.
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
8
The COBOL to Java Demonstrator• Migration of a sample of an insurance company application • Focusing on the user interface with limited business
features• Choice of RM-ODP Computational Viewpoint as an
Intermediate Model
In Conformity
Metamodel COBOL
IntermediateMetamodel
(Computational VP)
Metamodel JAVA
Model COBOLModel
COBOL
Source COBOL Source
COBOL Target JAVATarget JAVA
IMIM Model JAVAModel JAVA
Transformation rules Computational (IMM)->(B)
Transformation rules Computational (IMM)->(B)
Transformation rules
(A) ->Computational (IMM)
Transformation rules
(A) ->Computational (IMM)
COBOL to Java migration using RM-ODP Computational Viewpoint
ReverseModelin
g
In Conformity In Conformity
Generation
Transformation engine Transformation engine
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
9
The ODP Computational viewpoint
FlowCausalityProducerConsumer
<<enumeratio...
Operation InterfaceTemplateCausality : OperationCausality
Signal InterfaceTemplateCausality : SignalCausality
FlowInterfaceTemplateCausality : FlowCausality
Signal Operation Flow
Annoucement
InternalAction
OperationCausalityClientServer
<<enumeration>>
SignalCausalityInitatorResponder
<<enumeratio...
Binding ObjectTemplate
EnvironmentContract
ModelElement
Name : String
0..1
0..n
0..1
0..nHas EC
InvocationName : String
TerminaisonName : String
1..n1 1..n1
Terminated
Interrogation
1..n
1
1..n
1Has Inv
1..n
1
1..n
1Has Ter
ComputationalObjectTemplate
0..n
0..n
0..n
Primitive Binding0..n
Action
Behavior
1 11 1
Has Behavior
1..n
1
1..n
1
a collection of
ParameterType : anyname : String
InterfaceTemplate1..n
1
+abstraction
1..n
+describe
1
SignaturenamenumberOfParameter
0..n
0..1
0..n
0..1Has Param
Interaction
1..n
1
1..n
1Consists of
1
1
1
1Has
The Computational Viewpoint Metamodel
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
10
UML Action Semantics standard
• Action Semantics: an extension to UML • Allows a precise specification of the behavior• Comes in form of a package: Actions
ActionsActions
Action Foundation
Jump Actions
Messaging Actions
Collection Actions
Computation Actions
Read Write Actions
Composite Actions
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
11
The Action Foundation package
• The Action Foundation package: the core of Action Semantics
ModelElement
PrimitiveAction
ClassifierPin
multiplicity : Multiplicityordering : OrderingKind 0..10..*
+type
0..10..*
ModelElement
DataFlow
ControlFlow
Procedure
language : Namebody : StringisList : Boolean
InputPin
1 1
+destination
1
+flow
10..*
0..1
+result 0..*
{ordered}
+procedure0..1
OutputPin1
0..*
+source
1
+flow0..*
0..*
0..1
+argument 0..*{ordered}
+procedure0..1
Action
isReadOnly : Boolean
0..*
1
+consequent
0..*
+predecessor 1
1
0..*
+successor
1
+antecedent0..*
1
0..1
+action 1
0..1
0..*
0..1
+inputPin 0..*{ordered}
+action
0..1
0..*
0..*
+/availableInput
0..*
0..*
0..1 0..*
+action
0..1
+outputPin
0..*{ordered}
0..*0..*
+/availableOutput
0..*0..*
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
12
RM-ODP vs Action Semantics
A precise behavior specification
A precise behavior specification
well founded semantics
well founded semantics
Comes in the scope of the MDA
Comes in the scope of the MDA
StabilityStability
Links between viewpoints
Links between viewpoints
RigorRigor
RM-ODP
Action Semantics
A complete intermediate MM
+
+
+
+
+
+
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
13
Integrating the two standards
1 + specification
+specifies
n
ModelElement(from Core)
Primiti veAction
Classi fier(from Core)
Pin
multipl i ci ty : Multipl icityordering : OrderingKind 0..1
0..*
+type
0..10..*
DataFlow
ControlFlow
InputPin
1 1
+destination
1+flow1
OutputPin
1
0..*
+source1
+flow0..*
Method(from Core)
Procedure
language : Nam ebody : StringisList : Boolean
0..*
0..1
+resul t 0..*{ordered}
+procedure
0..1
0..*
0..1
+argum ent 0..*{ordered}
+procedure
0..10..* 0..10..*
+body
0..1
Binding Object
ComputationalObject
0..n
0..n
0..n
0..n
Primiti ve Binding
Behavior
Action
isReadOnly : Boolean
0..*
1
+consequent
0..*
+predecessor 1
1
0..*
+successor
1
+antecedant0..*
0..*
0..1
+inputPin 0..*
{ordered}
+action
0..1
0..*
0..*
+/avai lableInput
0..*
0..*
0..1 0..*
+action
0..1
+outputPin
0..*{ordered}
0..*0..*
+/avai lableOutput
0..*0..*
1
0..1
+action 1
0..1
Abstraction 1. n +abstraction
+describes
a collection of
1
1.n
1 1
Operation InterfaceTemplate
Causality : OperationCausality
Signal InterfaceTemplate
Causality : SignalCausality
FlowInterfaceTemplate
Causality : FlowCausality
Flow
Annoucement
Invocation
Name : String
Terminaison
Name : String1..n1 1..n1
Terminated
Interrogation
1..n
1
1..n
1Has Inv
1..n
1
1..n
1 Has Ter
OperationSignal
InterfaceTemplate
Interaction
1..n
1
1..n
1 Consists of
Parameter
Type : anyname : String
Signature
name : StringnumberOfParameter : Int
11 11
Has
0..1
0..n +composed_Of
0..1
0..n
0..n
0..n
Action Semantics
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS
14
The final COBOL to Java Demonstrator
• An optimized migration with precise rules
In Conformity
Metamodel COBOL
IntermediateMetamodel
(RM-ODP + Action Semantics)
Metamodel JAVA
Model COBOLModel
COBOL
Source COBOL Source
COBOL Target JAVATarget JAVA
IMIM Model JAVAModel JAVA
Transformation rules Computational (IMM)->(B)
Transformation rules Computational (IMM)->(B)
Transformation rules
(A) ->Computational (IMM)
Transformation rules
(A) ->Computational (IMM)
COBOL to Java migration using RM-ODP and Action Semantics
ReverseModeling
In Conformity In Conformity
Generation
15
Conclusion and further works• TRAMs framework and methodology have
– Improved existing migration tools and best practices– Influenced OpenQVT
• TRAMs Intermediate MM– Concrete semantics not needed– Good complementarity of the two standards
• Still to come…– Improve code analysis– Extend the business aspects in the migration
ConclusionThe TRAMs Project RM-ODP standard as an IMM COBOL to JAVA Demo Coupling RM-ODP/AS