每个聚合服务对应唯一的一种聚合策略,有唯一的全局标示。对每个聚合服务的描述,包括其标识、种类、功能、聚合策略和该聚合服务向下层服务的映射和转换模式,也包括对服务接口的定义。每种聚合服务可以对应到任意多个数据实体服务的组合,也可以对应到数据实体服务和底层聚合服务的混合组合,也可以是多个子聚合服务的再组合。当聚合服务被调用时,聚合服务模型把服务调用映射、转换到各数据实体服务或底层子聚合服务,生成服务的实例,并与这些服务进行交互。
聚合服务是进行整个企业内跨部门、跨系统数据集合的最小单位。
跨组织服务聚合层:基于数据实体服务层和聚合服务层,建立一个逻辑模型,主要用于解决跨组织提供信息的统一视图问题。
这一层要建立的模型不是一个固定的全局模型,而是一个动态可扩展逻辑模型,把下层提供的数据实体服务和数据聚合服务映射到该逻辑模型中。需要注意的是在映射过程中,要保证聚合服务在跨组织时的名字、结构、语义、并行等的透明性。跨组织聚合层在引用下层的聚合服务时,还要考虑它们的各方面的属性,尤其是非功能属性,如选取不同组织提供的相同服务时要考虑各组织所提供服务的QoS属性。当然,跨组织服务聚合层也可以直接调用数据实体服务。
在这三层描述中,前两层侧重于业务数据的建模,最后一层侧重于业务逻辑的抽象和建模。下面以一个简单的例子进行说明:
学生、课程、教师、考试、试卷等是从远程开放教育信息系统中抽象的部分数据实体,这些实体是从整个信息系统的高度来抽象地,其属性可能来源于多个不同的部门,在数据实体服务层描述它们;学生选课信息、学生报考信息和学生成绩信息是按一定业务规则聚合的服务,属于数据聚合服务层;教师业绩考核信息是一个跨部门的高层聚合服务,它根据动态的业务要求聚合下层服务,属于跨组织服务聚合层。
上面是对业务数据模型分三个层次的描述,而在分析和建立数据模型的过程中将分为三个阶段进行:
第一阶段:用传统的E-R分析方法建立业务数据的实体关系模型,分部门、分组织找出分析并找出所有数据实体,然后借鉴数据仓库按主题存储的思想,从整个系统的高度对数据实体再进行综合的处理,使得数据实体仅包含最基本的业务属性,并消除冗余和重复。
第二阶段:借鉴数据仓库多维数据模型的结构,使用UML建模方法对数据实体进行分组、分层的设计和组合,把数据实体转换为具有简单操作的数据对象。
第三阶段:根据已经建立好的数据对象业务模型,定义完善的格式标记和服务机制,对数据对象进行扩充和包装,选取适当的模式,使用标准的XMLAPI和工具包进行数据的转换和服务的设计、封装,将数据对象最终转换为服务数据对象;结合SOA的消息服务和基层服务组件,完成服务的提供、接受和发布、管理。
当然,在这过程中,要保证数据模型的一致性和完整性;同时,在服务的多层组合和封装中要控制服务到适当粒度,使提供的信息尽量充足而不冗余,缩短服务执行的时间,提高服务品质。
无论从三个层次描述业务数据模型,还是分三个阶段分析和建立数据模型,都是对业务数据模型逐层抽象,逐层组合的过程,也是逐层定义数据服务并进行封装的过程。
3.2 实现数据服务
建立数据模型仅是实现数据服务的第一步,还必须整合利用各种先进技术进行实现。
数据集成接口:屏蔽底层数据源,向上提供统一标准格式的数据。一般采用API来实现,可直接访问各种源数据库及其元数据,也可访问其它数据源,包括应用系统API、用户数据、Web服务数据及其它外部的各种数据源;同时完成XML标准格式到不同数据之间的数据转换和数据映射。
数据模型集:以一致、标准和统一的格式描述业务数据模型,一般是以XML模型的方式建立业务数据模型,并进行模型的管理和监控,可以对模型进行修改、添加和删除。
数据处理引擎;按照上层具体应用要求,从业务数据模型生成数据服务实例;完成服务调用和响应。主要负责两方面的工作:一是解释数据模型和服务调用,完成各层模型的转换和映射;二是从服务调用和响应消息中抽取业务数据,完成数据操作和计算,并把结果以标准格式写入响应消息。
服务API: 按照系统业务功能,划分基于标准的服务接口,接受外部服务调用请求,将请求信息进行转换后发送给数据处理引擎,同时把调用请求映射到一个业务数据模型。快速构成服务组件,适应业务流程需求的变化。
首先,用户按照预先定义的业务解决方案,通过服务API提供的服务列表找到相应的服务接口,该服务接口把用户请求定位到数据模型集中定义标准服务的业务数据模型,生成服务实例;通过数据处理引擎,按照模型中对服务的定义和已设定的业务规则,组合这些服务实例,调用数据集成接口层的数据,形成一个完整的业务流过程。根据此业务数据服务模型,一个外部应用可以驱动一个复杂的业务流程,例如,学生选课这个业务流程,它由创建学生信息,发现课程信息和创建选课等服务组成。
4、总结和展望
本文把面向服务的思想引入业务数据模型的建立,将数据模型、业务策略和服务定义结合起来,以建立统一业务数据模型为中心,在系统的分层体系结构中抽象一个数据服务层,提供业务数据的完整视图,从而隔离应用与底层数据源,并通过统一的API存取所有数据源。建立业务数据模型的过程,就是数据服务抽象的过程;不同阶段、不同层次模型的转换和映射的过程,就是服务封装和组合的过程;而模型间的转换模式和映射模式,就是服务调用和响应的模式;而整个过程都是按照一定业务策略来进行的。如何以业务数据模型为基础和驱动,逐步推进远程开放教育信息系统的建设,将是我们继续研究的内容。