<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Engineering a Brokering Framework for Providing Semantic Services to Agents on Lightweight Devices</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nikolaos I. Spanoudakis</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pavlos Moraitis</string-name>
          <email>pavlos@math-info.univ-paris5.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>René Descartes University</institution>
          ,
          <addr-line>Paris</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>This paper describes an approach towards allowing lightweight nomad devices like mobile phones to access semantic services that have either been advertised by agents or follow the semantic web services paradigm. The limitations of lightweight devices like lack of capability to process XML documents or to deal with complex data types and perform computationally demanding tasks are overcome by using this approach. Thus, we consider that when a user or agent is in a nomad or mobile context this approach can aid him in searching for and acquiring simple or complex - added value services from the web. 12</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 INTRODUCTION</title>
      <p>There is a growing interest on the launching of agents on
lightweight devices and that comes from many different business
and research sectors, including the Ambient Intelligence, the
infomobility, the collaborative working environments and others.</p>
      <p>
        Lightweight devices pose certain limitations on the available
resources (CPU speed, memory capacity, storage capacity, etc)
for programs. Services are becoming semantic so that agents can
adequately locate and execute them in order to achieve their
goals. Semantic services imply the use of XML, RDF and OWL
[
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] technologies. The use of such technologies requires more
than what is available on a lightweight device.
      </p>
      <p>
        Brokering is the solution to this problem, since the broker can
always be on a server computer side having access to needed
computational and storage resources. The nomad devices residing
agents need access to services that require computational power
(for example filtering 100 hotels in order to present to a user the
best 10). Such services are proposed to be offered by
serverbased provider agents. Important works from the agent
technology domain, but also from that of the semantic web, have
addressed the issue of brokering and matchmaking ([
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ],
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]). However, these works lack the support for agents on the
specific context of being resident on nomad, lightweight devices.
      </p>
      <p>
        Our work builds on this previous work and provides a
framework for defining services using the OWL-S [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] paradigm
and making them available to lightweight devices. We use the
FIPA-ACL [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] standard for defining the agent messages that are
used by our novel interaction protocol. The content of the
messages is encoded using the FIPA-SL [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] language for
lightweight agents.
      </p>
      <p>In section 2 we describe our approach in detail and we
conclude with a discussion in section 3. We use italics in order to
type concepts of the ontology that we developed, their properties
and ACL message performatives.
2 THE BROKERING FRAMEWORK</p>
      <p>
        In order to address our requirements we used the broker agent
type [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], who can actively interface between the requester and
provider agents by facilitating the requested service transaction.
Thus, all communication between requester and provider agents
has to go through the broker. In this process, the requester’s
identity is unknown to the service provider. Thus, assuming the
business role of a service aggregator the broker services his
customers using providers as resources. The service requesters
are assumed to be aware of the services that they need. In our
system, the role of the broker is to either select the best service
for the requester, or to redirect the request to the appropriate
broker. The added value of our approach is the service protocol
that allows for anonymous brokering for agents in a nomad
context adding, for the first time, the possibility to broker
subscription services.
      </p>
      <p>
        The matchmaking process is a subset of LARKS [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], suited
for the nomad device applications domain. In this context, the
requester is assumed to use the same ontology with the broker.
Our process’s novelty lies in the manipulation of the inter-agent
messages content that is delivered using the LEAP protocol,
which poses specific limitations and is in byte code format.
Heterogeneous services are wrapped by service provider agents
who advertise and offer services using the application domain
ontology.
      </p>
      <p>
        Moreover, brokers can be distributed and each one can
specialize to a specific domain of services. We follow the notion
of broker specialization of Infosleuth [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. We model this
requirement using a broker capability property concept allowing
a broker to define its specialization in terms of service parameters
constraints and share it with other brokers. The advantages of our
approach compared to Infosleuth are a) brokers do not simply
exchange their advertisements but define their special capabilities
over the provided services in the domain, b) the requester agent
doesn't have to define a search policy for the broker, and, c)
compatibility with FIPA standards.
      </p>
      <p>The way to profile the services, the matchmaking process and
the brokering protocol are described in detail in the following
paragraphs.
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Service Profiling</title>
      <p>For service profiling we follow the semantic web trend and thus
are compatible to OWL-S. The service profile (SP) defines the
type of the service (e.g. mapping service), describes input and
output parameters, as well as preconditions and post-conditions.
Here we would like to note that in the service parameters
definition we have defined semantics for declaring a parameter as
optional or mandatory.
2.2</p>
    </sec>
    <sec id="sec-3">
      <title>The matchmaking process</title>
      <p>
        Having defined the input requests and profiles we can proceed
to defining the matchmaking process. We need to match a service
advertisement to a service request. Two types of matching best
serve our needs ([
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]): a) the exact matching, which demands
that the advertised service has the same semantics and equal
input/output parameters with the requested service, and b) the
plug-in matching, which allows for the advertisement to have
more input/output parameters than the ones requested. The exact
matching is obviously always preferable.
      </p>
      <p>
        Our matchmaking algorithm gradually filters the repository of
advertisements until the one best to serve the request is found.
Three types of filters, originally proposed by [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], are used: a)
Semantic Match (SM) searches the service profile advertisements
(PAs) for a service that matches the request (RP), b) Profile
Match (PM) searches the PAs provided by the SM for input and
output parameters that match those of the request. PM determines
which PAs are exact or plug-in matches and sorts them
accordingly, and, c) Constraint Match (CM) determines which of
the PAs provided by the SM, match the constraints of a request.
CM is performed to the sorted list provided by PM and either the
first or all PAs that successfully match the constraints are
selected depending on the broker’s policy.
      </p>
      <p>
        A special CM is needed before SM (named Pre-CM) so that
the broker agent (BA) can determine if he can serve the request
or it needs to redirect the request to another broker. Thus, broker
capabilities are described as constraints for parameter values. For
querying the PAs repository we use the RDQL (RDF Query
Language) of the Jena open source tool [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Thus, according to our matchmaking algorithm, the broker
first applies the pre-CM filter. If he can handle the request, he
then sequentially applies the three other filters (SM, PM, CM) to
his PA repository.</p>
      <p>
        Technical challenges were related to this matchmaking
process. The first was relevant to the transformation of a LEAP
message to RDF format for filtering. In order to overcome it we
use the LEAP codec for decoding a message at the broker side
and then encode it again with the use of the RDF codec [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] (see
an example in Figure 1). Thus, the request gains the necessary
semantics so as to be processable by Jena. From that point
forward the matchmaking process takes place and whenever the
response of the service provider is ready, it is encoded at the
broker side with the LEAP codec and sent to the lightweight
agent requester.
      </p>
      <p>
        Another problem that we had to overcome is that FIPA ACL
allows for a single ontology to be included in the content of an
ACL message. Thus, it is not possible to use different existing
ontologies when defining the ACL protocols (e.g. import all
OWL-S namespaces and use their concepts). That is why we
added in our ontology all the concepts that we need in order to
define a service profile similar to OWL-S. However, these are
reusable since the Protégé tool [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] that we used in order to
define our ontology doesn’t associate namespaces to ontologies
before deployment.
      </p>
      <p>
        For describing an input/output parameter within a request for a
service we created the CallParameter concept. There, we
encountered another technical challenge related to the fact that
we used the LEAP codec and thus, we could not add dynamically
a value concept to a parameter property as we could easily do in
an RDF document. This happens because the agent on the nomad
device uses ontology java beans [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] in order to represent
ontology concepts. These beans are normal Java classes
containing properties that cannot be ambiguous, i.e. defined of
type Object because the LEAP encoding and decoding process
needs specific data types to instantiate as properties of concepts.
&lt;?xml version="1.0"?&gt;
&lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/TR/1999/PR-rdf-schema-19990303#"
xmlns:fipa-rdf="http://www.fipa.org/schemas/FIPA-RDF#"
xmlns:O="http://imagine-it.eu/ontology#"&gt;
&lt;rdf:object&gt;
&lt;fipa-rdf:CONTENT_ELEMENT&gt;
&lt;rdf:Description&gt;
&lt;rdf:type&gt;http://imagineit.eu/ontology#RequestForEService&lt;/rdf:type&gt;
&lt;O:agent&gt;
&lt;rdf:Description&gt;
&lt;O:name&gt;broker@nspan2kp:1099/JADE&lt;/O:name&gt;
&lt;/rdf:Description&gt;
&lt;/O:agent&gt;
&lt;O:requestEService&gt;
&lt;rdf:Description&gt;
&lt;O:serviceName&gt;http://imagine-it.eu/ontology#
createMap&lt;/O:serviceName&gt;
&lt;O:hasParameterIn&gt;
&lt;rdf:Seq&gt;
&lt;rdf:li&gt;
&lt;rdf:object&gt;
&lt;rdf:type&gt;http://imagine-it.eu/ontology#
CallParameter&lt;/rdf:type&gt;
      </p>
      <p>&lt;O:withName&gt;http://imagineit.eu/ontology#forCountry&lt;/O:withName&gt;</p>
      <p>&lt;O:withType&gt;http://www.w3.org/2001/XMLSchema#
string&lt;/O:withType&gt;
&lt;O:withStringValue&gt;DE&lt;/O:withStringValue&gt;
&lt;/rdf:object&gt;
&lt;/rdf:li&gt;
&lt;rdf:li&gt;
&lt;rdf:object&gt;
&lt;rdf:type&gt;http://imagine-it.eu/ontology#
CallParameter&lt;/rdf:type&gt;</p>
      <p>&lt;O:withName&gt;http://imagine-it.eu/ontology#
screenSize&lt;/O:withName&gt;</p>
      <p>&lt;O:withType&gt;http://imagine-it.eu/ontology#
ScreenSize&lt;/O:withType&gt;
&lt;O:withScreenSizeValue&gt;
&lt;rdf:Description&gt;
&lt;O:hasPixelsHeight&gt;200&lt;/O:hasPixelsHeight&gt;
&lt;O:hasPixelsWidth&gt;320&lt;/O:hasPixelsWidth&gt;
&lt;/rdf:Description&gt;
&lt;/O:withScreenSizeValue&gt;
&lt;/rdf:object&gt;
&lt;/rdf:li&gt;
&lt;/rdf:Seq&gt;
&lt;/O:hasParameterIn&gt;
&lt;/rdf:Description&gt;
&lt;/O:requestEService&gt;
&lt;/rdf:Description&gt;
&lt;/fipa-rdf:CONTENT_ELEMENT&gt;
&lt;/rdf:object&gt;
&lt;/rdf:RDF&gt;</p>
      <p>
        We overcame this issue by defining all possible values that a
parameter can have as properties of the CallParameter concept.
The basic properties of the CallParameter in an OWL/RDF
setting would be the withName, withType and withValue. In this
case, however, we must cater for all possible types defined in our
ontology concepts. Figure 1 shows an instance of a request
message related to a specific application [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which is based on
the http://imagine-it.eu/ontology# namespace. The reader can
observe the hasParameterIn RDF sequence element that is
composed of a list of CallParameter elements that have a name
(parameter withName), a type (it can be a simple data type such
as string or a complex type like for example the ScreenSize type)
and a value corresponding to the type.
      </p>
      <p>
        For example, for the ScreenSize type (these types are also
related to application [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]) the relevant property of CallParameter
that is used is the withScreenSizeValue. Similarly the forCountry
CallParameter is of type string and has the withStringValue
property. Thus, the CallParameter concept has as many such
properties as the number of the data type concepts defined in our
ontology. However, for each instance the requester defines the
withName and withType (withType=PropertyType) properties and
the relevant withPropertyTypeValue property. It is obvious that a
designer can define appropriate parameter types related to his
own application.
2.3
      </p>
    </sec>
    <sec id="sec-4">
      <title>The Service Protocol</title>
      <p>
        The service provisioning protocol is presented in Figure 2 in the
form of a FIPA interaction diagram [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>Requester</p>
      <p>Broker</p>
      <p>Service Provider</p>
      <p>Request
Service Protocol. The
SL content of the
Request message is the
AgentAction
"RequestForEService".</p>
      <p>This is optional in the
sense that the broker
might invoke a simple
service through DMM
Alternative</p>
      <p>X
X
X
Option
X
Option</p>
      <p>Inform
Confirm
Failure
Refuse
Cancel
Inform</p>
      <p>Request</p>
      <p>Inform
Matchmaking</p>
      <p>Request
Alternative - Option</p>
      <p>Inform
Confirm
Failure
Refuse</p>
      <p>X
X
X</p>
      <p>X
Service Protocol. The
SL content of the Inform
or Confirm message is
the Predicate
"FoundServiceResults"</p>
      <p>Cancel
Inform</p>
      <p>Advertise service
protocol.</p>
      <p>The SL content of
the request
message is the
AgentAction
"RegisterEService"
. Thus, a service
provider advertises
his service.</p>
      <p>
        The service protocol can also be used for subscription
services provisioning. We use the FIPA Request, Inform, Refuse,
Failure and Confirm performatives. The important AgentAction
and Predicate concepts [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] that are used as content in the ACL
message are also presented. The participants are the Requester
agent type (RE), the Broker agent type (BR) and the service
provider agent type (SP). In the case of distributed brokering the
SP is another broker, who considers the broker, who received the
original request, as a RE (implementing the relevant part of the
same protocol).
      </p>
      <p>
        Finally, for the service subscription protocol, the broker
always retains the recent addresses of the communicating agents
so as to be able to forward new messages to the latest address of
the requester agent. This is important since the requester agent is
on a nomad device and usually is assigned a dynamic IP
whenever he accesses the network.
We used this brokering framework in the context of IST project
Im@gine IT in the infomobility sector domain [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. An Im@gine
IT prototype has been developed and deployed. Two added value
service providers were developed.
      </p>
      <p>
        This work is meant as an extension of important works in the
brokering domain ([
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]), towards offering semantic
services to nomad devices. We provide a complete solution for
the nomad devices service provisioning including not only simple
services but also the delegation of complex tasks and subscription
services. The solution is composed of a protocol, a service
profiling scheme and the relevant matchmaking process.
      </p>
      <p>As future work we aim to enrich the broker with the capability
to use directly OWL-S services advertisements (along with those
received by other agents) where the broker performs the service
grounding himself.</p>
    </sec>
    <sec id="sec-5">
      <title>Acknowledgements</title>
      <p>We gratefully acknowledge the European Commission
Information Society Technologies (IST) Programme and
specifically the Integrated Project (IP) “Ambient Intelligence
System of Agents for Knowledge-based and Integrated Services
for Mobility Impaired users” (ASK-IT, IST-2003-511298)
project for contributing in the funding of our work.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Caire</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van Aart</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bergenti</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pels</surname>
          </string-name>
          , R. :
          <article-title>Creating and Using Ontologies in Agent Communication</article-title>
          .
          <source>Workshop on Ontologies and Agent Systems at AAMAS 2002</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>FIPA</surname>
          </string-name>
          ,
          <article-title>Foundation for Intelligent Physical Agents, www</article-title>
          .fipa.org
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Gomez</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abasolo</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Plaza</surname>
          </string-name>
          , E.:
          <article-title>Domain-independent ontologies for cooperative information agents</article-title>
          .
          <source>In: Cooperative Information Agents V. LNAI 2128</source>
          , Springer-Verlag,
          <year>2001</year>
          , p.
          <fpage>118</fpage>
          -
          <lpage>129</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>JADE</given-names>
            ,
            <surname>Java Agent</surname>
          </string-name>
          Development Environment, http://jade.tilab.com/
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Jena</surname>
            ,
            <given-names>A Semantic</given-names>
          </string-name>
          <string-name>
            <surname>Web</surname>
          </string-name>
          <article-title>Framework for Java</article-title>
          , http://jena.sourceforge.net/
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Klucsh</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sycara</surname>
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Brokering and Matchmaking for Coordination of Agent Societies: A Survey</article-title>
          . In Omicini et al (editor),
          <source>Coordination of Internet Agents</source>
          , Springer,
          <year>2001</year>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Li. L.</given-names>
            and
            <surname>Horrocks</surname>
          </string-name>
          , I.:
          <article-title>A software framework for matchmaking based on semantic web technology</article-title>
          .
          <source>Int. Journal of Electronic Commerce</source>
          , Vol.
          <volume>8</volume>
          , No 4,
          <fpage>2004</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Moraitis</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Petraki</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Spanoudakis</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          :
          <article-title>An Agent-Based System for Infomobility Services</article-title>
          .
          <source>In: 3rd European Workshop on Multi-Agent Systems (EUMAS2005)</source>
          , Brussels, Belgium, December 7 -
          <issue>8</issue>
          ,
          <fpage>2005</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Nodine</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bohrer</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , Hee Hiong Ngu,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Semantic Brokering over Dynamic Heterogeneous Data Sources in InfoSleuth</article-title>
          .
          <source>In Proc. of the International Conference on Data Engineering</source>
          , Sydney, Australia, March
          <volume>23</volume>
          -26,
          <year>1999</year>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Protégé</surname>
          </string-name>
          ,
          <article-title>An Ontology Editor and Knowledge Acquisition System</article-title>
          . http://protege.stanford.edu
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Sycara</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Widoff</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klusch</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Lu</surname>
          </string-name>
          , J.:
          <source>LARKS: Dynamic Matchmaking Among Heterogeneous Software Agents in Cyberspace. JAAMAS</source>
          ,
          <volume>5</volume>
          ,
          <fpage>173</fpage>
          -
          <lpage>203</lpage>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>The OWL Services Coalition (Martin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          et al.)
          <article-title>: Bringing Semantics to Web Services: The OWL-S Approach</article-title>
          ,
          <source>Proc. of the 1st Int. Workshop on Semantic Web Services and Web Process Composition (SWSWPC2004)</source>
          ,
          <source>July 6-9</source>
          ,
          <year>2004</year>
          , San Diego, California, USA.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <issue>W3C</issue>
          , The World Wide Web Consortium, www.w3c.org
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>