
Chapter 2. Related Work/Fundamentals 22
2.4. Middleware
Middleware describes software that facilitates data exchange between applications within the same
environment, or across different hardware and network environments. It forms an abstraction layer
that hides complexity and allows communication, without having detailed knowledge of the internal
structure of the opposite site [16]. In addition, middlewares often come with tools and services to
manage, monitor and administrate the system. This allows the developer to create independent
modules, as the software no longer needs to consist of one single part. These software modules
will be recognized externally as one unit, making distribution transparent [17]. This simplifies
programming, since the total complexity is reduced, and the development process optimized. It
also relieves the actual application software, as the program and the middleware can be handled
separately. However, many middleware systems are very complex and therefore difficult to manage.
Small programs can be overwhelmed by greater middleware, as the middleware could easily be
the multiple size of the program itself. Further disadvantages are the reduced overall performance
and the increased consumption of resources.
Middleware
Hardware
Driver Software
Figure 2.14.: Middleware as an communication layer between software, hardware and a driver.
Middleware is particularly useful as a connection in distributed systems, such as Intelligent Envi-
ronments with access from smart phones and tablet PCs [18]. Many types of middleware have
been proposed to be used in such systems, but none has been accepted as standard yet [19]. This
is partly caused by either the lack of special functionality or by a great plenitude of already existing
systems on the market, which makes it difficult to find acceptance for new solutions. In addi-
tion, a vast amount of constant work is needed to maintain a middleware over time to maintain
its compatibility with the latest computing trends. Examples for middleware are frameworks like
.NET, Web services, print servers and drivers, as well as general middleware like CARMEN [20],
GAIA [21] and MundoCore [22].
2.4.1. Example Middleware
This section introduces selected middleware systems which are suitable for Intelligent Environments
or Home Automation.
Comentarios a estos manuales