| | | 第二代Web服务展望 | | 2002-02-19·
·刘彦青编译··yesky
| 上一页 1 2 3 可扩展性
如果围绕URI组织WEB服务,该服务就可以通过链接自动地与其他WEB服务进行集成,一个注册表中的一个UDDI条目能够很方便地指向另一个注册表系统中的UDDI条目。事实上,企业可以在自己的站点上维护企业信息,在信息有变化时向UDDI“注册”这些变化即可。以资源为中心的web服务从本质上说是很容易进行集成的。
在一个UDDI注册表中的元素只可以在它们相互之间进行查阅(也有极少数的例外),它们不能查阅到在Web上其他地方的对象(例如其他UDDI注册表中的元素)。以URI为中心的解决方案则以与电话号码系统组织电话那样的方式对数据域进行统一的组织。
由于businessEntity文档都是XML文档,因此能够相对比较方便地添加元素、属性或其他名字空间。XML是一种可扩展的数据表达方式,通过添加特定的HTTP头部甚至新的HTTP方法(在极少数的情况下)很方便地扩展该协议。
性能
WEB服务的性能是一个十分重要的问题,任何从基于GET的URI中获取的资源都会被牵涉到,在服务器之前的缓冲服务器、企业防火墙或客户端计算机都存在性能问题。缓冲是内置在HTTP中的,SOAP get_businessDetail信息不能被现有的技术进行缓冲,对REST架构还可以进行其他方面的性能强化。
其他方法
UDDI中还有其他与businessEntities有关的方法,其中的一个是delete_business。HTTP已经有了DELETE方法,因此delete_business在REST模式中已经是多余的了,我们可以不使用UDDI SOAP-RPC的删除方法,而使用HTTP中的删除方法,这样有利于与“知道”HTTP中删除方法的Windows 2000中的资源管理器等工具兼容。从理论上说,企业可以通过点击“删除”按钮删除一部分的记录。
很明显的是,授权和访问控制是关健。微软不可能抹杀它的竞争对手在这方面的进步。HTTTP中已经有了授权、认证和加密的特性,UDDI的SOAP RPC协议不支持这些特性。
UDDI中还有一个save_business方法,这是为了上载新的业务,在HTTP中与之相对应的是PUT或POST。使用HTTP方法而不使用SOAP方法的一个好处是可以在HTML表格中执行POST方法。
UDDI中还包括有一个名字为find_business的方法,该方法在原理上与每个网站上的搜索功能或特定的搜索引擎并没有什么区别。在URI模式中,服务能够获取一系列的搜索参数,返回代表与搜索参数匹配的businessEntities。
使用GET、PUT、DELETE、POST这四个基本的方法,我们可以做到使用几十个UDDI方法才能实现的功能。REST于WEB服务的关系就象RISC技术与CPU的关系,但二者之间的关系还是有相当大的区别的,其代价和带来的好处是不同的。
HTTP的角色
我们通过WEB服务得到的好处利用HTTP也可以得到,我们需要的仅仅是XML符号集,这也是XML的意义所在:更注重数据的交换而不是软件组件。
UDDI中的所有东西都可以用HTTP对XML资源的操作表示,因此,HTTP与URI成为Web中最核心的技术之一并不是偶然的,它的设计目标是作为以特性为中心的REST架构的主要部分。
下面是一个很激进的观点:无论什么样的问题,我们都可以,也应该将它作为一个数据资源处理问题而不是一个API设计问题来考虑,将web服务器考虑为一个巨大的信息仓库,我们在其中进行数据处理工作。
在讨论UDDI时,我选择了一个能够被很简单地转换为REST架构的web服务,但我们可以将这一原理应用在所有的web服务中。那么在订单提交中如何呢?这更象是事务,订单也需要被命名。如果我们使用POST或PUT将订单提交给新的URI,然后整个公司的内部系统都可以查阅该订单,而无论系统是在什么地方。使用HTTP,北京分公司雇员使用的台式机上的XSLT样式表和Perl脚本代码能够处理在位于洛杉矶的大型主机上运行的财务系统上的订单。访问HTTP编址的资源不比访问本地系统上的文件更困难。
即使是带有复杂的工作流的WEB服务也可以以URI为中心的方式进行组织。现在我们来看一个飞机票预订系统。在传统的HTML系统中,有各种不同的代表逻辑交易的网页存在。首先,我们需要捍拒合适的航班,得到一个表示许多合适航班的URI。然后从中选择一个航班,得到一个表示我们选择的URI。然后再决定是否提交订单,提交后会得到返回预订号的网页。一般情况下,该网页的URI会保留一段合理的时间,以便我们记下预订的号码。我们可以以这种方式来考虑所有的业务。
HTTP甚至可以应用在P2P、异步、可靠的分布式计算中,如果读者对这些问题有兴趣,可以进一步地参阅其他的资料。
基于XML的web服务能够通过相同的步骤完成。不会在每个步骤中返回HTML表格,该web服务将返回符合航空业标准的XML文档,这些文档可以用在完全不同的飞机票预订系统中,运行完全相同的过程。
总结:任何商业问题都可以被看作是资源处理问题,HTTP是一种数据资源处理协议。
安全
对数据进行全球统一的编址并不意味着让所有人都可以访问你的数据。我们可以通过不公布其URI而很方便地隐藏对象,也可以很方便地对对象使用安全策略。事实上,REST在很大程度上简化了安全问题。
在SOAP RPC模式中,我们使用的对象是不明显的,它们的名字也隐藏在方法的参数中,因此我们需要为每个web服务使用一种全新的安全策略。在REST模式中,我们可以对每个数据对象使用4种基本的权限:GET权限、PUT权限、DELETE权限和POST权限。我们可以使一部分资源具有或不具有GET、PUT、DELETE和POST四种权限,这与当前广泛使用的文件系统的权限有点类似,它是有效和成熟的。
以资源为中心的web服务可以很好地与防火墙进行合作。防火墙管理员能够很容易地通过阻止不使用GET方法的HTTP请求而使一种web服务只能被读取。
维护
事实上,安全只是可维护性的一种形式。所有网管都会说,任何规模的网络都会发生问题,有时IP没有问题但DNS就会出问题(DNS服务器关闭或DNS配置不正确),有时IP和DNS正常但HTTP出了问题(防火墙或代理服务器配置不正确)。如果在HTTP之上运行WEB服务,那系统出问题的可能性就是二者之和,可能会有多个部分出问题和安全漏洞。
一旦WEB服务能够正常地工作了,则可以通过在浏览器中使用服务对它进行测试,甚至是复杂的需要多个步骤才能完成的web服务都能够通过HTML表格进行测试。从本质上说,对REST web服务的测试与web网站差不多。另一方面,每个SOAP RPC服务都有自己的安全模式、地址模型、数据模型、状态转换表和方法集,对这样的系统进行测试要困难得多。
上一页 1 2 3 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|