Until today developing software for embedded devices has been a tedious task with the main problem that those applications interface directly with the hardware they are run on. This causes a strong coupling between hardware and software, thus making it hard to impossible to reuse code.
Furthermore there is a continuously growing number of networked embedded devices which need to collaborate with each other using different communication protocols like TCP/IP, ZigBee, Bluetooth et cetera. For that reason the need for a common middleware to connect those devices increases, but the tight software-hardware coupling makes it hard to write such a system for different devices. There already exist some middlewares like emORB , which is based on CORBA (Common Object Request Broker Architecture). However CORBA does not allow for P2P (Peer-to-Peer) communication and is thus limited for the usage in mobile networked embedded systems.
Back in 2001 Microsoft started the Smart Personal Object Technology (SPOT) initiative and the .NET Micro Framework was born, which made it possible to write managed, hardware-independent code for embedded devices. Even though this framework is only supported on 32 bit devices, it supports a wide range of those and allows for developing a platform independent prototype of a slimmed XVSM middleware.
This thesis focuses on the implementation of TinySpaces, a middleware based on the XVSM (eXtensible Virtual Shared Memory) principle. As TinySpaces is specialized for resource constrained devices several compromises need to be made, which are explained in this document.
Nevertheless it is shown that TinySpaces is a compatible subset of other XVSM implementations, as it complies with the XVSM standard although several functionalities needed to be slimmed or omitted to make TinySpaces lightweight enough for embedded devices.
To prove that TinySpaces perform well, benchmarks are made concerning memory utilization and CPU usage of TinySpaces, as well as code-size, performance, and byte usage of three implemented serialization mechanisms.