1.1 Introduction
When looking through history from distributed systems to interoperability, it is important to recognize a need for cooperation and expansion of networks that are already in use. The beginning is the concept of middleware . Middleware is connectivity software that offers a group of services that make the running of distributed applications over heterogeneous platforms possible.
The idea of middleware , as an abstract layer of software, is to encapsulate all the available resources on a network, which can comprise all kinds of devices (from embedded processors to super processors, laptops, PDAs and mobile phones) and interconnect them in a transparent way. In other words, give an API (Application Programming Interface) to the programmers for the use of distributed applications.
There are some works related to the design and implementation of middleware generic distributed systems. For example, Blair et al. (), which represents an approximation to the design of a configurable system, based on the concept of reflection . The usefulness of this components engineering is also important when giving a system the ability to configure and reconfigure.
These concepts are also commented by Coulson et al. (). These authors also talk about the link to the application layer by using this components technology. They suggest the development of a model (OpenORB, based on the model CORBA) independent of the platform and the language of programming. They also define meta-structures and meta-data to give intelligence to the protocol so it can apply reason to its own interpretations, so the systems (re)configuration will be easier.
In this section, the protocols or existing systems used to communicate among heterogeneous platforms will be described, focusing on those based on the concept of service .
1.2 UPnP
1.2.1 Introduction
UPnP (Universal Plug and Play) is a group of protocols or a much-extended architecture suggested by Microsoft (Olleros ).
In addition, it is supported by the Internet protocol family TCP/IP, which (independent of the company, operating system and programming language) enables the APIs of the devices connected to a network control to negotiate and exchange information and data in an easy and transparent way for the user. This way, the user does not need to be an expert in networks, devices or operating system configuration. In addition, UPnP technology does not depend on the physical environment, so it can work on the telephonic line, the power supply, Ethernet, radio frequency and IEE 1394.
1.2.2 General Features
The main characteristic of the protocol is the transparency of installing a device that has just been connected to the power supply. All the services of the installed device are automatically available without the need to configure anything in the protocol (Miller et al. ). UPnP notices when a new device is connected to the net, it gives it an IP address, a logic name and updates the rest of the devices about their functions and processing ability. As seems obvious, it also updates the new device about these same features of the others. This way, the user does not have to worry about the configuration of the net or losing any time installing new drivers or controllers for the devices. UPnP is dedicated to all these things each time a new device is connected (or disconnected) to (from) the net. It also optimizes the configuration of the devices.
Its application for development of a home automation system offers a new possibility to create distributed control architectures. In other words, robots have independent activation parts connected by an internal network. Because of this, UPnP gives more versatility and flexibility to the system. Moreover, any change in software or any device in the system is easily adaptable in the system.
A digital home based on UPnP is conceived to include all wire and wireless networks, entertainment devices, telephonic systems, home control and many more devices. It will also put some home networks together in a single logic made by programmable devices (Jeronimo ).
Fig. 1.1
UPnP: network unification technology (Jeronimo )
One of the most common uses of this protocol is to enable devices or programs to open router ports, so they can properly communicate with the outside world.
1.2.3 Specific Features
Since the (Universal Plug and Play) UPnP model is based on the existence of two different components, the control point and the device, this protocol makes identification of the roles of every element in a home automation network possible. The main idea is that every device (a robot, a router, etc.) can be accessible on a local area network (LAN). Some will announce the services they offer to the rest using a protocol such as the SOAP or something similar.
An XML file with the name of the device and a description of the services that are offered are sent through the network each time a new device is plugged into the network. The file may also include a URL pointing to the website of the developer. In addition, an external pointer to detailed information about the services could be included.
This fact gives a clearer idea of the ease of maintenance and transparency of use that this architecture provides to applications and interfaces. As shown in the figure above, Dynamic Host Configuration Protocol (DHCP) servers and/or DNS may be available on the network, so a new device may automatically be configured on the network upon connection. The next step will be discovering services. To offer a better idea of the protocols way of working, a basic scheme of the logic structure of a UPnP network is shown in Fig..