INTENSIONAL COMMUNITIES
JOHNPLAICE
SchoolofComputer ScienceandEngineering,
TheUniversityof NewSouthWales,Sydney2052Australia.
E-mail:plaice@cse.unsw.edu.au
PETERG.KROPF
Departement d'informatique,Universite Laval,
Quebec (Quebec)CanadaG1K7P4.
E-mail: kropf@ift.ulaval.ca
Wedescribethe interactionand relationbetween entitiesindistributedsystems,
as proposed in the WebOperating System(WOS). Every entity in the system
is a versioned object which dependson its currentcontext, which itselfispro-
grammableandcanbeeectedbytheobjectscirculatingwithinit.Theseentities
interact throughmechanismsof requests/answers and negotiations. Those who
exhibitfunctionalandbehavioralaÆnitiesmaydynamicallyassociatethemselves
toformcommunities.Thispositionalpaperstatesthebasicideasofthenotionof
communitiesindistributedsystems.
1 From OOto Intensional Communities
With the emergence of widespread computing and telecommunication net-
works, there has been an explosion of networkedand mobile computing. A
permanentincreaseinbandwidthdrivesthegrowthinmultimediaandmobile
services, in electronic-commerce,in large-scalehigh-performance distributed
computing, as well as in thenumberofInternetusers. Ingeneral,it canbe
said that the global computing infrastructure is in a permanent process of
evolution.
Becauseoftherapidchangesintheunderlyinginfrastructure,itiswidely
acknowledged that component-based systemsare best suited for large-scale
distributedsystems,since,asneedschange,componentscanbereplacedmore
easily than can entire systems. Like Meyer and Mingins, 1
we consider the
theoreticalmodelforcomponentstobeobject-orientedtechnology.
Ifoneofthe problemsin developingdistributed systemsisthechanging
underlyinginfrastructure,i.e.achangingcontext,thenitbecomesinteresting
to examine methods for versioned programming, where components canpo-
tentiallyactdierentlyaccordingtothecontextinwhichtheyareimmersed.
This goalof versioned programmingis nally becoming viablewith the
2
Published in Intensional Programming II, 292-296, 1999
which should be used for any reference to this work 1
which onecan program several versions of functions, and change asneeded
thecontextinwhichthesefunctions aretoexecute.
ISEisthemostrecentdevelopmentin alonglineof languagesandtools
that have put forward theconcepts of intensional programming, where pro-
grams are understood to execute in an implicit multi-dimensionsl context,
whose individual dimensions can be manipulated explicitly as needed by a
program.
3
What distinguishes existing work in intensional programmingfrom dis-
tributedcomputingisthattheexistingworkconcernsitselfonlywithasingle
objectorprogram,immersedinamanipulablecontext.
However,distributedcomputingmeansthatmultipleobjects,arisingfrom
severalsources,willbeputtogetherin asinglecontext;furthermore,objects
will not necessarily remain in a given context, and may migrate to other
contexts. Wethereforehave apotentiallymuch richermodelfor intensional
programming.
Onemustimmediatelyask ifthemodel|clearlynotdeveloped|pre-
sentedin thepreviousparagraphis useful. Infact,it ismuch morepowerful
thanonemightimagine.
Atitspurestlevel,object-orientedtechnologyissimplyatomism applied
to computing: everything is an object, and objects communicate through
message-passing,which means amessageis sentfrom one objectto another
throughsomesortofrendez-vousprocess. Thereisnocontext;outsideof the
objectsthere isnothing.
But distributed computing is intuitively understood as supporting the
creation of communities. For example, Sun's Jini connection technology is
presentedassupporting thecreationoffederations ofcomponents.
4
Butacommunityisnotsimplythejuxtapositionofasetofobjects. Noone
would claimthatputting togetherin thesameroomanumberofpeople im-
pliescreatingacommunity. Rather, acommunity,atwhateverlevel,consists
notonlyofanumberofpeople but, also,anumberoftiesthat implicitlyor
explicitlylink thesepeople together: aworkplace,sharedinterests,member-
ship in a club,a religious ornational grouping, etc. Of course, these links,
with theirimplicitknowledge,familialties, rules,obligations, aresubjectto
continuousnegotiationwithineachcommunity.
Whenwethinkofcommunities,weshouldunderstandthattherearemany
dierent kindsof community. Someare public, someallow looseaÆliation,
othersare forveryrestricted,closedcircles. Others onlyexistfor veryshort
periods. In fact, the diversity of chat rooms on the Internet should give
someidea ofthe dierent kindsof communities that canarise. Inaddition,
2
the communicationprotocols that theycan agree upon. Other examplesof
communitiesaretheintranetsoflargeorganizations.
Thesameshouldholdtruewhenobjectsarebroughttogether. Weshould
beabletoprogramtheequivalentofthetiesthatbindtogethercommunities.
Inother words,weshould beable tohaveexplicit contexts that canbema-
nipulatedbytheobjectsthatbelongtothem.
Thepointisnotsimplytomakeanobjectmodelthatismoreinkeeping
withreallife. Rather,wewishtocreateamuchmorepowerful programming
model, onethat allowsreal evolution,inwhichthere isaninterplaybetween
theactionsoftheobjectsandofthecommunitiesinwhichtheyareplaced. In
thisview,evolutiontakesplacethroughthetransformationoftheenvironment
bytheobjectsitincludes,aswellasbythechangesforcedupontheobjects
byachaningenvironment,
Itshouldbeunderstoodthattheobjectsareunderstoodtobeversionable,
andinacertainsense,areakintoISEprograms. Inaddition,whenanobject
manipulates its context, it is essentially broadcasting to the other objects
within its context, and possibly forcing changes upon them. Broadcasting
also serves asa bootstrapping tool, allowing anobject to nd communities
thatitmayjoin.
The conceptualmodel as presentedaboveis clear, andit should not be
diÆcult to developageneralization of theISElanguagethat supports com-
munities. The contexts can be programmed through the use of threads or
processes,orothermeans,solongasthedierentobjectssharingthecontext
canallbebothreadersand writers.
However,itisstillunclearwhatthecorrectprimitivesforsuchalanguage
shouldbe. Inaddition,thedierentkindsofcommunityprocessingalsoneed
to beexamined. Furthermore,the programmingmodelas dened abovere-
quires an infrastructure that supports versioned resource management and
communication between versioned objects; the goal of the Web Operating
System(WOS)projectispreciselytocreatesuchaninfrastructure.
5
References
1. B. Meyer and C. Mingins. Component-baseddevelopment: From buzz
tospark. IEEE Computer,32(7):35{37,1999.
2. P. Swoboda and W. W. Wadge. Vmake, ISE and IRCS: General tools
for the intensionalization of software systems. In Intensional Program-
mingII.World-Scientic,Singapore,1999. Thisvolume.
3. J.PlaiceandJ.Paquet. Introductiontointensionalprogramming. InIn-
3
4. SunMicrosystems. Jini. http://java.sun.com/products/jini/.
5. http://www.wos-community.org.