Service-oriented Peer-to-Peer Architecture Last update: 26 May 2009

We applied the Peer architectural pattern to realize SP2A, a lightweight middleware enabling service-oriented peers for efficient and robust distributed applications. SP2A enables Grids, networked robots, collaborative communities. In writing its functional and technical specification, we respected the principle that a service is a set of functionalities provided by one entity for the use of others, and it is invoked through a software interface with no constraints on how the functionality is implemented by the providing entity. A service is opaque in that its implementation is hidden from the service consumer except for (1) the data model exposed through the published service interface, and (2) any information included as metadata to describe aspects of the service which are needed by service consumers to determine whether a given service is appropriate for the consumer's needs. Consistent with the axiom of opacity, a service consumer cannot see anything behind the service interface and does not know if one service is actually consuming and aggregating other services.

SP2A has been implemented as an open source Java middleware allowing the development of service-oriented peers (SOPs). The SP2A package includes four components providing interfaces and classes for managing the main aspects of service-oriented peers: state, group, security, and rps (the latter is the acronym of Resource Provision Service).
Several SP2A-based SOP prototypes are under development. These SOPs can form unstructured supernode networks (USNs), and exchange information about the services they host using peer-to-peer message routing algorithms. Each SOP is allowed to publish local Resource Provision Services, and to search for remote ones.



Current implementation of SP2A is based on JXTA and other third-party packages. Shared services are built on Web Service technologies, in particular, WS deployment in the P2P network is based on JXTA-SOAP, a JXTA-related package we are developing in collaboration with Sun MicroSystems.

NEW! We are studying service mobility, for which a service can move from a SOP to another.
SP2A-based prototypes are running on PlanetLab.

To download the source code from the CVS, type the following instruction set:

cvs -d:pserver:anonymous@sp2a.cvs.sourceforge.net:/cvsroot/sp2a login

cvs -z3 -d:pserver:anonymous@sp2a.cvs.sourceforge.net:/cvsroot/sp2a co -P platform

When prompted for a password for anonymous, simply press the Enter key.

Features:
- semantic description and discovery of service
- service code mobility NEW!
- secure peergroups
- J2SE, MIDP, CDC versions

For further details on SP2A move to the PROJECT PAGE.

SP2A Staff
Michele Amoretti (Ph.D. @ University of Parma)
Maria Chiara Laghi (PhD Student in Information Technologies @ University of Parma)
Fabio Tassoni (Master Student in Computer Engineering @ University of Parma)
Alberto Carubelli (Computer Engineer)
Matteo Bisi (Computer Engineer @ Sinfo Pragma)
Davide Prandi (Computer Engineer @ AP-Networks)
Umberto Bresciani (Computer Engineer)
Claudio Garatti (Master Student in Computer Engineering @ University of Parma)