Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Javier Ocasio Pérez Mentor: Masoud Sadjadi Graduate Students: Fernando Trigoso Ana M. Sanchez Tuan Cameron Allen Lee A Remote Composer for TRAP.NET.

Similar presentations


Presentation on theme: "1 Javier Ocasio Pérez Mentor: Masoud Sadjadi Graduate Students: Fernando Trigoso Ana M. Sanchez Tuan Cameron Allen Lee A Remote Composer for TRAP.NET."— Presentation transcript:

1 1 Javier Ocasio Pérez Mentor: Masoud Sadjadi Graduate Students: Fernando Trigoso Ana M. Sanchez Tuan Cameron Allen Lee A Remote Composer for TRAP.NET

2 2 Need for dynamic adaptation Need for dynamic adaptation Software that can respond to changing conditions Software that can respond to changing conditions Software faults Software faults Security attacks Security attacks Survive hardware failures Survive hardware failures Re-use existing software Re-use existing software With already desired functionality With already desired functionality Bring it to new platform or environment. Bring it to new platform or environment. Autonomic Computing Autonomic Computing Grid computing Grid computing Mobile computing Mobile computing Reference: Introduction to Autonomic Computing, S. Masoud Sadjadi Motivation

3 3 Motivation Autonomic computing Autonomic computing Automatically change behavior Automatically change behavior Self-managed, long-running systems Self-managed, long-running systems Require limited human guidance Require limited human guidance Reference: Introduction to Autonomic Computing, S. Masoud Sadjadi

4 4 Project Overview TRAP.NET TRAP.NET Stands for: Stands for: Transparent Reflective Aspect Programming in.NET Framework Transparent Reflective Aspect Programming in.NET Framework Purpose Purpose Have a software package that allows a user to modify a program’s behavior at runtime 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. Ability to insert and remove new code from an executing.NET application. No need to stop software, recompile, and redistribute new code. No need to stop software, recompile, and redistribute new code. Transparently - dynamic adaptation without need to modify source code directly Transparently - dynamic adaptation without need to modify source code directly Basis for autonomic applications Basis for autonomic applications Automatically change behavior of running application Automatically change behavior of running application

5 5 Project Overview.NET advantages.NET advantages Language-independent solution to the adaptive software problem Language-independent solution to the adaptive software problem any existing.NET application can be made adaptable any existing.NET application can be made adaptable C# C# J# J# Visual Basic Visual Basic C++ C++ Solution can be implemented without the need to look at the original code Solution can be implemented without the need to look at the original code disassembling and decompiling.NET assembly into intermediate language (MSIL) 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

6 6 Project Overview Major Components: Major Components: Generator Generator Make a.Net assembly adapt-ready (contain the necessary facilities for incorporating new behavior at runtime) Make a.Net assembly adapt-ready (contain the necessary facilities for incorporating new behavior at runtime) Composer Composer Ability to (dynamically) change the behavior of executing adapt-ready assembly Ability to (dynamically) change the behavior of executing adapt-ready assembly Development team Development team Previous developers Previous developers Masoud Sadjadi, Lazaro Millo, Alain Rodriguez, and Jose Humberto Masoud Sadjadi, Lazaro Millo, Alain Rodriguez, and Jose Humberto Current developers Current developers Fernando Trigoso, Ana Sanchez, Allen Lee, Tuan Cameron, and Javier Ocasio Pérez Fernando Trigoso, Ana Sanchez, Allen Lee, Tuan Cameron, and Javier Ocasio Pérez

7 7 Adapting an application Original.NET Application Assembly Generator Interface Adapt-ready.NET Application Assembly Composer Interface Run Adapt-ready Application Adapt-ready Application with selected behavior Extracts assembly information from a compiled.NET assembly Extracts assembly information from a compiled.NET assembly Allows the user to select which methods should be made adapt-ready 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 Generates a new.Net assembly that contains generic “hooks” on the selected methods Sample adapt-ready method with hooks : public ReturnType OriginalMethod (ParameterList) { if (adaptation_enabled) { [Extended Behavior] } else { [Original Behavior] } Loads delegate assembly (.exe or.dll) Loads delegate assembly (.exe or.dll) Allows user to select which methods are going to be replaced Allows user to select which methods are going to be replaced Adapts application Adapts application

8 8 Focus in Project Composer side: Composer side: Communication Communication.NET Remoting.NET Remoting Composer Composer Running Application Running Application Composer User Interface Composer User Interface Re-design Re-design Implementation Implementation

9 9 Focus in Project.NET Remoting.NET Remoting Client Method Proxy Formatter Channel Client Process Remote Object Proxy Formatter Channel Server Process

10 10 Focus in Project Communication Communication TRAP.NET Composer Interface Application Server Adapt-ready Application Client Computer Server Computer.NET Remoting Remote object: ServerEngine.cs Remote object: ServerEngine.cs Data passed: stream of bytes (as byte arrays), whose content is a configuration XML file. Data passed: stream of bytes (as byte arrays), whose content is a configuration XML file.

11 11 Focus & Contribution Composer Interface Composer Interface URL of Adapt-ready application (assembly) in server URL of Adapt-ready application (assembly) in server Loads adapt-ready methods from server Loads adapt-ready methods from server Activates the remote object indicated by the specified type (ServerEngine object) and URL Activates the remote object indicated by the specified type (ServerEngine object) and URL Calls GetStatus method from server Calls GetStatus method from server Examine the adapt-ready assembly and find the adapt- ready methods 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 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 Process byte array, convert to XML file and update display with adapt-ready methods

12 12 Focus & Contribution Composer Interface Composer Interface browse button browse button open up an Open File Dialog to select a delegate assembly open up an Open File Dialog to select a delegate assembly display delegate assembly path in textbox display delegate assembly path in textbox Loads delegate assembly and sends it to the server (as a byte array) Loads delegate assembly and sends it to the server (as a byte array) Calls LoadDelegate method from server Calls LoadDelegate method from server For each adapt-ready method it will try to find a possible delegate method on the loaded delegate assembly 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 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 Process byte array, convert to XML file and update display with adapt-ready methods and delegates

13 13 Focus & Contribution Composer Interface Composer Interface Tree view Display Tree view Display Displays tree hierarchy Displays tree hierarchy Based on Xml configuration file sent remotely Based on Xml configuration file sent remotely Assembly Assembly Namespace Namespace Class Class Methods (adapt-ready) Methods (adapt-ready) Delegates (when loaded) Delegates (when loaded) Adapts those adapt-ready methods as indicated by the user Adapts those adapt-ready methods as indicated by the user Sends updated Xml file with user selections (as byte[]) to the server Sends updated Xml file with user selections (as byte[]) to the server Calls Adapt method from 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 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 Add the selected behavior to adapt- ready assembly

14 14 Focus & Contribution Implementation: Implementation: TRAP.NET Composer Interface TRAP.NET Composer Interface ComposerForm class ComposerForm class CheckControl class CheckControl class TRAP.NET ServerPrototype TRAP.NET ServerPrototype ServerApplication class ServerApplication class ServerEngineStub class ServerEngineStub class Utilities Utilities IServerEngine interface IServerEngine interface StreamProcessing class StreamProcessing class

15 15 Future Directions Continuing the Development of Tools Continuing the Development of Tools Generator Generator Enhance Generator Enhance Generator Composer Composer The Server Side (The Composer Engine) The Server Side (The Composer Engine) The Client Side (The Composer Interface) The Client Side (The Composer Interface) Incorporate autonomic behavior Incorporate autonomic behavior Replace/combined human composer interface with an automated program (autonomic element) Replace/combined human composer interface with an automated program (autonomic element) Adapting Existing Applications to Grid Computing Adapting Existing Applications to Grid Computing

16 16 References Remoting with C# and.NET: Remote Objects for Distributed Applications, David Conger 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) Requirements Analysis Document, Lazaro Millo, Alain Rodriguez Transparent Reflective Aspect Programming in.NET (TRAP.NET) System Design 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 Enhancements, Ana Rodriguez Trap.NET COP 4009 - Fall 2005 document, Frank Suero, Edwin Garcia, Etnan Gonzalez, Enrique E. Villa 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 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 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 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 Introduction to Autonomic Computing, S. Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/presentations/Intro2AC-Sadjadi-2006.ppt


Download ppt "1 Javier Ocasio Pérez Mentor: Masoud Sadjadi Graduate Students: Fernando Trigoso Ana M. Sanchez Tuan Cameron Allen Lee A Remote Composer for TRAP.NET."

Similar presentations


Ads by Google