Japanese English Chinese
 
 
 
  技术架构
  SOA
  J2EE
  .NET
 首页 > 技术架构 > SOA
     
  SOA架构和MDA软件开发模式  
   
 

  当管理软件不再成为企业自我标榜的噱头,当管理软件给企业带来愈发明显的经济效益,当管理软件的价值日益被企业客户所理解与接受,企业信息总监的烦恼却与日俱增。在面对软件应用与技术架构不断升级的过程中,新旧系统之间的难以逾越的数据鸿沟,不断增长的基础数据与用户维护的日常工作…

  中国企业信息化在痛并快乐的一路走来,在我们看到越来越多的企业呼唤一个集成的系统时,越来越多的企业呼唤一个具有广泛适应性的系统时,越来越多的企业呼唤一个具有能够长期适应业务应用扩展需求的系统时。软件技术架构已经悄然的开始了一场架构的革命——企业服务架构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的良性发展。

 

  MDA软件结构与开发模式

  在传统的企业管理过程中,对企业的业务处理是通过各种各样的业务流程来贯穿和执行的,我们企业做信息化的过程就是通过软件系统将企业各种制度、管理方法和工作流程固化下来,通过软件提高速度、减低成本、强化管理。企业的生命周期是一个动态变化的过程。在每个成长阶段、企业由于内外部环境的变化需要有所区别的政策,管理方式、工作流程和组织模式,业务在变、组织架构在变。企业用户需要不断开发新的应用系统,或者不断升级管理软件来满足逐渐增长的日常应用需要。

  传统的应用软件的模式是通过子系统、模块、功能、单据、账簿、报表等一个个的基本元素组合,以过程驱动企业的业务。在单点、单模块的小型管理中,这种方式所带来的方便、快捷的客户价值导向,在下一代管理软件产品的发展中烙下了深深的印记。但这种应用模式在面对各行各业的业务流程不断变化的企业应用中,特别在面对企业流程管理的三个层次:流程重构、流程优化、流程协同的管理诉求,其固化的难以变更的流程处理方式,或者简单的通过建立数据之间的转换关系,都是不足以适应多变的软件需求。

  SOA架构的提出就是为了有效的解决这个矛盾,而SOA落实到具体实现手段和方法各有不同的标准,MDA模型驱动架构,无疑是当前的工业标准。

  业务中间件对业务实现的抽象,表现就是业务模型。通过动态模型可以实现业务流程的动态适应。

  企业动态建模是通过一系列步骤和采用一定的方法,对实际企业对象的发展和变化模式进行分析和简化,去掉对建模目的影响不大的细节现象,得到抽象的动态模型的过程。企业动态建模的过程涉及一系列的活动、方法和工具,用于建立描述企业不同侧面的模型。由于企业组织的复杂性,采用单一的模型无法完整地表达出一个企业多方面的特点,因而在企业动态建模中涉及到多个视角的模型,常用的包括:信息模型、功能模型、组织模型、流程模型四个动态模型。

  信息模型:是从信息的角度对企业进行描述,企业信息系统是信息模型的一个体现,用于存储/维护/处理与企业相关的所有信息,这些信息是联系各个功能元素的纽带。

  功能模型:以功能活动为视角对整个企业进行描述,表现的是企业各功能模块之间的关系。

  组织模型:描述组织结构树、团队、能力、角色和权限等。

  流程模型:是通过定义组成活动及其活动之间的逻辑关系来描述工作流程的模型。

  一个经营良好的企业会随着自身的发展状况,外部的经济环境等因素,适时的调整自己的管理模式、组织架构、业务流程等。企业动态建模的目的就是让用户按自己熟悉的方式,以最快和最为合理的方式建立公司的组织模型、功能模型和过程模型,或对他们进行相应调整,以期在无法预测和快速变化的市场竞争环境中求得更高的效率和更低的成本。
 
     
 
© 2001-2008 北京世纪思特技术开发有限公司