当管理软件不再成为企业自我标榜的噱头,当管理软件给企业带来愈发明显的经济效益,当管理软件的价值日益被企业客户所理解与接受,企业信息总监的烦恼却与日俱增。在面对软件应用与技术架构不断升级的过程中,新旧系统之间的难以逾越的数据鸿沟,不断增长的基础数据与用户维护的日常工作…
中国企业信息化在痛并快乐的一路走来,在我们看到越来越多的企业呼唤一个集成的系统时,越来越多的企业呼唤一个具有广泛适应性的系统时,越来越多的企业呼唤一个具有能够长期适应业务应用扩展需求的系统时。软件技术架构已经悄然的开始了一场架构的革命——企业服务架构SOA(Service Oriented Architecture)。
SOA作为一种架构理念与规范,需要产品和技术标准的支持。IBM、BEA System、Oracle、Microsoft等国际大厂商都积极投身SOA的实践,并努力的推行着。经过四五年的发展,已经逐渐形成了一批将SOA推向实际应用的成果。
“管理是一种艺术”,国际化的管理努力的将企业管理活动本身进行不断的规范,但企业管理涉及到组织、流程、资源及企业间的协同,这些内容在运营过程中关系错综复杂并且不断变化,这些都深刻的影响着管理软件构建的复杂性。
在经典软件工程理论中,不管是瀑布方法还是迭代方法,都是从需求分析做起,一步一步构建起形形色色的软件系统。但是需求变更像一个挥之不去的阴影,时刻伴随着系统左右。每一个实际应用系统的开发者都饱尝了在系统进入开发阶段、测试阶段,甚至上线阶段遭遇应接不暇的需求变更的极端痛苦。如何解决这一问题?能否来一场软件开发和架构的革命?SOA的提出,就是被人看成这样的一场革命。其实质就是要将系统模型与系统实现分割开来。
企业管理活动可以形象地被比喻成一个社会网络的沟通与协调,而我们回顾互联网的发展过程,一个重要里程碑就是ISO(Internet Standard Organization,国际标准组织)对OSI(Open System Interconnect,开放系统互连)七层网络模型的定义。它不但成为以前的和后续的各种网络技术评判、分析的依据,也成为网络协议设计和统一的参考模型。建立七层模型的主要目的是为解决异种网络互联时所遇到的兼容性问题,譬如Novell网与NT网络之间的因为标准的缺失,要想互联是难以想象的。于是通过ISO将服务、接口和协议这三个概念明确地区分开来:服务说明某一层为上一层提供一些什么功能,接口说明上一层如何使用下层的服务,而协议涉及如何实现本层的服务;这样各层之间具有很强的独立性,互连网络中各实体采用什么样的协议是没有限制的,只要向上提供相同的服务并且不改变相邻层的接口就可以了。
SOA在企业管理软件中的应用价值可以等同于上面提到的七层网络模型。一般认为:SOA,面向服务的架构是一个组件模型,它将应用程序的不同功能单元封装成服务(service),不同的服务之间通过定义良好的接口进行通信。接口采用中立的方式定义,独立于具体实现服务的硬件平台、操作系统和编程语言。这种具有统一而标准的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松耦合。
从SOA的定义中,我们看到两点:
SOA是一种软件系统架构。SOA不是一种语言,也不是一种具体的技术,更不是一种产品,它给出在特定环境下推荐采用的一种架构,是一种理念架构,是人们面向应用服务的解决方案框架。
服务(service)是整个SOA实现的核心。SOA架构的基本元素是服务,SOA 指定一组实体(服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契约),这些实体详细说明了如何提供和消费服务。遵循 SOA 观点的系统必须要有服务,这些服务是可互操作的、独立的、模块化的、位置明确的、松耦合的并且可以通过网络(UDDI)查找其地址。
SOA的灵活性将给企业带来巨大的好处。如果把企业的IT架构抽象出来,将其功能以粗粒度的服务形式表示出来,每种服务都清晰地表示其业务价值,那么这些服务的顾客(可能在公司内部,也可能是公司的某个业务伙伴)就可以选用这些服务,而不必考虑其后台实现的具体技术。IDC在2005年进一步明确了SOA的参考模型,提出了实现SOA所需要的基本元素以及它们之间应该具备的逻辑关系,指引着SOA的良性发展。
|