A remote composer for trap net l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 17

A Remote Composer for TRAP.NET PowerPoint PPT Presentation


  • 112 Views
  • Uploaded on
  • Presentation posted in: General

A Remote Composer for TRAP.NET. Javier Ocasio Pérez Mentor: Masoud Sadjadi Graduate Students: Fernando Trigoso Ana M. Sanchez Tuan Cameron Allen Lee. Motivation. Need for dynamic adaptation Software that can respond to changing conditions Software faults Security attacks

Download Presentation

A Remote Composer for TRAP.NET

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


A remote composer for trap net l.jpg

A Remote Composer for TRAP.NET

Javier Ocasio Pérez

Mentor: Masoud Sadjadi

Graduate Students:

Fernando Trigoso

Ana M. Sanchez

Tuan Cameron

Allen Lee


Motivation l.jpg

Motivation

  • Need for dynamic adaptation

    • Software that can respond to changing conditions

      • Software faults

      • Security attacks

      • Survive hardware failures

    • Re-use existing software

      • With already desired functionality

      • Bring it to new platform or environment.

        • Autonomic Computing

        • Grid computing

        • Mobile computing

Reference: Introduction to Autonomic Computing, S. Masoud Sadjadi


Motivation3 l.jpg

Motivation

  • Autonomic computing

    • Automatically change behavior

      • based on environmental conditions

      • in accordance to predefined policies

    • Self-managed, long-running systems

      • self-configuring

      • self-healing

      • self-optimizing

      • self-protecting

    • Require limited human guidance

Reference: Introduction to Autonomic Computing, S. Masoud Sadjadi


Project overview l.jpg

Project Overview

  • TRAP.NET

    • Stands for:

      • Transparent Reflective Aspect Programming in .NET Framework

    • Purpose

      • Have a software package that allows a user to modify a program’s behavior at runtime

      • Ability to insert and remove new code from an executing .NET application.

      • No need to stop software, recompile, and redistribute new code.

    • Basis for autonomic applications

      • Automatically change behavior by inserting and removing code to and from (running) application


Project overview5 l.jpg

Project Overview

  • Concepts

    • Transparent Shaping

      • a new programming model that supports dynamic adaptation in existing programs without the need to modify their source code directly

    • Reflection

      • allows an object to have information about its structure and its implementation so that it can reason about its own computation

    • Aspect-Oriented Programming

      • provides separation of concerns

      • allows breaking down a program into distinct parts, which otherwise would have crosscutting implementation

Reference: http://www.cs.fiu.edu/~sadjadi/Publications/TransparentShaping-ICSE-DEAS-2005.pdf


Project overview6 l.jpg

Project Overview

  • .NET advantages

    • Language-independent solution to the adaptive software problem

      • any existing .NET application can be made adaptable

        • C#

        • J#

        • Visual Basic

        • C++

    • Solution can be implemented without the need to look at the original code

      • disassembling and decompiling .NET assembly into intermediate language (MSIL)

Reference: Transparent Reflective Aspect Programming in .NET (TRAP.NET) System Design Document, L. Millo A. Rodriguez


Project overview7 l.jpg

Project Overview

  • Major Components:

    • Generator

      • Make a .Net assembly adapt-ready (contain the necessary facilities for incorporating new behavior at runtime)

    • Composer

      • Ability to (dynamically) change the behavior of executing adapt-ready assembly

  • Development team

    • Previous developers

      • Masoud Sadjadi, Lazaro Millo, Alain Rodriguez, and Jose Humberto

    • Current developers

      • Fernando Trigoso, Ana Sanchez, Allen Lee, Tuan Cameron, and Javier Ocasio Pérez


Slide8 l.jpg

Sample adapt-ready method with hooks :

public ReturnType OriginalMethod (ParameterList)

{

if (adaptation_enabled)

{

[Extended Behavior]

}

else

{

[Original Behavior]

}

}

Adapting an application

Adapt-ready

.NET Application

Assembly

Original .NET

Application

Assembly

Generator

Interface

  • Extracts assembly information from a compiled .NET assembly

  • Allows the user to select which methods should be made adapt-ready

  • Generates a new .Net assembly that contains generic “hooks” on the selected methods

Composer

Interface

Run

Adapt-ready

Application

Adapt-ready

Application with

selected behavior

  • Loads delegate assembly (.exe or .dll)

  • Allows user to select which methods are going to be replaced

  • Adapts application


Focus in project l.jpg

Focus in Project

  • Composer side:

    • Communication

      • .NET Remoting

        • Composer

        • Running Application

    • Composer User Interface

      • Re-design

      • Implementation


Focus in project10 l.jpg

Client Process

Server Process

Client Method

Remote Object

Proxy

Proxy

Formatter

Formatter

Channel

Channel

Focus in Project

  • .NET Remoting


Focus in project11 l.jpg

Focus in Project

  • Communication

Server Computer

Client Computer

Application

Server

TRAP .NET

Composer

Interface

.NET Remoting

Adapt-ready

Application

  • Remote object: ServerEngine.cs

  • Data passed: stream of bytes (as byte arrays), whose content is a configuration XML file.


Focus contribution l.jpg

Focus & Contribution

  • Composer Interface

  • URL of Adapt-ready application (assembly) in server

  • Loads adapt-ready methods from server

    • Activates the remote object indicated by the specified type (ServerEngine object) and URL

    • Calls GetStatus method from server

      • Examine the adapt-ready assembly and find the adapt-ready methods

      • Save the findings as an XML file and return content as a byte array

    • Process byte array, convert to XML file and update display with adapt-ready methods


Focus contribution13 l.jpg

Focus & Contribution

  • Composer Interface

  • browse button

    • open up an Open File Dialog to select a delegate assembly

    • display delegate assembly path in textbox

  • Loads delegate assembly and sends it to the server (as a byte array)

    • Calls LoadDelegate method from server

      • For each adapt-ready method it will try to find a possible delegate method on the loaded delegate assembly

      • return an XML file (as a byte array) with the delegate candidates for each adapt-ready method

    • Process byte array, convert to XML file and update display with adapt-ready methods and delegates


Focus contribution14 l.jpg

Focus & Contribution

  • Composer Interface

  • Tree view Display

    • Displays tree hierarchy

    • Based on Xml file configuration file sent remotely

      • Assembly

      • Namespace

      • Class

      • Methods (adapt-ready)

      • Delegates (when loaded)

  • Adapts those adapt-ready methods as indicated by the user

    • Sends updated Xml file with user selections (as byte[]) to the server

    • Calls Adapt method from server

      • Read the updated XML and flag the methods that will be adapted so they can use the delegate methods

      • Add the selected behavior to adapt-ready assembly


Focus contribution15 l.jpg

Focus & Contribution

  • Implementation:

    • TRAP.NET Composer Interface

      • ComposerForm class

      • CheckControl class

    • TRAP.NET ServerPrototype

      • ServerApplication class

      • ServerEngineStub class

    • Utilities

      • IServerEngine interface

      • StreamProcessing class


Future directions l.jpg

Future Directions

  • Continuing the Development of Tools

    • Generator

      • Enhance Generator

    • Composer

      • The Server Side (The Composer Engine)

      • The Client Side (The Composer Interface)

  • Incorporate autonomic behavior

    • Replace/combined human composer interface with an automated program (autonomic element)

  • Adapting Existing Applications to Grid Computing


References l.jpg

References

  • Remoting with C# and .NET: Remote Objects for Distributed Applications, David Conger

  • Transparent Reflective Aspect Programming in .NET (TRAP.NET) Requirements Analysis Document, Lazaro Millo,Alain Rodriguez

  • Transparent Reflective Aspect Programming in .NET (TRAP.NET) System Design Document, Lazaro Millo, Alain Rodriguez

  • Trap .NET Enhancements, Ana Rodriguez

  • Trap .NET COP 4009 - Fall 2005 document, Frank Suero, Edwin Garcia, Etnan Gonzalez, Enrique E. Villa

  • Trap .NET CEN 4015 -Spring 2005 document, Jose H Cifuentes

  • Transparent shaping of existing software to support pervasive and autonomic computing, S. Masoud Sadjadi, Philip K. McKinley, and Betty H.C. Cheng. http://www.cs.fiu.edu/~sadjadi/Publications/TransparentShaping-ICSE-DEAS-2005.pdf

  • TRAP/J: Transparent generation of adaptable Java programs, S. Masoud Sadjadi, Philip K. McKinley, Betty H.C. Cheng, and R.E. Kurthttp://www.cs.fiu.edu/~sadjadi/Publications/TRAP-DOA-2004.pdf

  • Introduction to Autonomic Computing, S. Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/presentations/Intro2AC-Sadjadi-2006.ppt


  • Login