Qos-Enabled Middleware Design & Application: Dr. Douglas C. Schmidt
Qos-Enabled Middleware Design & Application: Dr. Douglas C. Schmidt
Qos-Enabled Middleware Design & Application: Dr. Douglas C. Schmidt
[email protected]
Deeptis office hours will be announced shortly Please send all questions to [email protected] Ill send the answers to the class mailing list
3
Parallelism
Determinism
Throughput, Availability
Near Real-Time FaultTolerant Information PRocessing
Data Processing
Parallel Systems
Distributed Systems
The Right Information => To the Right People => At the Right Time
Common Requirements
Shared Operational Picture Interoperability
Real-time dissemination of
massive data volumes, often over large scale
Historically, mission-critical apps were built directly atop hardware & OS Tedious, error-prone, & costly over lifecycles
There are layers of middleware, just like there are layers of networking protocols
Standards-based COTS middleware helps: Control end-to-end resources & QoS Leverage hardware & software technology advances Evolve to new environments & requirements Provide a wide array of reusable, offthe-shelf developer-oriented services
DNS UDP IP
TELNET TCP
Middleware Services
Middleware Solaris VxWorks Linux LynxOS
ATM
FDDI
Win2K
20th Century
21st Century
Examples Java Virtual Machine (JVM), Common Language Runtime (CLR), ADAPTIVE Communication Environment (ACE)
Asynchronous Event Handling Physical Memory Access
Synchronization
Memory Management
9
Scheduling
www.rtj.org
www.cs.wustl.edu/~schmidt/ACE.html
Distribution Middleware
Distribution middleware defines higher-level distributed programming models whose reusable APIs & components automate & extend native OS capabilities Examples OMG Real-time CORBA & DDS, Sun RMI, Microsoft DCOM, W3C SOAP
End-to-End Priority Propagation Client
in args operation() out args + return
Domain-Specific Services Common Middleware Services Distribution Middleware Host Infrastructure Middleware
OBJ REF
Object (Servant)
Scheduling Service IDL STUBS Explicit Binding ORB CORE Standard Synchronizers Portable Priorities IDL SKEL Thread Pools
Object Adapter
GIOP
Protocol Properties
realtime.omg.org/
en.wikipedia.org/wiki/Data_Distribution_Service
10
Distribution middleware avoids hard-coding client & server application dependencies on object location, language, OS, protocols, & hardware
Common middleware services support many recurring distributed system capabilities, e.g.,
Transactional behavior
Domain-Specific Middleware
Domain-specific middleware services are tailored to the requirements of particular domains, such as telecom, ecommerce, health care, process automation, or aerospace
Examples Siemens MED Syngo Common software platform for distributed electronic medical systems Used by all ~13 Siemens MED business units worldwide
Domain-Specific Services Common Middleware Services Distribution Middleware Host Infrastructure Middleware
Boeing Bold Stroke Common software platform for Boeing avionics mission computing systems Modalities
e.g., MRI, CT, CR, Ultrasound, etc.
12
Overview of CORBA
Interface Repository IDL Compiler Implementation Repository
Client
OBJ REF
Object (Servant)
DSI
Object Adapter
ORB CORE
GIOP/IIOP/ESIOPS
CORBA shields applications from heterogeneous platform dependencies e.g., languages, operating systems, networking protocols, hardware
Common Object Request Broker Architecture (CORBA) A family of specifications OMG is the standards body Over 800 companies CORBA defines interfaces, not implementations It simplifies development of distributed applications by automating/encapsulating Object location Connection & memory mgmt. Parameter (de)marshaling Event & request demultiplexing Error handling & fault tolerance Object/server activation Concurrency Security
OBJ REF
Object (Servant)
Scheduling Service IDL STUBS Explicit Binding ORB CORE Standard Synchronizers Portable Priorities IDL SKEL Thread Pools
Object Adapter
GIOP
Protocol Properties
These capabilities address some (but by no means all) important real-time application development challenges
control to regular CORBA to improve application predictability, e.g., Bounding priority inversions & Managing resources end-to-end Policies & mechanisms for resource configuration/control in Real-time CORBA include: Processor Resources Thread pools Priority models Portable priorities Synchronization Communication Resources Protocol policies Explicit binding Memory Resources Request buffering
Loosely coupled
Plug & play architecture with dynamic discovery Time & space decoupling
Open standard
OMG DDS v1.2 latest version www.omg.org/dds
Global Data Space
Client
DDS Characteristics Data distribution model Relational collaborations Multicast transport Best for Quick dissemination to many nodes Dynamic networks Flexible QoS & delivery requirements
CORBA & DDS address different needs: Complex systems often need both
Application
Management Plane
Control Plane
CORBA DDS
Data Plane