View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide

Overview of uMiddle

uMiddle is a distributed middleware infrastructure that ties devices on other middleware technologies into a shared domain where they can communicate one another through uMiddle's common protocol. The devices on other middleware technologies are called native devices, and the middleware technologies are native middleware. uMiddle enables the communication between any two native devices by the following two major components: mapper and translator.

uMiddle Entities

There are three classes of uMiddle entities: device, service, and port.A device is a software component that represents a hardware device. There need not be a precise one-to-one mapping between device entities and actual hardware devices; for example, integrated hardware devices such as desktop computers may result in the instantiation of a number of device entities. In turn, each device may contain one or more services that represent certain aspects of its functionality. Finally, ports provide an abstraction of communication endpoints for both control and data information inside the framework. uMiddle allows both input ports that can receive data, and output ports for sending data.


A mapper is a component that finds native devices in a native middleware. There need to be mappers for different native middleware technologies. For example, a Bluetooth mapper finds Bluetooth devices through Bluetooth Service Discovery Protocol (SDP), a UPnP mapper finds UPnP devices through Simple Service Discovery Protocol (SSDP), and Rendezvous mapper finds devices through the multicast DNS protocol. The mapper instantiates a translator for each native device.


A translator is a component that converts protocols to and from the ones used in the native device (a native protocol) and uMiddle. This means that a translator receives data through the uMiddle protocol, and send the data through the native protocol. Inversely, the translator receives data from the native device through the native protocol, and sends the data to other uMiddle entities through the uMiddle protocol. The former is an inbound translator, and the latter is outbound. Actually, it's possible to implement bidirectional translators that can do both. A translator is implemented as a uMiddle service.

In the Source

Link to this Page