什么是SOA
1。     背景
IT行业就是术语和缩写流行的行业,各大厂商都喜欢隔三差五地推出一些新概念。为了不落人后,大家都喜欢争先恐后地跟进。有深入研究、务实研发的供应商,能够将概念落地,不断推出创新的产品和服务,赢得竞争优势。但“贴标签”的也大有人在,而且趋势是越贴越多,跟风炒作,“鱼目混珠,泥沙俱下",以至于“混绕视听”了。
SOA就是这俱多“三字母”缩写的概念之中的最流行和热门的一个.但目前,SOA概念和解决方案,话语权方面基本上被国外巨头所控制,特别是大的中间件厂商。
但是真正能够完整实现SOA的落地解决方案和案例很少,刻意包装的成分比较多,特别是应用架构方面。重技术,轻方法论,造成企业实施SOA缺乏足够的架构方法、SOA治理、SOA实施运维方面的最佳实践,因此企业实施SOA缺乏系统的指导。
另一方面,国内的不少软件企业,由于不能提供完整意义上的SOA解决方案,只能提供部分的组件,小部分特性符合SOA思想,所以就任意曲解SOA的含义,随意解析SOA的概念。以
至于国内没有一家软件企业不宣传SOA,不宣称其产品符合SOA架构的。由此造成,许多企业和客户对SOA是非常茫然的,对SOA的价值也转向怀疑和抵触。
这种厂商之间的无序竞争,不利于国内企业的自主创新,也不利于企业导入和实施有效的SOA,实现SOA的商业价值。
本文试图就SOA的来龙去脉,外延内涵和前世今生,来一个全面的阐释.一家之言,权作业界参考,希望带动大家做一些更深入的思考。文章比较长,如果兴趣不够,也可以就此打住.
 
2。     为什么需要SOA
SOA的出现不仅仅是厂商炒作的结果,本质上是两种力量驱动的结果:需求拉动、技术推动。业务需求的拉动,希望解决业务应用的问题;技术发展的推动,使得SOA具备了技术上的可行性,软件技术的发展推动了IT创新的商业价值。
2.1。    需求拉动
需求拉动方面,主要来自于两种信息化的困境。一个是“信息孤岛”造成基于系统之间互联互通的整合需求;另一个是业务的变化所导致对IT灵活性,以适应变化的需求.
目前国内外基本情况类似,经过30年的信息化建设,许多企业和政府部门都在不同时期、应用不同技术、与不同的厂商合作,建设了不同规模的应用系统,造成了信息化不是没有系统,而是信息孤岛太多的问题,而且不是没有数据,而是信息不一致,难以整合。因此,互连互通是当前信息化中的核心问题和核心需求。顺便说一句,那些认为中国企业的信息化起步晚,历史负担少,可以快速部署全新SOA,可以运用推倒重来的策略是不了解中国企业信息化,自我想当然的结果。事实上,我国信息化无论是金融、电信、电力等大行业,还是中小工商企业,“孤岛现象”还是非常严重,遗留系统的整合不一定就少,而且我国软件供应商的系统普遍架构能力比较弱,整合难度一点也不低。
这种互联互通需求,既包括企业内的各种应用系统之间的集成,也包括集团企业总部与下属企业、企业与上下游伙伴之间的业务协同。
 
 企业内互联互通的需求
另一方面,激烈的竞争和产业变革,需要企业不断调整其组织、流程和商业模式,以获得竞争优势,造成业务的不断变化,而且随着经济全球化,这种变革的步伐在不断加快。但僵化的IT基础设施难以迅速响应这种变化,造成IT与业务的不平衡和不匹配.因此,IT的灵活性以适应业务变革的需求,也是当前信息化建设过程中所面临的最大挑战.而且这方面的变革速度和变革幅度比国外许多企业都要大得多,毕竟我们的企业还是在快速成长,快速成熟的
过程之中.
业务灵活性的需求需要一种新的架构技术来支撑企业实现其快速的灵活应变的业务战略。传统的信息化方法和软件研发方法是基于业务需求的直接映射。这种需求驱动的信息系统最大的缺陷就是对变化的适应性差,这也是传统软件工程造成的“软件危机”最直接的表现。
如果要满足业务需求的柔性,就需要按照架构驱动,对业务进行适当的抽象,通过服务的表达和业务过程的原子化,来满足系统是按照企业架构来构造,这种架构是动态重构技术来支撑的,我们今天知道了,这种架构就是SOA。
 
 
2。2。    技术推动
软件出现最早是用于科学计算,然后是计算机辅助设计、辅助制造等等工业应用。在企业管理领域大规模应用后,业务需求不断的变化、系统不断增加、流程更复杂、系统越来越不堪重负,出现了需求交付方面的重大挑战,以至于人们用“软件危机”来描述软件工业所面临的困境.
软件技术发展过程中,一直在寻求解决四个基本问题的方法:质量问题、效率问题、互操作问题、柔性构造问题.soa这些问题今天依然困扰着软件行业。
造成这个局面的原因是异构性和标准规范的滞后。
屏蔽异构性
异构性表现在计算机的软硬件之间的异构性,包括硬件(CPU和指令集、硬件结构、驱动程序等),操作系统(不同操作系统的API和开发环境)、数据库(不同的存储和访问格式)等等.长期以来,高级语言依赖于特定的编译器和操作系统API来编程,而他们是不兼容的,因此软件必须依赖于开发和运行的环境。
造成异构的原因源自市场竞争、技术升级以及保护投资等因素。希望屏蔽异构平台的差异性问题是促成中间件发展的驱动力之一。而支持SOA架构的中间件平台,已经在很大程度上屏蔽了系统环境的差异性,提供了一致的计算环境。
实现互操作
因为异构性,产生的结果是软件依赖于计算环境,使得各种不同软件之间在不同平台之间不能移植,或者移植非常困难。而且,因为网络协议和通信机制的不同,这些系统之间还不能有效地相互集成.
造成互操作性不好的原因,主要是标准的滞后。解决软件之间的互操作性问题也是促成中
间件发展的驱动力之一.而SOA技术从一开始就强调了标准的重要性,包括中间件平台的实现上都是基于全球共同的标准来实现。
共性凝练和复用
软件应用领域越来越多,相同领域的应用系统之间许多基础功能和结构是有相似性的,每次开发系统都从零开始绝对不是一种好的方法,也是对质量和效率的很大的伤害.
尽可能多地凝练共性并复用以提高软件开发效率和质量,通过中间件通过提供简单、一致、集成的开发和运行环境,简化分布式系统的设计、编程和管理,这也是SOA发展的重要推动力.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。