200 likes | 308 Views
Aspects In Real-time Embedded Systems (AIRES). Joe Loyall. BBN Technologies. Contract No. F33615-00-C-1694. Rick Schantz, Gary Duzan, Craig Rodrigues. PCES PI Meeting 3-5 April 2002. Northeastern University. OOMWorks. Irfan Pyarali Yamuna Krishnamurthy Pradeep Gore. Karl Lieberherr
E N D
Aspects In Real-time Embedded Systems(AIRES) Joe Loyall BBN Technologies Contract No. F33615-00-C-1694 Rick Schantz, Gary Duzan, Craig Rodrigues PCES PI Meeting 3-5 April 2002 Northeastern University OOMWorks Irfan Pyarali Yamuna Krishnamurthy Pradeep Gore Karl Lieberherr Johan Ovlinger Pengcheng Wu Mitchell Wand Doug Orleans Ed McCormick
2: Problem Description Aspect Oriented Programming is limited in its support for distributed real-time embedded (DRE) systems because • DRE applications need control over systemic aspects, such as timing and quality of service, in addition to functional aspects. • Most AOP R&D has concentrated on one or the other • DRE applications often require composition of aspects that may not be complementary. • For example, embedded shipboard applications have dependability and security aspects that conflict with their real-time performance aspects • DRE applications need to consider composing aspects at several time epochs. • The environments in which many DRE applications are fielded are dynamic and unpredictable, making it difficult to determine exactly the nature of the interaction between composed aspects at design time The AIRES project is addressing these problems to make AOP more applicable to DRE needs
3: Project Objectives • Investigating the combination of functional and systemic aspects of programs • Metrics for evaluation: Reduced tangling of functional, QoS, and connection code; Increased reuse of QoS aspects across functional applications; Selection, addition, and replacement of QoS aspects with minimal impact on functional code; Demonstration on small DRE Java applications that AspectJ with Traversals reduces tangling in the code. • Investigating the composition of aspects and identification of conflicts • Metrics for evaluation: Identification of QoS composition points; Identification of areas of conflict; Enumeration of identification and mediation strategies. • Applying to RT embedded concerns • Metrics for evaluation: Improved DRE capabilities; Improvements in functionality with assured and managed QoS; Improvements in creation of DRE applications by composition of reusable components and aspects.
4a: Technical Approach • Designing and developing QDL systemic aspect languages and aspectual collaboration connection language, and examining extensions to functional aspect languages • Combining them to describe DRE examples and evaluating effectiveness • Examination of composition and conflict identification • Prototyping and demonstration in the UAV, Bold Stroke environments
4b: Technical Approach - Functional, Systemic, and Connection Languages • Systemic (QoS) aspects: Developing QuO’s Quality Description Languages, part of the Open-Source QuO adaptive middleware toolkit • CDL for programming QoS contracts that capture systemic state and implement adaptive policies • ASL for programming adaptive behavior, delegating DOC object interfaces • QuO Qosket component model for encapsulating adaptive behaviors • Functional aspects: Develop QDL functional support and DAJ • Extend ASL to support wrappers around native code method calls • Evaluate QDL’s support for DRE AOP within the BBN UAV OEP • Extend AspectJ with traversal declarations that are put into a separate .java file, forming DAJ • Without modifying AspectJ compiler but by using novel software composition techniques made available by AspectJ and that will be useful to several other projects, implement the AspectJ extensions.
4c: Technical Approach - Functional, Systemic, and Connection Languages • Connection aspects: Developing aspectual collaborations, a language for defining collaborations between components in a system and roles fulfilled by participants in the collaboration • Using collaborations to specify the roles played by objects in a DRE application, i.e., the way objects are connected and interact • Using adapters to specialize the collaborations to specific transport protocols (e.g., IIOP, TCP/IP, UDP) or connection services (e.g., AV Streams) • Evaluate in the BBN UAV OEP software by specifying transports using reusable collaborations
4d: Technical Approach - Describing DRE Examples and Evaluating Effectiveness • Describing functional aspects of the UAV • Video format, sequencing, instrumentation, timestamping • Demonstrate DAJ in small DRE examples • Describe QoS aspects of the UAV • Throughput, frame rate control, network reservation, RT priority, and fragmentation • Describe connection aspects of the UAV • Prototype UAV A/V Streams connections using AC • Evaluate the effectiveness of the prototype • Refactor the UAV code to allow for a smaller interface between collaborations making the collaborations more reusable • Improve AC to reduce tangling even further BBN UAV OEP • Go or No-Go Decision Point for July 2002 • Demonstrated ability to separately specify functional and systemic aspects in the UAV OEP • Encapsulated QoS behaviors in the UAV code • (Connection) Refactoring leads to less tangled OEP code or improved AC leads to less tangled OEP code • Alpha version of DAJ is demonstrated successfully in small DRE examples to reduce tangling
4d: Technical Approach - End-to-End Real-time QoS Using RT-CORBA and DiffServ • RT-CORBA preserves end-to-end priorities by: • Mapping importance of activities to OS priorities • Propagating priorities across the network as activity spans multiple hosts • However, RT-CORBA specification is less explicit about the communication transport and network • Unless this behavior is carefully considered and modeled, end-to-end real-time predictability in the system is difficult to achieve • Approach: Use Differentiated Services (DiffServ) to prioritize RT-CORBA network traffic • The DiffServ architecture provides different types or levels of service for network traffic • DiffServ Code Points (DSCPs) are added to data packet headers to specify the expected type of service • DiffServ enabled routers and network elements use DSCPs to differentiate the network traffic • We are enhancing the TAO ORB's real-time implementation by making it DiffServ aware
4e: Technical Approach - Investigating Composition and Conflict Identification • Enumerate and examine the ways in which aspects and components can be composed • Independent, layered, selection, intertwined • Enumerate the components and aspects in the UAV application There are currently 10 qoskets and 15 aspects (specified in ASL) in the UAV application These are composed to get different behaviors, to support different QoS, and to support different video formats (e.g., MPEG and PPM) and mechanisms (e.g., RSVP) Composition is currently done in a controlled manner, through CORBA and SysCond interfaces to ensure they don’t conflict • Identify characteristics of their composition and generalize ways in which they can be composed • Examine the conditions under which they can interfere • Functional aspects access the same data or interfere with control flow • QoS aspects access the same resources or interfere with measurement or adaptation • Add analysis to weavers to recognize potential conflicts • Seed woven code with adaptive code that can measure and mediate actual conflicts at runtime
Embedded Software Focus Areas Application Middleware & Services Technology Challenges Define Aspects/ Refactor Source Filtering, Timing, Sequencing QoS, Resource Reservation Define Aspect Implementations ASL, AC Aspect QDL Map Aspects Functional timing, Connection QoS, Resource Reservation Weave Aspects QuO Delegates QuO Delegates Analyze Components and Compositions Collaborations Qoskets Qoskets Extend Capabilities Add Filtering, Timing, Sequencing Add QoS 5: Contributions to PCES Goals • Reduction in effort to program embedded systems... • Languages for programming functional, systemic, and connection aspects separately, instead of intertwining systemic control and measurement throughout • Reusable aspects that can be analyzed and composed • QoS, timing and sequencing aspects • Analysis of interactions affecting weave order • While increasing confidence in the embedded system product • Analysis and identification of conflicts (e.g., affecting weave order) • Technology supporting the development of adaptable systems that can preserve mission goals in the face of dynamic, unpredictable environments
6: Contribution to Relevant Military Applications AIRES technology will enhance the applicability of DOC middleware to embedded systems: • Separate programming of functional and QoS concerns • Reuse of QoS measurement, adaptation, and control • Improved SW engineering/maintenance of DRE systems UAV (in NSWC HiPer-D Demo 2001) • QuO controls adaptation to maintain mission goals under dynamic conditions • AIRES untangles timing, sequencing, data format, instrumentation, and adaptation from functional code - allowing it to be separately specified and reused Boeing BoldStroke (in WSOA flight demo) • QuO controls runtime adaptation of dynamic planning collaborations • Adaptation is specified using QuO ASL, packaged using QuO qoskets
7a: Project Tasks/Schedule May 00 Start July 01 July 02 July 03 Sept 04 End • Design and develop functional and systemic aspect languages • Design and develop aspect QDL languages • Design and develop Collaborations/Adapters • Demonstrate and experiment with aspect languages to program RT aspects in the UAV software • Develop UAV OEP application • Apply aspect QDL and C/A to UAV and evaluate improvements • Design techniques for composing aspects and identifying conflicts • Design and develop weaving techniques that incorporate different composition strategies • Evaluate appropriateness of weaving techniques for different UAV requirements Define and prototype aspect QuO and collaboration/adapters Demonstrate and experiment 1st prototype of aspect QDL Composition and analysis of conflicts 1st prototype of UAV using aspect QDL Prototype and demon-stration of QDL, C/A, and UAV UAV using QDL and C/A Prototype of Collaboration/Adapters Analysis and weaving of UAV aspects UAV OEP rollout to PCES
7b: Technical Progress/Accomplishments - Systemic Language Definition and Design • AIRES systemic aspect oriented languages (aspect QDL) development has been reported as an accomplishment in previous PI meetings • Were released as open-source in June 2001 • Have had (more or less) monthly releases since June 2001 with incremental improvements and bug fixes • Available at http://www.dist-systems.bbn.com/tech/QuO • Have just published a paper on QuO’s qosket component model (ISORC’02) • Currently concentrating on evaluating QDL’s use in DRE systems, primarily the UAV OEP, but also Boeing’s WSOA • Most of the enhancements in QoS and adaptation in the UAV software have been done using QDL • More qoskets and aspects to control ATR, to support PPMs (formerly supported MPEG only), to fragment/defragment, to control UAVs
7c: Technical Progress/Accomplishments - Connection Language Definition and Design • Aspectual Collaboration definition and development has been reported as an accomplishment in previous PI meetings • We completed an implementation of the UAV connections (Sender->Distributor and Distributor->Receiver), specifying the connections using AC and generating the C++ implementation code • Currently evaluating this specification/use of AC and looking for ways to improve it • Reorganize UAV code looking for collaborations with low coupling and high cohesion • Reformulate in terms of AC and improve AC if needed • Develop an AspectJ-based implementation of AC to demonstrate approach on DRE examples
7d: Technical Plan - Functional Aspect Language, DAJ • Write back-end to produce class graph for base program • Write front-end to generate AspectJ introductions for traversals • Write middleware that processes traversal specifications • Add visitor interfaces to traversal specifications and generate AspectJ code
7e: Technical Progress/Accomplishments - UAV Prototype • We have extended the UAV prototype in two dimensions • Still send Video from the simulated UAV to Control Station Receiver, but now also send control signals back to the UAV • Have added multiple simulated UAVs and distributors • Have added more realistic UAV characteristics • Live camera feed • Wireless Ethernet from simulated UAV to distributor • Simulated ATR on Control Station (Thanks to Lockheed Martin) • PPM video format • QuO middleware is pervasive • We have contracts throughout the system coordinating and controlling the adaptation • Adaptation resides on the simulated UAVs, distributor, and receivers • Qoskets and QDL has facilitated reuse of behaviors (straightforward to move adaptation from distributor to sender) and the rapid addition of new behaviors (integrating others’ components, supporting other data formats, and new adaptations)
8: Next Milestones • Release of current UAV software to PCES program • available at http://www.dist-systems.bbn.com/projects/AIRES/UAV • Additional QoS behaviors for end-to-end and coordinated behavior, including RT-CORBA and DiffServ • Examination of composition characteristics of the qoskets, aspects, and components that we have in UAV • Apectual Collaborations (AC) • Make our Java AC tool available to the AOP community • Successfully refactor UAV code and improve AC • DAJ (Traversal extension of AspectJ) • Make DAJ available to the AspectJ community on the web; A recent informal announcement generated a good response • Search DRE applications for design patterns that can be expressed directly in DAJ (good uses for AC might also surface) • Make DRE code shorter and more reusable
9: Collaborations • Vanderbilt • Modeling larger scale, more complex contracts to improve design of QoS behaviors • Vanderbilt’s AQME can design and simulate QuO contracts and can invoke QuO’s code generator to compile the result (part of the UAV demo) • Lockheed Martin • Integrate LMs Quality Connectors and FT/RT Services and BBN’s QuO and UAV to provide a more integrated, capable, flexible testbed • Boeing/Washington University • Maintaining an active participation in Boeing activities providing QuO and AIRES capabilities for use in Bold Stroke related activities • Xerox/University of British Columbia • Working to produce an alpha version of AspectJ + traversals • To gain experience with AspectJ and prepare us for the project, we have successfully used AspectJ as an implementation language in a graduate course on Aspect-Oriented Software Development • Georgia Tech, MIT, OGI, Cornell - Active participation in BBN OEP
10: Technology Transition/Transfer AIRES technology is a prominent part of the BBN OEP Transition of UAV software and AIRES concepts to NSWC HiPer-D demo 2001 Transition of AIRES research into Boeing WSOA The EEL Compiler, part of the Secure Internet Gateway System (SIGS) project at Verizon. After four years, the system developed and maintained using DemeterJ is still running 24x7, processing large volumes of electronic orders. http://www.ccs.neu.edu/research/demeter/evaluation/gte-labs QuO software and UAV is available open-source • Available at http://www.dist-systems.bbn.com/tech/QuO • http://www.dist-systems.bbn.com/projects/AIRES/UAV
11: Program Issues • None