IP can be a basis for the establishment of UPnP), user
Interface (UI) control (devices can have a UI written
by XML which is readable by a browser), and operat-
ing system and programming languageindependence.
UPnP has three major components: device (con-
tains one or more services), service (performs actions
and shows its state; consists of a state table, control
server and event server), and control point (a system
that discovers and then controls services and devices).
The functioning of UPnP then involves six steps:
Addressing: Each device must have a Dynamic Host
Configuration Protocol (DHCP) client. When the de-
vice connects to the network for the first time it must
search for a DHCP server. If a DHCP server exists,
then the device receives an IP address this way. Oth-
erwise the device must assign an IP address to itself
(Auto-IP). After assignment the device must check
whether this address is not being used by anybody
else. This is accomplished by the device broadcast-
ing some probe message; if the device receives any
other message with the sender IP address matching
the address being tested, a conflict has happened. On
the other hand, if a device receives a probe message
with the same IP address as its own, it must send a
response to the network, which will detect the con-
flict as explained before. A conflict implies that the
address is already in use and then the device should
change the address and check again. Even after the
Auto-IP phase is complete, the device must periodi-
cally check for the presence of a DHCP server (UPnP,
2000). Probing a new IP address, conflict detection,
and address announcement are the three phases of
Auto-IP as described in the IETF RFC 3927 (Cheshire
et al., 2005).
Discovery: Discovery is the process of discovering
the capabilities of the devices on the network. It can
take place in two ways.
First, when a new device gets an IP address and
so is connected to the network, the device must mul-
ticast discovery messages, advertising its embedded
devices and services. This process is called discovery-
advertisement. Any interested control point in the net-
work can listen to these advertisements and then con-
nect and control the originating devices or only some
of their services.
Secondly, when a new control point is established
in the network. Such a new control point multicasts a
Simple Service Discovery Protocol (SSDP) message
(UPnP Forum, 2008), searching for available devices
and services. All devices in the network must listen to
this kind of messages and respond to them whenever
any of their services or embedded devices matches
the criteria from the SSDP messages. This process
is called discovery-search (UPnP, 2000).
Description: Once discovery is complete and the con-
trol point knows about the existence of one device or
service, it must also find out how to invoke that de-
vice or service. The respective control point retrieves
the device description from the URL provided by the
device in the discovery message. The UPnP descrip-
tion for a device is expressed in XML and includes
vendor-specific information, manufacturer informa-
tion, a list of any embedded devices or services, as
well as URLs for control, eventing, and presentation
(UPnP, 2000).
Control: Now that the control point has a clear
overviewof the service and knows how to control it, it
can send an action request. The control point sends a
control message to the device according to the respec-
tive service control description. Control messages are
expressed in XML. In response, the service will return
action specific values or fault codes (UPnP, 2000).
Eventing: Services keep control points informed by
sending them event messages. Event messages con-
tain the last update of changed state variables in the
service. This process is called eventing (UPnP, 2000).
Presentation: Some devices have URLs for presenta-
tion. Such an URL can be fetched and then presented
in a browser by the control point. According to the
device capabilities and URL presentation definition,
a user can then see the status of the service and even
control it (UPnP, 2000).
Gnutella. A distributed network architecture may
be called a peer-to-peer (P2P) network whenever the
participants share a part of their own hardware re-
sources (processing power, storage capacity, network
link capacity, printers, etc.) with each other. These
shared resources are necessary to provide the service
and content offered by the network (e.g., file shar-
ing or shared workspace for collaboration). Further-
more they are accessible by other peers directly, with-
out passing through intermediate entities. The partici-
pants in such a network are thus resource (service and
content) providers and at the same time resource (ser-
vice and content) requesters (the “servent” concept)
(Schollmeier, 2001). Peer-to-peer file sharing is a par-
ticular example of peer-to-peer network. Each peer in
a peer-to-peer file sharing network is implemented by
a client which uses some distributed search protocol
to find other peers as well as the files that are being
shared by them. Different protocols for distributed
search are being used by peer-to-peer file sharing pro-
grams, the most prominent being BitTorrent (Cohen,
2008) and Gnutella (Clip2, 2003).
Because of the distributed nature of Gnutella and
its independency from any central servers, a Gnutella
ADistributedArchitectureforRemoteServiceDiscoveryinPervasiveComputing
401