scieee Science in your language
[en] (orig)

ATLAS, a platform for transparently developing distributed applications

Abstract

We discuss the design and implementation of a software development platform that allows unsophisticated programmers to include advanced features to their applications with no or very little extra information and effort. These features include the splitting of the application in distinct processes that may be distributed over a network, a powerful configuration and scripting language, and several tools including an input system to easily construct reasonable interfaces. We attempt to describe both the techniques used to achieve transparency for the programmer and what exactly a user must do to build new ATLAS modules.

Read accessible full text

ATLAS, a platform for transparently developing distributed applications

Author: Fairén González, Marta,Vinacua Pla, Álvaro
Publisher: Yi Pan, Selim G. Akl, Kegin Li. Anaheim, USA
Year: 1998
Source: https://upcommons.upc.edu/bitstream/2117/15853/1/Atlas%20transparently.pdf
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
eo . 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 congu 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 congu 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 eo 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
simplies 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 iey 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 iey 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 die 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 die en a chi ec u es. This gi es
ise o many die en p oblems ha need o b e ad-
d essed [1].

S anda dized inpu model
. A g ea deal o eo
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 die en dialogue
mo des in a uni o m way, somewha ela ed o Ab-
s ac Da a Views [3].

Congu 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 dene 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 oe 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 dened 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 oe 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 die 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 dicul 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 die 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 ica 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 ica ion mechanism is based on a sp ecial 32 by es
long use iden ie 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 ica 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 oe 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 die 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 die 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 dene use -machine dialogs o o he -
wise in e connec o die 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 oe 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
oe 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 eo .
Many acili ies oe 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 deni ions used o a iables o b e
exp o ed and he p o o yp e deni 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 die 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 oe 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 denes 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 dene 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 dening he p o cess in e -
ace can also include unc ions o p o cedu es dened 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 dene he execu ion co o dina ion and
in e ac ion b e ween p o cesses can also b e dened 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 deni 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 deni-
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 denes 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
oe 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 oe 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 dene 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 die 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 die 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 eo 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 ecica 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 dene 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
deni-
ions co esp onding o he exp o ed yp es dened in he
in e ace: he mos simple one is he one co esp onding
o a yp e deni 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 dened 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 dened 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