Title: Overview of Embedded Software Research at USC
1Overview of Embedded Software Research at USC
2Architectural Abstraction
3Why Software Architecture?
- Early, high-level system model
- Stakeholder understanding and communication
- Focus on specific system properties
- Separation of concerns
- Early analysis and simulation
- Tool-supported implementation
- Improved processes and project management
4Architectural Style
- Recurring structural, behavioral, and interaction
patterns - Design vocabulary and grammar
- Envelope of allowed change
- Guarantee of desirable properties
- Generalization from specific experience
- Enables proper balance of
- Intuition
- Method
- Theft
5The C2 Architectural Style
- Event-based communication among autonomous
components, mediated by active connectors - Composition
- No component-component links
- Separation of computation from communication
- Asynchronous, implicit invocationvia connectors
- Substrate independence
- Concurrency
- Distribution
- Heterogeneity
User Repository
Main Window
Login Dialog
Graphics Toolkit
6Prism Programming-in-the-Small-and-Many
7Prism Challenges
- Resource constraints
- Demand highly efficient computation,
communication, and memory footprint - Demand unorthodox solutions
- e.g., off-loading components
- Hardware and software heterogeneity
- Proprietary operating systems
- Dialects of programming languages
- Device-specific data formats
- Lack of support for inter-device interaction
- Lack of support for code mobility
8From architecture to implementation
- Architectures provide high-level concepts
- Components, connectors, ports, events,
configurations - Programming languages provide low-level
constructs - Variables, arrays, pointers, procedures, objects
- Bridging the two often is an art-form
- Middleware can help split the difference
- Existing middleware technologies
- Support some architectural concepts (e.g.,
components, events) - but not others (e.g., configurations)
- Impose particular architectural styles
- End result ? architectural erosion
- Architecture does not match the implementation
- What is needed is architectural middleware
9Prism-MW
- An architectural middleware for embedded systems
- Supports architecture-based software development
- Architecture-based software development is the
implementation of a software system in terms of
its architectural elements - Efficient
- Scalable
- Flexible and Extensible
- Allows us to cope with heterogeneity
- Supports arbitrary complex architectural styles
10Architectural Middleware
- Natively support architectural concepts as
middleware constructs - Include system design support
- Typically via an accompanying ADL and analysis
tools - Support round-trip development
- From architecture to implementation and back
- Support automated transformation of architectural
models to implementations - i.e., dependable implementation
- Examples
- ArchJava
- Aura
- c2.fw
- Prism-MW
11Architectural Middleware Architecture
12Prism-MW Design
13Using Prism-MW
class DemoArch static public void
main(String argv) Architecture arch
new Architecture ("DEMO") // create
components Component a new CompA
("A") Component b new CompB
("B") Component c new CompC (C") //
create connectors Connector d new
Connector(D") // add components and
connectors arch.addComponent(a) arch.addCompon
ent(b) arch.addComponent(c) arch.addConnector(
d) // establish the interconnections arch.attac
h(a, d) arch.attach(b, d) arch.attach(d,
c)
Architecture - DEMO
Connector D
Connector D
14Using Prism-MW
Component C sends an event Event e new Event
("Event_C, REQUEST) e.addParameter("param_1",
p1) send (e)
Architecture - DEMO
Connector D
Send (e)
15Event Dispatching
Scaffold
Thread Pool
handle Event
Connector D
E
X
X
E
E
E
E
E
1
2
5
3
4
- Topology-based routing
- Easy redeployment and redistribution of
components onto different hardware configurations
send Event
Comp C
16Prism-MW Performance
- Efficiency
- 1750 SLOC
- 4600 B for the core
- 160 B per component
- 240 B per connector
- 70 B per weld
- 160 B per event
- 240 B per event parameter
- Scalability
- Numbers of devices, threads and eventsnot
limited by Prism-MW - Numbers of components and connectors
- available_memory middleware_size
- average_element_size
17Prism-MW Benchmarks on a PC
18Prism-MW has been adopted by several industry
partners
Troops Deployment Simulation US Army
MIDAS Bosch Research and Technology Center
19Partial View of MIDAS Architecture
20The big picture
Domain Expert
Model
Repopulate
Design-time Analysis
Runtime Analysis
Deployment Model
Deploy
Redeploy
QoS Pref.
Monitor
Monitoring Data
Hardware System
21Deployment and Monitoring Support
Architecture 2
Repository
DeSi Adapter Arch.
Architecture 1
DLL
DLL
DLL
Unicast Connector
Repository
Byte Array
Connector D
Repository