CN103957173B - 语义交换机 - Google Patents
语义交换机 Download PDFInfo
- Publication number
- CN103957173B CN103957173B CN201410206984.9A CN201410206984A CN103957173B CN 103957173 B CN103957173 B CN 103957173B CN 201410206984 A CN201410206984 A CN 201410206984A CN 103957173 B CN103957173 B CN 103957173B
- Authority
- CN
- China
- Prior art keywords
- semantic
- submodule
- module
- switch
- semanteme
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明提供一种语义交换机,语义交换机采用基于REST的无状态传输的分布式计算架构,其工作在应用层协议之上的语义层,包括:接收端网络/传输层数据处理模块、应用层协议解析模块、接收端语义预处理模块、语义处理引擎、发送端语义预处理模块、应用层协议封装模块、发送端网络/传输层数据处理模块、运行时数据库和日志审计模块。语义处理引擎包括语义解析子模块、语义防火墙子模块、语义处理子模块、语义处理程序、负载均衡子模块和配置子模块,配置子模块中定义本体描述与关系描述;运行时数据库采用非关系数据库集群,语义处理程序为客户依据客户业务逻辑编写的程序。优点为消除传统信息系统的烟道模型,实现多平台异构系统的数据共享。
Description
技术领域
本发明属于数据处理技术领域,具体涉及一种语义交换机。
背景技术
当前企业信息系统的标准架构就是采用以关系型数据库为核心,通过中间件与Web服务器构建的三级架构。关系型数据库成为企业计算与数据管理的核心部件。但是,采用关系型数据库为企业信息系统带来许多弊端:(1)关系型数据库成为企业业务计算的瓶颈:由于关系型数据库的处理能力聚集在核心服务器与小型机上,虽然可以采用提升服务器的处理能力或者集群的方式,但是在处理大数据(PByte)的时候会造成性能瓶颈。(2)关系型数据库为紧耦合信息系统:由于关系型数据库的设计需要在IT系统开发前就互相关联的数据结构进行严格的定义,并在此基础上开发企业信息系统的各种部件与模块。这种紧耦合系统不便于系统升级改进,每一次的企业业务变化均需要重新开始设计,导致维护与升级成本太高。
另外,现代企业信息系统还具有以下问题:(1)现代企业信息系统均为烟道系统,通常:生产系统、办公系统、财务系统、人力资源系统等系统均是独立开发的烟道系统,互相既不能共享数据又不能共享方法。(2)现代企业信息系统的安全性受到挑战:由于企业核心资产都集中在核心数据库中,企业的数据库已经成为企业信息系统的心脏,一旦被渗透将造成灾难性影响。而企业数据库开发人员并不具备足够的安全知识以开发基于安全代码实现的信息系统,从而造成企业信息系统的安全漏洞层出不穷。(3)开发成本高:传统的企业信息系统的开发过程非常复杂,需要通过需求分析、系统分析、概要设计、详细设计、代码编程、质量验证等几个阶段。而且在开发完成后,一旦客户需求改变则需要重新开始上述的整个开发流程。同时由于现在的应用系统大量采用关系型数据库,因此针对新的需求将无可避免的改造现有的关系型数据库的结构,而针对紧耦合关系型数据库的任何修改都会加大数据库系统的风险。(4)维护成本高:现有信息系统的开发模型形成的烟道系统造成了各个应用系统相互独立,其维护成本非常高。(5)网络、应用、内容、安全、存储技术之间的鸿沟:传统的信息系统将网络部署、应用开发、内容生产、信息安全、数据存储隔离开来,形成了信息系统五个核心要素之间的鸿沟。这些鸿沟给信息系统开发和维护造成非常高的成本。
发明内容
针对现有技术存在的缺陷,本发明提供一种语义交换机,将其应用于企业信息系统时,可有效解决上述技术问题。
本发明采用的技术方案如下:
本发明提供一种语义交换机,所述语义交换机采用基于REST的无状态传输的分布式计算架构,其工作在应用层协议之上的语义层,包括:接收端网络/传输层数据处理模块、应用层协议解析模块、接收端语义预处理模块、语义处理引擎、发送端语义预处理模块、应用层协议封装模块、发送端网络/传输层数据处理模块、运行时数据库和日志审计模块;
其中,所述接收端网络/传输层数据处理模块用于接收来自应用层请求端的基于各类应用层协议以及各类型数据交换格式的请求消息,并对所述请求消息进行安全预处理,得到处理后的请求消息,然后将所述处理后的请求消息发送到所述应用层协议解析模块;
所述应用层协议解析模块为针对请求端的协议代理,用于对接收到的基于各类应用层协议的所述请求消息进行协议解析,将请求端的基于各类应用层协议的应用层会话转换为能够被所述接收端语义预处理模块识别的请求消息,并将转换后的请求消息发送到输入队列;
所述接收端语义预处理模块用于读取所述输入队列中的请求消息,并对所述请求消息进行语义预处理,将请求消息统一转换为内部使用的JSON格式语义消息,然后将所述JSON格式语义消息发送到JSON内部消息队列;
所述语义处理引擎包括语义解析子模块、语义防火墙子模块、语义处理子模块、语义处理程序、负载均衡子模块和配置子模块;其中,所述语义解析子模块、所述语义防火墙子模块、所述语义处理子模块和所述负载均衡子模块顺次连接,所述语义处理程序的输出端与所述语义处理子模块的输入端连接,并且,所述语义处理子模块的输出端还与所述运行时数据库连接;所述配置子模块分别与所述语义解析子模块、所述语义防火墙子模块、所述语义处理子模块和所述负载均衡子模块连接;
所述配置子模块中定义本体描述与关系描述;
所述本体描述用于定义本语义交换机的各类属性,包括:本体运行时数据库格式、本体认可的应用层协议与数据交换格式、本体所属的服务池的统一资源名URN、本体所属的服务池所包含的各组员的IP、本体的语义防火墙规则;其中,服务池为由相同功能的语义交换机组成的用于完成同一个语义操作的语义交换机集群;
所述关系描述用于定义本语义交换机与其他关系节点之间的关系模型和数据传输接口;其中,所述关系节点包括单个关系语义交换机、关系服务池或者应用服务器;所述关系描述具体定义以下信息:关系节点的应用层协议和关系节点的数据交换格式;其中,当关系节点为关系服务池时,还定义分别针对每个关系服务池的负载均衡模式、健康检查方式以及所述关系服务池中各成员节点IP;
所述运行时数据库采用非关系数据库集群,用于将语义处理引擎所产生的信息条目以JSON格式保存数据记录,并且,每一条数据记录具有唯一的记录ID;该记录ID作为URI的标记可以被访问;
所述语义解析子模块用于对JSON内部消息队列中待处理的某条消息进行解析,获取以下信息:该条消息的源IP、运行时数据库ID、针对运行时数据库的操作动作CRUD、消息内容和记录ID;其中,所述针对运行时数据库的操作动作CRUD包括创建新记录、查询记录、更新记录和删除记录;然后将获取到的上述消息组合为一条内部语义消息,并将该内部语义消息发送到内部语义消息队列;
所述语义防火墙子模块用于对所述内部语义消息队列中各条语义消息进行语义规则过滤,依据配置子模块中设定的语义防火墙规则判断该条语义消息是否可以执行,如果不能被执行,则阻断语义消息的下一步工作并通知应用层代理取消本次会话;如果可以被执行,则将该条语义消息发送给所述语义处理子模块;
所述语义处理程序为客户依据客户业务逻辑所编写的程序,通过编写不同的程序,可使本语义交换机具有不同的业务处理功能;并且,所述语义处理程序定义以下内容:根据运行时数据库的操作动作CRUD,分别定义与各操作动作CRUD对应的详细操作程序;
所述语义处理子模块解释并执行所述语义处理程序,对可执行的来自所述语义防火墙子模块的语义消息进行语义计算、加工和处理,生成处理后的针对关系节点的新CRUD语义消息;然后,一方面,对所述运行时数据库执行操作动作CRUD;另一方面,读取所述配置子模块,判断所定义的关系节点的类别,如果为单个关系语义交换机;则直接将该单个关系语义交换机确定为目的节点;如果为应用服务器,则直接将该应用服务器确定为目的节点;如果为关系服务池,则将所述新CRUD语义消息发送到所述负载均衡子模块;
所述负载均衡子模块从所述配置子模块中获取该关系服务池的负载均衡模式及其所包含的各成员节点IP,通过所述负载均衡模式,确定所述关系服务池中最佳成员节点作为目的节点;
所述发送端语义预处理模块用于:读取所述配置子模块,获得所确定的目的节点的数据格式,将JSON格式的新CRUD语义消息转换成目标格式,再经语义安全处理后发送到输出端消息队列;
所述应用层协议封装模块为针对目的节点的协议代理,具体用于:读取所述配置子模块,获得所确定的目的节点的应用层协议,按顺序将输出端消息队列中的各条消息进行应用层协议封装,将其封装为能够被目的节点所能识别的数据;
所述发送端网络/传输层数据处理模块用于对封装后的数据进行安全处理,然后将处理后的数据发送到目的节点;
所述日志审计模块包括系统管理日志和操作日志;所述系统管理日志用于保存本语义交换机的状态改变情况;所述操作日志用于保存信息流经过任何模块所做的中间操作;所述日志审计模块采用非关系数据库引擎以JSON格式存储,如果本语义交换机属于一个服务池,则将本语义交换机的日志审计模块所存储的内容在所述服务池中进行分片存储。
优选的,所述接收端网络/传输层数据处理模块所接收到的所述请求消息的应用层协议为HTTP协议、MQ协议、JMS协议、FTP协议或SMTP协议,并且,所述请求消息的数据交换格式为XML格式、JSON格式、SOAP格式或REST格式。
优选的,所述接收端网络/传输层数据处理模块包括网络防火墙子模块、SSL认证与解密子模块和WAF/应用防火墙子模块;
所述网络防火墙子模块用于接收来自请求端的请求消息,并对所述请求消息进行安全过滤,然后将过滤后的请求消息发送到所述SSL认证与解密子模块;
所述SSL认证与解密子模块用于对过滤后的请求消息进行证书确认及解密处理,然后将认证合格及解密后的请求消息发送到所述WAF/应用防火墙子模块;
所述WAF/应用防火墙子模块用于对接收到的请求消息进行规则过滤与协议清洗,屏蔽应用层的攻击;然后将处理后的请求消息发送到所述应用层协议解析模块。
优选的,所述应用层协议解析模块配置有HTTP代理子模块、MQ代理子模块、JMS代理子模块、FTP代理子模块和SMTP代理子模块;
所述HTTP代理子模块用于建立本语义交换机与基于HTTP协议的请求端之间的会话;
所述MQ代理子模块用于建立本语义交换机与基于MQ协议的请求端之间的会话;
所述JMS代理子模块用于建立本语义交换机与基于JMS协议的请求端之间的会话;
所述FTP代理子模块用于建立本语义交换机与基于FTP协议的请求端之间的会话;
所述SMTP代理子模块用于建立本语义交换机与基于SMTP协议的请求端之间的会话。
优选的,所述接收端语义预处理模块包括语义认证子模块、语义解密子模块和接收端消息格式转换子模块;
所述语义认证子模块通过查询证书数据库,对输入队列中的请求消息进行语义认证,将认证合格的消息发送到所述语义解密子模块;
所述语义解密子模块用于对认证后的消息进行解密,得到明文语义消息,并将所述明文语义消息发送到所述接收端消息格式转换子模块;
所述接收端消息格式转换子模块用于将各种数据交换格式的所述明文语义消息统一转换为内部使用的JSON格式语义消息,然后将所述JSON格式语义消息发送到JSON内部消息队列;其中,所述明文语义消息的数据交换格式包括XML格式、JSON格式、SOAP格式或REST格式。
优选的,所述语义解析子模块具体用于:
从会话层的会话链接表中获取当前会话的源IP;
从应用层协议的包头信息中获取针对运行时数据库的操作动作CRUD;
从URL中获取运行时数据库ID、记录ID和针对运行时数据库的操作动作CRUD;其中,运行时数据库ID、记录ID和针对运行时数据库的操作动作属于URL的一部分,位于URL的固定字段;
从JSON内部消息队列中获取请求方发送的消息内容。
优选的,所述语义防火墙子模块具体用于:
所述语义防火墙子模块配置有客户身份与行为权限映射表,该映射表由多条语义规则表项组成,各条语义规则表项进行编号;每一条语义规则包括合法的源IP、运行时数据库ID、针对运行时数据库的操作动作、消息内容、记录ID、以及请求方合法身份;判断当前接收到的语义消息是否符合对应的语义规则,得出该条语义消息是否能够被执行的结论。
优选的,所述负载均衡子模块确定所述关系服务池中最佳成员节点作为目的节点,具体为:
所述负载均衡子模块查询所述配置子模块,获得针对该关系服务池的负载均衡模式、健康检查方式以及各成员节点IP;
然后,所述负载均衡子模块按一定的频度向各成员节点IP发送探测请求,若接收到某一成员节点的回应,则证明该节点为健康成员节点;
所述负载均衡模式包括四种:
5)ROUND_ROBIN:轮询方法:将请求均衡的按照顺序发送到关系服务池中的各成员节点中;
6)HASH方法:通过对上一个请求节点的IP地址进行HASH计算,均匀散列到关系服务池中的各个成员节点上;
7)LEAST_CONECTION,最少连接数法:将请求发送给关系服务池中当前链接数最小的节点作为目的节点;
8)FAST_RESPONSE,最快响应速度法:通过健康检查得到关系服务池中的各成员节点的响应时间,取最小响应时间对应的节点作为目的节点。
优选的,所述发送端语义预处理模块包括:发送端消息格式转换子模块、语义加密子模块和语义签名子模块;
其中,所述发送端消息格式转换子模块用于将JSON格式的语义消息转换成目标格式,然后将转换后的语义消息发送到所述语义加密子模块;
所述语义加密子模块用于对接收到的语义消息进行语义加密处理,然后将加密后的语义消息发送到所述语义签名子模块;
所述语义签名子模块用于对接收到的语义消息进行语义签名,然后将签名后的语义消息发送到所述应用层协议封装模块。
优选的,所述应用层协议封装模块配置有HTTP封装子模块、MQ封装子模块、JMS封装子模块、FTP封装子模块和SMTP封装子模块;分别用于将接收到的各条消息封装为对应应用层协议的消息。
优选的,所述发送端网络/传输层数据处理模块包括SSL签名与加密子模块和网络转发子模块;
所述SSL签名与加密子模块用于对经所述应用层协议封装模块所封装后的数据进行证书签名及加解处理,然后将处理后的数据发送给所述网络转发子模块;
所述网络转发子模块用于将经所述SSL签名与加密子模块处理后的数据发送到目的节点。
本发明提供的语义交换机,具有以下优点:
(1)消除传统信息系统的烟道模型,实现多平台异构系统的数据共享。
(2)自动化实现代码级安全,有效防范信息泄露。
(3)消除企业信息系统的性能瓶颈,实现无限制扩充的信息处理能力。
(4)消除网络、应用系统、存储技术、信息安全之间的鸿沟,实现企业信息系统的有机融合。
(5)采用松耦合系统部署,实现人机交互、机机交互的统一信息交互标准,确保信息系统的部署和维护以及开发最大限度避免重复开发浪费计算资源。
(6)统一的分布式标准语言战略性的降低企业信息系统开发成本,即在系统开发的:系统分析、模块设详细设计、代码开发、QA等任何环节均可以根据客户要求和业务变化随时调整和修改系统。而局部的修改不会对整个信息系统造成战略影响。
(7)实现信息系统的冗余设计,提高信息系统的可用性。
(8)在信息系统开展OLAP的同时不影响OLTP的性能。
附图说明
图1为本发明提供的语义交换机的整体架构图;
图2为本发明提供的语义交换机与网络7层协议的参考对照图;
图3为应用层协议解析模块的工作原理图;
图4为接收端语义预处理模块的工作原理图;
图5为接收端消息格式转换子模块的工作原理图;
图6为语义处理引擎的整体工作流程图;
图7为语义解析子模块的工作原理图;
图8为语义处理子模块的工作原理图;
图9为终端1发送CREATE消息的场景1示意图;
图10为终端1发送UPDATE消息的场景2示意图;
图11为终端1发送DELETE消息的场景3示意图;
图12为终端1发送RETRIEVE消息的场景4示意图;
图13为发送端语义预处理模块的整体工作原理图;
图14为发送端消息格式转换子模块的工作原理图;
图15为应用层协议封装模块的工作原理图;
图16为服务池中两台语义交换机存储过程示意图;
图17为语义交换机的硬件架构设计图;
图18为单一角色的语义交换机集群部署图;
图19为多角色语义交换机集群部署图;
图20为语义交换机的反馈与进化计算模型。
具体实施方式
以下结合附图对本发明进行详细说明:
本发明提供一种语义交换机,语义交换机采用基于REST的无状态传输的分布式计算架构,其工作在应用层协议之上的语义层,本发明提供的语义交换机不同于传统的网络交换机与最近流行的应用交换机,其工作在应用层协议之上针对语义消息进行计算、转换、转发、分发、软路由等工作。可以说,本发明提供的语义交换机是第八层交换机,其在网络7层协议的定位可以参考图2。
如图1所示,本发明提供的语义交换机包括:接收端网络/传输层数据处理模块、应用层协议解析模块、接收端语义预处理模块、语义处理引擎、发送端语义预处理模块、应用层协议封装模块、发送端网络/传输层数据处理模块、运行时数据库和日志审计模块。以下对各模块详细介绍:
(一)接收端网络/传输层数据处理模块
接收端网络/传输层数据处理模块用于接收来自应用层请求端的基于各类应用层协议以及各类型数据交换格式的请求消息,并对请求消息进行安全预处理,得到处理后的请求消息,然后将处理后的请求消息发送到应用层协议解析模块。其中,本发明中,接收端网络/传输层数据处理模块所接收到的请求消息的应用层协议包括但不限于:HTTP协议、MQ协议、JMS协议、FTP协议或SMTP协议,并且,请求消息的数据交换格式包括但不限于:XML格式、JSON格式、SOAP格式或REST格式。
接收端网络/传输层数据处理模块包括网络防火墙子模块、SSL认证与解密子模块和WAF/应用防火墙子模块;
(1)网络防火墙子模块
网络防火墙子模块用于接收来自请求端的请求消息,并对请求消息进行安全过滤,然后将过滤后的请求消息发送到SSL认证与解密子模块;
(2)SSL认证与解密子模块
SSL认证与解密子模块用于对过滤后的请求消息进行证书确认及解密处理,然后将认证合格及解密后的请求消息发送到WAF/应用防火墙子模块;
(3)WAF/应用防火墙子模块
WAF/应用防火墙子模块用于对接收到的请求消息进行规则过滤与协议清洗,屏蔽应用层的攻击;然后将处理后的请求消息发送到应用层协议解析模块。
其中,WAF/应用防火墙子模块提供专门针对Web服务攻击的防护功能,主要防护以下10种Web攻击:
A1–注入
A2-跨站脚本(XSS)
A3-失效的身份认证和会话管理
A4-不安全的直接对象引用
A5-跨站请求伪造(CSRF)
A6-安全配置错误
A7-不安全的加密存储
A8-没有限制URL访问
A9-传输层保护不足
A10-未验证的重定向和转发。
(二)应用层协议解析模块
应用层协议解析模块为针对请求端的协议代理,用于对接收到的基于各类应用层协议的请求消息进行协议解析,将请求端的基于各类应用层协议的应用层会话转换为能够被接收端语义预处理模块识别的请求消息,并将转换后的请求消息发送到输入队列。
具体的,应用层协议解析模块配置各种应用层协议的代理子模块,包括但不限于:HTTP代理子模块、MQ代理子模块、JMS代理子模块、FTP代理子模块和SMTP代理子模块;如图3所示,为应用层协议解析模块的工作原理图;
HTTP代理子模块用于建立本语义交换机与基于HTTP协议的请求端之间的会话;
MQ代理子模块用于建立本语义交换机与基于MQ协议的请求端之间的会话;
JMS代理子模块用于建立本语义交换机与基于JMS协议的请求端之间的会话;
FTP代理子模块用于建立本语义交换机与基于FTP协议的请求端之间的会话;
SMTP代理子模块用于建立本语义交换机与基于SMTP协议的请求端之间的会话。
(三)接收端语义预处理模块
接收端语义预处理模块用于读取输入队列中的请求消息,并对请求消息进行语义预处理,将请求消息统一转换为内部使用的JSON格式语义消息,然后将JSON格式语义消息发送到JSON格式内部消息队列。
接收端语义预处理模块包括语义认证子模块、语义解密子模块和接收端消息格式转换子模块,其工作原理如图4所示:
(1)语义认证子模块
语义认证子模块通过查询证书数据库,对输入队列中的请求消息进行语义认证,将认证合格的消息发送到语义解密子模块;
(2)语义解密子模块
语义解密子模块用于对认证后的消息进行解密,得到明文语义消息,并将明文语义消息发送到接收端消息格式转换子模块;
(3)接收端消息格式转换子模块
接收端消息格式转换子模块用于将各种数据交换格式的明文语义消息统一转换为内部使用的JSON格式语义消息,然后将JSON格式语义消息发送到JSON内部消息队列;其中,明文语义消息的数据交换格式包括XML格式、JSON格式、SOAP格式或REST格式。如图5所示,为接收端消息格式转换子模块的工作原理图。
(四)语义处理引擎
语义处理引擎包括语义解析子模块、语义防火墙子模块、语义处理子模块、语义处理程序、负载均衡子模块和配置子模块;其中,语义解析子模块、语义防火墙子模块、语义处理子模块和负载均衡子模块顺次连接,语义处理程序的输出端与语义处理子模块的输入端连接,并且,语义处理子模块的输出端还与运行时数据库连接;配置子模块分别与语义解析子模块、语义防火墙子模块、语义处理子模块和负载均衡子模块连接。如图6所示,为语义处理引擎的整体工作流程图。
(1)配置子模块
配置子模块中定义本体描述与关系描述;
本体描述可采用特定的DSL(领域描述语言)实现,用于定义本语义交换机的各类属性,包括:本体运行时数据库格式、本体认可的应用层协议与数据交换格式、本体所属的服务池的统一资源名URN、本体所属的服务池所包含的各组员的IP、本体的语义防火墙规则;其中,服务池为由相同功能的语义交换机组成的用于完成同一个语义操作的语义交换机集群;
关系描述用于定义本语义交换机与其他关系节点之间的关系模型和数据传输接口;其中,关系节点包括单个关系语义交换机、关系服务池或者应用服务器;关系描述具体定义以下信息:关系节点的应用层协议和关系节点的数据交换格式;其中,当关系节点为关系服务池时,还定义分别针对每个关系服务池的负载均衡模式、健康检查方式以及关系服务池中各成员节点IP;
(2)运行时数据库
运行时数据库采用非关系数据库集群的<键:值>对模式存取,用于将语义处理引擎所产生的信息条目以JSON格式保存数据记录,并且,每一条记录均由众多的<键:值>对组合而成,同时每一条数据记录均有唯一的记录ID,而记录ID将作为URI的标记可以被访问。
例如:在非关系数据库中存储的某条数据记录的记录ID为52a481656c6f6311a6000000,则:
http://.../52a481656c6f6311a6000000/即为显示ID为52a481656c6f6311a6000000的订单详情的请求消息;
http://.../52a481656c6f6311a6000000/edit/为编辑ID为52a481656c6f6311a6000000的订单的请求消息;
http://.../52a481656c6f6311a6000000/delete/为删除ID为52a481656c6f6311a6000000的订单的请求消息;
http://.../52a481656c6f6311a6000000/save/为新建并存储ID为52a481656c6f6311a6000000的订单的请求消息。
通过上述方式,将URI与非关系数据库的记录有机的联系在一起,有效避免了混乱。同时,通过在URI的最后加上请求端的各类针对这项记录的操作指令,获得不同的操作方法。
(3)语义解析子模块
语义解析子模块用于对JSON内部消息队列中待处理的某条消息进行解析,获取以下信息:该条消息的源IP、运行时数据库ID、针对运行时数据库的操作动作CRUD、消息内容和记录ID;其中,针对运行时数据库的操作动作CRUD包括创建新记录、查询记录、更新记录和删除记录;然后将获取到的上述消息组合为一条内部语义消息,并将该内部语义消息发送到内部语义消息队列。
具体的,如图7所示,为语义解析子模块的工作原理图,语义解析子模块从会话层的会话链接表中获取当前会话的源IP;从应用层协议的包头信息中获取针对运行时数据库的操作动作CRUD;从URL中获取运行时数据库ID、记录ID和针对运行时数据库的操作动作CRUD;其中,运行时数据库ID、记录ID和针对运行时数据库的操作动作属于URL的一部分,位于URL的固定字段;从JSON格式内部消息队列中获取请求方发送的消息内容;在附图中,还从证书数据库中获取解析证书与用户身份。
(4)语义防火墙子模块
语义防火墙子模块用于对内部语义消息队列中各条语义消息进行语义规则过滤,依据配置子模块中设定的语义防火墙规则判断该条语义消息是否可以执行,如果不能被执行,则阻断语义消息的下一步工作并通知应用层代理取消本次会话;如果可以被执行,则将该条语义消息发送给语义处理子模块。
具体的,语义防火墙子模块配置有客户身份与行为权限映射表,用于描述本体语义交换机可以接受的各类行为,通过对任何访问者设定针对本体操作的CRUD授权实现语义条目级别的访问控制能力。如表1所示,为客户身份与行为权限映射表的一种具体实例,该映射表由多条语义规则表项组成,各条语义规则表项进行编号;每一条语义规则包括合法的源IP、运行时数据库ID、针对运行时数据库的操作动作、消息内容、记录ID以及请求方合法身份;判断当前接收到的语义消息是否符合对应的语义规则,得出该条语义消息是否能够被执行的结论。通过语义防火墙子模块,可防范非法请求进行窃取信息条目、删除敏感数据的目的。
表1客户身份与行为权限映射表
规则编号 | 源IP | User_Name | User_ID | User_Cert | URI | Database | Record_ID | Permit_Actions |
其中,源IP、User_Name、User_ID、User_Cert用于定位请求方的身份;URI、Database、Record_ID用于定位本体资源;Permit_Actions包括C(Create),R(Retrive)、U(Update)、D(Delete)四种操作命令,为用户定义的可执行的操作动作。
(5)语义处理程序
语义处理语言是基于资源的面向对象解释语言,通过语义处理语言编写的程序,即为语义处理程序。也就是说,语义处理程序为客户依据客户业务逻辑所编写的程序,通过编写不同的程序,可使本语义交换机具有不同的业务处理功能,因此使各语义交换机形成不同的运算结果;通过设定语义处理语言,语义交换机成为一个标准的有限状态机,也即是图灵机。并且,语义处理程序定义以下内容:根据运行时数据库的操作动作CRUD,分别定义与各操作动作CRUD对应的详细操作程序。
(6)语义处理子模块
如图8所示,为语义处理子模块的工作原理图;语义处理子模块解释并执行语义处理程序,对可执行的来自语义防火墙子模块的语义消息进行语义计算、加工和处理,生成处理后的针对关系节点的新CRUD语义消息;然后,一方面,对运行时数据库执行操作动作CRUD;另一方面,读取配置子模块,判断所定义的关系节点的类别,如果为单个关系语义交换机;则直接将该单个关系语义交换机确定为目的节点;如果为应用服务器,则直接将该应用服务器确定为目的节点;如果为关系服务池,则将新CRUD语义消息发送到负载均衡子模块;
本发明中的语义交换机,将所有的访问行为归类为CRUD四种模式:创建、查询、更新和删除。需要特别说明的是,语义交换机在接收到CRUD请求时候,除了忠实的执行针对本体运行时数据库的CRUD操作以外,其产生的针对关系节点的操作未必一定是完全对应的CRUD动作,即针对本体的C动作未必形成针对关系节点的C动作,用户完全可以在语义处理程序中设定针对关系节点的任何CRUD动作,这四种动作的模式如下:
(1)请求端向语义交换机发送查询(R,Retrieve)的消息,则语义交换机判断是否需要其他关系节点提供补充信息,如果不需要,则直接向请求端返回其查询的内容;如果需要,则语义交换机向关系节点发送对相关内容的查询消息,在获得关系节点的响应后,补充完整需要反馈的消息内容并发给请求端,同时发送CRUD消息给关系节点二
(2)请求端向语义交换机发送更新(U,Update)指令,则语义交换机更新本体运行时数据库,并生成CRUD消息给关系节点;
(3)请求端向语义交换机发送创建(C,Create)新数据记录的请求,则语义交换机依据语义处理程序,在运行时数据库生成一条新数据记录并产生新的一条或者多条CRUD语义消息发送到关系节点;
(4)请求端向语义交换机发送删除(D,Delete)消息,则语义交换机删除运行时数据库的相应数据条目并产生发送到其他关系节点的CRUD动作消息。
语义处理子模块根据用户编写的语义处理程序执行相应的业务操作,这类操作的详细定义通过语义处理程序设定,语义处理程序设定了针对CRUD四个动作的详细操作流程;一旦根据语义处理程序产生需要发送给关系节点的任何消息,语义处理子模块根据配置子模块中设定的关系节点的接口按照给定的数据结构生成特定的消息并将消息发送给关系节点。
针对四种CRUD操作,举例如下:
假设由三台语义交换机建立松耦合系统与外界互动,以语义交换机A、语义交换机B和语义交换机C为例。
场景1:终端1发送CREATE消息情况
如图9所示,终端1发送一个CREATE消息,并包含<表单T1>的内容;在HTTP协议中则是发送一个PUT方法的HTTP请求到语义交换机A;PUT请求内容将包含需要生成的表单内容T1。
语义交换机A中的语义处理程序将详细说明针对来自CREATE消息的具体操作,本例中,首先将表单T1的数据存储到本地的运行时数据库中并生成一个新的URI唯一标识这条新的记录,而且根据表单T1的内容生成两个新的表单数据:表单2和表单3,并分别向语义交换机B和语义交换机C发送一个CREATE请求。同时,语义交换机B在接受到包含表单T2的CREATE请求后,根据本体的语义处理程序将数据存储在本体运行时数据库中并形成新的
URI标识,而且语义交换机B因此生成一个新的包括特定内容的CREATE请求发送到应用服务器D;语义交换机C在接收到包含表单T3的CREATE请求后,根据本体的语义处理程序将表单T3存储在本体运行时数据库中并形成新的URI标识。
场景2:终端1发送UPDATE消息情况
如图10所示,终端1发送一个UPDATE消息,并包含<表单T1>的内容;在HTTP协议中则是发送一个POST方法的HTTP请求到语义交换机A;POST请求内容将包含需要更新的表单内容T1。
由于语义交换机A的UPDATE动作中设定了针对语义交换机B和C的相应UPDATE操作,因此语义处理子模块生成两个UPDATE请求分别发给语义交换机B和C,语义交换机B和C根据自身设定的UPDATE操作指令将更新的条目更新到本体运行时数据库。同时语义交换机B发送UPDATE请求给应用服务器D,采用的格式与数据结构则依据语义交换机B的配置子模块中设定。
场景3:终端1发送DELETE消息情况
如图11所示,终端1发送一个DELETE消息到语义交换机A,并包含<表单T1>的内容;在HTTP协议中则是发送一个DELETE方法的HTTP请求到语义交换机A;DELETE请求内容包含需要删除的表单内容T1。
由于语义交换机A的语义处理程序设定DELETE动作会关联产生针对语义交换机B和C的操作,语义处理子模块从<表单T1>中产生针对语义交换机B的表单T2删除请求,生成一个<表单T3>并向语义交换机C发送一个CREATE的请求;而语义交换机B中的DELETE操作则是生成一个针对应用服务器D的<表单4>的生成请求(CREATE),这些都是通过语义处理程序详细说明。对于由终端1产生的DELETE操作可能形成针对语义交换机C的生成(CREATE)操作,这就是语义处理程序的关键所在。业务逻辑可以通过对于CRUD和消息条目的不同转换形成功能强大的逻辑关系处理网络。
场景4:终端1发送RETRIEVE消息情况
如图12所示,终端1发送一个RETRIEVE消息,并包含<表单T1>的URL;在HTTP协议中则是发送一个GET请求到语义交换机A。
语义交换机A接受到终端1发送的RETRIEVE请求,针对的是<表单TA1>的URL,语义交换机A从本地数据库中搜索相应的内容放到MSG临时变量中,但是MSG并不完整,因此语义交换机A继续向语义交换机B和语义交换机C发送特定的RETRIEVE请求,语义交换机C和语义交换机B分别将需要的内容反馈给语义交换机A,语义交换机A将得到的消息组合成MSG形成完整的消息内容反馈给终端1;另外,语义交换机B则因此发送一个<表单T4>的CREATE请求给应用服务器D。
(7)负载均衡子模块
每一个语义交换机均有一个IP地址对应,在大量语义交换机综合部署的环境中,上一级语义交换机均对语义消息即将到达的下一个服务池通过负载均衡子模块选择最佳的语义交换机节点作为信息传递的下一个目标节点。
其中,服务池是完成同一个语义操作的语义交换机集群,通过配置子模块定义并保存各个服务池的配置情况,配置子模块中,只需定义以下三个声明,即可完成一个服务池(ServicePool)即URN的定义:第一个声明MEMEBR说明服务池中包含的成员节点的IP地址组合,第二个声明HEALTH_CHECK说明针对服务池的健康检查方式,第三个声明LOADBALANCE说明针对服务池的负载均衡模式。
负载均衡子模块从配置子模块中获取该关系服务池的负载均衡模式及其所包含的各成员节点IP,通过负载均衡模式,确定关系服务池中最佳成员节点作为目的节点;
具体的,负载均衡子模块查询配置子模块,获得针对该关系服务池的负载均衡模式、健康检查方式以及各成员节点IP;
然后,负载均衡子模块按一定的频度向各成员节点IP发送探测请求,若接收到某一成员节点的回应,则证明该节点为健康成员节点;
负载均衡模式包括四种:
9)ROUND_ROBIN:轮询方法:将请求均衡的按照顺序发送到关系服务池中的各成员节点中;
10)HASH方法:通过对上一个请求节点的IP地址进行HASH计算,均匀散列到关系服务池中的各个成员节点上;
11)LEAST_CONECTION,最少连接数法:将请求发送给关系服务池中当前链接数最小的节点作为目的节点;
12)FAST_RESPONSE,最快响应速度法:通过健康检查得到关系服务池中的各成员节点的响应时间,取最小响应时间对应的节点作为目的节点。
(五)发送端语义预处理模块
发送端语义预处理模块用于:读取配置子模块,获得所确定的目的节点的数据格式,将JSON格式的新CRUD语义消息转换成目标格式,再经语义安全处理后发送到输出端消息队列;
发送端语义预处理模块包括:发送端消息格式转换子模块、语义加密子模块和语义签名子模块。如图13所示,为发送端语义预处理模块的整体工作原理图。
(1)发送端消息格式转换子模块
发送端消息格式转换子模块用于将JSON格式的语义消息转换成目标格式,然后将转换后的语义消息发送到语义加密子模块;如图14所示,为发送端消息格式转换子模块的工作原理图。
(2)语义加密子模块
语义加密子模块用于对接收到的语义消息进行语义加密处理,然后将加密后的语义消息发送到语义签名子模块;
(3)语义签名子模块
语义签名子模块用于对接收到的语义消息进行语义签名,然后将签名后的语义消息发送到应用层协议封装模块。
(六)应用层协议封装模块
应用层协议封装模块为针对目的节点的协议代理,具体用于:读取配置子模块,获得所确定的目的节点的应用层协议,按顺序将输出端消息队列中的各条消息进行应用层协议封装,将其封装为能够被目的节点所能识别的数据;
具体的,根据实际需要,应用层协议封装模块配置有HTTP封装子模块、MQ封装子模块、JMS封装子模块、FTP封装子模块和SMTP封装子模块;分别用于将接收到的各条消息封装为对应应用层协议的消息。如图15所示,为应用层协议封装模块的工作原理图。
(七)发送端网络/传输层数据处理模块
发送端网络/传输层数据处理模块用于对封装后的数据进行安全处理,然后将处理后的数据发送到目的节点;
发送端网络/传输层数据处理模块包括SSL签名与加密子模块和网络转发子模块;
(1)SSL签名与加密子模块
SSL签名与加密子模块用于对经应用层协议封装模块所封装后的数据进行证书签名及加解处理,然后将处理后的数据发送给网络转发子模块;
(2)网络转发子模块
网络转发子模块用于将经SSL签名与加密子模块处理后的数据发送到目的节点。
(八)日志审计模块
日志审计模块包括系统管理日志和操作日志;系统管理日志用于保存本语义交换机的状态改变情况;操作日志用于保存信息流经过任何模块所做的中间操作;日志审计模块采用非关系数据库引擎以JSON格式存储,如果本语义交换机属于一个服务池,则将本语义交换机的日志审计模块所存储的内容在服务池中进行分片存储,达到日志存储冗余备份的目的。当服务池由两台语义交换机组成时,如图16所示,为存储过程示意图。即:当语义交换机A产生日志时,首先在本地暂存日志,同时将日志备份到语义交换机B中,并存储到外部数据库中。
本发明提供的语义交换机,作为语义交互的网关,针对不同的交互对象,语义交换机具有消息格式转换的功能,可以实现:XML←→REST,JSON←→REST,SOAP←→REST,JSON←→SOAP,XML←→SOAP,JSON←→XML之间的互相转换。同时本身也是一个Web服务器,可以针对电脑、手机等客户端进行响应。
语义交换机可以接受四种类型的客户端请求:1)来自智能终端的JSON消息请求;2)来自用户的电脑的HTTP请求;3)来自服务器的基于SOAP/XML/JSON/REST的消息请求;4)来自语义交换机的REST消息请求。
语义交换机在接收到以上四类请求后,根据语义交换程序的指令,产生6种类型的行为:
1)向发送请求的智能终端发送JSON格式的信息反馈。
2)向发送请求的用户电脑发送HTTP/XML格式的内容响应
3)向发送请求的服务器发送经过处理的JSON/SOAP/XML/REST响应
4)向发送请求的语义交换机发送经过语义处理的REST响应
5)向另外的智能终端发送经过语义处理的JSON格式信息条目
6)向另外的服务器发送XML/REST/SOAP/JSON格式的信息条目
7)向另外的语义交换机发送REST信息条目。
另外,语义交换机融合SOA服务,具有自动识别请求端或者服务端的协议规程并采用合适的格式封装消息的功能。如果请求方是一个智能手机,则通讯规程可以采用HTTP协议或者JSON协议;如果通讯的对方是服务器,则根据对方可接受的协议采用:SOAP,JSON,POX(Plain of Old XML)方式通信;如果对方是另外一台语义交换机,通讯协议则转换成HTTP/XML REST方式通讯;如果对方是一台电脑,则可以采用HTTP或者REST(XML)方式通讯。
分布式计算架构有三种不同的架构模式:DO(分布式对象),RPC(远程过程调用),REST(具象状态传输)。本发明中的语义交换机采用基于REST的分布式计算架构,具有以下优点:1)高度可伸缩性,可以根据访问的压力动态调配计算资源消除瓶颈。2)高度安全性:传统的DO与RPC方式的分布式计算均是为企业内部传统IT系统的可信环境下设计的分布式计算架构,没有考虑现今的企业IT系统面临的安全性挑战。而REST是完全基于非可信环境下的分布式计算架构。3)松耦合性,REST提供了最大限度的松耦合特定。4)简单性:REST不需要引入复杂的编程模型,开发人员只需要通过合适的配置并在语义交换语言实现企业的业务逻辑。其安全性、数据库管理、网路联通、Web服务等均由语义交换机自动实现了。
本发明中,语义交换机定义所有的计算都是基于资源的处理。通过URI的方式定位各类资源,通过CRUD的模式提供交互与服务。与其他的分布式系统不同的是,CRUD式服务暴露给请求者的契约是非常简单的,因为它只涉及到一个具体的URI、一个URI模板、四个HTTP动作。
另外,本发明中,相同功能的语义交换机可组成服务池,实现针对非关系数据分布式冗余存储。由于采用无状态的传输协议,所有的请求可以发给任意一台健康的语义交换机,而任何一台语义交换机在接受到请求后,自动在分布存储的非关系数据库集群通过ID精确定位到数据的存储区位并进行相应的操作。
硬件架构:语义交换机采用标准工业机架设计,配备专用的管理端口(RJ45)和8个1000BASE-T的交换端口以及基于SFP+的万兆交换端口。配备4核CPU,64GB内存,2TB存储,双电冗,2U标准工业机架设计,系统吞吐能力达到8Gbps,内置SSL加密加速芯片,实现2Gbps的SSL加密通讯流量。会话保存达到1500万在线会话。每秒钟处理XML消息转发达到20万条/秒。如图17所示,为语义交换机的硬件架构设计图。
本发明提供的语义交换机既是一个完整的Web服务器,也是一台从网络2-8层的交换机,也具备防火墙的应用安全的所有功能,同时采用集群存储实现高可用的非关系数据库集群。在具体应用中可以有以下几种部署方式:
1.1SOA架构的协议转换网关
实现不同的Web服务协议之间的无缝转换,包括:XML,SOAP,REST,JSON之间的无损转换,并提供包括:网路防火墙、Web应用防火墙、XML防火墙,还通过XML压缩、XML加密实现高效保密的内容通信,通过SSL与其他的Web服务系统建立加密通道等安全功能。此外,还提供详细的基于CRUD处理的行为日志,确保完全审计。
语义交换机作为Web服务协议转换网关实现数据格式的自动转换,它能够自动将传统的Web服务发布的数据格式转换成REST、SOAP等服务。也能够实现数据格式之间的快速映射比,如XML←→JSON的转换。可以实现针对特定的身份管理、应用程序与设备的重新融合。作为自动协议转换工具,无需企业用户另外编程。
1.2集群计算
语义交换机可以通过集群部署的方式建立新型的智能企业计算环境。通过在每个语义交换机中的语义交换语言进行不同的编程设计,语义交换机在集群计算中将担任不同的环节与角色,同时同一个语义处理节点群内部的所有成员均处理同样的工作。由于采用基于REST的无状态传输技术,逻辑上可以将信息条目发送到统一角色的服务池中的任何一台语义交换机提供服务,而非关系的集群数据库系统则实现集群状态的迁移,同时采用Hyper Media作为应用状态的引擎。
单一角色的语义交换机集群部署如图18所示。为了消除各个环节的性能瓶颈,可以在所有的业务处理节点部署集群方式的多角色语义交换机集群,如图19所示。
1.3下一代智能云计算
采用语义交换机实现集群计算的下一代的智能云计算中心,最为重要需要注意以下两个方面:第一个是语义交换机的语义交换语言编写的程序版本的自动化管理;第二个是采用进化计算与蚁群算法实现集群的自动调优和升级。
1.3.1语义交换机的交换程序版本自动更新
用语义交换语言编写的程序在同一服务池中的各个节点可以自动化实现版本管理与更新,通过两种机制:第一:在同一个服务池中的所有语义交换机设置语义交换程序版本管理模块;第二:在同一服务池中实现版本广播。任何一个语义交换机在其交换程序修改后,即可触发了广播模块,从而自动将新的语义交换机交换程序代码自动的传递到同一服务池中的所有成员。
1.3.2语义交换机采用进化计算
语义交换机采用类似Ruby语言的面相对象的解释语言,可以实现元编程(元编程即程序生成程序)。因此,通过运用其中的元编程机制,在接受请求并发送响应的时候以及发送请求并接受响应的时候,增加反馈机制,从而触发系统调优的元编程机制,实现语义交换程序的自动进化与调优。如图20所示,为语义交换机的反馈与进化计算模型。
基于上述语义交换机,本发明还提供一种语义交换机松耦合系统进行信息处理的方法,包括以下步骤:
S1,在每一个业务处理节点布置一个服务池,所述服务池为由相同功能的n个语义交换机组成的用于完成同一个语义操作的语义交换机集群;其中,n为自然数,n≥1;
并且,每一个语义交换机均配置有运行时数据库、配置子模块和语义处理程序;
其中,所述语义处理程序为客户依据客户业务逻辑所编写的程序,通过编写不同的程序,可使本语义交换机具有不同的业务处理功能;并且,所述语义处理程序定义以下内容:根据运行时数据库的操作动作CRUD,分别定义与各操作动作CRUD对应的详细操作程序;
所述运行时数据库采用非关系数据库集群,用于以JSON格式保存数据记录,并且,每一条数据记录具有唯一的记录ID;该记录ID作为URI的标记可以被访问;
所述配置子模块中定义本体描述与关系描述;
所述本体描述用于定义本语义交换机的各类属性,包括:本体运行时数据库格式、本体认可的应用层协议与数据交换格式、本体所属的服务池的统一资源名URN、本体所属的服务池所包含的各组员的IP、本体的语义防火墙规则;
所述关系描述用于定义本语义交换机与其他关系节点之间的关系模型和数据传输接口;其中,所述关系节点包括单个关系语义交换机、关系服务池或者应用服务器;所述关系描述具体定义以下信息:关系节点的应用层协议和关系节点的数据交换格式;其中,当关系节点为关系服务池时,还定义分别针对每个关系服务池的负载均衡模式、健康检查方式以及所述关系服务池中各成员节点IP;
S2,当任意一个服务池i中的语义交换机j接收到一个基于各类应用层协议以及各类型数据交换格式的来自请求端k的CRUD操作请求时,该CRUD操作请求为以下四种操作请求之一:创建操作请求、更新操作请求、删除消息操作请求和查询操作请求;所述语义交换机j对该CRUD操作请求首先进行安全预处理,然后进行应用层协议解析,将来自请求端k的CRUD操作请求转换为能够被所述语义交换机j识别的CRUD操作请求,并将转换后的CRUD操作请求发送到输入队列;其中,应用层协议为HTTP协议、MQ协议、JMS协议、FTP协议或SMTP协议,并且,所述数据交换格式为XML格式、JSON格式、SOAP格式或REST格式。
语义交换机j对该CRUD操作请求首先进行安全预处理,具体为:
所述语义交换机j对所述请求消息进行安全过滤、证书确认及解密处理后,再对认证合格及解密后的数据进行规则过滤与协议清洗,屏蔽应用层的攻击。
S3,所述语义交换机j读取所述输入队列中的CRUD操作请求,并对所述CRUD操作请求进行语义预处理,将CRUD操作请求统一转换为内部使用的JSON格式语义消息,然后将所述JSON格式语义消息发送到JSON内部消息队列;
本步骤具体为:语义交换机j通过查询证书数据库,对输入队列中的请求消息进行语义认证,再对认证合格的消息进行解密,得到明文语义消息,再对所述明文语义消息进行消息格式转换,统一转换为内部使用的JSON格式语义消息。
S4,所述语义交换机j对所述JSON内部消息队列中待处理的该条JSON格式语义消息进行解析,获取以下信息:该条消息的源IP、运行时数据库ID、针对运行时数据库的操作动作CRUD、消息内容和记录ID;其中,所述针对运行时数据库的操作动作CRUD包括创建新记录、查询记录、更新记录和删除记录;然后将获取到的上述消息组合为一条内部语义消息,并将该内部语义消息发送到内部语义消息队列;
本步骤具体为:语义交换机j从会话层的会话链接表中获取当前会话的源IP;从应用层协议的包头信息中获取针对运行时数据库的操作动作CRUD;从URL中获取运行时数据库ID、记录ID和针对运行时数据库的操作动作CRUD;其中,运行时数据库ID、记录ID和针对运行时数据库的操作动作属于URL的一部分,位于URL的固定字段;从JSON内部消息队列中获取请求方发送的消息内容。
S5,所述语义交换机j对所述内部语义消息队列中的内部语义消息进行语义规则过滤,依据配置子模块中设定的语义防火墙规则判断该条语义消息是否可以执行,如果不能被执行,则阻断语义消息的下一步工作并通知应用层代理取消本次会话;如果可以被执行,则进行S6;
进行语义规则过滤,具体为:
所述语义交换机j配置有客户身份与行为权限映射表,该映射表由多条语义规则表项组成,各条语义规则表项进行编号;每一条语义规则包括合法的源IP、运行时数据库ID、针对运行时数据库的操作动作、消息内容、记录ID、以及请求方合法身份;判断当前接收到的语义消息是否符合对应的语义规则,得出该条语义消息是否能够被执行的结论。
S6,所述语义交换机j解释并执行所述语义处理程序,对可执行的语义消息进行语义计算、加工和处理,生成处理后的针对关系节点的新CRUD语义消息;然后,一方面,对所述运行时数据库执行操作动作CRUD;另一方面,读取所述配置子模块,判断所定义的关系节点的类别,如果为单个关系语义交换机;则直接将该单个关系语义交换机确定为目的节点;如果为应用服务器,则直接将该应用服务器确定为目的节点;如果为关系服务池,则执行S7;
S7,所述语义交换机j从所述配置子模块中获取该关系服务池的负载均衡模式及其所包含的各成员节点IP,通过所述负载均衡模式,确定所述关系服务池中最佳成员节点作为目的节点;
S8,所述语义交换机j读取所述配置子模块,获得所确定的目的节点的数据格式,将JSON格式的新CRUD语义消息转换成目标格式,再经语义安全处理后发送到输出端消息队列;具体为:语义交换机j将JSON格式的语义消息转换成目标格式,然后对转换后的语义消息进行语义加密处理,然后再对加密后的语义消息进行语义签名,然后再将签名后的语义消息发送到输出端消息队列。
S9,所述语义交换机j读取所述配置子模块,获得所确定的目的节点的应用层协议,按顺序将输出端消息队列中的消息进行应用层协议封装,将其封装为能够被目的节点所能识别的数据;
S10,所述语义交换机j对封装后的数据进行安全处理,然后将处理后的数据发送到目的节点;安全处理方式为:语义交换机j对经应用层协议封装后的数据进行证书签名及加解处理,然后再将处理后的数据发送到目的节点。
S11,所述目的节点在接收到来自所述语义交换机j的消息时,所述语义交换机j相对于所述目的节点变为请求端,当所述目的节点也为语义交换机时,所述目的节点按S2-S10的步骤进行数据处理,由此形成基于分布式计算架构的松耦合系统的数据处理过程。
另外,语义交换机j的状态改变情况保存到系统管理日志中,信息流经过所述语义交换机j所做的中间操作保存到操作日志;所述系统管理日志和所述操作日志统称为日志审计模块;所述日志审计模块采用非关系数据库引擎以SON格式存储,如果语义交换机j属于一个服务池,则将语义交换机j的日志审计模块所存储的内容在所述服务池中进行分片存储。
综上所述,本发明提供的语义交换机,具有以下优点:
(1)消除传统信息系统的烟道模型,实现多平台异构系统的数据共享。
(2)自动化实现代码级安全,有效防范信息泄露。
(3)消除企业信息系统的性能瓶颈,实现无限制扩充的信息处理能力。
(4)消除网络、应用系统、存储技术、信息安全之间的鸿沟,实现企业信息系统的有机融合。
(5)采用松耦合系统部署,实现人机交互、机机交互的统一信息交互标准,确保信息系统的部署和维护以及开发最大限度避免重复开发浪费计算资源。
(6)统一的分布式标准语言战略性的降低企业信息系统开发成本,即在系统开发的:系统分析、模块设详细设计、代码开发、QA等任何环节均可以根据客户要求和业务变化随时调整和修改系统。而局部的修改不会对整个信息系统造成战略影响。
(7)实现信息系统的冗余设计,提高信息系统的可用性。
(8)在信息系统开展OLAP的同时不影响OLTP的性能。
(9)降低代码开发成本、降低数据中心维护成本。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (10)
1.一种语义交换机,其特征在于,所述语义交换机采用基于REST的无状态传输的分布式计算架构,其工作在应用层协议之上的语义层,包括:接收端网络/传输层数据处理模块、应用层协议解析模块、接收端语义预处理模块、语义处理引擎、发送端语义预处理模块、应用层协议封装模块、发送端网络/传输层数据处理模块、运行时数据库和日志审计模块;
其中,所述接收端网络/传输层数据处理模块用于接收来自应用层请求端的基于各类应用层协议以及各类型数据交换格式的请求消息,并对所述请求消息进行安全预处理,得到处理后的请求消息,然后将所述处理后的请求消息发送到所述应用层协议解析模块;
所述应用层协议解析模块为针对请求端的协议代理,用于对接收到的基于各类应用层协议的所述请求消息进行协议解析,将请求端的基于各类应用层协议的应用层会话转换为能够被所述接收端语义预处理模块识别的请求消息,并将转换后的请求消息发送到输入队列;
所述接收端语义预处理模块用于读取所述输入队列中的请求消息,并对所述输入队列中的请求消息进行语义预处理,将请求消息统一转换为内部使用的JSON格式语义消息,然后将所述JSON格式语义消息发送到JSON内部消息队列;
所述语义处理引擎包括语义解析子模块、语义防火墙子模块、语义处理子模块、语义处理程序、负载均衡子模块和配置子模块;其中,所述语义解析子模块、所述语义防火墙子模块、所述语义处理子模块和所述负载均衡子模块顺次连接,所述语义处理程序的输出端与所述语义处理子模块的输入端连接,并且,所述语义处理子模块的输出端还与所述运行时数据库连接;所述配置子模块分别与所述语义解析子模块、所述语义防火墙子模块、所述语义处理子模块和所述负载均衡子模块连接;
所述配置子模块中定义本体描述与关系描述;
所述本体描述用于定义本语义交换机的各类属性,包括:本体运行时数据库格式、本体认可的应用层协议与数据交换格式、本体所属的服务池的统一资源名URN、本体所属的服务池所包含的各组员的IP、本体的语义防火墙规则;其中,服务池为由相同功能的语义交换机组成的用于完成同一个语义操作的语义交换机集群;
所述关系描述用于定义本语义交换机与其他关系节点之间的关系模型和数据传输接口;其中,所述关系节点包括单个关系语义交换机、关系服务池或者应用服务器;所述关系描述具体定义以下信息:关系节点的应用层协议和关系节点的数据交换格式;其中,当关系节点为关系服务池时,还定义分别针对每个关系服务池的负载均衡模式、健康检查方式以及所述关系服务池中各成员节点IP;
所述运行时数据库采用非关系数据库集群,用于将语义处理引擎所产生的信息条目以JSON格式保存数据记录,并且,每一条数据记录具有唯一的记录ID;该记录ID作为URI的标记可以被访问;
所述语义解析子模块用于对JSON内部消息队列中待处理的某条消息进行解析,获取以下消息:该条消息的源IP、运行时数据库ID、针对运行时数据库的操作动作CRUD、消息内容和记录ID;其中,所述针对运行时数据库的操作动作CRUD包括创建新记录、查询记录、更新记录和删除记录;然后将获取到的上述消息组合为一条内部语义消息,并将该内部语义消息发送到内部语义消息队列;
所述语义防火墙子模块用于对所述内部语义消息队列中各条语义消息进行语义规则过滤,依据配置子模块中设定的语义防火墙规则判断该条语义消息是否可以执行,如果不能被执行,则阻断语义消息的下一步工作并通知应用层代理取消本次会话;如果可以被执行,则将该条语义消息发送给所述语义处理子模块;
所述语义处理程序为客户依据客户业务逻辑所编写的程序,通过编写不同的程序,可使本语义交换机具有不同的业务处理功能;并且,所述语义处理程序定义以下内容:根据运行时数据库的操作动作CRUD,分别定义与各操作动作CRUD对应的详细操作程序;
所述语义处理子模块解释并执行所述语义处理程序,对可执行的来自所述语义防火墙子模块的语义消息进行语义计算、加工和处理,生成处理后的针对关系节点的新CRUD语义消息;然后,一方面,对所述运行时数据库执行操作动作CRUD;另一方面,读取所述配置子模块,判断所定义的关系节点的类别,如果为单个关系语义交换机;则直接将该单个关系语义交换机确定为目的节点;如果为应用服务器,则直接将该应用服务器确定为目的节点;如果为关系服务池,则将所述新CRUD语义消息发送到所述负载均衡子模块;
所述负载均衡子模块从所述配置子模块中获取该关系服务池的负载均衡模式及其所包含的各成员节点IP,通过所述负载均衡模式,确定所述关系服务池中最佳成员节点作为目的节点;
所述发送端语义预处理模块用于:读取所述配置子模块,获得所确定的目的节点的数据格式,将JSON格式的新CRUD语义消息转换成目标格式,再经语义安全处理后发送到输出端消息队列;
所述应用层协议封装模块为针对目的节点的协议代理,具体用于:读取所述配置子模块,获得所确定的目的节点的应用层协议,按顺序将输出端消息队列中的各条消息进行应用层协议封装,将其封装为能够被目的节点所能识别的数据;
所述发送端网络/传输层数据处理模块用于对封装后的数据进行安全处理,然后将处理后的数据发送到目的节点;
所述日志审计模块包括系统管理日志和操作日志;所述系统管理日志用于保存本语义交换机的状态改变情况;所述操作日志用于保存信息流经过任何模块所做的中间操作;所述日志审计模块采用非关系数据库引擎以JSON格式存储,如果本语义交换机属于一个服务池,则将本语义交换机的日志审计模块所存储的内容在所述服务池中进行分片存储。
2.根据权利要求1所述的语义交换机,其特征在于,所述接收端网络/传输层数据处理模块所接收到的所述请求消息的应用层协议为HTTP协议、MQ协议、JMS协议、FTP协议或SMTP协议,并且,所述请求消息的数据交换格式为XML格式、JSON格式、SOAP格式或REST格式。
3.根据权利要求2所述的语义交换机,其特征在于,所述接收端网络/传输层数据处理模块包括网络防火墙子模块、SSL认证与解密子模块和WAF/应用防火墙子模块;
所述网络防火墙子模块用于接收来自请求端的请求消息,并对所述请求消息进行安全过滤,然后将过滤后的请求消息发送到所述SSL认证与解密子模块;
所述SSL认证与解密子模块用于对过滤后的请求消息进行证书确认及解密处理,然后将认证合格及解密后的请求消息发送到所述WAF/应用防火墙子模块;
所述WAF/应用防火墙子模块用于对接收到的请求消息进行规则过滤与协议清洗,屏蔽应用层的攻击;然后将处理后的请求消息发送到所述应用层协议解析模块。
4.根据权利要求2所述的语义交换机,其特征在于,所述应用层协议解析模块配置有HTTP代理子模块、MQ代理子模块、JMS代理子模块、FTP代理子模块和SMTP代理子模块;
所述HTTP代理子模块用于建立本语义交换机与基于HTTP协议的请求端之间的会话;
所述MQ代理子模块用于建立本语义交换机与基于MQ协议的请求端之间的会话;
所述JMS代理子模块用于建立本语义交换机与基于JMS协议的请求端之间的会话;
所述FTP代理子模块用于建立本语义交换机与基于FTP协议的请求端之间的会话;
所述SMTP代理子模块用于建立本语义交换机与基于SMTP协议的请求端之间的会话。
5.根据权利要求2所述的语义交换机,其特征在于,所述接收端语义预处理模块包括语义认证子模块、语义解密子模块和接收端消息格式转换子模块;
所述语义认证子模块通过查询证书数据库,对输入队列中的请求消息进行语义认证,将认证合格的消息发送到所述语义解密子模块;
所述语义解密子模块用于对认证后的消息进行解密,得到明文语义消息,并将所述明文语义消息发送到所述接收端消息格式转换子模块;
所述接收端消息格式转换子模块用于将各种数据交换格式的所述明文语义消息统一转换为内部使用的JSON格式语义消息,然后将所述JSON格式语义消息发送到JSON内部消息队列;其中,所述明文语义消息的数据交换格式包括XML格式、JSON格式、SOAP格式或REST格式。
6.根据权利要求2所述的语义交换机,其特征在于,所述语义解析子模块具体用于:
从会话层的会话链接表中获取当前会话的源IP;
从应用层协议的包头信息中获取针对运行时数据库的操作动作CRUD;
从URL中获取运行时数据库ID、记录ID和针对运行时数据库的操作动作CRUD;其中,运行时数据库ID、记录ID和针对运行时数据库的操作动作属于URL的一部分,位于URL的固定字段;
从JSON内部消息队列中获取请求方发送的消息内容。
7.根据权利要求2所述的语义交换机,其特征在于,所述语义防火墙子模块具体用于:
所述语义防火墙子模块配置有客户身份与行为权限映射表,该映射表由多条语义规则表项组成,各条语义规则表项进行编号;每一条语义规则包括合法的源IP、运行时数据库ID、针对运行时数据库的操作动作、消息内容、记录ID、以及请求方合法身份;判断当前接收到的语义消息是否符合对应的语义规则,得出该条语义消息是否能够被执行的结论。
8.根据权利要求2所述的语义交换机,其特征在于,所述负载均衡子模块确定所述关系服务池中最佳成员节点作为目的节点,具体为:
所述负载均衡子模块查询所述配置子模块,获得针对该关系服务池的负载均衡模式、健康检查方式以及各成员节点IP;
然后,所述负载均衡子模块按一定的频度向各成员节点IP发送探测请求,若接收到某一成员节点的回应,则证明该节点为健康成员节点;
所述负载均衡模式包括四种:
1)ROUND_ROBIN,轮询方法:将请求均衡的按照顺序发送到关系服务池中的各成员节点中;
2)HASH方法:通过对上一个请求节点的IP地址进行HASH计算,均匀散列到关系服务池中的各个成员节点上;
3)LEAST_CONECTION,最少连接数法:将请求发送给关系服务池中当前链接数最小的节点作为目的节点;
4)FAST_RESPONSE,最快响应速度法:通过健康检查得到关系服务池中的各成员节点的响应时间,取最小响应时间对应的节点作为目的节点。
9.根据权利要求2所述的语义交换机,其特征在于,所述发送端语义预处理模块包括:发送端消息格式转换子模块、语义加密子模块和语义签名子模块;
其中,所述发送端消息格式转换子模块用于将JSON格式的语义消息转换成目标格式,然后将转换后的语义消息发送到所述语义加密子模块;
所述语义加密子模块用于对接收到的语义消息进行语义加密处理,然后将加密后的语义消息发送到所述语义签名子模块;
所述语义签名子模块用于对接收到的语义消息进行语义签名,然后将签名后的语义消息发送到所述应用层协议封装模块。
10.根据权利要求2所述的语义交换机,其特征在于,所述应用层协议封装模块配置有HTTP封装子模块、MQ封装子模块、JMS封装子模块、FTP封装子模块和SMTP封装子模块;分别用于将接收到的各条消息封装为对应应用层协议的消息;
所述发送端网络/传输层数据处理模块包括SSL签名与加密子模块和网络转发子模块;
所述SSL签名与加密子模块用于对经所述应用层协议封装模块所封装后的数据进行证书签名及加解密处理,然后将处理后的数据发送给所述网络转发子模块;
所述网络转发子模块用于将经所述SSL签名与加密子模块处理后的数据发送到目的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410206984.9A CN103957173B (zh) | 2014-05-16 | 2014-05-16 | 语义交换机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410206984.9A CN103957173B (zh) | 2014-05-16 | 2014-05-16 | 语义交换机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103957173A CN103957173A (zh) | 2014-07-30 |
CN103957173B true CN103957173B (zh) | 2017-02-01 |
Family
ID=51334400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410206984.9A Active CN103957173B (zh) | 2014-05-16 | 2014-05-16 | 语义交换机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103957173B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166496A (zh) * | 2018-02-09 | 2019-08-23 | 河北金锁安防工程股份有限公司 | 一种基于大数据的安防信息管理平台 |
CN110417760B (zh) * | 2019-07-16 | 2022-12-13 | 工业互联网创新中心(上海)有限公司 | 工业互联网中边缘层的互操作方法及中间件 |
CN110399612A (zh) * | 2019-07-16 | 2019-11-01 | 工业互联网创新中心(上海)有限公司 | 工业互联网中边缘层的语义转换方法及中间件 |
CN116233282B (zh) * | 2023-05-05 | 2023-09-19 | 北京全路通信信号研究设计院集团有限公司 | 一种解析信号安全通信协议应用层数据的方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931557A (zh) * | 2010-08-13 | 2010-12-29 | 杭州迪普科技有限公司 | 用户行为审计方法及系统 |
CN102356413A (zh) * | 2009-03-19 | 2012-02-15 | 日本电气株式会社 | 网络系统 |
-
2014
- 2014-05-16 CN CN201410206984.9A patent/CN103957173B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102356413A (zh) * | 2009-03-19 | 2012-02-15 | 日本电气株式会社 | 网络系统 |
CN101931557A (zh) * | 2010-08-13 | 2010-12-29 | 杭州迪普科技有限公司 | 用户行为审计方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103957173A (zh) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103957174B (zh) | 语义交换机松耦合系统进行信息处理的方法 | |
CN111488595B (zh) | 用于实现权限控制的方法及相关设备 | |
CN104054321B (zh) | 针对云服务的安全管理 | |
CN110543464B (zh) | 一种应用于智慧园区的大数据平台及操作方法 | |
CN110535831A (zh) | 基于Kubernetes和网络域的集群安全管理方法、装置及存储介质 | |
CN108173850A (zh) | 一种基于区块链智能合约的身份认证系统和身份认证方法 | |
CN109510846A (zh) | Api调用系统、方法、装置、电子设备及存储介质 | |
CN103560905B (zh) | 用于配置、应用和管理网络装置的面向对象策略表达式的系统和方法 | |
CN113114498B (zh) | 一种可信区块链服务平台的架构系统及其构建方法 | |
CN111309374A (zh) | 一种微服务系统和微服务系统中的服务调用方法 | |
CN103957173B (zh) | 语义交换机 | |
US11245729B2 (en) | Group optimization for network communications | |
CN104951524B (zh) | 一种用于数据库运维的移动平台及其使用方法 | |
CN104683313B (zh) | 多媒体业务处理装置、方法及系统 | |
CN108243143A (zh) | 一种基于web代理的网闸穿透方法及系统 | |
CN104504079B (zh) | 一种基于pdm的图文档数据外发方法 | |
CN110226155A (zh) | 在主机上收集和处理上下文属性 | |
CN116055254A (zh) | 一种安全可信网关系统、控制方法、介质、设备及终端 | |
Amoordon et al. | Presenting tendermint: Idiosyncrasies, weaknesses, and good practices | |
CN101702170A (zh) | 行政审批串口数据解析交换方法 | |
CN108734023A (zh) | 一种密文数据库系统的访问与集成系统及方法 | |
CN106301791B (zh) | 一种基于大数据平台的统一用户认证授权的实现方法及系统 | |
Rong‐na et al. | Provenance‐based data flow control mechanism for Internet of things | |
CN114338682A (zh) | 流量身份标识传递方法、装置、电子设备及存储介质 | |
CN112615838A (zh) | 一种可扩展的区块链跨链通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220104 Address after: 100176 2403, floor 24, building 1, yard 8, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone) Patentee after: Tongming Zhiyun (Beijing) Technology Co.,Ltd. Address before: 101111 Room 302, 3 / F, building 4, yard 29, Jinghai Second Road, Beijing Economic and Technological Development Zone, Haidian District, Beijing Patentee before: SINOGRID SOFTWARE SYSTEMS LTD. |
|
TR01 | Transfer of patent right |