其实我还根本不懂Hessian这个东西,但是我习惯用以后的经验来分析。
Hessian适合Remoting/WCF比较相似的一类东西,都是提供远程调用的框架,不过Hessian的最大优势在于跨平台,多语言支持和比较合理的性能,目前Hessian支持:
Java
Flash/Flex
Python
C++
.NET C#
D
Erlang
PHP
Ruby
Objective C
没听说过的就有D和Erlang,没用过的那就很多了,不过其实如果用C语言写一套,这些都是可以调用的>.<(至少是大部分)。我注意Hessian并不是一个人来完成的,很多语言的实现并不是同一个人,所以这里把Hessian成为一套标准更合适。
据我目前掌握的资料来看Hessian是使用二进制序列化的,同样支持Http-Invoke,目前的状况下我又几个问题:
Hessian是否支持不同语言的相互调用?Hessian虽然实现了多种语言,但是很可能是C++版本的只能调用C++版本的,而不能调用其他,能不能实现C++远程调用Java?Java远程调用C++?
这 里有个公共类型的问题,C++和Java,或者说这些语言之间并没有.net平台上的CTS(公共类型系统),也就是说A拥有的类型B就可能没有,如果类 型都不能统一,如何实现远程调用呢?我在C#下压入一个delegate类型,C++根本不能处理这个东西。这并不是个例,所以不同语言之间的互操作我认 为是不可行的,Java没法构建C++类型,反过来一样。
当然对于一些语言之间,可以进行类型转换,比如Java和C#,他们有很多共有的类型,但是比如C++和Java,前者根本没有interface类型。
(如果能实现不同语言互操作,那Hessian真神了,一定要膜拜下)
二进制序列化的问题。
二 进制序列化效率很高,C++这种语言也可以自定义序列化过程(事实上我认为必须自定义,因为C++没有类似C#反射的能力,也就无法自动的序列化)。但是 二进制序列化是不是会存在大端小端,字节对齐,不同平台的数据格式的问题,C++作为本地语言,不能像C#或者Java那样就规定了一种内存数据格式,所 以在不同架构的平台之间用二进制序列化是不可行的。
目前想到的就这么多,我希望继续了解一下这个东西Hessian,毕竟他已经很优秀了。
----------------------------------------------------------------------------------------------------------------------------
相关推荐
它支持Java、C++等多种语言,使得跨语言的远程调用成为可能。Hessian的核心思想是将Java对象转换成二进制流,通过网络发送,然后在接收端反序列化回原来的对象。 在Hessian的实现过程中,主要包括以下几个步骤: 1...
此外,Hessian支持Java、C++、Python等多种编程语言,具有良好的跨平台性。对于需要频繁交互且数据量不大的Web服务,Hessian是一个理想的选择。 接下来,我们来看看Hessian的调用流程: 1. **服务端实现**:在...
3. 跨语言通信:Hessian支持多种编程语言,如Java、C++、.NET,实现跨平台的通信。 总结,hessian-4.0.33.jar是Hessian框架的一个版本,提供了实现高效二进制RPC服务的工具集。通过深入理解Hessian协议和这个库的...
4. **跨语言支持**:虽然最初是为Java设计的,但Hessian也有其他语言的实现,比如Python、C++、C#等,因此可以在多种语言之间进行通信。 在【描述】中提到的博客链接,可能详细介绍了如何使用Hessian进行客户端和...
Hessian支持多种语言,包括Java、PHP、Python等,这使得跨平台的集成变得容易。 在提供的压缩包中,我们有三个文件:`java_client.rar`、`java_server.rar`和`php-client.rar`。这些文件分别代表了Java客户端、Java...
Hessian支持多种编程语言,包括Java、C++、Python和C#等。 2. **C#桌面程序**:这里提到的C#桌面程序通常指的是使用.NET Framework开发的Windows应用程序,如WPF(Windows Presentation Foundation)或WinForms应用...
- **跨语言支持**:除了Java之外,Hessian还支持.NET、Python等多种编程语言,这使得开发者可以在异构系统之间轻松地实现服务交互。 #### 使用场景 Hessian适用于需要高性能远程服务调用的应用场景,尤其适合于...
Hessian 支持 Java、C++、Python 等多种语言,使得跨语言的服务调用成为可能。Hessian 的优点在于它能够自动序列化和反序列化对象,减少了网络传输的数据量,提高了服务调用的效率。在分布式系统中,Hessian 可以...
它支持多种类型的数据,包括基本类型、对象、数组和日期等,并且能够自动处理Java和.NET之间的类型映射。 在"Hessian-example"这个项目中,我们通常会看到一系列的示例代码,用于演示如何在实际应用中使用Hessian。...
2. **自动类型转换**:Hessian能够自动处理不同语言和平台之间的类型转换,简化了跨语言服务调用。 3. **内置序列化**:Hessian内置了对象序列化机制,可以直接将Java对象转换为二进制流,无需额外的序列化接口实现...
* 跨语言支持:Hessian支持多种编程语言,例如Java、Python、C#等。 * 可扩展性:Hessian具有高可扩展性,易于集成到现有的应用程序中。 五、Hessian的应用场景 Hessian可以应用于以下场景: * 远程过程调用(RPC...
Hessian支持多种语言,包括Java、C++、Python等,这使得跨平台的通信变得简单。 在实例中,我们将创建一个服务提供者(Server)和一个服务消费者(Client)。服务提供者会暴露一个接口,这个接口通过Hessian协议...
2. **自动类型转换**:Hessian支持多种数据类型的自动转换,包括基本类型、日期、集合、自定义对象等,使得跨语言的通信变得更加简单。 3. **远程方法调用(RMI)**:Hessian提供了一种轻量级的RMI实现,使得服务调用...
Hessian协议支持Java、C++、PHP等多种编程语言,使得跨平台的交互变得更加便捷。 Hessian的学习主要涉及以下几个核心知识点: 1. **二进制序列化**:Hessian使用高效的二进制格式进行序列化和反序列化,与基于文本...
Hessian支持Java、C++、Python等多种编程语言,能够实现不同语言间的无缝通信。 二、Spring与Hessian的结合 Spring是一个广泛应用的开源Java框架,它提供了丰富的功能来简化企业级应用的开发。在Spring中集成...
Hessian支持Java和多种其他语言,可以实现跨语言的RPC调用。它的主要特点包括:轻量级、快速、自动类型映射以及对基本数据类型和集合的优化编码。在Dubbo中,Hessian协议同样可以被用于服务的远程调用,它提供了比...
Hessian库可以在不同平台上使用,支持多种编程语言,简化了跨语言的远程服务调用。 WebService是一种基于XML的、平台无关的标准,用于不同系统间的通信。它定义了服务的接口,允许不同语言、操作系统和网络环境下的...
5. **跨语言支持**:Hessian不仅在Java中使用,还提供了C++、Python等多种语言的实现,便于不同平台之间的交互。 在这个“hession_1”压缩包中,我们可以期待找到以下内容: 1. **源码文件**:包含了Hessian的核心...