我有一个需要良好二进制协议的新项目.
我在考虑使用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
Run Code Online (Sandbox Code Playgroud)
1)这些有什么区别?我假设1.0.1后来变为2.0,今天使用2.0是正确的,但我不确定.
2)您是否希望有人使用2.0序列化或2.0 Web服务?看起来Web服务应该是创建新实现的参考,但同样对我来说并不完全清楚.
3)如何使用PHP实现支持Hessian的服务器.您是否需要使用Caucho服务器,或者您是否可以在Fedora Core上使用PHP实现服务器并使用Java客户端进行连接?
是的,Hessian 2.0是一个可以使用的.该协议规定了数据结构如何表示二进制,规范很简单.
Hessian Web服务建立在Hessian协议之上,它以Hessian格式指定了许多头来描述例如Hessian协议中的请求/响应格式.它定义了请求的内容,应该调用的方法等等.它并非严格需要,因为没有人使用它.您可以通过创建最适合您的"Request"类和"Response"类来自己定义,并使用Hessian协议对其进行序列化.
Hessian是Java序列化的替代品,它较慢,因为它不是由Java VM直接支持,但它比XML解析更快(!).它可以以跨平台的方式使用,尽管您必须调整现有的实现以使它们协同工作,规范在这里和那里发生了变化(例如长度规范),因此实现往往会有所不同.另一方面,它不是人类可读的,你总是需要一个工具将Hessian转换为文本.
我在一个大型企业应用程序中使用了Hessian,其中Java富客户端与后端进行通信,以使客户端JVM版本独立于服务器JVM版本.它就像一个魅力.
看看Hessian4J的实现.它是开源的,因此您可以完全控制它.
我过去没有使用过 Hessian,也不打算在将来使用它,我的论点是:
对于 Web 服务,我会尽力将其保留为简单的旧式 XML。如果我选择二进制 XML 表示,我可能会使用Fast Infoset - 这是一个标准,很可能受到更大的 Web 服务客户端 API/库/框架集的支持。我知道CXF 的人已经在他们的邮件列表上讨论了快速信息集,并且应该支持它,即使他们没有在他们的 wiki 上记录这一点。
如果速度是首要因素,我可能最终会使用Protocol Buffers。
归档时间: |
|
查看次数: |
10271 次 |
最近记录: |