Download PCES Problem

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Mathematical optimization wikipedia , lookup

Trusted Computing wikipedia , lookup

Pattern language wikipedia , lookup

Transcript
ADVANCED TECHNOLOGY CENTER
PCES Problem
Gary Wayne Daugherty
[email protected]
May 13, 2017
PCES problem
Table of Contents
1.
BACKGROUND ...................................................................................................................... 3
2.
PROBLEM ............................................................................................................................... 4
3.
REFERENCES ........................................................................................................................ 5
May 13, 2017
2
PCES problem
1. Background
The DARPA PCES program was established to address the problems of Program Composition for
Embedded Systems. According to the original BAA [1] some progress has been made in areas
related to real-time open systems, mobile code research, aspect-oriented programming, and
patterns. “However, technology support is limited and programming for real-time embedded
systems remains a time-intensive and error-prone process.”
The BAA then calls for research in the application of cross-cutting properties (aspects) to core
functional software, and in assuring that such properties fulfill real-time requirements related to
concurrency, synchronization, timing, fault-tolerance, and data persistence. The work in expected
to be in two main areas: one related to program transformation, the other, analysis. The BAA
appears to call for separate work in these areas with respect to each of the properties of interest,
e.g. separate tools for supporting the specification, analysis, and application of synchronization
aspects, etc.
“The focus of the PCES program is on program analysis and (property preserving) composition
techniques that can be used cooperatively to support real-time programming. Underlying issues
include aspect specification, interpretation, and checking; programming reusable and portable
aspect code; and aspect interference analysis. Approaches are strongly preferred that can be
extended to strategies for mobile code. These include strategies for incremental, off-line/on-line,
and staged analysis and composition.”
Officially the four technical topics addressed by the original BAA are:
1.
2.
3.
4.
Aspect Suites for Embedded Systems
Program Representation and Analysis
Program Transformational System
Stage Management System
May 13, 2017
3
PCES problem
2. Problem
The principal problem not yet addressed by the program is adaptation and optimization of the
software for the specific platform upon which it is to run, and the application it is to serve.
Optimization may be addressed in terms of both software and hardware, including hardware
compatible with the DARPA Polymorphous Computing Architecture (PCA) initiative [2]. In
addition to supporting the weaving of new behavior into an existing software core, support may be
provided for program level transformations. An emphasis should be placed on adherence to OMG
standards, and the leveraging of open source software solutions.
Consider the problem in terms of a minimal ORB, packaged for real-time, embedded devices. It
should be possible to adapt the ORB software to meet the needs of a specific type of application
by selecting the services it provides, and by defining the low level policies/patterns that it uses.
These patterns may include those already defined (e.g. by [3] and [4]), optimizations of these
patterns in terms of low level mechanisms, and other domain specific patterns, e.g. for safetycritical, fault-tolerant, FAA certified applications1.
In terms of the same example, it should also be possible for the ORB to adapt the underlying
software and hardware upon which it depends: the operating system, the virtual machine (if any),
the processor2, the protocol stack3, and other hardware elements4. The choice of platform will
restrict the set of options available, and different choices should be expected for different
platforms and applications. Different choices may also be made regarding whether to apply a
particular pattern/optimization statically (before run time) or dynamically (at run time), and
feedback from the run time environment may be used to influence choices, including those made
statically.
Proposals should initially provide at least an off-line solution, with plans for a migration to an online, run-time adaptable approach. Development of an off-line optimizer-generator is considered
an acceptable initial solution [5, slides 90-94]. Other solutions that address the key elements of the
problem (below) are also acceptable.
Key problem elements to be addressed:
1.
Definition of extensible meta-level notations for describing the structure, real-time aspects,
initial connections, and contracts between the model elements of a middleware application
2. Definition of aspect suites/patterns for low level application, ORB, OS, VM and hardware
adaptations and optimizations.
3. Optimization of existing middleware patterns, e.g. those appearing in [3] and [4].
4. Application of aspects/patterns to software written in any of variety of languages, e.g. to
ORBs, operating systems, and virtual machines written in Java, C++, C, etc.
5. Use of software transformations (rewriting rules) and refactoring “before”, “during” and
“after” compilation to optimize the resulting composition.
6. Adaptation of software to conform to guidelines for FAA certification.
7. Adaptation of software to the APIs provided by other software to which it must interface, e.g.
adaptation of the ORB software to various OS, VM and hardware interfaces.
8. Use of hardware to help address various ORB, OS, and pattern related optimizations.
9. Migration from an off-line to an on-line, run-time approach to the problem.
10. Adherence to OMG and other standards and interoperability with commercial tools that
comply with such standards.
The proposal should address integration with other projects already a part of the PCES program,
e.g. through agreement on the meta-level notations (above).
1
Memory allocation policies, for example, come into play for level A applications where traditionally all heap based
allocation must be done during initialization. Similar restrictions apply to requests for other shared resources at run time.
2
If micro-programmable or otherwise adaptable.
3
Whether implemented in software or hardware.
4
Especially those adaptable as defined by the PCA initiative.
May 13, 2017
4
PCES problem
3. References
[1] BAA #00-23: Program Composition For Embedded Systems (PCES), http://www.darpa.mil/
ito/Solicitations/CBD_00-23.html
[2] BAA #00-59: Polymorphous Computing Architectures (PCA) http://www.darpa.mil/ito/
Solicitations/CBD_00-59.html
[3] Douglas Schmidt, Michael Stal, Hans Rohnert, and Frank Bushmann. Pattern-Oriented
Software Architecture: Patterns for Concurrent and Networked Objects, Volume 2, John Wiley &
Sons, Ltd, 2000.
[4] Thomas J. Mowbray and Raphael C. Malveau. CORBA Design Patterns, John Wiley & Sons
Inc., 1997.
[5] Dr. Douglas Schmidt, Pattern-Oriented Software Architecture of Concurrent and Networked
Objects, OOPSLA Tutorial, October 16, 2000, http://www.cs.wustl.edu/~schmidt/posa.ppt
May 13, 2017
5