`
qiujiayu
  • 浏览: 175504 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

跨语言调用数据格式有多少种?

阅读更多

   现在开发语言是越来越多,它们之间的通信也成了我们所关注的事情。在我这几年的工作中了解到一些用于跨平台的数据交换格式:XML、JSON、Hessian Binary、PHP 序列化格式、MessagePack。

一、XML

    XML估计是大家最为熟悉的数据交换格式了。基于XML的协议也是非常之多,SOAP就是其中之一。

 

二、JSON

     关于JSON的介绍:http://www.json.org/json-zh.html

三、Hessian Binary

    关于Hessian Binary 介绍,请访问 http://hessian.caucho.com/。

四、PHP 序列化格式

    关于 PHP 序列化格式的介绍,请访问:http://www.phprpc.org/zh_CN/

   http://www.phprpc.org/zh_CN/docs/#[[PHP 序列化概述]]

 

    PHP 序列化格式是一种超轻量级的数据交换格式,易于机器解析和生成。同时也易于人阅读。它最初在 PHP 3.05 中被引入,之后在 PHP 4、PHP 5、PHP 6 中被继承并发展。其中 PHP 3 序列化格式已经过时。PHP 4 序列化格式是 PHP 5 序列化格式的子集,PHP 5 序列化格式是 PHP 6 序列化格式的一个子集,本文所述的 PHP 序列化格式是指 PHP 6 序列化格式,它包含了 PHP 4 和 PHP 5 序列化格式的所有内容。PHP 序列化格式实际上是完全独立于语言的半文本格式,它不但支持 JSON 所支持的所有数据类型和结构,而且支持对象和引用结构。这些特性使 PHP 序列化格式成为更为理想的数据交换格式。

PHP 序列化格式是半文本格式,对于数字,它是采用十进制数字字符串来表示的,因此不存在字节序问题,非常有利于跨平台跨语言实现。但是对字母大小写和空白(空格、回车、换行 等)敏感,因此,又非常利于机器解析。

 

五、MessagePack

      关于MessagePack : http://msgpack.sourceforge.net/

 

如果哪位朋友对这些技术有兴趣,可以在这里一起谈论一下。

如果你们还有更好的技术,希望能分享一下。

 

web service 技术在现在的企业中是应用比较多的,但如果要真正掌握SOAP协议,是件比较难的事情,所以我也一直在想,我们在什么情况下,必须要用WebService,什么时候能用其它比较简单的技术来替代呢?

分享到:
评论

相关推荐

    跨语言调用和编程(图像变换).rar

    跨语言调用和编程在IT领域中是一个重要的技术主题,特别是在多语言开发环境中,它使得不同编程语言之间能够共享代码和资源。在这个场景中,我们关注的是如何在Python(L1语言)实现的功能A的基础上,通过C++和Java...

    Golang通过Thrift框架完美实现跨语言调用

    Golang通过Thrift实现的跨语言调用,性能上表现出色,尤其是内存占用比Java等解释型语言低,这对于高性能的分布式系统来说是一大优势。 总之,Golang通过Thrift框架实现跨语言调用,让Golang在分布式系统的通信中...

    Linux下跨语言调用C++实践.docx

    ### Linux下跨语言调用C++实践 #### 1. 背景介绍 随着软件工程的发展,不同的编程语言因其特点被广泛应用于特定领域。例如,Python因其丰富的库支持及简洁的语法,常用于数据分析与科学计算;而C++则以其高效能...

    跨语言调用_Python_Java_C_桥接技术_1741860862.zip

    此外,包含的“python_java_on_cpp-master”目录,则有可能是具体实现跨语言调用的项目代码库。在这样的代码库中,开发者会看到如何使用C++作为中介语言,来创建接口,以便Python和Java可以调用C语言的函数。这个...

    golang与java间的json-rpc跨语言调用需要的jar

    本话题聚焦于Golang(Go语言)与Java之间的JSON-RPC(JSON Remote Procedure Call)通信,这是一种轻量级的远程调用协议,通过JSON(JavaScript Object Notation)作为数据交换格式来实现。在这个场景下,我们主要...

    RMI 跨平台调用的demo

    远程方法调用(Remote Method Invocation,RMI)是Java提供的一种强大的分布式计算技术,它允许在不同的Java虚拟机(JVM)之间进行方法调用,实现了对象的跨平台交互。这个"RMI跨平台调用的demo"展示了如何在Windows...

    aidl跨进程调用

    在Android系统中,应用程序通常运行在各自的进程中,为了实现不同应用程序之间的通信,Android提供了一种强大的机制——Android Interface Definition Language(简称AIDL),用于支持跨进程调用。AIDL允许开发者...

    解锁C#跨语言调用新姿势:FFI与AOT深度探秘.zip

    例如,在进行跨语言调用时,如何管理不同语言间的数据类型转换、内存管理和异常处理。在使用AOT技术时,如何平衡编译时间和应用程序大小以及运行时性能之间的关系。此外,文档可能还会涉及一些高级主题,比如如何将...

    android项目之aidl跨进程调用举例Demo

    3. 实现接口-AIDL编译器从AIDL接口文件中利用Java语言创建接口,该接口有一个继承的命名为Stub的内部抽象类(并且实现了一些IPC调用的附加方法),要做的就是创建一个继承YourInterface.Stub的类并且实现在.aidl文件...

    基于C++与C的跨语言数据结构设计源码

    在这25个文件中,7个头文件可能是包含了数据结构定义和相关函数声明的关键文件,为实现跨语言的数据结构调用提供了基础。而6个压缩包文件可能包含了项目中用到的库文件、依赖文件或其他资源,这些压缩包为项目提供了...

    java和C#间通讯跨语言预热课

    1. **跨语言通信定义**:跨语言通信是指在不同编程语言之间进行数据交换或功能调用的技术。 2. **主要实现方式**: - **远程过程调用(RPC)**:如gRPC、SOAP等。 - **消息队列**:如RabbitMQ、Kafka等。 - **Web...

    MFC调用Python示例

    实现这种跨语言调用的方式有多种,比如使用Python的`subprocess`模块来运行外部进程,或者利用Python的C API在C++代码中直接嵌入Python解释器。此外,第三方库如`pybind11`或`boost.python`也可以简化C++与Python的...

    Demo: c/c++动态库(DLL)调用,c#等其他语言调用c/c++的DLL

    6. **注意事项**:跨语言调用时,需关注数据类型的映射,例如C++的指针和C#的IntPtr,C++的结构体和C#的类,以及内存管理问题,比如C++的动态分配内存需要在C#中释放。此外,还要注意线程安全和错误处理。 7. **...

    基于Dubbo的跨语言服务治理框架.pdf

    总结,基于Dubbo的跨语言服务治理框架旨在提供高效、灵活的跨语言服务调用,结合其负载均衡和故障处理策略,可以构建出健壮且可扩展的微服务体系。同时,注册中心和监控中心的集成使得服务治理更加智能化,提高了...

    java调用json参数的webservice

    综上所述,通过Java调用带有JSON参数的WebService,涉及到了Java编程语言的使用、JSON数据格式的处理以及WebService通信机制。开发者需要掌握这些技术来实现不同类型的应用程序之间的互操作性和数据交换。

    使用WebService的方法返回xml格式的数据

    XML文档由元素、属性、文本内容等组成,具有良好的可读性和可解析性,是跨平台、跨语言的数据交换标准。 2. **WebService概念**:WebService是一种基于HTTP协议的、平台和语言无关的服务,通过SOAP(Simple Object ...

    基于Java的motan跨语言远程过程调用RPC框架设计源码

    Java作为广泛使用的编程语言,拥有多种成熟的RPC框架,而Motan框架则是在Java基础上实现的一种新型跨语言RPC框架。 Motan框架的设计目标是提供一个轻量级、易于使用且能够跨语言工作的RPC框架,它允许Java开发者在...

    Apache Thrift——可伸缩的跨语言服务开发框架

    * 高效的远程服务调用:Thrift 采用二进制格式传输数据,相对 XML 和 JSON 体积更小,对于高并发、大数据量和多语言的环境更有优势。 * 跨语言支持:Thrift 支持多种编程语言,如 C++,Java, Python, PHP, Ruby, ...

    java调用R语言源码

    Java调用R语言源码是一种跨语言交互的技术,允许Java应用程序执行R语言的统计计算、数据处理或图形生成等功能。这种技术在数据科学领域尤其有用,因为R语言提供了丰富的统计库和优秀的数据可视化工具,而Java则有...

    java天气数据接口

    本文将深入探讨“Java天气数据接口”的相关知识点,包括如何调用气象数据接口,Java语言中的实现方式,以及如何在实际项目中应用。 首先,"Xfire"可能是指一个用于调用气象数据的API服务或者库,它提供了获取天气...

Global site tag (gtag.js) - Google Analytics