发明名称 语义交换机
摘要 本发明提供一种语义交换机,语义交换机采用基于REST的无状态传输的分布式计算架构,其工作在应用层协议之上的语义层,包括:接收端网络/传输层数据处理模块、应用层协议解析模块、接收端语义预处理模块、语义处理引擎、发送端语义预处理模块、应用层协议封装模块、发送端网络/传输层数据处理模块、运行时数据库和日志审计模块。语义处理引擎包括语义解析子模块、语义防火墙子模块、语义处理子模块、语义处理程序、负载均衡子模块和配置子模块,配置子模块中定义本体描述与关系描述;运行时数据库采用非关系数据库集群,语义处理程序为客户依据客户业务逻辑编写的程序。优点为消除传统信息系统的烟道模型,实现多平台异构系统的数据共享。
申请公布号 CN103957173B 申请公布日期 2017.02.01
申请号 CN201410206984.9 申请日期 2014.05.16
申请人 北京信诺瑞得软件系统有限公司 发明人 吴若松
分类号 H04L12/931(2013.01)I;H04L29/08(2006.01)I;H04L29/06(2006.01)I 主分类号 H04L12/931(2013.01)I
代理机构 北京市盛峰律师事务所 11337 代理人 席小东
主权项 一种语义交换机,其特征在于,所述语义交换机采用基于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格式存储,如果本语义交换机属于一个服务池,则将本语义交换机的日志审计模块所存储的内容在所述服务池中进行分片存储。
地址 101111 北京市海淀区北京经济技术开发区经海二路29号院4号楼3层302室