A SENS Internal Presentation on Friday, October 3, 2003 TRAP Transparent Reflective Aspect Programming SeyedMasoud Sadjadi Supervised by Dr. McKinley

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

AspectWerkz 2 - and the road to AspectJ 5 Jonas Bonér Senior Software Engineer BEA Systems.
15 th Annual Tcl/Tk Conference October 2008 Timothy L. Tomkinson Fellow Software Engineer Northrop Grumman Electronic Systems Remote Control of Test Equipment.
IPS: Implementation of Protocol Stacks for Embedded Systems Yan Wang Halmstad University, Sweden The Second Internal EPC Workshop IPS, Halmstad University,
10/04/2001 Associate Professor CS Department University of Valenciennes France Dr. Dhavy Gantsou.
Software Architecture Frameworks A Family of Implementations Nikunj Mehta Computer Science Department University of Southern California Los Angeles, CA.
Kernel-Middleware Interaction to Support Adaptation in Pervasive Computing Environments F. Samimi, P. McKinley, S. Sadjadi, P. Ge Software Engineering.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
David B. Johnson Rice University Department of Computer Science DSR Status Update Monarch Project 55th.
Java Remote Method Invocation (RMI) In Java we implement object systems: O1O2 O3 thread 1thread 2 execution scheme JVM 1JVM 2 distribution scheme.
Remote Method Invocation Chin-Chih Chang. Java Remote Object Invocation In Java, the object is serialized before being passed as a parameter to an RMI.
An Aspect-Oriented Approach to Dynamic Adaptation August 8, 2002 Presented by: Sherri Goings Advisors: Dr. Dillon, Dr. Cheng, Dr. Stirewalt SENS Lab
SANS A Simple Ad hoc Network Simulator Nicolas Burri Roger Wattenhofer Yves Weber Aaron Zollinger.
Java Review 2 – Errors, Exceptions, Debugging Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Jun Peng Stanford University – Department of Civil and Environmental Engineering Nov 17, 2000 DISSERTATION PROPOSAL A Software Framework for Collaborative.
COMP 14: Intro. to Intro. to Programming May 23, 2000 Nick Vallidis.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Safe Dynamic Adaptation Department of Computer Science & Engineering Ji Zhang and Zhenxiao Yang Advisor: Prof. Betty H.C. Cheng Software Engineering and.
A Framework for Smart Proxies and Interceptors in RMI Nuno Santos P. Marques, L. Silva CISUC, University of Coimbra, Portugal
Principles of Computer Programming (using Java) Review Haidong Xue Summer 2011, at GSU.
Philip K. McKinley Software Engineering and Network Systems Laboratory Department of Computer Science and Engineering Michigan State University RAPIDware:
Run-Time Support for Adaptive Communication Services By: SeyedMasoud Sadjadi Advisor: Dr. Philip K. McKinley Computer Science and Engineering Michigan.
Babak Esfandiari (based on slides by Qusay Mahmoud)
Previous Next 06/18/2000Shanghai Jiaotong Univ. Computer Science & Engineering Dept. C+J Software Architecture Shanghai Jiaotong University Author: Lu,
Univ. Notre Dame, September 25, 2003 Support for Run-Time Adaptation in RAPIDware Philip K. McKinley Software Engineering and Networking Systems Laboratory.
Tufts Wireless Laboratory School Of Engineering Tufts University “Network QoS Management in Cyber-Physical Systems” Nicole Ng 9/16/20151 by Feng Xia, Longhua.
Developing Adaptive J2ME Applications Using AspectJ Ayla Débora and Paulo Borba {add, Centro de Informática - UFPE.
SALSA: Language and Architecture for Widely Distributed Actor Systems. Carlos Varela, Abe Stephens, Department of.
Rapid Development and Flexible Deployment of Adaptive Wireless Sensor Network Applications Chien-Liang Fok, Gruia-Catalin Roman, Chenyang Lu
Communication Tran, Van Hoai Department of Systems & Networking Faculty of Computer Science & Engineering HCMC University of Technology.
Rapid Development and Flexible Deployment of Adaptive Wireless Sensor Network Applications Chien-Liang Fok, Gruia-Catalin Roman, Chenyang Lu
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Real-Time Java on JOP Martin Schöberl. Real-Time Java on JOP2 Overview RTSJ – why not Simple RT profile Scheduler implementation User defined scheduling.
ONR Review – June 11, 2003 RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Philip McKinley, Kurt Stirewalt, Betty Cheng, Laura.
ICSE-DEAS 2005 Workshop Presentation May 21, 2005 Transparent Shaping of Existing Software to Support Pervasive and Autonomic Computing S. Masoud Sadjadi.
UDP vs TCP UDP Low-level, connectionless No reliability guarantee TCP Connection-oriented Not as efficient as UDP.
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.
UTEP Computer Science Colloquium, August 16, 2005 Transparent Autonomization: A Practical Approach to Autonomic Computing S. Masoud Sadjadi Autonomic Computing.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
International Symposium on Distributed Objects and Applications (DOA 2002) MetaSockets MetaSockets Run-Time Support for Adaptive Communication Services.
1 Mobility Support by the Common API for Transparent Hybrid Multicast draft-irtf-samrg-common-api-03 Project Matthias Wählisch,
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Transparent Mobility of Distributed Objects using.NET Cristóbal Costa, Nour Ali, Carlos Millan, Jose A. Carsí 4th International Conference in Central Europe.
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
CRG talk on Tuesday, August 19, 2003 SeyedMasoud Sadjadi Software Engineering and Networking Systems Laboratory Department of.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
July 12th 1999Kits Workshop 1 Active Networking at Washington University Dan Decasper.
Aspect Mining Jin Huang Huazhong University of Science & Technology, China
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
ENABLING ADAPTABILITY IN COMPOSITE SERVICES USING TRANSPARENT SHAPING TECHNIQUES Onyeka Ezenwoye Autonomic Computing Research Laboratory School of Computing.
By Vivek Dimri. Basic Concepts on Networking IP Address – Protocol – Ports – The Client/Server Paradigm – Sockets The Java Networking Package – The InetAddress.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Lorenz: Visitor Beans: An Aspect-Oriented Pattern Aspect-oriented pattern: describes a solution to a tangling problem in a particular context.
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
Presentation: Special Repetition Recap on Distributed Principles.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
CEN-4015, Software Project, Spring 2006 Transparent Shaping of Existing Software to Support Pervasive and Autonomic Computing S. Masoud Sadjadi Autonomic.
UMBC Distributed Computing with Objects RMI/Corba CMSC 432 Shon Vick.
1 Lecture 15 Remote Method Invocation Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung Institute of Technology.
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.
David Evans CS201j: Engineering Software University of Virginia Computer Science Lecture 10: Programming Exceptionally.
PPL 2004, Gamagori, AICHI1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech, Japan) Shigeru Chiba (Tokyo Tech, Japan)
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 1: Computer Systems Presentation slides for Java Software Solutions for AP* Computer Science.
The Implementation of a SAHN Protocol on an Open Source Platform Mike Tyson Supervisors: Dr. Carlo Kopp, Dr. Bin Qiu.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
null, true, and false are also reserved.
Units with – James tedder
Units with – James tedder
Aspect Oriented Programming
Presentation transcript:

A SENS Internal Presentation on Friday, October 3, 2003 TRAP Transparent Reflective Aspect Programming SeyedMasoud Sadjadi Supervised by Dr. McKinley Software Engineering and Networking Systems Laboratory Department of Computer Science and Engineering Michigan State University

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 2 Acknowledgement  Dr. Cheng  Dr. Stirewalt  Eric Kasten  Zhenxiao Yang  Jesse Sowell  Zhinan Zhou  Farshad Samimi  Peng Ge

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 3 Agenda Motivation Running Example Architecture Implementation Related Work Architecture Running Example Motivation ImplementationOverview: Related Work Conclusion & Future Work Conclusion

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 4 Motivation  Separation of Concerns –Development –Maintenance –Dynamic adaptation  Selective Reflection –On demand overhead  Supporting Legacy Applications –Change of requirement  Adding Security –Change of execution environment  Wired to wireless  Dynamic Adaptation –Long running and critical applications (availability)  Promoting Assurance Analysis –A systematic (principled) approach to adaptation Architecture Running Example Motivation ImplementationOverview: Related Work Conclusion

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 5 Agenda Running Example Motivation Architecture Implementation Transparent Reflection Related Work Architecture Motivation Running Example ImplementationOverview: Related Work Conclusion & Future Work Conclusion

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 6 Interactive Video Multicast  Interactive Video Multicast in Wireless LANs by Peng Ge  Proxy-based solution –The proxy serves a subgroup of wireless system  Extra processing power  Localize error correction Wired receivers Proxy Sender Wired receivers Access point Wireless receivers Architecture Motivation Running Example ImplementationOverview: Related Work Conclusion Ad-Hoc Network Hori. vs. Vertical Video Multicast

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 7 Ad-Hoc Network  Original Execution Environment –One hop wireless network using access point. –specified by Peng.  New Execution Environment –Multi-hop ad-hoc wireless network –Specified by Farshad. Ad-Hoc Proxy1 SenderReceiver Wireless Ad-Hoc Network 11 Mbps Ethernet Ad-Hoc Proxy2 Low loss rate High loss rate Architecture Motivation Running Example ImplementationOverview: Related Work Conclusion Video Multicast Hori. vs. Vertical Ad-Hoc Network Low loss rate

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 8 Ad-Hoc Proxy 2 Domain-Specific Services Common Services Distribution Host-Infrastructure OS and Protocols Hardware Devices Horizontal vs. Vertical Adaptation  Horizontal Adaptation –Multi-Tier Adaptation  Vertical Adaptation –Multi-Layer (Cross-Layer) Adaptation Architecture Motivation Running Example ImplementationOverview: Related Work Conclusion Ad-Hoc Network Video Multicast Hori. vs. Vertical Middleware Layers Sender Domain-Specific Services Common Services Distribution Host-Infrastructure OS and Protocols Hardware Devices System Platform Ad-Hoc Proxy 1 Domain-Specific Services Common Services Distribution Host-Infrastructure OS and Protocols Hardware Devices Receiver Domain-Specific Services Common Services Distribution Host-Infrastructure OS and Protocols Hardware Devices Layers defined by Schmidt [2]

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 9 Agenda Architecture Motivation Running Example Implementation Related Work Running Example Motivation Architecture ImplementationOverview: Related Work Conclusion & Future Work Conclusion

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 10 A Simple Generic Ad-Hoc Proxy … public class relay { DatagramSocket rs; DatagramSocket ss; public void run() { … rs = new DatagramSocket(recv_port); ss = new DatagramSocket(); while (!EndOfStream) { rs.receive(packet); byte[] buf = Bytes.copy(packet.getData(), 0, packet.getLength()); DatagramPacket packetToSend = new DatagramPacket(buf, buf.length, target_address, target_port); ss.send(packetToSend); } // end while … } … } // end relay Running Example Motivation Architecture ImplementationOverview: Related Work Conclusion Run-Time Model Layered Class Gr. Ad-Hoc Proxy

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 11 Run-Time Class Graph Model Running Example Motivation Architecture ImplementationOverview: Related Work Conclusion Ad-Hoc Proxy Layered Class Gr Run-Time Model … public class relay { DatagramSocket rs; DatagramSocket ss; public void run() { … DatagramSocket rs = new DatagramSocket( recv_port); DatagramSocket ss = new DatagramSocket(); while (!EndOfStream) { rs.receive(packet); … ss.send(packetToSend); } // end while … } … } // end relay relay class DatagraSocket class relay object rsss Class Library Heap Simplified Run-Time Class Graph

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 12 Layered Class Graph Running Example Motivation Architecture ImplementationOverview: Related Work Conclusion Ad-Hoc Proxy Run-Time Model Layered Class GrApplicationLevel BaseLevel MetaLevel DelegateLevel Class Library Heap DatagramSocketrelay rs & ss relay BaseLevel_DatagramSocket re & ss MetaLevel_DatagramSocket rs & ss Del 1 Del 2 Del 3 del 1 del 2 del 3

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 13 Agenda Implementation Motivation Running Example Architecture Related Work Running Example Motivation Implementation ArchitectureOverview: Related Work Conclusion & Future Work Conclusion

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 14 Compiling Steps Running Example Motivation Implementation ArchitectureOverview: Related Work Conclusion Admin. Consoles Delegate Class Gen. Aspect Base-Level Class Meta-Level Class Compiling Steps Generating Reflective Classes Generating Aspect BaseLevel_ DatagramSocket.java “java.net. DatagramSocket” MetaLevel_ DatagramSocket.java Absorbing_ DatagramSocket.aj relay.java Application Source in Java Files AspectJ Compiler (ajc) relay.class Executable Application Class Files

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 15 Generated Aspect Running Example Motivation Implementation ArchitectureOverview: Related Work Conclusion Admin. Consoles Delegate Class Compiling Steps Base-Level Class Meta-Level Class Gen. Aspect public aspect Absorbing_DatagramSocket { pointcut DatagramSocket() : call(java.net.DatagramSocket.new()) && …; java.net.DatagramSocket around() throws java.net.SocketException : DatagramSocket() { return new BaseLevel_DatagramSocket(); } pointcut DatagramSocket_int(int p0) : call(java.net.DatagramSocket.new(int)) && args(p0) && …; java.net.DatagramSocket around(int p0) throws java.net.SocketException : DatagramSocket_int(p0) { return new BaseLevel_DatagramSocket(p0); } … // Pointcuts and advices around the static public methods … // Pointcuts and advices around the final public mehtods pointcut getClass(BaseLevel_DatagramSocket targetObj) : …; }

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 16 Generated Base-Level Class Running Example Motivation Implementation ArchitectureOverview: Related Work Conclusion Admin. Consoles Delegate Class Gen. Aspect Compiling Steps Meta-Level Class Base-Level Class public class BaseLevel_DatagramSocket extends DatagramSocket implements BaseLevel_Interface { public BaseLevel_DatagramSocket() throws SocketException { super(); initMetaObject(); } public BaseLevel_DatagramSocket(int p0)throws SocketException { super(p0); initMetaObject(); } // Overriding the original methods. public void send(java.net.DatagramPacket p0) throws IOException { if(metaObject == null) { super.send(p0); return; } … Class[] paramType = new Class[1]; paramType[0] = java.net.DatagramPacket.class; Method method = BaseLevel_DatagramSocket.class.getDeclaredMethod( "send", paramType); ChangeableBoolean isReplyReady = new ChangeableBoolean(false); metaObject.invokeMetaMethod(method, tempArgs, isReplyReady); if(!isReplyReady.booleanValue()) super.send(p0); } // Original methods, but with "__Orig" appended to their names. public void Orig_send(java.net.DatagramPacket p0) throws IOException { super.send(p0); return; } }

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 17 Generated Meta-Level Class Running Example Motivation Implementation ArchitectureOverview: Related Work Conclusion Admin. Consoles Delegate Class Gen. Aspect Base-Level Class Compiling Steps Meta-Level Class public class MetaLevel_DatagramSocket extends UnicastRemoteObject implements MetaLevel_Interface, DelegateManagement { private Vector delegates = new Vector(); … public synchronized Object invokeMetaMethod(Method method, Object[] args, ChangeableBoolean isReplyReady) throws Throwable { if (isReplyReady.value) return null; if (delegates.size() == 0) throw new MetaMethodIsNotAvailable(method.toString()); Class[] paramType = method.getParameterTypes(); Class[] newParamType = new Class[paramType.length + 1]; for (int i = 0; i < paramType.length; i++) newParamType[i] = paramType[i]; newParamType[paramType.length] = ChangeableBoolean.class; Object[] tempArgs = new Object[args.length + 1]; for(int i=0; i<args.length; i++) tempArgs[i] = args[i]; tempArgs[args.length] = isReplyReady; … if(!delegateFound) // No meta-level method available throw new MetaMethodIsNotAvailable(method.toString()); else return newMethod.invoke(delegates.get(i-1), tempArgs); }

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 18 Administrative Consoles Running Example Motivation Implementation ArchitectureOverview: Related Work Conclusion Compiling Steps Delegate Class Gen. Aspect Base-Level Class Meta-Level Class Admin. Consoles

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 19 Delegate Class Running Example Motivation Implementation ArchitectureOverview: Related Work Conclusion Admin. Consoles Compiling Steps Gen. Aspect Base-Level Class Meta-Level Class Delegate Class public class Delegate_DatagramSocket_send extends UnicastRemoteObject implements Delegate_Interface, FilterManagement { private Vector filters = null; … public synchronized void send(DatagramPacket datagramPacket, ChangeableBoolean isReplyReady) throws IOException { if (isReplyReady.value) return; Packet packet = new Packet(0, new byte[0], datagramPacket.getData()); Packet[] packetList = new Packet[1]; packetList[0] = packet; int filterCounter = 0; while (filterCounter < filters.size()) { Filter filter = (Filter)filters.get(filterCounter); try { packetList = filter.process(packetList); } catch (FilterMismatchException e) { EventMediator.instance().notify(new FilterMismatchEvent(this, e)); filterCounter--; } filterCounter++; } … isReplyReady.value = true; }

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 20 Agenda Related Work Motivation Running Example Architecture Implementation Running Example Motivation Related Work Architecture ImplementationOverview: Conclusion & Future Work Conclusion

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 21 Related Work  Our Previous Work in SENS –Adaptive Java & MetaSockets –An Aspect-Oriented Approach to Dynamic Adaptation –SpartanJ  Other Work –Meta Java  Behavioral reflection  Java RMI –Iguana/J  Modifying the JVM –Reflective Java Running Example Motivation Related Work Architecture ImplementationOverview: Conclusion

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 22 Conclusion  On-Demand Overhead  Selective Reflection  Transparent Adaptation  Legacy Application  Promoting Separation of Concerns Running Example Motivation Conclusion Architecture ImplementationOverview: Related Work Conclusion Related Work

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 23 Future Work  Finishing Remaining Parts –Supporting fields –Test “static” –Test “final”  Applying to “Java RMI”  Dynamic Adaptation of Java Reflection  Toward Multi-Tier and Multi-Layer Adaptation Running Example Motivation Conclusion Architecture ImplementationOverview: Related Work Conclusion

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 24 References [1] E. Kasten, P. K. McKinley, S. Sadjadi, and R. Stirewalt. Separating introspection and intercession in metamorphic distributed systems. In Proceedings of the IEEE Workshop on Aspect-Oriented Programming for Distributed Computing (with ICDCS'02), Vienna, Austia, July [2] Z. Yang, B. Cheng, R. Stirewalt, J. Sowell, S. Sadjadi, and P. McKinley. An aspect-oriented approach to dynamic adaptation. In Proceedings of Workshop On Self-healing Software, Nov [3] S. M. Sadjadi, P. K. McKinley, and E. P. Kasten. Architecture and operation of an adaptable communication substrate. In The 9th International Workshop on Future Trends of Distributed Computing Systems (FTDCS '03), May [4] Douglas C. Schmidt. Middleware for real-time and embedded systems. Communications of the ACM, 45(6), June Running Example Motivation Architecture ImplementationOverview: Conclusion Related Work

A SENS Presentation on Oct. e, 2003Transparent Reflection by S. M. Sadjadi 25 Questions? Thank you! Running Example Motivation Architecture ImplementationOverview: Conclusion Related Work