A Flexible, Lightweight Middleware Supporting the Development of Distributed Applications across Platforms