本发明专利技术属于Windows系统下的异构程序交互方法技术领域,具体涉及一种Windows系统下避免读写冲突、保证交互正确进行的基于文件名的异构程序交互方法。包括以下方面:(一)系统中涉及的基本程序:(1.1)界面程序;(1.2)计算程序;(1.3)异构程序。(二)文件名的命名规则。(三)基于文件名的异构程序交互方法实施步骤:(3.1)确定异构程序文件夹目录。(3.2)设定异构程序交互信息。(3.3)P1接收N个信息的步骤。(3.3)P1发送M个信息的步骤。异构程序P1和P2处于对等位置,P2的信息发送和接收与P1的信息发送和接收采用上述同样的方法。本发明专利技术与传统的交互方式相比,大大提高了异构程序交互的成功率,保证了异构程序相互协调正确执行。
【技术实现步骤摘要】
Windows系统下基于文件名的异构程序交互方法
本专利技术属于Windows系统下的异构程序交互方法
,具体涉及一种Windows系统下避免读写冲突、保证交互正确进行的基于文件名的异构程序交互方法。
技术介绍
异构程序指不同的可执行程序,如Windows系统下相互独立的可执行程序,即相互独立的EXE文件。程序内部的函数调用不是异构程序。在气动流场或者飞行器总体性能仿真中,用户常常需要修改已经存在的模型结构、参数,或者增加新的模型,以反映不同情况下的系统运行状态,因此要求相应的仿真软件具有与其它异构程序的交互能力。读写冲突指进程或者程序同时读写数据(内存空间)时产生的逻辑冲突。计算机体系结构中定义的读写冲突主要包含写后写冲突、读后写冲突、写后读冲突和读后读冲突。Windows系统对文件读写控制比较严格,一般情况下程序P1打开文件,在没有关闭之前另一个程序P2不能打开该文件,无论是P2对该文件进行读、写或者读写操作。异构程序,下文简写为P1,P2,常用的交互方法有以下4种:1)客户端/服务器(C/S)模式P1与P2通过服务器中转的方式进行交互,如附图1所示。其中P1,P2分别代表两个客户端。假如P1需要发送一个信息给P2,则需要通过如下三个步骤完成:步骤1:P1连接服务器,把信息发送到服务器,服务器接收并存储;P1轮询P2是否成功获取该信息。步骤2:P2连接服务器,轮询服务器相应信息是否到达,如果信息到达则获取相应信息。获取成功后,通知服务器,并断开与服务器的连接。步骤3:服务器等待P2获取信息成功后,设置相应标记位,P1轮询确认信息发送成功,断开与服务器的连接。2)直接通信模式(TCP/IP等)直接通信模式与C/S模式相比,只是缺少了独立的第三方服务器的中转。P1、P2直接相互连接进行交互如图2所示,即P1、P2分别为服务器和客户端。假设P2需要发送一个信息给P1,则需要如下三个步骤:步骤1:P2查询P1的服务器地址,连接并给P1发送信息。步骤2:P1接收信息并确认。步骤3:P2收到确认消息并断开连接。3)共享存储模式共享存储模式指P1(或者P2)在内存中开辟一块地址空间,P2(或者P1)引用同一块地址空间。4)共享文件模式共享文件模式指通过读写文件来进行交互。假设P1需要发送一个信息给P2,则需要如下二个步骤:步骤1:P1打开文件A,把信息写入文件A,关闭文件A;步骤2:P2打开文件A,读取信息,关闭文件A。但是上述的异构程序交互方法都存在相当的不足之外。客户端/服务器模式需要独立的第三方服务器,这对于普通的应用程序而言,这样的条件一般不成立。直接通信模式需要知晓对方的IP地址,频繁连接和断开连接,而相应的TCP/IP信息收发模块增加了程序本身的复杂度。共享存储模式和共享文件模式都存在需要程序本身处理读写冲突的问题。因此,亟需研制一种基于文件名的异构程序交互方法,从而可以方便异构程序之间的信息交互,避免读写冲突、减少开发的难度和降低异构程序之间的耦合度。
技术实现思路
本专利技术要解决的技术问题是提供一种Windows系统下基于文件名的异构程序交互方法,以避免读写冲突,提高异构交互成功率。为了实现这一目的,本专利技术采取的技术方案是:一种Windows系统下基于文件名的异构程序交互方法,包括以下方面:(一)系统中涉及的基本程序:(1.1)界面程序通过文件名的方式获取计算程序的运行状态信息,实时显示计算程序的运行状态;(1.2)计算程序获取界面程序的控制指令信息,界面程序对计算程序的运行逻辑进行控制;(1.3)异构程序通过文件名交换信息,其它程序通过解释给定规则的文件名读取相应信息。(二)文件名的命名规则:异构程序产生一条信息时生成一个文件,信息内容全部包含在文件名中;文件名命名规则如下所示:文件名包含三个字段,分别表示信息源、信息编号、信息内容;字段相互之间以下划线“_”连接;信息内容的解释方法由异构程序之间相互协调并由信息接收方实现。(三)基于文件名的异构程序交互方法实施步骤:(3.1)确定异构程序文件夹目录:异构程序交互包含信息接收和信息发送两部分;异构程序文件夹目录结构包含异构程序P1、P2和用于放置信息交流文件的文件夹TEMP。(3.2)设定异构程序交互信息:设定P1需要向P2发送M个信息,P2需要向P1发送N个信息,M、N为大于0的正整数;在P1程序的运行过程中,创建一系列符合文件名命名规则的文件,名称分别为P1_1_内容1,P1_2_内容2,……,P1_M_内容M;在P2程序的运行过程中,创建一系列符合文件名命名规则的文件,名称分别为P2_1_内容1,P2_2_内容2,……,P2_N_内容N。(3.3)P1接收N个信息的步骤:步骤1:P1程序开始执行;步骤2:P1执行程序本身设定的算术逻辑处理;步骤3:创建包含N个元素的接收信息集合Array和表示已经接收的信息个数的标记iReceived;步骤4:如果目录TEMP不存在则转步骤5,否则转步骤6;步骤5:创建目录TEMP;步骤6:设定iReceived=0;步骤7:获取目录TEMP下面的包含文件名的字符串列表,设其个数为K,0<K≤N+M;步骤8:标记目录TEMP下面的各个文件的遍历变量为k,设定k=0;步骤9:k=k+1;步骤10:如果第k个文件名的前三个字符是“P2_”,则表示第k个文件是由P2程序发来的信息,转步骤11,否则转步骤15;步骤11:将第k个文件名第二个字段即第一个下划线和第二个下划线之间的字符串转换为整数j,即其信息编号j;步骤12:如果iReceived<j,则转步骤13,否则转步骤15;步骤13:把第k个文件名包含的信息置为集合Array的第j个元素;步骤14:iReceived=iReceived+1;步骤15:如果k<K,转步骤9,否则转步骤16;步骤16:P1执行程序本身设定的算术逻辑处理;步骤17:如果iReceived<N,转步骤7,否则转步骤18;步骤18:P1执行程序本身设定的算术逻辑处理,直到满足程序运行终止条件。(3.3)P1发送M个信息的步骤:步骤1:P1程序开始执行;步骤2:P1执行程序本身设定的算术逻辑处理;步骤3:将内存中创建已经发送的信息个数标记为i;步骤4:设定i=0;步骤5:P1执行程序本身设定的算术逻辑处理;步骤6:i=i+1;步骤7:输出名称为“P1_i_内容i”,其中“内容i”由程序本身的算术逻辑确定;步骤8:如果i<M,转步骤5,否则转步骤9;步骤9:P1执行程序本身设定的算术逻辑处理,直到满足程序运行终止条件。异构程序P1和P2处于对等位置,P2的信息发送和接收与P1的信息发送和接收采用上述同样的方法。进一步的,如上所述的一种Windows系统下基于文件名的异构程序交互方法,该方法的测试平台为工作机惠普Z400和工作站惠普Z800,Z400的操作系统为WindowsXPSP3,Z800的操作系统为Windows7。进一步的,如上所述的一种Windows系统下基于文件名的异构程序交互方法,异构程序P1是界面程序F1,异构程序P2是Fortran语言开发的气动流场计算程序CFD1。进一步的,如上所述的一种Windows系统下基于文件名的异构程序交互方本文档来自技高网...
【技术保护点】
Windows系统下基于文件名的异构程序交互方法,其特征在于:(一)系统中涉及的基本程序:(1.1)界面程序通过文件名的方式获取计算程序的运行状态信息,实时显示计算程序的运行状态;(1.2)计算程序获取界面程序的控制指令信息,界面程序对计算程序的运行逻辑进行控制;(1.3)异构程序通过文件名交换信息,其它程序通过解释给定规则的文件名读取相应信息;(二)文件名的命名规则:异构程序产生一条信息时生成一个文件,信息内容全部包含在文件名中;文件名命名规则如下所示:文件名包含三个字段,分别表示信息源、信息编号、信息内容;字段相互之间以下划线“_”连接;信息内容的解释方法由异构程序之间相互协调并由信息接收方实现;(三)基于文件名的异构程序交互方法实施步骤:(3.1)确定异构程序文件夹目录:异构程序交互包含信息接收和信息发送两部分;异构程序文件夹目录结构包含异构程序P1、P2和用于放置信息交流文件的文件夹TEMP;(3.2)设定异构程序交互信息:设定P1需要向P2发送M个信息,P2需要向P1发送N个信息,M、N为大于0的正整数;在P1程序的运行过程中,创建一系列符合文件名命名规则的文件,名称分别为P1_1_内容1,P1_2_内容2,……,P1_M_内容M;在P2程序的运行过程中,创建一系列符合文件名命名规则的文件,名称分别为P2_1_内容1,P2_2_内容2,……,P2_N_内容N;(3.3)P1接收N个信息的步骤:步骤1:P1程序开始执行;步骤2:P1执行程序本身设定的算术逻辑处理;步骤3:创建包含N个元素的接收信息集合Array和表示已经接收的信息个数的标记iReceived;步骤4:如果目录TEMP不存在则转步骤5,否则转步骤6;步骤5:创建目录TEMP;步骤6:设定iReceived=0;步骤7:获取目录TEMP下面的包含文件名的字符串列表,设其个数为K,0<K≤N+M;步骤8:标记目录TEMP下面的各个文件的遍历变量为k,设定k=0;步骤9:k=k+1;步骤10:如果第k个文件名的前三个字符是“P2_”,则表示第k个文件是由P2程序发来的信息,转步骤11,否则转步骤15;步骤11:将第k个文件名第二个字段即第一个下划线和第二个下划线之间的字符串转换为整数j,即其信息编号j;步骤12:如果iReceived<j,则转步骤13,否则转步骤15;步骤13:把第k个文件名包含的信息置为集合Array的第j个元素;步骤14:iReceived=iReceived+1;步骤15:如果k<K,转步骤9,否则转步骤16;步骤16:P1执行程序本身设定的算术逻辑处理;步骤17:如果iReceived<N,转步骤7,否则转步骤18;步骤18:P1执行程序本身设定的算术逻辑处理,直到满足程序运行终止条件;(3.3)P1发送M个信息的步骤:步骤1:P1程序开始执行;步骤2:P1执行程序本身设定的算术逻辑处理;步骤3:将内存中创建已经发送的信息个数标记为i;步骤4:设定i=0;步骤5:P1执行程序本身设定的算术逻辑处理;步骤6:i=i+1;步骤7:输出名称为“P1_i_内容i”,其中“内容i”由程序本身的算术逻辑确定;步骤8:如果i<M,转步骤5,否则转步骤9;步骤9:P1执行程序本身设定的算术逻辑处理,直到满足程序运行终止条件;异构程序P1和P2处于对等位置,P2的信息发送和接收与P1的信息发送和接收采用上述同样的方法。...
【技术特征摘要】
1.Windows系统下基于文件名的异构程序交互方法,其特征在于:(一)系统中涉及的基本程序:(1.1)界面程序通过文件名的方式获取计算程序的运行状态信息,实时显示计算程序的运行状态;(1.2)计算程序获取界面程序的控制指令信息,界面程序对计算程序的运行逻辑进行控制;(1.3)异构程序通过文件名交换信息,其它程序通过解释给定规则的文件名读取相应信息;(二)文件名的命名规则:异构程序产生一条信息时生成一个文件,信息内容全部包含在文件名中;文件名命名规则如下所示:文件名包含三个字段,分别表示信息源、信息编号、信息内容;字段相互之间以下划线“_”连接;信息内容的解释方法由异构程序之间相互协调并由信息接收方实现;(三)基于文件名的异构程序交互方法实施步骤:(3.1)确定异构程序文件夹目录:异构程序交互包含信息接收和信息发送两部分;异构程序文件夹目录结构包含异构程序P1、P2和用于放置信息交流文件的文件夹TEMP;(3.2)设定异构程序交互信息:设定P1需要向P2发送M个信息,P2需要向P1发送N个信息,M、N为大于0的正整数;在P1程序的运行过程中,创建一系列符合文件名命名规则的文件,名称分别为P1_1_内容1,P1_2_内容2,……,P1_M_内容M;在P2程序的运行过程中,创建一系列符合文件名命名规则的文件,名称分别为P2_1_内容1,P2_2_内容2,……,P2_N_内容N;(3.3)P1接收N个信息的步骤:步骤1:P1程序开始执行;步骤2:P1执行程序本身设定的算术逻辑处理;步骤3:创建包含N个元素的接收信息集合Array和表示已经接收的信息个数的标记iReceived;步骤4:如果文件夹TEMP不存在则转步骤5,否则转步骤6;步骤5:创建文件夹TEMP;步骤6:设定iReceived=0;步骤7:获取文件夹TEMP下面的包含文件名的字符串列表,设其个数为K,0<K≤N+M;步骤8:标记文件夹TEMP下面的各个文件的遍历变量为k,设定k=0;步骤9:k=k+1;步骤10:如果第k个文件名的前三个字符是“P2_”,则表示第k个文件是由P2程序发来的信息,转步骤11,否则转步骤15;步骤11:将第k个文件名第二个...
【专利技术属性】
技术研发人员:龚春叶,闵昌万,刘璟,王建林,高鹏,禹彩辉,孙学功,胡东飞,
申请(专利权)人:北京临近空间飞行器系统工程研究所,中国运载火箭技术研究院,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。