an architecture for retargeting application logic to multiple component types in multiple languages...
TRANSCRIPT
An Architecture for Retargeting Application Logic to Multiple Component Types in
Multiple Languages
Marselina Wiharto and Peter StanskiMonash University([email protected] - [email protected])
Presented by Marselina Wiharto
Tue, 13th of April 2004Fifth Australasian Workshop on Software and System ArchitecturesMelbourne, Australia
2
Overview
Background Research Objectives Related Works O2XML Framework Current Prototype Implementation Future Works
© marselina wiharto
3
Background
Inevitable application migration– Same logic– Different language
Would storing application logic in a non- programming-language-specific format:– Helps application migration?– Allows for retargeting of application logic to
multiple types of components of different programming languages?
© marselina wiharto
4
Research Objectives
To propose a framework that can facilitate the generation of different types of components in multiple languages
To implement a prototype that conforms to the proposed framework
To evaluate the prototype implementation
© marselina wiharto
5
Related Works
JavaML (Badros, 2000)
srcML (Maletic et al, 2002)
JavaML, PascalML, PLIXML (McArthur et al, 2002)
CppML, JavaML, and OOML (Mamas & Kontogiannis, 2000)
© marselina wiharto
6
O2XML Framework
Focuses on OO-languages-based components Uses XML based markup language (O2XML) as an
intermediate representation of OO source codes Generates various types of components in different
OO languages
© marselina wiharto
7
O2XML Framework Components
Source Code to O2XML Parser O2XML XSLT Transformer
– Outputs: Source codes
CodeDOM Generator– Outputs: Source codes, DLLs, EXEs
© marselina wiharto
8
CodeDOM Technology
Part of .NET Framework Core:
– System.CodeDom namespace Builds in-memory object representation of source codes Classes: CodeCompileUnit, CodeTypeDeclaration,
CodeMemberMethod, CodeConditionStatement
– System.CodeDom.Compiler namespace Generates source codes, DLLs, and EXEs from the
object representation Classes: CodeDomProvider, CodeGenerator,
CodeCompiler
9
Current Prototype Implementation
© marselina wiharto
10
O2XML
Object Oriented eXtensible Markup Language
Based on an XML Schema Represents C#, J#, Java, and VB .NET
source codes
© marselina wiharto
11
Sample O2XML Document
12
Transformer/Generator
XSLT Transformer– Core: C#, Java, VB .NET XSLT Scripts– Output: C#, Java, VB .NET source codes
CodeDOM Generator– Core: CodeDOM technology– Output: C#, J#, VB .NET source codes, DLLs,
EXEs, XML Web Services, and console applications
© marselina wiharto
13
Future Works
Source Code to O2XML Parser Thorough Construct Support Cross Language Library Mappings Further Language Support Abstracting O2XML Longhorn Integration
© marselina wiharto
14
Questions or Comments
© marselina wiharto