- Application to Mobile Services -
ZakariaMaamar
,WathiqMansoor
,andQusayH.Mahmoud '
Software AgentsResearchGroup@ZU
'
WITLab
College ofInformationSystems SchoolofComputingScience
ZayedUniversity SimonFraserUniversity
Dubai,UnitedArabEmirates Vancouver,Canada
zakaria.maamar,wathiq.mansoor@zu.ac.ae qmahmoud@cs.sfu.ca
Abstract Thepaperdiscusses mobileservices,denotedby m-services,
inthe wireless world. M-services are viewed as an extensionto the e-
servicesparadigm.Thewirelessworldhasitsownfeaturesthatmakeit
dierentfromthewiredworld.Forinstance,newcommunicationmeans
needto be used, newuser-friendly servicesneed to be suggested, and
newtypesof computingresourcesneedto be involved.The paperalso
discusses the use of software agents inaddressing the following issues:
howarem-servicesdiscoveredinanopenwirelessenvironment?Howare
m-servicescombinedtogether?Andhowarem-servicesmadeexecutable
onwirelessdevices?
1 Introduction
According to [3], the Internet is going throughseveral major changes. Indeed,
the Internet is becoming a vehicle of services rather than just a repository of
information.Currently,severalorganizationsaremakingtheirservicesaccessible
overtheweb.Usually,e-servicesdenotethiskindofservices.Besidesthenewrole
oftheInternet,weexpectthatmoreandmoree-serviceswillbeoeredtopeople
who use wireless devices to conduct their operations. Further, we expect that
moreandmorewirelessdeviceswillbeenhancedwithnewadvancedcomputing
resources,whichwillenabletheminthenearfuturetobecomemobileoces.We
areallwitnessingthetremendousgrowthinthedevelopmentanduseofwireless
devicesacrosstheworld.Unfortunately,thisgrowthisaccompaniedwithitsset
of problems.For example,wirelessdevices arestrictly bound to theirbatteries
for operation. In order to support wireless devices-oriented users 1
, we aim at
working on a new generation of e-services that will be specially designed and
developed to t wireless devices. M-services denote this new generation of e-
services.
Thereexistseveraltypesof wirelessdevices,varying frommobile phonesto
PersonalDigitalAssistants(PDAs).Thesedevicespresentseveralshortcomings
thatmaketheiruserequiresspecicarrangements.Forinstance,theservicesto
1
goes against the e-services platform independence principle. Thus, leveraging
e-services into m-services is a necessity. M-services will have to consider the
characteristicsofthewirelessdevicesonwhichtheywillberunning.Infact,we
advocatethatm-serviceswillbefetchedon-demandfromprovidersitestousers'
wirelessdevices.
Havingpre-installedservicesonusers'wirelessdevicesisanoptionthatcould
beconsidered. However,this optionwould haveworkedfor asmall number of
users where looking for the lowest commondenominator betweenthem is fea-
sible. In an open environment with dierent users and needs, looking for the
common denominator is not trivial. Therefore, on-demand deliveryof services
to wireless devices is more appropriate than pre-installing services. Enabling
thedownloadingof dynamicallycomposed servicesisamongtheapproachesto
followforsystemsdesignedtothewirelessworld.
Section 2motivates ourwork on m-services. Section 3denes mobile com-
puting and e-services. Section 4 presents our system of m-services. Section 5
describesoursystemimplementation.Section6presentsrelatedwork.Section7
concludesthepaper.Itismadeclearatthatlevelthatissuessuchasnegotiation
andcoordination,whileimportant,donotfall inthescopeofthispaper.
2 Motivating scenario
Tomotivate ourwork,weconsiderthefollowingctivescenario.Asales repre-
sentative working for a software company;it is based in countryX but serves
customers fromovertheworld. Sincetherepresentativeismostof thetimeon
themovevisiting customers,he isequipped witha PDA, which provides basic
oce tools. Moreover,the representativeuses the PDA to record the dealshe
madewithcustomers.Itmayhappenthatinpreparationforanimportantmeet-
ing, the representative hasto carry out specic operations such assimulating
the consequencesof this meeting onthe company stockshares. Unfortunately,
beforeheleaveshisocethistimehedidnotdownloadtheappropriatesoftware
applicationsintohisPDA.Consequently,hedecidestoproceedasfollows.First,
hesendsa"wireless"requesttothecompanyserver.Accordingtotheworkload
oftheserver,one ofthefollowingsituationsoccurs.
Servernot"busy"-itacceptstherequestandprocessesit.Tothis end,the
representativehas to send "wirelessly" the requireddata. Later on, the server
transmits"wirelessly"resultstotherepresentative'sPDA.Iftherepresentative
has known before that the server was not busy, he could have attached the
requireddatato therequesthe submittedin thersttime. Unfortunately, this
isdiculttopredict.
Server"busy"- itsuggeststwoalternativestothe representative.Therst
oneistoputhisrequestinawaitinglist.Thesecondoneistosendtherequired
applicationstohisPDAforexecution.Theseapplicationstransferhastofollow
whereawirelessdevicewillbeactingasacomputingplatformtotheapplications
tobereceivedfromtheserver.Weconsiderthese applicationsasm-services.
3 Background
MobileComputingreferstosystemsinwhichcomputationalcomponents,either
hardwareorsoftware,changelocationsinaphysicalenvironment.Movingfroma
locationtoanotherisduetoseveralreasons:componentminiaturization,wireless
networks,and mobile-code programming languages.Kinds of mobile work are
as follows[15]: hardwaremobility,softwaremobility,and combinedmobility. A
codethatisdownloadedfromawebsitetoauser'smobilephonecombinesboth
hardwareandsoftwaremobility.
E-serviceisanapplication componentprovidedbyanorganizationin order
to beassembled and re-usedin adistributed,Internet-basedenvironment [12].
A component is considered asan e-service ifit is: 1) independent as much as
possiblefromspecicplatformsandcomputingparadigms;2)developedmainly
forinter-organizationalsituationsratherthanforintra-organizationalsituations
only;and3)easily composablewithothere-services.
4 System of m-services
4.1 M-services
Therationaleofdesigninganddevelopingm-services 2
istooernewopportuni-
tiestowirelessdevices-orientedusers.Ithappensthattheseuserspostponetheir
operations because they lackappropriate facilitieson their devices. Therefore,
it becomes importantto support such usersbyallowing them:1) to search for
additional facilities, when needed, 2) to fetch these facilities to their wireless
devices,and3) toconducttheoperations1)and2)in atransparentway.A so-
lutionto1)consistsofcreatingbrokeringmechanisms.Asolutionto2)consists
of using wirelesscommunicationmechanisms.Finally, asolutionto 3) consists
ofusingSoftwareAgents(SAs)[6].
Weconsideranapplicationcomponentasanm-serviceifitis:transportable
throughwirelessnetworks;exibleintermofcompositionwithotherm-services;
adaptableaccordingtothewirelessdevices'computingcharacteristics;andexe-
cutable onwirelessdevices.
4.2 Architecture
In our work,brokeringmechanisms and SAs are considered in the design and
development of asystem oeringm-services to wireless devices-orientedusers.
Thissystem'sfeaturesare:
2
Thersttypeis associated withusersof m-services. Thesecond andthird
typesareassociatedwithprovidersofm-services.
Createasoftwareplatform,calledMeetingInfrastructure(MI),that willbe
headedbyasupervisor-agent.This MIhasabrokeringrole[10].
Develop twotypes of delegates: provider-delegate and user-delegate. Dele-
gates interact respectivelyon behalf of user-agents and provider-agentsin
theMI.
Developstorage serversthat savethe sequence of m-services to be sent to
wireless devices for execution. Storage servers are spread across networks
andstorage-agentsareresponsibleofthem.
Figure1illustratesthearchitectureofoursystem.Itisdecomposedintofour
parts:user, provider, MI,and storage.The MI andstorageparts are linked to
theuserpartinawirelessway.Meanwhile,theMIandstoragepartsarelinked
totheprovider-partin awiredway.
Meeting infrastructure User
delegate
Provider delegate Interactions Wireless
Interactions Interactions
User User-agent
Provider-agent Device-agent Supervisor
agent
Bank of m-services
Provider Storage
server 1
Storage server j Storage
server i
M-services M-services
Requests Notification Storage-agent 1
Wireless connection Wired connection
Figure1.Architectureofm-servicessystem
The user part consists of users and user-agents.User-agents act on behalf
ofusers; theyaccepttheirneeds, convert theminto requests,and submitthem
to user-delegates. The MI supervisor creates user-delegates. To satisfy users'
requests,user-delegatesinteractwithprovider-delegates.
The provider-part consists of providers,provider-agents,and device-agents.
Provider-agentsactonbehalfofprovidersofm-services;theyadvertisetheirm-
servicestouser-delegates,throughprovider-delegates.Inaddition,theymonitor
the behaviorof providersin caseof new m-services are oered,and thus need
to be announced. In Figure 1, m-services are gathered into a bank on which
provider-agentsanddevice-agentsarelocated.Provider-agentscreateprovider-
less devices for execution.The rationaleof havingdevice-agents is to consider
the dierences that exist between wireless devices, e.g. screen dimension and
processorspeed.
The MI part is a software platform on which user-delegates and provider-
delegatesinteractinalocalandsecureenvironment[9].Inanopenenvironment,
mostoftheinteractionsbetweenrequestersofservicesandprovidersofservices
are conducted through third parties, known asbrokers.Despite its important
role, abrokercouldeasily becomeabottleneck. Toovercomethis problem,re-
questers and providers may have to bypass the broker. They need a common
environment in which they meet and interact directly. The MI plays the role
ofthisenvironment.Inoursystem,theMIsupervisor-agenthasseveralrespon-
sibilities, among them: it monitorsthe interactions that occur within the MI;
it makesthe MI a safeenvironment; and it directs user-delegatestowardsthe
provider-delegatesthatinterestthem.
Thestoragepartreceivesthesequenceofm-servicesthatwillbesenttousers
forexecution.Accordingtooursystemexecution'sprinciples,m-servicesaresent
toauser'swirelessdeviceonebyone.Severaladvantagesareobtainedfromthe
useofstorage-servers.Auser-agentdoesnothavetodealwithseveralproviders.
Its point of contact for getting the m-services is the storage-agent.The same
thing applies to device-agentsthat will be interacting with few storage-agents
insteadofseveraluser-agents.Securityisincreasedforbothusersandproviders.
Storage-serversareindependentplatformswheresecuritycontrolareconducted.
4.3 Software agents
User-oriented components User-agent resides in a wireless device. First,
the user communicates with his user-agent to arrange requests. After submit-
ting them to the user-delegate, the user-agent goes into a standby mode and
waits for notications from its delegate. Notications concern the sequence of
m-servicesthatsatisestheuser'srequests.Beforeexecutingthemonuser'sde-
vice,m-servicesareputinastorageserver.TheMIsupervisor-agentsuggeststo
user-delegatethestorageserverto beused consideringforexampletheserver's
location. To downloadthe m-servicesone at atime from thestorageserverto
theuser'swirelessdevice, theuser-agentcommunicates withthestorage-agent.
Theuser-agentkeepstrackof theexecution ofan m-service,before itasks the
storage-agenttosubmitthenextm-service.Whenitisreceived,theexecutedser-
viceisdeletedfromthewirelessdeviceplatform.Finally,theuser-agentinforms
theuseraboutthecompletedrequests.
If this is the rst time that a user-agentsubmits requests, the supervisor-
agent creates a user-delegate in the MI to be associated with that user-agent
(cf. Table 1). For the nextrequests, the user-agentinteracts directly with the
user-delegate (cf. Table 2). Table 1 and Table 2 use "submit", "reply", and
"notify"performativesillustratingtheinteractionsthattakeplacebetweenuser-
agents and supervisor-agent and between user-agents and delegate-agents. In
considersthesecharacteristicsinitsprocessofwrappingm-services.InTable2,
"submit" performative occurs once a user-agent knows the delegate-agent to
whichithasbeenassociated.
Table1.Interactionsuser-agent/supervisor-agent
Submit(Id-submit: id1, From: user-agent1, To: supervisor-agent1, Content:
request
1
,Device:(Brand:brand
1
,Type:type
1
,Screendim.:dim
1 ))
Reply(Id-reply:id
1
,From:supervisor-agent
1
,To:user-agent
1
(In-reply-to:id
1 ),
Delegate: (Id: user-delegate1, Contact: user-delegate1@...), Storage-server: (Id:
storage-agent1,Contact:storage-agent1@...))
Table2.Interactionsuser-agent/user-delegate
Submit(Id-submit:id2,From:user-agent1,To:user-delegate1,Content:request2,
Device:())
Notify(Id-notify: id
1
, From: user-delegate
1
, To: user-agent
1
(In-reply-to: id
2 ),
Content:sequence1/m-service1;2)
User-delegate resides in the MI, acting on behalf of user-agent. The user-
delegate receives the user's requests from the user-agent (cf. Table 2). After-
wards,it interacts with provider-delegates. The purpose isto match user'sre-
questswithproviders'm-services.Incasethereisamatch(weassumethatthere
is alwaysamatch), the user-delegate designsthe sequence ofm-services to be
included in satisfying the user's requests. Information about this sequence is
senttothestorage-agent(cf.Table3).Thepurposeistomakethestorage-agent
ready to receivem-services from device-agents.Furthermore,theuser-delegate
notiestheuser-agentaboutthesequenceofm-servicesithasestablished(cf.Ta-
ble2). InTable3,tworelevanteldsof"to-get-ready"performativeareimpor-
tant."Destination"eldcorrespondstotheuser-agentforwhichthesequenceof
m-services hasbeendesigned. "M-services"eld correspondsto the m-services
thedevice-agenthasto submit. Toset upasequence, thestorage-agentknows
them-service that comesbefore andafter them-services tobesubmittedbya
device-agent. Instead of creating auser-delegate on awireless-device platform
and shippingitto theMI, wesuggestedtoundertakethisoperation in theMI
for twomain reasons:evenifweexpect abigimprovementin wireless devices'
resources,thoseresourceshavetobeusedina"rationale"way;andthewireless
connectionthattransferstheuser-delegateisavoided.
Provider-orientedcomponents Provider-agentresidesinprovider'ssite,run-
To-get-ready(Id-to-get-ready:id4,From:user-delegate1,To:storage-agent1,Se-
quence:sequence
1
,Destination:user-agent
1
@...,M-services:(From:device-agent
i ,
Before:0[m-serviceh]1,Id:1[m-servicei]n,After:0[m-servicej]1))
Provider-delegatesbroadcastm-servicesto user-agents,throughuser-delegates.
Theprovider-agentisinconstantinteractionswithitsprovider-delegate(cf.Ta-
ble 4). For instance: it communicates to the provider-delegate the negotiation
strategyithastofollowwithuser-delegates.
Table4.Interactionsprovider-agent/provider-delegate
Submit(Id-submit:id6,From:provider-agent1,To:provider-delegate1,Content:
strategy
6
/m-service
6
,Device:())
Inform(Id-inform:id1,From:provider-delegate1,To:provider-agent1,Agreement:
(Sequence: sequence1, With: user-agent1, Service: 1[Id: m-servicei]n), Storage-
server:(Id:storage-agent
1
,Contact:storage-agent
1
@...),Device:(Brand:brand
1 ,
Type:type1,Screendim.:dim1))
Device-agentresidesinprovider'ssite.Itsresponsibilityistowrapm-services
accordingtothedevicestowhichtheywillbesentforexecution.Initially,these
m-servicesaresenttostorageservers.Theprovider-agenthasalreadysubmitted
the contact details of the storage-server to the device agent. We recall that
the user-delegate hasinformed the storage-agentof that storage server about
them-servicesitwillreceive(cf.Table3).Double-checkingtheinformationthat
user-delegatesandprovider-delegatesforwardtoastorage-agentguaranteesmore
securitytooursystem.
Provider-delegateresidesintheMI;itactsonbehalfofprovider-agent.Inour
system,theprovider-delegateisresponsibleforinteracting withuser-delegates,
regarding the m-services it oers. In addition, it interacts with its provider-
agentfornoticationpurposes.Noticationsarethenforwardedtodevice-agent
forconsideration.Werecallthat theprovider-agentcreatesaprovider-delegate
andtransfersitto theMI.
MI-oriented components Supervisor-agent resides in the MI and has sev-
eral responsibilities:it supervises theoperationsthat occurintheMI; itmedi-
atesincaseofconictsbetweenuser-delegatesandprovider-delegates;itsets-up
user-delegatesandassignsthemtouser-agents(cf.Table1); itchecksprovider-
delegatesidentitywhentheyarrivefromprovidersites;and itsuggeststouser-
delegatesthestorageservertobeused.
The purpose of such a server is to save the m-services to be sent to wireless
devicesforexecution.Accordingtotheinformationonthesequenceofm-services
ithasreceivedfromtheuser-delegate(cf. Table3,"before"and"after"elds),
the user-delegate arranges the sequence as the m-services start arriving from
providers.As soonas this sequence is completed,it informsthe user-agentin
orderto getprepared(cf.Table5).
Table5.Interactionsdevice-agent/user-agent
Get-prepared(Id-get-prepared: id
7
,From: storage-agent
1
, To: user-agent
1 , Se-
quence:sequence1,Status:ready)
Basedonthe requestsit receivesfrom user-agent,thestorage-agentpushes
them-servicesoneatatime(cf.Table6).Thesem-servicesarereadyforexecu-
tion.Thedeletionofm-servicesfromthestorage-serversaswellasfromwireless
devicesfollowsspecicreliabilityrules(cf.Figure 3).
Table6.Interactionsuser-agent/storage-agent
Request(Id-request: id
24
, From: user-agent
1
, To: storage-agent
1
, Sequence:
sequence1,M-service:?m-service1)
Push(Id-push:id1,From:storage-agent1,To:user-agent1 (In-reply-to:id24),Al-
readysubmitted:3,Remained:2,Attachment:m-service1)
4.4 Operating mode
Theoperatingmodeofoursystemconsistsofvestages:agentication,identi-
cation,correspondence,notication,andrealization(cf.Figure2).
Agentication stage purpose is to set up the dierent infrastructures and
agentsthatconstituteoursystem.User-agentsareestablishedat theuserlevel.
Provider-agentsanddevice-agentsareestablishedattheproviderlevel.Lastbut
notleast,themeetinginfrastructureandstorageservers,includingtheirstorage-
agents,arecreated.
Identication stage purpose is toinform theMI supervisor-agentaboutthe
existenceofusersandproviderswhoareinterestedin oursystem.Attheagen-
ticationstage,user-agentsandprovider-agentsarerespectivelyinstalledontop
of users' wireless devices and providers' resources.The outcome of the identi-
cation stage is the creation of user-delegates and the reception of provider-
delegates coming from provider-sites.Creation and receptionoccur in the MI.
Provider-agents inform the supervisor-agent about their readiness to submit
their provider-delegates to the MI. User-agents inform the supervisor-agent
Meeting infrastructure
3. Interactions User
User-agent Supervisor-agent
Bank of m-services
Provider Storage
server 1 Storage-agent 1
2.a Creation
2.b Migration 1.a Needs
User-delegate Provider-delegate
Device-agent Provider
delegate Provider-agent 1.b Creation
4.a M-services
notifcation 4.b Contracts
notifcation 5. Contracts notification 6. M-services
transfer 7. M-services
transfer for execution
Figure2.Operatingofm-servicessystem
Correspondence stage purpose is to enable user-delegates and provider-
delegates toget together.User-delegateshaverequeststo satisfyand provider-
delegateshaveservicestooer.First,auser-delegatesearchesfortheprovider-
delegates that have the services it needs. Two approaches exist (cf. Table 7
and Table 8): a/ The user-delegate asks the supervisor-agent to suggest a
list of provider-delegates that havethe services itneeds. Here, thesupervisor-
agentplaystherole ofarecommender.b/Theuser-delegaterequestsfrom the
supervisor-agent the contact details of all the provider-delegates that exist in
theMI.Table8liststheadvantagesanddisadvantagesof bothapproaches.
Table7.Interactionsuser-delegate/supervisor-agent
Ask-for(Id-ask-for:id32,From:user-delegate11,To:supervisor-agent1,Content:
1[service
i
,?provider
i ]n)
Recommend(Id-recommend:id
1
, From: supervisor-agent
1
, To:user-delegate1
1
(In-reply-to:id32),Content:a/Provider-delegate1;4 b/Provider-delegates)
Independentlyoftheapproachofsearchingfordelegate-providers,theuser-
delegate submits its needs of services to selected provider-delegates after in-
teractions. Basedondierent parameters,such asworkloadandcommitments,
provider-delegatesanswerthe user-delegate. At this stage of our work,we as-
sumethat providersdonothaveservicesincommon.Consequently,thereisno
need for a user-delegate to look for the best service (negotiation for a service
is1userwith1provider) 3
.Oncetheuser-delegateandprovider-delegatesagree
3
Thisisnota shortcomingof oursystem.Itis partofour currentworkto consider
Advantages Disadvantages
a/ a/
Provider-delegatesaretargetedinadvance.Supervisor-agentbecomesabottleneck.
Less interaction messages between user-
delegates andprovider-delegates.
Supervisor-agent'srecommendationscould
notsatisfycompletelyuser-delegates.
User-delegateshaveanarrowperceptionof
theMIcontent.
b/ b/
User-delegates have a wide perception of
theMIcontent.
Moremessagestodiscoverwhatprovider-
delegatesoer.
Morefreedomisgiventouser-delegates.
uponthem-servicestouse,noticationsaresenttodierentrecipients.Thiswill
beexplainedin thenoticationstage.
Notication stagepurposeistoinformdierentagentsaboutuser-delegates'
andprovider-delegates'agreements.
Regardingthe user-delegate, it is in charge of the following operations:in-
formstheuser-agentaboutthesequenceofm-servicesithasestablishedtosatisfy
itsuser'srequest(cf.Table2);andinformsthestorage-agentaboutthesequence
ofservicesitwillreceivefromdierentdevice-agents(cf.Table3).
Regarding the provider-delegate, it noties the provider-agent about its
agreements with a user-delegate (cf. Table 4). We recall that provider-agents
donotreject anyagreements.
Based on the information it has received from its provider-delegate, the
provider-agent forwards them to the device-agent. This information concerns
them-servicesthat areinvolvedandthestorage-serverthatisused. Amongthe
actions the device-agent undertakes we cite submitting the m-services to the
storage-agentofthestorage-server.
Realization stage purpose isto executethe sequenceof m-services that the
user-delegate has designed. User-agent and storage-agent are the participants
ofthisstage.Werecallthattheuser-delegatehasalreadyinformedthestorage-
agentaboutthem-servicesitwillreceivefromdevice-agents(cf.Table3).Before
theuser-agentstartsaskingthestorage-agentforthem-servicesithas,itwaits
foranoticationmessagefrom thestorage-agentmentioningthatthesequence
isreadytobesubmittedforexecution.
Intherealization phase,reliabilityaspecthasbeentakeninto account.Our
approachconsidersastorage-serverasabackupserverforthem-services.When
astorage-agentsendsanm-servicetoauser-agent,thestorage-agentkeepsacopy
ofthisserviceatitslevel.Itdeletesitwhentheuser-agentasksforthem-service
that follows the one it has received. For the last m-service of a sequence, the
user-agentsendsanacknowledgementmessagetothestorage-agentsoitdeletes
User-agent Storage-agent
Actions Actions
Interactions Sequence: m-service 1,2,3
Request: ?m-service 1
save: m-service 1 Push: m-service 1
run: m-service 1
Request: ?m-service 2
delete: m-service 1 Push: m-service 2
wait: m-service 2
Request: ?m-service 2 Push: m-service 2 run: m-service 2
Request: ?m-service 3
delete: m-service 2 save: m-service 2
Push: m-service 3 run: m-service 3
Request: ok
delete: m-service 3 save: m-service 3 prepare: request
To-make-ready: seq. 1 prepare: message
delete: m-service 1
delete: m-service 2
delete: m-service 3
Figure3.Interactiondiagramofrealizationphase
5 Implementation
An implementation of the MI has already been undertaken in [9]. The proto-
typeusesSUN'sJavaSpacestechnology[5]toimplementarepositorythatholds
providers'm-servicesadvertisement.JavaSpacesis animplementationofLinda
[8]thatprovidesasimple,fast,andauniedmechanismforsharing,coordinat-
ing, and communicatingdistributed resources, services,and objectsacrossthe
network.
TheMIisimplementedasasetofthreemodules.Therstmoduleistheman-
agementandinstallation,whichisresponsibleforreceivingdelegatesfromtheir
originalsystemsandinstallingthem.Allthesecurityoperationsareundertaken
in thismodule.Thesecondmodule istheinteractionmodulethat supportsthe
communicationsthat takeplace betweenuser-delegatesandprovider-delegates.
Finally, the third module is the advertisement and consulting module, which
is supportedby JavaSpaces,dealswith advertising servicesandidentifying the
servicesthatarerequiredforsatisfyingspecicneeds.Inaddition,theadvertise-
mentandconsultingmodulesupportsthesubscriptionprocesstouser-delegates.
Forinstance,if auser-delegatesisinterestedin aspecic event, thenit canbe
notiedwhenthiseventoccurs.JavaSpacesprovidesthisnoticationoperation.
Provider-agentsandtheir delegatesanduser-delegates areimplementedus-
ingVoyager[14]. Regardingtheuser-agent,it ismainlyaninterface-agentthat
feedstheuser-delegatewithrequests.ThisagentisimplementedusingJ2ME[4],
whichisaJavaeditionthatrunsonwirelesshandhelddeviceswithconstrained
resources.Asnapshotoftheuser-agentprototypeisshowninFigure4.
Atthisstage ofourimplementation, wesimulatethesituationwhere auser
can enter the m-services he requires.In this example, the useris requesting a
m-service hasbeendownloadedthe userwillbenotied,asshownin Figure4,
sothatshecanstartusingitasshowninFigure5.
Figure5.M-serviceexecutionscreenmockup
6 Related work
There exist several projectsthat study howwireless devices could change our
wayofdoingbusiness[1,10,11,13].InHPLaboratories,[10]workedondelivering
Internet servicesto wireless users.This work wasconducted under the project
for PervasiveServices Infrastructure(PSI). The vision is "any service to
anyclient(anytime, anywhere)".Theprojectinvestigatedhowooading parts
ofapplicationstomid-pointserverscanenableandenhanceserviceexecutionon
aresource-constraineddevice.Inourwork,weareinterestedin thesameissues.
Furthermore,weareinterestedinsupportingusersintheirsearchform-services
in an open environment. In [11] the Odyssey project provides systemsupport
for mobileand adaptiveapplications. Itdenes aplatformfor adaptivemobile
data access on which dierent applications, such as a web browser, a video
player, and a speech recognition, could run on top. The Odyssey's approach
is to adjust the quality of accessed data to match available resources. In our
system,weconsideredadaptabilityattwodierentlevels:m-servicesarewrapped
according to the wireless devices' characteristics; and user-agents request m-
services from storage agents according to the resources that are available on
typesofrobustandscalabledistributedInternetservices.Ninja'sobjectiveisto
meet therequirementsofanemergingclass ofextremelyheterogeneousdevices
that would access these services in atransparent way. In Ninja, the proposed
architecture considered four elements: bases, units, active proxies, and paths.
Comparable to our sequence of m-services, a path is an abstraction through
whichunits,services,andactiveproxiesarecomposed.Proxiesaretransforma-
tionalintermediariesputbetweendevicesandservicestoshieldthemfromeach
other.Ninjaproxiesaresimilartoourdevice-agents.Inaddition,Ninjasuggested
aServiceDiscoveryService (SDS) fortworeasons:enableservicesto announce
theirpresenceandenableusersandprogramstolocatetheseannouncedservices.
SimilartotheSDS,theMIhasabrokeringrole.Moreover,theMIfacilitatesthe
directinteractionsbetweenprovidersandusers.Infact,theMIavoidsbottleneck
situationsandensuresabettersecurity.
7 Conclusion
In this paper, wepresentedour work on m-services. M-servicesare considered
as an extension to e-services. Usersare moreand more relyingon their wire-
lessdevices to completetheir dailyoperations. Therefore,newfacilitiesshould
be provided. Our work aims at achieving"anywhere and anytime" paradigm.
This paradigmcould be summarized by[2] whostated "How tomake a set of
heterogeneousservicesimplementedandprovidedbydierentprovidersavailable
for roamingusers asanintegratedpackage,withthesame"look andfeel"across
dierent networks,andfromdierentterminals".
Several aspects are still under investigation, among them security [7] and
scalability. Oursuggestion forsecurity consists of enhancingthe storage-agent
with securitymechanismsthat couldbegeneric; in thesense that these mech-
anisms will beapplied to all m-services despite their origin (i.e.device-agent)
and destination (i.e.user-agent).Specic security proceduresthat answereach
user'sprioritiesshouldbedoneat thewirelessdevice level.Since theresources
onwirelessdevicesshouldbeusedinarationaleway,ourfutureworkisbasedon
trustbetweenuser-agentsandstorage-agents.Forinstance,if auser-agenthad
theopportunitytodealwiththesamestorage-agentseveraltimesandbasedon
its previous experiences, the user-agentcould entrustto this storage-agentits
specicsecurityprocedures.
Regardingscalability,thearchitectureofthem-servicessystemwesuggested
inFigure1ishighlyscalable.Thesystemcanbeextended,atareasonablecost,
asthedemandforthem-servicesitprovidesincreases.Thiscanbeachievedby
addingmoremeetinginfrastructurestoawirelesscarriernetwork.Thebankof
m-services and the storage-serverscan be replicated across the network. This
allowsustoavoidtheperformancebottleneckthatwouldariseifasingleMIhas
1. S. Case, N. Azarmi, M. Thint, and T. Ohtani. Enhancing e-communities with
agent-basedsystems. IEEEComputer,July2001.
2. L. Esmahi,R.Impey,andR.Liscano. Anarchitecturefor providingmobileinte-
gratedservicesforroamingusers. InProceedingsProceedings ofMICON,Ottawa,
2000.
3. M.C.Fauvet,M.Dumas,B.Benatallah,andH.Paik.Peer-to-peertracedexecution
ofcompositeservices.InProceedingsoftheInternationalWorkshoponTechnologies
forE-Services(TES'2001)heldinconjunctionwithVLDB'2001,Italy,2001.
4. J2ME. http://java.sun.com/j2me,VisitedNov.2001.
5. JavaSpaces. http://java.sun.com/products/javaspacesl,VisitedNov.2001.
6. N. Jennings, K.Sycara, and M. Wooldridge. A roadmap of agent research and
development. AutonomousAgents andMulti-AgentSystems,1(1),1998.
7. S. Key Miller. Facing the challenge of wireless security. IEEE Computer, July
2001.
8. Linda. http://www.cs.yale.edu/Linda/linda.html,VisitedNov.2001.
9. Z. Maamar, E. Dorion, and C. Daigle. Towards virtual marketplaces for e-
commerce. CommunicationsoftheACM,44(12),December2001.
10. D.Milojicic,A.Messer,p.Bernadat,I.Greenberg,G.Fu,O.Spinczyk,D.Beuche,
and w.Schroder-Preikschart. -pervasiveservicesinfrastructure. Technical re-
port, HPTechnicalReportHPL-2001-87,HPLaboratoriesPalo Alto,2001.
11. B.D. Noble, M. Satyanarayanan, D. Narayanan, J.E. Tilton, J. Flinn,and K.R.
Walker. Agileapplication-awareadaptationormobility.InProceedingsofthe16th
ACMSymposiumonOperatingSystemsPrinciples,France,1997.
12. B.PerniciandM.Mecella. Designingcomponentsfore-services. InProceedingsof
the VLDB Workshop on Technologies for E-Services (VLDB-TES 2000), Egypt,
2000.
13. TheNinjaproject. http://ninja.cs.berkeley.edu,VisitedSeptember2001.
14. Voyager. http://www.objectspace.com/products/voyager,VisitedNov.2001.
15. A. I.Wand and L. Chunnian. Process supportfor mobileworkacross heteroge-
neoussystems. Technicalreport,Departmentof InformationScience,Norwegian
UniversityofScienceandTechnology,Norway,2001.