Title: Recent Developments in Embedded Software Research
1Recent Developments in Embedded Software Research
- CSCI 589 Software Engineering for
Embedded Systems - September 2, 2004
In Collaboration with the USC Software
Architecture Research Group and the Jet
Propulsion Laboratorys OODT Research Group
2Recap
- Architectural Abstractions
- Processing Elements Components
- Connecting Elements Connectors
- System Topologies Arrangements of
Components/Connectors and the rules that govern
their composition - PRISM-MW Architectural Style Framework
- Architecture-based application development in
mobile, resource constrained environments
3Introduction to new developments
- Outline of this talk
- Scientific motivations
- Lets talk about grids
- OODT JPLs data grid middleware
- Porting OODT to PRISM-MW
- A Grid-based, Lightweight, Infrastructure for
Data-intensive Environments - State of the art Wireless Grids
- Project Idea
- Lets see how you can contribute to GLIDE, and
also write a cool application
4Scientists
Students
Project Managers
More??
Users
???????
File System
Web Site
Data/ Computation
Ground Data System
Database
5Data Complexity
- Many different types of data
- Science images, files, engineering data,
transaction logs, experiment results, telemetry
commands, documents, media files, and more - Data Volume
- Large-scale systems are approaching petabytes
- Small scale systems (like the ones you guys are
going to be using) can be expected to pump
through hundreds of megabytes
6Computational Complexity
- Different system hardware
- Laptop, IPAQ, Sensor Web, cell phones,
Spacecraft - Network Distribution and Bandwidth
- Gigabit Ethernet Hubs, 802.11b and g wifi,
Bluetooth - Huge scientific problems
- Find new stars given petabytes of astrology data
- Run scientific experiments to determine if there
is water on MARS - Discover the epicenter of the next earthquakes
7Grid computing
- New CS paradigm concerned with enabling virtual
organizations - VOs are dynamic federations of heterogeneous
organizational entities sharing data, metadata,
processing and security infrastructure - Broken down into two sects
- Computationally focused grids (a.k.a.
Computational Grids) - Data-centric grids (a.k.a. Data Grids)
8Some grid basics
- Grid Middleware
- Infrastructure supporting grid-based software
communication, deployment, security and
development - Grid Resource
- Any data or computational entity that can be
retrieved or used in a grid system - Grid Service
- Software component providing some service made
available by grid middleware - Yes a Grid Service is a resource!
- Grid Architecture
- Five layer diagram presented in Anatomy of the
Grid paper
9Five layered Grid Architecture
From Anatomy of the Grid Enabling Scalable
Virtual Organizations
10Layers
- Application Layer
- This is where you use publicly available APIs to
interface with underlying infrastructure - Collective Layer
- Components that deal with the coordination and
cooperation of many grid resources - Resource Layer
- Manages and provides APIs to each available grid
resource - Connectivity Layer
- This is where the security comes in, federated
identity management, reliable transfer,
communication protocols, etc. - Fabric Layer
- Abstraction of underlying systems, data, resources
11Interesting Idea
- What if the grid paradigm could be enabled in the
emerging decentralized, resource-constrained,
embedded, autonomic and mobile (DREAM)
environments? - Enable remote, computational and data
availability, scalability previously unachievable
in DREAM environments
12Motivating Example
- Team of rovers
- Need to autonomously plot next science target to
explore - Known algorithm to plot next target
- Computationally complex and data-intensive
- Idea rovers could share cpu-cycles and sensor
information to calculate next science target - Problem no coordination software exists to
perform such sharing scalably, efficiently,
reliably, ensuring availability, etc. - What about the grid?
13A Grid-based, Lightweight, Infrastructure for
Data-intensive Environments
- Utilizes the efficiency, portability,
adaptability of PRISM-MW - Enable development of Grid middleware using
architectural abstractions - One of the key problems in current grid
middleware is the lack of this - Lack of architectural abstractions prevents
analysis of current grid middleware such as How
reliable is my grid system - Enables deployment of Grid middleware using
architectural abstractions - Current convention is buildfiles, makefiles, and
shell scripts - Try running these utilities on an IPAQ!
- Key PRISM-MW enables application development in
DREAM environments!
14A Grid-based, Lightweight, Infrastructure for
Data-intensive Environments
- Utilizes the grid services of OODT
- resource
- discovery abstraction, description
- search and retrieval
- query federation
- In data-intensive environments
- OODT is currently delivering terabytes of
information (soon to be petabytes) in several
deployments within NASA, and the National Cancer
Institute - OODT Architectural Style
- A set of constituent components
- Product, Profile, Query Servers
- Product, Profile, Query Clients
- An adaptable messaging layer connector
- Messaging Bus
- A set of rules that govern the architectural
configurations of components and connectors
15GLIDE example
Product Server
Product Server
Product Server
Product Server
File System
Web Site
Ground Data System
Database
16GLIDE example
Profile Server
Mars Images
PI Contact Information
Engineering Data
Telemetry Files
17GLIDE example
Query Server
18GLIDE APIs, Interface
- You layout the bottom most configuration of GLIDE
components (a.k.a. previous slide) - Then, you instantiate the appropriate client
component (QueryClient in previous slide) to
communicate with the appropriate GLIDE server
component - You can communicate with any of the three GLIDE
server components, its up to you
19GLIDE Class Diagram
20QueryHandlers and ProfileHandlers
- Once you lay out the GLIDE configuration, you
need to provide interfaces to - Discover underlying resources
- Access underlying resources
- Recall that resources are data, computation, etc.
- You do this with two constructs
- QueryHandlers and ProfileHandlers
21QueryHandlers
- ProductServers have a set of zero or more
IQueryHandlers (to be interesting, we need at
least one) - Each IQueryHandler
- Takes a QueryObject data component containing
- A keyword query
- For data resource
- To perform some computation
- A result list to return data/computation results
- Then performs some computation, producing data
results, or retrieves some data
22ProfileHandlers
- ProfileServers have a set of zero or more
IProfileHandlers (once again, make at least one,
cmon guys) - Each IProfileHandler
- Takes a QueryObject specifying a query for a data
or computational resource - Returns a list of ResourceProfile data components
- Each profile describes
- Type of resource that satisfies user query
- Location of resource (most likely a URN)
23Current research issues in GLIDE and Wireless
Grids
- Management of replicas
- Heres a problem
- Given You have several copies of a particular
media floating around your mobile grid system - You want to retrieve, manage and distribute
replicas given some QoS requirements - Give me the replica that is closest
- In terms of number of mobile hops
- Sheer latency
- Give me the replica from the system with the
fastest CPU - Give me access to a replicated CPU resource
- Replicas are resources
24Current research issues in GLIDE and Wireless
Grids
- Interoperability between mobile and heavyweight
grids - Situation Grid system deployed on top of
powerful computers running OODT wants to
distribute replicas to a team of mobile
scientists, remotely located at different sites
across world using satellite network link - How do the two grid systems communicate?
- What are the appropriate protocols?
- What are the appropriate data components?
25Your class project
- Probably going to be a mixture of these two
issues - Neno and I are working on finalizing the details,
should have project outline to you by next class - At least, thats what the syllabus says!
- If you have some ideas that fit into this
project, please let me know - Please speak to me after class
26Questions?