PeerHood Specification

Document goals

  • What is peerhood.
  • Features (requirements) of the peerhood.


  • Pro-active Service Discovery on mobile devices. (Proactivity)
  • Seamless Connectivity. (Connectivity)
  • Provide information events related to services, connections or device resources. (Reactivity)

The goal of the PeerHood system is to provide a communication environment where devices act and communicate in a peer-to-peer manner. This means that devices communicate directly with each other without any centralized servers. In order to enable fast creation of required ad-hoc type networks the immediate neighbors a device are monitored and gathered information is stored for possible future usage. [3]

The second goal is to create a library that enables usage of any supported networking technology via a unified interface so that the underlying networking structure is hidden from the applications point of view. As a direct consequence the application development time should be reduced because complex tasks like device discovery, connection establishment and error checking are handled by the PeerHood system. [3]

Provide service information around near networks ? Goal for using services.


Funtional requirements

Service discovery. PeerHood must be able to detect what services are available on a remote device and what attributes they contain. How the service information is transferred between the devices is implementation specific as long as the proper packet structure and message flow are followed [3]. Discovering services from the peer devices in the network. Peerhood daemon has information of available services to current device. PeerHood is able to detect changes in service set.

Service sharing. PeerHood has to offer a mechanism for applications or additional middleware components to use and register services. PeerHood advertises the available services to other devices using networking technology dependent mechanisms [3].

Service modeling. Definition of the service model that is provided by the PeerHood. The service model has to give information about the description, classification, functionalities, connectivity of the the service at least. Service models are also usually made for client-server architectures, so the impacts of the peer-to-peer environments have to taken into account. on work

Device discovery. Peerhood must be able to detect other PeerHood-cabaple devices that are within the range and belong to the same neighborhood. How the device detection is done, depends on the underlying networking technology and is left as an implementation specific issue. [3] Peerhood daemon has information of available devices to current device. PeerHood is able to detect changes in device set.

Active monitoring of a device. It must be possible to put some device in the PeerHood neighborhood under active monitoring. This means that a requesting application or middleware component is notified as soon as the monitored device goes out or comes to the range. Proper response time and range are technology dependent issues. [3] Pro-active scanning of the near peers.

Active monitoring of the connection. Part of seamless connectivity.

Connection establishment. PeerHood must offer a way to connect two or more devices in the same PeerHood neighborhood. The connection procedure must be transparent so that from upper layer’s point of view the underlying networking technology doesn’t affect the procedure. The only exception is that technologies that on the hardware level allow only one connection at a time are not required to support multiple simultaneous connections. PeerHood should offer a streaming socket interface to handle the established connection providing MAbstractConnection interface [3]. discuss

connnection interface ? programming language dependent API, file descriptor (pipe) usage ? advanced transport features ? Need more study ?

seamless connectivity

User control. new PeerHood is aimed to use in small personal mobile devices. PeerHood fuctionalities consumes device resources and peerhood has aggressive advertising of itself and provided services. User has to have ability control the peerhood functionality: is the peerhood active, what services are provided, what services are accepted. Only one user is using device.

Non-functional requirements

Network management. PeerHood and network plugins have to be able to manage specific network and events from network. Availability of certain network in device. Changes in the network notified by the events.

Component management. PeerHood is aimed for limited personal devices. The physical constraints and user activity modes affects the PeerHood provided functionality. Status of device power. Device power saving modes, eg. disabling activity then device is not used in some time. PeerHood should be able to get events from device components and also be able recover own functionality. PeerHood have to inform applications by events the possible changes or suspensions of the connectivity of discovery functionalities.

Discovering PeerHood Daemon Peers. In addition to discover devices peerhood daemon should be able to detect a peerhood daemon on peer device.

Daemon to Daemon Messaging. Daemons need to communicate by each others to provide the functionality. The communication messages and their information have to be specified and implemented.

Communication Concurrency Base. PeerHood daemon and applications using the peerhood have multiple concurrent connections. There have to be a design and implementation to host application and daemon concurrent execution towards the number of connections.

Event Interfaces. Role of PeerHood is to be communication initiator and controller on mobile device. Nature of the activity, including the communications aspects, is very dynamic on mobile devices. PeerHood has to be able to reflect dynamic changes to application and to itself by event interface.

Plugin architecture for networks. PeerHood provides all it's functionality by interfaces to network plugings [3]. Network plugin full fills the communication abstractions, discovery, detection and connectivity implementations that are specific for certain network.

Constraints (cnr)

Linux (os). Linux is used in Maemo. Linux is providing traditional programming model.

Maemo (os). Maemo distribution is used in N810 and PC.

N810 (device).

PC Desktop (device).

PC Laptop (device).

Bluetooth networking.

WLAN Networking.

GPRS Networking. Not available on N810.

Power Consuption.

Open Requirements

Roaming. Enables roaming between different networks (assuming the same service is available through them). Roaming ? what it means ?

Provide Seamless Connectivity Seamless Connectivity defines a technology for changing the active networking technology automatically if the established connection weakens or breaks. Seamless Connectivity tries to always provide the best possible connection for the user while maintaining connectivity [3]. Definition of the seamless connectivity.

Keeping the connection to the service type.

Data transmission between devices – PeerHood must support data transmission between connected devices via objects that implement the MAbstactConnection interface. The programmer is in charge to ensure that endianess and word length issues are handled in a proper way. In other words, the PeerHood should not care about the content of the transferred data. [3] Use of endianess in word size data is content dependant issue. remove

Middleware support ? (implicit)[3] What is peerhood middleware ? obsolete

Plugin architecture for middleware. This is a bit unclear as the peerhood middleware definition is not clear.

Seamless connectivity ? issues

Security issues. Future work ?


Device capabilities providing ? On peerhood ? on service ? On very initial part on peerhood environment for service usage.

Provide functional communication to multiple applications. Priority ?

Gathering requirements information

Task -- Gathering requirements from papers

fur: Device discovery. Non-centralized device discovery ?

fur: Service discovery.

fur: Constant monitoring of network neighborhood entities. Can detect changes.

fur: Collecting the information of neighborhood applications.

fur: Enables roaming between different networks (assuming the same service is available through them). Roaming ? what it means ?

fur: Peer-to-peer connections. Ability make connections via different network technologies: Bluetooth, WLAN, GPRS or fixed ip-networking.

fur-wtf: Middleware component, what is it ? PeerHood does not specify any middleware component model. PeerHood does not specify any presentation layer model for communication. These are at least required to make some middleware components.

Task -- Gathering requirements from source code

Task -- Gathering requirements from people

What are the benefits of the peerhood ?

What are the drawbacks of the peerhood ?

Where peerhood could be applied ?

Why would you use peerhood ?

Task -- Gathering requirements from applications done and works


Mobile file sharing.

Fitness System. Peerhood independent application.

Access Control. Peerhood independent application.

Guidance System. Peerhood independent application.