Реализация логики пользовательских протоколов в Java? - PullRequest
1 голос
/ 17 августа 2011

При реализации клиент-серверных решений один из вопросов, на которые вам всегда нужно ответить, касается протокола.

В простых случаях возможно, что пакеты всегда одного типа, поэтому протокол может дажене имеет никакой логики: клиент подключается к серверу, а сервер просто говорит какой-то факт, клиент отключается, и все.

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

Сессия - это концепция, которая описывает состояние диалога клиент / сервер: и клиент, и сервер ожидают чего-то от друг друга, в то время как есть и другие вещичто оба они не ожидают.

Затем, , углубляясь , делают вид, что протокол довольно сложный, и его реализация должна быть легко расширяемой.Я считаю, что теоретически правильным решением здесь является использование конечного автомата.Существуют ли какие-либо фреймворки / библиотеки Java, которые позволяют легко реализовать этот конечный автомат?Или, возможно, какие-то более специфичные для протокола решения?

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

Обновление :вопрос не в простейшей реализации клиент-серверного решения, а в вопросе реализации пользовательского протокола.Поэтому, пожалуйста, не рекомендуем использовать веб-сервисы.

1 Ответ

2 голосов
/ 17 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...