通用接口机系统及其实现方法

文档序号:6590103阅读:178来源:国知局
专利名称:通用接口机系统及其实现方法
技术领域
本发明涉及信息处理技术,具体通信接口的软件技术,更具体地说,涉及一种通用接口机系统以及它的一种模式化实现方法。
本发明要解决的另一个技术问题是,提供一种接口机系统的模式化实现方法,利用这种方法,用户可按照标准的程序模式,只需关心用户的需求,就可简单实现一个接口机系统。
本发明的第一个技术问题这样解决,构造一种通用接口机系统,包括公用动态连接库、软件模版、可执行性程序IMP和多个业务模块,所述可执行性程序IMP由总控模块、时钟模块、通讯模块、数据库接口模块通过联合编译而成,所述公用动态连接库包含一系列与IMP实现交互的函数原语,所述软件模版提供实现一个接口机的简单指引,所述业务模块根据具体的业务需求,通过访问所述公用动态连接库和所述软件模版,生成与所述业务需求对应的代码,并与所述公用动态连接库和所述软件模版联合生成一个业务动态连接库,所述可执行文件IMP根据配置文件的配置,在启动运行时同时加载所述业务动态连接库。
按照本发明提供的接口机系统,包含在所述可执行文件IMP中的总控模块根据配置文件来决定是否启动同在所述可执行文件IMP中的通讯模块、数据库接口模块,并维持整个系统的稳定运行。
按照本发明提供的接口机系统,包含在所述可执行文件IMP中的时钟模块向其他模块提供一个高性能的软件时钟,用以实现定时功能。
按照本发明提供的接口机系统,包含在所述可执行文件IMP中的所述数据库接口模块通过与具体的数据库建立连接实现数据库的屏蔽,所述业务模块对数据库操作是通过将组织好的相应的数据库语句发给所述数据库接口模块,所述数据库模块处理完成后把操作结果返回给该业务模块来实现的。
按照本发明提供的接口机系统,包含在所述可执行文件IMP中的所述通讯模块,根据配置文件决定与谁通信,并把相关的通信信息发送给具体的业务模块去处理。
本发明另一技术问题这样解决,构造一种通用接口机系统实现方法,包括以下步骤将总控模块、时钟模块、通讯模块、数据库接口模块通过联合编译而成可执行性程序IMP;为系统内每个模块设置唯一的pno,用于标志系统内的每个线程,将不同区间范围的Pno分别预分给所述通讯模块、所述总控模块、所述时钟模块、所述数据库模块和所述业务模块使用;每创建一个线程就有一个PCB记录与之对应,设置一个总控模块,管理各线程控制块的PCB结构;通过调用所述IMP提供的函数原语,基于预定的程序模版实现用户的具体业务需求。
在按照本发明的上述实现方法中,设置所述时钟模块用来向系统内的其他模块提供软件定时功能,每隔100毫秒扫描一遍软件定时器的数据区,检查有没有定时器定时已到,如果有,便向设置定时器的线程发送一条定时器消息;设置所述数据库接口模块,用于利用数据库提供的API接口创建数据库连接线程,使得其他模块可通过向数据库连接线程发送数据库操作消息实现数据库操作以及在数据库连接线程处理完后返回应答消息给发送数据库操作的模块;设置通讯模块采用多线程程序设计的方法,每接收或连接一个socket连接,就创建两个线程来处理,一个从tcp上接收消息,然后转发给本节点;一个从消息队列中接收消息,用来发送到对方节点上。
在按照本发明的上述实现方法中,所述业务模块与所述IMP之间采用动态连接库方式接入,每个业务模块或几个业务模块根据配置提供一个或多个动态连接库,与所述IMP部分组成一个进程来实现。
在按照本发明的上述实现方法中,所述总控模块执行以下总控步骤读取配置文件;启动时钟线程;检查配置文件中是否包含通讯配置,如有通讯配置则启动通讯线程;检查配置文件中是否有数据库配置,如有数据库配置,则启动数据库线程;检查配置文件中是否有业务模块的配置信息,如有业务模块配置信息,则启动业务模块;向每个已启动的线程发送初始化消息,进入接收消息并处理消息的消息循环处理步骤。
实施本发明提供的通用接口机系统及其实现方法,由于一个接口机系统包含有五个模块总控模块、时钟模块、通讯模块、数据库接口模块、业务模块(或多个),但由于其中四个模块总控模块、时钟模块、通讯模块、数据库接口模块独立出来组成一个单独的可执行程序IMP,接口机系统的编制者就毋需关心TCP/IP协议、操作系统、数据库系统。由于IMP提供了公用的动态连接库和通用的公共模版,具体的接口机编制者实现了业务模块的模式化、简单化。由于可以叠加多个业务模块,这样在一台计算机上可以实现多个接口机的功能。基于IMP这样的特殊结构,实现了多套接口机系统的实现,其实例如下在移动智能网产品中,MML(人机命令语言)的实现采用了IMP的实现方式,极大地提供了软件效率,减少了软件成本。在固定智能网产品中,开封电话自动缴费系统也采用了IMP的软件结构方式。实践证明,本发明提出的IMP是实现接口机系统的一种非常好的方式。使得在做接口机系统时,如果用户需要实现多个接口机系统,可在一台计算机上实现,极大地降低了软件和硬件成本。
其中,总控模块101根据配置文件来决定是否启动通讯模块103、数据库接口模104块,并维持整个系统的稳定运行。时钟模块102提供一个高性能的软件时钟,其他模块利用这样的软件时钟,以实现定时的功能。数据库接口模块104通过与具体的数据库建立连接,实现了屏蔽数据库的功能,业务模块105如果要对数据库操作,只需组织好相应的数据库语句,发给数据库接口模块104,数据库模块104处理完成后把操作结果返回给业务模块105。通讯模块103根据配置文件决定与谁通信,并把相关的通信信息发送给具体的业务模块105去处理。


图1给出的通用接口机内部的模块关系图中,总控模块101、时钟模块102、数据库模块104、通讯模块103共同构成了一个接口机的IMP平台106,业务模块105与IMP平台106之间采用动态连接库的方式进行接入,每个业务模块或几个业务模块105根据配置提供一个或多个动态连接库,与IMP平台部分106组成一个进程来实现。系统内的每个模块,都有相应的pno与之对应,pno是用来唯一标志系统内的每个线程。Pno的范围从1-400,1-255分配给通讯模块103使用,260-270分配给总控模块101和时钟模块102使用,270-299分配给数据库模块104使用,300-400分配给业务模块105使用。总控模块101管理一个称为线程控制块的PCB结构,每个线程创建后都有一个PCB记录与之对应。对于每个业务线程,有统一的命名规则,如果pno为300,则其动态连接库的名称为service300.sl(针对hpux操作系统),service300.so(针对aix操作系统),service300.dll(针对WindowsNT操作系统),等等,在模版文件中函数名称也同时如下service300(…)。在程序编制时,调用IMP平台提供的函数原语,按程序的模版来实现用户的具体业务需求。时钟模块用来向系统内的其他模块提供软件定时的功能,它每隔100毫秒扫描一遍软件定时器的数据区,检查有没有定时器定时已到,如果有,便向设置定时器的线程发送一条定时器消息。数据库接口模块利用数据库提供的API接口创建数据库连接线程,其他的模块如果需要对数据库操作,就向数据库连接线程发送数据库操作消息,数据库连接线程处理完后返回应答消息给发送数据库操作的模块。通讯模块103采用多线程程序设计的方法,每接收或连接一个socket连接,就创建两个线程来处理,一个从tcp上接收消息,然后转发给本节点;一个从消息队列中接收消息,用来发送到对方节点上,具体过程将结合图3-图5加以说明。
图1中的查询和跟踪模块107处于IMP系统之外,它向IMP106发送查询或跟踪消息,IMP106接收到查询或跟踪消息后,把IMP106内部的一些全局数据区(比如通讯链路数据库,线程控制块数据区)或跟踪消息返回给查询和跟踪模块107。
图2描述了IMP中的总控模块是如何启动IMP软件。即图2描述了总控模块101的工作流程。首先,在框201读取配置文件,在框202启动时钟模块,在框203中判断,如果配置文件中有通讯模块,则在框204启动通讯模块;在框205中检查配置文件中是否有数据库模块(数据库配置为1),如有则在框206启动数据库线程,在框207中检查配置文件中有无业务模块信息,如果配置文件中配置了业务模块的pno号,在框208系统调用相应的业务模块的动态连接库,并启动业务模块线程进到框209,如果配置文件中没有业务模块配置信息则直接进到框209,由系统向已启动的各模块发送初始化消息,最后,在框210,进入消息循环,接收消息并处理消息。
图3和图4描述了通讯模块是如何与通用接口机中的其他模块进行通讯。其中,图3描述了IMP中的通讯模块是如何与TCP/IP接口,并提供通用的通讯功能。图4描述了一个tcp连接创建成功后是如何和其他模块进行通讯。
参考图3和图4,通讯模块实现了同时兼容多个server端口和多个client端口的功能,由于每个接口机的通讯结构和通讯方式各不相同,因此设计时通讯模块完成如下功能通讯连接的建立、通讯连接的取消、接受不同端口的通讯连接、发送消息、接收消息。其主要思想是对于每一个节点(一般为对端的计算机)的通讯,需要有一个主要的业务模块线程与之对应,通讯模块在收到消息后,把消息统一发给主业务模块线程。一个接口机模块可能会有多个业务模块来处理,但其中必须设定一个主业务模块,其他的为从业务模块。从业务模块的消息通讯统一由主业务模块来转发。通讯模块的实现采用多线程阻塞通讯的设计思想,每接收或建立一条连接成功后建立两个线程,一个线程阻塞在tcp上负责接收从外部来的消息,只要这个消息非0,他就把这个消息加上消息头MSGHEAD发送给与此连接相关联的主业务模块中去,另一个线程阻塞在消息队列上负责从消息队列中读取消息,并把这个消息从socket中发送出去。同时通讯模块提供若干原语调用,负责建立连接、清除连接、获取节点信息等。通过以上的方式实现了通讯模块的通用化,屏蔽了复杂的TCP/IP协议。
具体对附图3说明如下当在框301中接收到的消息是初始化消息,则执行框302-309,即在框302读取通讯配置,在框303检查是否有服务器配置,如有则在框304创建监听线程,如在框305中检查出有客户端配置,则在框306向已配置的节点连接,在框307中检查是否成功,如成功在框308进入下面的处理,否则在框309设置时钟信号。
当在框301中接收到的消息是建立连接消息,则执行框310-312,即在框310根据接收到的节点信息进行通讯连接,在框311判断通讯连接是否成功,如成功则在框312进入相应流程;当在框301中接收到的消息是关闭连接消息,则执行框313,关闭通讯线程,重置通讯数据区内容;当在框301中接收到的消息是时钟消息,则在框314内向需要发送链路检查包的节点发送检查包消息;当在框301中接收到的消息是模块退出消息,则在框315清除通讯数据区内容并推出通讯模块。
图4中,当监听到连接(框401)或作为客户端发起向某节点连接成功(框402),则在框403,创建一个线程来从tcp上接收消息;如在框404判断接收成功,则在框405创建一个线程用来从消息队列中接收消息,如接收成功(框406),则在框407填充通讯数据区内容,如不成功,在框408关闭前一个线程。
图5描述了IMP和两个节点进行通讯时的数据流向。在图中描述了这样的应用这个接口机系统需要同两个节点进行通讯,其业务模块共有三个,主业务线程、从线程1、从线程2,图中可以直观地看到在IMP系统中的消息流向,其中第二列为IMP系统中创建的通讯线程。
在图中我们可以看到从线程508接收一条消息的流程如下外部节点501到从tcp上接收消息的线程504,到主业务线程507,到从线程508;外部节点502到从tcp上接收消息的线程505,到主业务线程507,到从线程508;从线程508发送一条消息的流程如下从线程508到从消息队列上接收消息的线程503,到外部节点501;
从线程508,到从消息队列上接收消息的线程504到外部节点502;同样我们也可以看到从线程509接收一条消息的流程如下外部节点501到从tcp上接收消息的线程505,到主业务线程507,到从线程509;外部节点502到从tcp上接收消息的线程505,到主业务线程507,到从线程509;从线程508发送一条消息的流程如下从线程509到从消息队列上接收消息的线程506,到外部节点501;从线程509到从消息队列上接收消息的线程506,到外部节点502。
权利要求
1.一种通用接口机系统,其特征在于,包括公用动态连接库、软件模版、可执行性程序IMP和多个业务模块,所述可执行性程序IMP由总控模块、时钟模块、通讯模块、数据库接口模块通过联合编译而成,所述公用动态连接库包含一系列与IMP实现交互的函数原语,所述软件模版提供实现一个接口机的简单指引,所述业务模块根据具体的业务需求,通过访问所述公用动态连接库和所述软件模版,生成与所述业务需求对应的代码,并与所述公用动态连接库和所述软件模版联合生成一个业务动态连接库,所述可执行文件IMP根据配置文件的配置,在启动运行时同时加载所述业务动态连接库。
2.根据权利要求1所述接口机系统,其特征在于,包含在所述可执行文件IMP中的总控模块根据配置文件来决定是否启动同在所述可执行文件IMP中的通讯模块、数据库接口模块,并维持整个系统的稳定运行。
3.根据权利要求1所述接口机系统,其特征在于,包含在所述可执行文件IMP中的时钟模块向其他模块提供一个高性能的软件时钟,用以实现定时功能。
4.根据权利要求1所述接口机系统,其特征在于,包含在所述可执行文件IMP中的所述数据库接口模块通过与具体的数据库建立连接实现数据库的屏蔽,所述业务模块对数据库操作是通过将组织好的相应的数据库语句发给所述数据库接口模块,所述数据库模块处理完成后把操作结果返回给该业务模块来实现的。
5.根据权利要求1所述接口机系统,其特征在于,包含在所述可执行文件IMP中的所述通讯模块,根据配置文件决定与谁通信,并把相关的通信信息发送给具体的业务模块去处理。
6.一种接口机系统实现方法,包括以下步骤将总控模块、时钟模块、通讯模块、数据库接口模块通过联合编译而成可执行性程序IMP;为系统内每个模块设置唯一的pno,用于标志系统内的每个线程,将不同区间范围的Pno分别预分给所述通讯模块、所述总控模块、所述时钟模块、所述数据库模块和所述业务模块使用;每创建一个线程就有一个PCB记录与之对应,设置一个总控模块,管理各线程控制块的PCB结构;通过调用所述IMP提供的函数原语,基于预定的程序模版实现用户的具体业务需求。
7.根据权利要求6所述实现方法,其特征在于,设置所述时钟模块用来向系统内的其他模块提供软件定时功能,每隔100毫秒扫描一遍软件定时器的数据区,检查有没有定时器定时已到,如果有,便向设置定时器的线程发送一条定时器消息;设置所述数据库接口模块,用于利用数据库提供的API接口创建数据库连接线程,使得其他模块可通过向数据库连接线程发送数据库操作消息实现数据库操作以及在数据库连接线程处理完后返回应答消息给发送数据库操作的模块;设置通讯模块采用多线程程序设计的方法,每接收或连接一个socket连接,就创建两个线程来处理,一个从tcp上接收消息,然后转发给本节点;一个从消息队列中接收消息,用来发送到对方节点上。
8.根据权利要求7所述实现方法,其特征在于,所述业务模块与所述IMP之间采用动态连接库方式接入,每个业务模块或几个业务模块根据配置提供一个或多个动态连接库,与所述IMP部分组成一个进程来实现。
9.根据权利要求7所述实现方法,其特征在于,所述总控模块执行以下总控步骤读取配置文件;启动时钟线程;检查配置文件中是否包含通讯配置,如有通讯配置则启动通讯线程;检查配置文件中是否有数据库配置,如有数据库配置,则启动数据库线程;检查配置文件中是否有业务模块的配置信息,如有业务模块配置信息,则启动业务模块;向每个已启动的线程发送初始化消息,进入接收消息并处理消息的消息循环处理步骤。
10.根据权利要求6所述实现方法,其特征在于,所其特征在于,将查询和跟踪模块处于IMP之外,在查询或跟踪时,由所述查询模块向IMP发送查询或跟踪消息,IMP接收到查询或跟踪消息后,把IMP内部的一些全局数据区,包括通讯链路数据库和(或)线程控制块数据区,或跟踪消息返回给所述查询和跟踪模块。
11.根据权利要求7所述实现方法,其特征在于,在一个主业务模块和多个从业务模块中,从业务模块的消息通讯统一由主业务模块来转发,每进行一次收发或建立一条连接,需要建立两个线程,一个线程阻塞在tcp上负责接收从外部来的消息,只要这个消息非0,他就把这个消息加上消息头MSGHEAD发送给与此连接相关联的主业务模块中去,另一个线程阻塞在消息队列上负责从消息队列中读取消息,并把这个消息从socket中发送出去。
12.根据权利要求11所述实现方法,其特征在于,IMP和两个节点之间通讯由主业务线程、从线程1、从线程2实现的,其中所述从线程1接收一条消息,包括以下过程外部节点1到从tcp上接收消息的线程1,到主业务线程,到从线程1;外部节点2到从tcp上接收消息的线程2,到主业务线程,到从线程1;所述从线程1发送一条消息,包括以下过程从线程1到从消息队列上接收消息的线程1,到外部节点1;到从线程1到从消息队列上接收消息的线程2,到外部节点2;所述从线程2接收一条消息,包括以下过程外部节点1到从tcp上接收消息的线程1,到主业务线程,到从线程2;外部节点2到从tcp上接收消息的线程2,到主业务线程,到从线程2;所述从线程2发送一条消息,包括以下过程从线程2到从消息队列上接收消息的线程1,到外部节点1;从线程2到从消息队列上接收消息的线程2,到外部节点2。
全文摘要
一种通用接口机系统及其实现方法,包括公用动态连接库、软件模版、可执行性程序IMP和多个业务模块,其中IMP由总控模块、时钟模块、通讯模块、数据库接口模块联合编译而成,公用动态连接库包含与IMP实现交互的函数原语,软件模版提供实现一个接口机的简单指引,业务模块根据具体的业务需求,通过访问公用动态连接库和软件模版,生成与业务需求对应的代码,并与公用动态连接库和软件模版联合生成一个业务动态连接库,IMP根据配置文件的配置,在启动运行时同时加载业务动态连接库。利用本发明,设计接口机系统毋需关心TCP/IP协议、操作系统、数据库系统,使得业务模块实现的模式化、简单化成为可能,并可通过叠加多个业务模块,在一台计算机上实现多个接口机。
文档编号G06F3/00GK1471018SQ0213626
公开日2004年1月28日 申请日期2002年7月24日 优先权日2002年7月24日
发明者李世亮, 卢勤元, 王东鸣 申请人:深圳市中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1