xml银弹吗?我已经走过了足够长的技术(自20世纪80年代早期)看到了一些“银子的子弹”,这将改变世界。The question I’d like to examine a bit more closely here is, whether or not XML is the silver bullet for data exchange?

早期的“银子弹”

我的第一个与银子弹的经历是面向对象的数据库!他们是将在灰尘中留下关系数据库的新波。任何人都记得或使用这些数据库吗?对我来说,由面向对象的数据库出现的最好的事情是戴尔在同一项目上,这是我们遇到的在哪里,并继续找到安全软件!亚搏在线谢谢你oodb!

当java被介绍时,我也记得很好。据说C ++被告知,所以每个人都被告知要开始学习Java,或者他们会发现自己被降级到遗留软件维护任务。不言而喻,Java是非常成功的;但是,它没有任何方式杀死C ++。C ++仍然被广泛使用,并且不会很快消失。这里安全我们使用亚搏在线C ++为FME引擎,工作台和其他桌面技术。同时,我们将Java用于许多FME服务器组件。不言而喻,我们无法从我们的FME引擎中获得相同的高性能水平;哪个fme桌面和fme服务器,如果它是用java编写的。

简而言之,面向对象的数据库和Java都不是银子。一个仍然是一个专业产品,另一个虽然广泛成功,但不适合所有编程任务。事实上,语言数量仍在继续增长Python只是另一种流行和越来越多的语言的一个例子。

What about XML? Is it the Silver Bullet for Data Exchange?

和我的love of XML,我一直在思考的问题是,XML是否是数据交换的银弹?“XML对此进行了很多,并且来自许多使用它或正在朝着使用它的行业有很多数据。

There are also lots of tools for working with XML. For exchanging data between disparate systems it seems like it is the perfect solution. So, what are the weaknesses of XML?

XML.and Performance

At Safe when it comes to building product we are obsessed with three things: quality, usability and performance. If we can improve these with each release then we are doing a lot of things right. I have never met a user who said that they do not care about any of the above.

除了XML之外,我还花了很多时间与FME服务器团队一起工作。如上所述,FME服务器由许多Java组件组成,使用XML消息在它们之间交换数据。通过FME服务器,我们观看的性能措施之一是每秒核心传递给FME引擎的工作数量。我们希望此数字尽可能高,并随着FME服务器的每个版本增加。

Google Protocol Buffers事实证明:使用XML为此数据交换的XML漂亮(哪个XML始终是!)不便宜。在FME服务器上压力测试期间,我们发现大部分时间都在创建和解析这些XML消息上!做更多的研究我们发现,如果我们用Google协议缓冲技术替换XML消息,我们可以更快地处理这些消息20到100。

使用Google协议缓冲区技术也意味着消息本身较小的3至10倍(更高的信息密度)意味着我们可以同时交换更多数据。相比之下,XML具有非常低的信息密度。为了让这种感觉只是抓住XML / GML文件并压缩它。

Doing this makes a huge difference in the number of jobs/second that our FME Server core can handle, increasing the maximum number of jobs that we can process from hundreds per second to thousands per second.

Anyone who has worked with XML knows that it is many things, but it wasn’t designed to be compact or quick to parse.

这是什么意思?

就像任何东西,这意味着你应该真正评估你想要完成的事情。如果您的主要关切是在易于理解的结构中共享数据与许多其他松散耦合系统,那么XML是一个很好的选择。

However, it should be recognized that nothing is free and that you are giving up performance, both in terms of cost to process XML data messages and the size of the XML data that is sent.

如果您的目标是构建分布式系统,其中将使用紧密的时间约束来传递中等至大量数据,因此XML的选择真的需要质疑。就个人而言,当人们谈论在交互式系统中具有非常紧张的时间限制时,人们谈论移动大量XML时,我真的很紧张。

尽管XML继续增长,但其未来看起来很明亮,您应该始终首先定义系统的目标,只能选择最佳技术来支持这些目标。首先选择技术,然后定义系统的目标始终是一个非常危险的建设成功解决方案的方法。

作为喜欢XML的人,我的感受是,当谈到银弹问题时,XML比面向对象的数据库更多的Java更多。就像Java一样,有XML不是正确的选择的地方。

So while XML is not the silver bullet for all data exchange, that hasn’t dampened my enthusiasm for it. If you haveany XML that you’re having problems working with;请发送给我xml@safe.com。我也很好奇地听到你的任何其他银子的经历。

关于Data FME Desktop FME服务器 GML 空间数据 XML.

Don Murray

唐是安全软件的联合创始人和总统。亚搏在线亚搏在线安全软件最初是在与林业行业共享空间数据的项目中为BC政府做的工作。在该项目期间,Don等联合创始人Dale Lutz实现了像FME这样的数据集成平台。当Don没有引诱他有多喜欢XML时,你可以找到唐在安全的时候,安全地将FME产品带到一个下一级。亚搏在线您还将在道路上找到他与客户和合作伙伴谈话,以了解他们希望看到的新FME功能的更多信息。

注释

5响应“是数据交换的银弹XML?”

  1. 米哈塔塔 说:

    Hello Don

    谢谢你的刷新文章。我完全同意你说的话。

    Michael

  2. Steve Grise 说:

    My fav thing about XML is the performance of xpath and other query tools for reformatting/ETL from one doc to another on a local machine. I have used it to juggle data structures before/after using FME – for example plucking parts of a complex (ie nested elements) XML doc into a simple features GML doc that I can load to a target Geodatabase using FME. It’s not easy to set this kind of process up but it can be wicked fast. Looking forward to working with FME 2012 to learn how to do this kind of thing (when I get a chance).

    But agreed – for transfer over networks and use server-server the transfer time is silly. Thanks for the protobuf tips.

  3. Don Murray 说:

    Thanks for the comments. I am glad that it struck a chord.

    迈克尔,我怀疑像我一样,你在你的生活中一直在你的生活中,你得到了要求,也告诉你要使用什么技术,无论它是否实际上是适当的!当然,后来的人们想知道为什么这个项目没有逃跑!

    Steve, you truly are what we call one of the “XML Men”. These XML tools you are talking about are amazingly powerful in the hands of an expert and as you mention “It’s not easy to set this kind of process up but it can be wicked fast”. The flip side of this too is that for a production environment it is not easy to maintain these things.”

    What we are working to do with FME 2012 is to enable many of the operations such as “plucking parts out of a complex XML document” and make them easy to do.

    I hope the protobuf reference is helpful. It definitely has helped us produce code that is both faster and of higher quality.

  4. david steare 说:

    I think its too simplistic to expect a silver bullet, it is far more constructive to view xml as an evolutionary development in data exchange, and in my view its simplistic non semantic approach will allow it to last for some time to come. The major limitation is that it can get bloated but JSON is filling the gap here.
    http://www.liquid-technologies.com/xml-editor.aspx

  5. Don Murray 说:

    大卫,

    I agree whole heartedly that XML is an evolutionary development in data exchange. To see this a person has only to remember the old days in which many applications had their own binary format. Oh yeah, today I talked to a client who’s trying to move from an old proprietary format binary system. I would take XML over this anyday!

    你也使用这个词进化的这里refreshing as it implies that we will learn from the XML experience and get smarter. Walter Perry makes a great point here (http://bit.ly/q8gtyc.)在那里他描述了“你是你生产的原则,而不是你消耗的原则。”绝对值得一读。

    在“数据交换”中扩展更多。我会说,如果我为正在使用未知系统的未知消费者制作文件,我们就是我们所拥有的最好的XML。那里还有什么?杰森。那是关于它的。

发表评论

Your email address will not be published.Required fields are marked*

Related Posts