The immediate goal for PeerWare was to provide the middleware base for building
a platform supporting distributed and mobile cooperative work, in the context
of the project MOTION,
funded by the European Community. The goal of the project was to build a framework
of teamwork services to develop an enterprise-wide infrastructure for cooperation.
PeerWare should be the core component of such framework, offering the basic
The peculiarity of the application domain suggested us to adopt a peer-to-peer
architecture, assuming that each user is mapped onto a peer that hosts information
about the user and her documents. This solution allows for high degrees of reconfigurability
and flexibility, which becomes especially important when mobility is part of
the picture, as in the case of MOTION.
On the other hand, the requirements posed by the specific scenarios we had
in mind led us in a direction that is somewhat different, and novel, with respect
to currently available peer-to-peer systems. In particular, the following goals
guided the development of PeerWare:
- Focus on middleware instead of applications.
- Our goal was to identify and provide a core and minimal set of
flexible and extensible primitives sufficient to support any kind
of peer-to-peer application, or to constitute the core for higher-level, application-specific
middleware, like in the case of the MOTION platform.
- Provide "complete" searching services in a scalable manner.
- Most of currently available peer-to-peer systems are oriented toward the
Internet. As a consequence, their searching mechanisms adopt best-effort approaches,
which are not adequate for enterprise wide cooperative applications. Consequently,
one of our primary goals in PeerWarewas to implement "complete"
searches in a scalable manner. Perhaps not so scalable to be used on the Internet,
with millions of nodes, but scalable enough to cope with the size of a large
- Integrate in a single unifying model both proactive and reactive primitives.
- Advanced collaboration cannot be based only on proactive services, like
the ability of searching the shared information space for specific documents
when needed. Similar services are fundamental to support collaboration but
the proactive paradigm is not enough. Reactive services, like the ability
to be notified if a new document appears or a user joins the system are also
required. PeerWare integrates both services.