An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University - Presented by Marselina Wiharto Tue, 13 th of April 2004 Fifth Australasian Workshop on Software and System Architectures Melbourne, 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