UML软件工程组织

 

 

基于SOA的远程开放系统业务数据模型研究
来源:计算机与信息技术 作者:邸瑞华 王虎
 

摘 要 本文依据SOA (Service Oriented Architecture)IT策略,研究远程开放教育信息系统中业务数据模型的建立和实现,把业务数据模型分为数据实体服务层、服务聚合层、跨组织聚合层三个层次描述,通过数据实体、数据对象、数据服务对象等三个阶段对业务数据模型逐层抽象、逐层组合,提出一个解决企业级数据集成和共享的方案,并给出了实现远程开放教育系统数据服务的逻辑框架。

1、引言

中国远程开放教育信息系统是由多个按照业务发展的需要逐渐开发的信息系统组成,如电大在线,电大教务管理系统,多媒体教学平台,从而形成了多个信息孤岛。为了满足远程开放教育发展的需要,我们依据SOA策略重新对中国远程开放教育信息系统进行规划,其中最基础的工作是基于SOA企业信息系统参考架构进行数据的集成和重构。

中国远程开放教育信息系统的数据来源于分散在各个网络节点中的数据库,这些数据的主要特征表现为分布性、自治性、异构性。分布性是指数据存放在分散的、彼此可相互通信的多个省;自治性是指各部门信息系统都运行着自己独立的的应用程序,在被集成之后局部数据源仍然保持着一定程度的独立性;异构性主要指运行环境的异构和数据模型的异构[1] --。

基于SOA构建远程开放教育信息系统首要的任务是解决分布式异构数据的集成,建立统一的综合的业务数据模型,实现不同数据源的统一视图并提供服务。从而使得系统的各类业务应用与底层数据源隔离,使得各种业务流程能通过统一的接口存取各种异构数据源。

2、基于SOA的远程开放教育信息系统参考架构

依据现有的SOA参考架构,我们提出了基于SOA的远程开放教育信息系统参考架构,如图1所示。该架构分为数据服务层、业务服务聚合层和复合应用层,并由服务基础环境支持系统的运行。

图1 基于SOA的远程开放教育信息系统参考架构

  • 数据服务层:建立统一的业务数据模型,为整个信息数据提供一个统一的数据视图,隔离应用与底层数据源,以标准存取方式提供服务给其它层服务或用户调用,使得应用界面与各数据源是松耦合的。
  • 业务服务聚合层:根据业务逻辑,对核心业务进行梳理和整合,为上层应用提供相对独立的业务服务,同时从业务活动分离抽象可共享的、基于标准的服务。
  • 复合应用层:根据业务流程的变化,面向客户需要和业务过程组成较高层次的复合应用,通过调用下层提供的业务服务,最后展示给用户。
  • 服务基础环境:提供服务交互所需的消息传输、转换和路由,对服务进行集中管理和监控,包括服务的目录、版本、配置等。

基于SOA的远程开放教育信息系统参考架构是以数据服务层为基础,以业务数据模型为驱动的,良好的业务数据模型将为整个系统的开发和运行提供保障。该架构的特点是运作的敏捷性、信息需求的多样性、数据系统的异构性以及良好的扩展性。

3、远程开放教育信息系统业务数据模型

业务数据模型是系统企业数据的统一表现实体,在全企业范围内得到一致性的使用;提供业务数据的完整视图和详细描述信息,提供信息的标准存取方式,完成企业数据服务的定制和封装[2]。

3.1 业务数据模型建模

业务数据模型可从数据实体服务层、服务聚合层、跨组织服务聚合层三个层次进行描述,这三个层次是从具体的组织内数据实体视图到虚拟化的、面向用户的跨组织数据视图进行区分的:

数据实体服务层:为系统提供数据实体的统一视图,并将数据都封装成为定义简单的、原子的数据实体服务模型。

在不同的业务系统中,数据以不同形式存在,使用不同的标准进行建模和编码,对整个系统来说,数据实体有全局的,有局部的,有原子的,有组合的。因此,在数据实体服务层,要重新建立一个全新的、统一的、集成的数据模型,重新定义新的关联和数据结构,对数据实体的描述也要进行扩充,除了其本身的固有的属性,还应包括每个数据实体的位置、来源、用处、限制和数据存储模型,以及对这些数据实体服务的描述,当然,这些数据服务仅仅是对数据实体的一些简单操作。在分析抽象时数据实体时要从整个系统的高度去看,而不是从某个业务领域去看,主要使用自顶向下的分析建模方法,要按照数据实体的不同功能和来源进行分类和分层,分析抽象出最原子、最底层的数据实体,对每一种数据实体要描述清楚其局部模式和全局模式之间的映射关系。新的数据模型将以全新的体系结构图开始,是系统内所有数据实体从各个角度的描述,是对数据实体服务的描述。

数据实体服务层向上发布其元数据信息,提供的是较低层的、细粒度的数据服务。

数据聚合服务层:基于数据实体服务层,按照某个部门或特定业务领域制定的某种聚合策略,建立聚合服务模型。

每个聚合服务对应唯一的一种聚合策略,有唯一的全局标示。对每个聚合服务的描述,包括其标识、种类、功能、聚合策略和该聚合服务向下层服务的映射和转换模式,也包括对服务接口的定义。每种聚合服务可以对应到任意多个数据实体服务的组合,也可以对应到数据实体服务和底层聚合服务的混合组合,也可以是多个子聚合服务的再组合。当聚合服务被调用时,聚合服务模型把服务调用映射、转换到各数据实体服务或底层子聚合服务,生成服务的实例,并与这些服务进行交互。

聚合服务是进行整个企业内跨部门、跨系统数据集合的最小单位。

跨组织服务聚合层:基于数据实体服务层和聚合服务层,建立一个逻辑模型,主要用于解决跨组织提供信息的统一视图问题。

这一层要建立的模型不是一个固定的全局模型,而是一个动态可扩展逻辑模型,把下层提供的数据实体服务和数据聚合服务映射到该逻辑模型中。需要注意的是在映射过程中,要保证聚合服务在跨组织时的名字、结构、语义、并行等的透明性。跨组织聚合层在引用下层的聚合服务时,还要考虑它们的各方面的属性,尤其是非功能属性,如选取不同组织提供的相同服务时要考虑各组织所提供服务的QoS属性。当然,跨组织服务聚合层也可以直接调用数据实体服务。

在这三层描述中,前两层侧重于业务数据的建模,最后一层侧重于业务逻辑的抽象和建模。下面以一个简单的例子进行说明,如图2所示:

学生、课程、教师、考试、试卷等是从远程开放教育信息系统中抽象的部分数据实体,这些实体是从整个信息系统的高度来抽象地,其属性可能来源于多个不同的部门,在数据实体服务层描述它们;学生选课信息、学生报考信息和学生成绩信息是按一定业务规则聚合的服务,属于数据聚合服务层;教师业绩考核信息是一个跨部门的高层聚合服务,它根据动态的业务要求聚合下层服务,属于跨组织服务聚合层。

上面是对业务数据模型分三个层次的描述,而在分析和建立数据模型的过程中将分为三个阶段进行:

第一阶段:用传统的E-R分析方法建立业务数据的实体关系模型,分部门、分组织找出分析并找出所有数据实体,然后借鉴数据仓库按主题存储的思想,从整个系统的高度对数据实体再进行综合的处理,使得数据实体仅包含最基本的业务属性,并消除冗余和重复。

第二阶段:借鉴数据仓库多维数据模型的结构,使用UML建模方法对数据实体进行分组、分层的设计和组合,把数据实体转换为具有简单操作的数据对象。

第三阶段:根据已经建立好的数据对象业务模型,定义完善的格式标记和服务机制,对数据对象进行扩充和包装,选取适当的模式,使用标准的XMLAPI和工具包进行数据的转换和服务的设计、封装,将数据对象最终转换为服务数据对象;结合SOA的消息服务和基层服务组件,完成服务的提供、接受和发布、管理。

当然,在这过程中,要保证数据模型的一致性和完整性;同时,在服务的多层组合和封装中要控制服务到适当粒度,使提供的信息尽量充足而不冗余,缩短服务执行的时间,提高服务品质。

图2 远程开放教育信息系统业务数据模型示例

无论从三个层次描述业务数据模型,还是分三个阶段分析和建立数据模型,都是对业务数据模型逐层抽象,逐层组合的过程,也是逐层定义数据服务并进行封装的过程。

3.2 实现数据服务

建立数据模型仅是实现数据服务的第一步,还必须整合利用各种先进技术进行实现,图3是我们实现远程开放教育系统数据服务的逻辑框架:

图3 远程开放教育信息系统数据服务逻辑框架图

数据集成接口:屏蔽底层数据源,向上提供统一标准格式的数据。一般采用API来实现,可直接访问各种源数据库及其元数据,也可访问其它数据源,包括应用系统API、用户数据、Web服务数据及其它外部的各种数据源;同时完成XML标准格式到不同数据之间的数据转换和数据映射。

数据模型集:以一致、标准和统一的格式描述业务数据模型,一般是以XML模型的方式建立业务数据模型,并进行模型的管理和监控,可以对模型进行修改、添加和删除。

数据处理引擎;按照上层具体应用要求,从业务数据模型生成数据服务实例;完成服务调用和响应。主要负责两方面的工作:一是解释数据模型和服务调用,完成各层模型的转换和映射;二是从服务调用和响应消息中抽取业务数据,完成数据操作和计算,并把结果以标准格式写入响应消息。

服务API: 按照系统业务功能,划分基于标准的服务接口,接受外部服务调用请求,将请求信息进行转换后发送给数据处理引擎,同时把调用请求映射到一个业务数据模型。快速构成服务组件,适应业务流程需求的变化。

首先,用户按照预先定义的业务解决方案,通过服务API提供的服务列表找到相应的服务接口,该服务接口把用户请求定位到数据模型集中定义标准服务的业务数据模型,生成服务实例;通过数据处理引擎,按照模型中对服务的定义和已设定的业务规则,组合这些服务实例,调用数据集成接口层的数据,形成一个完整的业务流过程。根据此业务数据服务模型,一个外部应用可以驱动一个复杂的业务流程,例如,学生选课这个业务流程,它由创建学生信息,发现课程信息和创建选课等服务组成。

4、总结和展望

本文把面向服务的思想引入业务数据模型的建立,将数据模型、业务策略和服务定义结合起来,以建立统一业务数据模型为中心,在系统的分层体系结构中抽象一个数据服务层,提供业务数据的完整视图,从而隔离应用与底层数据源,并通过统一的API存取所有数据源。建立业务数据模型的过程,就是数据服务抽象的过程;不同阶段、不同层次模型的转换和映射的过程,就是服务封装和组合的过程;而模型间的转换模式和映射模式,就是服务调用和响应的模式;而整个过程都是按照一定业务策略来进行的。如何以业务数据模型为基础和驱动,逐步推进远程开放教育信息系统的建设,将是我们继续研究的内容。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号