- 作者:zhaozj
- 发表时间:2020-12-23 10:58
- 来源:未知
英国电信设计模式最佳实践——层次化的SOA架构
作者:崔晓波 BEA系统(中国)有限公司资深技术顾问
典型的企业SOA平台连接许多企业应用资源和用户,并且可以把企业应用资源分成服务提供者和服务消费者两种类型。可以通过把服务划分为不同的层次来得到良好的管理效果。一个服务层次用来使后台系统(BES)资源可用,而另一个服务层次连接前端系统(FES)到SOA平台,第三个服务层次组装第一个服务层次的基本服务并连接业务用户在一起成为复杂的复合类型服务。类似的服务分组做法可以有效的阐述SOA平台分层管理的特点。对于每个层次来讲,都有对应的不同的技术,开发模式,测试装置,部署配置和系统管理制度等等。
一、层次划分分层架构是最灵活的实现方法。简单来说,SOA可以仅仅由基本的存取服务来组成。这些存取服务直接封装由BES提供的一组接口。然而,这组服务并不能满足最基本的整合项目的整合需求。在大多数实际项目中,整合不同后端系统的逻辑是需要的。这个整合逻辑也可以被看作一组服务,此服务有良好定义的对外发布接口。这些服务是更高水平的服务,它利用更低水平的BES存取服务。这些服务实现是通过编排或协调的方式。最后,在一个企业整合环境中,这些更高水平协调服务或更低水平存取服务的大多数消费应用将不直接支持对外的服务接口。因此,另一组服务被要求包装服务到每个FES可以方便使用的形式。于是提出了分层架构的基础,如图所示:这个架构中有三层。每层都有相应的一组技术需求和作用。q 存取服务层负责发布一组BES的接口作为一个标准的服务。q 组装服务层重新分组服务来实现整合逻辑。q 消费服务负责使FES可以访问其它两层发布的服务,这些服务通常是FES不能直接进行调用的。
一个独立的企业信息系统(EIS)能够执行FES或BES角色中的一个或两个,它可以通过存取层暴露服务,也通过消费层调用服务。另外非常重要的一点是任何层的服务能够被FES调用,你不必通过架构中的所有层来进行。
(1) 存取服务层存取服务层提供由SOA平台其余层次服务调用的基础服务。该层关键架构的中心是设计和管理服务的重用。设计和开发存取服务需要应用访问异构资源的技术(如WTC、JCOM、Web Service等),适配器开发设置技术、消息中间件技术。存取服务层是通过访问BEA发布的服务来提供单一的接口,主要目标是在平台上实现最大化的重用。其它层通过控件或通过一个发布接口来访问这些服务。它最简化的形式仅仅是一个通过控件来暴露的BES。例如一个J2EE连接架构适配器(J2EECA)数据库适配器被安装和设置来把一个特殊的系统和每个需要的SQL语句所产生的服务连接到一起。然后这能够通过整合应用视图控件来存储。什么服务属于这一层?这一层主要考虑所有发布的接口是基于BES设计的,并非是每个FES或同层的需要。实现对BES多个调用的复合服务将是这层的一部分。例如,为了产生一个给定BES的用户,有必要产生用户ID,然后是用户名,再然后是用户地址等。每个部分都作为一个不同的调用,然后一个“产生用户”复合服务将被实现绑定所有这些调用。这种复合的原因是更方便的、更大程度的重用BES提供的服务。总体来说,一个适合存取的流程将满足以下几点:q 仅仅连接一个BESq 接口的所有者和服务的实现和BES在一起