SOA对EA的impact
让咱们从新回到SOA对EA的impact上面来,总的来讲,SOA对EA的四个远景都有着深入的影响。
业务远景
SOA有助于把功能点分解成多个可维护,可重用的部件,而这些部件又能够分开设计,开发以及维护。采纳SOA也就意味着整个企业的功能点划分是以服务和进程为单位的。这种划分办法可以允许业务远景和应用远景更好的对应起来。若是能够更容易地从业务远景回溯到应用远景的话,那么就更简单地实现功能点的需求变动。这么一个策略也同时便于把业务服务(至关稳定的处理单元)从进程(一个业务模型中快速改变的元素)中分离出来。
把潜在的应用和功能点对应起来同时也是对业务行为监测(BAM,Business Activity Monitoring)的一个更直观的介绍,这个BAM是对业务事件和事务的实时监测。业务进程的提早实现考虑到把BAM的技术和业务进程的执行牢牢的整合起来。BAM交付给管理者的是实时的,关于企业整合的商业智能。
企业的业务进程需求驱动着业务服务的发掘和定义。对此,下图提供了一个高级而简单的算法。
第一步是建立一个业务模型用以标识业务所提供的基础实体和进程。域和业务需求应该驱动这一步的开展。整个过程的其中某个部分包含了识别一整套的服务,以及为每一个进程所提供的服务接口。当一个模型完成或者微调的时候,服务就会基于全部所需服务的共同功能点而进行重组。下一步是把现有的系统和所需的服务对应起来,并同时定义须要建立新服务的需求:
- 若是系统已经存在支持所需功能的应用,那么它必须进行校验,并生成可能须要的额外的功能点的说明文档。若是这种状况发生的话,这些功能点就须要被封装成以接口的形式暴露给外部应用。
- 若是系统中并不存在应用足以支持所需功能,那么服务的接口就须要进一步的巩固和增强。基于这些接口的定义和需求,须要建立真正的服务实现。这里要注意的一点是,建立新的服务并不老是意味着从头开始建立完整的服务功能。服务的实现其实能够把所需的功能部分代理给一个或者多个已经存在的应用来执行,并牢牢须要补充若干新的代码。
应用远景
在应用远景中引入服务就带出了松耦合的概念。每个服务均可以单独进行设计,构造和维护。这种作法大大减轻了对整个应用业务的维护工做量。服务的引入,就致使了下图显示的应用的架构。
这个架构是由异类的服务在服务总线上相互进行沟通而组成的。额外的组件是:
- 业务进程引擎,用于实体化业务进程。分开的业务进程引擎的引入使得业务进程的定义和执行从服务的实现中分离开来,并容许更加松耦合的应用架构。
- 服务定位器,用于实体化服务的定位,并支持服务定位的透明化。
- 业务服务封装了真正的业务功能。
- 工具类服务,是一些特别的业务服务,它们并不隶属于任何一种固定的核心业务,但仍然能被客户端访问。
- 经常使用(基层)服务,提供了对业务服务的系统和基础级支持。
相比较于写一个standalone的应用,健壮服务的设计过程,开发,部署,管理以及维护都须要更高的代价。
信息远景
SOA的实现引入了两种数据级的考虑:
- 服务实现所需的基础数据模型
- 服务消息所需的数据字典,定义了SOA的沟通语义
这种分离的考虑充分简化了整个企业的信息策略。在一个SOA的实现中,被企业应用业务暴露出去,和被内外部企业进程使用到的数据模型,是由消息数据字典所定义的,而它与基础数据模型是彻底解耦的。不一样的服务可使用彻底不相关的内部数据模型(由服务所封装好),只要他们所暴露的数据语义是符合企业承认的数据字典语义。
因为消息数据字典一般都比基础数据模型简单不少,所以获取经常使用的消息语义也一般比统一基础数据模型来的容易多了。
技术远景
它实际上是创建企业级服务的基础。它提供了一致策略的基础和服务开发和维护的管理。SOA一般须要开发一套基础设施,而这套基础设施是被不少为了知足各类各样功能需求而交付的服务所共用的。在一个企业组织里面,对全部服务的可操做性支持能力只须要实现一次便可。
下图显示的是一套为SOA实现提供企业范围的服务的基本设备(基于上面提到的服务生命周期需求)。
这些设备提供了在应用范围内任何服务所须要的共同支持。上图其实包括三个主要部分,这三个主要部分又致力于三种技术平台组件:工具,基础设施,和运行期支持。工具组件包括工具,进程,方法,和模式(用以设计,开发,装配和测试服务和基于服务的进程)。基础设施组件包括对服务运行期的基础支持,由如下几个方面组成:
- 服务的部署:考虑的是围绕服务部署的进程和技术选择,包括主平台。
- 基础设施和配置:提供了中间件,操做系统,硬件,存储,网络,以及对整个系统的可靠的和可管理的支持。
- 服务运行期支持:包括进程,逻辑,功能,状态管理,这些都是基于服务的应用所必须的。并且是整个企业应用的环境,对服务有着专有的支持。
- 服务绑定和调用:提供服务绑定和调用的机制,包括对企业级服务的定位和调用,把应用或者代码在不一样的操做环境下暴露成服务。
运行期组件主要负责对SOA的额外支持,包括如下两个部分:
- 服务质量(QOS,Quality of Service)的支持。
- 服务版本的支持。
下转“结合经验浅谈SOA的剖析(五)”