资源描述
元数据管理系统
目录
1. 前言 5
2. 整体设计 5
2.1 设计思路 5
2.2 架构图 6
2.3 功能图 7
3. 功能模块 8
3.1 元模型 8
3.1.1 元模型维护 9
3.1.1.1 元模型基本信息维护 10
3.1.1.2 元模型属性维护 10
3.1.1.3 元模型关系维护 11
3.1.1.4 元模型索引维护 11
3.1.2 包维护 11
3.1.3 关系类型维护 12
3.1.4 业务领域维护 12
3.1.5 枚举类型维护 12
3.2 元数据 14
3.2.1 元数据基本信息维护 14
3.2.2 元数据关系维护 15
3.2.3 元数据生命周期 16
3.2.4 元数据采集 17
3.2.4.1 元数据导入导出 17
3.2.4.2 CWM导入导出 17
3.2.4.3 元数据模版导出 17
3.2.5 版本管理 18
3.2.6 变更订阅 18
3.2.7 元数据检索 19
3.3 应用 19
3.3.1 元数据权限管理 19
3.3.1.1 用户管理 20
3.3.1.2 角色管理 20
3.3.1.3 系统功能资源 21
3.3.1.4 元数据操作权限 21
3.3.1.5 数据库用户维护 21
3.3.2 数据库管理 22
3.3.2.1 表维护 23
3.3.2.1.1 表基本信息维护 24
3.3.2.1.2 字段维护 24
3.3.2.1.3 索引维护。 24
3.3.2.2 视图维护 25
3.3.2.2.1 视图基本信息维护 25
3.3.2.2.2 视图字段维护 26
3.3.2.3 SQL语句查询 26
3.3.2.4 存储过程维护 27
3.3.2.5 表空间维护 28
3.3.2.6 数据库用户维护 29
3.3.3 血统、影响分析 30
3.3.3.1 血统分析 30
3.3.3.1.1 图形展示 30
3.3.3.1.2 表格展示 30
3.3.3.2 影响分析 31
3.3.3.2.1 图形展示 31
3.3.3.2.2 表格展示 32
3.3.4 元数据使用情况统计 33
3.3.4.1 元数据浏览用户统计(按用户) 33
3.3.4.2 元数据浏览用户统计(按元数据类型) 33
3.3.5 元数据质量管理 33
3.3.5.1 属性填充率 33
3.3.5.2 属性合法性 33
3.3.5.3 名称重复性 34
3.3.6 指标库管理 34
3.3.7 元数据差异分析 34
3.3.7.1 流程差异比较 35
3.3.7.2 属性差异比较 35
4. 内部接口调用标准 35
4.1 元数据服务接口(MetadataService) 35
4.2 元数据版本服务接口(MDRevisionService) 36
4.3 元数据关系服务接口(MDRelationService) 37
5. 外部工具接口标准 37
5.1 获取元数据信息 39
5.2 新增元数据信息 40
5.3 修改元数据信息 42
5.4 删除元数据信息 43
6. 实现工具使用技术 44
6.1 JAVAEE 44
6.2 XML 45
6.3 SOA 46
6.4 REST 47
6.5 CWM 48
6.6 XMI 49
7. 工具完成后达到效果 49
1. 前言
目前的元数据管理系统,存在以下问题:
Ø 应用系统产生的元数据分别保存在应用系统中和元数据管理系统中,从而导致了元数据的不一致性。
Ø 元数据管理系统往往采用任务抽取和手工录入的方式维护元数据,与应用系统集成度低。
Ø 元数据管理系统中的数据使用率底,只起到集中存储元数据的功能。
Ø 元数据管理系统无法对应用系统产生的元数据进行权限和生命周期管理。
Ø 元数据管理系统应用分析功能弱。
2. 整体设计
1
2
2.1 设计思路
元数据管理是分为后台支撑和前台展现。后台支撑:工具中的很多功能,必须依赖于元数据的支撑。前台展现:通过元数据管理前台实现传统元数据管理的诸多功能。
元数据管理应采用高内聚、低耦合的组件式产品架构,利用丰富功能组件,搭建功能强大的、主动式的元数据管理平台,同时向集成商全面开放元数据功能调用接口,并提供整套应用开发方法论。使税务人员能够自行加载业务元数据、自动生成技术元数据、全面管控管理元数据。在完成元数据管理、维护等基础功能的同时,方便集成商实现二次开发,快速满足业务应用的针对性需求。
2.2 架构图
Ø 应用系统中将不再保存元数据信息,元数据信息直接保存到元数据管理系统中,应用系统通过访问接口和元模型视图对元数据进行查询、添加、修改和删除维护。从而保证了元数据的一致性。
Ø 应用系统访问元数据管理系统,首先需要通过元数据权限管理模块。只有权限管理模块的授权用户才能对元数据进行增加、修改、删除和检索。
检索方式上采用两种方式:
n 接口检索:
应用系统可以根据元数据的路径、元数据名称和元数据ID对元数据进行检索。
n 通过元数据库中的元模型视图:
为了方便与应用系统的集成,元数据管理系统提供元模型视图。应用系统可以根据拥有的元模型访问权限查询相应的元数据信息。
Ø 元数据管理系统通过生命周期管理模块对元数据进行生命周期管理。
Ø 元数据管理系统通过版本管理模块对元数据进行版本控制。
Ø 元模型创建的时候系统自动创建元模型视图。
1
2
2.1
2.3 功能图
元数据管理系统包含三大功能模块:
Ø 应用、分析模块
主要对元数据进行应用和分析。主要包括数据库管理、血统/影响分析、元数据使用情况统计、元数据质量管理、指标库管理、元数据差异分析和元数据权限管理。
Ø 元数据管理模块
主要对元数据进行维护。主要包括元数据检索、变更订阅、版本管理、元数据采集、元数据生命周期、元数据基本信息维护和元数据关系维护。
Ø 元模型管理模块
主要对元模型进行维护。主要包括元模型基本信息维护、元模型关系维护、元模型属性维护、元模型索引维护、包维护、关系类型维护、业务领域维护和枚举类型维护。
3. 功能模块
1
2
3
3.1 元模型
3.1.1 元模型维护
3.1.1.1 元模型基本信息维护
Ø 数据项:
n ID:元模型的主键。系统自动生成。
n 路径:显示模型的包路径。例org.omg.cwm.objectmodel.core.ClassifierMap
n 名称:元模型的名称。只能是字母数字和下划线。同包下不能有相同的名称。
n 显示名称:元模型的显示名称。
n 使用显示名称:复选框。选择:元模型则显示显示名称。不选:元模型则显示名称。
n 描述:用于填写元模型的描述信息。
n 使用视图:复选框。选择:创建元模型的时候,创建元模型视图。不选:只创建元模型。
n 视图名称:创建元模型视图的名称。创建时检查视图名称是否唯一。
n 备注:填写备注信息。
Ø 功能:
n 检索:检索元模型的基本信息。
n 修改:修改元模型的基本信息。
n 删除:删除元模型时,需要删除相应继承关系。
n 添加:新建元模型的基本信息。
n 应用:创建和更新元模型和元模型视图。
3.1.1.2 元模型属性维护
Ø 数据项
n 名称:属性的名称。只能是字母数字和下划线。同模型下不能有相同的名称。
n 显示名称:属性的显示名称。
n 使用显示名称:复选框。选择:属性则显示显示名称。不选:属性则显示名称。
n 类型:string、boolean、short、integer、long、float、double、date和枚举类型。
n 长度:类型的长度。
n 小数位数:小数精度。
n 是否为空:属性是否可为空。
n 是否可用:创建元模型时是否创建此属性。
n 是否显示:用于隐藏元模型属性。
n 描述:描述属性信息。
n 默认值:属性的默认值。
n 备注:填写备注信息。
Ø 功能
n 添加:添加新的属性。
n 删除:删除属性。继承的属性不能删除。
n 修改:修改属性。继承的属性不能修改。
3.1.1.3 元模型关系维护
Ø 数据项
n 名称:关系的名称。只能是字母数字和下划线。同模型下不能有相同的名称。
n 显示名称:关系的显示名称。
n 使用显示名称:复选框。选择:关系则显示显示名称。不选:关系则显示名称。
n 类型:关系类型包括 继承、依赖、聚合、组合、关联和扩展类型。
n 源端:起始的元模型。
n 目标端:结束的元模型。
n 上限:0、1、2、*
n 下限:0、1、2、*
n 描述:描述关系信息。
n 备注:填写备注信息。
Ø 功能
n 添加:添加新的关系。
n 修改:修改关系。继承的关系不能修改。
n 删除:删除关系。继承的关系不能删除。
3.1.1.4 元模型索引维护
Ø 数据项
n 名称:索引的名称。只能是字母数字和下划线。同模型下不能有相同的名称。
n 显示名称:索引的显示名称。
n 使用显示名称:复选框。选择:关系则显示显示名称。不选:关系则显示名称。
n 描述:描述索引信息。
n 是否创建:创建元模型的时候是否创建此索引。
n 备注:填写备注信息。
n 引用的属性:创建索引时用到的列。
Ø 功能
n 添加:添加新的索引 。
n 修改:修改索引。
n 删除:删除索引。
3.1.2 包维护
Ø 数据项
n 名称:包的名称。只能是字母数字和下划线。同包下不能有相同的名称。
n 显示名称:包的显示名称。
n 使用显示名称:复选框。选择:包则显示显示名称。不选:包则显示名称。
n 描述:描述包信息。
n 备注:填写备注信息。
Ø 功能
n 添加:添加新包。
n 修改:修改包信息。
n 删除包:包删除的时候,会同时删除包下面的元模型。
3.1.3 关系类型维护
Ø 数据项
n 名称:包的名称。只能是字母数字和下划线。同包下不能有相同的名称。
n 抽象:是否是抽象关系。例如:数据层关系类型。
n 显示名称:包的显示名称。
n 使用显示名称:复选框。选择:包则显示显示名称。不选:包则显示名称。
n 描述:描述包信息。
n 备注:填写备注信息。
Ø 功能
n 添加:添加关系类型。
n 修改:修改关系类型。
n 删除:删除关系类型。引用的关系类型不允许删除。
3.1.4 业务领域维护
Ø 数据项
n 名称:业务领域的名称。只能是字母数字和下划线。不能有相同的业务领域名称。
n 显示名称:业务领域的显示名称。
n 使用显示名称:复选框。选择:业务领域则显示显示名称。不选:业务领域则显示名称。
n 描述:描述业务领域信息。
n 备注:填写备注信息。
Ø 功能
n 添加:添加业务领域。
n 修改:修改业务领域。
n 删除:删除业务领域。同时删除其下的包和元模型。
3.1.5 枚举类型维护
Ø 数据项
n 基本信息
u 名称:枚举类型的名称。只能是字母数字和下划线。不能有相同的枚举类型名称。
u 允许多选:选择:页面显示复选框。不选择:页面显示单选框。
u 显示名称:枚举类型的显示名称。
u 使用显示名称:复选框。选择:枚举类型则显示显示名称。不选:枚举类型则显示名称。
u 描述:描枚举类型域信息。
u 备注:填写备注信息。
n 条目
u 名称:条目的名称。只能是字母数字和下划线。不能有相同的枚举类型名称。
u 显示名称:条目的显示名称。
u 使用显示名称:复选框。选择:条目则显示显示名称。不选:条目则显示名称。
u 值:条目的值。
u 描述:描枚举类型域信息。
Ø 功能
n 基本信息
u 添加:添加枚举类型。
u 修改:修改枚举类型。
u 删除:删除枚举类型。
n 条目
u 添加:添加条目。
u 修改:修改条目。
u 删除:删除条目。
3.2 元数据
3.2.1 元数据基本信息维护
Ø 数据项
n 名称:元数据名称。必填
n 别名:元数据别名。
n 元模型:创建元数据的类型。
n 版本状态:分为 初始建立、公示状态、审核状态、发布状态、维护状态五种状态。
n 生命周期状态:元数据的生命周期状态。
n 描述:元数据的描述信息。
Ø 功能
n 维护属性:根据元模型维护元数据的属性信息。
n 创建子节点:创建元数据基本信息。
n 删除:删除元数据基本信息。
n 修改:修改元数据基本信息同时删除元数据之间的关系信息。
n 移动:将元数据移动到其它元数据下面。两个元数据之间必须有组合关系。
3.2.2 元数据关系维护
Ø 数据项
n 源数据:起始的元数据。
n 源数据路径:起始的元数据路径。
n 目标数据:结束的元数据。
n 目标数据路径:结束的元数据路径。
n 关系类型:依赖、聚集、关联和自定义类型。
n 关系名称:元数据关系的名称。
n 显示名称:元数据关系的显示名称。
n 关系描述:元数据关系的描述信息。
Ø 功能
n 添加:添加元数据关系。只有两个元模型之间建立关系,才能添加相应的关系。例如 元模型之间建立了依赖关系,则只能添加依赖关系。不能添加关联或其他关系。
n 删除:删除关系。
n 修改:修改关系信息。
3.2.3 元数据生命周期
为了能让用户控制元数据的增加、删除、修改和移动,使得每次对元数据的操作都要经过审核。
Ø 数据项
n 生命周期配置
u 设置方式:开启所有、关闭所有、根据元模型配置
u 选择元模型:需要进行生命周期管理的元数据。
n 待审核处理
u 审核操作:通过、驳回。
u 操作状态:创建、编辑、删除和移动。
u 审核意见:填写审核意见。
Ø 功能
n 生命周期配置:维护生命周期基本设置。
n 元数据审核管理:审核元数据的操作。
n 影响分析:分析元数据改变产生的影响。
3.2.4 元数据采集
3.2.4.1 元数据导入导出
导出元数据的信息和关系。文件类型为EXCEL。
3.2.4.2 CWM导入导出
根据CWM定义XMI的规范导出元数据。这些元数据的元模型必须继承CWM定义的元模型。文件类型为XMI。
文件内容如下图:
3.2.4.3 元数据模版导出
导出元模型和关系。文件类型为EXCEL。元模型结构如下图:
关系结构如下图:
3.2.5 版本管理
元数据创建,修改和删除的时候都要保存之前版本信息。版本分为大版本和小版本。
大版本如开发、试用、正式等。小版本如开发.1,试用.2。
Ø 数据项
n 版本名:版本的名称。
n 操作者:创建版本的用户。
n 创建时间:版本的创建时间。
Ø 功能
n 新增版本:添加新的版本。
n 修改版本名:修改版本的名称。
n 删除版本:删除版本信息。
n 查询版本:可以按大版本查看历史版本信息。
n 版本比较:可以比较两个版本之间的不同。
3.2.6 变更订阅
让用户及时了解的元数据的变更情况。
Ø 功能
n 元模型订阅:用户可以根据元模型订阅变更信息。信息以短信或者EMAIL的形式发送给用户。
n 元数据订阅:用户可以根据元数据订阅变更信息。信息以短信或者EMAIL的形式发送给用户。订阅元数据的同时可以订阅元数据的下级节点。
n 已订阅列表:检索用户订阅信息列表。
n 变更通知:检索所有的变更通知。
3.2.7 元数据检索
Ø 功能
n 查询元数据:根据元数据名称检索元数据。
n 高级查询:提供区分大小写设置、完全匹配设置、指定搜索目录和元模型搜索等查询条件。
3.3 应用
3.3.1 元数据权限管理
权限管理模块主要管理三种资源 系统功能菜单、元数据元模型操作和元模型视图。体系结构如下图:
3.3.1.1 用户管理
Ø 数据项
n 用户名:用户的帐号信息。
n 别名:用户的显示名称。
n 密码:用户登录时显示的密码。
n 描述:用户的描述信息。
n Email:用户的email。变更订阅模块需要使用Email。
n 角色:用户所拥有的角色信息。
Ø 功能
n 添加用户:添加新的用户。
n 编辑:编辑用户信息。
n 删除:删除用户信息。
n 修改密码:修改用户密码。
3.3.1.2 角色管理
Ø 数据项
n 角色名称:角色的名称。
n 描述:角色的描述信息。
n 权限设置:用于设置系统功能资源的访问权限。
Ø 功能
n 添加角色:添加新的角色。
n 编辑:编辑角色信息。
n 删除:删除角色信息。
3.3.1.3 系统功能资源
Ø 数据项
n 资源名称:资源的名称
n 父资源:上级资源。
n 提示信息:资源的提示信息。
n 值:功能的访问路径。
Ø 功能
n 添加:添加新的资源。
n 编辑:编辑菜单
n 删除:删除菜单。
3.3.1.4 元数据操作权限
元数据权限分为 浏览、查看、创建子节点、修改、删除。
Ø 功能
n 浏览:可以在元数据树形结构中看到元数据。
n 查看:可以查看元数据的详细信息。
n 创建子节点:可以创建元数据的下级元数据。
n 修改:修噶元数据的基本信息和属性信息。
n 删除:删除元数据。
n 禁用:禁用浏览、查看、创建子节点、修改、删除权限。
n 子节点继承:子节点继承当前节点的权限。
n 继承父节点权限:继承上级节点的权限。
Ø 页面
3.3.1.5 数据库用户维护
通过对数据库用户访问视图的权限设定,来维护应用系统可访问的元模型视图。
Ø 数据项
n 用户名:数据库的用户名。
n 描述:描述数据库用户。
n 元模型视图:用与设置用户可访问的视图。
Ø 功能
n 添加:添加新的数据库用户。
n 修改:修改数据库用户。
n 删除:删除数据库用户。
3.3.2 数据库管理
3.3.2.1 表维护
3.3.2.1.1 表基本信息维护
Ø 功能
n 添加:添加表的元数据信息。
n 修改:修改表的元数据信息。
n 删除:删除表的元数据信息。
n 同步:在数据库中创建或更新相应表。
n 删除库表:删除数据库中的表。
n 建表语句解析:解析建表语句,生成相应元数据。
3.3.2.1.2 字段维护
Ø 功能
n 添加:添加字段的元数据信息。
n 修改:修改字段的元数据信息。
n 删除:删除字段的元数据信息。
3.3.2.1.3 索引维护。
Ø 功能
n 添加:添加索引的元数据信息。
n 修改:修改索引的元数据信息。
n 删除:删除索引的元数据信息。
3.3.2.2 视图维护
3.3.2.2.1 视图基本信息维护
Ø 功能
n 添加:添加视图的元数据信息。
n 修改:修改视图的元数据信息。
n 删除:删除视图的元数据信息。
n 创建视图:创建数据库中的视图。
n 删除视图:删除数据库中的视图。
3.3.2.2.2 视图字段维护
Ø 功能
n 添加:添加字段的元数据信息。
n 修改:修改字段的元数据信息。
n 删除:删除字段的元数据信息。
3.3.2.3 SQL语句查询
Ø 功能
n 查询:通过sql语句查询数据库表中的数据。
3.3.2.4 存储过程维护
Ø 功能
n 添加:添加存储过程的元数据信息。
n 修改:修改存储过程的元数据信息。
n 删除:删除存储过程的元数据信息。
3.3.2.5 表空间维护
Ø 表空间信息
n 添加:添加表空间的元数据信息。
n 修改:修改表空间的元数据信息。
n 删除:删除表空间的元数据信息。
Ø 存储文件信息
n 添加:添加存储文件的元数据信息。
n 修改:修改存储文件的元数据信息。
n 删除:删除存储文件的元数据信息。
3.3.2.6 数据库用户维护
Ø 功能
n 添加:添加数据库用户的元数据信息。
n 修改:修改数据库用户的元数据信息。
n 删除:删除数据库用户的元数据信息。
3.3.3 血统、影响分析
3.3.3.1 血统分析
3.3.3.1.1 图形展示
用图形的形式展示数据的流向。如图
3.3.3.1.2 表格展示
用表格的形式展示数据流向。如图
支持EXCEL导出。如图
3.3.3.2 影响分析
元数据的改动对其它元数据产生的影响。
3.3.3.2.1 图形展示
用图形的方式展示元数据改动对其它元数据产生的影响。
3.3.3.2.2 表格展示
用表格的形式展示影响。如图
支持excel导出如图
3.3.4 元数据使用情况统计
3.3.4.1 元数据浏览用户统计(按用户)
通过分析每一个用户在一段时间内浏览元数据的次数,可用于分析哪一些用户在经常关注、使用元数据
Ø 功能
n 可查询在一段时间内全部用户的浏览次数统计,显示内容应包括用户账号、用户名称、浏览次数、浏览排名。“浏览次数”是链接,可链接查看元数据的明细信息。
n 可在“浏览次数”中链接查看单个用户浏览元数据的明细信息,显示内容应包括元数据名称、元数据类型,访问时间。
3.3.4.2 元数据浏览用户统计(按元数据类型)
通过统计每一类元数据在一段时间内被浏览的次数,可用于分析哪一些元数据是用户最为关注的。
Ø 功能
可查询在一段时间内所有元数据类型的浏览次数统计,显示内容包括元数据类型、浏览次数、浏览排名。“浏览次数”是链接,可链接查看元数据的明细信息。
n 可在“浏览次数”中链接查看单类元数据被浏览的明细信息,显示内容包括元数据名称、浏览用户、访问时间。
3.3.5 元数据质量管理
3.3.5.1 属性填充率
Ø 功能
n 用于检查元模型的所有元数据属性填写情况。
n 计算公式如下:(∑参与检查的各属性非空记录数/(某类型实体总数×参与检查的属性个数))×100
n 当填充率超过80%时,字体显示为绿色,低于30%显示为红色,两者中间显示为黑色。
n 检查完毕之后,结果能以“XSL”,“DOC”,“PDF”格式导出。
3.3.5.2 属性合法性
Ø 功能
n 检查元数据的属性是否唯一
即是否有两个或以上元数据的某项属性相同,例如:元数据a和元数据b的属性attribute1都为1,勾选attribute1检查其唯一性,这两个元数据a,b都将被搜索出来。
n 检模元数据的属性是否非空
即是否有元数据的值非空,例如:元数据a和元数据b的属性attribute1都不为空,勾选attribute1检查其非空值,这两个元数据a,b都将被搜索出来。
n 检查完毕之后,结果能以“XSL”,“DOC”,“PDF”格式导出。
3.3.5.3 名称重复性
Ø 功能
n 此功能用以检查某个包或元模型下的所有元数据是否同名。
如果勾选的是包,则表示检查其下所有元模型的元数据是否有同名,例如:包“aaa”下元模型“model4”有一元数据名为“a”,同时包“aaa”下元模型“model5”有一元数据亦为“a”,则这两个元数据将被检查出来。
n 检查完毕之后,结果能以“XSL”,“DOC”,“PDF”格式导出。
3.3.6 指标库管理
指标库是指元数据库中与指标相关的元数据的集合,类别包括指标元数据和维度元数据。
Ø 功能
Ø 支持指标命名规范性检查、指标模型规范性检查,提供相关统计分析和报表功能。如:提供具有相似名称指标的列表,在指定范围内,列出不符合指标命名规范、指标模型规范的指标列表。
Ø 提供指标库的版本管理功能。支持对指标库设定版本号、支持对不同版本的指标库差异比较和支持对指定版本的指标库进行查询操作。
Ø 查询的对象包括:核心指标名称、核心指标业务描述、报表名称、报表描述、报表指标名称、报表指标业务定义、报表指标技术统计口径进行查询、修订时间。
3.3.7 元数据差异分析
分析两个元数据属性之间的差异。
3.3.7.1 流程差异比较
3.3.7.2 属性差异比较
列出具有相同的属性。属性值不同则背景用红色表示。
4. 内部接口调用标准
4
4.1 元数据服务接口(MetadataService)
元数据服务。对元数据进行增删改和查询等操作。
Ø Public MetaData create(MetaData data)
创建元数据。
Ø Public MetaData create(MetaData data,String path)
在指定的路径下创建数据。
Ø Public List createBatch(java.util.List datas)
批量创建元数据,返回成功创建的记录。
Ø Public Boolean delete(MetaData data)
删除元数据。
Ø Public Boolean delete(String dataId)
根据元数据ID删除元数据。
Ø Public MetaData update(MetaData data)
更新元数据。 该方法不能修改parentId、modelId。
Ø Public boolean move(MetaData thisData, MetaData newParentData)
移动元数据,将thisData移动到newParentData下面。
Ø Public boolean move(String dataId, String newParentId)
移动元数据,将dataId移动到newParentId下面。
Ø Public List getDataList(List dataIds)
批量根据ID获取元数据。
Ø Public List getDatas(String modelId)
获取指定模型的所有元数据。
Ø Public List getDatas(String modelId, int start, int count)
分页获取指定模型的所有元数据。
Ø Public String getPath(String dataId)
获取元数据的路径,以字符串数组的形式返回,路径不包含domain。
Ø Public String getPath(String dataId, boolean includeDomain)
获取元数据的路径,以字符串数组的形式返回。
Ø Public MetaData getRoots()
获取元数据的根节点。
Ø Public List getSources(String targetDataId,List rtIds)
获取与指定元数据有rtIds列表中任一类型的关系的元数据列表(根据target获取source)。
Ø Public List getTargets(String sourceDataId, List rtIds)
获取与指定元数据有rtIds列表中任一类型的关系的元数据列表(根据source获取target)。
4.2 元数据版本服务接口(MDRevisionService)
元数据版本服务,对单个元数据的历史版本进行查询。
Ø Public List getLatestRevisions(Date startDate, Date endDate, int start, int count)
获取一段时间内数据的最新版本列表(同一数据的版本只返回最新的那个)
Ø Public List getLatestRevisions(List modelIds, Date startDate, Date endDate, int start, int count)
获取一段时间内数据的最新版本列表(同一数据的版本只返回最新的那个)
Ø Public MDRevision getRevision(String revisionId)
根据ID获取元数据版本。
Ø Public List getRevisionsByDate(String dataId, Date startDate, Date endDate)
获取数据在一段时间内的版本。
Ø Public List getRevisionsCountByDate(String dataId, long startTime, long endTime)
获取数据在一段时间内的版本总数。
4.3 元数据关系服务接口(MDRelationService)
数据关系服务,用于对数据间的关系进行操作。
Ø Public boolean canBuildDRelation(String data1,String data2, String rtId)
两个数据间是否可以建立指定类型的关系。
Ø Public MDRelation create(MDRelation dr)
创建数据关系。
Ø Public List createBatch(List mdrs)
批量创建数据关系。
Ø Public boolean delete(MDRelation dr)
删除数据关系。
Ø Public boolean delete(String id)
删除数据关系。
Ø Public List getAllDRelations()
获取所有的数据关系。
Ø Public List getAllDRelationsBetween2Data(String data1, String data2)
获取两节点间的所有数据关系的列表。包括从 data1 到 data2 和 data2 到 data1 的关系。
Ø Public List getAllSourceDRelations(String tarDataId)
获取数据的所有源关系的列表。
Ø Public List getAllTargetDRelations(String srcDataId)
获取数据的所有目标关系的列表。
Ø Public MDRelation update(MDRelation dr)
更新数据关系。
Ø Public void updateSourceRelations(String tarDataId, List srcDataIds, String rtId)
同步指向源的某一类型关系。把原来多的删除掉,新的增加进去。
Ø Public void updateTargetRelations(String srcDataId, List tarDataIds, String rtId)
同步指向目标的某一类型关系。把原来多的删除掉,新的增加进去
5. 外部工具接口标准
元数据管理系统使用REST风格的Web服务作为元数据操作的外部交互接口,服务端提供唯一的资源定位地址URI供客户端调用。客户端通过HTTP方法实现对资源的唯一操作,HTTP方法主要包括GET、PUT、POST和DELETE方法。
在元数据交互过程中,客户端通过调用基于REST的服务接口,将请求消息通过HTTP协议发送给服务端。服务端接收到客户端的请求消息后,通过REST解析、权限验证、映射转换和XML解析等模块的处理,最终通过接口实现与元数据库数据的交互。基于REST的Web服务的交互模式采用在线请求-同步响应方式。
Ø REST解析
客户端通过HTTP协议,向服务端传入一个REST请求,其中包含HTTP协议头和XML格式的元数据服务原语。服务端解析分离HTTP头和XML格式元数据服务原语,其中从HTTP头中得到URI,从XML格式元数据服务原语分离出消息头和消息体。
Ø 权限验证
服务端完成REST解析后,根据元数据服务原语消息头中的用户信息,调用服务管理的认证鉴权和权限管理模块,检查用户是否有访问元数据功能的权限。
Ø 映射转换
服务端完成权限验证后,根据元数据与URI的映射关系和REST请求中的URI,最终得到要访问元数据的ID。
Ø XML解析
XML解析对REST解析后的服务原语进行再次解析,得到消息体中的元数据信息部分。
5
5.1 获取元数据信息
Ø URL
http://ip:port/RESTFUL /metadata_path
http://ip:port/ RESTFUL /metadata_id
Ø 格式
XML
Ø HTTP请求方式
GET
Header:
Accept: application/xml
User-ClientID: {username}
User-Password: {password}
Ø 返回结构
<Message>
<HeaderResq>
<RespResult>应答执行结果类型</RespResult>
<RespTime>应答时间</RespTime>
<RespCode>应答/错误代码</RespCode>
<RespDesc>应答/错误描述</RespDesc>
</HeaderResq>
<BodyResp>
<RespData>
<metadata>
<id></id><!--元数据ID-->
<modelId></modelId><!--元模型ID-->
<name></name><!--元数据名称-->
<displayName></displayName><!--显示名-->
<parentId></parentId><!--父节点ID-->
<path></path><!--元数据路径-->
<attributeList><!--属性列表-->
<attribute>
<name></name><!--属性名-->
<value></value><!--属性值-->
</attribute>
<attribute>
<name></name>
<value></value>
</attribute>
...
</attributeList>
</metadata>
</RespData>
</BodyResp>
</Message>
5.2 新增元数据信息
Ø URL
http://ip:port/RESTFUL/metadata_parent_path
http://ip:port/ RESTFUL/metadata_parent_id
Ø 格式
XML
Ø HTTP请求方式
Post
Header:
Accept: application/xml
Content-Type: application/xml;utf-8
Ø 请求数据
<Message>
<HeaderReq>
<User>
<ClientID>用户ID</ClientID>
<Password>用户口令</Password>
</User>
<System>
<ReqSource>请求来源</ReqSource>
<ReqTime>请求时间</ReqTime>
</System>
<Route>
展开阅读全文