CN100493010C - 一种传输接入点及其构成的传输平台及进程间通信的方法 - Google Patents

一种传输接入点及其构成的传输平台及进程间通信的方法 Download PDF

Info

Publication number
CN100493010C
CN100493010C CNB2004100700768A CN200410070076A CN100493010C CN 100493010 C CN100493010 C CN 100493010C CN B2004100700768 A CNB2004100700768 A CN B2004100700768A CN 200410070076 A CN200410070076 A CN 200410070076A CN 100493010 C CN100493010 C CN 100493010C
Authority
CN
China
Prior art keywords
access point
transmission access
data
transmission
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004100700768A
Other languages
English (en)
Other versions
CN1735056A (zh
Inventor
董祖雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Petevio Institute Of Technology Co ltd
Original Assignee
Potevio Institute of Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Potevio Institute of Technology Co Ltd filed Critical Potevio Institute of Technology Co Ltd
Priority to CNB2004100700768A priority Critical patent/CN100493010C/zh
Publication of CN1735056A publication Critical patent/CN1735056A/zh
Application granted granted Critical
Publication of CN100493010C publication Critical patent/CN100493010C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种传输接入点,包括:状态维护模块、数据链路维护模块、数据收发模块以及对外接口封装模块。本发明还公开了一种传输平台,该平台由传输接入点构成,且包括:用于传输数据的数据传输平面,以及用于传送传输接入点的状态信息的状态维护平面。本发明又公开了基于该传输平台的进程间通信的方法,包括:应用程序需要首先创建传输接入点;在初始化相应的传输接入点后,调用传输接入点的发送方法发送数据,并通过数据回调接口接收数据;在通信完成后删除相应的传输接入点。应用本发明所述的传输接入点及其构成的传输平台以及实现方法可以实现可靠高效的进程间通信,并且易于编程实现、易于使用。

Description

一种传输接入点及其构成的传输平台及进程间通信的方法
技术领域
本发明涉及到进程间通信,特别涉及到一种传输接入点、由该传输接入点构成的传输平台以及基于该传输平台实现进程间通信的方法。
背景技术
近年来,随着计算机网络技术的日益成熟、网络规模的不断扩大、计算机硬件水平的飞速提高以及用户需求越来越复杂,满足用户需求的软件系统也越来越庞大,所有这些都促使软件系统从单机的应用软件时代迈入大型分布式的应用软件时代。
分布式软件系统是指系统在运行时,整个软件系统被分割成不同的部分,这些部分分布在不同的进程中运行,各部分之间通过各种通信手段进行相互通信,将运行结果有机的结合起来,对外形成一个整体,提供强大的服务功能。在分布式系统的开发过程中,最关键的问题是如何在分布于不同进程的对象之间灵活高效的通信。
由于计算机网络通信技术和分布式软件系统已经发展了很多年,因此,已经形成了多种进程间通信模式。其中,最为普通,也是最基础的通信模式就是套接字(Socket)方式。
Socket是网络通信的基本构件,是可以被命名和寻址的通信端点。它将操作系统中网络通信的核心协议封装起来,为应用程序提供了调用网络通信协议的统一接口。使用Socket,应用程序可以调用TCP/IP协议栈进行进程间通信,也可以直接建立数据链路层的连接。
图1为现有技术中应用程序通过Socket调用TCP/IP协议核心的示意图。从图1中可以看出,Socket为应用程序提供了调用TCP/IP协议核心的统一接口,应用程序通过调用Socket提供的接口实现进程间的通信。
应用Socket模式虽然可以有效的进行进程之间的通信,但是,由于Socket要支持多种操作系统以及支持多种通信协议,因此,Socket本身比较复杂。这对于进行网络编程的工作人员来讲,就存在着网络编程复杂、工作量大以及重复劳动等问题。
鉴于普通Socket方式的基础性和开发的复杂性,有很多软件厂商在Socket的基础之上构建出了很多通信中间件。中间件不是一个孤立的软件,而是一个独立的软件层。它提供了应用软件与硬件平台或者操作系统之间的通用服务,能够屏蔽操作系统和网络协议的差别,能为不同硬件平台或者不同的操作系统提供通信服务。
中间件可以屏蔽硬件和网络,提供并优化通信机制,使服务器的位置透明,提供应用程序的可扩展性和高可用性,保证交易和数据的一致,保证消息的可靠传输,提供应用程序的安全机制等。
中间件可以根据其应用分成多个种类,包括基于数据库的数据访问中间件、基于远程过程调用的中间件、消息中间件以及事务处理中间件等等。其中,进程间通信常用的中间件类型为消息中间件,消息中间件位于应用软件和操作系统之间,通过将信息以消息的方式在进程间传递来完成信息传输,消息中间件允许开发者及用户连接不同系统之间的数据和代码,或采用一致的界面进行应用处理的互联,从而可以大大的方便分布式系统的开发。目前,由于上述各种中间件均是由各个软件厂商独立开发的,还没有统一的标准,因此,模型和接口形式也不尽相同。
但是,不管传统的消息中间件是以什么形式出现的,大部分消息中间件一般都具有下述两个特点:
1、消息中间件将通信节点的状态维护和节点间的数据传输进行统一管理,即使用相同的通道来传输状态信息和数据;
2、在数据传输的时候,先由消息中间件的一个中间实体对所要发送的数据进行缓存,然后由另外的线程或者进程进行数据的分发。
图2为传统消息中间件的工作模式示意图。如图2所示,在发送端,信息的发送者,即消息的发布节点,将消息发送到分布在网络中各节点的服务实体,即状态和数据的缓冲队列进行缓存,然后再由服务实体中的分发线程发送到接收节点的服务实体进行缓存,最后再由服务实体的分发线程分发给相应的接收节点,即信息的接收者。
从以上的分析可以看出,采用消息中间件进行进程间通信虽然具有易于使用,易于集成,高可靠性等优点。但是,由于大部分的消息中间件使用相同的通道来传输状态信息和数据,无法兼顾状态信息和数据两种信息对于传输的不同需求,例如,状态信息一般要求是广播方式或者多播方式的,而数据一般要求是点对点的高性能传输;另外,很多中间件在数据传输的时候不是采用节点之间直接进行传送,而是先由一个中间实体对所要发送的数据进行缓存,然后由另外的线程或者进程进行数据的分发,因此,很多消息中间件虽然功能非常完善,但是节点之间往往并不能取得较高的数据传输性能,不能满足高性能的数据传输要求。
发明内容
有鉴于此,本发明的一个目的就是提供一种传输接入点,易于编程实现、并且易于使用。
本发明的另一个目的就是提供一种由该传输接入点构成的传输平台,可以实现可靠并且高效的进程间通信。
本发明的又一个目的就是提供该传输平台实现进程间通信的方法,可以实现可靠并且高效的进程间通信,并且易于网络编程人员实现、使用。
为了实现上述目的,本发明公开了一种传输接入点,该传输接入点包括:状态维护模块,用于实现传输接入点之间状态信息传输和维护;数据链路维护模块,用于与对端的传输接入点确定一条数据链路;数据收发模块,用于实现来自应用程序的数据的接收和发送;以及对外接口封装模块,用于为应用程序提供管理和数据传输的接口;应用程序通过对外接口封装模块修改所属传输接入点的状态;状态维护模块保存并发送本传输接入点的状态信息到除自身之外的其他传输接入点;对外接口封装模块接收状态维护模块接收的除自身之外其他传输接入点的状态信息,并上传给应用程序。同时,对外接口封装模块从应用程序接收待发送的数据,并将该数据发送至数据收发模块;从数据收发模块接收数据,上传给应用程序。
上述对外接口封装模块进一步包括:传输接入点的管理维护接口,用于支持应用程序创建、删除、使能、禁用一个传输接入点;注册或者注销一个传输接入点的消息类型;或发送数据到其他的传输接入点;状态的回调接口,用于将除自身以外的其他传输接入点的状态信息上传给应用程序;数据的回调接口,用于将接收到的数据上传给应用程序;以及目标选择策略回调接口,用于在应用程序没有指定通信的目标传输接入点时,指示应用程序选择一个目标传输接入点。
另外,所述传输接入点进一步包括:数据和状态桥接模块;所述数据和状态桥接模块位于对外接口封装模块与状态维护模块、数据收发模块之间;用于保证状态维护平面和数据传输平面协同工作。
上述状态维护模块进一步包括:记录传输接入点状态信息的状态映射表,所述状态映射表包含同一个簇中其他所有传输接入点的状态信息。
上述状态信息包括传输接入点的名称、当前状态以及注册的消息类型。
本发明还公开了一种传输平台,该传输平台由一个以上的传输接入点构成;并且所述传输平台上的所有传输接入点分别通过数据传输平面和状态维护平面相连接;其中,每个传输接入点包括:状态维护模块、数据链路维护模块、数据收发模块、对外接口封装模块;在数据传输平面,每个传输接入点通过自身的数据链路维护模块与同一簇中的其他所有传输接入点建立点对点的TCP连接,并通过自身的数据收发模块在建立的TCP连接上接收和发送数据;在状态维护平面,每个传输接入点通过自身的状态维护模块与同一簇中其他传输接入点交互状态信息。
在上述传输平台中,同一对传输接入点之间只存在一个TCP连接。不同消息类型的数据消息复用同一TCP连接。
上述状态信息包括传输接入点的名称、当前状态以及注册的消息类型。
本发明还公开了一种在传输平台上实现进程间通信的方法,其中,上述的传输平台是由传输接入点构成的,实现进程间通信的方法包括以下步骤:
a、应用程序为需要进行通信的进程创建传输接入点,指定所述传输接入点的点名和簇名,注册所述传输接入点的消息类型,并设置所述传输接入点为使能状态;
b、应用程序通过创建的传输接入点发送或接收数据,在发送数据时,所述传输接入点需要确定处于使能状态的目的传输接入点的名称和消息类型;
c、通信完成后,应用程序删除创建的传输接入点。
其中,步骤b所述应用程序通过传输接入点发送数据的操作可以包括以下步骤:
b1、所述传输接入点判断应用程序是否指定了消息类型,如果是,则执行步骤b2;否则,结束本流程,并注明数据发送失败;
b2、所述传输接入点判断应用程序是否指定了目的传输接入点的名称,如果是,则执行步骤b3;否则,执行步骤b4;
b3、所述传输接入点判断目的传输接入点是否处于使能状态,并且是否注册了相应的消息类型,如果处于使能状态且注册了相应的消息类型,则执行步骤b5;否则,结束本流程,并注明数据发送失败;
b4、所述传输接入点在其状态映射表中查找注册相应消息类型且处于使能状态的传输接入点,并判断这些传输接入点的个数是否为零或大于1,如果为零,则结束本流程,并注明数据发送失败;如果大于1,则通过目标选择策略回调接口指示应用程序选择目的传输接入点,然后执行步骤b5;如果等于1,则选择该传输接入点作为目的传输接入点,然后执行步骤b5;
b5、所述传输接入点对信息进行打包,并直接利用TCP连接发送消息,然后结束本流程,并注明数据发送成功。
上述步骤b4所述的状态映射表记录同一个传输接入点簇中所有其他传输接入点的状态信息。
上述步骤b5所述的利用TCP连接发送消息具体包括以下步骤:
b51、所述传输接入点和目的传输接入点之间建立TCP连接;
b52、所述传输接入点和目的传输接入点通过建立的TCP连接发送数据。
另外,在建立TCP连接前,所述的传输接入点需要先创建连接接受器对象,并经由状态维护平面和数据传输平面进行消息交互协同建立TCP连接;因此,步骤b51所述建立TCP连接具体包括以下步骤:
b511、所述传输接入点向目的传输接入点通过状态维护平面发送连接请求,连接请求消息中包含所述传输接入点的IP地址和连接接受器对象的端口号;
b512、目的传输接入点接收到连接请求消息后,创建一个连接器对象;
b513、目的传输接入点的连接器对象向上述步骤b511发送套接字连接请求的传输接入点的连接接受器对象发送一个连接请求消息;
b514、接收上述连接请求的传输接入点的连接接受器对象接收到该套接字连接请求后,接受该套接字连接请求,并创建一个连接器对象并保存;
b515、在所述传输接入点和目的传输接入点的两个连接器对象之间建立TCP连接,并在数据平面通过建立的TCP连接传送数据。
另外,步骤b所述的接收操作具体为:当传输接入点接收到数据之后,通过传输接入点的数据回调接口上传给应用程序进行处理。
由此可以看出,应用本发明所述的传输接入点以及传输接入平台进行进程间通信可以获得以下有益效果:
1、本发明所述的传输接入点维护具体的网络连接,为上层应用程序提供一个简单调用接口,因此,可以为应用程序提供高性能灵活的传输服务;
2、在本发明所述的传输平台中,数据的传输与状态信息的传输分离,可以分别满足数据传输和状态信息传输的不同要求,在保证了传输可靠性的同时,高效地利用了系统的资源;
3、本发明的传输接入点之间通过传输接入点的名称寻址,而不和具体的IP绑定,实现进程内、进程间统一的通信形式,方便应用程序灵活部属;
4、在本发明所述的传输平台中,各传输接入点之间的数据传输采用TCP的方式,一旦传输接入点之间的TCP连接确定之后,数据传输就等同于直接使用Socket进行数据传输,因此,可以具有较高的传输性能;
5、各传输接入点之间通过状态维护平面获得同一个传输接入点簇内所有其他传输接入点的状态,并可以通过状态回调接口,使应用程序获取所有传输接入点的状态信息,从而实现高性能的数据传输。
附图说明
图1为现有技术中应用程序通过Socket调用TCP/IP协议核心的示意图;
图2为传统消息中间件的工作模式示意图;
图3为本发明所述的传输接入点结构示意图;
图4为本发明所述的由传输接入点构成的传输平台示意图;
图5为本发明所述的基于本发明所述传输平台实现进程间通信的方法流程图;
图6为本发明所述的传输接入点进行数据发送的方法流程图;
图7为本发明所述的进程间建立TCP连接的方法对象交互示意图;
图8为应用程序通过状态回调接口获得其他传输接入点状态信息的方法示意图。
具体实施方式
下面结合附图以及具体的实施例对本发明作进一步的详细说明。
本发明公开了一种传输接入点(TAP,Transportation Access Point),它是一种通信模块,位于TCP/IP协议栈的应用层和网络层之间,对当前系统采用的通信方式进行进一步的封装,同时为应用程序提供更为灵活和高效的传输服务。
图3为TAP组成结构的示意图。从图3可以看出,TAP的内部包括如下模块:状态维护模块,数据收发模块,数据链路维护模块,数据和状态的桥接模块以及对外接口封装模块。
其中,状态维护模块用于实现TAP之间状态信息的传输和维护,包括主动状态操作和回调通知功能;该模块通过对外接口封装模块获得应用程序的管理维护指令,也通过对外接口封装模块将TAP中其他TAP的状态信息上传给应用程序。
数据收发模块封装了Socket数据的传输功能,该模块通过对外接口封装模块接收应用程序的数据,完成应用程序数据的接收和发送操作。
数据链路维护模块用于实现监听和响应来自其他TAP的连接请求的功能,并通过对外接口封装模块接收应用程序建立链路连接的指令,实现与对端的TAP确定一条数据链路的功能。
数据和状态桥接模块位于对外接口封装模块和状态维护模块与数据收发模块之间,用于实现TAP的状态动作和数据接收、发送等操作的同步,保证状态维护平面和数据传输平面协同工作,即确保传输接入点在处于正确状态情况下进行数据收发。上述状态动作包括删除、禁用、或者注销相应的消息类型。例如,TAP在数据的发送过程中,如果对端应用程序发送指令删除、禁用对端的TAP,或者注销对端TAP相应的消息类型,将可能会导致应用程序之间数据发送过程的中断。本发明所述的数据和状态桥接模块就可以解决这一问题,在数据的发送过程中,如果对端应用程序发送指令删除、禁用对端的TAP,或者注销对端TAP相应的消息类型,发送端的数据和状态桥接模块通过自身的状态维护模块与对端的数据和状态桥接模块交互,保证对端TAP在本次数据的发送过程中保持有效,即在本次数据的发送过程中,保证对端TAP存在、使能,并且保留与上述发送的数据对应的消息类型;然后,在对端TAP接收到本次发送过程完整的数据包后,再执行相应的状态动作,同时将对端TAP的状态上报给应用程序,禁止下一个数据包发送到该目的TAP,进而保证TAP功能的正确。
另外,TAP的对外接口封装模块向上为应用程序提供了多种接口,其中包括:TAP的管理维护接口,用于创建、删除一个TAP、使能或者禁用一个TAP、注册或者注销一个TAP的消息类型、又或者发送应用程序的数据;状态的回调接口,应用程序通过该接口获知其他TAP的状态;数据的回调接口,应用程序通过该接口获得其他应用程序发送过来的数据;以及目标选择策略回调接口,应用程序通过该接口,在没有设定目的TAP并且有多个TAP可以处理该应用程序消息的情况下,自动调用应用定制的选择策略选择一个目的TAP。
在应用程序通过TAP的对外接口封装模块中的管理维护接口创建、删除、使能、禁用一个TAP时,或注册、注销一个TAP的消息类型时,TAP的状态维护模块会将该TAP的状态信息广播到其他TAP;而当TAP的状态维护模块接收到其他TAP的状态信息时,TAP会通过对外接口封装模块的状态回调接口将其他TAP的状态信息上传给应用程序。
当应用程序需要发送数据时,首先会通过TAP的对外接口封装模块中的管理维护接口,将待发送的数据送入TAP的数据收发模块;此时,数据链路维护模块自动建立或者维护与对端TAP的链路连接;然后,数据收发模块通过建立或者维护的链路连接将待发送数据发送到对端的TAP。
在数据的发送过程中,如果对端TAP被对端应用程序删除、禁用,或者注销与该发送的数据包相应的消息类型,数据和状态桥接模块将通过自身的状态维护模块与对端的数据和状态桥接模块交互,实现本次数据发送与对端TAP状态的同步,确保在本次的数据发送过程中,对端的TAP保持有效;同时,将对端TAP即将发生的状态动作通过对外接口封装模块中的状态回调接口上报给应用程序,禁止下一个数据包发送到该目的TAP。
如果应用程序在发送数据的过程中没有指定对端的TAP名称,TAP可以通过目标选择策略回调接口通知应用程序选择目标TAP。
当TAP的数据收发模块接收到对端TAP的数据后,将通过对外接口封装模块的数据回调接口将接收到的数据上传给应用程序。
需要说明的是,在上层的应用程序创建一个TAP时,该应用程序要为该TAP设置一个名称,并注册该TAP的消息类型。
其中,TAP名称包括两个部分:TAP簇名和TAP点名。系统通过TAP簇名将整个网络划分成多个虚拟网络,只有同一个簇中的TAP,即具有相同簇名的TAP才可以相互通信。在同一个簇内每个TAP的TAP点名是唯一的,因此,TAP可以采用名称寻址的方式,通过TAP点名在同一个TAP簇中寻址,同时,还避免了应用程序在寻址的过程中和具体的物理IP地址绑定,降低了网络编程的复杂程度,并且使应用程序部署灵活。
TAP的消息类型表示该TAP可以处理的消息类型。
另外,在TAP的状态维护模块中存在一个记录同一簇中其他TAP状态的状态映射表,该映射表中记录了同一簇中所有其他TAP的名称、状态以及消息类型,又称为其他TAP的状态信息。
通过以上分析可以看出,本发明所述的TAP,对当前系统采用的通信方式进行进一步的封装,同时,在建立链路连接的寻址过程中采用了名称寻址的方式,可以为应用程序提供更为灵活和高效的传输服务,同时降低了网络编程的复杂度,使得网络编程易于实现。
基于上述TAP的组成和结构,本发明还公开了一种由上述TAP构成的传输平台。
本发明所述的传输平台包含多个TAP,这些TAP存在于不同的进程中。另外,本发明所述的传输平台分成两个层面:数据传输平面和状态维护平面。其中,各个TAP通过数据传输平面传输数据,实现进程间的数据传输;同时,TAP通过自身的状态维护平面将该TAP的名称、状态以及注册类型等状态信息通知给同一个TAP簇中的其他TAP,并通过自身的状态维护平面获知网络中其他TAP的状态信息。
图4显示了本发明所述的由TAP构成的传输平台。从图4可以看出,本发明所述的传输平台包含了多个TAP,如图4所示的TAP1、TAP2、TAP3以及TAP4,这些TAP通过两个平面:数据传输平面和状态维护平面相连接。
其中,该传输平台中的每个TAP都同时存在于数据传输平面和状态维护平面。如图4所示,在数据传输平面,每个TAP都可以通过自身的数据链路维护模块和本TAP簇中的其他所有TAP建立点对点的TCP连接,并通过自身的数据收发模块在已经建立的TCP连接上接收和发送数据;而在状态维护平面,TAP通过自身的状态维护模块与同一簇中其他TAP交互状态信息,状态信息的交互可以通过基于消息中间件或者Socket的方式实现。有关状态信息具体的交互实现方法,本发明并不给予限制。
需要说明的是,两个TAP点之间只维护一条TCP连接,如果两个TAP点之间需要传送多个消息类型的消息,则不同消息类型的消息采用多路复用的方式共享这条TCP连接。
通过以上分析可以看出,本发明所述的传输平台,将数据传输和状态维护分离,并且在数据传输的过程中,两个TAP之间不同消息类型的信息可以采用复用的方式共享一个TCP连接,因此,可以充分利用数据和状态信息的特点,高效、高可靠的实现数据的传输和状态的维护。
基于上述由TAP构成的传输平台,本发明还公开了一种在上述传输平台上实现进程间通信的方法。
为了实现进程之间的通信,应用程序需要首先在进程中实现状态回调接口和数据回调接口的回调方法。这样,TAP就可以应用状态回调方法将同一簇中其他TAP的状态信息数据通过状态回调接口发送到应用程序;TAP还可以应用数据回调方法将接收到对端应用程序的数据通过自身的数据回调接口上传给应用程序。
图5显示了基于本发明所述传输平台实现进程间通信的方法流程。如图5所示,应用本发明所述的通信方法实现进程A和进程B之间通信的具体步骤如下:
步骤501:应用程序在进程A和进程B中分别创建相应的TAP,分别设置TAP名称,并在TAP中配置上述与数据和状态回调接口相对应的对象,以供TAP进行事件回调使用;
在这一步骤中,应用程序设置进程A和进程B对应的TAP名称时,需要保证两个TAP的簇名相同,因为,只有同一簇中的TAP之间才能够相互通信。
步骤502:应用程序初始化各自的TAP,注册相应的消息类型,并设置TAP为使能状态;
步骤503:应用程序通过TAP发送、接收数据;
在这一步骤中,应用程序在调用TAP,即源端TAP发送方法进行数据发送时,一般需要给出正确的目的TAP名和消息类型;
另外,当TAP接收到数据之后,通过自身的数据回调接口,上传给应用程序进行处理;
步骤504:通信完成后,应用程序删除各自的TAP对象。
图6显示了本发明所述通过TAP发送数据的方法流程。如图6所示,本发明所述的通过TAP发送数据的方法包括以下步骤:
步骤601:源端TAP判断应用程序是否指定了消息类型,如果是,则执行步骤602;否则,结束本流程,且注明数据发送失败。
步骤602:源端TAP判断应用程序是否指定了目的TAP的名称,如果是,则执行步骤603;否则,执行步骤604。
步骤603:源端TAP判断目的TAP是否处于使能状态并且注册了相应的消息类型,如果是,则执行步骤608;否则,结束本流程,并注明数据发送失败。
步骤604:源端TAP在其状态映射表中查找注册着相应消息类型且处于使能状态的所有TAP,这些TAP构成一个TAP集,然后执行步骤605。
步骤605:源端TAP判断该TAP集中的TAP的个数是否为零,如果是,则结束本流程,并注明数据发送失败;否则,执行步骤606。
步骤606:源端TAP判断TAP集中TAP的个数是否多于1个,如果是,执行步骤607;否则,执行步骤608。
步骤607:源端TAP调用目标选择策略回调接口,由应用程序根据定制的选择策略选择目的TAP,然后,执行步骤608。
在这一步骤中,如果应用程序在调用TAP的发送方法时没有指定目的TAP,同时又有多个TAP注册了相同的消息类型,则需要源端TAP选择一个目的TAP进行发送,源端TAP通过目标选择策略回调接口让应用程序按照定制的某种策略去选择目的TAP。比如,随机的选择目的TAP;或者选择当前负载最轻的目的TAP等等,本发明对应用程序定制的选择策略并不给出限制。应用程序可以利用这个目标选择策略回调接口实现负载分担、动态扩容等功能。
步骤608:源端TAP对信息进行打包,并调用Socket直接发送消息,然后结束本流程,并注明数据发送成功。
在这一步骤中,在调用Socket直接发送消息时,TAP需要首先与目的TAP建立TCP连接,然后再进行数据传输。在建立TCP连接之前,源端TAP需要创建一个连接接受器(TapAcceptor)对象,负责网络连接的监听和创建新的TCP连接;而在建立TCP连接的过程中,源端TAP和目的TAP需要分别建立一个连接器(TapConnector)对象,负责TCP连接的维护和数据的发送。
图7显示了源端TAP和目的TAP之间建立数据TCP连接的过程。如图7所示,在数据TCP连接的建立过程中包括如下步骤:
步骤701:源端TAP向目的TAP通过状态维护平面发送连接请求,连接请求消息中包含源端TAP的IP和对象TapAcceptor的端口号;
步骤702:目的TAP接收到连接请求消息后,创建一个TapConnector对象;
步骤703:目的TAP的TapConnector对象向源端TAP的TapAcceptor对象发送Socket连接请求;
步骤704:源端TAP的TapAcceptor对象接收到该Socket连接请求消息后,接受该Socket连接请求,同时也创建一个TAPConnector对象并保存;
步骤705:源端TAP和目的TAP的两个TapConnector对象之间建立TCP连接,源端TAP和目的TAP通过建立的TCP连接传送数据。
需要说明的是,源端TAP和目的TAP都使用TapConnector对象来标识一个数据链路。
由于在数据平面,源端TAP和目的TAP之间是TCP连接,因此,一旦数据链路确定之后,进行数据传输等同于直接使用Socket进行数据通信,可以实现高性能的数据传输。
从上述数据发送过程的步骤603~606可以看出,在每个TAP中需要维护一个记录同一TAP簇中所有其他TAP状态信息的状态映射表,TAP的状态信息包含TAP的名称、状态以及注册的消息类型。从前面的分析中可以看出该注册表存在于TAP的状态维护模块中。同一TAP簇中的所有TAP通过状态维护平面将本TAP的状态信息通知给其他TAP,同时获知其他TAP的状态信息。
另外,从上述数据发送过程的步骤601~602可以看出,应用程序也可以保存当前同一TAP簇中其他TAP的状态信息,这样,应用程序在调用TAP的发送方法的时候可以直接指定目的TAP。当然,应用程序也可以选择保存部分TAP的状态信息,或者不保存,而在调用TAP发送方法之前,通过状态回调接口获取同一簇中其他TAP的状态信息,或者通过选择策略回调接口选择目的TAP。需要说明的是,应用程序是否保存同一簇中其他TAP的状态信息,是由应用程序自行设定的,因此,本发明对应用程序是否保存其他TAP的状态信息并不给予限制。
图8显示了应用程序通过状态回调接口获得其他TAP状态信息的方法。如图8所示,当应用程序1建立、删除一个TAP或者修改一个TAP,即图8中TAP 1的状态时,TAP 1会通过状态维护平面发送状态维护消息给同一个TAP簇内的所有其他TAP。当一个TAP,例如图8中所示的TAP 2接收到TAP 1的状态信息时,会在其状态维护模块中记录TAP 1的新的状态信息,并通过状态回调接口,将TAP 1的新的状态通知应用程序2,应用程序2就可以获得TAP 1的状态信息了。
同样,虽然在图8中没有显示,但是很容易得到,当应用程序2新创建、删除一个TAP或者修改TAP的状态信息时,应用程序1也可以通过状态回调接口获得状态发生变化的TAP当前的状态信息。
当应用程序新创建一个TAP时,该新创建的TAP会通过状态维护平面广播其状态信息,同一个TAP簇中所有的TAP在接收到该状态信息以后,会回复本身的状态信息给该新创建的TAP,这样,该新创建的TAP就可以获得同一个TAP簇中所有的TAP的状态信息了。
从以上的分析可以看出应用本发明所述的方法可以在本发明所述的由TAP构成的平台上实现进程间的通信,且应用程序不必维护具体的链路连接,仅使用TAP的名称进行寻址,极大的减小了网络编程的复杂程度;同时,一旦链路连接建立完成,两个TAP之间就存在一条点对点的TCP连接,可以高效并且可靠的实现数据传输。
以上举优选的实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所述为本发明的优选实施例而已,并不用以显示本发明,凡在本发明的思想和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1、一种传输接入点,其特征在于,所述传输接入点包括:
状态维护模块,用于实现传输接入点之间状态信息传输和维护;
数据链路维护模块,用于与对端的传输接入点确定一条数据传输链路;数据收发模块,用于实现来自应用程序的数据的接收和发送操作;以及对外接口封装模块,用于为应用程序提供管理和数据传输的接口;
应用程序通过对外接口封装模块修改所属传输接入点的状态;状态维护模块保存并发送本传输接入点的状态信息到除自身之外的其他传输接入点;
对外接口封装模块接收状态维护模块接收的除自身之外其他传输接入点的状态信息,并上传给应用程序;
对外接口封装模块从应用程序接收待发送的数据,并将该数据发送至数据收发模块;从数据收发模块接收数据,上传给应用程序。
2、如权利要求1所述的传输接入点,其特征在于,所述对外接口封装模块包括:
传输接入点的管理维护接口,用于支持应用程序创建、删除、使能、禁用一个传输接入点;注册或者注销一个传输接入点的消息类型;或发送数据到其他的传输接入点;
状态的回调接口,用于将除自身以外的其他传输接入点的状态信息上传给应用程序;
数据的回调接口,用于将接收到的数据上传给应用程序;以及
目标选择策略回调接口,用于在应用程序没有指定通信的目标传输接入点时,指示应用程序选择可以通信的目标传输接入点。
3、如权利要求1所述的传输接入点,其特征在于,所述传输接入点进一步包括:数据和状态桥接模块;
所述数据和状态桥接模块位于对外接口封装模块与状态维护模块、数据收发模块之间;用于保证状态维护平面和数据传输平面协同工作。
4、如权利要求1所述的传输接入点,其特征在于,所述的状态维护模块进一步包括:记录传输接入点状态信息的状态映射表,所述状态映射表包含同一个簇中其他所有传输接入点的状态信息。
5、如权利要求1、2、3或4所述的传输接入点,其特征在于,所述的状态信息包括传输接入点的名称、当前状态以及注册的消息类型。
6、一种传输平台,其特征在于,所述的传输平台由一个以上的传输接入点构成;并且所述传输平台上的所有传输接入点分别通过数据传输平面和状态维护平面相连接;
每个传输接入点包括:状态维护模块、数据链路维护模块、数据收发模块、对外接口封装模块;
在数据传输平面,每个传输接入点通过自身的数据链路维护模块与同一簇中的其他所有传输接入点建立点对点的TCP连接,并通过自身的数据收发模块在建立的TCP连接上接收和发送数据;
在状态维护平面,每个传输接入点通过自身的状态维护模块与同一簇中其他传输接入点交互状态信息。
7、如权利要求6所述的传输平台,其特征在于,同一对传输接入点之间只存在一个TCP连接,不同消息类型的数据消息复用同一TCP连接。
8、一种在如权利要求6或7所述的传输平台上实现进程间通信的方法,其特征在于,所述的传输平台是由传输接入点构成的,所述实现进程间通信的方法包括以下步骤:
a、应用程序为需要进行通信的进程创建传输接入点,指定所述传输接入点的点名和簇名,注册所述传输接入点的消息类型,并设置所述传输接入点为使能状态;
b、应用程序通过创建的传输接入点发送或接收数据,在发送数据时,所述传输接入点需要确定处于使能状态的目的传输接入点的名称和消息类型;
c、通信完成后,应用程序删除创建的传输接入点。
9、如权利要求8所述的方法,其特征在于,步骤b所述应用程序通过创建的传输接入点发送数据的操作具体包括以下步骤:
b1、所述传输接入点判断应用程序是否指定了消息类型,如果是,则执行步骤b2;否则,结束本流程,并注明数据发送失败;
b2、所述传输接入点判断应用程序是否指定了目的传输接入点的名称,如果是,则执行步骤b3;否则,执行步骤b4;
b3、所述传输接入点判断目的传输接入点是否处于使能状态,并且是否注册了相应的消息类型,如果处于使能状态且注册了相应的消息类型,则执行步骤b5;否则,结束本流程,并注明数据发送失败;
b4、所述传输接入点在其状态映射表中查找注册相应消息类型且处于使能状态的传输接入点,并判断这些传输接入点的个数是否为零或大于1,如果为零,则结束本流程,并注明数据发送失败;如果大于1,则通过目标选择策略回调接口指示应用程序选择目的传输接入点,然后执行步骤b5;如果等于1,则选择该传输接入点作为目的传输接入点,然后执行步骤b5;
b5、所述传输接入点对信息进行打包,并直接利用TCP连接发送消息,然后结束本流程,并注明数据发送成功。
10、如权利要求9所述的方法,其特征在于,步骤b5所述的利用TCP连接发送消息具体包括以下步骤:
b51、所述传输接入点和目的传输接入点之间建立TCP连接;
b52、所述传输接入点和目的传输接入点通过建立的TCP连接发送数据。
11、如权利要求10所述的方法,其特征在于,在建立TCP连接前,所述的传输接入点需要先创建连接接受器对象,并经由状态维护平面和数据传输平面进行消息交互协同建立TCP连接;
步骤b51所述建立TCP连接具体包括以下步骤:
b511、所述传输接入点向目的传输接入点通过状态维护平面发送连接请求,连接请求消息中包含所述传输接入点的IP地址和连接接受器对象的端口号;
b512、目的传输接入点接收到连接请求消息后,创建一个连接器对象;
b513、目的传输接入点的连接器对象向上述步骤b511发送连接请求的传输接入点的连接接受器对象发送一个套接字连接请求;
b514、接收上述连接请求的传输接入点的连接接受器对象接收到该套接字连接请求后,接受该套接字连接请求,并创建一个连接器对象并保存;
b515、在所述传输接入点和目的传输接入点的两个连接器对象之间建立TCP连接,数据平面通过所建立的TCP连接传送数据。
12、如权利要求8所述的方法,其特征在于,步骤b所述的接收操作具体为:当传输接入点接收到数据之后,通过传输接入点的数据回调接口上传给应用程序进行处理。
CNB2004100700768A 2004-08-10 2004-08-10 一种传输接入点及其构成的传输平台及进程间通信的方法 Expired - Fee Related CN100493010C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100700768A CN100493010C (zh) 2004-08-10 2004-08-10 一种传输接入点及其构成的传输平台及进程间通信的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100700768A CN100493010C (zh) 2004-08-10 2004-08-10 一种传输接入点及其构成的传输平台及进程间通信的方法

Publications (2)

Publication Number Publication Date
CN1735056A CN1735056A (zh) 2006-02-15
CN100493010C true CN100493010C (zh) 2009-05-27

Family

ID=36077263

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100700768A Expired - Fee Related CN100493010C (zh) 2004-08-10 2004-08-10 一种传输接入点及其构成的传输平台及进程间通信的方法

Country Status (1)

Country Link
CN (1) CN100493010C (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101895529B (zh) * 2010-05-31 2014-05-21 上海网宿科技股份有限公司 一种在驱动层判断tcp/ip包所属进程的方法

Also Published As

Publication number Publication date
CN1735056A (zh) 2006-02-15

Similar Documents

Publication Publication Date Title
US5499343A (en) Object-oriented networking system with dynamically configurable communication links
US5491800A (en) Object-oriented remote procedure call networking system
CN100492302C (zh) 基于Java的进程间异步通信的实现方法
US5548723A (en) Object-oriented network protocol configuration system utilizing a dynamically configurable protocol stack
JP7058654B2 (ja) リソース共有方法、装置およびシステム
US5625678A (en) Method and system for allowing switched voice and data communication among multiple application programs
CN102394925B (zh) 远程监测诊断中心与地区调度中心的通讯方法及装置
MXPA04002729A (es) Transmision y recepcion de mensajes a traves de un canal de comunicacion y modelo de programacion adaptable.
CN103455380A (zh) 多进程通信系统及其建立和通信方法
CN112788074A (zh) 数据发送方法、处理方法、接收方法及其设备、存储介质
CN110784255A (zh) 一种北斗用户终端通信资源共享系统
CN101567861B (zh) 异构应用系统之间的数据同步方法及应用系统
CN102244584A (zh) 一种m2m平台通信系统和方法
CN104317661A (zh) 嵌入式双系统的系统间通信方法及装置
JP2003523099A (ja) 電話通信装置からのディジタルメッセージを転送し記録するシステム
CN1980411A (zh) 业务消息传输方法和系统
CN101106550A (zh) 大尺寸消息的发送方法、接收方法及传输系统
CN107147543A (zh) 一种面向PC客户端的服务器的socket通信方法
RU2283544C2 (ru) Способ обеспечения обслуживания коротких сообщений через мобильную интеллектуальную сеть
CN107682460A (zh) 一种分布式存储集群数据通信方法及系统
CN108228309A (zh) 基于虚拟机的数据包发送和接收方法及装置
CN109995875A (zh) 虚拟化数据分发弹性网络系统
CN108667817A (zh) 报文转换系统和报文转换方法
US7107345B2 (en) Method for managing socket in mobile communication system
JPH05204853A (ja) データ処理システム、特に電気通信システム用ソフトウェア構造

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: CHINA POTEVIO CO., LTD.

Free format text: FORMER OWNER: PUTIAN IT TECH INST CO., LTD.

Effective date: 20130924

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: PUTIAN IT TECH INST CO., LTD.

Free format text: FORMER NAME: PUTIAN INST. OF INFORMATION TECHNOLOGY

CP03 Change of name, title or address

Address after: 100080 Beijing, Haidian, North Street, No. two, No. 6, No.

Patentee after: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

Address before: 100085, No. two, 2 street, base of information industry, Beijing

Patentee before: POTEVIO Institute of Information Technology

TR01 Transfer of patent right

Effective date of registration: 20130924

Address after: 100080, No. two, 2 street, Zhongguancun science and Technology Park, Beijing, Haidian District

Patentee after: CHINA POTEVIO CO.,LTD.

Address before: 100080 Beijing, Haidian, North Street, No. two, No. 6, No.

Patentee before: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

ASS Succession or assignment of patent right

Owner name: PUTIAN IT TECH INST CO., LTD.

Free format text: FORMER OWNER: CHINA POTEVIO CO., LTD.

Effective date: 20131128

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131128

Address after: 100080 Beijing, Haidian, North Street, No. two, No. 6, No.

Patentee after: PETEVIO INSTITUTE OF TECHNOLOGY Co.,Ltd.

Address before: 100080, No. two, 2 street, Zhongguancun science and Technology Park, Beijing, Haidian District

Patentee before: CHINA POTEVIO CO.,LTD.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090527

Termination date: 20210810