an architecture for retargeting application logic to multiple component types in multiple languages...

14
An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University ([email protected] - [email protected]) Presented by Marselina Wiharto Tue, 13 th of April 2004 Fifth Australasian Workshop on Software and System Architectures Melbourne, Australia

Upload: edwin-oneal

Post on 27-Dec-2015

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

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

Page 2: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

2

Overview

Background Research Objectives Related Works O2XML Framework Current Prototype Implementation Future Works

© marselina wiharto

Page 3: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

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

Page 4: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

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

Page 5: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

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

Page 6: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

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

Page 7: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

7

O2XML Framework Components

Source Code to O2XML Parser O2XML XSLT Transformer

– Outputs: Source codes

CodeDOM Generator– Outputs: Source codes, DLLs, EXEs

© marselina wiharto

Page 8: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

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

Page 9: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

9

Current Prototype Implementation

© marselina wiharto

Page 10: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

10

O2XML

Object Oriented eXtensible Markup Language

Based on an XML Schema Represents C#, J#, Java, and VB .NET

source codes

© marselina wiharto

Page 11: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

11

Sample O2XML Document

Page 12: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

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

Page 13: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

13

Future Works

Source Code to O2XML Parser Thorough Construct Support Cross Language Library Mappings Further Language Support Abstracting O2XML Longhorn Integration

© marselina wiharto

Page 14: An Architecture for Retargeting Application Logic to Multiple Component Types in Multiple Languages Marselina Wiharto and Peter Stanski Monash University

14

Questions or Comments

© marselina wiharto