多进程间结构化文档通信方法技术

技术编号:7758949 阅读:77 留言:0更新日期:2012-09-14 00:40
本发明专利技术涉及多进程间结构化文档通信的方法,即:通信进程搜索本地通信节点的共享内存区,如果不存在,则提交创建通信用共享内存及创建结构化文档对象的申请,申请响应后注册本进程需通信的内容,序列化该文档;将序列化的文档存储至共享内存区,进行操作申请,等待直至授权;授权后,将获取的结构化文档对象反序列化以获得文档内容,再根据需求读写结构化文档并保存文档;然后序列化修改过的结构化文档,释放操作权限;最后通信进程提交网络通信申请,实现多进程间结构化文档的通信。本发明专利技术用于同一节点以及不同节点间的多进程通信,具有通用性,能保证多个进程在通信过程中能实现最重要的数据优先通信、大量数据快速通信,以及数据结构化特性。

【技术实现步骤摘要】

本专利技术涉及计算机技术及网络通信领域,特别涉及ー种多进程间通信的方法。
技术介绍
在Windows应用程序开发过程中,不同系统间的多个进程或者同一个系统内部不同的多个进程间都会存在信息交換。而这些进程可能分布在网络的同一个节点上,也可能分布在多个不同的节点上。面对少量的,无特殊结构的数据,现有技术已经可以很好的解决,一旦数据量繁杂并且要求有特殊的组织结构,往往需要结束本地数据文件或者数据之类的庞大并且昂贵的资源,这无疑提高了开发成本;而当某个程序内部数据结构变化时,与可能导致其关联的其他进程的通信接ロ发生改变,使开发过程变得繁杂,可扩展性能差。 目前,对于处于同一节点的多进程间通信,常见的通信方法有共享内存方式、匿名管道方式、命名管道方式、WM_C0PYDATA(Windows程序间传送的一种消息格式)、Sockets (网络上的一种节点通信方式)方式等。在上述方法中,共享内存的方法对于多个进程间大量数据的通信支持最好,且具有比较好的安全性,但现有的传统的共享内存方法访问方式都按实际的物理地址加字节访问的,不能按照数据的原有结构进行通信。对于在通信网络中不同节点间多进程的通信,常采用的是Sockets方法,但进行通信的数据格式比较单一,不能支持结构化的多格式的信息,且通信接ロ也会随其他进程数据结构的变化而变化,可扩展性能差。
技术实现思路
本专利技术所要解决的技术问题是提供一种多进程间结构化文档通信系统和方法,通过配置,可以方便地在单节点以及多节点的多进程间灵活的交換大量的各种数据,在保证数据在交换过程中的完整性、正确性以及对应的逻辑关系的同时,还能保证很好的扩展性能。本专利技术解决其技术问题采用以下的技术方案本专利技术提供的,具体是通信进程搜索本地通信节点的共享内存区,如果不存在,则提交创建通信用共享内存及创建结构化文档对象的申请,申请响应后注册本进程需通信的内容,序列化该文档;将序列化的文档发送至共享内存区中进行操作申请,等待直至授权;授权后,将获取的结构化文档对象反序列化以获得文档内容,再根据需求读写结构化文档并保存文档;然后序列化修改过的结构化文档,释放管理权限;最后通信进程提交网络通信申请,实现多进程间结构化文档的通信。本专利技术提供的上述,其包括以下步骤步骤(I),进程注册通信内容具体地,当进程启动时,提交共享申请直至该节点存在共享内存,然后提取该进程通过配置文件生成的或根据定义规则生成的需和其它进程通信的信息,根据要求标记信息的特征;然后检测当前共享内存数据区是否存在结构化文档,如果不存在,则创建新的文档;如果已经存在结构化文档,则将需注册的信息的特征与结构化文档中的信息进行特征匹配,如存在相同特征的信息,则删除文档中已有的信息;然后再注册对应的通信信息;需要说明的,该步骤中所述的标记信息特征,是为每个需通信的信息分配GUID (全球唯一标识符);进程需注册的信息包含进程名、信息名以及其对应的GUID、节点IP及端口号、与之通信的进程节点进程名称和IP以及通信信息映射关系;步骤(2),进程申请操作权限具体地,进程提交操作权限申请后,如未获得授权,则等待直至授权;在该进程等待过程中,除操作结构化文档的事件受阻外,其它事件仍按原有逻辑执行;步骤(3),获取结构化文档对象,反序列化获取结构化文档并进行读写操作,具体地,获得操作权限后,则搜索共享内存的数据区,获取结构化文档对象,并对 获得的对象进行反序列化,提取结构化文档,然后进行读写操作;步骤(4),序列化结构化文档并保存具体地,结构化文档修改完成后,将结构化文档进行序列化处理,保存并更新当前共享内存数据区;步骤(5),释放操作权限具体地,结构化文档处理完成后,操作进程修改操作状态字,并通过触发操作完成事件将状态字提交,以此将共享数据区的权限状态修改为未授权;步骤(6),提交网络申请具体地,操作进程捕捉操作状态字由未完成修改为已完成的事件生成网络申请,其申请内容包含本进程的名称、本进程所在节点的IP以及本进程所在节点共享内存数据区中与其相关的结构化文档;然后通过事件发送已经生成的网络申请;经过上述步骤,实现对多进程间结构化文档的通信。上述的步骤(3)中,在操作结构化文档时,遵守先读后写的原则。本专利技术提供的上述多进程间结构化文档通信的方法,其用于同一节点的多进程通信。本专利技术提供的上述多进程间结构化文档通信的方法,其用于不同节点间的多进程通信,通过网络申请触发网络配对请求,不同节点的多进程配对成功则实现所述多进程间结构化文档的通信。本专利技术与现有技术相比具有以下的主要优点I.在节点开辟共享内存来存储当前节点參与通信的所有进程的通信内容,然后通过动态注册的方法,这可以任意的在现有系统上增删通信进程,而不影响现有的通信,保证了大量数据快速通信;2.设置了权限管理的步骤,使用者在开发自己程序的时候可以定义进程的优先级另IJ,能保证多个进程在通信过程中能实现最重要的数据优先通信;3.通过映射关系将内存地址映射成结构化文档中节点的相对地址,对共享内存的访问方式和数据存储进行了改进,使任何參与进程的通信数据都以结构化的形式进行读写和保存,避免了现有方法以基地址加偏移量的访问方式,保证了数据的逻辑性;4.将共享内存和sockets通讯方式结合,在同一网络节点上的多进程通过共享内存通信,而不同节点的进程间通信则使用sockets的方式,具有通用性;5.采用了序列化技术,使不同节点在通信前将通信数据序列化,接收后再进行反序列技术,保证了数据的结构化特性;6.采用了组态技术,能够在不改变现有完整程序的同时,可以动态调整不用进程间的通信变量之间的关系映射,是方法和系统具有通用性。附图说明 图I是本专利技术实施例I提供的一种多进程间结构化文档的通信方法的流程图。图2是本专利技术实施例2提供的一种多进程间结构化文档的通信方法的流程图。具体实施例方式下面将结合实施例及附图对本专利技术做进ー步的详细描述。实施例I :本实施例提供的多进程间结构化文档通信的方法,具体是信进程搜索本地通信节点的共享内存区,如果不存在,则提交创建通信用共享内存及创建结构化文档对象的申请,申请响应后注册本进程需通信的内容,序列化该文档;将序列化的文档发送至共享内存区中进行操作申请,等待直至授权;授权后,将获取的结构化文档对象反序列化以获得文档内容,再根据需求读写结构化文档并保存文档;然后序列化修改过的结构化文档,释放管理权限;最后通信进程提交网络通信申请,实现多进程间结构化文档的通信。该方法如图I所示,具体步骤如下步骤101,进程注册通信内容具体地,当进程启动时,提交共享申请直至该节点存在共享内存,然后提取该进程通过配置文件生成的或根据定义规则生成的需和其它进程通信的信息,根据要求标记信息的特征;然后检测当前共享内存数据区是否存在结构化文档,如果不存在,则创建新的文档;如果已经存在结构化文档,则将需注册的信息的特征与结构化文档中的信息进行特征匹配,如存在相同特征的信息,则删除文档中已有的信息;然后再注册对应的通信信息。需要说明的,该步骤中所述的标记信息特征,是为每个需通信的信息分配GUID (全球唯一标识符);进程需注册的信息包含进程名、信息名以及其对应的GUID、节点IP、与之通信的进程节点进程名称和IP以及通信信息映本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:邓维叶理德赵菁欧燕
申请(专利权)人:中冶南方工程技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1