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
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
ICSOFT 2006 - INTERNATIONAL CONFERENCE ON SOFTWARE AND DATA TECHNOLOGIES
204