Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 窄带可扩展消息格式_Xml_Embedded_Compression - Fatal编程技术网

Xml 窄带可扩展消息格式

Xml 窄带可扩展消息格式,xml,embedded,compression,Xml,Embedded,Compression,我正在整理一份对投标的技术响应,其中一项要求是在窄带网络(10字节/秒左右)上使用可扩展格式传递消息。为了让服务器上的生活更轻松,我想使用Xml,它将从1000台设备接收信息。为了解决带宽问题,我可以使用压缩的Xml,但数据来自于可能没有omph进行动态压缩的嵌入式设备。任何人都有更好的想法,理想的是一种小型的可扩展格式,一旦通过窄带接收到消息,就可以将其混合成Xml。是一种非常简洁的格式,非常适合在设备之间传递序列化信息。大多数编程语言都有可用的库,因此服务器可能可以直接理解它,而无需转换为X

我正在整理一份对投标的技术响应,其中一项要求是在窄带网络(10字节/秒左右)上使用可扩展格式传递消息。为了让服务器上的生活更轻松,我想使用Xml,它将从1000台设备接收信息。为了解决带宽问题,我可以使用压缩的Xml,但数据来自于可能没有omph进行动态压缩的嵌入式设备。任何人都有更好的想法,理想的是一种小型的可扩展格式,一旦通过窄带接收到消息,就可以将其混合成Xml。

是一种非常简洁的格式,非常适合在设备之间传递序列化信息。大多数编程语言都有可用的库,因此服务器可能可以直接理解它,而无需转换为XML。

协议缓冲区是一种以高效但可扩展的格式对结构化数据进行编码的方法。谷歌几乎所有的内部RPC协议和文件格式都使用协议缓冲区


更多的信息会很有用。如前所述,答案可能是ASCII码。你在考虑传送数字、浮点数、学位、名字吗?也许是像ASN.1这样更深奥的东西。或者像其他建议一样,您可能会完全疯掉。

正如其他人所说,Google协议缓冲区或Apache Thrift是非常流行的二进制序列化工具。也就是说,它们确实有一些开销,因为它们标记了每个字段(以便在更改模式时实现有限形式的向后/向前兼容性)


不做标记,因此会为您节省更多的空间。

一般来说,使用XML不会让服务器的工作更轻松。如果使用XML的任何“特性”(名称空间、实体、转义、国际化等),XML解析代码都很复杂,解析XML通常比解析其他格式(如JSON)慢。您可以在一页代码中编写一个简单的JSON编码器/解码器,而XML甚至YAML都需要更高的复杂性。Avro、Thrift和Google协议缓冲区都是不错的选择,尽管这会增加依赖性


如果你真的被限制在10字节/秒,那么你可能需要一种没有太多引用或语法的编码;一个手工制作的长度前缀协议,或者类似protobuf的二进制编码,可能是您想要的。

还有一个.net版本——正是我需要的——干杯