欢迎大家来讨论,让我们能看清XML的优势所在。
希望有该方面经验的高手多指点!
---------------------------------------------------------------
帮你UP
---------------------------------------------------------------
楼上的说得对,区别就在于数据的传递!
---------------------------------------------------------------
XML的特点是松散。SOAP的使用把XML的优点推向了一个高潮,那就是“跨平台”。不同的系统,不同的开发语言在此说着同样的语言--XML。无论是数据交换还是方法调用,全部集中在文本。虽然文本并不是XML的最终表现形式(它只在需要时才创建),但为网络带来了希望。实现美好前景的前提是不要过分考虑性能。
---------------------------------------------------------------
I think it is a perfect solution of Multi-Tier project,it seem easier to realize Presentation-Tier communicate with Logic-Tier on complex data,and each tier is platform-independent,We can build Message-Oriented Middleware,just like soap request,webdev protocol,and so on.
use xml,you can custom your own protocol for exchange message from each tier. we can build our systems tightly-coupled and loosely-coupled...
---------------------------------------------------------------
摘一段《XML高级编程》的原话
第一代We b应用程序继承了传统的客户机-服务器模式的软件体系结构。其中某些将关系型
数据库作为第三层使用,但所有各层由专用的、固定的方法进行控制。颇具讽刺意义的是,这
与We b的精髓是背道而驰的—由简单的协议控制的松散的、开放的资源集合。与此相反,
X M L则出色地实现了这一目标。它为编程者提供的工具能够构建真正的、由开放标准和自描述
数据控制的多层分布式系统。让我们比较一下传统We b体系结构与X M L驱动下的We b体系结构。
1.3.1 传统Web体系结构
首先,让我们了解一下We b应用程序的体系结构(参见图1 - 1)。客户端程序是一个浏览器,
它充当着浏览者的代理的角色。浏览器将对页面的请求发送给H T T P服务器。这个请求会跟随着
一系列的参数名称和值。这些可能是被添加在页面U R L的后面(HTTP GET),也可能是单独发
送(HTTP POST)(要了解关于H T T P的详细内容,请访问h t t p : / / w w w. w 3 . o rg / P r o t o c o l s /)。参数
及其名称是由应用程序决定的,而且必须为客户端所知晓,要做到这一点,就需要把它们放置
到发出请求的页面中。随后,服务器应用程序的开发者也必须创建客户端页面。任何希望利用
服务器的人员都必须使用客户端页面,或者在客户端页面颠倒设计请求的结构。但是,只要服
务器改变请求的结构,这类颠倒设计就不再起作用。
在这种前提下,服务器会通过C G I脚本或A S P代码来动态生成H T M L以满足这类请求。这类
脚本可能使用一套数据库,或者进行自身的一些处理。很少(如果有的话)有多个H T T P服务器
协作完成一个请求。
当然,这种结构足以正常的工作,但它确实有一些重要的限制:
• 我们被限制在了客户端浏览器上。
• 没有人建立服务器页面与可编程的代理或其他应用程序通信。请求的结构是固定的。你或
者去协调整个服务器应用程序开发组的工作,或者是颠倒设计结构。结果是,如果不是服
务器开发组的成员,就很难编制客户端应用程序。
• 所有的内容都以H T M L的形式传递。这就限制了客户端进行任何后期处理的能力,而且在
传递时,用户所能看到的也仅限于服务器应用程序决定的内容。
• 如果你希望看到不同的显示方式,比如用图形替代表格,或者另一种排序方式,就必须再
到服务器上打一个来回。
• 应用程序非常脆弱;客户端和服务器必须紧密同步。请求只要有一点点变形就会中断服务
器应用程序。
那么,X M L如何帮助我们解决这些问题呢?
1.3.2 XML下的Web体系结构
现在,我们将目光放得长远一些,看一看X M L在未来会给我们带来什么。客户端—浏览
器或者程序—将一个X M L文档作为请求发送给服务器。同传统的We b应用程序一样,它包含
了指定参数。但是,与传统的客户端不同,请求的结构会根据在运行时从服务器上得到的标准
化机制来正式指定。这一机制会保证服务器所期望的结构,并允许客户端在传输前验证请求的
正确性。服务器也能够在接收时执行有效性验证。
一旦请求到达,服务器可能继续传统We b应用程序的处理流程,也可能做出某些改动。
X M L并不会专注于服务器与服务器之间的通信,但X M L研究者中的改革派使用X M L来格式化这
类通信。既然在这类交换中服务器收到的数据也是X M L,那么第一个服务器将几个文档合并起
来,或者将一个文档转化成另一种格式以满足请求就非常简单了。客户端用来得到结构内容的
方法也可以在服务器上使用。由于X M L天生就是层次结构的,所以它很容易就可以对非关系型
的数据源进行编码。但是,大多数服务器上维护的数据本来就是关系型的,因此X M L的研究者花费了大量的时间思考和实践如何使关系型数据与X M L结构相匹配。所有这些都使X M L成为在
服务器与服务器器应用程序之间交换数据的最佳媒介。一旦X M L被选中成为某个组织交换数据
的机制,编程人员可以很快地得到或编制组件和实用程序库以便操作数据。这些对于处理来自
客户机应用程序的请求也同样有用(参见图1 - 2)。
那么这些对我们来说有什么益处呢?首先,我们不再局限于基于浏览器的客户端。X M L本
身就是数据,而且可以由程序任意地控制。同样的数据,即可以设定其样式化以便在浏览器中
显示,也可以交给一个代理进行后台处理。在这个机制中, X M L文档无需假设数据的最终用途。
如果得知客户端需要H T M L,由数据驱动的转换过程就会使用X M L文档生成H T M L页面。而生
成X M L的底层应用程序不需要任何修改。
在这种机制下,服务器端的应用程序与客户端的耦合程度要松散得多,因为程序具备了找
出X M L文档的结构的能力。这样一来,富有创新意义的应用程序就可以根据程序的要求编写结
构新颖的各类文档,应用程序也无需为每一种新的文档类型编制定制的软件。更为典型的应用
是创建工业标准标记集,应用程序也可以利用结构自动感知机制来避免因版本更迭带来的矛盾。
在不久的将来,网络中的服务器,客户机和应用程序所进行的处理都将使用这种机制交换
数据。幸运的是,这种机制扩展起来并不困难,而且能够在运行时自动找出数据的结构。事实
上,任何一种平台都支持这种机制,它使用简单,能够处理来自不同数据源的标记数据。应用
程序的开发者可以使用来自非传统数据源或其他服务器的数据来满足客户端的请求。自此, We b
开发已经从客户机-服务器计算体系迈向真正的多层模式。
毫不夸张地说,这一目标离实现已为期不远。
---------------------------------------------------------------
三层分离的结构,有许多类似的表述:MVC(Model-View-Controller), content-style-logic, data-presetation-logic。
分层的好处有许多,例如设计清晰、可重用性高、帮助划定开发角色、易于维护、易于进行分布式处理……
而XML架构除了这些优点之外,还有标准化技术、轻量级、易于转换、灵活性高、有大量成熟工具等优点。
最好的例子是Cocoon,其管道理念甚至超出了传统的三层分离。