第1章 业务模型概述

优质
小牛编辑
136浏览
2023-12-01

1.1 概述

模型是人们了为方便研究、理解和解决客观事件中存在的种种问题而对客观现实经过反复思维抽象后的文字、图标、符号、关系式以及实体模样描述的集合,以描述所认识到的客观事物的一种直观表现形式。

业务模型是从企业信息化的需要出发,针对企业的业务和管理所做的一种体系性抽象和描述,业务模型体系为信息系统的设计和开发提供科学、合理的导向和依据。

业务建模就是基于企业工程理论和业务模型体系,来分析、设计、开发和维护信息系统。业务建模的过程,是从业务和管理的现实和知识出发,依据和参照业务模型体系,采用业务建模工具,设计并构建出相关的业务模型资源,业务模型资源是业务建模的主要产品。

根据国际化的需求,X5业务模型支持多语言描述。通过在业务模型的描述中,使用国际化的语言标识,实现多语言的业务模型描述。业务模型对多语言的支持,为业务的国际化需求提供了基础。

1.2 业务模型的组织

1.2.1  业务模型的构成

X5业务模型系统由BIZ工程构成。BIZ工程之下有三种类型的模块:系统级模块、平台级应用模块以及一般应用级模块。

系统级模块包括system及其子模块,是在平台发布时就带的有,包括模型调度框架及各种基础功能,是其他应用系统开发以及运行的基础。系统级目录system下设ontology、data、logic和config目录。config是系统专有的模块,包括模型的一些配置信息(例如业务动作的插件配置),ontology目录下存放平台级的本体定义。data目录之下存放平台本体的mapping及数据库的连接,logic目录下包含action(平台提供的action定义), code(平台提供的业务逻辑),fn(平台提供的函数定义),平台级应用模块是指SA,随平台一起发布,是一般应用系统需要依赖的。

一般应用级模块是指根据不同的业务需求定义的一个大的分类级别的模块。应用级模块的定义是具有一定规范的,便于理解以及开发。Studio建模工具遵守标准的定义规范。

01
图1.1 模块级别

标准的应用级业务模型定义规范如下:

BIZ中新建一个应用模块。其下data, logic, ontology, process四个子模块:

  • data:用于定义概念到物理表的映射和数据库连接信息。此模块包含*.config.m文件、*.mapping.m文件。
  • ontology:用于定义概念模型。此模块包含*.ontology.m文件。
  • process:用来定义流程。此模块包含若干个子模块,每个子模块对应一个业务流程定义,子模块中包含*.process.m文件。
  • logic:用来实现业务逻辑。此模块包含action,code,fn模块,其中action中存储的是action及procedure定义,包含*.action.m和*.procedure.m文件;code中存储的是业务逻辑代码,包含src,dsrc,classes,dclasses,lib和slib目录;fn存储的是函数定义,包含*.fn.m。

1.2.2  业务模型文件

业务模型文件从后缀名的划分来看主要有xml、m、java和jar。

m文件:后缀为m的文件为模型描述文件,主要内容是ontology、mapping、fn、action等等的定义以及各种配置。

主要包括以下几种:

  • 本体文件 *.ontology.m
  • 映射文件 *.mapping.m
  • 配置文件 *.config.m
  • 函数文件 *.fn.m
  • 过程文件 *.process.m
  • action文件 *.action.m
  • procedure文件 *.procedure.m

xml文件:目前只有model.config.xml,每个模块下均可创建,用于描述模块间的引用关系。

java文件:后缀为java的文件,主要内容就是使用java编写的逻辑程序。

jar文件:标准的java类库文件。

1.3 业务模块

1.3.1  业务模块定义

X5的业务模型是由业务模块组成的。业务模型包含的业务模块与模型的目录组织是一一对应的,一个目录代表一个业务模块,因此,业务模型在文件系统中的目录层次结构就对应成了业务模块的层次结构。

可以这样理解:X5的业务模型体系中业务模型的目录结构等价于业务模型中的业务模块的结构。在表达业务模型描述的时候经常使用业务模块这个术语,而在说明业务模型是如何保存的时候会使用目录这个术语。

业务模块的建立非常的简单,只需通过Studio在BIZ项目下建立相应的目录。

本体模块,对应ontology目录,存储本体定义信息。

数据模块,对应data目录,存储本体与数据库表的映射信息(mapping)和数据库的连接配置信息。

逻辑模块,对应logic目录,存储业务逻辑的定义,它一般包括三个子目录action、code、fn。

流程模块,对应process目录,存储业务流程的定义。

1.3.2   业务模块的引用

每个业务模块都会自动包含其上级业务模块(即父目录),如果需要使用其它业务模块中定义的内容,那么就会用到业务模块的引用。

业务模块的引用在model.config.xml中定义,语法规范如下:

  • 语法:

<include>业务模块路径</include>或<use>业务模块路径</use>

  • 说明:

include:将其他模块中定义的东西完全引用,可以传递,如 A include B, B include C, 则A可以使用C的定义。

use:将其他模块中定义的东西引用到本模块,不可以传递,如 A use B,B use C,则A不可以使用C的定义。

  • 案例:

一个model.config.xml的例子


<model xmlns="http://www.justep.com/model">
				<use>/system/logic/action</use>
				<use>/system/ontology</use>
</model>

通过Studio新建一个业务模块时,一般包含本体模块(ontology)、数据模块(data)、逻辑模块(logic)和流程模块,其中逻辑模块(logic)一般包括三个子模块动作模块(action)、代码模块(code)和函数模块(fn),这些模块之间的默认引用关系如下:

  • 本体模块:include系统本体模块(/system/ontology)和use系统函数模块(/system/logic/fn);
  • 数据模块:include当前的本体模块;
  • 动作模块:use系统动作模块(/system/logic/action)和use当前数据模块;
  • 代码模块:use系统代码模块(/system/logic/code);
  • 流程模块:use当前的动作模块、use当前的代码模块、use系统函数模块(/system/logic/fn)、use系统动作模块(/system/logic/action)和use系统代码模块(/system/logic/code);
  • 函数模块:这个模块不会自动生成,如果需要,用户可以自己创建,创建后,被当前的本体模块和流程模块引用;

1.4 业务模型发布

业务模型的发布之前,需要先编译业务模型,之后将相应的BIZ拷贝就行了。