JavaSpaces Principles, Patterns and Practice