Модель Java-сервер-клиент - PullRequest
       8

Модель Java-сервер-клиент

0 голосов
/ 13 апреля 2011

Этот вопрос больше касается общего дизайна программы.У меня проблема в том, что центр общается с группой клиентов индивидуально (клиенты не взаимодействуют друг с другом напрямую).

Содержание связи между центром и клиентом полностью числовое,то есть куча цифр отправляется туда и обратно.Клиенты работают на отдельных компьютерах, а центр может быть размещен на другом компьютере (или иным образом).Стиль общения является итеративным и синхронным в том смысле, что центр отправляет сообщение / вопрос сообщению каждому отдельному клиенту, а пользователь клиента предоставляет ответ / ответ обратно центру в течение определенного времени на каждой итерации, и это взаимодействиеповторяется несколько раз до конца.

Центр выполняет некоторые вычисления, учитывая ответы, полученные от клиентов, и клиенты просто предоставляют входные данные для этого расчета.

Интересно, чтоэлегантный дизайн для этой проблемы с использованием Java?Любой комментарий или предложение высоко ценится.Большое спасибо.

Ответы [ 3 ]

1 голос
/ 14 апреля 2011

Я бы использовал KryoNet , который может эффективно сериализовать ваши наборы данных через вызовы RMI (удаленные вызовы методов).Использую его сам, и он работает хорошо.Имеет UDP и TCP без какого-либо вреда.Начните с примера на сайте и работайте оттуда.Вы можете легко настроить обе стороны соединения, работая с RMI.

0 голосов
/ 13 апреля 2011

Самым простым решением в чистой Java, вероятно, является использование RMI.Просто предоставьте объект через RMI, и клиенты будут вызывать методы для него удаленно.

Если вы хотите асинхронного поведения, вы можете использовать реализацию JMS или выполнить собственную прокрутку, используя сокеты и TCP / IP, как упомянуто выше.

Если вам не нравится ни один из них, упомянутый выше MPI может быть для вас.Или, возможно, Apache Hadoop может быть для вас.

0 голосов
/ 13 апреля 2011

Звучит, MPI подходит именно вам.Вот версия Java .

Удачи и всего наилучшего.

...