The Robust Self-Configuring Embedded Systems (RoSES) project seeks to achieve graceful degradation through software reconfiguration. To accomplish this goal, systems must automatically reconfigure despite nodes failing, being replaced by inexact spares, or being upgraded. Jini seemed to provide the required spontaneous networking infrastructure, but turned out to make deep assumptions about using TCP and UDP. This is appropriate for the Internet-enabled devices that the Jini designers envisioned, but typical distributed embedded systems employ real-time, reliable data transmission such as the Control Area Network (CAN), rather than TCP. Object-oriented technology such as Jini is often represented as being suitable for use in real-time embedded systems. But despite Jini’s goal of platform-independence, it required extensive re-engineering to function on CAN. This case study of an actual implementation of Jini on a CAN network demonstrates that the differences between general purpose ...