Совместное использование типов данных приложения с сервером и клиентом - PullRequest
1 голос
/ 27 февраля 2009

Мне нужно создать систему сервер (java) - клиент (c ++), и сервер, и клиент должны будут работать с объектами (типами данных), которые одинаковы для клиента и для сервера, например, автомобильный объект будет создан на стороне клиента и затем отправлен на сервер, где будут выполнены дополнительные расчеты для автомобильного объекта. Я хотел бы создать одну универсальную реализацию автомобильного объекта, а затем использовать эту реализацию на сервере и в клиенте. Сначала я подумал о создании dll (в c ++) со всеми типами данных, которые одинаковы для клиента и сервера, но у этого решения есть недостаток. Потому что это решение работает только под ОС Windows, и я должен поддерживать Win, Mac, Linux. Так есть ли мультиплатформенное решение для моей проблемы?

Я благодарю всех ваших ответов.

Ответы [ 5 ]

3 голосов
/ 27 февраля 2009

У Google есть библиотека с открытым исходным кодом, которая называется Буферы протокола для передачи объектов данных между клиентами и серверами, как в вашей ситуации. Он поддерживает C ++, Java и Python.

1 голос
/ 27 февраля 2009

помимо буферов протокола, есть еще один, называемый thrift (буфер протокола протокола Facebook). см http://incubator.apache.org/thrift/

см. Эту страницу для сравнения http://stuartsierra.com/2008/07/10/thrift-vs-protocol-buffers

0 голосов
/ 27 февраля 2009

Это похоже на хорошую работу для XML. Вот где я бы начал.

0 голосов
/ 27 февраля 2009

При условии, что вы придерживаетесь стандартных библиотек (кроссплатформенных), у вас не должно возникнуть никаких проблем при перекомпиляции вашей библиотеки (DLL) в качестве разделяемых библиотек (.so) в OS X и Linux. Конечно, загрузка их в Java - это другая проблема (в которой я не разбираюсь).

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

0 голосов
/ 27 февраля 2009

Взгляните на CORBA: http://en.wikipedia.org/wiki/CORBA

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