SOA 的演化
什么事情都不是凭空出现的,他们都有自已的演化过程,以下几个条件就促成了 SOA的形成。
1. 硬件和网络的演化
硬件有大家都知道的摩尔定律,《 TODO定律定义》。在这个定律下,硬件的发展已经远远的超过了软件,软件从原来因为硬件的速度而使用机器码汇编编写软件,因为硬件的发展,一些软件的性能上的损失已经慢慢的可以接受起来,我们因此迎来了高级语言进行编码,先是过程式的,再到了后来,我们使用了 OO,这都需要建立在硬件的发展的基础之上的。网络也一样,网络速度的发展,个人上网的速度已经从 56K,128K,512k到 2M以上了,更别说企业级别了。这样就为了软件的网络化打下了基础。有了这两这硬件和网络的发展, SOA的兴起才有了基础
2. 软件复用的演化
从软件架构概念推出至今,人们一直在努力的探索 “复用 ”,从子程序的复用,数据的复用,到对象的复用,乃至组件的复用,似乎从来没有脱开技术的影子,始终 是在提术领域谈复用,对业务似乎没有直接的效益。而 SOA则进一步,提出了组件组织为流程,流程复用甚至业务复用的理念,将复用推到了业务领域。
3. 社会的演化
社会的发展,使得企业的竟争越来越激烈,同质化的服务已经越来越不能满足企的需要,企业为了达到服务差异化,而不段的推陈出新。做为为企业服务的 IT系统也感受到了这一变化, IT系统必需适应这个变化,能快速的对应企业的产品和服务,做到 IT和业务的对齐。以前的开发模式的开发的软件,已经慢慢的不能适应这个变化,出现一种新的开发模式的软件是历史的必然。
SOA 的效益
说了这么多的 SOA,如果 SOA不能给企业带来效意,那么一功都是白搭的。企业都是以利益最大化为核心的, SOA会流行,除了大公司的炒作,如果没有给企业带来实实在在的好处,那是不会流行起来的。我们现在就来说说, SOA为企业带来的好处,
1. 提高业务的效率和用户的满意度
软件中提高效率的最好办法就是复用, SOA系统已经做到了业务级别的复用,他的效率比一般系统在这一方面的效率就高多了。在一般的系统中,依赖于其他的软件系统的话,他就需要多很多的事情,所以他想复用其他系统的业务的代价很高。然而 SOA系统,他已经把所有系统的业务都打包成了服务放入 ESB中,并对服务进行注册,可以很轻易地查找和访问服务,不需要了解服务的提供者的物理位置,实现方式等。这就极大的提了业务效率。 SOA的随需应变的能力,能使 IT和业务对齐,这是企业系统的极大的进步,用户的满意度自然会提高。
2. 有利于整合 IT资源,提高系统的对外协作能力
整合 IT资 源,这已经不是这几年的事了,其实很早以前都有在做这事,因为,早期的软件系统系都是独立的,或者,只是在部门内部几个系统间的协作。如果要使这种协作的 面积扩大化,那基本上是不可能的,因为有很多的协作接口,都是建立在对系统的全面了解的基础之上的。为什么以前做的整合不成功呢,我想这应该和标准化和整 合程度有关系
- 标准化对企业 IT资源整合的影响
在以前的整合是建立在特定的技术上的。因为是建立特定的技术之上,企业软件系统大都是异构的,也就是说一个企业的系统可能会使用 .net,java,C,C++不同技术平台和不同的传输协议。要用一种特定的技术来整合一个企业的 IT资源,那成功的机率不会太高,一家公司所有系统都使用同一种特定的技术,那种可能性还是比较小的。
那 SOA怎么做呢, SOA是使用标准化的技术,以特定的技术平台无关,而几乎所有的技术平台都支持这一技术标准,比如 web service。通过把旧系统的业务分解成一个个的服务,为每一个服务写一个面向 web service的适配器,让其他的软件系统通过标准的 WEB Service来访问这些服务,而不用管调用的系统是使用什么技术平台。在这种整合的实现是需要开发人员去写一个个的适配器的,会增加一定的工作量,但,这远比重新写一个系统来得简单得多。
- 整合的程序对企业 IT资源整合的影响
在 以前的整合中,主要是以部分为导向,自上而下进行整合的,我们将这整合称做垂直整合。他只能在部门内的次源进行互联互通互操作,而部门间就无能为力了,比 如,财务系统要拿到业务系统的资料,那你只能去把业务系统的资料导出,再导入到财务系统,或者通过报文的形式来交互,增加许多的工作量而且出错的机率和花 费的时间也比较的高
SOA是一个企业 IT战略的重要组成部分,他要求整合公司内部外部的所有源,我们称他为水平整合。他不但整合了公司的内部资源,还整合了外部的源。这样,可以极大的提高效率。
3. 提高投资回报率
我们已经做到了高效的反应用户的需求,整合了用户的 IT资源,用户的投资回报率当然相比一般的系统要来得高。