基于多进程的铁路列车运行图编制系统及方法_4

文档序号:9417243阅读:来源:国知局
简单,并且逻辑清晰,但生成数据包比较耗时,并且不节省空 间;数据流形式效率高、空间省,但解析数据比较耗时。
[0133] 运行图系统内部采用的是具有严格定义的规格化数据结构,而发送进程通常是用 户正在操作的运行图编制系统,而用户对计算机事务级的处理延时并不敏感,故而将数据 转换过程放置在发送进程端更为合理。
[0134] 根据以上特点,运行图系统数据交换格式选择报文方式。
[0135] (2)数据交换的实现
[0136] 针对运行图数据的特点,设计以下数据报文结构:
[0137]
[0138] nRecvProcessID :接收进程ID,0表示所有进程均可接收。
[0139] nSendProcessID :发送进程ID,0表示主进程发送。
[0140] iProgrammerID :程序员权限ID (内部控制信息)。
[0141] i Cmd:命令代码。
[0142] nLen :数据长度,指后续Data所包含的数据长度。
[0143] Data :实际数据缓冲区,大小由nLen指定。
[0144] 发送进程按上述格式将待发送的数据转换为数据包,写入共享内享,由接收进程 解析并处理。
[0145] (3)大数据量数据交换的实现技术
[0146] 运行图系统大数据交换,实现是批量列车数据传递。由于共享内存具有数据包大 小的限制,所以不能一次性将批量列车数据全部发送到其它进程。
[0147] 针对列车数据的特点,将批量数据按每列车的数据进行自然切分,每次只传递一 列车的全部信息,逐步传输所有数据。为了保证数据全部被传输,加入了 "处理一一应答"机 制,即发送进程每发送一次数据,接收进程以明确的方式告之数据被接收,否则发送方将重 复发送,或者在人工干预情况下停止数据发送。
【主权项】
1. 一种基于多进程的铁路列车运行图编制方法,其特征在于,步骤如下: 51 :保持原有C/S网络结构不变,将原应用程序升级至64bit系统; 52 :在原客户端进程中建立副进程管理机制,其中副进程中铁路列车运行图编制相关 功能与主进程一致,但不控制操作权限,即用户在副进程中具有最高操作权限; 53 :增加主进程与副进程间的通信功能,并建立主副进程间数据同步协调机制,实现主 副进程间运行图数据的交换; S4:在主进程中建立数据权限管理机制,接收到副进程发送过来的运行图数据后,根据 主进程的权限对数据进行处理,将符合权限范围的运行图数据提交至运行图服务器。2. 根据权利要求1所述的一种基于多进程的铁路列车运行图编制方法,其特征在于, S2所述副进程由主进程采用复制方式创建,创建过程如下: S21准备工作:确定副进程的类型,开辟共享内存,创建进程间互斥访问共享内存的 Mutex互斥量,并创建进程间通知事件,记录各变量的句柄或名称,根据副进程类型,导出 主进程全部内存数据,生成副进程所需的数据文件,或是让用户指定副进程所需加载的列 车运行图数据库; S22创建副进程:调用操作系统功能函数,创建子进程,并传入子进程初始化所需的全 部参数; S23子进程通信初始化:根据传入参数,获取共享内存、Mutex互斥量、通知事件的句 柄,保存到本进程通信模块参数中,从而建立进程间通信数据通道和消息体系; S24子进程数据初始化:根据传入参数,导入主进程生成的数据文件,或加载主进程指 定的列车运行图数据库。3. 根据权利要求1或2所述的一种基于多进程的铁路列车运行图编制方法,其特征在 于,S3所述主副进程数据同步协调机制建立步骤如下: S31创建进程信息管理数据结构; S32创建进程自检:进程创建之初,根据传入的参数信息,确定进程身份信息,并记录 于S31所述结构中,主进程的父进程ID号为0,子进程则根据参数信息记录父进程的ID号; S33创建子进程启动与退出同步机制; 主进程创建子进程之前,首先建好共享内存、Mutex互斥量和通知事件,然后根据副进 程类型设置子进程启动参数,调用系统函数启动子进程,同时把各类参数传递到子进程,并 记录函数返回信息,生成子进程进程信息节点,记录到子进程信息列表中; 子进程早于主进程退出时,向共享内存写入退出信息,通知主进程,然后立即退出,主 进程收到通知后,获取共享内享信息,从子进程列表中删除已相关记录; 主进程早于子进程退出时,同样在共享内存中发出退出命令,然后通过对进程句柄事 件的检测,等待子进程退出,如果子进程退出超时,则强制结束子进程,在所有子进程退出 后,撤销共享内存、互斥量和通知事件,结束本进程。 S34子进程查询:根据子进程信息列表记录内容,获取所有子进程信息,指定子进程ID 或句柄进行查询。4. 根据权利要求3所述的一种基于多进程的铁路列车运行图编制方法,其特征在于, S3所述主进程与副进程通信方法如下: 进程启动后,通过创建或参数传递方式获取了共享内存句柄、进程通信Mutex互斥量 句柄、进程通知事件句柄,以此建立了进程间通信的基本通道; 在建立了通信通道后,进程中启用专用线程,用以监测通知事件消息,调用 WaitForSingleObjectO基础API函数,通过睡眠方式,等待全局通知事件消息的触发;当 线程被唤醒后,检测系统环境,确保正常时,立即对Mutex互斥量加锁,从共享内存中取数 据并复制到私有内存中,然后触锁,将数据交由主线程分析处理。5. 根据权利要求4所述的一种基于多进程的铁路列车运行图编制方法,其特征在于, 所述启用专用线程,用以监测通知事件消息的监听步骤如下: 步骤1 :进入循环,等待"事件"信号触发; 步骤2 :收到事件,或是在较长时间的等待后自动唤醒,即时检查系统环境;如果检测 到了系统退出标志,则不再继续执行,退出线程;如果是系统环境正常,则进行下一步处理。 步骤3 :调用相关处理,读取共享内存中接收到的数据; 步骤4 :如果未收取到任何数据,系统睡眠一定时间,然后重新返回到第1步;如果收到 数据,则进行下一步处理; 步骤5 :简单分析数据头,判断数据类型;如果是控制命令,在本线程中立即分析处理; 如果是运行图系统数据,进行下一步处理; 步骤6 :开辟缓存,复制数据,将缓存数据发送到主线程,交由相关控制程序自动分析 处理; 步骤7 :清除共享内存中的过期数据; 步骤8 :如果是大数据交换过程,设置应答处理标志; 步骤9 :整个处理过程发现异常,则报告或记录异常,否则返回到第1步,进行下一轮等 待。6. 根据权利要求5所述的一种基于多进程的铁路列车运行图编制方法,其特征在于, S3所述主副进程间运行图数据的交换方法如下: 针对列车数据的特点,将批量数据按每列车的数据进行自然切分,每次只传递一列车 的全部信息,逐步传输所有数据,另外加入"处理一一应答"机制,即发送进程每发送一次数 据,接收进程以明确的方式告之数据被接收,否则发送方将重复发送,或者在人工干预情况 下停止数据发送。7. -种基于多进程的铁路列车运行图编制系统,其特征在于,所述系统采用C/S架构, 具有一台服务器,至少一台客户端,各客户端终端均包含一个主进程和一个副进程,副进程 除不具备与服务器通信功能外,其他功能与主进程完全一致;主进程包含副进程管理模块, 实现副进程的调度管理,可创建或销毁副进程;主进程和副进程中均包含运行图内存数据, 主进程中的运行图数据从服务器获取,主进程实现列车运行图的网络协同编制,副进程可 直接从主进程中复制运行图数据,也可以从本地离线数据中读取运行图数据,副进程中用 户操作不受路局管辖范围的限制,用户可在全路范围内编制、验证运行图,将满意结果从副 进程发送给主进程,再由主进程上传至运行图服务器;主进程和副进程均包含进程间通信 模块、数据交换模块、主副进程间同步与协调模块,以上模块用于主副进程间数据进行通信 交换。
【专利摘要】本发明公开了一种基于多进程的铁路列车运行图编制系统及方法,属于计算机交通应用领域,本发明采用多进程技术建立编图系统的副进程,主进程作为编图客户端在联网模式下运行,主进程按复制方式创建副进程,副进程离线运行,无权限控制,并配置与主进程相同编图、数据处理等功能,主、副进程相对独立,用户在副进程中的操作属离线操作,不会干扰联网编图,主、副进程间通过双向通信机制进行数据交换。本发明克服了原技术方案中,跨局列车运行图方案验证困难、编制繁琐、离线数据提取粒度大、可视化程度低、效率不高的缺点,可在不干扰联网编图工作进程的情况下,进行跨局列车运行图的编制及离线数据的提取,提高列车运行图的编制、数据处理效率。
【IPC分类】G06F9/54
【公开号】CN105138409
【申请号】CN201510528288
【发明人】倪少权, 吕红霞, 赵春雷, 廖常宇, 谢春, 潘金山, 张 杰, 郭秀云, 陈韬, 孟昭明, 王宝杰, 李雪婷, 吕苗苗, 陈钉均
【申请人】西南交通大学, 中国铁路总公司
【公开日】2015年12月9日
【申请日】2015年8月25日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1