|
今天,XML已经成为业界的标准标记语法。但是,由于XML采用ASCII的编码机制,导致了传输中的数据量过大,所以,XML需要经历
一个“减肥”的过程。
从传统的角度看来,XML最大的不足是其一直鼓吹的基于ASCII文本的编码机制。在此种机制中,它所需要发送的数据量要比在非XML的二进制数据传输中的数据量要大得多。由于没有描述如何通过二进制对这一内容编码的通用标准,因此各个企业无法有效地解决XML的“肥胖”问题。不过,最近IT业界却在这一领域取得了重大突破。
编码串行化的捷径
解决XML“肥胖”问题的一种方法就是利用各种业界规范,它们把基于XML的SOAP信息当作是一种清单,来描述SOAP周围的HTTP包以内的二进制数据文件。SOAP with Attachments(SwA)和Microsoft的DIME (Direct Internet Messaging Extensions,直接互联网消息扩展)则可以与XML文档一同传送不透明的非文本数据,例如图像和数字签名等。但是,它们并不支持在XML文档内所有内容的二进制编码。
但实际的情况是,SwA和DIME都还没有被业界广泛采用。由于察觉到了人们对XML简单编码统一标准的迫切需求,W3C提出了在SOAP 1.2有效载荷之内进行XML二进制编码的新的候选建议:即SOAP MTOM(Message Transmission Optimization Mechanism,消息传输优化机制)和XOP(XML-Binary Optimized Packaging,XML二进制优化封装)。W3C的XML二进制描述工作小组已经发布了其“XML Binary Characterization Properties”(XML二进制描述属性)文档的第一份公共工作草案,该草案详细描述了MTOM、XOP或XML数据模型的其他任何串行化的所需属性。
可喜的是,MTOM和XOP所获得的支持远比以前任何的XML到二进制串行化的相关规范要广泛得多。MTOM和XOP描述的是如何在SOAP 1.2的有效载荷之内进行XML内容的二进制优化编码。它们可以将XML的优势完整地保留了下来,这就是:通过特定文档实现的标记逻辑数据结构的透明度。
附表 XML 二进制编码改进规范对照
| 规范名称 |
SOAP MTOM、XOP |
| 作用 |
有效解决XML编码机制数据传输量过大问题。 |
| 优势 |
"保留了XML逻辑透明结构,支持二进制编码及XML 信息集清单的封装。" |
| 现有不足 |
"无法定义全局的XML编码优化策略,还不是W3C的认可标准。" |
优势与局限
对于任何特定的XML文档而言,MTOM和XOP都会保留其逻辑透明结构,即在基于文本的“XML信息集”(XML Information Set)清单中对该结构进行编码。与此同时,允许文档的其他任何内容串行至任何二进制编码。更加特别的是,这些规范支持在SOAP 1.2的封装包内对作为MIME(多目标Internet消息扩展)的 Multipart/Related主体部分的XML内容进行二进制编码,以及对这些主体部分和相关XML信息集清单的封装。这些规范还描述了如何直接在HTTP包内对二进制编码的XML主体部分进行封装,以缩小用来传送和存储XML文件的大小。
与此同时,我们也看到MTOM和XOP的局限性,它们只能用来定义在XML/SOAP信息处理传输路径之内相邻节点之间特定跳数的编码。这些规范不能描述如何定义全局XML编码优化策略,而这些策略则适用于任意数量的XML/SOAP处理中间节点,这同时也是一项非常重要的需求。
值得注意的是,迄今为止MTOM和XOP还不是W3C的认可标准。而且,它们在商用领域的应用也相当有限。这些规范在商业应用平台、中间件环境和开发工具中得以广泛实施之前,那些希望基于这些规范来制订XML优化策略的企业也许不得不再耐心地等上几年时间。
但无可置疑的是,MTOM和XOP身后所蕴藏的业界驱动力还是相当强劲的。10年之后,世界各地的IT专业人士将凭借这些有效的编码计划让XML成功“瘦身”。
来源:CCW
|