近期在软件业,有关SOA与Service的讨论可谓热火朝天,各大厂商纷纷加入。不管是软件提供商,还是软件设计师和广大程序员,都暴露在了这场讨论中。虽然Gartner在十年前就提出了SOA的概念,但这个概念从未像今天这样被如此大规模地关注与讨论。虽然SOA还没有大规模地应用,但我们已经可以说,SOA终于超越概念,走进应用了。
我接触这个概念也不久,对相关的技术细节也不太了解。但忽然间就是觉得这个技术很有前途,很熟悉,很顺利成章。这似乎不是一个严谨的技术工作者所应该的有的态度,但我还是希望能将自己的一些想法拿来和大家分享。也许可以抛砖引玉,也许只是自娱自乐。但不管怎样,我还是写了。
按照我的理解, SOA的目的就是简化应用的开发流程,增强跨平台合作的能力,最大化的复用功能(功能指的是比模块更大的粒度)。所以,SOA就是封装思想的延伸,可作为分布式计算的一种实现方式。它将改变整个软件开发的模式,甚至改变我们的生活方式。这是不是危言耸听呢?暂且不论,我们先来想象一下未来的生活吧。
未来的某一天,全世界存在一个Web Service认证组织(姑且叫它World Web Service Committee,简称WWSC)。任何公司或个人所提供的Web Service(不管是软件方面的数据处理,还是涉及硬件操作的其他Service)都可以提请该组织认证。若通过认证,则该Web Service会被收入标准服务库(Standard Web Service Library,简称SWSL)归档编号,并将其功能描述,使用范围等信息已WSDL的方式发布到网上,供任何人查阅与检索(部分Web Service的查询也可加入权限控制)。当然,Web Service可以嵌套组合,新开发的Web Service可以调用SWSL中已有的Web Service,以便简化开发。但就像专利一样,要使用该标准Web Service,你必须向WWSC提出申请。WWSC会调查你的资质,并与你和Web Service拥有者一起洽谈使用费的问题(WWSC收取佣金)。这些都谈妥之后,你会获得一个使用授权许可号码。它将允许你在你的Web Service中调用目前在库的标准Web Service。当你完成自己的Web Service后,一样也可向WWSC提出认证申请。
如此发展若干年,我们可以想象SWSL会变成一个非常庞大的Web Service功能库。你几乎可以找到实现任何功能的Web Service。
比如,你要缴手机费,只需要在你的电脑上打开服务调用器(该调用器可以用任何语言编写,只要支持SOAP即可),查找到手机缴费相关的Web Service,并输入你的身份ID,手机号码,缴费金额,银行账号,密码,确认码等信息之后,Web Service就会自动帮你缴纳手机费,并返回处理结果(成功或失败,打印相关凭据等)。
再比如,你看中了一辆新上市的BenZ轿车,决定将它买回家。首先你在BenZ的网上商店里填写了你所需要的轿车的型号、颜色、配置等相关信息,然后填入身份ID,预付金额,银行帐户,密码等,以支付预付金。BenZ网上商店的Web Service会将你的需求信息提供给BenZ公司的自动销售系统。该自动销售系统向负责发货的Web Service发出一个请求,负责发货的Web Service按照用户信息自动选定距离用户最近的汽车仓库,并指示当地的区域发货Web Service完成发货动作。负责区域发货的Web Service指挥无人仓库中的机械传动系统将符合要求的汽车装上运输车,并设定运输车的目的地。无人运输车将自动搜索地图系统,选定最佳线路,将车辆运往你的住地。当你检验过运输车送来的BenZ轿车后,运输车将要求你输入确认信息并支付其他款项。至此,这个交椅过程结束。
所以,Web Service不仅可以是数据的处理,逻辑的判断,还可以是自动化的控制。我们可以大胆地想象一下,若干年后,Web Service将无处不在。大到政府决策,小到日常生活,我们的周围将充满Web Service。我们的生活将构建与Web Service之上。到时候就真的像Matrix中所预言的那样了,人们生活在程序中,一切都是程序。