In traditional computer networks object-based middleware provides portability between different hardware and software architectures as well as a common application environment for each distributed participant. Thereby, the networking middleware abstracts from different network requirements, tasks, and protocols by offering higher level tools and program language specific objects. These requirements and tasks can include for example marshalling, providing additional object consistency over unreliable network protocols as well as implementing common algorithms. However, the hardware and software found in each sensor node is almost the same due to the nature of sensor networks. But nonetheless the application domains for a specific sensor network can vary heavily. Therefore, all differentiation between sensor nodes happens at run-time. For example, nodes must be able to reduce their work load to sensing, forwarding, or sleeping depending on the node density or energy level. This implies a certain level of reflection within the proposed sensor middleware: Nodes must be able to determine and influence its and other nodes' status and abilities. That demands an appropriate specification which is outlined here. Since the sensor nodes must operate unattended, the middleware must offer new levels of support for automatic configuration and error handling. This includes distributing traditional centralised services like data collection and processing with a rule-based approach. Apart from general sensor network constrains such as low energy, low memory, low bandwidth, the massive number of nodes and the implied self-configuration, and the anticipated high failure rate, two major parameters are important for the selection of networking algorithms: the mobility of individual sensor nodes and the query/ event rate. These parameters determine mainly whether the middleware can choose to spend time gathering information for proactive routing or whether the algorithms must relapse to reactive data dissemination. The sensor networking middleware can help the application developer to abstract from all these parameters while providing the appropriate algorithms for efficient communication. The most common algorithms are presented shortly and classified according to the above parameters.
ÜbersichtDie Hauptaufgabe traditioneller objekt-basierter Middlewaresysteme ist zum einen die Bereitstellung von Portabilität zwischen verschiedenen Hard-und Softwarearchitekturen sowie von einer einheitlicher Umgebung für die verteilten Applikationen. Dabei abstrahiert die Middleware von den verschiedenen Netzwerkanforderungen, -aufgaben und -Protokollen und bietet programmiersprachenspezifische Werkzeuge für den einheitlichen Zugriff auf die Netzwerkressourcen. Derartige Anforderungen und Aufgaben sind z. B. Marshalling, Objektkonsistenz über unzuverlässige Netzwerkprotokolle sowie die Implementierung allgemein verwendbarer Algorithmen. Während in Sensometzwerken die Hardware der einzelnen Knoten im allgemeinen gleich ist, können sich die Anwendungen...