WO2007090352A1 - Procédé, appareil et système de transmission de message - Google Patents

Procédé, appareil et système de transmission de message Download PDF

Info

Publication number
WO2007090352A1
WO2007090352A1 PCT/CN2007/000439 CN2007000439W WO2007090352A1 WO 2007090352 A1 WO2007090352 A1 WO 2007090352A1 CN 2007000439 W CN2007000439 W CN 2007000439W WO 2007090352 A1 WO2007090352 A1 WO 2007090352A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
destination
messaging device
module
communication
Prior art date
Application number
PCT/CN2007/000439
Other languages
English (en)
French (fr)
Inventor
Liyuan Cai
Original Assignee
Huawei Technologies 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 Huawei Technologies Co., Ltd. filed Critical Huawei Technologies Co., Ltd.
Priority to AT07702311T priority Critical patent/ATE480084T1/de
Priority to KR1020087001878A priority patent/KR100932585B1/ko
Priority to EP07702311A priority patent/EP1892929B1/en
Priority to DE602007008799T priority patent/DE602007008799D1/de
Publication of WO2007090352A1 publication Critical patent/WO2007090352A1/zh
Priority to US12/002,885 priority patent/US7839848B2/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer [OSI layer 2], e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Definitions

  • the present invention belongs to the field of communications, and in particular, to a method for processing message communication for message communication, a message delivery device, and a message delivery system.
  • the embodiments of the present invention provide a message delivery device, a message delivery system, and a message delivery method, respectively, to reduce the time taken by a process to process communication with other processes, and avoid repeated development of inter-process communication. .
  • the main control module is responsible for scheduling and controlling each module of the messaging device, and managing the memory unit;
  • the message routing module is responsible for routing according to the destination address of the received message and a preset routing table
  • the messaging module is responsible for providing a designated port for the process, receiving a message from the designated port or from the network, and transmitting the message according to the routing result of the message routing module.
  • the message delivery system in another embodiment of the present invention includes a source process and a destination process, and further includes a source message delivery device and a destination message delivery device;
  • the source process invokes the source messaging device to send a message to the source messaging device; the source messaging device receives the message sent by the source process, and selects a route according to the destination address of the message, and sends the message to the destination.
  • the messaging device In the messaging device;
  • the destination message delivery device receives the message sent by the source messaging device, and sends the message to the designated port of the destination process, and sends a notification of the arrival of the message to the destination process; the destination process sends a notification according to the destination message delivery device.
  • the message is fetched at the designated port of the destination messaging device.
  • the source messaging device and the destination messaging device can be the same messaging device.
  • An embodiment of the present invention further provides a method for message delivery, comprising the steps of: receiving a message from a designated port of a process or from a communication node;
  • the message is sent according to the selected route.
  • the process only needs to send a message to the invoked messaging device during the communication process, and the messaging device is responsible for routing, sending, and receiving the message, thereby reducing the degree of participation of the process in the communication process.
  • the messaging device is responsible for routing, sending, and receiving the message, thereby reducing the degree of participation of the process in the communication process.
  • it also enables the staff to avoid the repeated details of handling communication, improving work efficiency and communication quality.
  • FIG. 1 is a block diagram showing the structure of an embodiment of a message passing device in accordance with the present invention
  • FIG. 2 is a flow chart of an embodiment of a message passing method in accordance with the present invention.
  • FIG. 3 is an application diagram of an embodiment of a message delivery device in the present invention.
  • FIG. 4 is a diagram showing an application of a process invoking a plurality of messaging devices in an embodiment of the present invention. detailed description
  • An embodiment of the present invention provides a message delivery device. After a source process invokes a messaging device, the messaging device transmits the message to the destination process without requiring the process to participate. At the same time, an embodiment of the present invention further provides a method for message communication, by which the message is transmitted, which reduces the participation degree of the process, thereby improving work efficiency, and also improving work efficiency. Improve the quality of communication.
  • the embodiment of the invention provides a message delivery device, the structure of which is shown in FIG.
  • the message delivery device is composed of at least a main control module 101, a messaging module 102, and a message routing module 103:
  • the main control module 101 is responsible for scheduling and controlling various modules of the messaging device, initializing the communication port, and is responsible for allocating memory for the message when the message is delivered;
  • the messaging module 102 receives and transmits the message.
  • the messaging module provides an external communication port for the messaging device, and the messaging device uses the communication port to receive the message and send the message in the corresponding port, that is, receive the message from the source process or other messaging device from the communication port, and send the message Sent from the communication port to the destination process;
  • the message routing module 103 extracts the destination address based on the received message, and determines the message delivery path based on the message routing selection table.
  • the process When a process invokes the messaging device to communicate, the process first sends the initialization parameters of its designated port to the messaging device, and the messaging device initializes the specified communication port based on the initialization parameters.
  • the process sends and receives a message, it must first specify the port. If other processes want to communicate with it, they must know which port it receives the message, in order to send the message, the corresponding port identifies the destination process of the message, so each process occupies Ports are public and non-repeatable.
  • the main control module also allocates memory units for message delivery.
  • the communication between the local processes is shared by means of shared memory, and the process and the messaging device can also use the shared memory to send and receive messages.
  • the messaging module 102 receives the message sent by the process, analyzes the message, and sends the message to the message routing module 103.
  • the message routing module 103 performs routing according to the destination address of the sent message and the pre-set routing table.
  • the messaging module 102 sends the message in the message queue to the messaging device invoked by the destination process.
  • the destination address of the message may include the address of the destination communication node and the designated port of the destination process on the node.
  • the correspondence between the destination address and the message at the exit of the message routing device is saved in the routing table of the message routing module 103. If the destination process of the message has a designated port on the message routing device, the message transceiver module 102 Message placed in the destination process In the queue corresponding to the port, the main control module 101 notifies the destination process to receive the message; if the destination process of the message is on the other communication node, the message transceiver module 102 places the message in the network queue corresponding to the communication node. And sending, by the messaging module 102, the message to the communication node via a lower layer network protocol.
  • the messaging device can provide a route forwarding function, that is, a message delivery device on a communication node acts as a gateway to forward messages between different network segments.
  • a route forwarding function that is, a message delivery device on a communication node acts as a gateway to forward messages between different network segments.
  • the messaging device on the communication node can provide routing functions for process communication between two subnets or virtual local area networks; for example, for the purpose of logical IP addresses of a communication node cluster
  • the message of the communication node address may be forwarded by one or several communication nodes in the cluster to the communication node where the process actually processing the message is located.
  • the egress of the corresponding destination address can be set to the network queue corresponding to its destination communication node in the message routing table of the message routing module 103.
  • the present messaging device can also include a message tracking module 104, a traffic control module 105, and a message queue viewing module 106.
  • the message tracking module 104 provides message tracking and debugging at runtime, the main control module
  • the message tracking module 104 provides message tracking based on the communication protocol provided by the messaging device.
  • the tracking mechanism can complement the application layer based protocol tracking mechanism to facilitate the positioning of runtime problems.
  • the flow control module 105 provides a flow control mechanism for controlling the flow of the messaging module 102 under the control of the main control module 101.
  • traffic control is implemented, and the traffic control algorithm is used to limit the ability to send messages to ensure normal communication.
  • Each memory unit allocated by the main control module 101 for the process has an idle event and a variable of the required free space size.
  • the value of the size variable of the required free space is modified.
  • the size of the message packet and wait for an idle event to occur.
  • the message in the memory unit is taken away, it is determined whether the existing free space plus the size of the message to be taken is greater than the value of the size variable of the required free space. If it is greater, there is an idle event, and the transmission continues. The message waiting in front, otherwise continue to wait for the idle event to occur.
  • the message queue viewing module 106 provides a message queue viewing mechanism for viewing messages sent by the messaging module 102 under the control of the main control module 101.
  • the messaging device can know the situation of sending and receiving messages at any time; the message queue viewing module 106 provides a message mapping mechanism to map the control data of the memory unit, and can view the control after mapping each memory unit.
  • the data can be used to locate the fault when the messaging device fails, and the module can be used in conjunction with the message tracking module 104.
  • the main control module 101 invokes the message tracking module 104, the flow control module 105, and the message queue viewing module 106 to manage and monitor the communication process, so as to ensure that the message delivery device performs normal and efficient work.
  • a method for message delivery includes:
  • the source process sends the message to the source messaging device on the same communication node; the source messaging device performs routing according to the destination address information in the message, and sends the message to the destination messaging device invoked by the destination process;
  • the delivery device is on the same communication node as the destination process;
  • the destination messaging device receives the message and sends it to the specified port occupied by the destination process, and notifies the destination process to extract the message.
  • Step 201 The source process invokes the source messaging device, and sends the port initialization parameter to the source messaging device, and the source messaging device initializes the designated port.
  • the source messaging device can have multiple designated ports.
  • the process needs to initialize the designated port.
  • the process needs to send the initialization parameters to the messaging device, and then the message passing device specifies the occupation according to the initialization parameters.
  • the port is initialized.
  • Step 202 The source messaging device receives the message, performs related analysis on the message, extracts the destination address, and determines the transmission path according to the preset message routing table.
  • the destination address of the message may include the address of the communication node where the destination messaging device is located and the designated port on the node where the destination process is located.
  • the source messaging device can use the flow control mechanism to control the flow of sent and received messages.
  • the source messaging device determines the memory unit allocated for the process. When the source messaging device has enough memory for message delivery, the source messaging device will continue to receive and send. Message, when it is judged that the memory space is not enough, the message delivery device will wait for there is enough memory space before the message is delivered.
  • the source messaging device can also use a message tracking mechanism to track and debug specific messages, which can form a mutual relationship with the application layer-based protocol tracking mechanism to locate the problem of the running time of the message.
  • Step 203 The message delivery device determines, according to the determined transmission path, whether the source process and the destination process of the two communication parties belong to the same communication node. If they belong to the same communication node, go to step 204. If they do not belong to the same communication node, go to step 205. .
  • Step 204 The source messaging device directly puts the message into the designated port of the destination message delivery device occupied by the destination process, and proceeds to step S206.
  • step S206 Since the source process and the destination process of the two communication parties belong to the same communication node, in the process of communication, communication can be performed by sharing memory to improve communication efficiency.
  • Step 205 The source messaging device places the message in a network queue corresponding to the determined transmission path, and sends the message to the destination messaging device by using a TCP/IP protocol.
  • Step 206 The destination messaging device invoked by the destination process receives the message transmitted from the source process, and puts the message into the communication port of the destination messaging device occupied by the destination process, and notifies the destination process to extract the message.
  • the destination messaging device After receiving the message from the network, the destination messaging device performs routing according to the destination address of the message, similar to steps 202 to 204. After determining that the transmission path is within the communication node, the message is sent to the designated port of the destination process. in.
  • Step 207 the destination process extracts a message from its designated port.
  • the message passing device can use the message queue viewing function to map the control data of the memory unit, view the control data mapped by each memory unit, and locate the fault. .
  • the messaging device transmits the message to the destination process without requiring the process to participate, thereby reducing the degree of participation of the process, and in the process of communication, the messaging device adopts Traffic control mechanism, message queue tracking mechanism, message viewing mechanism, etc. are used for communication control, which improves the quality of communication.
  • An embodiment of the present invention further provides a message delivery system, including a source process and a destination process. Also includes a source messaging device on the same communication node as the source process and a destination messaging device on the same communication node as the destination process;
  • the source process invokes the source messaging device to send a message to the source messaging device; the source messaging device receives the message sent by the source process, and selects a route according to the destination address of the message, and sends the message to the destination messaging device. ;
  • the destination messaging device receives the message sent by the source messaging device, and sends the message to the designated port of the destination process, and sends a notification of the arrival of the message to the destination process;
  • the destination process fetches the message at the designated port of the destination messaging device according to the notification sent by the destination messaging device.
  • the source messaging device and the destination messaging device may be the same messaging device.
  • the same messaging device may be invoked to complete the inter-process in a shared memory manner. Communication. Multiple processes can simultaneously invoke a messaging device to communicate; a process can utilize a messaging device to communicate with multiple processes.
  • Communication node A and communication node B are in the same network segment, and communication nodes A and B and communication node D are in different network segments.
  • TCP paths 31, 32, 33, and 34 are established for messaging devices to provide a path for message transmission for processes on different nodes.
  • the communication links 301, 302 are communication between internal processes of the communication node, and communication is performed by means of shared memory inside the message delivery device.
  • the communication link 305 is a communication between processes of different communication nodes within the same network segment, and each messaging device completes communication between processes by establishing a TCP path.
  • the communication links 303 and 304 are communication between processes of different communication nodes between different network segments, and the message delivery device invokes the message routing module to select a route for the message, and the message delivery device 3 functions as a route forwarding.
  • the flow control module performs flow control to ensure normal communication.
  • the messaging device tracks the message to determine whether the communication is normal. When the communication is abnormal, the messaging device determines the cause of the communication failure by looking at the message queue.
  • both process 1 and process 2 call the messaging device 1 to communicate, where process 1 And process 2 belong to the same communication node.
  • a process can call a message communication module and communicate with multiple processes.
  • the process 6 in the communication node E invokes the messaging device 5 to communicate with the process node 7 and the process 8 in the communication node F and the communication node G, respectively.
  • the messaging device 5 establishes a communication link 401 with the messaging device 6, and the messaging device 5 establishes a communication link 402 with the messaging device 7.
  • Each messaging device communicates via TCP paths 41, 42.
  • the invention improves the efficiency of communication between processes, ensures the quality of communication, and avoids the repeated labor of the developer, and achieves beneficial effects.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Debugging And Monitoring (AREA)

Description

一种消息传递的方法、 设备和系统 本申请要求于 2006 年 2 月 9 日提交中国专利局、 申请号为 200610033606.0、发明名称为 "一种消息传递的方法、 装置和系统"的中国 专利申请的优先权, 其全部内容通过引用结合在本申请中。 技术领域
本发明属于通信领域, 特别涉及一种用于处理消息通信的消息传递的 方法、 一种消息传递设备和一种消息传递系统。
背景技术
在通信领域中, 经常会涉及到同一通信节点内部的进程之间的通信、 不同通信节点之间的进程通信, 通常的做法是互相通信的进程之间约定通 信的消息格式, 使用 Socket (套接字)进行通信, 在通信的过程中, 进程 需要时刻关注消息的发送情况, 为消息选择路由, 接收消息等。 这样做使 得进程需要花费较多的时间来处理进程之间通信的连接, 消息包的分割和 拼接, 通信效率较低。
同时, 通信行业的开发人员不得不重复的处理进程间通信的细节问 题,造成工作的大量重复,也使进程间通信的可靠性、稳定性得不到保证。 发明内容
有鉴与此, 本发明实施例分别提供了一种消息传递设备、 消息传递系 统和消息传递方法, 以减少进程在处理与其他进程的通信时所花的时间, 避免对进程间通信的重复开发。
本发明实施例中的消息传递设备至少包括:
主控制模块, 负责消息传递设备的各个模块的调度和控制, 并进行内 存单元的管理;
消息路由模块负责根据接收消息的目的地址和预先设置的路由选择 表, 进行路由选择;
消息收发模块负责为进程提供指定端口, 从指定端口或从网络接收消 息, 根据消息路由模块的路由选择结果发送所迷消息。 本发明另一实施例中的消息传递系统包括源进程、 目的进程, 还包括 源消息传递设备和目的消息传递设备;
所述源进程调用源消息传递设备, 将消息发送给源消息传递设备; 所述源消息传递设备接收源进程发送的消息, 并按照所述消息的目的 地址选择路由, 将所述消息发送到目的消息传递设备中;
所述目的消息传递设备接收源消息传递设备发送的消息, 并将该消息 发送到目的进程的指定端口中, 并向目的进程发送消息到达的通知; 所述目的进程根据目的消息传递设备发送的通知, 在目的消息传递设 备的指定端口取出所述消息。
所述的源消息传递设备和目的消息传递设备可以为同一消息传递设 备。
本发明的一个实施例还提出一种消息传递的方法, 包括以下步骤: 从进程的指定端口或从通信节点接收消息;
根据所述消息的目的地址进行路由选择;
按照选择的路由发送所述消息。
本发明的各实施例中, 进程在通信的过程中只需将消息发送给所调用 的消息传递设备, 消息传递设备将负责消息的路由、 发送和接收, 降低了 进程在通信过程中的参与程度, 同时也使工作人员避免了重复的处理通信 的细节问题, 提高了工作效率和通信质量。
附图说明
图 1是本发明中消息传递设备实施例的模块结构图;
图 2是本发明中消息传递方法实施例的流程图;
图 3是本发明中消息传递设备实施例的应用图示;
图 4是本发明实施例中一个进程调用多个消息传递设备的应用图示。 具体实施方式
本发明的实施例提供了一种消息传递设备, 源进程调用消息传递设备 后, 消息传递设备在不需要进程进行参与的情况下, 将消息传送到目的进 程中去。 同时本发明的实施例还提供一种消息通信的方法, 利用该方法进 行消息的传送, 将减少进程的参与程度, 从而可以提高工作效率, 也可以 提高通信的质量。 为了更好的说明本发明的实施例, 下面将结合附图进行 详细的阐述。
本发明实施例提出了一种消息传递设备, 其结构如图 1所示。 本消息 传递设备至少由主控制模块 101、 消息收发模块 102、 消息路由模块 103 组成:
主控制模块 101负责消息传递设备的各个模块的调度和控制,对通信 端口进行初始化, 并负责在传递消息时, 为消息分配内存;
消息收发模块 102接收和发送消息。 消息收发模块为消息传递设备提 供对外的通信端口 , 消息传递设备利用通信端口接收消息和将对应端口中 的消息进行发送, 即从通信端口接收来自源进程或其他消息传递设备的消 息, 以及将消息从通向其目的进程的通信端口发送;
消息路由模块 103根据接收到的消息, 提取目的地址, 并根据消息路 由选择表确定消息传递路径。
当进程调用该消息传递设备进行通信时, 进程首先将其指定端口的初 始化参数发送给消息传递设备, 消息传递设备根据初始化参数对指定的通 信端口进行初始化。 进程收发消息时要首先指定端口, 其他进程要与它通 信的话, 必须知道它在哪个端口上接收消息, 才能在发送消息的时候, 以 相应的端口标识消息的目的进程, 所以每个进程占用的端口都是公开的, 且是不可重复的。 同时主控制模块还为消息传递分配内存单元, 本机进程 之间的通信采用共享内存的方式进行通信, 进程与消息传递设备之间也可 以采用共享内存的方式进行消息的发送和接收。
消息收发模块 102接收进程发送的消息, 对消息进行分析, 将消息传 送给消息路由模块 103 , 消息路由模块 103根据发送消息的目的地址和预 先设置的路由选择表, 进行路由选择。 消息收发模块 102将消息队列中的 消息发送到目的进程调用的消息传递设备中。
消息的目的地址可以包括目的通信节点的地址和目的进程在该节点 上的指定端口。 在消息路由模块 103的路由选择表中保存目的地址与该消 息在消息路由设备的出口的对应关系, 如果该消息的目的进程在本消息路 由设备上具有指定端口, 则由消息收发模块 102将该消息放在目的进程指 定端口对应的队列中, 并由主控制模块 101通知目的进程接收消息; 如果 该消息的目的进程在其他通信节点上, 则由消息收发模块 102将该消息放 在与该通信节点对应的网络队列中, 并由消息收发模块 102通过下层网络 协议将该消息发送至该通信节点。
消息传递设备可以提供路由转发功能, 即由某个通信节点上的消息传 递设备作为网关, 对不同网段之间的消息进行转发。 例如, 以 IP地址作 为通信节点地址时, 通信节点上的消息传递设备可以为两个子网或虛拟局 域网之间的进程通信提供路由功能; 再如, 对以一个通信节点集群的逻辑 IP地址为目的通信节点地址的消息,可以由集群中某个或某几个通信节点 将以其转发至实际处理该消息的进程所在的通信节点。 实现这一功能时, 可以在消息路由模块 103的消息路由表中将相应目的地址的出口设置为与 其目的通信节点对应的网络队列。
除了上述模块外, 本消息传递设备还可以包括消息跟踪模块 104、 流 量控制模块 105和消息队列查看模块 106。
消息跟踪模块 104提供了运行时刻的消息跟踪和调试, 主控制模块
101通过发送指令, 调用消息跟踪模块 104, 对指定消息进行跟踪和管理。 该消息跟踪模块 104提供在消息传递设备提供的通信协议基础上的消息跟 踪, 该跟踪机制能够与基于应用层的协议跟踪机制构成互补关系, 更方便 于运行时刻问题的定位。
流量控制模块 105提供了流量控制机制,在主控制模块 101的控制下, 对消息收发模块 102进行流量的控制。 当消息传递设备的某一个队列的空 闲度小于某一阔值时, 实施流量控制, 应用流量控制算法限制发送消息的 能力, 保证通信的正常进行。
主控制模块 101为进程分配的每一个内存单元都有一个空闲事件、一 个所需空闲空间大小的变量, 当内存单元的空闲空间不够放下一个消息 时, 就修改所需空闲空间的大小变量的值为消息包的大小, 并等待有空闲 事件发生。 当内存单元中的消息被取走时, 会判断已有的空闲空间加上被 取走的消息的大小是否大于所需的空闲空间的大小变量的值, 如果大于, 则有空闲事件,继续发送前面等待的消息,否则继续等待空闲事件的发生。 消息队列查看模块 106提供了一种消息队列查看机制, 在主控制模块 101的控制下, 对消息收发模块 102发送的消息进行查看。 利用该机制, 消息传递设备可以随时了解消息发送和接收的情况; 该消息队列查看模块 106提供了一种消息映射机制, 将内存单元的控制数据进行映射, 可以查 看每一内存单元映射后的控制数据,从而可以在消息传递设备出现故障的 时候, 进行故障定位, 该模块可以和消息跟踪模块 104结合使用。
在通信的过程中, 主控制模块 101调用消息跟踪模块 104、 流量控制 模块 105和消息队列查看模块 106, 对通信的过程进行管理和监控, 可以 保证消息传递设备正常高效的进行工作。
本发明的实施例中, 一种消息传递的方法包括:
源进程将消息发送到在同一个通信节点上的源消息传递设备; 源消息传递设备根据消息中的目的地址信息进行路由选择, 将消息发 送到目的进程所调用的目的消息传递设备中; 目的消息传递设备与目的进 程在同一个通信节点上;
目的消息传递设备接收消息, 并将其发送到目的进程所占用的指定端 口中, 并通知目的进程提取该消息。
具体包括以下步骤:
步骤 201 , 源进程调用源消息传递设备, 并将端口初始化参数发送给 源消息传递设备, 源消息传递设备对指定端口进行初始化。
源消息传递设备可以有多个指定端口, 进程需要对所占用的指定端口 进行初始化, 初始化时, 进程需要将初始化参数发送给消息传递设备, 然 后消息传递设备根据初始化参数, 对其所占用的指定端口进行初始化。
步骤 202, 源消息传递设备接收消息, 并对消息进行相关的分析, 提 取目的地址, 并根据预先设置的消息路由表, 确定传输路径。 消息的目的 地址可以包括目的消息传递设备所在的通信节点的地址和目的进程在该 节点上的指定端口。
源消息传递设备可以使用流量控制机制, 对发送和接收的消息进行流 量控制。 源消息传递设备对为进程分配的内存单元进行判断, 当源消息传 递设备有足够的内存进行消息传递时, 源消息传递设备将继续接收和发送 消息, 当判断内存空间不够时, 则消息传递设备将等待有足够的内存空间 时, 才进行消息的传递。
此外 , 源消息传递设备也可以使用消息跟踪机制, 对特定的消息进行 跟踪和调试, 其能够与基于应用层的协议跟踪机制构成互朴关系, 对消息 进行运行时刻的问题定位。
步骤 203 , 根据确定的传输路径, 消息传递设备判断通信双方的源进 程和目的进程是否属于同一个通信节点, 如果属于同一个通信节点, 转步 骤 204; 如果不属于同一个通信节点, 转步骤 205。
步骤 204, 源消息传递设备直接将消息放到目的进程所占用的目的消 息传递设备的指定端口中, 转步驟 S206。 在这个过程中, 由于通信双方的 源进程和目的进程属于同一个通信节点, 则在通信的过程中, 可以采用共 享内存的方式进行通信, 以提高通信效率。
步骤 205, 源消息传递设备将消息放到确定的传输路径所对应的网络 队列中 , 使用 TCP/IP协议将消息发送给目的消息传递设备。
步驟 206, 目的进程调用的目的消息传递设备接收从源进程传送的消 息, 并将消息放到目的进程所占用的目的消息传递设备的通信端口中去, 通知目的进程提取消息。
目的消息传递设备在从网络接收该消息后, 与步驟 202至 204类似, 根据该消息的目的地址进行路由选择, 在确定传输路径为本通信节点内 后, 将该消息发送至目的进程的指定端口中。
步骤 207, 目的进程从其指定端口提取消息。
需要指出的是, 当进程在通信过程中, 出现通信故障, 消息传递设备 可以使用消息队列查看功能, 将内存单元的控制数据进行映射, 查看每一 个内存单元映射后的控制数据, 进行故障的定位。
通过上述方法, 进程调用消息传递设备后, 消息传递设备在不需要进 程进行参与的情况下,将消息传送到目的进程中去,减少进程的参与程度, 同时在通信的过程中, 消息传递设备采用流量控制机制、 消息队列跟踪机 制、 消息查看机制等进行通信控制, 提高了通信的质量。
本发明的实施例还提出一种消息传递系统, 包括源进程、 目的进程, 还包括与源进程在同一通信节点上的源消息传递设备和与目的进程在同 一通信节点上的目的消息传递设备;
所述源进程调用源消息传递设备, 将消息发送给源消息传递设备; 所述源消息传递设备接收源进程发送的消息, 并按照消息的目的地址 选择路由, 将消息发送到目的消息传递设备中;
所述目的消息传递设备接收源消息传递设备发送的消息, 并将该消息 发送到目的进程的指定端口中, 并向目的进程发送消息到达的通知;
所述目的进程根据目的消息传递设备发送的通知, 在目的消息传递设 备的指定端口取出该消息。
所述的源消息传递设备和目的消息传递设备可以为相同的消息传递 设备, 当源进程和目的进程在同一个通信节点上时, 可以调用同一个消息 传递设备, 以共享内存方式完成进程间的通信。 多个进程可以同时调用一 个消息传递设备进行通信; 一个进程可以利用一个消息传递设备与多个进 程进行通信。
图 3为本发明消息传递设备实施例的应用图例,通信节点 A和通信节 点 B在同一网段内,通信节点 A和 B与通信节点 D在不同的网段内。 TCP 通路 31、 32、 33和 34为消息传递设备所建立, 为不同节点上的进程提供 消息传输的通路。 通信链路 301、 302为通信节点内部进程之间的通信, 在消息传递设备内部采用共享内存的方式进行通信。 通信链路 305为同一 网段内部, 不同通信节点的进程之间的通信, 各个消息传递设备通过建立 TCP通路, 来完成进程之间的通信。 通信链路 303、 304为不同网段之间 的、 不同通信节点的进程之间的通信, 消息传递设备调用消息路由模块为 消息选择路由, 消息传递设备 3起到了路由转发的作用。 同时, 流量控制 模块进行流量控制, 保证通信的正常进行。 在同网同机、 同网异机和异网 异机的进程通信的过程中, 消息传递设备对消息进行跟踪, 以确定通信是 否正常的进行。 当通信异常的时候, 消息传递设备通过查看消息队列, 来 确定通信失败的原因。
多个进程可以同时调用一个消息传递设备和其他进程进行通信, 如图 3所示, 进程 1和进程 2都调用消息传递设备 1进行通信, 在这里进程 1 和进程 2属于同一个通信节点。 同时, 一个进程可以调用一个消息通信模 块和多个进程进行通信。 如图 4所示, 通信节点 E中的进程 6调用消息传 递设备 5分别与通信节点 F和通信节点 G中的进程 7和进程 8进行通信。 消息传递设备 5与消息传递设备 6建立通信链路 401 , 消息传递设备 5与 消息传递设备 7建立通信链路 402。各消息传递设备之间通过 TCP通路 41、 42进行通信。
本发明提高了进程之间进行通信的效率, 保证了通信的质量, 同时也 避免了开发人员重复的劳动 , 取得了有益的效果。
总之, 以上所述仅为本发明的较佳实施例而已, 并非用于限定本发明 的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、 改进等, 均应包含在本发明的保护范围之内。

Claims

权 利 要 求
1、 一种消息传递设备, 其特征在于, 该设备至少包括主控制模块、 消息路由模块和消息收发模块, 其中:
主控制模块负责消息传递设备的各个模块的调度和控制, 并进行内存 单元的管理;
消息路由模块负责根据接收消息的目的地址和预先设置的路由选择 表, 进行路由选择;
消息收发模块负责为进程提供指定端口, 从指定端口或从网络接收消 息, 根据消息路由模块的路由选择结果发送所述消息。
2、 如权利要求 1 所述的一种消息传递设备, 其特征在于, 还包括消 息跟踪模块, 提供消息在传递中的跟踪或调试, 主控制模块调用消息跟踪 模块, 对消息进行跟踪和管理。
3、 如权利要求 1 所述的一种消息传递设备, 其特征在于, 还包括流 量控制模块, 在主控制模块的调用下, 对消息收发模块进行流量控制。
4、 如权利要求 1 所述的一种消息传递设备, 其特征在于, 还包括消 息队列查看模块, 在主控制模块的控制下, 查看消息传递设备内存单元中 消息的控制数据。
5、 一种应用权利要求 1至 4任意一项所述消息传递设备的消息传递 系统, 包括源进程、 目的进程, 其特征在于, 还包括源消息传递设备和目 的消息传递设备;
所述源进程调用源消息传递设备, 将消息发送给源消息传递设备; 所述源消息传递设备接收源进程发送的消息, 并按照所述消息的目的 地址选择路由 , 将所述消息发送到目的消息传递设备中;
所述目的消息传递设备接收源消息传递设备发送的消息, 并将该消息 发送到目的进程的指定端口中, 并向目的进程发送消息到达的通知; 所述目的进程根据其调用的目的消息传递设备发送的通知, 在目的消 息传递设备的指定端口取出所述消息。
6、 如权利要求 5所述的一种消息传递系统, 其特征在于, 所述的源 消息传递设备和目的消息传递设备为同一消息传递设备。
7、 一种消息传递的方法, 其特征在于, 包括以下步骤:
从进程的指定端口或从通信节点接收消息;
根据所述消息的目的地址进行路由选择;
按照选择的路由发送所述消息。
8. 如权利要求 7所述的消息传递方法, 其特征在于, 所述目的地址 包括目的进程所在通信节点的地址和目的进程的指定端口;
所述按照选择的路由发送消息包括:
将消息发送至本通信节点上目的进程的指定端口; 或
将消息发送至除本通信节点外的其他通信节点对应的网络队列中。
9. 如权利要求 8所述的消息传递设备, 其特征在于: 以共享内存方 式将所述消息发送至同一通信节点上目的进程的指定端口;
所述从通信节点接收消息采用传输控制协议 /网际协议 TCP/IP。
10. 如权利要求 7所述的消息传递方法, 其特征在于, 所述方法还包 括: 从进程接收端口初始化参数, 对其指定端口进行初始化。
11. 如权利要求 7所述的消息传递方法, 其特征在于, 所述方法还包 括: 从进程接收到指定端口的释放通知后, 结束所述指定端口的通信并释 放所述指定端口。
12. 如权利要求 7所述的消息传递方法, 其特征在于, 所述方法还包 括: 对已发送的消息进行跟踪调试。
13. 如权利要求 7所述的消息传递方法, 其特征在于, 所述方法还包 括: 对发送和接收的消息进行流量控制。
14. 如权利要求 7所述的消息传递方法, 其特征在于, 所述方法还包 括: 对所述消息的控制数据进行内存映射。
PCT/CN2007/000439 2006-02-09 2007-02-08 Procédé, appareil et système de transmission de message WO2007090352A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
AT07702311T ATE480084T1 (de) 2006-02-09 2007-02-08 Verfahren, vorrichtung und system zur nachrichtenübermittlung
KR1020087001878A KR100932585B1 (ko) 2006-02-09 2007-02-08 메시지 전송 방법, 장치 및 시스템
EP07702311A EP1892929B1 (en) 2006-02-09 2007-02-08 A method, an apparatus and a system for message transmission
DE602007008799T DE602007008799D1 (de) 2006-02-09 2007-02-08 Verfahren, vorrichtung und system zur nachrichtenübermittlung
US12/002,885 US7839848B2 (en) 2006-02-09 2007-12-19 Method, device and system for message transmission

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200610033606.0 2006-02-09
CNB2006100336060A CN100471180C (zh) 2006-02-09 2006-02-09 一种消息传递的方法、装置和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US12/002,885 Continuation US7839848B2 (en) 2006-02-09 2007-12-19 Method, device and system for message transmission

Publications (1)

Publication Number Publication Date
WO2007090352A1 true WO2007090352A1 (fr) 2007-08-16

Family

ID=37298190

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2007/000439 WO2007090352A1 (fr) 2006-02-09 2007-02-08 Procédé, appareil et système de transmission de message

Country Status (7)

Country Link
US (1) US7839848B2 (zh)
EP (1) EP1892929B1 (zh)
KR (1) KR100932585B1 (zh)
CN (2) CN100471180C (zh)
AT (1) ATE480084T1 (zh)
DE (1) DE602007008799D1 (zh)
WO (1) WO2007090352A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100471180C (zh) 2006-02-09 2009-03-18 华为技术有限公司 一种消息传递的方法、装置和系统
CN101127685B (zh) * 2007-09-20 2011-05-25 中兴通讯股份有限公司 一种进程间通讯装置及其进程间通讯方法
CN101478543B (zh) * 2009-01-19 2012-12-12 华为终端有限公司 一种网络访问方法和装置
CN102469035B (zh) * 2010-11-05 2016-01-20 腾讯科技(深圳)有限公司 跨进程通信的方法和装置
US8561080B2 (en) * 2011-04-26 2013-10-15 Sap Ag High-load business process scalability
CN102147751B (zh) * 2011-04-26 2012-11-21 北京新媒传信科技有限公司 一种多进程间的通信方法
CN103853620B (zh) * 2012-11-30 2017-06-09 华为技术有限公司 一种众核处理器进程间相互通信的方法、装置及系统
CN103164359B (zh) * 2013-01-29 2017-04-05 北京雪迪龙科技股份有限公司 一种管道通信方法和装置
CN104102550A (zh) * 2013-04-12 2014-10-15 南京南瑞继保电气有限公司 一种多主机进程间通信的方法
CN104133728B (zh) * 2013-12-16 2015-07-22 腾讯科技(深圳)有限公司 一种进程间通讯的方法、及装置
US9846567B2 (en) * 2014-06-16 2017-12-19 International Business Machines Corporation Flash optimized columnar data layout and data access algorithms for big data query engines
CN106330474A (zh) * 2015-06-15 2017-01-11 国核(北京)科学技术研究院有限公司 核电站堆芯监测管理设备及其监测管理方法
CN107544778A (zh) * 2016-06-28 2018-01-05 上海洋启投资中心 实现主题沟通的综合界面
CN107733945B (zh) * 2016-08-11 2019-03-12 北京百度网讯科技有限公司 用于机器人操作系统的信息传输方法及装置
US10708214B2 (en) * 2017-08-04 2020-07-07 Sap Se Determining overall message status in a message processing system
CN107944230A (zh) * 2017-11-20 2018-04-20 山东超越数控电子股份有限公司 一种软件激活验证的通用方法
US10778595B2 (en) * 2018-11-01 2020-09-15 International Business Machines Corporation Operating a message queue cluster having multiple nodes
CN109557995A (zh) * 2018-11-21 2019-04-02 Tcl移动通信科技(宁波)有限公司 一种应用程序中断控制方法、移动终端及存储介质
US20220138021A1 (en) * 2021-07-23 2022-05-05 Intel Corporation Communications for workloads
CN115190124B (zh) * 2022-06-24 2023-12-26 远光软件股份有限公司 基于分布式工业控制系统的消息传输方法、装置、存储介质及调度服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1169224A (zh) * 1994-12-09 1997-12-31 英国电讯有限公司 多处理器环境
US20030115358A1 (en) 2001-09-04 2003-06-19 Yeong-Hyun Yun Unified interprocess communication
US6590894B1 (en) * 1996-05-28 2003-07-08 Cisco Technology, Inc. Network flow switching and flow data export
US6839350B1 (en) * 1999-06-29 2005-01-04 Hitachi, Ltd. Node apparatus and packet communication method for communicating with a mobile terminal

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE503219C2 (sv) 1994-09-05 1996-04-22 Ericsson Telefon Ab L M Anordning och förfarande för processbaserad meddelandehantering i ett kommunikationssystem
CN1245004C (zh) 2001-07-04 2006-03-08 中兴通讯股份有限公司 短消息互通与共享的设备与方法
CN1280726C (zh) 2002-10-18 2006-10-18 上海贝尔有限公司 一种用于嵌入式系统软件开发的虚拟机装置
US6717946B1 (en) * 2002-10-31 2004-04-06 Cisco Technology Inc. Methods and apparatus for mapping ranges of values into unique values of particular use for range matching operations using an associative memory
CN1273910C (zh) 2002-11-19 2006-09-06 宝山钢铁股份有限公司 总线式进程间通信方法
US7283473B2 (en) * 2003-04-10 2007-10-16 International Business Machines Corporation Apparatus, system and method for providing multiple logical channel adapters within a single physical channel adapter in a system area network
US20050010925A1 (en) * 2003-07-10 2005-01-13 Charbel Khawand Interprocessor communication protocol with smart streaming port
CN100471180C (zh) 2006-02-09 2009-03-18 华为技术有限公司 一种消息传递的方法、装置和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1169224A (zh) * 1994-12-09 1997-12-31 英国电讯有限公司 多处理器环境
US6590894B1 (en) * 1996-05-28 2003-07-08 Cisco Technology, Inc. Network flow switching and flow data export
US6839350B1 (en) * 1999-06-29 2005-01-04 Hitachi, Ltd. Node apparatus and packet communication method for communicating with a mobile terminal
US20030115358A1 (en) 2001-09-04 2003-06-19 Yeong-Hyun Yun Unified interprocess communication

Also Published As

Publication number Publication date
EP1892929A4 (en) 2008-07-30
US20080107115A1 (en) 2008-05-08
DE602007008799D1 (de) 2010-10-14
ATE480084T1 (de) 2010-09-15
KR100932585B1 (ko) 2009-12-17
EP1892929B1 (en) 2010-09-01
CN1859327A (zh) 2006-11-08
EP1892929A1 (en) 2008-02-27
KR20080025175A (ko) 2008-03-19
CN101313560A (zh) 2008-11-26
US7839848B2 (en) 2010-11-23
CN100471180C (zh) 2009-03-18

Similar Documents

Publication Publication Date Title
WO2007090352A1 (fr) Procédé, appareil et système de transmission de message
US10110480B2 (en) Multi-protocol I/O interconnect including a switching fabric
JP5792894B2 (ja) ポート拡張トポロジ情報の取得用方法、システム及び制御ブリッジ並びにアップリンクポートの処理方法及びシステム
US9215083B2 (en) System and method for supporting direct packet forwarding in a middleware machine environment
US20030115358A1 (en) Unified interprocess communication
US20100005190A1 (en) Method and system for a network controller based pass-through communication mechanism between local host and management controller
CN102413059B (zh) 一种基于spb网络的组播转发方法和spbm桥
CN107750357A (zh) 具有硬件加速平面和软件平面的数据处理系统
CA2154296A1 (en) Method and apparatus for configuring fabrics within a fibre channel system
US20100192218A1 (en) Method and system for packet filtering for local host-management controller pass-through communication via network controller
JP5591814B2 (ja) 終端をグルーピングするための方法
CN101442493A (zh) Ip报文分发方法、集群系统和负载均衡器
JP2008510338A (ja) パケット交換制御用の集積回路及び方法
US8228913B2 (en) Implementing system to system communication in a switchless non-IB compliant environment using InfiniBand multicast facilities
JP2010531602A5 (zh)
WO2021103657A1 (zh) 网络操作方法、装置、设备和存储介质
US6977924B1 (en) Control and distribution protocol for a portable router framework
US7995566B2 (en) Method for ensuring VLAN integrity for voice over internet protocol telephones
US7350014B2 (en) Connecting peer endpoints
Riddoch et al. Distributed computing with the CLAN network
JP2007500474A (ja) サービス品質保証及び選択的ブロードキャストを提供するプロセッサ間通信プロトコル
JP4413121B2 (ja) Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法
WO2023026443A1 (ja) 情報処理システム、情報処理方法及び情報処理プログラム
US20240179085A1 (en) Methods, systems and computer readable media for emulating physical layer impairments in a cloud computing environment
CN115883256B (zh) 基于加密隧道的数据传输方法、装置及存储介质

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200780000242.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2007702311

Country of ref document: EP

Ref document number: 12002885

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 1020087001878

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 2007702311

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 12002885

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: PI0707525

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20080806