Embedded systems are proliferating at an amazing rate with no end in sight. In 1998 only 2% of all processors where used for general purpose workstations and 98% for embedded systems. The percentage of processors used for workstations is rapidly approaching 0% for the year 2003. Success of embedded systems depends on low cost, a high degree of tailorability, quickness to market, cost-effective variations in the product, and sometimes flexible operation of the product. The reliability of these products and the degree of configurability will become paramount concerns. Currently, there is no efficient way to build software for these systems. The use of component based software for constructing and tailoring these systems has promise. However, most components are too heavyweight and don't explicitly address real-time, memory, power and cost constraints. What is required is a new type of component that is lightweight and relates to the physical and real-time properties of embedded systems.
The first part of the solution is developing the new components
themselves. This problem is
where most people have spent their
energies. While this is a necessary step, it is the easiest
step and it ignores fully addressing
how the components interact with other components or how they fit into
a component infrastructure. The second problem
is that while significant
work has been done in developing CORBA, DCOM,
Jini
components, much less has been done with
components suitable for embedded systems.
Third, most tools available for the configuration process provide
little more than linking or an extended ``make"
capability. It is the designer who has to know everything
about the components and their (often hidden) constraints. For
example, a designer may know that the combination of 2
seemingly unrelated components
leads to unpredictable delays in network protocol processing.
What is
needed are tools that support the specification of embedded system
requirements followed by knowledgeable and helpful construction of the
embedded system with careful analysis of component
dependencies as well as the time, memory,
power, and cost constraints. The final product must offer
as many guarantees as possible along
many dimensions including correctness,
performance and reliability. Our work is focusing on the
development of effective composition, configuration, and
reconfiguration mechanisms, and the associated
dependency and non-functional analyses for
real-time embedded systems.
See also http://www.cs.virginia.edu/vest