320 likes | 470 Views
TRAP.NET: A Realization of Transparent Shaping in .NET. S. Masoud Sadjadi and Fernando Trigoso. Florida International University Miami, Florida, U.S.A. Outline. Motivation Background TRAP.NET Overview Demo Conclusion and Future Work. Why Dynamic Adaptation?. Pervasive computing
E N D
TRAP.NET: A Realization of Transparent Shaping in .NET S. Masoud Sadjadi and Fernando Trigoso Florida International University Miami, Florida, U.S.A.
Outline • Motivation • Background • TRAP.NET Overview • Demo • Conclusion and Future Work TRAP.NET: A Realization of Transparent Shaping in .NET
Why Dynamic Adaptation? • Pervasive computing • Promises access to information: anywhere at anytime. • Adaptation required to changes in the mobile/wireless environments. • Critical systems • Promises systems with high fault tolerance • Adaptation required to respond to unanticipated faults. • Grid computing • Promises a dependable virtual supercomputer that solves long-running scientific applications. • Adaptation required to respond to the dynamic changes in availability of distributed resources. TRAP.NET: A Realization of Transparent Shaping in .NET
Background • Software adaptation • Compositional adaptation • Transparent Shaping • TRAP • Related work • .NET Support • Runtime • Reflection • Attributes TRAP.NET: A Realization of Transparent Shaping in .NET
Software Adaptation [6] • Parameter adaptation • Modifies program variables to alter behavior • Does not allow new algorithms or components • Cannot adapt new strategies • Compositional adaptation • Exchanges components • Allows new algorithms • Can adapt to unforeseen circumstances TRAP.NET: A Realization of Transparent Shaping in .NET
Transparent Shaping [1] • First Step • Adapt-ready program produced • Compile, startup or load time • Interception: weaves hooks • Second Step • At runtime • Redirection: hooks used to adapt behavior TRAP.NET: A Realization of Transparent Shaping in .NET
Related Work • TRAP/J [1] • Java: offers structural reflection only • Use wrapper classes and Aspect/J • Can only adapt classes by sub-classing • TRAP/C++ [2] • C++: offers no reflection • Similar implementation than TRAP/J • TRAP/BPEL [3] • For BPEL processes and Web Services TRAP.NET: A Realization of Transparent Shaping in .NET
Background • Compositional Adaptation • Transparent Shaping • TRAP • Related work • .NET Support • Runtime • Reflection • Attributes TRAP.NET: A Realization of Transparent Shaping in .NET
CIL, CLR and TRAP.NET [4] TRAP.NET works with CIL for language independence TRAP.NET: A Realization of Transparent Shaping in .NET
.NET Reflection and Attributes • Metadata is data about the program • .NET Reflection • Encapsulates metadata • Structural and behavioral reflection • CIL and Metadata bundled together • In module or assembly file • TRAP.NET uses both • Attributes to label adapt-ready methods TRAP.NET: A Realization of Transparent Shaping in .NET
Outline • Motivation • Background • TRAP.NET Overview • Demo • Conclusion and Future Work TRAP.NET: A Realization of Transparent Shaping in .NET
TRAP.NET • Step 1: Generation of an adapt-ready application • Step 2: Static and Dynamic adaptation • Static adaptation • Algorithmic decision delayed until load time • According to deployed environment • Dynamic adaptation • Components can be replaced during run time • No need to halt or restart application TRAP.NET: A Realization of Transparent Shaping in .NET
Step 1 • Generation of adapt-ready applications • Staging using attributes • Generation process • Intersection and redirection of control flow TRAP.NET: A Realization of Transparent Shaping in .NET
Staging • Development time • Reference to TRAP.NET class library • TRAP.NET and application unified at compile time TRAP.NET: A Realization of Transparent Shaping in .NET
Generation Process TRAP.NET Generator TRAP.NET: A Realization of Transparent Shaping in .NET
Adapt-Ready Method Generation • Original implementation wrapped in an if-then-else statement Interception Redirection TRAP.NET: A Realization of Transparent Shaping in .NET
Step 2 • Static and Dynamic adaptation • Composer • Dynamic method generation • Member Access with Reference Redirection • Static adaptation TRAP.NET: A Realization of Transparent Shaping in .NET
Composer • TRAP.NET hosts the server composer • Opens communication channel • The client composer can be exposed as • .NET Remoting Server – Windows Applications • HTTP Server – Web Application TRAP.NET: A Realization of Transparent Shaping in .NET
Composer • Delegate: method to replace adapt-ready method • User uploads delegate assembly through Composer • Dynamic method created from delegate method • TRAP.NET stores dynamic methods Delegate Dynamic Method TRAP.NET: A Realization of Transparent Shaping in .NET
Dynamic method can be executed at runtime Initialized with elements and contents of delegate method Replicates functionality of delegate method Dynamic Method Generation Delegate Method Dynamic Method Parameter Types Parameter Types Return Type Return Type Local Variables Types Local Variables Types IL Contents IL Contents TRAP.NET: A Realization of Transparent Shaping in .NET
New functionality may have external references Delegate assembly is not being executed References not in execution context of running application Member Access Running Application Delegate Assembly Delegate Method Dynamic Method IL Contents IL Contents Some Field Some Method TRAP.NET: A Realization of Transparent Shaping in .NET
Find references with Token Parser Resolve delegate members to obtain their metadata Locate corresponding members in running application Replace references Reference Redirection Running Application Delegate Assembly Delegate Method Dynamic Method IL Contents IL Contents 1 4 2 3 Some Field Some Method Some Field Some Method TRAP.NET: A Realization of Transparent Shaping in .NET
Static Adaptation • Static adaptation reuses mechanism to achieve dynamic adaptation • At load time • Adapted functionality is not allowed to be re-adapted or rolled back TRAP.NET: A Realization of Transparent Shaping in .NET
Outline • Motivation • Background • TRAP.NET Overview • Demo • Conclusions and Future Work TRAP.NET: A Realization of Transparent Shaping in .NET
Summary • Attribute-based approach • Enabled unification of the adapt-ready application and server composer • Avoided using another UI for the Generator • Adheres to .NET development practices • Used to carry extra metadata information • Generator • Adds adaptive code in CIL • Enables language independence • No UI required • Visual Studios add-in • Composer • Enables mutable and reconfigurable software • Member access through reference redirection • Delegate can reuse existing functionality • User can monitor status, upload new code and adapt running application • Using Windows application or Web interface TRAP.NET: A Realization of Transparent Shaping in .NET
Future Work • Access to new members in delegate assembly • Applying TRAP.NET to Grid Computing • Safe adaptation and security • Dependency analysis • Side effects analysis • Restriction on the power that TRAP.NET provides TRAP.NET: A Realization of Transparent Shaping in .NET
Acknowledgements • Peers who contributed in the development phase of this work • Allen Lee, Tuan Cameron, Ana Rodriguez, Juan H. Cifuentes, Javier Ocasio, Amit Patel, Mitul Patel, Enrique E. Villa, Frank Suero, Etnan Gonzalez, Edwin Garcia, Alain Rodriguez, and Lazaro Millo. • This work was supported in part by IBM, the National Science Foundation (grants OCI-0636031, REU-0552555, and HRD-0317692). TRAP.NET: A Realization of Transparent Shaping in .NET
References • [1] S. Masoud Sadjadi. Transparent Shaping of Existing Software to Support Pervasive and Autonomic Computing. A Dissertation submitted to Michigan State University, 2004. • [2] Scott D. Fleming, Betty H.C. Cheng, R. E. Kurt Stirewalt and Philip K. McKinley. An Approach to Implementing Dynamic Adaptation in C++. In Proceedings of the 2005 workshop on Design and evolution of autonomic application software, 2005. • [3] Onyeka Ezenwoye and S. Masoud Sadjadi. TRAP/BPEL: A framework for dynamic adaptation of composite services. In Proceedings of the International Conference on Web Information Systems and Technologies (WEBIST 2007), Barcelona, Spain, March 2007. (in press). • [4] Common Language Infrastructure. Wikipedia. 21 December 2006. Available at URL: http://en.wikipedia.org/wiki/Image:Overview_of_the_Common_Language_ Infrastructure.png. • [5] Serge Lidin. Expert .NET 2.0 IL Assembler. Apress. 2006, page 6. • [6] Philip K. McKinley, S. Masoud Sadjadi, Eric P. Kasten and Betty H.C. Chen. Composing Adaptive Software. Computer. July 2004, pages 56-64. TRAP.NET: A Realization of Transparent Shaping in .NET
Questions/Comments • Contact Information: S. Masoud Sadjadi (sadjadi@cs.fiu.edu) Autonomic Computing Research Lab. (ACRL) School of Computing and Information Sciences (SCIS) Florida International University (FIU) • TRAP.NET and other Transparent Shaping tools can be downloaded from http://acrl.cis.fiu.edu/ TRAP.NET: A Realization of Transparent Shaping in .NET