[发明专利]多进程间结构化文档通信方法有效
申请号: | 201210064709.9 | 申请日: | 2012-03-13 |
公开(公告)号: | CN102662774A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 邓维;叶理德;赵菁;欧燕 | 申请(专利权)人: | 中冶南方工程技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F17/30 |
代理公司: | 湖北武汉永嘉专利代理有限公司 42102 | 代理人: | 王超 |
地址: | 430223 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 结构 文档 通信 方法 | ||
技术领域
本发明涉及计算机技术及网络通信领域,特别涉及一种多进程间通信的方法。
背景技术
在Windows应用程序开发过程中,不同系统间的多个进程或者同一个系统内部不同的多个进程间都会存在信息交换。而这些进程可能分布在网络的同一个节点上,也可能分布在多个不同的节点上。面对少量的,无特殊结构的数据,现有技术已经可以很好的解决,一旦数据量繁杂并且要求有特殊的组织结构,往往需要结束本地数据文件或者数据之类的庞大并且昂贵的资源,这无疑提高了开发成本;而当某个程序内部数据结构变化时,与可能导致其关联的其他进程的通信接口发生改变,使开发过程变得繁杂,可扩展性能差。
目前,对于处于同一节点的多进程间通信,常见的通信方法有:共享内存方式、匿名管道方式、命名管道方式、WM_COPYDATA(Windows程序间传送的一种消息格式)、Sockets(网络上的一种节点通信方式)方式等。在上述方法中,共享内存的方法对于多个进程间大量数据的通信支持最好,且具有比较好的安全性,但现有的传统的共享内存方法访问方式都按实际的物理地址加字节访问的,不能按照数据的原有结构进行通信。对于在通信网络中不同节点间多进程的通信,常采用的是Sockets方法,但进行通信的数据格式比较单一,不能支持结构化的多格式的信息,且通信接口也会随其他进程数据结构的变化而变化,可扩展性能差。
发明内容
本发明所要解决的技术问题是:提供一种多进程间结构化文档通信系统和方法,通过配置,可以方便地在单节点以及多节点的多进程间灵活的交换大量的各种数据,在保证数据在交换过程中的完整性、正确性以及对应的逻辑关系的同时,还能保证很好的扩展性能。
本发明解决其技术问题采用以下的技术方案:
本发明提供的多进程间结构化文档通信方法,具体是:通信进程搜索本地通信节点的共享内存区,如果不存在,则提交创建通信用共享内存及创建结构化文档对象的申请,申请响应后注册本进程需通信的内容,序列化该文档;将序列化的文档发送至共享内存区中进行操作申请,等待直至授权;授权后,将获取的结构化文档对象反序列化以获得文档内容,再根据需求读写结构化文档并保存文档;然后序列化修改过的结构化文档,释放管理权限;最后通信进程提交网络通信申请,实现多进程间结构化文档的通信。
本发明提供的上述多进程间结构化文档通信方法,其包括以下步骤:
步骤(1),进程注册通信内容:
具体地,当进程启动时,提交共享申请直至该节点存在共享内存,然后提取该进程通过配置文件生成的或根据定义规则生成的需和其它进程通信的信息,根据要求标记信息的特征;然后检测当前共享内存数据区是否存在结构化文档,如果不存在,则创建新的文档;如果已经存在结构化文档,则将需注册的信息的特征与结构化文档中的信息进行特征匹配,如存在相同特征的信息,则删除文档中已有的信息;然后再注册对应的通信信息;
需要说明的,该步骤中所述的标记信息特征,是为每个需通信的信息分配GUID(全球唯一标识符);进程需注册的信息包含进程名、信息名以及其对应的GUID、节点IP及端口号、与之通信的进程节点进程名称和IP以及通信信息映射关系;
步骤(2),进程申请操作权限:
具体地,进程提交操作权限申请后,如未获得授权,则等待直至授权;在该进程等待过程中,除操作结构化文档的事件受阻外,其它事件仍按原有逻辑执行;
步骤(3),获取结构化文档对象,反序列化获取结构化文档并进行读写操作,
具体地,获得操作权限后,则搜索共享内存的数据区,获取结构化文档对象,并对获得的对象进行反序列化,提取结构化文档,然后进行读写操作;
步骤(4),序列化结构化文档并保存:
具体地,结构化文档修改完成后,将结构化文档进行序列化处理,保存并更新当前共享内存数据区;
步骤(5),释放操作权限:
具体地,结构化文档处理完成后,操作进程修改操作状态字,并通过触发操作完成事件将状态字提交,以此将共享数据区的权限状态修改为未授权;
步骤(6),提交网络申请:
具体地,操作进程捕捉操作状态字由未完成修改为已完成的事件生成网络申请,其申请内容包含本进程的名称、本进程所在节点的IP以及本进程所在节点共享内存数据区中与其相关的结构化文档;然后通过事件发送已经生成的网络申请;
经过上述步骤,实现对多进程间结构化文档的通信。
上述的步骤(3)中,在操作结构化文档时,遵守先读后写的原则。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中冶南方工程技术有限公司,未经中冶南方工程技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210064709.9/2.html,转载请声明来源钻瓜专利网。