Evolved Media媒体公司创始人、主编和分析师Dan Woods在福布斯网站专栏中发表的文章中介绍了实施SOA的简单方法并且提出了如下问题:SOA应用缓慢是因为最常用的实施模式(使用简单对象访问协议的Web服务标准)太复杂和太繁重吗?这种方式的实施是不好的但却是必不可少的东西吗?
相反,SOA实施应该采用混合模式吗?就是尽可能采用REST(代表性的状态传递)模式,仅在复杂的服务中采用Web服务标准和简单对象访问协议。这种混合的方法能够使SOA更有用吗?
Accenture公司首席技术官Don Rippert每年都提出IT行业未来五年的最重要的趋势预测。Rippert认为今年的四大趋势是:互联网计算;数据与决策;移动成为新的电子商务渠道;通讯、协作、社区和内容的融合。同大多数首席技术官和首席信息官一样,Rippert对于SOA的业务好处很感兴趣。如果存储在记录系统中的信息能够提供给需要这些信息的人,就会做出更好的决策,就会发现新的自动化的机会。
大多数企业中的记录系统都包括传统的套装企业应用程序,如企业资源规划、客户关系管理和软件配置管理等应用程序。这些应用程序通常具有两种服务功能之中的一种功能。第一种方法,厂商建立服务并且利用软件发布这些服务。例如,SAP在这种方法中投入了大量的资金并且用其产品提供了数百个服务。
提供服务的第二种方法是通过客户开发。企业使用开发环境和应用程序编程接口创建从记录系统读写数据的服务。这些客户服务通常创建对分布在许多记录系统上的客户记录或者产品目录等复杂的信息集的统一访问。这两种类型的服务在大多数时候都是使用简单对象访问协议和Web服务标准创建的。
当你设法让这些服务工作的时候会出现一些问题。在很多时候,特别是在SOA应用的早期阶段,这个目标仅仅是向帮助实施SOA的人提供一些简单的信息,如批准政策的一些例外情况或者提供客户化的服务。对于把多个来源的数据结合在一起的简单的混搭应用程序来说,这种访问通常是只读的。
Rippert说,以简单对象访问协议和Web服务标准为基础的那些服务通常都很繁重。这些服务太大,减缓了应用程序的创建时间。有时候,你只需要快速地得到数据,这个标注解决的所有问题(如安全、可靠性、加密、版本和政策管理)有些小题大做了。
这正是比较简单的基于REST的服务与众不同的地方。REST服务有一个提供无状态访问一个代表一个信息集的资源的URL。你在这个URL中添加一些参数说明你需要提取什么数据和将发回什么信息,通常是使用比较老的HTTP协议。
因此,如果你像一个好的首席技术官或者首席信息官那样思考问题,想象一下如何把你的预算转变为商业价值。使用REST的开发人员将比使用简单对象访问协议的开发人员更多的访问数据。
当然,REST不是一切问题的解决方案。Web服务标准和简单对象访问协议的所有的数不清的好处都需要用于重要的交易处理和保护重要的企业信息。REST最好用于以内部为重点的服务或者没有敏感的或保密的数据的外部服务。如果你的服务以REST为基础,你必须要回答的一个问题是你将使用公共的还是内部的标准。
采用基于Web服务的标准,我们在迅速标准化的过程中也许很难取得成功。每一个大型软件公司都将迅速地赞同和使用这个标准。简单对象访问协议将成为主要的实施方式。
Rippert报告称它使用基于REST的服务实现的生产率的意义是厂商也应该开始提供这种服务。Woods说,我将同我在SAP、Salesforce.com、甲骨文、微软、谷歌和亚马逊等公司的朋友谈一下,看看他们是如何实现简单对象访问协议与REST的平衡的。
如果混合的方法确实能够取得成功,这就意味着大多数SOA应用计划必须要重新考虑。服务必须要按照简单对象访问协议或者REST分类,然后再进行实施。