A light-weight middleware framework for fault-tolerant and secure distributed applications