作者:易仔阿克 时间:2014-08-10 标题:到底什么才是面向服务的架构
面向服务的架构大约在2004年左右开始在我国流行,到现在也有十年了。在那时,学校、科研单位、咨询公司、软件开发商等都在谈论面向服务的架构(Service Oriented Architecture,SOA),异常火爆。当然近几年来由于云计算、大数据、物联网等的出现,SOA没有那么流行了,可是SOA对于组织来说仍然非常重要。那么,到底什么是面向服务的架构呢?
我们还是按照传统的分析方法,从面向服务架构的字面着手。面向服务的架构中最关键的是“服务”,那么什么是服务呢?对服务定义比较难,因为服务的应用很广,服务可以应用于任何场合,比如我帮你做了件事情,可以说我为你提供了服务,我为公司开发了一个软件,可以是我为公司提供了一个服务,作为回报,公司为我提供工资和社保,那么可以说公司也为了提供了资金支付服务。可见,服务是一个相互的概念,我为人民服务的同时,人民也为我服务。
分析完了服务,我们再看一下“架构”的概念。架构是为了实现一个特定功能,需要从多个视角系统化的考虑问题,将一个整体分解为多个相互独立又相互联系的个体。比如我们想设计一个小区,那么我们要考虑小区内的布局,哪里建房子,哪里建配电室,哪里建自来水站,管道路径如何,小区绿化怎么考虑等一系列事情,考虑的问题还需要是相互联系没有冲突的,比如小区的车库出入口应当避开行人经常走的道路,以提高行驶安全性,小区的超市应当布置在显眼的中间地方,以便于居民购物。
分析了“服务”和“架构”,我们再看一看为什么人们会提出面向服务的架构。我想,业界无论提出什么概念,其动因应当是解决现实问题的,这样提出的概念才有意义。我们看一下面向服务的架构是解决什么问题的。从事信息化工作的朋友也许知道在面向服务的架构之前还有面向对象、面向组件的概念,面向对象是解决软件的可维护性问题的,软件设计要反映现实世界需求,这样更改软件代码就方便多了。面向组件是解决复用性问题的,不要一种语言辛辛苦苦写的程序,其它语言和平台不能使用,如果软件成果不受编程语言的限制就能提高软件开发的效率。
当然,面向对象和面向组件解决的问题还是有限的,组织中有那么多厂商提供的系统,这些系统往往是不同平台、不同协议实现的,如果它们之间不能互通,企业的软件资产就不能发挥更大的作用。比如客户关系管理系统中有客户和产品数据,如果企业资源计划系统中想使用,需要采用数据导入导出的方式实现,不但容易出错,而且效率很低,更谈不上实时地服务提供。如果采用面向服务的架构模式,系统之间通过服务来交换数据,系统之间集成的问题就不存在了。道理很简单,就是系统之间都说普通话,不说方言,彼此自然就能够互相理解了。
说了这么多,大家对于面向服务架构的来龙去脉应当有个了解了吧~当然,关于面向服务架构的知识还有很多,比如服务可以分为面向任务、面向实体和共有的服务三种类型,服务分为服务注册方、服务提供方和服务使用方三个参与方,可以通过企业服务总线、WebService实现面向服务的架构等,这些都是具体的操作方式,在明白面向服务架构的原理后解决这些问题都是小case了。(结束)
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/196612.html