鸟人的天空

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

不知道什么时候开始,SOA成为热门的IT词汇,但凡做软件的人都在讨论SOA,仿佛SOA成了应用软件开发

的最高境界,这原本是件好事,追求新技术是IT人的本能,只有这样,技术才能快速进步。

但随之而来的事情就比较恶心了,各家管理软件厂商纷纷开始吹泡泡,一夜之间所有的ERP软件都SOA了。

一套大型管理软件动辄上千万行代码,进行任何一种全面的技术改造都需要数年时间,重构就要更多的时

间了。这些事情不愿往深处想,觉得恶心,不论什么好东西,到了他们这里咋就变了味!?

正是有了这样一些行业带头人搅浑水,基本上说不清啥是SOA了。
而仔细去看这些管理软件厂商的SOA方案的时候,发现就是多了几个Web Service接口而已,狂汗~

我也不敢说自己了解SOA,只是想谈谈我对SOA其中的Service的看法,即什么是“服务”?

服务就是为企业的外部客户完成一定业务功能的完整模块,客户可以根据自己的业务需求选择不同服务供应商提供同一种服务。通过软件系统提供的服务,可以将企业与企业之间的合作关系变得更加敏捷和高效。

服务具备如下特征:

  • 服务必须是可替换的
    服务的提供者和服务的使用者必须是彼此独立可分割的,举个例子,对于吃饭这个过程,嘴巴为肚子提供了进食这项服务,但作为服务的提供者嘴巴却不能被替换,因此,对于人这个系统,嘴巴和肚子之间不能被封装为服务关系。以ERP为例,ERP系统受数据库结构和业务逻辑的约束,往往ERP的构成模块之间往往是高度耦合的,因此,在服务的接口不能实现解耦的前提下,不能将ERP按模块方式分割为多种服务提供者。说白了,服务必须是低耦合高内聚的。服务的提供者和使用者应该是不同的封闭系统。
  • 服务必须具备商业价值
    服务是按商业用途来划分的。没有业务功能或者业务功能不完整不明确都不能被认为是有效服务。
  • 服务的接口必须是平台无关的
    为了解决跨平台跨系统之间的通讯问题,服务的接口必须是平台无关的。目前比较好的跨平台方式是WebService。

所以:WebService<>SOA

我见到的最糟糕的举例是拿用户管理模块来作为一项服务进行讲解。因为从性能角度分析,用户管理模块必然是高耦合的。
我见到的一个比较恰当的服务的例子是物流公司提供的配送服务。

SOA之所以被业界认可,是因为领袖们相信未来企业都会将其业务功能封装成为服务在网上销售,企业需要服务也只需要通过发现和简单配置即可。

posted on 2007-03-26 00:04  leizhongnan  阅读(575)  评论(0)    收藏  举报