UNIFIED DESCRIPTION AND DISCOVERY OF P2P SERVICES
G. Athanasopoulos, A. Tsalgatidou, M. Pantazoglou
Dept. of Informatics and Telecommunications, National and kapodistrian University of Athens
{gathanas,atsalga, michaelp}@di.uoa.gr
Keywords:
Service Oriented Computing Peer-to-Peer services, Service Description, Service Discovery, Service
Invocation.
Abstract:
Our era has been marked by the emergence of the service oriented computing (SOC) paradigm. This new
trend has reshaped the way distributed applications are built and has influenced current computing
paradigms, such as p2p and grid computing. SOC’s main objective is to leverage interoperability among
applications and systems; however, the emergence of various types of services such as web, grid and p2p
services has raised several interoperability concerns among these services as well as within each of these
service models. In order to surpass these incompatibilities, appropriate middleware and mechanisms need to
be developed so as to provide the necessary layers of abstraction and a unified framework that will obscure
a service user from the underlying details of each service platform. Yet, for the development of such
middleware and mechanisms to be effective, appropriate conceptual models need to be constructed. Within
this paper, we briefly present a generic service model which was constructed to facilitate the unified
utilization of heterogeneous services, with emphasis on its properties for the modeling of p2p services.
Moreover, we illustrate how this model was instantiated for the representation of JXTA services and present
the service description and discovery mechanisms that were built upon it. We regard this generic service
model as a first step in achieving interoperability between incompatible types of services.
1
INTRODUCTION
Contemporary application development trends have
been highly influenced by the service oriented
computing (SOC) paradigm (Papazoglou, 2003).
This new software engineering trend has primarily
affected the development of distributed systems.
There have been many distinct definitions over
what constitutes a service (Vogels, 2003), (Booth,
2004), (Foster, 2002). Nevertheless, all these
definitions share some common properties and
characteristics (Tsalgatidou, 2005). A service is
usually regarded as a self-described software system
offering a specific interface (that is described using a
specific interface definition language) to its clients
who can invoke it via messages over the Internet
using predominant protocols and standards such as
HTTP, XML, etc.
As it has been articulated by many researchers
(Vogels, 2003), (Papazoglou, 2003), services
leverage the interoperability among applications.
SOC provides an infrastructure, which alleviates the
interoperability concerns raised by the underlying
platform, programming languages and operating
systems used by software applications and systems.
Despite the original hype, the emergence of
various types of services such as web, grid and peerto-peer (p2p) types of services rendered the vision of
interoperability elusive. Each of these types of
services incorporates its own service model and
attributes services with specific properties and
characteristics. Heterogeneity is also prevailing
among the underlying mechanisms supporting basic
functionality such as the description, discovery and
invocation of services.
Discrepancies and interoperability problems are
not just inter-service type concerns. Such problems
are also encountered within services of the same
type. WS-I provided the Basic Interoperability
Profile (WS-I, 2004) in order to overcome some of
the interoperability concerns in the web service
computing paradigm. Regarding p2p services, the
existence of a plethora of p2p systems and
frameworks, which abide by proprietary protocols
and models, has aggravated the problem of p2p
service interoperability. A comparison on some of
the most well known p2p systems and frameworks
203
ICSOFT 2006 - INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES
such as JXTA (JXTA), Gnutella (Gnutella) and
Edutella (Edutella), reveals their diversities on the
notion of p2p services. Each of these p2p
frameworks and systems incorporates proprietary
mechanisms and infrastructure for the description,
discovery and invocation of p2p services and
attributes p2p services with distinct characteristics
and properties according to its own adopted service
model.
All these diversities among the existing types of
services hinder their widespread utilization and their
seamless integration. In order to overcome the
obstacles raised by the heterogeneity among the
existing types of services one has to be based on a
solid foundation. Such a foundation could be a
conceptual model, which would provide the
necessary basis for the development of appropriate
abstractions and mechanisms that could facilitate
service interoperability. This was one of the
objectives
of
the
SODIUM
project
(http://www.atc.gr/sodium). A Generic Service
Model called GeSMO was developed within the
SODIUM project and served as the basis for the
development of a set of languages, middleware and
tools for the unified discovery and composition of
heterogeneous services such as web, grid and p2p
services.
Within this paper we briefly illustrate this
generic service model with emphasis on how this
model was specialized for the representation of p2p
services. Furthermore, we present how this model
was instantiated for rendering JXTA services as well
as the mechanisms that were developed for the
description and discovery of JXTA services. This
model has also served as the basis for the
development of a p2p service invocation mechanism
which will be the subject of another paper.
We have chosen to primarily focus on p2p
services since this type of services present the widest
range of diversities. Therefore, the application of our
approach on this type of services will clearly
illustrate its merits and the benefits gained by its
usage.
Before proceeding we would like to give a
definition on what constitutes a p2p service in order
to dispel any misconceptions that may rise. As it has
been stated in (Tsalgatidou, 2005), p2p services can
be classified either as coarse services providing high
level business logic, such as file sharing and instant
messaging or as elementary services providing basic
p2p network functionality, such as discovery of
nodes and resources, message routing and message
exchange. As far as coarse p2p services are
concerned, these may be defined as “the provision of
204
resources or the execution of tasks of one or more
(temporarily provider) peers on behalf of one or
more (temporarily user) peers in a P2P network”
(Gerke, 2003), whereas elementary p2p service may
be defined as “services that support basic
functionality in a P2P system, such as discovery of
peers or resources, peer membership management,
query formulation and routing, etc”.
The goal of this paper is to illustrate the provided
generic service model and its extensions for
supporting the representation of p2p services as well
as how this generic service model was used for the
development of appropriate mechanisms supporting
the description and discovery of p2p services. In
order to achieve its goals the paper is organized as
follows: Section 2 illustrates the current state of the
art on some of the existing p2p platforms and
systems supporting the notion of p2p service.
Consequently, sections 3 and 4 present respectively
the generic service model and its instantiation for the
JXTA service paradigm. Finally section 5 draws our
conclusions and future plans on p2p services.
2
CURRENT STATE
A thorough look into some of the most prominent
p2p platforms and systems unveils the set of
discrepancies among these platforms regarding the
properties and characteristics as well as the
mechanisms used for supporting basic functionality
of p2p services. The results of such an investigation
on the JXTA (JXTA), Edutella (Edutella) and
Gnutella (Gnutella) platforms are briefly presented
below. A more detailed analysis of these problems
can be found in (Tsalgatidou, 2005)
– Support for the Notion of Service: JXTA is the
only framework which inherently supports this
notion and enables the development and
provision of additional services. Edutella is a
platform built on top of JXTA providing a basic
set of services, described using web service
protocols, which enable the exchange of
resources among peers, annotated with meta-data
(Nejdl, 2002). Gnutella, on the other hand, is a
fully distributed protocol enabling the
development of file sharing p2p applications. In
contrast to JXTA and Edutella, Gnutella doesn’t
accommodate the notion of service.
– Syntactic Service Descriptions: JXTA utilizes
the advertisement construct which is a language
neutral meta-data structure represented as an
XML document. A service advertisement
document conveys the necessary information
UNIFIED DESCRIPTION AND DISCOVERY OF P2P SERVICES
that enables a peer to invoke a preconfigured
service. However, an advertisement document
doesn’t convey information related to the
interface, operations or messages that are
exchanged by a service; all this information is
hard-coded into the service and client
applications. Edutella utilizes web service
description protocols and standards such WSDL
or DAML-S. These constructs convey the
necessary information that can be used for the
on-the-fly invocation of services. Gnutella, in
contrast to JXTA and Edutella, doesn’t provide
any form of service description document.
– Supporting Mechanisms: In terms of underlying
mechanisms used for publishing, discovering
and invoking p2p services, JXTA offers a set of
services which facilitate the publishing and
querying for available services as well as
mechanisms for binding and exchanging
messages with selected services. Edutella
leverages the underlying mechanisms and
services provided by JXTA for the discovery and
invocation of the provided set of services.
Gnutella on the other hand doesn’t accommodate
such mechanisms supporting the publishing,
discovery and invocation of p2p services.
– Semantic Service Description: Among the
investigated p2p platforms only Edutella
supports the semantic annotation of p2p services
descriptions through the use of semantic
description frameworks such as DAML-S. JXTA
and Gnutella don’t accommodate semantic
annotations to service descriptions.
All these incompatibilities among the
investigated types of services render the seamless
utilization of p2p services offered by those platforms
an arduous task. In order to overcome these
shortcomings, developers have to provide
customized solutions that facilitate the integration of
such services. Nonetheless, such solutions are
usually strongly bound to the underlying
infrastructure as well as the specific application
logic.
An appropriate solution that could be applied to
this problem is to develop a generic service model
which will specify all necessary constructs. This
service model would provide the basis upon which
middleware and tools could be built so as to
accommodate the necessary abstractions. Such a
model is presented in the following section.
3
GENERIC SERVICE MODEL
In this section, we briefly illustrate the structure and
the concepts of a Generic Service Model (GeSMO),
which can be used as a basis for the development of
appropriate languages and middleware that address
service interoperability. GeSMO was based on a
thorough investigation of the current state of the art
on web, grid and p2p services. Specifically with
respect to the p2p services, GeSMO has been
primarily influenced by the work in JXTA (JXTA)
as the latter is one of the very few p2p networks that
ardently support the notion of service.
The generic service model was constructed in
such a way that it efficiently models all common
characteristics of web, p2p and grid services, while
at the same time provides for the modeling of the
distinct characteristics per service type. The
architecture that was selected for the development of
the Generic Service Model (GeSMO) is a layered
one consisting of a core layer, an extension layer
built on top of the core layer and a number of layers
orthogonal to the core layer and its extensions. More
details on the GeSMO model can be found at
(Tsalgatidou, 2005).
As expected, the fundamental element in
GeSMO is the notion of service. Services are
regarded as self-described software systems, which
interact with their clients over the Internet through
messages. As we can see in Figure 1, a service
description facilitates its clients in identifying the
messages that can be exchanged as well as where
and how these messages should be sent.
Software System
Net Address
1..*
resides at
describes
1..*
specifies
Service
1
offered by
Provider
exchanges
1..*
Description
defines 0..*
Message
Figure 1: Basic Service Model.
The syntactic elements of a service along with
their structure are illustrated in Figure 2. According
to Figure 2, a service provides one or more
interfaces which consist of the operations that this
service offers to its clients. An operation groups a
set of messages that are exchanged among a service
and its respective clients. Each message consists of a
set of elements which adhere to specific data types.
205
ICSOFT 2006 - INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES
Service
1..*
defines
specializations of the aforementioned concepts
might be needed. Such specializations for the JXTA
platform as well as a description and discovery
mechanism which were based upon this model are
presented in the next section.
Syntactic
Element
Service
Interface
1..*
Operation
1..*
exchanges
1..*
Message
1..*
Message
Element
abides by
describes
Description
Data
Type
Provider
0..1
Figure 2: Syntactic Service Model.
describes
PSDL
describes
contains 1..*
Peer
0..1
Peer Group
1..*
offers
3.1 P2P Service Model
1..*
1..*
0..*
supports
P2P Service
The P2P Service Model extends the core concepts of
the generic service model with additional elements
that are needed for the description of p2p services.
Although the extensions for the p2p service type
were primarily influenced by the JXTA platform,
they are still generic enough and thus applicable to
other types of platforms.
According to Figure 3 the concepts that were
added are that of P2P Service, Peer, Peer Group and
PSDL (P2P Service Definition Language)
description. A p2p service represents a service that is
provided by a peer or a set of peers in a p2p
network. A p2p service may be a coarse service or
an elementary service according to the
classifications provided in (Tsalgatidou, 2005).
A peer represents a node of a p2p network,
which is able to communicate with other peers and
provide them with services. A peer group represents
the logical group of peers that may be formulated in
a p2p network.
A PSDL description provides information on
what a p2p service does and how it can be invoked.
This concept was added so as to facilitate the
description of p2p services with additional
information elements. Hence, a PSDL document
doesn’t aim at replacing the existing description
constructs provided by the underlying platform, but
rather to annotate them with additional elements that
these constructs lack. Furthermore, PSDL
descriptions provide the basis upon which
mechanisms and middleware could be built so as to
support the more efficient discovery and utilization
of p2p services. More info about the PSDL
description may be found in (Tsalgatidou,
Athanasopoulos 2006)
The aforementioned concepts represent a basic
set of elements that may be used for the description
of p2p services. However, when it comes to
modeling p2p services offered by specific platforms,
such as JXTA or Edutella, additional elements or
206
Service
Figure 3: P2P Service Model.
4
JXTA SERVICE PARADIGM
JXTA (JXTA) is a set of open, generalized peer-topeer protocols that allow network connected devices
to communicate and collaborate as peers. JXTA
protocols are independent of any programming
language and up to now there have been several
implementations for different environments. In
general, we may regard JXTA as a framework that
can be used for the development of p2p networks.
Communication
Mechanism
<<JXTA>>
Pipe
1
PSDL
describes
0..*
<<JXTA>>
PSDL
<<JXTA>>
0..1
1
specifies
Module Specification
Advertisement
specifies
<<JXTA>>
Pipe Advertisement
Figure 4: JXTA Service Model.
The provided JXTA protocols standardize the
services used for: a) Discovering peers, b)
Organizing peers into peer groups, c) Advertising
and discovering network services, d) Handling peer
communication and e) Handling peer monitoring.
With respect to the development of services, JXTA
offers constructs such as Pipes, Module
Specification
Advertisements
and
Pipe
Advertisements.
Pipes
are
communication
mechanisms used for handling the exchange of
messages among peers facilitating thus the
interaction of service requestors and service
UNIFIED DESCRIPTION AND DISCOVERY OF P2P SERVICES
providers. Pipe Advertisements and Module
Specification Advertisements are specializations of
the advertisement construct which are used for
publishing information about pipes and services
respectively.
The specializations of the generic service model
provided for representing the concepts of the JXTA
platform are illustrated in Figure 4. An extended
PSDL description for the JXTA platform describes
the pipes that may be used for exchanging messages
with a service and provides references to their
respective Pipe Advertisements. A p2p service’s
Module Specification Advertisement provides
reference to the PSDL description document of that
service. This association is accomplished through
the use of an extension element (SURI element) that
is inherently supported by a Module Specification
Advertisement.
4.1 JXTA Service Description
A JXTA service description document such as the
one presented in Figure 5 is an instantiation of the
PSDL description concept that is illustrated in
Figure 4. As it can be seen in Figure 5, PSDL is an
extension of WSDL 1.1 (Christensen, 2001) which
has the same abstract part as a WSDL document and
an extended concrete part. The concrete part
contains additional elements to accommodate the
concepts described in Figure 3 and Figure 4. The
WSDL 1.1 elements that were extended so as to
accommodate the extra concepts presented in Figure
3 and Figure 4 are the Binding and Port elements.
The Binding element has been extended via the
jxta:binding sub-element (see Figure 5) which
declares that this is a binding to a JXTA p2p service.
Moreover, the jxta:binding element provides
information on the type of interactions that might
take place via this binding i.e. send, receive or sendreceive interactions as well as the patterns of these
interactions i.e. synchronous or asynchronous
interactions. The Port element on the other hand has
been extended with the jxta:provider, jxta:pipes and
jxta:moduleAdv sub-elements. The jxta:provider
element conveys information describing the provider
of a p2p service which might be either a specific
peer or a peer group (JXTA). The jxta:pipes element
lists the pipes that support the exchange of messages
with the service. For each pipe element that might be
used for interacting with a service the pipe
advertisement of that pipe as well as the interface
accessible through that pipe are specified. Finally,
jxta:moduleAdv element provides reference to the
service’s Module Specification advertisement. A
PSDL document provides all the necessary
information for identifying the functionality a JXTA
service offers as well as how it can be invoked.
4.2 JXTA Service Discovery
In this section, we will briefly describe the
mechanism we implemented for the discovery of
JXTA p2p services. Due to the lack of space, and the
fact that this is not the main purpose of this paper,
implementation details have been left out. As it is
shown in Figure 6, the course of service discovery in
general involves the following steps: a) Specify
service requirements in the form of a query; b)
Submit the query to the appropriate broker, registry
or network, in order to retrieve service description
Abstract Part
Concrete Part
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:jxta="http://metis.di.uoa.gr/Sodium/gesmo/services/p2p/">
<message name="IMessage"> ……...</message>
<portType name="IMServiceIF">
<operation name="sendMessage" parameterOrder="MessageContent MessageSender">
<input name="msg" message="tns:IMessage"/>
</operation>
</portType>
<binding name="JxtaBind" type="tns:IMServiceIF">
<jxta:binding action="send"/>
<operation name="sendMessage"> …. </operation>
</binding>
<service name="IMService">
<port name="JxtaPort" binding="tns:JxtaBind">
<jxta:provider name="Jemini" type="Peer"/>
<jxta:pipes name="IMServicePipes">
<jxta:pipeAd name="UniPipe" uri="http://metis.di.uoa.gr/.../IMS_PipeAd.xml" interface="tns:IMServiceIF"/>
</jxta:pipes>
<jxta:moduleAdv name="IMServiceModuleAd" uri="http://metis.di.uoa.gr/.../IMS_MSpecAd.xml"/>
</port>
</service>
</definitions>
Figure 5: Instant Messaging Service PSDL description.
207
ICSOFT 2006 - INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES
advertisements; c) Match the contents of the query
against those advertisements; d) Wrap matching
services in a message and send it to the requester, as
response to his/her request.
The USQL Engine (Tsalgatidou, Pantazoglou,
2005), our proposed service search engine prototype,
implements the aforementioned generic service
discovery mechanism. The USQL Engine is an
extensible framework, capable of applying service
discovery against heterogeneous service registries
and networks, in a unified manner. As its name
implies, it makes use of the Unified Service Query
Language (USQL) for the formulation of incoming
service requests and outgoing service responses.
USQL abides by the principles of GeSMO, and
allows requesters to express their requirements by
making use of syntactic, semantic, as well as quality
criteria. A detailed description of the language is
given in (Tsalgatidou, 2006). Like GeSMO, both
USQL and the USQL Engine have been developed
within the context of the SODIUM project.
Service Discovery Mechanism
Service
Request
Broker
Client
Matchmaker
Service
Response
Service Advertisements
included in the resulting USQL response, which
contains adequate information for their immediate
invocation. The whole procedure is displayed in
Figure 7, which may be perceived as an instantiation
of the generic mechanism shown in Figure 6.
In the current implementation of the JXTA agent
plug-in, the USQL Engine needs to become a
member of a peer group, before applying service
discovery. In a highly volatile environment, such as
a p2p network, and given the asynchronous nature of
advertisement retrieval in JXTA, this approach may
not always be the best one. A more sophisticated
approach would break the plug-in into two loosely
coupled parts: one part which would be a peer in the
peer group of interest, caching all service
advertisements, and another part acting as a remote
control of the peer, asking for service
advertisements. Such an approach is within our
plans for future work. Nevertheless, the USQL
Engine framework is flexible enough to be able to
accommodate both approaches, as well as other
potential architectures. For instance, the USQL
Engine being exposed as a JXTA service, it could be
used as the default service discovery mechanism
within the boundaries of peer groups and networks,
thus significantly contributing to the JXTA
infrastructure.
Broker
USQL Engine
USQL
Request
Figure 6: Perception of Service Discovery.
The USQL Engine retains its abstraction from
heterogeneous service types and their related
technologies by establishing a flexible plug-in based
architecture. More specifically, the framework
provides extension points for discovery agents and
document handlers. The former are responsible for
accessing and querying the various registries and
networks by utilizing their existing discovery
mechanisms, while the latter are responsible for
parsing the various heterogeneous service
advertisements hosted in those registries and
networks.
In the case of JXTA service discovery, the
USQL Engine has been extended with a JXTAAgent
plug-in. This component utilizes the JXTA
Discovery service, in order to access a peer group
and retrieve the advertisements it contains. Provided
that these advertisements contain a link to an
external PSDL description document, the agent
employs the PSDLHandler plug-in in order to parse
these service descriptions and supply the USQL
Matchmaker with input. The JXTA services that
were found to meet the requester’s requirements are
208
JXTA
Agent
USQL
Matchmaker
USQL
Response
PSDL advertisements
JXTA
Network
Figure 7: JXTA Service Discovery Process implemented
by USQL Engine.
5
CONCLUSIONS
Service Oriented Computing has reformed the way
distributed applications are built. P2P along with
grid computing have been heavily affected by this
new engineering trend. Although, grid computing
ensued
a
straightforward
approach
in
accommodating the service model through the
(Foster, 2002) and (Foster, 2005) specifications, p2p
computing has not ensued a similar approach.
The incompatibilities among the existing p2p
platforms in supporting the notion of service are
hindering the widespread utilization of p2p services
as well as their interoperation with other types of
UNIFIED DESCRIPTION AND DISCOVERY OF P2P SERVICES
services. In order to surpass the difficulties raised by
the discrepancies among the existing types of
services as well as of the existing p2p service
platforms a model describing the necessary concepts
needs to be provided. Upon this model appropriate
mechanisms and middleware can be built so as to
provide the necessary abstractions.
In this paper, we presented a generic service
model called GeSMO, which was developed within
the SODIUM (http://www.atc.gr/sodium) project for
facilitating the modeling of web, grid and p2p
services. The extensions that were provided for the
description of p2p services as well as an
instantiation of the p2p service model for the JXTA
platform were also presented. The extensions
provided for JXTA were the basis for the
development of appropriate mechanisms supporting
the description and discovery (Tsalgatidou,
Pantazoglou, 2006) of JXTA services.
Despite that currently the presented p2p service
model was only instantiated for the description of
JXTA services, its concepts are generic enough so as
to enable the modeling of other types of p2p services
such as Edutella services or Gnutella services.
Furthermore, although we have presented
mechanisms which facilitate the description and
discovery of JXTA services, additional mechanisms
can be provided so as to enable the invocation of
these services.
Our future plans include the instantiation of this
model for other types of p2p service platforms e.g.
Edutella, and the development of mechanisms which
will enable the invocation of p2p services. Further
future plans include the extension of the generic
service model so as to accommodate other emerging
types of services such as sensor services.
ACKNOWLEDGEMENTS
This work has been partially supported by the
Special Account of Research Funds of the National
and Kapodistrian University of Athens under
contract 70/4/5829 and by the European
Commission under contract IST-FP6-004559 for the
SODIUM project.
A. Tsalgatidou, M. Pantazoglou, G. Athanasopoulos
(2006, February 3). Specification of the Unified
Service Query Language (USQL), Technical Report.
Retrieved
from
http://cgi.di.uoa.gr/~michaelp/TR/usql-1.0-spec.pdf
A. Tsalgatidou, G. Athanasopoulos, M. Pantazoglou, et al.
(2005, June 23). Generic Service Model Specification:
Technical
Report.
Retrieved
from
http://cgi.di.uoa.gr/~gathanas/TR/gesmo-1.0report.pdf
I. Foster, et al. (2005, January 29).The Open Grid Services
Architecture, Version 1.0. Informational Document,
Global Grid Forum (GGF). Retrieved from
http://www.gridforum.org/documents/GWD-I-E/GFDI.030.pdf
WS-I, (2004, August 24). Basic Profile Version 1.1.
Retrieved on 8, May 2006, from http://www.wsi.org/Profiles/BasicProfile-1.1.html
D. Booth, et al. (2004, February 11). Web Services
Architecture. W3C Working Group Note. Retrieved on
26,
April
2006,
from
http://www.w3.org/TR/2004/NOTE-ws-arch20040211/
Werner Vogels (2003). Web Services Are Not Distributed
Objects. Journal of IEEE Internet Computing, Vol 7,
No 6, 59-66
M.P. Papazoglou and D. Georgakopoulos (2003). Service
Oriented Computing (special issue). Communication
of the ACM. Vol 46, No 10, 24–28
I. Foster, et al. (2002, June 22). The Physiology of the
Grid: An Open Grid Services Architecture for
Distributed Systems Integration. Open Grid Service
Infrastructure WG, Global Grid Forum.
J. Gerke, et al. (2003 April). An Architecture for a Service
Oriented Peer-to-Peer System (SOPPS). In Praxis der
Informationsverarbeitung und Kommunikation (PIK)
2/03, p.90-95.
W. Nejdl, et al (2002, May 7-11). EDUTELLA: A P2P
Networking
Infrastructure
Based
on
RDF.
WWW2002. Honolulu, Hawaii, USA.
E. Christensen, et al. (2001, March 15). Web Services
Description Language (WSDL) 1.1. Note, W3C.
Retrieved from http://www.w3.org/TR/wsdl
JXTA, Retrieved from http://www.jxta.org/
Gnutella. Retrieved from http://www.gnutella.com
Edutella. Retrieved from http://edutella.jxta.org
REFERENCES
A. Tsalgatidou, G. Athanasopoulos, M. Pantazoglou (May
2006). A P2P Service Description Language
Specification: Technical Report. Retrieved from
http://www.di.uoa.gr/~gathanas/TR/psdl-1.0-spec.pdf
209