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.

Slides:



Advertisements
Similar presentations
CIMCO Integration Software Products
Advertisements

1 OBJECTIVES To generate a web-based system enables to assemble model configurations. to submit these configurations on different.
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
Transparent Robustness in Service Aggregates Onyeka Ezenwoye School of Computing and Information Sciences Florida International University May 2006.
Web Caching Schemes1 A Survey of Web Caching Schemes for the Internet Jia Wang.
Combining Static and Dynamic Data in Code Visualization David Eng Sable Research Group, McGill University PASTE 2002 Charleston, South Carolina November.
Advanced Object-Oriented Programming Features
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
1 An Introduction to Visual Basic Objectives Explain the history of programming languages Define the terminology used in object-oriented programming.
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
1 Web Services Visual C# 2008 Step by Step Chapter 30.
UNIT-V The MVC architecture and Struts Framework.
INTRODUCTION TO WEB DATABASE PROGRAMMING
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Lecture Roger Sutton CO530 Automation Tools 5: Class Libraries and Assemblies 1.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
A Mobile-Agent-Based Performance-Monitoring System at RHIC Richard Ibbotson.
Microsoft Visual Basic 2005: Reloaded Second Edition
Tutorial 10 Adding Spry Elements and Database Functionality Dreamweaver CS3 Tutorial 101.
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Bacon A Penetration and Auditing Framework Hernan Gips
Virtual techdays INDIA │ Nov 2010 Developing Office Biz Application using WPF on Windows 7 Sarang Datye │ Sr. Consultant, Microsoft Sridhar Poduri.
Introduction to MDA (Model Driven Architecture) CYT.
CSCI 6962: Server-side Design and Programming Web Services.
Marcel Casado NCAR/RAP WEATHER WARNING TOOL NCAR.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Transparent Grid Enablement Using Transparent Shaping and GRID superscalar I. Description and Motivation II. Background Information: Transparent Shaping.
Dynamic Content On Edge Cache Server (using Microsoft.NET) Name: Aparna Yeddula CS – 522 Semester Project Project URL: cs.uccs.edu/~ayeddula/project.html.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
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.
Computer Emergency Notification System (CENS)
Active Server Pages  In this chapter, you will learn:  How browsers and servers interacted on the Internet when the Internet first became popular 
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
International Symposium on Distributed Objects and Applications (DOA 2002) MetaSockets MetaSockets Run-Time Support for Adaptive Communication Services.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
By: PHANIDEEP NARRA. OVERVIEW Definition Motivation.NET and J2EE Architectures Interoperability Problems Interoperability Technologies Conclusion and.
Transparent Mobility of Distributed Objects using.NET Cristóbal Costa, Nour Ali, Carlos Millan, Jose A. Carsí 4th International Conference in Central Europe.
Getting Started with OPC.NET OPC.NET Software Client Interface Client Base Server Base OPC Wrapper OPC COM Server Server Interface WCF Alternate.
Apache JMeter By Lamiya Qasim. Apache JMeter Tool for load test functional behavior and measure performance. Questions: Does JMeter offers support for.
SilkTest 2008 R2 SP1: Silk4J Introduction. ConfidentialCopyright © 2008 Borland Software Corporation. 2 What is Silk4J? Silk4J enables you to create functional.
Service Discovery Protocols Mobile Computing - CNT Dr. Sumi Helal Professor Computer & Information Science & Engineering Department University.
PRIOR TO WEB SERVICES THE OTHER TECHNOLOGIES ARE:.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
1 Management of Distributed Data Tomasz Müldner, Elhadi Shakshuki*, Zhonghai Luo and Michael Powell Jodrey School of Computer Science, Acadia University,
Chapter 1 Introducing Ant. What is ant? Ant is a build tool  Automate the tasks of compiling code, running test, and packaging the results for redistribution.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
ENABLING ADAPTABILITY IN COMPOSITE SERVICES USING TRANSPARENT SHAPING TECHNIQUES Onyeka Ezenwoye Autonomic Computing Research Laboratory School of Computing.
A user interface framework for Grid-based computational steering and visualization. Jason Wood*, Mark Riding and Ken Brodlie.
Dispatching Java agents to user for data extraction from third party web sites Alex Roque F.I.U. HPDRC.
 Web pages originally static  Page is delivered exactly as stored on server  Same information displayed for all users, from all contexts  Dynamic.
Feb 24-27, 2004ICDL 2004, New Dehli Improving Federated Service for Non-cooperating Digital Libraries R. Shi, K. Maly, M. Zubair Department of Computer.
Survey of Tools to Support Safe Adaptation with Validation Alain Esteva-Ramirez School of Computing and Information Sciences Florida International University.
Module 4: Deployment and Versioning. Overview Introduction to Application Deployment Application Deployment Scenarios Related Topics and Tools.
RobustBPEL2: Transparent Autonomization in Business Processes through Dynamic Proxies Onyeka Ezenwoye S. Masoud Sadjadi Autonomic Computing Research Lab.
CEN-4015, Software Project, Spring 2006 Transparent Shaping of Existing Software to Support Pervasive and Autonomic Computing S. Masoud Sadjadi Autonomic.
Cognos 8 BI Configuration, Administration, and Upgrade Cognos 8 BI.
CEN6502, Spring Understanding the ORB: Client Side Structure of ORB (fig 4.1) Client requests may be passed to ORB via either SII or DII SII decide.
METADATA IN.NET Presented By Sukumar Manduva. INTRODUCTION  What is Metadata ? Metadata is a binary information which contains the complete description.
Redmond Protocols Plugfest 2016 Jinghui Zhang Office Interoperability Test Tools (Test Suites and Open Source Projects) Software Engineer Microsoft Corporation.
Liang Chen Advisor: Gagan Agrawal Computer Science & Engineering
TRAP.NET: A Realization of Transparent Shaping in .NET
Objectives In this lesson you will learn about: Need for servlets
Re- engineeniering.
Web Application Development Using PHP
Presentation transcript:

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 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 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 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 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 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 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 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 Focus in Project.NET Remoting.NET Remoting Client Method Proxy Formatter Channel Client Process Remote Object Proxy Formatter Channel Server Process

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 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 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 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 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 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 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 Fall 2005 document, Frank Suero, Edwin Garcia, Etnan Gonzalez, Enrique E. Villa Trap.NET COP Fall 2005 document, Frank Suero, Edwin Garcia, Etnan Gonzalez, Enrique E. Villa Trap.NET CEN Spring 2005 document, Jose H Cifuentes Trap.NET CEN 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. 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. 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:// TRAP/J: Transparent generation of adaptable Java programs, S. Masoud Sadjadi, Philip K. McKinley, Betty H.C. Cheng, and R.E. Kurthttp:// Introduction to Autonomic Computing, S. Masoud Sadjadi Introduction to Autonomic Computing, S. Masoud Sadjadi