数据总线技术框架说明

1 描述以及约定

1.1 约定

1.1.1 应用,在本文中的应用是指一个application,他可以是一个windows 应用程序,也可以是一个web 站点,也可以是一个移动终端应用程序。

1.1.2 ws服务,在文本中是指Web Services服务

1.1.3 CXF类库,是指Apache CXF Services Framework http://cxf.apache.org/

1.2 问题的提出

现在的企业中存在各种应用(系统)和各种数据存储需求,但是各个应用之间的数据不能实现可控的数据共享,而且各个应用之间由于涉及到开发技术以及和环境的限制也为企业的数据共享设置了障碍,这种现状阻碍了企业各个应用之间和数据交换和共享,也阻碍了企业对数据可控,数据管理,数据安全方面的需求,那么我们就需要有一种具有无关平台,无关应用,无关空间逻辑的一种数据集成和分配的系统,来管理企业现有的数据调用-数据总线

1.3 数据总线定义

数据总线(DataBus)是集成各个原始数据库并对外提供一种有规则的,可控的数据链接存储服务

1.4 实现目标

1.4.1 集成原始数据库,能够对现有的数据库进行添加,删除操作

1.4.2 对外进行数据存储服务功能,能够对外部数据存储服务,包括数据查询,数据删除,数据修改,数据存储过程以及函数的执行

1.4.3 对应用来源(访问者)进行管理,能够对应用来源进行添加,启用,停用,授权,更改授权,删除等操作

1.4.4 能够新增,删除,修改API函数,能新增,修改,删除,启用,停用API函数,以实现对外部调用的响应的逻辑控制,这些API的类型包括数据库的查询,修改,删除,存储过程以及函数执行等数据库操作

1.4.5 对访问者的操作可控,能够对访问者的进行权限控制,包括查询,修改,删除操作的库范围,表范围,行范围,列范围的的执行权限,以及对访问的操作的时间进行控制,如可以对来源为新企的应用定义为只能在数据库A的ta,tb表进行全时段的访问,而对于表tc,td可以在12:00到18:00进行修改和删除操作

1.4.6 对访问记录可查询,可监控,能够对各个访问者的操作记录进行历史查询,和实时的监控访问者的操作

1.4.7 连接安全措施,能有有效的加密连接,保证即使网络被监听情况也能保证数据的安全性,完整性,可校验性

1.4.8 跨平台,跨语言,跨空间特性,能有效的支持任何平台和任何语言的远程调用

1.4.9 数据安全隔离,能够有效的隔离访问者对数据的直接操作,保证数据的安全性

2 技术框架

2.1 总线程序物理层级架构

clip_image004

2.2 总线程序物理拓扑结构

clip_image006

2.3 总线程序架构逻辑模块层级视图

clip_image008

2.4 总线程序架构数据流逻辑视图

clip_image010

3 程序模块说明

3.1 模块图示

clip_image012

3.2 服务宿主API

3.2.1 公共查询模块

3.2.1.1 描述,公共查询模块,负责查询现有API实例,包括状态,函数参数说明,示例代码,服务控制人,调用方等信息

3.2.1.2 实现逻辑,主要根据系统中的API对外提供查询服务,让调用方能够得到技术支持

3.2.2 API实例管理模块

3.2.2.1 描述,API实例管理模块,负责管理API实例的发布,启用状态,访问信息,访问权限控制,状态查询等

3.2.2.2 实现逻辑,通过API实例管理模块实现API实例的维护,控制等,能有让管理员控制API实例

3.2.3 API接口及类生成模块

3.2.3.1 描述,API接口及类生成模块,能够根据管理模块的指令生成API发布所需的接口和类的Java代码

3.2.3.2 实现逻辑,根据程序的接口定义以及通用类来实现,自动生成可编译的Java代码

3.2.4 Java及时编译模块

3.2.4.1 描述,Java及时编译模块,能够根据指定的Java文件和构建路径,编译Java代码为Class或是Object

3.2.4.2 实现逻辑,使用jdk提供的JavaCompiler,采用重写SimpleJavaFileObject,ForwardingJavaFileManager,URLClassLoade的方式自定义编译java代码为Class,使用DynamicClassLoader实现动态实例对象

3.2.5 API函数构造模块

3.2.5.1 描述,API函数构造模块,能够实现API函数的构造和发布功能,可将构造的API函数发送的API宿主模块

3.2.5.2 实现逻辑,使用CXF类库提供的ServerFactoryBean构造服务元,并在构造过程中添加拦截器回调和访问逻辑,以实现安全功能

3.2.6 API对外服务宿主模块

3.2.6.1 描述,API对外服务宿主模块,能提供webServices服务让外部从指定的入口点进行访问,从而提供服务

3.2.6.2 实现逻辑,通过构建模块构建ServerFactoryBean,使用Create产生Server,配置按照构建模块的定义配置Endpoint,实现ws服务来提供外部访问

3.2.7 访问及安全控制模块

3.2.7.1 描述,访问及安全控制模块为API宿主模块的回调,它按照安全连接的规则定义,进行安全认证,可实现x509证书,UserToken,自定义密匙的方式的认证

3.2.7.2 实现逻辑,按照API宿主模块定义的Endpoint的InInterceptor,OutInterceptor的回调,来实现输出和输入的认证和处理

3.2.7.3 图示
clip_image014

3.3 规则逻辑层

3.3.1 逻辑控制管理模块

3.3.1.1 描述,此模块能够维护逻辑规则,添加,删除,启用,停用逻辑规则层,以及获取逻辑规则宿主的运作状态实时信息和日志

3.3.1.2 实现逻辑,通过配置逻辑规则宿主的入口和各个逻辑规则层实现逻辑规则的控制,通过调用状态监控模块实现状态和日志的读取

3.3.2 逻辑规则生成模块

3.3.2.1 描述,能够响应逻辑控制模块的调用,生成逻辑规则控制模块的指定的控制规则,并添加的逻辑控制宿主,实现逻辑规则的添加

3.3.2.2 实现逻辑,根据程序定义的接口和通用类生成规则类的实例,并添加到逻辑控制宿主

3.3.3 逻辑规则控制宿主模块

3.3.3.1 描述,此模块能提供唯一入口点,供外部调用,并通过工厂反射的模式,松耦合的形式调用顺序的调用逻辑规则层,每一个逻辑规则层会按照程序定义接口进行执行并返回

3.3.3.2 实现逻辑,通过唯一的入口点调用实现集成控制,并在入口点执行环境通过ClassLoader来实例规则层并且调用来实现规则的控制

3.3.4 逻辑规则状态监控模块

3.3.4.1 描述,此模块通过逻辑规则控制宿主模块入口的回调来实现状态的读取,并记录日志信息,以实现所有操作的可回溯

3.3.4.2 实现逻辑,此模块定义唯一无阻拦式回调函数,供宿主模块入口点回调,通过函数的回调信息,获取当前状态并记录和处理

3.4 数据连接管理模块

3.4.1 数据连接管理模块

3.4.1.1 描述,此模块能够管理数据数据库实例的挂载和卸载,数据库驱动的添加,并调用数据连接模块实现数据库操作的挂起

3.4.1.2 实现逻辑,通过配置指定的数据库实例信息和开关,以供连接模块的调用,来实现连接数据库的控制

3.4.2 数据连接模块

3.4.2.1 描述,此模块指定唯一的入口点供调用来实现数据库的操作

3.4.2.2 实现逻辑,通过管理模块配置信息和入口调用信息,来判断数据库的连接类型并动态载入连接驱动,通过驱动模块操作数据库

3.5 客户端连接

3.5.1 连接方式,客户端通过soap协议,调用API实现数据库的访问

3.5.2 访问安全,客户端通过私匙(或证书)加密,IP,MAC,密码信息到服务端,服务端认证后提供服务,客户端接受传入连接需要验证通过客户端私匙加密服务端的IP,MAC,密码信息,这样就是实现了传入和传出安全验证

3.5.3 通过平台化,客户端提供各种语言(。Net,java,VC)的帮助类库,辅助客户端完成访问,客户端可以完全不关心实现逻辑(当然客户也可以自定义访问,以为soap协议是通用的)

4 大致技术细节定义和约定

4.1 接口约定

4.1.1.1 clip_image016

4.1.1.2 实现方式,通过API函数的参数实现传入参数的指定,当执行结果为数据集的时候返回DataTableResult,当执行单值返回结果是返回SingleResult,当执行无返回结果是返回VoidResult

4.1.2 传入参数控制,每个函数的传入参数必须的原子数据类型,int,string等

4.1.3 大数据量性能控制,系统单次最大返回的数据元素数量为5000行*500列,以避免程序形成资源锁

4.1.4 异常控制,在系统中会使用外围异常控制,所以不会导致程序崩溃,程序会打印所有异常信息到异常信息记录中,以被查阅和调试

4.1.5 系统稳定性,需测试最高压力为企业实际业务数据量的3-5倍数据请求压力验证

4.2 可扩展性约定

4.2.1 能够在不更改系统逻辑框架的范围内,进行后期开发,并为后期开发预留可扩展接口和模块

5 总结

5.1 数据总线系统能有效的解决企业数据管理松散,数据共享,数据安全,系统整合,跨平台及跨语言应用等方面带来的数据库访问,以及数据安全的问题

5.2 数据总线可以看做所有数据库的代理服务器,导致企业的IT应用都是通过数据总线进行数据库操作,所以会降低企业IT应用的性能上限,同时也有可能导致由于总线服务器出错,导致所有IT应用都无法访问的的风险

6 参考

6.1 《Java软件开发》(美)Sartaj Sahni,Raj Kumar 中国水利水电出版社

6.2 《Java高级编程:JDK5》(美)理查德森 等著,沈文炎 机械工业出版社

6.3 Apache CXF http://cxf.apache.org/

6.4 WSS4J http://baike.baidu.com/view/3184209.htm http://ws.apache.org/wss4j/

/Files/Rolends/数据总线文档.doc

猜你喜欢

转载自weitao1026.iteye.com/blog/2359473