Loosely Coupled Communication and Coordination in Next-Generation Java Middleware