数据总线技术框架说明

2024-03-18 18:32

本文主要是介绍数据总线技术框架说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

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

这篇关于数据总线技术框架说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/823251

相关文章

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python GUI框架中的PyQt详解

《PythonGUI框架中的PyQt详解》PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场... 目录一、PyQt核心模块概览二、核心模块详解与示例1. QtCore - 核心基础模块2. QtWid

Nginx指令add_header和proxy_set_header的区别及说明

《Nginx指令add_header和proxy_set_header的区别及说明》:本文主要介绍Nginx指令add_header和proxy_set_header的区别及说明,具有很好的参考价... 目录Nginx指令add_header和proxy_set_header区别如何理解反向代理?proxy

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

JAVA SE包装类和泛型详细介绍及说明方法

《JAVASE包装类和泛型详细介绍及说明方法》:本文主要介绍JAVASE包装类和泛型的相关资料,包括基本数据类型与包装类的对应关系,以及装箱和拆箱的概念,并重点讲解了自动装箱和自动拆箱的机制,文... 目录1. 包装类1.1 基本数据类型和对应的包装类1.2 装箱和拆箱1.3 自动装箱和自动拆箱2. 泛型2