ACE-overview - Washington University in St. Louisschmidt/PDF/ACE-overview3.pdfUSENIX rdia, elco T...

6
BOARD BOARD 1 VME VME 1553 1553 BOARD BOARD 2 APPLICATION APPLICATION SPECIFIC SPECIFIC LOGIC LOGIC USER USER INTERFACE INTERFACE (A) CLASS LIBRARY ARCHITECTURE NETWORKING MATH ADTS DATA BASE MATH (B) FRAMEWORK ARCHITECTURE ADTS INVOKES INVOKES EVENT LOOP APPLICATION SPECIFIC LOGIC CALL BACKS NETWORKING USER INTERFACE DATABASE EVENT LOOP

Transcript of ACE-overview - Washington University in St. Louisschmidt/PDF/ACE-overview3.pdfUSENIX rdia, elco T...

DevelopingDistributedRTSystems

UsingOSSystem-HidingFrameworks

DouglasC.Schmidt

AssociateProfessorElec.&Comp.Eng.Dept.

[email protected],Irvine

www.ece.uci.edu/�schmidt/(949)824-1901

Sponsors

NSF,DARPA,ATD,BBN,Boeing,Cisco,Comverse,GDIS,Experian,GlobalMT,

Hughes,Kodak,Krones,Lockheed,Lucent,Microsoft,Mitre,Motorola,Nokia,Nortel,

OCI,Oresis,OTI,QNX,Raytheon,SAIC,SiemensSCR,SiemensMED,SiemensZT,

Sprint,Telcordia,USENIX

ACEOverviewDouglasC.Schmidt

Motivation:theDistributedRT

CommunicationSoftwareCrisis

BOARD BOARD 11

VME VME

1553 1553

BOARD BOARD 22�Symptoms

{Hardwaregetssmaller,faster,

cheaper

{Softwaregetslarger,slower,

moreexpensive

�Culprits

{Accidentalandinherent

complexity

�Solutions

{Frameworks,components,and

patterns

UCIrvine1

ACEOverviewDouglasC.Schmidt

TechniquesforImprovingSoftware

QualityandProductivity

APPLICATION APPLICATION

SPECIFIC SPECIFIC

LOGIC LOGIC

USER USER

INTERFACE INTERFACE

(A) CLASS LIBRARY ARCHITECTURE

NETWORKING

MATHADTS

DATA

BASE

MATH

(B) FRAMEWORK ARCHITECTURE

ADTS

INVOKES

INVOKES

EVENT

LOOP

APPLICATION

SPECIFIC

LOGIC

CALL

BACKS

NETWORKINGUSER

INTERFACE

DATABASE

EVENT

LOOP

�Provensolutions

{Components

�Self-contained,\pluggable"

ADTs

{Frameworks

�Reusable,\semi-complete"

applications

{Patterns

�Problem/solutionpairsina

context

{Architecture

�Familiesofrelatedpatterns

andcomponents

UCIrvine2

ACE Overview Douglas C. Schmidt

Roadmap to Levels of Middleware Abstraction

INFRASTRUCTUREMIDDLEWARE

DISTRIBUTIONMIDDLEWARE

COMMONMIDDLEWARE

SERVICES

APPLICATIONS

Cons

ConsConsEVENTEVENT

CHANNELCHANNEL

OPERATINGOPERATINGSYSTEMS SYSTEMS &&PROTOCOLSPROTOCOLS

HARDWAREHARDWARE DEVICESDEVICES

� Observations

{ Historically, apps built directly

atop OS

{ Today, more and more apps

built atop middleware

{ Middleware has several layers

� General R&D challenges

{ Performance optimizations

{ Quality of Service (QoS)

{ Software architecture &

patterns

UC Irvine 3

ACE Overview Douglas C. Schmidt

Why We Need Communication Middleware

� System call-level programming is wrong abstraction for

application developers

{ Too low-level ! error codes, endless reinvention

{ Error-prone ! HANDLEs lack type-safety, thread cancellation woes

{ Mechanisms do not scale ! RTOS TSS

{ Steep learning curve ! Win32 Named Pipes

{ Non-portable ! socket bugs

{ Ine�cient ! i.e., tedious for humans

� GUI frameworks are inadequate for communication software

{ Ine�cient ! excessive use of virtual methods

{ Lack of features ! minimal threading and synchronization

mechanisms, no network services

UC Irvine 4

ACE Overview Douglas C. Schmidt

The ADAPTIVE Communication Environment (ACE)

PROCESSES//THREADSTHREADS

DYNAMICDYNAMIC

LINKINGLINKING

MEMORYMEMORY

MAPPINGMAPPING

SELECTSELECT//IO COMPIO COMP

SYSTEMSYSTEM

VV IPCIPCSTREAMSTREAM

PIPESPIPES

NAMEDNAMED

PIPESPIPES

CAPISS

SOCKETSSOCKETS//TLITLI

COMMUNICATIONCOMMUNICATION

SUBSYSTEMSUBSYSTEM

VIRTUAL MEMORYVIRTUAL MEMORY

SUBSYSTEMSUBSYSTEM

GENERAL POSIX AND WIN32 SERVICES

PROCESSPROCESS//THREADTHREAD

SUBSYSTEMSUBSYSTEM

FRAMEWORKS ACCEPTORACCEPTOR CONNECTORCONNECTOR

SELF-CONTAINED

DISTRIBUTED

SERVICE

COMPONENTS

NAMENAME

SERVERSERVER

TOKENTOKEN

SERVERSERVER

LOGGINGLOGGING

SERVERSERVER

GATEWAYGATEWAY

SERVERSERVER

SOCKSOCK__SAPSAP//TLITLI__SAPSAP

FIFOFIFO

SAPSAP

LOGLOG

MSGMSG

SERVICESERVICE

HANDLERHANDLER

TIMETIME

SERVERSERVER

C++WRAPPER

FACADES

SPIPESPIPE

SAPSAP

CORBACORBA

HANDLERHANDLER

SYSVSYSVWRAPPERSWRAPPERS

SHAREDSHARED

MALLOCMALLOC

THE ACE ORBTHE ACE ORB

((TAOTAO))

JAWS ADAPTIVEJAWS ADAPTIVE

WEB SERVERWEB SERVER

MIDDLEWARE

APPLICATIONS

REACTORREACTOR//PROACTORPROACTOR

PROCESSPROCESS//THREADTHREAD

MANAGERSMANAGERS

STREAMSSTREAMS

SERVICESERVICE

CONFIGCONFIG--URATORURATOR

SYNCHSYNCH

WRAPPERSWRAPPERS

MEMMEM

MAPMAP

OS ADAPTATION LAYER

http://www.cs.wustl.edu/�schmidt/ACE.html

� ACE Overview

{ A concurrent OO

networking

framework

{ Available in C++

and Java

{ Ported to

VxWorks, POSIX,

and Win32

� Related work

{ x-Kernel

{ SysV STREAMS

UC Irvine 5

ACEOverviewDouglasC.Schmidt

ACEStatistics

�ACEcontain>200,000linesofC++

{Over30person-yearsofe�ort

�PortedtoUNIX,Win32,MVS,and

embeddedplatforms

{e.g.,VxWorks,LynxOS,Chorus,

pSoS,QNX

�Largeusercommunity

{www.cs.wustl.edu/�schmidt/ACE-

users.html

�Currentlyusedbydozens

ofcompanies

{Boeing,Cisco,

Ericsson,Kodak,

Lockheed,Lucent,

Motorola,Nokia,

Nortel,Raytheon,

SAIC,Siemens,

StorTek,etc.

�Supportedcommercially

{www.riverace.com

UCIrvine6

ACEOverviewDouglasC.Schmidt

PatternsforCommunicationMiddlewareEvent

PatternsConcurrency

Patterns

ExternalPolymorphism

WrapperFacade

Connector

Acceptor

ThreadPool

Thread-perSession

Thread-perRequest

AsynchronousCompletion

Token

ThreadSpecificStorage

ActiveObject

Half-Sync/Half-Async

Leader/Followers

ServiceConfigurator

Object LifetimeManager

Reactor

Proactor

DoubleCheckedLocking

Thread-Safe

Interface

ScopedLocking

StrategizedLocking

InitializationPatterns

SynchronizationPatterns

�Observation

{Failuresrarelyresult

fromunknownscienti�c

principles,butfrom

failingtoapplyproven

engineeringpracticesand

patterns

�Bene�tsofPatterns

{Facilitatedesignreuse

{Preservecrucialdesign

information

{Guidedesignchoices

UCIrvine7

ACEOverviewDouglasC.Schmidt

Use-casesforACEandTAO

APPLICATIONS APPLICATION APPLICATION--SPECIFIC SPECIFIC

APPLICATION APPLICATION--INDEPENDENT INDEPENDENT

APPLICATIONS APPLICATIONSAPPLICATIONS APPLICATIONS

Concurrency Concurrencyglobal global

Reactor Reactor

Service ServiceInitialization Initialization

Service ServiceConfigurator Configurator

Stream StreamFramework Framework

Interprocess InterprocessCommunication Communication

Network NetworkServices Services

�Domains

{Real-timeavionics

{Distributed

interactive

simulations

{Satellite

communication

{Network

management

{Medicalimaging

{Multimediaservices

UCIrvine8

ACEOverviewDouglasC.Schmidt

ApplyingACEtoReal-timeAvionics

REPLICATION

SERVICE

OBJECT REQUEST BROKER

1: SENSORS

GENERATE

DATA

FLIR GPSIFF

3:PUSH (EVENTS)

2: SENSOR PROXIES DEMARSHAL DATA

& PASS TO EVENT CHANNEL

3:PUSH (EVENTS)

EVENT

CHANNEL

HUDNavAir

FrameWTS

4: PULL(DATA)

DomainChallenges

�Deterministic&statistical

real-timedeadlines

�Periodic&aperiodic

processing

�COTSandopensystems

�Reusablecomponents

�Supportplatform

upgrades

www.cs.wustl.edu/�schmidt/TAO-

boeing.html

UCIrvine9

ACEOverviewDouglasC.Schmidt

ApplyingACEtoDistributed

InteractiveSimulations

NETWORK NETWORKOPERATIONS OPERATIONS

CENTER CENTER

HSM HSM

ARCHIVE ARCHIVE

SERVER SERVER

AGENT AGENT

INTERACTIVE INTERACTIVE

AUDIO AUDIO//VIDEO VIDEO

AGENT AGENT ARCHITECTURE ARCHITECTURE

SPC SPC

HARDWARE HARDWARE

EMBEDDED EMBEDDED

TAO TAO

MIB MIB

AGENT AGENT

www.cs.wustl.edu/�schmidt/Words99.ps.gz

UCIrvine10

ACEOverviewDouglasC.Schmidt

ApplyingACEtoSatelliteCommunicationSystems

WIDE AREA

NETWORK

SATELLITES SATELLITESTRACKING TRACKINGSTATION STATION

PEERS PEERS

STATUS INFO

COMMANDSBULK DATA

TRANSFER

LOCAL AREA NETWORK

GROUNDSTATION

PEERS

GATEWAY

www.cs.wustl.edu/�schmidt/TAPOS-

95.ps.gz

�DomainChallenges

{Longlatencysatellitelinks

{Highreliability

{Prioritization

UCIrvine11

ACEOverviewDouglasC.Schmidt

ApplyingACEtoNetworkManagement

Session RouterModule

PresentationModule

Event FilterModule

Event AnalysisModule

PresentationModule

Switch RouterModule

Reactor

MD110 MD110ERICSSON ERICSSON

TELECOM TELECOM

SWITCHES SWITCHES

SUPER SUPER

VISORS VISORS

MD110 MD110ERICSSON ERICSSON

MD110 MD110ERICSSON ERICSSON

SUPER SUPER

VISORS VISORS

SUPER SUPER

VISORS VISORS

Switch IO

Session IO

www.cs.wustl.edu/�schmidt/DSEJ-94.ps.gz

�DomainChallenges

{Lowlatency

{Multi-platform

{Familyofrelated

services

UCIrvine12

ACEOverviewDouglasC.Schmidt

LessonsLearnedBuildingACE

�Bepatient

{Goodcomponents,frameworks,

andsoftwarearchitecturestake

timetodevelop

�Reuse-in-the-largeworksbest

when:

1.Themarketplaceiscompetitive

2.Thedomainiscomplex

3.Skilledmiddlewaredevelopers

4.Supportivecorporateculture

5.\Reusemagnets"exist

6.Opensourcedevelopmentmodels

�Thebestcomponentscome

fromsolvingrealproblems

{Keepfeedbackloopstight

toavoid\runaway"reuse

e�orts

�Producereusable

componentsbygeneralizing

fromworkingapplications

{i.e.,don'tbuildcomponents

inisolation

UCIrvine13

ACEOverviewDouglasC.Schmidt

ConcludingRemarks

�Developersofreal-timecommunicationsoftwareconfrontrecurring

challengesthatarelargelyapplication-independent

{e.g.,serviceinitializationanddistribution,errorhandling, ow

control,eventdemultiplexing,concurrencycontrol,synchronization,

scheduling

�ProgrammingdirectlytotheunderlyingOSAPIsistedious,error-prone,

andnon-portable

�Successfuldevelopersresolvethesechallengesbyapplyingappropriate

designpatternstocreatecommunicationframeworks

�Applicationframeworksareane�ectivewaytoachievebroadreuseof

software

UCIrvine14

ACEOverviewDouglasC.Schmidt

ObtainingACE

�AllsourcecodeforACEisfreelyavailable

{www.cs.wustl.edu/�schmidt/ACE.html

�Mailinglists

{[email protected]

{[email protected]

{[email protected]

{[email protected]

�Newsgroup

{comp.soft-sys.ace

�Commercialsupport

{www.riverace.com

UCIrvine15