Reflections on 20 Years of Architecture for Distributed Real-time - - PowerPoint PPT Presentation

reflections on 20 years of architecture for distributed
SMART_READER_LITE
LIVE PREVIEW

Reflections on 20 Years of Architecture for Distributed Real-time - - PowerPoint PPT Presentation

Reflections on 20 Years of Architecture for Distributed Real-time & Embedded Systems Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~ schmidt Professor of EECS Vanderbilt University Nashville, Tennessee SATURN


slide-1
SLIDE 1

Douglas C. Schmidt

d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~ schmidt Professor of EECS Vanderbilt University Nashville, Tennessee

SATURN Conference, May 9th, 2012

Reflections on 20 Years of Architecture for Distributed Real-time & Embedded Systems

slide-2
SLIDE 2

Distributed Real-time & Embedded (DRE) Systems

In DRE systems the “right answer” delivered too late becomes the “wrong answer”

slide-3
SLIDE 3

DRE System Architecture: ~ 20 Years Ago

Abstracted away from key quality-of- service properties Overly hardware

  • centric

Conflated design & implementation Limited reuse across domains Limited reuse across domains

slide-4
SLIDE 4

DRE System Architecture: ~ 10 Years Ago

Pattern-Oriented Software Architecture

Handle

  • wns

dispatches

*

notifies

* *

handle set

Reactor handle_events() register_handler() remove_handler() Event Handler handle_event () get_handle() Concrete Event Handler A handle_event () get_handle() Concrete Event Handler B handle_event () get_handle() Synchronous Event Demuxer select ()

< < uses> >

Patterns decouple design & implementation Optimization principle patterns address key quality-of-service properties Pattern collections support multiple DRE system domains

slide-5
SLIDE 5

DRE System Architecture: Past ~ 5 Years

Pattern languages for distributed computing & resource management

Resource Lifecycle Manager Caching Pooling Leasing Evictor Partial Acquisition Lazy Acquisition Coordinator Lookup Eager Acquisition Performance Scalability Consistency Stability Flexibility Predictability

Pattern languages for distributed computing & resource management

Wrapper Facade Layers Component internal partitioning Remoting Error Lookup Requestor Object Adapter Container Facade Business Delegate I nvoker Client Proxy OS abstraction request issuing request reception error notification Broker configuration component discovery request dispatching request dispatching b roker access component access component access component creation Message Publisher- Subscriber Factory Method request encapsulation publish- subscribe communication

Broker

Pattern languages for distributed computing & resource management Model-driven engineering support for DRE systems Model-driven engineering tools automate key patterns for DRE systems

slide-6
SLIDE 6

Concluding Remarks

Careful study & leveraging of good patterns significantly improves architecture skills Automation via model-driven engineering tools is helpful, but not (yet) a substitute for experience/insight Our understanding of the key patterns necessary to architect net-centric DRE systems-of-systems is still in its infancy