tracking satellites station peers - …schmidt/pdf/ace4.pdfsp onso rs nsf, d arp a, bellco re, bo...
Post on 25-May-2018
216 Views
Preview:
TRANSCRIPT
Using the ACE Framework and Patterns to
Develop OO Communication Software
Douglas C. Schmidt
schmidt@cs.wustl.edu
Washington University, St. Louis
http://www.cs.wustl.edu/�schmidt/
Sponsors
NSF, DARPA, Bellcore, Boeing, CDI/GDIS,
Kodak, Lockheed, Lucent, Microsoft, Motorola, OTI, SAIC,
Siemens SCR, Siemens MED, Siemens ZT, Sprint, USENIX
Douglas C. Schmidt Distributed Object Computing Group
Motivation: the Distributed Software Crisis
WIDE AREA
NETWORK
SATELLITESSATELLITESTRACKINGTRACKINGSTATIONSTATION
PEERSPEERS
STATUS INFO
COMMANDS BULK DATA
TRANSFER
LOCAL AREA NETWORK
GROUNDSTATION
PEERS
GATEWAY� Symptoms
{ Hardware gets smaller,
faster, cheaper
{ Software gets larger, slower,
more expensive
� Culprits
{ Accidental and inherent
complexity
� Solutions
{ Frameworks, components,
and patterns
Washington University, St. Louis 1
Douglas C. Schmidt Distributed Object Computing Group
Techniques for Improving Software
Quality and Productivity
APPLICATIONAPPLICATION
SPECIFICSPECIFIC
LOGICLOGIC
USERUSER
INTERFACEINTERFACE
((AA)) CLASS LIBRARY CLASS LIBRARY
ARCHITECTUREARCHITECTURE
NETWORKINGNETWORKING
MATHMATH ADTADTSS
DATADATA
BASEBASE
APPLICATIONAPPLICATION
SPECIFICSPECIFIC
LOGICLOGIC
MATHMATH
((BB)) APPLICATION FRAMEWORK APPLICATION FRAMEWORK
ARCHITECTUREARCHITECTURE
ADTADTSS
INVOKESINVOKES
CALLCALL
BACKSBACKS
NETWORKINGNETWORKING USERUSER
INTERFACEINTERFACE
DATABASEDATABASE
INVOKESINVOKES
EVENTEVENT
LOOPLOOP
EVENTEVENT
LOOPLOOP
� Proven solutions
{ Components
� Self-contained, \pluggable"
ADTs
{ Frameworks
� Reusable, \semi-complete"
applications
{ Patterns
� Problem/solution pairs in a
context
{ Architecture
� Families of related patterns
and components
Washington University, St. Louis 2
Douglas C. Schmidt Distributed Object Computing Group
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 ! Win32 TLS
{ 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
Washington University, St. Louis 3
DouglasC.Schmidt
DistributedObjectComputingGroup
TheADAPTIVECommunicationEnvironment(ACE)
PR
OC
ES
SE
SP
RO
CE
SS
ES//
TH
RE
AD
ST
HR
EA
DS
DY
NA
MIC
DY
NA
MIC
LIN
KIN
GL
INK
ING
ME
MO
RY
ME
MO
RY
MA
PP
ING
MA
PP
ING
SE
LE
CT
SE
LE
CT
//IO
C
OM
PIO
C
OM
P
SY
ST
EM
SY
ST
EM
VV IP
CIP
CS
TR
EA
MS
TR
EA
M
PIP
ES
PIP
ES
NA
ME
DN
AM
ED
PIP
ES
PIP
ES
CA
PIS
SO
CK
ET
SS
OC
KE
TS//
TL
IT
LI
CO
MM
UN
ICA
TIO
NC
OM
MU
NIC
AT
ION
SU
BS
YS
TE
MS
UB
SY
ST
EM
VIR
TU
AL
M
EM
OR
YV
IRT
UA
L
ME
MO
RY
SU
BS
YS
TE
MS
UB
SY
ST
EM
GE
NE
RA
L P
OS
IX A
ND
W
IN32
S
ER
VIC
ES
PR
OC
ES
SP
RO
CE
SS//T
HR
EA
DT
HR
EA
D
SU
BS
YS
TE
MS
UB
SY
ST
EM
FR
AM
EW
OR
KS
AC
CE
PT
OR
AC
CE
PT
OR
CO
NN
EC
TO
RC
ON
NE
CT
OR
SE
LF-C
ON
TA
INE
D
DIS
TR
IBU
TE
D
SE
RV
ICE
CO
MP
ON
EN
TS
NA
ME
NA
ME
SE
RV
ER
SE
RV
ER
TO
KE
NT
OK
EN
SE
RV
ER
SE
RV
ER
LO
GG
ING
LO
GG
ING
SE
RV
ER
SE
RV
ER
GA
TE
WA
YG
AT
EW
AY
SE
RV
ER
SE
RV
ER
SO
CK
SO
CK
__S
AP
SA
P//
TL
IT
LI__
SA
PS
AP
FIF
OF
IFO
SA
PS
APLO
GL
OG
MS
GM
SG
SE
RV
ICE
SE
RV
ICE
HA
ND
LE
RH
AN
DL
ER
TIM
ET
IME
SE
RV
ER
SE
RV
ER
C+
+W
RA
PP
ER
S
SP
IPE
SP
IPE
SA
PS
AP
CO
RB
AC
OR
BA
HA
ND
LE
RH
AN
DL
ER
SY
SV
SY
SV
WR
AP
PE
RS
WR
AP
PE
RS
SH
AR
ED
SH
AR
ED
MA
LL
OC
MA
LL
OC
TH
E
AC
E
OR
BT
HE
A
CE
O
RB
((TA
OT
AO
))
JA
WS
A
DA
PT
IVE
JA
WS
A
DA
PT
IVE
WE
B
SE
RV
ER
WE
B
SE
RV
ER
MID
DL
EW
AR
E
AP
PL
ICA
TIO
NS
RE
AC
TO
RR
EA
CT
OR
//P
RO
AC
TO
RP
RO
AC
TO
R
PR
OC
ES
SP
RO
CE
SS//
TH
RE
AD
TH
RE
AD
MA
NA
GE
RS
MA
NA
GE
RS
AD
AP
TIV
E
SE
RV
ICE
E
XE
CU
TIV
E
AD
AP
TIV
E
SE
RV
ICE
E
XE
CU
TIV
E (A
SX
)(A
SX
)
SE
RV
ICE
SE
RV
ICE
CO
NF
IGC
ON
FIG
--U
RA
TO
RU
RA
TO
R
SY
NC
HS
YN
CH
WR
AP
PE
RS
WR
AP
PE
RS
ME
MM
EM
MA
PM
AP
OS
AD
AP
TA
TIO
N L
AY
ER
http://www.cs.wustl.edu/�
schmidt/ACE.html
�
ACEOverview
{AconcurrentOO
networking
framework
{AvailableinC++
andJava
{Portedto
VxWorks,POSIX,
andWin32
�
Relatedwork
{x-Kernel
{SysVSTREAMS
WashingtonUniversity,St.Louis
4
DouglasC.Schmidt
DistributedObjectComputingGroup
ACEStatistics
�
ACEcontain>
135,000linesofC++
{Over15person-yearsofe�ort
�
PortedtoUNIX,Win32,MVS,and
embeddedplatforms
{e.g.,VxWorks,LynxOS,pSoS
�
Largeusercommunity
{www.cs.wustl.edu/�
schmidt/ACE-
users.html
�
Currentlyusedbydozens
ofcompanies
{Bellcore,Boeing,
Ericsson,Kodak,
Lockheed,Lucent,
Motorola,SAIC,
Siemens,StorTek,etc.
�
Supportedcommercially
{www.riverace.com
WashingtonUniversity,St.Louis
5
DouglasC.Schmidt
DistributedObjectComputingGroup
PatternsforCommunicationMiddleware
Acc
epto
rA
ccep
tor
Con
nec
tor
Con
nec
tor
Th
read
-per
Th
read
-per
Ses
sion
Ses
sion
Hal
f-S
ync/
Hal
f-S
ync/
Hal
f-A
syn
cH
alf-
Asy
nc
Dou
ble
Dou
ble
Ch
eck
edC
hec
ked
Lock
ing
Lock
ing
Ser
vic
eS
ervic
eC
on
figu
rato
rC
on
figu
rato
r
Rea
ctor
Rea
ctor
Th
read
-per
Th
read
-per
Req
ues
tR
equ
est
Asy
nch
ron
ou
sA
syn
chro
nou
sC
om
ple
tion
Com
ple
tion
Tok
enT
ok
en
Act
ive
Act
ive
Ob
ject
Ob
ject
Exte
rnal
Exte
rnal
Poly
morp
his
mP
oly
morp
his
m
Th
read
Th
read
Sp
ecif
icS
pec
ific
Sto
rage
Sto
rage
Th
read
Th
read
Pool
Pool
Rou
ter
Rou
ter
Con
curr
ency
Con
curr
ency
Patt
ern
sP
att
ern
sE
ven
tE
ven
tP
att
ern
sP
att
ern
sIn
itia
liza
tion
Init
iali
zati
on
Patt
ern
sP
att
ern
s
Pro
act
or
Pro
act
or
�
Observation
{Failuresrarelyresult
fromunknownscienti�c
principles,butfrom
failingtoapplyproven
engineeringpracticesand
patterns
�
Bene�tsofPatterns
{Facilitatedesignreuse
{Preservecrucialdesign
information
{Guidedesignchoices
WashingtonUniversity,St.Louis
6
DouglasC.Schmidt
DistributedObjectComputingGroup
ActiveObjectswithACETasks
AC
TIV
EA
CT
IVE
:: M
essa
ge
Mes
sage
Qu
eue
Qu
euett 22
: :
Task
Task
2:
enq
ueu
e (m
sg)
2:
enq
ueu
e (m
sg)
1:
pu
t (m
sg)
1:
pu
t (m
sg)
:: M
essa
ge
Mes
sage
Qu
eue
Qu
eue
tt 11 : :
Task
Task
:: M
essa
ge
Mes
sage
Qu
eue
Qu
euett 33
: :
Task
Task
6:
pu
t (m
sg)
6:
pu
t (m
sg)
3:
svc
()3:
svc
()4:
deq
ueu
e (m
sg)
4:
deq
ueu
e (m
sg)
5:
do_w
ork
(msg
)5:
do_w
ork
(msg
)
AC
TIV
EA
CT
IVE
AC
TIV
EA
CT
IVE
:: TA
SK
TA
SK
ST
AT
EST
AT
E
:: TA
SK
TA
SK
ST
AT
EST
AT
E
:: TA
SK
TA
SK
ST
AT
EST
AT
E
�
ACETaskFeatures
{Queueing
{Eventdemultiplexing
{Concurrency
{Dynamiclinking
WashingtonUniversity,St.Louis
7
Douglas C. Schmidt Distributed Object Computing Group
The ACE Stream Class Category
NETWORK INTERFACE
OR PSEUDO-DEVICES
STREAMSTREAMTailTail
MultiplexorMultiplexor
APPLICATIONAPPLICATION
StreamStream
STREAMSTREAMHeadHead
APPLICATIONAPPLICATION
StreamStream
UPSTREAMD
OWNSTREAM
MESSAGEMESSAGE
OBJECTOBJECT
WRITEWRITE
TASKTASK
OBJECTOBJECT
READREAD
TASKTASK
OBJECTOBJECT
MODULEMODULE
OBJECTOBJECT
open()=0close()=0put()=0svc()=0
� ACE Stream Features
{ Layered service
composition
{ Synchronous and
asynchronous messaging
{ Dynamic con�guration
Washington University, St. Louis 8
Douglas C. Schmidt Distributed Object Computing Group
Alternative Concurrency ModelsModuleModule
AA
PROCESS ORPROCESS OR
THREADTHREAD
READ TASKREAD TASK
OBJECTOBJECT
READ TASKREAD TASK
OBJECTOBJECT
MODULEMODULE
OBJECTOBJECT
ModuleModuleBB
ModuleModuleCC
ModuleModuleAA
ModuleModuleBB
ModuleModuleCC
2: svc()2: svc()
1: put()1: put()
4: svc()4: svc()
3: put()3: put()
ACTIVEACTIVE
ACTIVEACTIVE
ACTIVEACTIVE
ACTIVEACTIVE
2: put()2: put()
1: put()1: put()
ACTIVEACTIVEACTIVEACTIVE
TASKTASK--BASEDBASED
THREAD ARCHITECTURETHREAD ARCHITECTURE
MESSAGEMESSAGE--BASEDBASED
THREAD ARCHITECTURETHREAD ARCHITECTURE
MESSAGEMESSAGE
OBJECTOBJECT
� Message-based
Evaluation
{ Low overhead
{ Harder to program
� Task-based Features
{ Higher overhead
{ Easier to program
Washington University, St. Louis 9
Douglas C. Schmidt Distributed Object Computing Group
Use-cases for ACE
APPLICATIONSAPPLICATIONAPPLICATION--SPECIFICSPECIFIC
APPLICATIONAPPLICATION--INDEPENDENTINDEPENDENT
APPLICATIONSAPPLICATIONSAPPLICATIONSAPPLICATIONS
ConcurrencyConcurrencyglobalglobal
ReactorReactor
ServiceServiceInitializationInitialization
ServiceServiceConfiguratorConfigurator
StreamStreamFrameworkFramework
InterprocessInterprocessCommunicationCommunication
NetworkNetworkServicesServices
� Domains
{ Medical imaging
{ Network
management
{ Wireless
communications
{ Real-time avionics
{ Multimedia services
Washington University, St. Louis 10
Douglas C. Schmidt Distributed Object Computing Group
Applying ACE to Medical Imaging
DDIIAAGGNNOOSSTTIICC
SSTTAATTIIOONNSS
AATTMMMMAANN
AATTMMLLAANN
AATTMMLLAANN
MMOODDAALLIITTIIEESS
((CCTT,, MMRR,, CCRR)) CCEENNTTRRAALL
IIMMAAGGEESSTTOORREE
CCLLUUSSTTEERRIIMMAAGGEESSTTOORREE
DDXXIIMMAAGGEESSTTOORREE
� Domain Challenges
{ Large volume of \Blob"
data
� e.g., 10 to 40 Mbps
{ \Lossy compression"
isn't viable
{ Prioritization of requests
� �schmidt/COOTS-96.ps.gz
� �schmidt/av.ps.gz
Washington University, St. Louis 11
Douglas C. Schmidt Distributed Object Computing Group
Applying ACE to Network Management
Session RouterModule
PresentationModule
Event FilterModule
Event AnalysisModule
PresentationModule
Switch RouterModule
Reactor
MD110MD110 ERICSSONERICSSON
TELECOMTELECOM
SWITCHESSWITCHES
SUPERSUPER
VISORSVISORS
MD110MD110 ERICSSONERICSSON
MD110MD110 ERICSSONERICSSON
SUPERSUPER
VISORSVISORS
SUPERSUPER
VISORSVISORS
Switch IO
Session IO
� Domain Challenges
{ Low latency
{ Multi-platform
{ Family of related
services
{ �schmidt/DSEJ-
94.ps.gz
Washington University, St. Louis 12
Douglas C. Schmidt Distributed Object Computing Group
Applying ACE to Global PCS
WIDE AREA
NETWORK
SATELLITESSATELLITESTRACKINGTRACKINGSTATIONSTATION
PEERSPEERS
STATUS INFO
COMMANDS BULK DATA
TRANSFER
LOCAL AREA NETWORK
GROUNDSTATION
PEERS
GATEWAY� Domain Challenges
{ Long latency satellite links
{ High reliability
{ Prioritization
{ �schmidt/TAPOS-95.ps.gz
Washington University, St. Louis 13
Douglas C. Schmidt Distributed Object Computing Group
Applying ACE to Real-time Avionics
Consumers
I/O Facade
SensorProxy
SensorProxy
SensorProxy
SensorProxy
1: I/O via interrupts
I/O Facade I/O Facade
EventChannel
2: push (demarshaled data)
AircraftSensors
3: push (demarshaled data)
Suppliers
� Domain Challenges
{ Real-time periodic
processing
{ Complex dependencies
{ Very low latency
{ �schmidt/JSAC-
98.ps.gz
Washington University, St. Louis 14
Douglas C. Schmidt Distributed Object Computing Group
The ACE ORB (TAO)
NETWORKNETWORK
ORBORB RUN RUN--TIMETIME
SCHEDULERSCHEDULER
REALREAL--TIMETIMEORBORB CORECORE
operation()operation()
RIDLRIDLSTUBSSTUBS
REALREAL--TIMETIME
OBJECTOBJECT
ADAPTERADAPTER
RIDLRIDLSKELETONSKELETON
in argsin args
out args + return valueout args + return value
CLIENTCLIENT
OS KERNELOS KERNEL
HIGHHIGH--SPEEDSPEED
NETWORK INTERFACENETWORK INTERFACE
REALREAL--TIME ITIME I//OOSUBSYSTEMSUBSYSTEM
RIOPRIOP
OBJECTOBJECT((SERVANTSERVANT))
OS KERNELOS KERNEL
HIGHHIGH--SPEEDSPEED
NETWORK INTERFACENETWORK INTERFACE
REALREAL--TIME ITIME I//OOSUBSYSTEMSUBSYSTEM
� TAO Overview
{ High-performance,
real-time ORB
� Networking and
avionics focus
{ Leverages ACE
� Runs on VxWorks,
POSIX, and Win32
� �schmidt/TAO.html
Washington University, St. Louis 15
DouglasC.Schmidt
DistributedObjectComputingGroup
JAWSAdaptiveWebServer
WW
WW
WW
SE
RV
ER
SE
RV
ER
2:
ind
ex.h
tml
2:
ind
ex.h
tml
1:
GE
T ~
sch
mid
t1:
GE
T ~
sch
mid
tH
TT
P/1
.0H
TT
P/1
.0 CO
MM
UN
ICA
TIO
N P
RO
TO
CO
L
(E.G
., H
TT
P)
GU
I
HT
ML
PA
RS
ER
RE
QU
ES
TE
R
GR
AP
HIC
SA
DA
PT
ER
NE
TW
OR
KN
ET
WO
RK
OS
K
ER
NE
LO
S K
ER
NE
L
OS
I
OS
I//
O
SU
BS
YS
TE
MO
S
UB
SY
ST
EM
NE
TW
OR
K A
DA
PT
ER
SN
ET
WO
RK
A
DA
PT
ER
S
OS
K
ER
NE
LO
S K
ER
NE
L
OS
I
OS
I//
O
SU
BS
YS
TE
MO
S
UB
SY
ST
EM
NE
TW
OR
K A
DA
PT
ER
SN
ET
WO
RK
A
DA
PT
ER
S
DIS
PA
TC
HE
RD
ISP
AT
CH
ER
PR
OT
OC
OL
PR
OT
OC
OL
HA
ND
LE
RS
HA
ND
LE
RS
WW
WW
WW
CL
IEN
TC
LIE
NT
�
jxh/research/
�
JAWSOverview
{Ahigh-performance
Webserver
�
Flexible
concurrencyand
eventdispatching
mechanisms
�
FullHTTP1.0and
CGIsupport
{LeveragestheACE
framework
�
PortedtomostOS
platforms
WashingtonUniversity,St.Louis
16
DouglasC.Schmidt
DistributedObjectComputingGroup
JavaACE
FR
AM
EW
OR
KS
AN
D
CL
AS
S
CA
TE
GO
RIE
S
DIS
TR
IBU
TE
D
SE
RV
ICE
S A
ND
CO
MP
ON
EN
TS
NA
ME
SE
RV
ER
TO
KE
N
SE
RV
ER
LO
GG
ING
SE
RV
ER
TIM
E
SE
RV
ER
JAV
A
WR
AP
PE
RS
SY
NC
H
WR
AP
PE
RS
SO
CK_S
AP
TH
RE
AD
MA
NA
GE
R
LO
G
MS
G
TIM
ER
QU
EU
E
SE
RV
ICE
CO
NF
IGU
RA
TO
R
AD
AP
TIV
E S
ER
VIC
E E
XE
CU
TIV
E
(AS
X)
AC
CE
PT
OR
CO
NN
EC
TO
RS
ER
VIC
E
HA
ND
LE
R
JAV
A V
IRTU
AL
MA
CH
INE
(JV
M)
�
schmidt/JACE.html
�
schmidt/MedJava.ps.gz
�
schmidt/C++2java.html
�
JavaACEOverview
{AversionofACE
writteninJava
{Usedformedical
imagingprototype
WashingtonUniversity,St.Louis
17
DouglasC.Schmidt
DistributedObjectComputingGroup
LessonsLearnedBuildingACE
�
Goodcomponents,frameworks,andsoftwarearchitecturestaketimeto
develop
�
Reuse-in-the-largeworksbestwhen:
{Themarketplaceiscompetitive
{Thedomainiscomplex
{Buildingmiddlewarein-housecoststoomuch
{Corporatecultureissupportive
�
Producereusablecomponentsbygeneralizingfromworkingapplications
{i.e.,don'tbuildcomponentsinisolation
�
Thebestcomponents(andsystemsresearch)comefromsolvingreal
problems
WashingtonUniversity,St.Louis
18
DouglasC.Schmidt
DistributedObjectComputingGroup
ConcludingRemarks
�
Developersofcommunicationsoftwareconfrontrecurringchallenges
thatarelargelyapplication-independent
{e.g.,serviceinitializationanddistribution,errorhandling, ow
control,eventdemultiplexing,concurrencycontrol
�
Successfuldevelopersresolvethesechallengesbyapplyingappropriate
designpatternstocreatecommunicationframeworks
�
Applicationframeworksareane�ectivewaytoachievebroadreuseof
software
WashingtonUniversity,St.Louis
19
DouglasC.Schmidt
DistributedObjectComputingGroup
ObtainingACE
�
ACEisanOOframeworkthatrei�eskeycommunicationsoftware
patterns
�
AllsourcecodeforACEisfreelyavailable
{www.cs.wustl.edu/�
schmidt/ACE.html
�
Mailinglists
{ace-users@cs.wustl.edu
{ace-users-request@cs.wustl.edu
{ace-announce@cs.wustl.edu
{ace-announce-request@cs.wustl.edu
�
Newsgroup
{comp.soft-sys.ace
WashingtonUniversity,St.Louis
20
top related