hessian - 开始使用 Hessian

标签 hessian

我有一个需要良好二进制协议(protocol)的新项目。

我正在考虑使用 Hessian ,除非有人有更好的想法。

我正在阅读他们的一些文档,但它并不像我想象的那么简单,所以我有几个简单的问题。

主页有一个标题为“文档”的部分,其中包含以下文档:

* 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 网络服务吗?看起来 Web 服务只是作为创建新实现的引用,但我也不太清楚。

3) 使用 PHP 实现支持 Hessian 的服务器怎么样?您需要使用 Caucho 服务器,还是可以在 Fedora Core 上用 PHP 实现服务器并使用 Java 客户端连接?

最佳答案

是的,Hessian 2.0 是可以使用的。协议(protocol)指定数据结构如何以二进制表示,规范很简单。

Hessian Web 服务建立在 Hessian 协议(protocol)之上,它​​指定了许多 Hessian 格式的 header 来描述,例如Hessian 协议(protocol)中的请求/响应格式。它定义了请求的内容、应该调用的方法等等。它不是严格需要的,因为没有人使用它。您可以通过创建最适合您的“请求”类和“响应”类来自己定义,并使用 Hessian 协议(protocol)对其进行序列化。

Hessian 是 Java 序列化的替代方案,它较慢,因为 Java VM 不直接支持,但它比 XML 解析快得多(!)。它可以以跨平台的方式使用,尽管您必须调整现有的实现以使它们一起工作,但规范已经在这里和那里发生了变化(例如长度规范),因此实现往往会有所不同。另一方面是它不是人类可读的,你总是需要一个工具来将 Hessian 转换为文本。

我在一个大型企业应用程序中使用了 Hessian,其中 Java 富客户端与后端通信,以使客户端 JVM 版本独立于服务器 JVM 版本。它就像一个魅力。

看看实现Hessian4J .它是开源的,因此您可以完全控制它。

关于hessian - 开始使用 Hessian,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/184199/

相关文章:

java - HessianConnectionException : (HTTP) 500 error when using Hessian 4. 0.7 和 Spring 3.1.1

python - 在 PyTorch 中快速计算模型参数的 Hessian 矩阵

java - 具有大型二进制文件的 Hessian

opencv - opencv 中 SURF 特征提取的最佳 hessian 阈值 + 最小描述符匹配

python - XGBoost python 自定义目标函数

java - 使用 Spring 和 Hessian 的互操作性?是否可以?

java - 找不到 javax.servlet.GenericServlet 的类文件

rmi - 如果 Hessian 已死,应该用什么代替?

protocol-buffers - 您会推荐 Google Protocol Buffers 或 Caucho Hessian 用于跨语言的无线二进制格式吗?

Grails Hessian 问题