Начало работы с Гессианом - PullRequest
9 голосов
/ 08 октября 2008

У меня новый проект, которому нужен хороший двоичный протокол.

Я думал об использовании Гессиана , если у кого-то нет идей получше.

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

На домашней странице есть раздел под названием «Документация», в котором содержатся следующие документы:

* Hessian Documentation
* Hessian 1.0.1 spec
* Hessian 2.0 Serialization Draft
* Hessian 2.0 Web Service Draft
* Taxonomy explaining Hessians relationship to CORBA, SOAP, RMI

1) В чем разница между ними? Я предполагаю, что 1.0.1 позже станет 2.0, и что сегодня правильно использовать 2.0, но я не был уверен.

2) Ожидаете ли вы, что кто-то будет использовать сериализацию 2.0 или веб-сервис 2.0? Похоже, что веб-сервис просто должен быть ссылкой для создания новой реализации, но, опять же, мне это не совсем понятно.

3) Как насчет реализации сервера, поддерживающего Hessian, с использованием PHP. Вам нужно использовать сервер Caucho или вы можете внедрить сервер в PHP на ядре Fedora и подключиться с помощью клиента Java?

Ответы [ 2 ]

9 голосов
/ 09 июня 2009

Да, используется Hessian 2.0. Протокол определяет, как структура данных представляется двоичной, спецификация проста.

Гессенский веб-сервис основан на гессенском протоколе, он определяет количество заголовков в гессенском формате для описания, например. формат запроса / ответа в гессенском протоколе. Он определяет содержание запроса, метод, который должен быть вызван, и так далее. Это не строго необходимо, потому что никто не использует это. Вы можете определить это самостоятельно, создав класс «Request» и класс «Response», который подходит вам лучше всего, и сериализовать это, используя протокол Hessian.

Hessian является альтернативой для сериализации Java, он медленнее, потому что не поддерживается непосредственно Java-VM, но намного (!) Быстрее, чем синтаксический анализ XML. Его можно использовать кросс-платформенным способом, хотя вам придется настроить существующие реализации, чтобы заставить их работать вместе, спецификация изменилась тут и там (например, спецификации длины), так что реализации имеют тенденцию различаться. Обратной стороной является то, что он не читается человеком, вам всегда нужен инструмент для преобразования гессиана в текст.

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

Посмотрите на реализацию Hessian4J . Это открытый исходный код, так что вы можете иметь полный контроль над ним.

2 голосов
/ 08 октября 2008

Я не использовал гессиан в прошлом и не планирую использовать его в будущем, и мои аргументы таковы:

Для веб-службы я бы очень старался сохранить ее в простом старом XML. В случае, если я выберу двоичное представление XML, я, вероятно, буду использовать Fast Infoset - который является стандартным и, скорее всего, поддерживается гораздо большим набором клиентских API / библиотек / структур веб-служб. Я знаю, что CXF люди говорили о быстром информационном наборе в своем списке рассылки, и это должно поддерживаться, даже если они не документировали это в своей вики.

Если скорость - это главное, я, вероятно, в конечном итоге использую Буферы протокола .

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