Наиболее распространенная распределенная Java - какой метод связи мне следует использовать? - PullRequest
0 голосов
/ 03 марта 2012

Я занимаюсь разработкой библиотеки, которую вы можете использовать в коде клиента или сервера. В частности, вы создаете экземпляр некоторого класса для библиотеки и указываете, что он является сервером или клиентом.

Клиент должен отправить около 5 атрибутов на сервер без какой-либо иерархической структуры, сервер должен ответить одним атрибутом или описанием ошибки.

Клиент и сервер не должны совместно использовать какое-либо состояние, поэтому, если сервер изменяет информацию, предоставленную клиентом, клиенту не нужно знать об этих изменениях.

В данный момент я декодирую все в строку специальным разделительным символом и отправляю его через TCP-сокет. Я хотел бы иметь немного больше безопасности типов здесь и думал об использовании RMI, но, поскольку мое короткое исследование пошло, RMI навязал общее состояние объекта, что не является моей целью. Поэтому мне может понадобиться какое-то решение для веб-сервиса? Должен ли я использовать JAXB для описания сообщений и отправки XML-сообщений через сокет? Есть ли какая-нибудь хорошая библиотека для отправки аннотированного объекта JAXB через Интернет, и все же есть некоторый контроль над сбоями связи, сети, сервера?

Программное обеспечение всегда должно работать на базовой установке JRE.

Спасибо за совет.

Ответы [ 2 ]

0 голосов
/ 04 марта 2012

Другая технология, которую вы могли бы рассмотреть - Versile Java (полное раскрытие: я разработчик Versile); он находится в разработке, но уже достаточно стабильный. Смотрите ссылку для простого примера. Versile Java выполняет RMI на уровне объектов и полагается только на стандартную библиотеку Java.

Versile Java является «базовым» в том смысле, что тип сценария, который вы описываете, очень прост в реализации, без необходимости какого-либо программирования на сетевом уровне (все это внутренне обрабатывается платформой). Он «не базовый» в том смысле, что он предлагает гораздо больше функциональности, чем просто передача неизменяемых структур данных.

0 голосов
/ 03 марта 2012

Любая из перечисленных в тегах технологий хороша.Вы также можете взглянуть на Google Protocol Buffers и Netty для связи.Но я бы не назвал их основными.Также JSON - хороший путь.JAXB включен в JVM, поэтому он будет работать без какой-либо дополнительной библиотеки.

...