Предложения для конкретной клиент-серверной системы - PullRequest
1 голос
/ 28 февраля 2010

У меня довольно специфический клиент-серверный проект, и я хочу попросить предложения. Задача состоит в том, чтобы улучшить существующую систему новыми функциональность.
Система состоит из сервера с публичным IP, 10 - 1000 клиентов CLDC с динамическим IP-адресом и устройством, которое связывается с сервером через последовательный порт (COM).

Клиент (J2ME):
Заходит на сервер и остается в системе, самопроизвольно спрашивает сервер для некоторых данных, но в основном ожидает запросов к серверу. Клиент (вероятно, сначала подумал) отвечает за поддержание связи с сервером жив.

Сервер (предпочтительно Windows, Java):
Ожидает, что клиенты подключать, хранить и поддерживать все клиентские подключения (в случае, если сервер хотел отправить запрос клиенту, так как клиенты имеют динамический IP адреса). Сервер хранит данные, поступающие с устройства COM. Ждет запросы от клиентов и обеспечивает их желаемым (ранее сохраненные) данные. Он также ожидает запросов COM-устройства.

COM-устройство:
Предоставляет серверу данные (это данные, которые клиенты спонтанно запрашивают). Также отправляет запросы (сервер должен передавать эти запросы конкретным клиентам). COM устройство управляет всей системой.

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

Есть ли у вас какие-либо предложения для лучшего подхода здесь?

Привет!

1 Ответ

1 голос
/ 28 февраля 2010

J2ME

Я разработал много систем, включающих J2ME и бэкэнд. Единственное, на что нужно обратить внимание, это то, что клиентское соединение, которое держит сервер, не всегда может быть «открытым», поскольку GPRS / 3G не очень надежен (в зависимости от поставщика услуг / страны). Таким образом, вы правы в том, что клиент несет ответственность за сохранение соединения открытым.

Сервер

В общем случае вы можете рассматривать это как обычный многопоточный сервер сокетов.

В системе Windows (при условии, что вы программируете на Java) посмотрите на открытие файла java.io.File с именем файла «COM1» для связи с вашим последовательным устройством. Это сделает вашу жизнь намного проще, чем навязчивой последовательной связи.

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

...