一种多应用层网管并发访问方法及装置的制造方法_2

文档序号:8265368阅读:来源:国知局
[0054]第二封装子模块,用于将函数接口返回的数据按照第一变量、第二变量、第三变量和第四变量封装为第二结构体。
[0055]可选的,所述的多应用层网管并发访问装置,还包括:
[0056]第一套接字接口定义模块,用于在局端访问层进程定义套接字通信接口 ;
[0057]第二套接字接口定义模块,用于在局端网管进程定义套接字通信接口 ;
[0058]其中,所述套接字通信接口包括用于初始化套接字的第一接口、用于发送数据的第二接口、用于接收数据的第三接口以及用于关闭套接字的第四接口,
[0059]局端网管进程获取所述第一套接字后,调用局端网管进程的第一接口初始化所述第一套接字,局端访问层进程在获取局端访问层进程套接字后,调用局端访问层的第一接口初始化所述局端访问层进程套接字,
[0060]局端网管进程数据发送模块调用自身的第二接口将所述第一结构体发送至局端访问层进程,局端网管进程数据接收模块调用自身的第三接口接收所述第二结构体,
[0061]局端访问层进程数据接收模块调用自身的第三接口接收所述第一结构体,并调用自身的第二接口将所述第二结构体发送至局端网管进程,
[0062]局端网管进程通信关闭模块和局端访问层进程通信关闭模块分别调用各自的第四接口关闭自身的套接字。
[0063]可选的,所述局端访问层进程连接模块,包括:
[0064]套接字描述符获取子模块,用于获取局端访问层进程套接字描述符;
[0065]监听子模块,用于监听局端网管进程的连接请求,并将所述局端访问层进程套接字描述加入到描述符集中;
[0066]描述符集状态查询子模块,用于查询描述符集的状态,判断描述符集的状态是否存在变化;
[0067]描述符状态查询子模块,用于如果描述符集的状态存在变化,遍历所有描述符的状态,判断是否存在状态发生变化的描述符,否则,返回描述符集状态查询模块;
[0068]描述符判断子模块,用于如果存在状态发生变化的描述符,判断状态发生变化的描述符是否等于所述局端访问层进程套接字描述符;
[0069]通信连接建立子模块,用于如果状态发生变化的描述符等于所述局端访问层进程套接字描述符,则接受所述局端网管进程连接请求,获取与局端网管进程进行通信的第二套接字,建立与局端网管进程的通信,将与局端网管进程通信的描述符加入到描述符集中,返回描述符集状态查询子模块,否则,局端访问层进程进入接收局端网管进程发送的数据的过程。
[0070]本申请实施例提供的技术方案可以包括以下有益效果:以I/O复用的方式同时监控多个局端网管进程,当接收到局端网管进程的连接请求时,建立与局端网管进程的通信,当局端网管进程发送数据时再开始进入接收数据的过程,因而不会出现通信阻塞的情况,响应速度快,效率高,实现局端网管进程的并发访问。同时对局端网管进程和局端访问层进程之间传输的数据进行结构体封装,对多个局端网管进程并发的传输数据进行统一的处理,还可以对局端网管进程和局端访问层进程进行接口抽象,避免并发访问时因为处理过程不一致而出现冲突和错误。
[0071]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
【附图说明】
[0072]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0073]图1为本申请一示例性实施例示出的一种多应用层网管并发访问方法的流程示意图。
[0074]图2为本申请另一示例性实施例示出的一种多应用层网管并发访问方法的流程示意图。
[0075]图3为本申请一示例性实施例示出的一种多应用层网管并发访问装置的框图。
[0076]图4为本申请另一示例性实施例示出的一种多应用层网管并发访问装置的框图。
【具体实施方式】
[0077]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0078]为了全面理解本申请,在以下详细描述中提到了众多具体的细节,但是本领域技术人员应该理解,本申请可以无需这些具体细节而实现。在其他实施例中,不详细描述公知的方法、过程、组件和电路,以免不必要地导致实施例模糊。
[0079]根据本申请实施例的第一方面,提供一种多应用层网管并发访问方法。图1为本申请一示例性实施例示出的一种多应用层网管并发访问方法的流程示意图,图1中,虚线表示数据信息的传输方向。如图1所示,所述方法包括:
[0080]步骤S101,各个局端网管进程分别获取第一套接字,并向局端访问层进程发起连接请求。
[0081]其中,为了便于局端程序的设计和维护,将局端软件架构由上至下依次划分为局端访问层、局端业务软件层、局端SDK软件层和局端操作系统层。局端操作系统层即操作系统平台,例如基于LINUX的操作系统平台;局端SDK软件层用于对局端SDK进行封装,当SDK变化时,只需修改SDK层,上层的应用代码无需改变;局端业务软件层调用SDK的接口,进行业务配置,以及对业务配置进行存储;局端访问层用于与多种局端网管进行通信和数据传输,对多种局端网管进行管理,以及对多种局端网管的访问进行数据封装和接口抽象。对局端软件架构进行层次划分后,对于多种局端网管的并发访问,将主要由局端访问层来解决,局端访问层与多种局端网管建立起通信通道,进行数据通信,局端访问层与多种局端网管的通信由局端访问层进程和多种局端网管进程进行。局端访问层接收到局端网管的数据后进行解析,然后传递到局端业务软件层,在局端访问层中完成局端网管类型的差异处理,局端业务软件层便无需再考虑局端网管的类型,只需进行业务处理,从而可以更好的支持多种局端网管的访问。
[0082]各个局端网管进程在需要与局端访问层建立通信连接时,分别获取第一套接字,并向局端访问层进程发起连接请求。局端网管进程获取第一套接字和向局端访问层进程发起连接请求可以使用常规的方法,例如对基于LINUX的操作系统(以下皆以基于LINUX的操作系统进行举例),调用socketO来获取套接字描述符,即获取了第一套接字,并调用connect O来向局端访问层进行发起连接请求,以开始与局端访问层进行通信。
[0083]步骤S102,局端访问层进程轮询局端访问层进程套接字的可读状态,根据局端访问层进程套接字的可读状态得到局端网管进程的连接请求后,获取与局端网管进程进行通信的第二套接字,建立局端访问层进程和各个局端网管进程的通信连接。
[0084]其中,具体地,步骤S102可以包括:
[0085]步骤al,局端访问层获取局端访问层进程套接字及其描述符,并初始化对应的局端访问层进程套接字,在基于LINUX的操作系统下可以调用socketO来获取局端访问层进程套接字描述符,局端访问层进程套接字文件路径和局端访问层进程套接字描述符绑定;
[0086]步骤a2,监听局端网管进程的连接请求,将所述局端访问层进程套接字描述符加入到描述符集中,在基于LINUX的操作系统下调用IistenO,能够监听局端网管进程的连接请求,描述符集用于存储套接字描述符;
[0087]步骤a3,查询描述符集的状态,判断描述符集的状态是否存在变化,通常,会将描述符集赋值给临时描述符集,在基于LINUX的操作系统下使用select O函数查询临时描述符集的状态,通过select O的返回值来判断描述符集的状态是否存在变化,select O的返回值如果大于O则说明描述符集的状态存在变化;
[0088]步骤a4,如果描述符集的状态存在变化,遍历所有描述符的状态,判断是否存在状态发生变化的描述符,否则,返回步骤a3,继续查询描述符集的状态;
[0089]步骤a5:如果存在状态发生变化的描述符,判断状态发生变化的描述符是否等于所述局端访问层进程套接字描述符,即等于局端访问层获取的局端访问层进程套接字描述符;
[0090]步骤a6,如果状态发生变化的描述符等于所述局端访问层进程套接字描述符,则存在局端网管进程连接请求,接受所述局端网管进程连接请求,获取与局端网管进程进行通信的套接字及其描述符,即所述第二套接字及其描述符。在基于LINUX的操作系统下,所述与局端网管进程进行通信的套接字描述符可以使用accept()函数得到,得到与局端网管进程进行通信的套接字描述符即建立了与局端网管进程的通信,将与局端网管进程通信的套接字描述符加入到描述符集中,返回步骤a3,继续查询描述符集的状态,以考察是否有其他局端网管进程连接请求。如果当前遍历到的状态发生变化的描述符不等于局端访问层获取的局端访问层进程套接字描述符,则局端访问层进程进入接收局端网管进程发送的数据的过程。
[0091]其中,局端访问层进程通过轮询局端访问层进程套接字状态的变化,在接收到局端网管进程的连接请求后,建立局端访问层进程和各个局端网管进程的通信连接,以I/o复用的方式同时监控多个局端网管进程,当接收到局端网管进程的连接请求时,建立与局端网管进程的通信,当局端网管进程发送数据时(即遍历到的可读描述符不等于局端访问层获取的套接字描述符时),再开始进入接收数据的过程,因而不会出现通信阻塞的情况,响应速度快,效率高,使得局端网管进程的并发访问可以实现。
[0092]步骤S103,局端网管进程将需要发送的数据封装成第一结构体,并将所述第一结构体发送至局端访问层进程。
[0093]步骤S104,局端访问层进程接收到所述第一结构体后,根据所述第一结构体解析出局端网管进程发送的数据传输至相应的函数接口进行处理,将函数接口返回的数据封装为第二结构体,并将所述第二结构体发送至局端网管进程,第一结构体和第二结构体的封装方法相同。
[0094]步骤S105,局端网管进程接收到第二结构体后,解析所述第二结构体
当前第2页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1