a remote composer for trap net
Download
Skip this Video
Download Presentation
A Remote Composer for TRAP.NET

Loading in 2 Seconds...

play fullscreen
1 / 17

A Remote Composer for TRAP - PowerPoint PPT Presentation


  • 139 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'A Remote Composer for TRAP' - lahela


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

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
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
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
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
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
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
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

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
Focus in Project
  • Composer side:
    • Communication
      • .NET Remoting
        • Composer
        • Running Application
    • Composer User Interface
      • Re-design
      • Implementation
focus in project10

Client Process

Server Process

Client Method

Remote Object

Proxy

Proxy

Formatter

Formatter

Channel

Channel

Focus in Project
  • .NET Remoting
focus in project11
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
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
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
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
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
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
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
ad