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 总线程序物理层级架构

2.2 总线程序物理拓扑结构

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

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

3 程序模块说明

3.1 模块图示

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 图示

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

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

数据总线技术框架说明相关推荐

  1. 灵狐系统不能找到数据库服务器,企业数据总线技术架构说明.docx

    数据总线技术框架说明(转) 目录 描述以及约定 1.1 约定 1.1.1 应用,在本文中的应用是指一个 application ,他可以是一个 windows 应用程 序,也可以是一个 web 站点, ...

  2. 产品经理必了解的3个app技术框架

    在现在越来越多的app,你可以看到有一些app中是混着网页加载的(我们俗称的为H5)但要注意的web 前端开发是包含着h5的.web前端开发还包括了许多内容,比如说后台html,css,div等都是属 ...

  3. 微软一站式开发技术框架解决方案 年内展望

    微软一站式开发技术框架解决方案 (CodeFx) 自成立至今已有半年.在这半年里,我们完成了130个代码示例,主要覆盖了COM.数据访问.库加载.进程间通信.Office开发.WinForms等技术. ...

  4. XBodhi(技术框架)——序

    XBodhi 的起源 是由本人2013年编写,名字经过 OOEF,System等等变更,在代码急剧缩减和优化最后经过4年时间确定了名字为 QiaoHY.XBodhi 随着时间的关系并没有进行完善,也只 ...

  5. 创业互联网公司如何搭建自己的技术框架

    创业互联网公司如何搭建自己的技术框架 适用范围 本文主要针对小型互联网公司,特别适用于手机APP的后台架构,基本可以支撑5万日活 本文会对可能用到的相关技术进行技术选型的说明,以及相对应的设备的采购. ...

  6. CodeFx: 微软一站式开发技术框架解决方案 2009-7-30 新增sample code简介

    微软一站式开发技术框架解决方案 2009年7月30号更新: http://cfx.codeplex.com/Wiki/View.aspx?title=All-In-One%20Code%20Frame ...

  7. 强烈推荐——微软一站式开发技术框架 All-In-One Code Framework (CodeFx)

    如果您是第一次听说All-In-One Code Framework这个项目,请参阅主页上的相关介绍http://cfx.codeplex.com/,以及这两篇blog CodeFx:一站式微软开发技 ...

  8. 耗时1年的前端技术框架切换之旅

    本文分享自华为云社区<记一次难忘的前端技术框架切换之旅[WEB前端大作战]>,原文作者:一颗白菜 . 一.旅行之始 2020年初,某个普通的工作日,正在聚精会神"搞事情" ...

  9. CodeFx: 微软一站式开发技术框架 2009-10-18 最新版本新鲜出炉啦!!!

    微软一站式开发技术框架2009年10月18日更新.下载地址: http://cfx.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34431 ...

  10. 基础的APP技术框架,UI设计师必知!

    App技术框架原理,能更有效地帮助我们预判哪些方案可行和实现效果较好,来让设计方案更接地气,让我们一起来了解一下App技术框架都有哪些. 一.App技术框架的类型 1)Native App: 一种基于 ...

最新文章

  1. springboot 加载配置信息(静态)
  2. mysql 字符串有有乱码 转码_第09期:有关 MySQL 字符集的乱码问题
  3. laravel框架集成PHPExcel讲解及demo
  4. jsp标记之动作标记介绍
  5. powerdesigner总结
  6. python函数拟合求导_python – 使用scipy curve_fit通过两个数据点拟合指数函数
  7. python string_Python String casefold()
  8. C# Parse和Convert的区别分析
  9. 使用C#代码实现增加用户帐号
  10. 6、python基础:文件输入输出详解
  11. 服务器搭建nginx集群
  12. tftp 速度_PXE网络启动实战(第三篇 使用iPXE来提高PE启动速度)
  13. 开源资产管理软件OCS Inventory 实践
  14. 中企海外周报 | 华晨与力帆合作在乌拉圭建厂;奇瑞在沙特发布全新SUV
  15. linux下Ubuntu交叉编译boost源码编译
  16. matlab 安装出来封面就没了,基于Matlab的计算报告书封面生成方法及计算机存储介质与流程...
  17. 一文看懂为什么边缘计算是大势所趋
  18. FME2018软件安装
  19. MATLAB~~~描绘散点图函数scatter
  20. 余热回收系统:ORC低温余热发电原理

热门文章

  1. 谷歌浏览器控制台使用
  2. 如何区分网线是几类的_网线如何区分五类线、超五类线和六类线?
  3. error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“:
  4. 自我介绍及阅读与思考及未来的期望
  5. Python笔记 之 dict模块
  6. 华为荣耀黑科技,打造震撼AI智能机
  7. 2017年笔记本计算机行业,2017笔记本电脑最新排行榜
  8. 牛客 检测命令是否正确
  9. 计算机怎么输入2的15次方,Word 2的15次方怎么打
  10. 湖北大学知行学院考研计算机,我院2016届毕业生考研喜创佳绩