The different components of Ubiquitous Oulu, the large displays, sensors, users’ own devices and the underlying networks constitute a large distributed system. It is organized with the help of UBI middleware which hides the differences between components and offers open homogenous interfaces for the use of different resources of the system. This is how, in the future, the entire community can make good use of the arising infrastructure in their own research and development actions.

A central part of the middleware is the asynchronous communications based on the publish-subscribe model which enables the communication between reactive and proactive programs in decentralized environments. The publish-subscribe model is broadly used in realising dynamic systems. Typically in these systems, the components are not necessarily known in advance but the communications system routes the messages in decentralized environments according to the conditions set by the subscriber or the terms set in the application servers. Therefore, this model conforms well as a building block for the applications of ubiquitous information technology.

An important part of the communications solution is the content-based routing of the messages which enables the accurate allocation of information for the subscribers. For example, a message can be directed into a certain logical or physical space, such as to all users in a market place who have been there for ten minutes. Content- and context-based actions enable new types of interactive applications. This event-based communication and content-based routing is implemented with the open source Fuego-architecture.

The Resource Manager handles resource management between devices as a threaded server, which takes input event from different contexts and instructs the Layout Manager accordingly. For negotiating device compositions with mobile devices, the Resource Manager uses a notion of lease, which is a negotiated contract between the hotspot and the mobile device.These leases support not only single-user applications but also multi-user applications involving several mobile clients.

The Layout Manager takes care of the dynamic partitioning of the UBI Display's screen into virtual screens for applications. These compositions of virtual screens are predefined, but the applications assigned to them are not. The Layout Manager provides a web service interface (SOAP) for triggering state changes and assigning these virtual screens with URL's of arbitrary web applications.

UBI-mobile is the mobile access point and service discovery interface. It displays the available services at a particular hotspots for the user, and handles the lease negotiation with the Resource Manager. UBI-mobile also launches mobile services, implemented as J2ME MIDlets via the MIDP 2.0 Push Registry mechanism.

UBI-MIDlet implements session control, authentication and transparent integration with the server components. The UBI-MIDlet’s responsibilities include taking over the control of a lease from UBI-mobile during the startup of a service, thus each application always controls one lease.