Существует две реализации JavaSpaces любой ноты: Blitz и GigaSpaces XAP . Блиц с открытым исходным кодом; XAP является коммерческим, но имеет бесплатную версию для сообщества.
Я сильно склонен к XAP; Я работаю на них. :) Тем не менее, есть много причин, чтобы рассмотреть XAP:
Space Aquisition
Механизм получения ссылки на пространство далеко проще с GigaSpaces, чем со стандартным JINI:
UrlSpaceConfigurer urlSpaceConfigurer = новый UrlSpaceConfigurer ("/./pace");
IJSpace space = urlSpaceConfigurer.space ();
// space является близким аналогом JavaSpaces, расширенным, поскольку спецификация довольно ограничена
GigaSpace gigaSpace = новый GigaSpaceConfigurer (пробел) .gigaSpace ();
// gigaSpace имеет много улучшений API и намного более гибок.
Улучшения API
API JavaSpace по умолчанию не имеет компенсации для нескольких совпадений кортежей в пространстве. Более новый (то есть, 8 лет?) Делает, и Блиц реализует это, но это все еще не очень гибко. Кроме того, вы все еще застряли с записями JINI, которые следуют примерно следующим правилам:
- Каждое поле должно быть общедоступным. (то есть, "public String foo")
- Каждый тип должен расширять Entry.
- Каждое поле должно расширять объект. (то есть Long вместо long и т. д.)
XAP позволяет вам использовать Entry, но не требует этого; с XAP вы можете использовать обычные POJO. Вы по-прежнему хотите отдавать предпочтение типам объектов из-за подстановочных знаков (ноль - это подстановочный знак JavaSpaces), но это зависит от вас.
XAP также предоставляет механизм запросов SQL, а также основанную на документе модель (без схемы) для записей, а также может использовать Spring для управления уведомлениями и удаленным взаимодействием.