技术开发 频道

SOA的价值:实现敏捷业务

提高资产重用

    问题:下列物品有什么共同特征?

* 一次性尿布
* 一次性纸盘
* 空气过滤器
* 应用软件

    答案:这些都不是面向重用的。

    虽然有个别例外,不过实际上,重用确实已经成为信息技术(IT)王国的圣杯一样。项目经理、业务部门,甚至所有企事业单位都为此奋斗了几个世纪,许多人甚至得出结论:认为这只是个不实际的神话。因此,许多面向服务的拥护者将重用的价值作为部署SOA的主要原因并不奇怪。新加入这个行业的人对面向服务的重用感到很兴奋。而在这个行业做过一段时间的人却都知道每一次新技术浪潮都会颂扬重用这个词,并将其作为该独特方法的优点。面向服务也未能免俗。为了验证SOA重用的有效性,我们将从总体上检测软件的重用性开始,然后找出以前策略的缺点,最后确定用SOA实现重用性的真正潜力。

    复制-粘贴式的重用

    很早以前便有重用的尝试。我们尝试重用子程序、函数、对象以及最终组件。每次我们都会遇到一个最基本的难题。从软件开发的角度来说,不管重用的方式有多高明,一旦我们进入产品阶段,就必须将软件按照各系统的功能需要作为局部模块或库来部署。比如,一个团队开发一个数据存取的软件库,另一团队需要同样的功能,因此他们就把该软件库的一个拷贝部署到自己的服务器上。然后,第一个团队将软件升级到下一版本,而第三个项目团队借用该软件库,并根据自己的应用需求作了修改。很快,就会产生三到四个不同的版本,没有唯一的真实版本,运行时也没有办法对公用库进行直接访问。每次有人想“重用”这个软件库,就会有一份拷贝被复制到另一台服务器上,并随之产生新的开发方式。因此,理论上这里是重用,但实际上,这只是被美化的复制-粘贴而已。


图3 传统意义的重用只是被美化的复制-粘贴

    面向服务的重用

    服务的重用稍微有些不同。一个服务被创建并应用在某个位置,如果有另一个应用程序或系统需要使用该服务,那么它只需要按照一定的格式往这个服务地址发送信息即可(见图4)。这样,便不会造成该服务的各种版本在企业中随意扩散。当然,可能仍然会有对于该服务不同版本的需求,但它们会被集中管理,各种额外用途也可以在不失去控制的同时得到更好地支持。


图4 面向服务的重用可以适用于不同的环境

0
相关文章