Title: A Procedure for Designing Abstract Interfaces for Device Interface Modules
1A Procedure for Designing Abstract Interfaces for
Device Interface Modules
- Presented By
- Andy Mroczkowski
- Dan Talaber
- Tracy Xie
- Joshua Wetzel
David Parnas
2Overview
- Definitions
- Examples of Device Interface
- Car
- JINI
- Embedded Real-Time Controller
- Summary
- Questions?
3Definitions
User Program
Device 1
Abstract Interface
Device Interface Modules 1
Hardware Interface
Device 1
Abstract Interface
Device Interface Modules 1
Hardware Interface
Legend
hardware
software
interface
4Car Example
5Car Example
Brakes
OperateCar
Brake Pedal
BrakeController
Brake Line
Engine
Accelerator
ThrottleController
Fuel
WheelAngle
Steering Wheel
Steering system
SteeringColumn
6Car Example
Disc Brakes
OperateCar
BrakePedal
Brake Controller
Brake Line
Disc Brakes
Brake Pedal
ABS Controller
BrakeLine
7Car Example
Disc Brakes
OperateCar
BrakePedal
Brake Controller
Brake Line
Perform- ance Brakes
Brake Pedal
BrakeLine
Brake Controller
8Car Example
- Design Approach
- Assumption List Characterizing the Virtual Device
- The device provides a mechanism which slows the
car at variable rates. - Programming Constructs Embodying the Assumptions
- INCREASE_BRAKING
- DECREASE_BRAKING
9Jini
- What is Jini?
- A dynamic distributed computing architecture that
provides spontaneous networking between clients
and services. - Effective use of abstract interfaces and device
interface modules.
10Jini Architecture in a Nutshell
Clients
Lookup Service
Proxies
Services
11Service and Lookup Service
Service
Lookup Service
Proxy, Interface
Legend
Repository
Communication
Java Object
HW/SW/Both
12Client and Lookup Service
Interface
Lookup Service
Client
Proxy
Legend
Communication
Repository
Java Object
Java Interface
SW w/ JVM
13Client and Service
Client
Service
request
Proxy
Legend
HW/SW/Both
Java Software
Communication
14How Jini Relates to Parnas Model
Proxy objects implement an interface and
encapsulate differences (e.g. protocols) among
various service providers.
15Intro of Embedded Software System
- An embedded software system is a single
component of a significantly larger hardware or
software system.
16Embedded Software Design with Abstract Interface
User Interface Client Control Builder Station BigB
lue
Data Access Interface
Firmware_Ver1
FIM
DeviceA (I/O)
Firmware_Ver2
IOLIM
DeviceB (IOP)
Different Vendor Image Version
Interface Module
DeviceC
Legend
Group
software
interface
hardware
Note FIM (Fieldbus Interface Module) IOLIM(I/O
Link Interface Module) IOP (I/O Processor)
17Embedded Software Architecture
Ethernet
Data Access Interface
User Interface
Control Net
Pressure
Device Interface Module
Temperature
I/O Control Net
Flow
Data bus
Valves
18Embedded Software
- Features
- Redundant Hardware Interface
- Primary, Secondary (OPM)
- Flexible Hardware Interface
- Sub-Interface Module
- Relation between Virtual Device and Hardware
Device - Configuration-time/Load-time/Run-time
19References
- Ilango S. Kumaran, Jini Technology An Overview,
ISBN 0-13-033385-9 - Jim Waldo and The Jini Techology, The Jini
Specifications, Second Edition, edited by Ken
Arnold, ISBN 0-201-72617-3 - Picture of Parnas http//www.martinfowler.com/art
icles/xp2002.html