A las
: a pla o m o anspa en ly de eloping dis ibu ed
applica ions
M. Fai en and
A. Vinacua
Depa men o So wa e,
Ins i u e o Rob o ics and Indus ial In o ma ics, U.P.C.
Diagonal 647, 8
ena
plan a
E08028 Ba celona, Spain
+34 3 401 6739
m ai en,al a
g
@lsi.upc.es
ABSTRACT
We discuss he design and implemen a ion o a so -
wa e de elopmen pla o m ha allows unsophis ica ed
p og amme s o include ad anced ea u es o hei ap-
plica ions wi h no o e y li le ex a in o ma ion and
eo . These ea u es include he spli ing o he ap-
plica ion in dis inc p o cesses ha may b e dis ibu ed
o e a ne wo k, a p owe ul congu a ion and sc ip ing
language, and se e al o ols including an inpu sys em
o easily cons uc easonable in e aces. We a emp
o desc ib e b o h he echniques used o achie e ans-
pa ency o he p og amme and wha exac ly a use
mus do o build new
A las
mo dules.
KEYWORDS
Dis ibu ed applica ions, So wa e de elopmen o ols,
Ex e nal da a ep esen a ion
1 INTRODUCTION
A las
ep esen s an a emp o acili a e o p og am-
me s in ou lab he inco p o a ion o hei applica ions o
ce ain se ices a a minimum cos . In ac ,
A las
helps
hem build dis ibu ed applica ions (p oblems in ol ed
in dis ibu ion we e o cused in [2]), p o ides hem wi h
p owe ul congu a ion mechanisms and a mac o lan-
guage and include a jou naling acili y, among o he
hings. All hese asp ec s equi e a subs an ial amoun
o amilia i y by he p og amme wi h he said ech-
niques, and a ai amoun o p og amming o hem on
each applica ion.
In a esea ch lab like ou s a la ge amoun o so wa e
is cons an ly b eing de elop ed o demons a e ideas, bu
e en ually has o b e ew i en when ce ain unc ion-
ali ies need o b e combined. I also emains in an un-
nished s a us and is usually ha d o use o demon-
s a e by anyb o dy excep he au ho , b ecause o he
high cos o nishing up" he de ails. We hen eal-
ized ha a de elopmen pla o m ha acili a ed he
cons uc ion o his so wa e gi ing easy access o many
sophis ica ed esou ces and es ablishing basic ules ha
eased he join op e a ion o mo dules was aluable o us,
since i enabled exp e imen al so wa e o g ow in a mo e
ha monious way, and acili a ed e en he euse o old
comp onen s.
E ol ing om he ideas o iginally p esen ed in [9] we
designed
A las
o his pu p ose. Since ou wo k is cen-
e ed in Compu e G aphics applica ions we included
ce ain mechanisms esp ecially designed o ha domain
which we' e discussed in sp ecialized o ums [6]. How-
e e by a he la ges p o ions o eo and o co de
in ol ed e y gene al o ols usable by in e ac i e applica-
ions in mos o he domains. The e o e
A las
can also
b e iewed as a gene al p og amming o ol ha g ea ly
simplies he cons uc ion o ai ly sophis ica ed appli-
ca ions.
In his pap e we shall p esen a iew o
A las
om
his las p e sp ec i e, discussing he gene al asp ec s no
p esen in o he publica ions ab ou i and showing how
and in which ways i can enhance he so wa e de elop-
men p o cess. In he nex sec ion we shall enume a e
mo e conc e e ob jec i es and c i e ia used in he design
o
A las
. Sec ion h ee will b iey p esen he solu-
ion adop ed o he in e p o cess communica ion, and
sec ion ou will desc ib e asp ec s o he design and im-
plemen a ion o an
A las
applica ion om he p oin o
iew o he use | he p og amme building he appli-
ca ion. Finally we will u n b iey o conclusions and
u u e wo k.
2 OBJECTIVES AND DESIGN CRITERIA
The s p io i y in he design o
A las
has b een o
make i s inne wo kings as anspa en o he use as
p ossible. To his end, some asp ec s may no ha e he
in insically b es o mos p owe ul o mos exible so-
lu ion, bu use s can build applica ions on
A las
wi h-
ou almos any conce n ab ou i , ye ge ing subs an ial
b ene s om i s p esence.
In e ms o unc ionali y,
A las
includes hese ob jec-
i es:
Low le el o pa al lelism
.
A las
applica ions ea-
u e se e al dis inc p o cesses unning concu en ly
in he same o die en machines in a ne wo k;
p o cesses encapsula e
A las
comp onen s o use
mo dules. The use implemen s ou ines ha a e
1
accessible o o he p o cesses as emo e p o cedu es.
In e p ocess communica ion
. Since he applica ion
is spli in se e al p o cesses, hese need o com-
munica e o e he ne wo k and exchange da a b e-
ween p ossibly die en a chi ec u es. This gi es
ise o many die en p oblems ha need o b e ad-
d essed [1].
S anda dized inpu model
. A g ea deal o eo
in an applica ion's de elopmen is sp en in i s use
in e ace.
A las
p o ides a uni o m bu exible
iew o inpu s ha allows many die en dialogue
mo des in a uni o m way, somewha ela ed o Ab-
s ac Da a Views [3].
Congu a ion and mac o language
. A exible ye
p owe ul way mus b e p o ided o a p og amme
o desc ib e wha is in each o his mo dules, and how
i should ela e o o he s, and also o dene he
dialogues o he applica ion and i s b eha io in a
simple way.
Jou naling mechanism
. This is no ye imple-
men ed and only men ioned he e in passing. I is
pa ially designed and will b e a he hea o o he
se ices oe ed by
A las
.
Faul ole ance
. Since he applica ion is sp ead ou
among se e al hos s, i b ecomes mo e exp osed o
ansien o p e manen ailu es (o he communica-
ions o o any o he hos s in ol ed). Faul ole -
ance is anspa en ly p o ided based on he jou -
naling mechanism and on hea b ea messages sen
by all p o cesses so ha hei s a us can b e assessed.
Reusabili y
. Each use mo dule is comple ely iso-
la ed om o he s (in a sepa a e p o cess) excep
h ough a well dened in e ace desc ib ed in
A -
las
's p og amming language. Thus new comp o-
nen s can inco p o a e and use eliably old ones.
No all hese asp ec s can b e discussed he e, as hey
would ake an ino dina e amoun o space. The ollow-
ing sec ions cen e a ound asp ec s o he p esen b e a
e sion conce ning he housekeeping o p o cesses and
communica ions, and how
A las
helps use s build ap-
plica ions wi h hese ea u es easily.
3 IMPORTANT ISSUES IN THE
A las
COM-
MUNICATIONS MECHANISM
3.1 P oblems Tha Need To Be Add essed
Since
A las
s p io i y is o oe he maximum ans-
pa ency o he de elop e , he design o
A las
a chi ec-
u e mus hide he in icacies o he in e p o cess com-
munica ions om he p og amme .
The communica ions mechanism has o add ess p ob-
lems like how o s a a p o cess in an applica ion, how
o manage he in e change o in o ma ion b e ween p o-
cesses and also how o de ec ailu es in he applica-
ion communica ions in o de o know when he
aul -
ole ance
mechanism should b e ac i a ed.
To s a a p o cess in a die en machine i is necessa y
o ha e a p o cess lis ening o a connec ion in he cho-
sen hos ( his equi es o ha e knowledge o low le el
connec ions in he op e a ing sys em), and i would b e
also desi able ha he p o cess o b e s a ed inhe i s he
applica ion en i onmen .
The in e change o in o ma ion b e ween p o cesses has
also an added dicul y when hey a e unning in an
he e ogeneous ne wo k b ecause da a can b e in e p e ed
wi h die en meaning dep ending on he a chi ec u e
whe e hey a e used.
Nex subsec ion explains how hese p oblems ha e b een
add essed in
A las
.
3.2 The App oach Used In
A las
The
A las
a chi ec u e is ep esen ed in gu e 1, whe e
he o als deno e p o cesses and he a ows ep esen
communica ions b e ween hem. I is a cen alized a -
chi ec u e whe e he p o cess
dis
ac s as he mas e
p o cess and is he cen e o each
A las
applica ion.
This a chi ec u e allows an in elligen dis ibu ion o b e
managed, i.e. he
dis
p o cess is able o decide he
p o cesses dis ibu ion dinamically dep ending on he ap-
i ude o each hos in he ne wo k o un each applica-
ion p o cess.
The e o e, his mas e p o cess is he mos c ucial one in
his a chi ec u e and also in he communica ions mech-
anism b ecause i is he communica ions cen e o each
applica ion. I is also he one o ake ca e ab ou he
s a us o each p o cess in execu ion a any ime. This
is easy b ecause o he
hea bea
mechanism designed in
A las
.
The
hea bea
mechanism makes e e y p o cess b eing ex-
ecu ed in he applica ion send a sho message p e io di-
cally o he mas e p o cess gi ing he equi ed in o ma-
ion o con ol he global s a us o he execu ion. This
mechanism is e y use ul o de ec i a p o cess o he
communica ion wi h i ail, he e o e i will b ecome nec-
essa y o he
aul - ole ance
mechanism which, al hough
i is no a ailable ye , has b een almos comple ely de-
signed. This mechanism will b e sho ly discussed in he
u u e wo k sec ion b elow.
Se e P ocess Design
The
A las
se e p o cess is a simple bu e y imp o -
an p o cess in he
A las
a chi ec u e. I s ole, in he
2
B-Rep
Volume
Command
Subsys em
Inpu
Subsys em Sol e
Cons ain s
dis
se e @hos
Oc ee
Machine
Figu e 1: A sample execu ion o an
A las
applica ion.
cu en e sion, is o accep connec ions om he mas-
e p o cess
dis
and un he applica ion p o cess e-
ques ed by i . In u u e e sions i will also implemen
a handshake wi h
dis
o achie e a ce ain deg ee o
load-balancing.
As he se e daemon is no mally un a b o o ime wi h
oo
p e missions, i mus change i s p e missions o he
use 's p e missions b e o e execu ing he use 's p o cess
in o de o p o ec he sys em. Mo eo e , o do ha
i mus b e su e o he iden ica ion o he use and
also inhe i he use en i onmen o achie e a success-
ul execu ion. This en i onmen in o ma ion is sen by
he
dis
p o cess in he connec ion message. The use
iden ica ion mechanism is based on a sp ecial 32 by es
long use iden ie ha e e y
A las
use mus ha e
gene a ed b e o e he execu es
A las
o he s ime.
Communica ions D i e s Design
An
A las
applica ion p o cess execu ion is based on a
emo e-p ocedu e-cal l
-like pa adigm. A p o cess can b e
hen conside ed as a se o ou ines o do he p o cess e-
la ed wo k plus a communica ions d i e o manage he
in e change o messages wi h he es o he applica ion
(see sec ion 4).
The communica ions d i e is he main p og am o he
p o cess, and i s ole is o lis en eques s o messages
om he mas e p o cess and o he connec ions added
and dispa ch hem as needed. The mos ele an e-
ques s o messages sen by he mas e p o cess can b e
ela ed wi h a ou ine call, da a answe ing a eques , o
an
A las
e en no ica ion (see sec ion 4.3).
The main execu ion o an
A las
p o cess is hen he
dispa ch ou ine o i s communica ions d i e . I en e s
in a lo op lis ening in he g oup o channels ac i ed by
his p o cess ( he de aul is only he connec ion wi h
he mas e p o cess), and when i ecei es a message i
dispa ches i and keep on lis ening o ano he one (see
gu e 2). Apa om dispa ching messages he d i e
can also dispa ch in e up ions (like signals). In ac he
hea bea
mechanism uses he SIGALRM in e up ion.
D i e
add ime
add channel
ou ine call
ATLAS e en ea men
answe da a
dispa ch
dispa ch
dispa ch
imeou handling
imeou
sub channel
op ional
Figu e 2: D i e ole scheme.
The de aul ea men o an
A las
p o cess d i e is
managing he messages comming om he mas e p o-
cess and he in e up ion o SIGALRM. Bu he ac ual
d i e is much mo e exible (as can b e seen in gu e 2).
I also allows he p o cess o add channels o lis en o,
add a ime ea men o emo e channels added b e-
o e. This exibili y only equi es o ha e implemen ed
he ea men o messages b eing ecei ed by hese new
channels.
The
A las
communica ions mechanism is implemen ed
using so cke s, and i s implemen a ion akes p o o he
w app e classes o so cke s oe ed by he public domain
package ACE W app e s (see [7] and [8]).
3
The bigges p oblem o sol e in communica ions b e-
ween
A las
p o cesses is he in e change o da a. Since
hese p o cesses may b e unning in die en a chi ec-
u es, da a mus b e sen h ough he ne wo k using
a s anda d ep esen a ion in o de ha hey ha e he
same meaning o he die en p o cesses.
Fu he mo e, hese da a need o b e {a leas e y o en{
accessible o
A las
i sel , which includes a p og am-
ming language o dene use -machine dialogs o o he -
wise in e connec o die en mo dules (see sec ion 4).
The p oblem o ac ually ans e ing he da a obus ly
has long since b een sol ed. Indeed we jus ely on
XDR [10] o ha pu p ose. To a ain hese da a sha ing
wi h he maximum o anspa ency o he de elop e ,
A las
includes a mechanism based on ou da a s uc-
u es (called
Va iables
) used o w ap use da a in each
p o cess ( his mechanism is ho oughly explained in [5]).
These s uc u es oe access me ho ds used by he in e -
p e e o he command language, and also encapsula e
me ho ds o enco de and deco de XDR s eams anspa -
en ly. Using his mechanism and adding also he au-
oma ic co de gene a ion explained in he nex sec ion,
he de elop e needs no b e awa e o XDR and indeed
almos no b e awa e o ou in e change me ho d a all.
4 DESIGNING AN APPLICATION. BENE-
FITS TO THE DEVELOPER.
4.1 T anspa ency To The De elop e
The mos imp o an aim ha
A las
wan s o achie e
is a high le el o anspa ency o he de elop e . Almos
all se ices ha
A las
oe s o applica ions de elop ed
o e i a e echniques ha no mally equi e a lo o sp e-
cialized p og amming. The emphasis in
A las
's design
is o elie he p og amme om his eo .
Many acili ies oe ed by
A las
, like dis ibu ion o
he communica ions mechanism, mus b e o ally man-
aged by
A las
in o de o achie e he maximum ans-
pa ency o he de elop e . The p og amme need no
know ab ou hese mechanisms and can concen a e on
he ob jec i es o his applica ion.
Au oma ic Code Gene a ion
The
A las
p o cess communica ions equi e qui e a bi
o co de in each p o cess de o ed o handshaking wi h
dis
, gene a ing he
hea bea
messages a he ade-
qua e a e, p epa ing he a gumen s o p o cess ou-
ines o collec ing esul s and enco ding hem o b eing
ansp o ed o e he ne wo k, and dispa ching calls o
p o cess ou ines. To handle his,
A las
au oma ically
gene a es co de s ubs ha he de elop e mus link wi h
his p og am. These s ubs a e cons uc ed om he in-
e ace decla a ion o he p o cess (like in gu e 3), which
con ains he yp e deni ions used o a iables o b e
exp o ed and he p o o yp e deni ions o he p o cess
ex e n ou ines.
The gene a ed co de also includes s ubs o au oma i-
cally ans e he use 's da a in o
A las
Va iables
and
backwa ds, h ough
b idge ypes
used o isola e he de-
elop e om he de ails o he
A las
Va iables
(which
an ad anced p og amme can use di ec ly i he wishes
o).
The
b idge ypes
a e used o build in e media e ob-
jec s wi h he da a s uc u e o he p o cess ob jec s (as
p e hei
A las
decla a ions) bu wi hou he me ho ds
o he p o cess ob jec s (which emain unknown o
A -
las
). Each
b idge ype
has also me ho ds o ansla e o
and om
A las
Va iables
, making b o h ansla ions
anspa en o he de elop e . The only bu den on he
de elop e is hen o p o ide his classes wi h con e sion
me ho ds o and om hese
b idge ype
ob jec s which
is usually i ial (unless he de elop e choses o ha e a
e y die en s uc u e o he
A las
da a ha he one
used in e nally by his p og am).
As an example we can see some ele an p o ions o his
au oma ically gene a ed co de in app endix.
4.2 Design P o cess O An
A las
Applica ion
An
A las
applica ion is a se o p o cesses which can
communica e b e ween hem h ough he
A las
com-
munica ions mechanism. Each p o cess can b e seen as a
mo dule oe ing some public me ho ds ha can b e used
by he o he p o cesses. The e o e, i mus b e designed
as a se o exp o ed ou ines ha may b e called by o he
p o cesses. This should b e he gene al iew o a p o cess
b elonging o an
A las
applica ion.
F om he de elop e p oin o iew, a p o cess consis s o
wo pa s: i s in e ace and i s implemen a ion.
The P ocess In e ace
The p o cess in e ace is a mo dule w i en in ATL lan-
guage which denes he p o o yp e o he public ou ines
o he p o cess and he needed yp es o hei pa ame e s
and e u n esul s.
The ATL language (desc ib ed in de ail in [4]) is an im-
p e a i e and mo dula language designed o
A las
ap-
plica ions. I allows o dene yp es, a iables, unc ions
and p o cedu es ha can b e exp o ed ( isible o he o h-
e s) o lo cal. I also accep s he mos common con ol
s uc u es inside unc ions and p o cedu es (condi ion-
als, lo ops, e c.) and ou ine calls b o h synch onous and
asynch onous.
Al hough only i s p o o yp es and yp es a e needed o a
p o cess in e ace, he mo dule dening he p o cess in e -
ace can also include unc ions o p o cedu es dened in
ATL which desc ib e he in e ac ion wi h o he p o cesses
4
in he applica ion o wi h he use (e.g. asking o in-
pu da a). ATL mo dules which a e no he in e ace o
any p o cess bu dene he execu ion co o dina ion and
in e ac ion b e ween p o cesses can also b e dened in he
applica ion, and use s may dynamically add hei own.
An example o an ATL mo dule wi h pa o he in e ace
o a p o cess called
olum
can b e seen in gu e 3. Since
i is an example i is no comple e, bu i shows he de -
ini ion o a se o yp es exp o ed by he mo dule (some
o hem a e needed as pa ame e s o ex e n ou ines),
he p o o yp es o wo ex e n ou ines ( hese p o o yp es
and he yp es o i s pa ame e s would o m he in e ace
o he p o cess), and he desc ip ion o a p o cedu e (b e-
ing also exp o ed o b e isible o o he mo dules) ha
combines he execu ion o he p o cess ou ines, asks o
an inpu da um ( h ough
GETDATA
) and also calls o a
p o cedu e o ano he mo dule (
se::Ou pu
).
USE se;
EXPORT #de ype poin STRUCT
x -> eal;
y -> eal;
z -> eal;
ENDSTRUCT
EXPORT #de ype ace VECTOR [3] OF STRUCT
p1 -> poin ;
p2 -> poin ;
id -> in ege ;
ENDSTRUC T
EXPORT #de ype simplex STRUCT
name -> s ing;
sides -> VECTOR [4] OF ace;
ENDSTRUC T
EXPORT #de ype scene VECTOR [100] OF simplex
EXPORT #de ype p ope y in ege
EXPORT scene o alsc;
...
PROT
EXTERN FUNCTION segmen a io n (scene sc, p ope y p)
RETURNS scene;
EXTERN PROCEDURE display_ sc ene (scene sc);
...
ENDPROT
...
EXPORT PROCEDURE Segmen S im pl ex () IS
display_s ce ne (segmen a i on ( o a ls c,
GETDATA(" In pu he p ope y alue"))) ;
se::Ou pu ("Segmen a i on comple e d" ,"m ") ;
ENDPROCED UR E
Figu e 3: Po ion o he in e ace deni ion in
A las
o he olume mo deling p o cess ( olum").
The P ocess Implemen a ion
Since gi ing he p o cess in e ace in he ATL mo d-
ule allows
A las
o gene a e co de s ubs o implemen
he communica ions d i e o his p o cess (see subsec-
ion 4.1), om he de elop e p oin o iew he p o cess
implemen a ion consis s o he se o C++ ou ines de-
cla ed as ex e nals in he ATL mo dule plus he deni-
ion o he C++ classes used by hei pa ame e s. This
implemen a ion can also include wha e e he de elop e
wan s as a p i a e pa o he p o cess. This pa won'
b e isible ou side he p o cess.
Figu e 4 shows how an
A las
execu able p o cess is gen-
e a ed om i s sou ce les. The les depic ed on he le
mos column a e hose ha he de elop e mus imple-
men .
The au oma ically gene a ed co de is di ided in h ee
les: he
a l p ocess.hh
le denes he C++ p o-
o yp es o he p o cess ou ines decla ed as ex e n
ou ines in he ATL mo dule; he
a l p ocess.H
le
has he
b idge ypes
implemen a ion o ha yp es
used by he ex e n ou ines o he p o cess; nally he
a l p ocess.C
le implemen s he main co de o he
communica ions d i e and also auxila y ou ines which
con e
A las
Va iables
o he p o cess C++ classes
and backwa ds in o de o b e able o call he co e-
sp onding p o cess ou ine wi h he co ec pa ame e s
and esul a iables.
4.3 O he Bene s To The De elop e
The e a e also o he b ene s p o ided o he de elop e
ha mayb e a e in e es ing o b e men ioned:
A un ime, he
A las
ke nel keeps some s uc-
u es con aining in o ma ion ab ou he s a us o
he applica ion (wha p o cesses a e in execu ion,
i he e is some eques wai ing o an inpu da a,
e c). To gi e he opp o uni y ha an applica ion
p o cess b e in o med ab ou changes in his in e nal
s uc u es,
A las
oe s he
A las
e en s mecha-
nism
ha allows he p o cess o ask o a subsc ip-
ion o a pa icula
A las
e en (ADD PROCESS
when a new p o cess s a s in he applica ion o
ADD INPUT when an inpu is p o duced by he end
use , o example). Whene e an
A las
e en is
p o duced he
dis
p o cess sends he co esp ond-
ing e en message o e e y p o cess subsc ib ed o
ha e en , and he d i e o he p o cess, when i
ecei es his e en message, calls he ou ine a -
ached o his e en a subsc ip ion ime.
In o de o add ess he
s anda dized inpu model
p esen ed as an
A las
ob jec i e in sec ion 2,
A -
las
also oe s a gene ic inpu handling p o cess. I
p o ides a window in which all he ex ual in e -
ac ions o ccu (issuing commands o en e ing nu-
me ical da a), bu can also b e ins uc ed o cap-
u e e en s om o he windows (owned by he es
o he p o cesses in he applica ion) and conside
hem inpu da a o b e channeled o hose p o cesses.
The inpu sys em is also ex ensible. In ac i is
also an in e ace b e ween
A las
and an ex ended
Tcl/Tk [11] engine, so sc ip s in Tcl can b e sen o
i o ins an ia e new in e ace comp onen s.
Using his
A las
comp onen he de elop e can
p epa e he use in e ace o his applica ion al-
mos i ially, and dedica e mos o his ime o he
p op e sub jec o his applica ion.
5
(p o o ypes)
ATLAS p ocessgene a ed ilesde elope iles
a l_p ocess.hh
a l_p ocess.H
a l_p ocess.C
(b idge ypes)
(d i e main)
p ocess.a l
in e ace
p ocess.h
(C++ classes)
includes
includes
p ocess.C
p i a e
pa
+
ou ines
ex e n
implemen a ion
p ocess
Figu e 4: C ea ing an
A las
p o cess.
The i ual machine ha in e p e s ATL co de al-
lows b o h synch onous and asynch onous calls o
ex e nal ou ines. Some p o cesses may he e o e
ac as la ge ba ch p o cesses ha a e execu ed con-
cu en ly wi h he applica ion. To endez ous wi h
hese asynch onous calls,
A las
uses a simple de-
ice: he i ual machine ags all ou pu pa am-
e e s o e u n alues o an asynch onous call as
di y", and any a emp o use one o hem as an
- alue eezes he execu ing h ead. Thus asyn-
ch onous calls may b e issued and o he p o ions
may p op e ly awai hei comple ion in a anspa -
en manne .
5 CONCLUSIONS AND FUTURE WORK
We ha e p esen ed a so wa e pla o m designed o al-
low de elop e s o inco p o a e ad anced ea u es in hei
de elopmen wi h he leas hassle. I is p esen ly b eing
used wi hin ou lab o p o se e al packages de elop ed
he e, and also o build new ones. I 's design a o s
he cons uc ion o eusable mo dules ha can ela i ely
easily b e combined wi h each o he . This seems e y
desi able, esp ecially in an en i onmen like ou s, whe e
la ge p o ions o co de a e cons an ly b eing gene a ed by
s uden s which la e depa .
The use s may jus as easily add p o cesses o implemen
a new applica ion o o ex end
A las
i sel . P esen ly,
o ins ance, a menu-handling mo dule is b eing con-
s uc ed, ha will hen b e a ailable o all o he
A las
applica ions o dene hei own, e y exible, menus.
We a e cu en ly p o ing he cu en e sion (0.2) o
A las
o die en pla o ms, cu en ly including Suns
unde b o h Sola is 1.x and 2.x, and HPUX, bu so on
o include also SGI's IRIX 6.x and Windows NT. We
a e also comple ing he jou naling mechanism, which
will no only allow eplays o sessions, bu will supp o
he aul - ole ance wi hin
A las
, and will p o ide un-
limi ed (alb ei exp ensi e) undo's and edo's h ough a
commi " blo cking ins uc ion wi hin he jou nal, and
supp o o in e se unc ions.
Among he nea u u e p o jec s, we plan o add some
supp o o CSCW by he simple de ice o cloning he
applica ion o he die en use s collab o a ing, and es-
ablishing sp ecial connec ions b e ween he co esp ond-
ing
dis
p o cesses, only one o which ac s as mas-
e . This, al hough limi ed, would u n essen ially e e y
A las
applica ion in o an CSCW-capable applica ion,
wi h no o ex emely li le eo by he de elop e s, as
p e
A las
's equi emen s.
REFERENCES
[1] G. R. And ews. Pa adigms o P o cess In e ac ion
in Dis ibu ed P og ams.
ACM Compu ing Su -
eys
, 23(1), Ma ch 1991.
[2] R. S. Chin and S. T. Chanson. Dis ibu ed Ob jec -
Based P og amming Sys ems.
ACM Compu ing
Su eys
, 23(1), Ma ch 1991.
[3] D. D. Cowan and C. J. Lucena. Abs ac Da a
Views: An In e ace Sp ecica ion Concep o En-
hance Design o Reuse.
IEEE T ansac ions on
So wa e Enginee ing
, 21(3), Ma ch 1995.
[4] M. Fai en and A. Vinacua. ATLAS. Sis ema de Co-
mandes: Manual ecnic (in Ca alan).
Repo LSI-
95-11-T
, 1995. h p://www.lsi.up c.es/~ m ai en.
[5] M. Fai en and A. Vinacua. In e p o cess da a ans-
e in
A las
, a pla o m o dis ibu ed applica-
ions. 1997. Submi ed o he OPENARCH'98 con-
e ence.
[6] M. Fai en and A. Vinacua.
A las
, a pla o m o
dis ibu ed g aphics applica ions. 1997. To app ea
in he p o ceedings o Eu og aphics Wo kshop on
P og amming Pa adigms in G aphics.
[7] D. C. Schmid . The ADAPTIVE communica ion
en i onmen : Ob jec -o ien ed ne wo k p og am-
ming comp onen s o de eloping clien /se e ap-
6
plica ions. In
12 h Sun Use s G oup Con e ence
,
1994.
[8] D. C. Schmid . Reac o : An ob jec b eha io al pa -
e n o concu en e en demul iplexing and e en
handle dispa ching. In
P oceedings o he 1s Pa -
e n Languages o P og ams Con e ence
, Augus
1994.
[9] A. So o, S. Vila, and A. Vinacua. A To olki o
cons uc ing command d i en g aphics p og ams.
Compu e & G aphics
, 16(4):375{382, 1992.
[10] R. S ini asan. R c 1832: Xd : Ex e nal da a ep-
esen a ion s anda d, Augus 1995.
[11] B. B. Welch.
P ac ical P og amming in Tcl and
Tk
. P en ice Hall PTR. Upp e Saddle Ri e , New
Je sey 07458, 1995.
APPENDIX: AN EXAMPLE OF THE AUTOMATI-
CALLY GENERATED CODE
Using he p o ion o he
olum
p o cess in e ace shown
in gu e 3 he
A las
co de gene a o makes au o-
ma ically he les
a l olum.hh
,
a l olum.H
and
a l olum.C
which a e pa ially depic ed in gu es 5
h ough 7.
#i nde __ATL_ o lu mh h_ _
#de ine __ATL_ o lu mh h_ _
#i nde NOHEADER
#include " olum.h"
#endi
#include "a l_ olu m. H"
scene segmen a i on (s ce ne, p op e y) ;
oid display_ sce ne (s ce ne) ;
#endi
Figu e 5: The au oma ically gene a ed a l olum.hh
le.
Figu e 5 shows he co de gene a ed o dene he C++
p o o yp es o he wo ex e n ou ines decla ed in he
in e ace. This le also includes he
olum.h
le im-
plemen ed by he de elop e b ecause he p o o yp es use
p o cess yp es only known by he de elop e co de.
In gu e 6 we can see wo o he e
b idge ype
deni-
ions co esp onding o he exp o ed yp es dened in he
in e ace: he mos simple one is he one co esp onding
o a yp e deni ion which dep ends on ano he yp e de-
ned b e o e, and he o he one is he one co esp onding
o he mos complex one whose con en s dep end on an-
o he yp e dened b e o e and i s me ho ds show how his
b idge ype
is made om an
A las
Va iable
and back-
wa ds. These wo me ho ds make p ossible he au oma ic
ansla ion b e ween he
b idge ype
and he co esp ond-
ing
Va iable
, isola ing he de elop e om his
A las
ex e nal ep esen a ion.
The las one, gu e 7, shows a p o ion o he main co de
o he d i e . This co de includes an auxilia y ou ine o
each one dened as an ex e nal ou ine in he in e ace
(in he gu e only he one o
segmen a ion
ou ine is
shown), and he main ou ine o he communica ions
d i e . The auxilia y ou ine is he one o ansla e he
pa ame e yp es om
Va iables
o he p o cess yp es
( h ough
b idge ypes
) in o de o call he p o cess ou-
ine in he co ec way, and also o ansla e back he
esul o he p o cess ou ine o ha e a
Va iable
o go
h ough he ne wo k. The main ou ine o he d i e
only ha e o make some ini ializa ions o i and en e
in he dispa ching lo op.
7
...
namespace olum {
ypede a l_py a mi d a l_simpl ex;
}
namespace olum {
s uc a l_scene {
a l_simp le x con [10 0];
ope a o Va iable () { // au oma i c ansla io n o a Va iable
Type (" olum: :s cen e" ,
"V[100]S( nam e s ing,ba se V[3]S(p1 S(x eal,y eal,z eal),
p2 S(x eal,y eal,z eal),
iden in ege ) ,
sides V[3]V[3] S( p1 S(x eal,y eal,z eal),
p2 S(x eal,y eal,z eal),
iden in ege ) )" );
Va iable ( ,"") ; .build_ ee () ;
o (in i1=0;i1 <10 0; i1 ++)
{ *((*( .T e e( ))) .a cc ede (i 1) ) = *(((Va i ab le )c on [i 1] ).T e e( )) ; }
e u n ( );
}
a l_scen e( ) {}
a l_scen e( Va ia bl e & ) { // cons uc o om a Va iable
i ( .T ee() == NU LL) a l_exi (- 1) ; // In alid a iable
o (in i1=0;i1 <10 0; i1 ++) {
Va iable 2("S(nam e s ing,ba se V[3]S(p1 S(x eal,y eal,z eal),
p2 S(x eal,y eal,z eal), iden in ege ) ,
sides V[3]V[3] S(p 1 S(x eal,y eal,z eal),
p2 S(x eal,y eal,z eal), iden in ege ) )" ," ");
2.build_ ee ();
*( 2.T ee () )= *(( *( . T e e( )) ). acc ed e( i1) );
a l_simpl ex paux( 2 ); con [i1]= p au x;
}
}
};
}
...
Figu e 6: Po ion o he au oma ically gene a ed a l olum.H le.
Comunic_D is dis ib( CAN AL _C OMU NI C_ DI STR );
S ing namep og am ;
D i e d i (dis i b) ;
...
oid aux_segm en a io n( S in g codi,
DLLis <Va ia bl e *> ¶me e s ) {
Pix p=pa ame e s. i s () ;
a l_scen e p p0(*(pa am e e s(p )) );
scene pa 0(p p0 );
pa ame e s .ne x (p );
p ope y p p1(((n od ein *)pa ame e s(p )- >T ee () )- >G e al ue ()) ;
pa ame e s .ne x (p );
--> scene es=segme n a ion (p a 0,p p 1) ;
a l_scen e es p;
es p= e s. con e s io n_ o_ b idg e_ y pe ();
Va iable * =new Va iable( es p );
Re u nVa lu e * =new Re u nVal ue (c od i, ) ;
dis ib. se nd( );
}
...
oid main(in a gc,cha **a g ) {
namep og a m=a g [ 0] ;
ini_ o_c al ls( ); // some inicializ a i on s o he d i e
d i .se _n ame _p o g am( na me p o g am );
ini_p oc es s() ; // inicial iza i on s o he p ocess i sel
d i .Dis pa ch () ; // loop
close(CA NA L_C OM UN IC _DI ST R) ;
exi (0);
}
Figu e 7: Po ion o he au oma ically gene a ed a l olum.C le. The a ow has b een added p oin ing o he p oin
whe e use co de is ac ually in oked.
8