CN1327653C - Routing method of pub/sub system on structural P2P network - Google Patents

Routing method of pub/sub system on structural P2P network Download PDF

Info

Publication number
CN1327653C
CN1327653C CNB2004100099742A CN200410009974A CN1327653C CN 1327653 C CN1327653 C CN 1327653C CN B2004100099742 A CNB2004100099742 A CN B2004100099742A CN 200410009974 A CN200410009974 A CN 200410009974A CN 1327653 C CN1327653 C CN 1327653C
Authority
CN
China
Prior art keywords
node
message
subspace
filtercondition
subscribe
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
CNB2004100099742A
Other languages
Chinese (zh)
Other versions
CN1625119A (en
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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CNB2004100099742A priority Critical patent/CN1327653C/en
Publication of CN1625119A publication Critical patent/CN1625119A/en
Application granted granted Critical
Publication of CN1327653C publication Critical patent/CN1327653C/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

The present invention discloses a routing method of a pub/sub system constructed on a structural P2P network. The method comprises the following steps that all the nodes are coded, and the nodes are divided into subspace with different levels according to prefixes of the codes; a confluent node for forwarding the information of other nodes in the subspace is selected in each subspace for each node; a corresponding routing list is established for each node by using the subspace as a basis, and the corresponding confluent node of each subspace is recorded; a corresponding filter condition list is established for each node by using the subspace as a basis, and subscribing conditions defined by each subspace are recorded; when the node information is forwarded, the information is firstly forwarded to the confluent node of each target subspace, and the confluent node processes the information; subsequently, the information is forwarded to the corresponding node in the subspace in which the confluent node exist according to the routing list and the filter condition list of the confluent node. The event can be sent to every subscriber in fewer frequency of forwarding the information in the present invention.

Description

Be implemented in the method for routing of the pub/sub system on the structured P 2 P network
Technical field
The present invention relates to a kind of method for routing that is implemented in the pub/sub system on structuring equity (Peer to Peer the is called for short P2P) network.
Background technology
Publish/subscribe (publish/subscribe is called for short pub/sub) system is a kind of Distributed Calculation platform (or claiming middleware system), is used to a kind of loosely-coupled communication mode is provided between each participant in the distributed system.On a large scale, in the highly dynamic distributed system, its each participant may constantly add and withdraw from, each participant often is difficult to know currently have which participant to be in line states, thereby makes the information interaction between them become very difficult.And the Pub/sub system can address this problem well, thereby is obtaining people's very big concern in recent years.
In the pub/sub system, between the producers and consumers of information mutual information be called as " incident ".The producer of information sends to " incident " " event agent (event broker) "; Information consumer is then sent one " subscription condition " to the event agent, represents interested in which incident in the system; The event agent guarantees that then the incident that will be issued sends all information of interest consumers in time, reliably to.In the pub/sub system, the producer of information is called " publisher (publisher) ", and the consumer of information is called " subscriber (subscriber) ".Publisher and subscriber are when carrying out information interaction, do not need to know the other side's existence mutually, make them aspect three of time, space and control flows, all be closed by full decoupled, thus can satisfy on a large scale well, the needs of highly dynamic distributed system.The basic structure of publish/subscribe system as shown in Figure 1.
For example, for an online auction system that is implemented on the pub/sub system, if someone (being made as first) will auction a computer, the event content that he issued is { product=computer, years already spent=2 year, price=3000 yuan,, if and another person's (being made as second) is interested in less than the incident of 4000 yuan auction computer all prices, he can define a subscription condition: { product=computer, price<4000 yuan }.Like this, the pub/sub system is transmitted to second with regard to the incident of being responsible for first is issued.
Usually a plurality of event agents that distributing in the large-scale pub/sub system, these event agents are organized into certain topological structure, and each event agent is client (publisher or the subscriber) service of some, as shown in Figure 2.The Routing Protocol that a key technical problem in this system is a message (being commonly called " content-based Routing Protocol "), promptly the various message in the system (subscribe request, the request of cancelling subscriptions, the incident that is published etc.) arrive destination node according to which kind of path from sending node.Content-based Routing Protocol is for overall system efficiency, reliability and scalability important influence all.
Though people have proposed a variety of content-based method for routing, these methods generally all are based upon on the fixing network configuration, promptly require each event agent not break down, and the connection of the network between each event agent is not simultaneously broken down yet.Thereby these methods are difficult to satisfy a lot of requirement of actual application.
In recent years, be the very big concern that structural P 2 P (the peer to peer) network of representative obtains people in recent years with Pastry, Tapestry, Chord and CAN.Structured P 2 P network has decentralized control (whole system neither one centralized control point) and self-organizing series of advantages such as (each member can dynamically add and withdraw from), thus also be very suitable on a large scale, highly dynamic distributed system.
In structured P 2 P network, each node is organized into a kind of directed graph with ad hoc structure, so that the path between any two points generally is no more than log k(N), wherein k is default parameter, and N is the maximum node quantity in the network.Generally have mulitpath between two nodes in the network, so it provides stronger fault-tolerant ability and transmission of messages reliability.In the forwarding way of message, to have only when a large amount of neighbours of certain node were lost efficacy simultaneously, message just can't arrive the destination.
Though the Routing Protocol of every kind of structured P 2 P network is different, generally speaking, they all are route (key-based routing) agreements that adopts based on key.Each node all has a coding, links to each other by oriented limit between the node, and be responsible between certain code area on each output limit of node.For each node, it respectively export the routing table that has constituted this node between limit and its code area of being responsible for.
Below with Pastry (A.Rowstron and P.Druschel.Pastry:Scalable, distributed objectlocation and routing for large-scale peer-to-peer systems.In Proceedings of IFIP/ACMMiddleware 2001 conference, Heidelberg, Germany, November 2001.) introduce the Routing Protocol of structured P 2 P network for example.In Pastry, the coding of each node is the number of the length k system that is L.Pastry comes to be divided into different subintervals to carrying out segmentation between overall code area according to the coding prefix.If certain node be encoded to n, the routing table of this node is RT nFor simplicity, can be with RT nBe interpreted as following set:
RT n={(prefix,nodeId,address)}
Each route entry is wherein represented: is the node of prefix for all codings with prefix, and this section is named a person for a particular job and jumped to its forwarding message as next with nodeId, and the IP address of node nodeId is address.The coding of NodeId necessarily is prefix with prefix, and it is equivalent to " representative " of each node in this interval.For example, establish k=4, L=3, the routing table that then is encoded to 213 node is as shown in Figure 3.If there is not the node that is encoded to prefix with certain in the whole network, then in routing table, there be not corresponding.
In the Pastry net, the coding of all nodes constitutes the address space of a linearity, and they are divided into the subspace of different levels according to the prefix of coding.The basic principle of Pastry routing table is: for each subspace, this node all will be looked for one " representative " therein, is recorded in the routing table.All will be dealt into the message in this subspace in the future, all pass through this " representative " and transmit.As shown in Figure 4, be the route entry schematic diagram of node 213 in whole address space, wherein each curve arrow is represented a route entry.
As shown in Figure 5, be the situation of the cutting apart schematic diagram between 213 pairs of overall code areas of node.Digitized representation coding prefix in each node in the tree, root node is represented between overall code area.Each leaf node (except that self) all has corresponding in routing table.For each the coding prefix in the routing table, if its length is k, then its preceding k-1 position is identical with the preceding k-1 position of this node coding, and the k position is different with the k position of this node coding.
Suppose that node 213 will send a message to node 201.It is the route entry of prefix that node 213 is looked in the routing table of oneself with " 20 ", jumps 202 if obtain next, then this message is issued 202.It is the route entry of prefix that node 202 is looked in the routing table of oneself with " 201 " again, and message is issued corresponding address.
Pastry provides fault-tolerant ability and reliability preferably.In the forwards process, if finding its corresponding next jumping, certain node lost efficacy, it then according to the thought of greedy method, selects one from the nearest node of target code from current routing table, by this node this message is continued to send forward.Simultaneously, from network, seek new " representative " in this interval again, to repair routing table.
In recent years, a lot of people make up content-based pub/sub system on structured P 2 P network, wish to utilize the advantage of P2P network, improve the adaptive capacity of pub/sub system, thereby serve better on a large scale, highly dynamic pub/sub system node failure and topologies change.
The topological structure that is implemented in the pub/sub system on the structured P 2 P network can be divided into two kinds of super-peer and pure-peer again, the former is meant that each node in the P2P network is only as the event agent, each event agent can connect several clients, the client is not in the P2P network, as Hermes; The latter refers to that each node in the P2P network is simultaneously as event agent and client, as Scribe and Bayeux.These two kinds of structures are consistent in essence; For the super-peer structure, it can be interpreted as a kind of special pure-peer structure, wherein the application layer of each node comprises a plurality of application system examples.For simplicity, in the following discussion, regulation pub/sub system wherein has only an application system example based on the pure-peer structure on each node.
The pub/sub system that is implemented on the structured P 2 P network can be divided into P2P layer, pub/sub layer and three levels of application layer, as shown in Figure 6.The P2P layer is used for each event agent is formed the P2P network of a self-organizing, and the pub/sub layer is responsible for subscribing to and the forwarding of incident between each event agent; Application layer is to be responsible for the application system of the issue and the incident of reception.Routing Protocol in the Pub/sub system is the Routing Protocol of pub/sub layer, and it is based upon on the P2P layer Routing Protocol.
Undertaken alternately by " operation " between Pub/sub layer and two other level, each operation can have several parameters.Then undertaken alternately by " message " between the pub/sub layer of different nodes, each message also can have several parameters.For message and operating space are separated, operation table is shown: action type (parameter list), as subscribe (f 1), and message table is shown: (type of message: parameter list), as (subscription:sp 1, f 1, dp 1).
Generally speaking, the pub/sub layer provides following several operation to application layer at least:
Subscribe (filter): application layer is interested in the incident that all satisfy the filter condition.
Unsubscribe (filter): application layer is no longer interested in the incident that satisfies the filter condition.
Publish (event): new incident of application layer issue.
Each example of application layer should provide following operation:
Notify (event): the pub/sub layer is told application layer, has arrived its interested incident.
At present, the Routing Protocol that uses in the pub/sub system on the structured P 2 P network is mainly with Scribe (M.Castro, P.Druschel, A.-M.Kermarrec and A.Rowstron.SCRIBE:A large-scale anddecentralised application-level multicast infrastructure.IEEE Journal on Selected Areasin Communications.Vol.20, Oct.2002) the middle multicast mechanism that proposes is the basis.Scribe is a multicast system (being also referred to as the pub/sub system based on theme) that is based upon on the Pastry.Each multicast group is all corresponding special node in network, is called point.Each node sends to adding message the point of this group when adding the multicast group.Point makes up one oneself to be the multicast tree of root according to each inverse path that adds message.Each node also sends to it the point of multicast group when giving out information, forwarded by multicast tree by point again.In order to handle the situation of node failure in the multicast tree, it requires each node in the tree all regularly to send heartbeat message to its child.If certain node is not received the heartbeat message of its father node over a period to come, it just thinks that father node lost efficacy, and it just sends subscribe message to point again with other paths then, to repair multicast tree.Scribe only provides weak reliability to guarantee, during the fracture and reparation of multicast tree, the incident that point sent may be lost.In addition, also there be the problem of tree root load than big and single point failure in it.
Hermes (P.Pietzuch and J.Bacon.Hermes:A distributed event-based middlewarearchitecture.Proceedings of the 1st International Workshop on Distributed Event-BasedSystems (DEBS ' 02), IEEE Press.Vienna, Austria.July 2002.) and (D.Tam such as D.Tam, R.Azimi, and H.-A.Jacobsen.Building Content-Based Publish/Subscribe Systems withDistributed Hash Tables.In Proceedings of First International Workshop on Databases, Information Systems, and Peer-to-Peer Computing (DBISP2P 2003), 138-152.September 2003.) all be multicast mechanism based on Scribe, on this, expanded, with structure pub/sub system.But these systems can not provide the reliability stronger than Scribe to guarantee that incident possibly can't arrive all subscribers.Simultaneously, these systems also require to have several special " points " in the P2P network, and these points provide centralized service, and its load is considerably beyond other node, thereby have also lost the decentralized control of P2P network and the advantage of equally loaded.
Summary of the invention
At existing problem and shortage in the method for routing that uses in the pub/sub system on the above-mentioned existing structure P2P network, the purpose of this invention is to provide a kind of have reliability height, the method for routing that is implemented in the pub/sub system on the structured P 2 P network that router efficiency is high.
The present invention is achieved in that a kind of method for routing that is implemented in the pub/sub system on the structured P 2 P network, the node of this system comprises P2P layer, pub/sub layer and application layer, contain routing table in the described P2P layer, contain the filtercondition table in the described pub/sub layer; The Pub/sub layer is based upon on the P2P layer, provides the subscription and the notification service of incident to application layer, and this method may further comprise the steps,
1) all nodes are encoded, and by the prefix of coding described node division is become the subspace of different levels, for each node, it selects the node that converges of a message that is used for transmitting these other nodes of subspace in each subspace;
2),, and write down each subspace and converge node accordingly for each node is set up corresponding route table items based on described subspace;
3) based on described subspace, set up corresponding filtercondition table for each node, write down the defined subscription condition in each subspace;
When 4) node messages is transmitted, at first with described the converge node of forwards to each target subspace, converge this message of node processing, by the described routing table of converging node and filtercondition table this forwards is converged respective nodes in the subspace, node place to this then.
Further, this method also comprises, when a new node dynamically adds fashionablely, at first carries out the initialization of P2P layer, to make up corresponding routing table, carries out the initialization of pub/sub layer then, to make up the filtercondition table; When a node failure, the forwards that then will be forwarded to this failure node extremely is in other node place of same subspace with this failure node.
Further, record operation sequence number therebetween when mutual between described P2P layer and application layer, the pub/sub layer, the initial operation sequence number of setting each node is 1, carries out an operation after, operate sequence number and add 1; Contain the information of operating sequence number in the described message; When node was received a message, relatively the sequence number in this message added 1 and oneself the size of sequence number, and oneself sequence number is made as both maximum sequence numbers.
Further, described forwards is specially:
When 1) node is desired subscribe message, the subscription condition is transmitted to the node that converges of each subspace; After converging node and receiving this subscription condition, this subscription condition is added oneself filtercondition table, again should the subscription condition be forwarded to other nodes of this subspace;
When 2) node cancels subscriptions, the forwards that cancels subscriptions is given the node that converges of each subspace; After converging node and receiving this message that cancels subscriptions, with corresponding filtercondition cancellation, the forwards that again this cancelled subscriptions is to other nodes of this subspace;
3) when certain node issue incident, will check that the filtercondition table sends this incident with decision to which subspace, mails to this incident the node that converges of corresponding subspace then; After converging node and receiving this incident, check the filtercondition table sends this incident with decision to which littler subspace, after transmitting through several times like this, can make this incident arrive the node that all have defined corresponding subscription condition.
Further, this method comprises that also when concerning, then forwards is specially under the subscription condition of the transmission of two nodes in the subspace has:
When the non-concurrent transmission of two subscribe message,, then cover last condition if subscribe to big the sending of condition and range in the back; If subscribe to condition and range big in preceding transmission, then after the less subscription condition of scope only need be sent to other nodes in this subspace;
When two concurrent transmissions of subscribe message,, send by aforementioned manner then in next non-concurrent forwarding place.
Further, this method comprises that also when concerning, then forwards is specially under the message that cancels subscriptions of the transmission of two nodes in the subspace has:
When the non-concurrent transmission of these two message that cancel subscriptions, when then cancelling the less subscription condition of scope, only the node of other in the subspace sends the message that cancels subscriptions; If during the bigger subscription condition of cancellation scope, converge node and will send this message that cancels subscriptions to each subspace, wherein also indicated the less subscription condition of this scope, after each node is received this message, with the bigger subscription condition of this scope of cancellation, increase the less subscription condition of specified scope simultaneously;
When these two concurrent transmissions of the message that cancels subscriptions,, send by aforementioned manner in next non-concurrent forwarding place.
Further, this method also comprises, when cancel subscriptions operation and the subscription operation of affiliated relation are concurrent, is under the jurisdiction of the condition of subscription as if the condition that cancels subscriptions, and then in next non-concurrent forwarding place, only transmits subscribe message; If the condition of subscribing to is under the jurisdiction of the condition that cancels subscriptions, then in next non-concurrent forwarding place, transmit the message that cancels subscriptions earlier, transmit subscribe message again.
The present invention adopts based on the method for routing between the code area, can be comparatively naturally integrates with the Routing Protocol of P2P network itself, and utilizes the fault tolerant mechanism of P2P network routing protocol to improve the reliability of event transmission.As long as can reach in the P2P network between the publisher of incident and the subscriber, then subscriber one receives the incident that it is ordered surely, and only receives once.The present invention also has higher router efficiency, can avoid unnecessary messages to transmit.For the propagation of incident, the present invention detects in the targeted subnet whether the interested subscriber of pair present event is arranged, and only sends to the interested subscriber of present event.Compare with the content-based Routing Protocol on the existing structured P2P network, the present invention only needs still less inferior forwards just incident can be sent to each subscriber.
Description of drawings
Fig. 1 is the basic structure schematic diagram of existing publish/subscribe system;
Fig. 2 is the structural representation of existing extensive publish/subscribe system;
Fig. 3 is the routing table schematic diagram of certain node 213;
Fig. 4 is the route entry schematic diagram of node 213 in whole address space;
Fig. 5 is the partition structure schematic diagram between 213 pairs of overall code areas of node;
Fig. 6 is the pub/sub system architecture schematic diagram on the structured P 2 P network;
Fig. 7 a, 7b are respectively that node 213 is carried out subscribe (f 1) before and after each node filtercondition hoist pennants;
Fig. 8 a, 8b are respectively that node 213 is carried out unsubscribe (f 1) before and after each node filtercondition hoist pennants;
Fig. 9 is a subscribe operational processes schematic flow sheet of the present invention;
Figure 10 is a unsubscribe operational processes schematic flow sheet of the present invention;
Figure 11 is a publish operational processes schematic flow sheet of the present invention;
Figure 12 is an initialization operation handling process schematic diagram of the present invention;
Figure 13 is a subscription Message Processing schematic flow sheet of the present invention;
Figure 14 is addFilter (sp of the present invention 1, ef 1) subprocess handling process schematic diagram;
Figure 15 is a updateSubscription Message Processing schematic flow sheet of the present invention;
Figure 16 is a notification Message Processing schematic flow sheet of the present invention;
Figure 17 is a redirect Message Processing schematic flow sheet of the present invention;
Figure 18 is a requestFilter Message Processing schematic flow sheet of the present invention.
Embodiment
The present invention is the improvement to the pub/sub system on the existing structured P2P network.According to the characteristics of structured P 2 P network, it is the generation tree of root with it that the present invention creates one for each node, and wherein the child of root node is every in the root node routing table.Each node that generates in the tree is responsible between a code area, and root node is responsible between overall code area, is the part between its father node code area of being responsible between the code area that other each node is responsible for.For example, in example shown in Figure 3, establishing node 213 will be with certain information broadcast to whole network, and then this node at first sends to message every in its routing table.For node 202, after it received message, it is transmitted to the coding prefix was each node in 20 the interval; For node 031, after it received message, it is transmitted to the coding prefix was each node in 0 the interval, or the like.The propagation of subscribe message and event message all is based on above-mentioned generation tree.After a node was received client's subscribe request, it just sent subscribe message itself according to the generation tree that with is root, and utilizes the covering relation of subscription condition that forwards is optimized.For the node of receiving subscribe message, it is indifferent to this message which imports the limit from, and between the code area of care subscriber's coding for own (that is: this node can arrive this subscriber along which output limit).Like this, the generation of each node tree just becomes the incident distribution tree simultaneously.When a node was received the incident that the client sends, it sent to each subscriber along this generation tree with incident equally.
Below introduce the present invention in detail.
At first introduce the definite method of the present invention to the order of each nodal operation.Because the P2P network is a dynamic network, the different messages between two nodes may be to transmit along different paths, so can not guarantee the reception order of message and the sequence consensus that sends.Therefore, can not judge the order of occurrence of the operation that causes this message in proper order according to the reception of message.If a node has successively been carried out two operations, the message that operation caused that might the back can be prior to the message of previous operation and is arrived destination node.Describe for convenient, establish node n 1Carried out operation op 1, node n 2Carried out operation op 2Under following two kinds of situations, claim operation op 1Occur in op 2Before:
1) n 1=n 2, and op 2At op 1Carry out afterwards;
2) n 1≠ n 2, and n 2Receiving by operation op 1After the message that is produced, just begin to carry out op 2
For the sequencing that decision operation takes place, the present invention is to the sequence number of each operation setting in the system.Specific as followsly (establish node n iCurrent operation sequence number be opNo i):
When initial, each node n iInitial operation sequence number opNo i=1; Each node n iCarry out subscribe, unsubscribe during the publish operation, operates in all message in the whole system that is caused thus, all comprises this sequence number opNo iEach node n iAfter carrying out an operation, with opNo iAdd 1; Each node n jWhen receiving a message, the sequence number opNo in this message relatively iWith the sequence number opNo of oneself j, and establish opNo jBe opNo i+ 1 and opNo jIn bigger one.
Like this, the present invention is for any two the operation op in the system 1And op 2If, op 1Occur in op 2Before, op then 1Sequence number necessarily less than op 2Sequence number.If opPeer is the node serial number of executable operations, opNo represents the sequence number of operating, and then (opPeer opNo) has identified an operation in the system uniquely.
Introduce " expansion filtercondition " and " filtercondition table " among the present invention below.
For ease of describing, the present invention represents to assert " incident e satisfies filtercondition f " with f (e), uses E fExpression set { e|f (e) }, promptly all satisfy the set of the incident of filtercondition f.For two filtercondition f 1, f 2If all satisfy f 2Incident also necessarily satisfy f 1, then claim f 1Cover f 2, be designated as f 1 ⊇ f 2 .
For two filtercondition f 1, f 2If, f 1 ⊇ f 2 And f 1≠ f 2, then claim f 1The true f that covers 2, be designated as f 1_ f 2
The present invention proposes a kind of new data structure in the node---expansion filtercondition (extended filter).The structure of an expansion filtercondition is that (opNo), wherein f is a filtercondition for f, opPeer, and opPeer is the numbering of the Peer of execution subscribe (f) operation, and opNo is the operation sequence number.
Describe for convenient, for two expansion filtercondition ef 1And ef 2, when following condition was set up, the present invention claimed ef 1The true ef that covers 2, be designated as ef 1_ ef 2:
ef 1.f_ef 2.f∨(ef 1.f=ef 2.f∧ef 1.opPeer>ef 2.opPeer)
Be convenient and describe, below with ef i.f brief note is f i
The pub/sub layer of each node is all being safeguarded a filtercondition table.If the filtercondition table of node n is FT n, then it can be expressed as set: FT n=(prefix, extended_filter) }.Wherein each is called a filtering item, be illustrated in prefix be between the code area of prefix in, have at least a node to subscribe to the filtercondition among the extended_filter.A prefix can corresponding a plurality of filtering items.
Introduce the processing procedure of the present invention below to different operating.
If certain node be encoded to n 1, as its application layer executable operations subscribe (f 1) time, the pub/sub layer of this node is at first with (n 1, ef 1) add oneself filtercondition table, wherein ef 1=(f 1, n 1, opNo 1).Then, it sends subscription message, to notify other each nodes.
The form of subscription message is: (subscription:subscriber_prefix, extended_filter, destine_prefix), parameter wherein represent between subscriber's code area respectively, the target code interval of expansion filtercondition and this message.If the A node sends this message to the B node, expression A request B with this forwards to destine_prefix being each node between the code area of prefix.
When a pub/sub layer that converges node is received message (subscription:sp 1, ef 1, dp 1) time, it is at first with (sp 1, ef 1) insert in the filtercondition table of oneself, then this forwards is arrived with dp 1Be each node between the code area of prefix.In order to make other each node can know the subscribe request of this node, simple way is with this subscription information broadcast all nodes in the whole network.In the present invention, the filtercondition table of each node is by organizing between the code area, therefore can utilize the covering relation between the filtercondition in adjacent encoder interval, comes the forwarding of subscription message is optimized.When the pub/sub of certain node layer is handled operation subscribe (f 1) time, it at first checks the filtercondition table of oneself, look at and oneself code area between defined between adjacent which code area and compared f 1The filtercondition that scope is bigger utilizes this information to reduce the target code interval of subscription message then.
For example, establish the application layer executable operations subscribe (f of node 213 1).At first, to send subscription message coding prefix length in the routing table be 3 every (promptly 210,211,212) to node 213.In the filtercondition table of node 213,, an existing length is provided with a filtercondition ef if being 3 coding prefix (as 210) 2, ef 1 ⋐ ef 2 , Then each node in the network has all been known in the interval that with " 21 " is prefix has node to E F2Interested, and E F1_ E F2So, node 213 do not need to send subscription message in the routing table coding prefix length less than 3 every.The filtercondition table of each node that this operation caused changes shown in Fig. 7 a, 7b.
When the application layer of certain node was carried out unsubscribe (filter) operation, the pub/sub layer of this node will be notified other nodes on the one hand, and is own to E FilterNo longer interested; On the other hand, it should be taken into account that also this filter may cover the filtercondition of other node in the adjacent encoder interval, therefore will handle especially these filterconditions that is capped.
For this reason, the present invention has defined a type of message (updateSubscription:subscriber_prefix, canceled_ef, added_efs, destine_prefix, opPeer, opNo), represent to cancel a filtercondition between given code area, increase several filterconditions simultaneously.The target code interval of the expansion filtercondition that the parameter in the message represents to send between the code area of " revise and subscribe to " request respectively, be cancelled, newly-increased expansion filtercondition set, this message, carry out the coding and the operation sequence number of the node of unsubscribe operation.
For example, establish the application layer executable operations unsubscribe (f of node 213 1).At first, node 213 finds (n in its filtercondition table 1, ef 1), ef wherein 1.f=f 1, and will delete in this Xiang Congqi filtercondition table.Then, initiate a message (updateSubscription:213, ef of node 213 1, Φ, destine_prefix, n 1, opNo 1) the coding prefix length is 3 every (promptly 210,211,212) in the routing table.In the filtercondition table of node 213,, an existing length is provided with a filtercondition ef if being 3 coding prefix (as 210) 2, ef 1 ⋐ ef 2 , Be to still have node to E in the interval of prefix then with " 21 " F2Interested, and E F1_ E F2So, node 213 needn't send updateSubscription message in the routing table coding prefix length less than 3 every.Consequently, the filtercondition table of each node has been got back to the state shown in Fig. 7 a from the state shown in Fig. 7 b again.
In the filtercondition table of node 213,, length all can not cover ef if being the filtercondition of 3 the prefix of respectively encoding 1, and have filtercondition (to be made as node 211 defined ef 3) can be by ef 1Cover, then node 213 should be again in routing table the coding prefix length be 2 every initiating a message (updateSubscription:21, ef 1, { ef 3, destine_prefix, n 1, opNo 1).If being the filtercondition of 2 the prefix of respectively encoding, length still can not cover ef 1, then node 213 should be again in routing table the coding prefix length be every updateSubscription message of sending of 1.The filtercondition table of each node that this operation caused changes shown in Fig. 8 a, 8b.
After a node is received updateSubscription message from other nodes, it at first adjusts the filtercondition table of oneself, be prefix subscriber_prefix deletion filtercondition canceled_ef, increase the filtercondition that comprises among the added_efs, other nodes in then between own responsible code area are transmitted this message.Yet, because the P2P network is a dynamic network, when a node (is made as n 2) receive message updateSubscription (sp 1, ef 1, AF 1, dp 1, n 1, opNo 1) time, it may also not receive corresponding subscription message, so does not have filtering item (sp in its filtercondition table 1, ef 1).In this case, n 2Should continue and will transmit this message to other node, simultaneously this updateSubscription message be put into the waiting list of oneself, (the operation sequence number of this message should be less than opNo to wait for other message 1) with (sp 1, ef 1) add the filtercondition table after, just processed.When a node added filtering item in the own filtercondition table at every turn, it should check waiting list, sees to have or not corresponding updateSubscription message, as if having, then this message is taken out from waiting list and is handled.
When the application layer executable operations publish (event) of certain node, its pub/sub layer will send notification message, to tell other each nodes.The form of notification message is: (notification:event, destine_prefix, opPeer, opNo), parameter is wherein represented the incident that is published, the target code interval of this message, publisher's coding and operation sequence number respectively.
If certain node be encoded to n 1, its current operation sequence number is opNo 1When its application layer is carried out publish (e 1) when operating, the pub/sub layer will check the filtercondition table sends notification message with decision to which node.For each re in the Pastry routing table iIf in the filtercondition table, there is a filtering item (re i.prefix, ef i), and ef i.f (e 1) be true, the pub/sub course rei.nodeId (notification:e that initiates a message then 1, re i.prefix, n 1, opNo 1).
When other nodes (are established and are encoded to n 2) receive message (notification:e 1, dp 1, n 1, opNo 1) time, it is handled as follows:
1) if in the filtercondition table (n is arranged 2, ef), make ef.f (e 1) be true, then notify the application layer of this node;
2) in the Pastry routing table all with dp 1Route entry re for prefix jIf fe=(re is arranged in the filtercondition table j.prefix, ef j), make ef j.f (e 1) be true, then to re j.nodeId (notification:e initiates a message 1, re j.prefix, n 1, opNo 1);
3) the current operation sequence number opNo of this node 2=max (opNo 1+ 1, opNo 2).
Like this through after some jumpings, can make this message arrive in the whole network all to the interested node of this incident.
An important feature of structured P 2 P network is exactly self-organizing, and promptly each node can dynamically add and withdraw from.Introduce the processing that the present invention dynamically adds and withdraws from node below.
When a new node dynamically adds fashionablely, it at first carries out the initialization of P2P layer, to make up routing table; Carry out the initialization of pub/sub layer then, to make up the filtercondition table.
The initialization procedure of pub/sub layer is as follows: new node finds any to have the node of long common prefix with it in the Pastry routing table, sends a requestFilter message to it then, please it its filtercondition table be sent to oneself.Then, new node is just created the filtercondition table of oneself according to the filtercondition table of this node.The present invention illustrates this process with an example.That supposes new node is encoded to 213, have with it longest-prefix existing node be encoded to 202.That is to say, be not the node of prefix with 21 in the whole before this network.In the filtercondition table of 213,202 liang of nodes, the coding prefix length is that 1 item (promptly 0,1,3) is consistent.For length is 2 coding prefix, has 22,23 in the filtercondition table of node 202, does not necessarily have 20,21; And have 20,22,23 in the filtercondition table of node 213.For coding prefix 22 and 23, node 202 is consistent with 213 filtering item.For coding prefix in the node 213 is 20 filtering item, we can from the filtercondition table of node 202, get all length be 3 coding prefix (201,202 ...), its filtercondition gathered and get.Because node 213 is to be unique node of prefix with 21 in the whole network, be 3 filtering item so there is not the coding prefix length in the node 213.In this way, the filtercondition table of node 213 has been finished with regard to initialization.
Because the node in the P2P network may log off at any time, in the repeating process of message, the situation that a certain node had lost efficacy may appear in the Pastry routing table.The present invention has stronger adaptive capacity to this, this is because arbitrary node that given message only need be sent to the target code interval get final product, and does not rely on node that certain is fixed.Situation for the processing node inefficacy, the present invention has defined a kind of type of message: (redirect:middle_id, destine_prefix original_message), is used for the arbitrary node that encapsulates original message and send it to the target code interval.Parameter is wherein represented the target code interval of the target code of this message, former message and the content of former message respectively, and middle_id is to be the intermediate code value (the intermediate code value as " 21 " prefix is 211) in the zone of prefix with destine_prefix.
In the repeating process of aforementioned various message, if next has jumped corresponding node failure, then system obtains the intermediate code value middle_id in the target code interval of this message, utilizes the routing mechanism of P2P network then, sends redirect message to middle_id.The P2P network will be sought appropriate path and transmit redirect message forward, make each node in the way coding all than the coding of last node more near middle_id.In the forwarding of redirect message way, in case arrive certain node, its prefix equals destine_prefix, then stops to send forward, names a person for a particular job at this that it is converted to original message, handles accordingly.If the node of redirect message when stopping still is not to be prefix with the target code interval, show that then each node in this interval all lost efficacy, or subregion appears in whole P2P network, thereby this message will be abandoned.
After malfunctioning node recovered normally, the process that it adds by new node joined in the P2P net again, and reinitializes the filtercondition table.Set subscribe request need be reset before this node.
By said method, this method can guarantee that then subscriber one receives the incident that it is ordered surely, and only receives once as long as can reach between the publisher of incident and the subscriber in the P2P network.
Because agreement of the present invention is optimized the range of transmission of subscription message and updateSubscription message according to neighbours' filtercondition, so when the filtercondition of neighbor node changes, must need to take certain additional measure, occur inconsistent with the filtercondition table of avoiding each node.Processing when introducing the present invention below to the concurrent executable operations of different nodes.
N is arranged in the supposing the system 1And n 2Two nodes, they have identical coding prefix pr 1If the maximum duration that any two messages between nodes send in the network is MaxDT.Description of the invention is based on following prerequisite:
Node failure in the system can not cause the P2P network to be cut apart disconnected subnet: after node was carried out the unsubscribe operation, it can not failed in the time at MaxDT after this.
Below description is made in the processing of the concurrent execution of several operations.
If node n 1Carry out subscribe (f 1) time, node n 2Carry out subscribe (f 2), and ef 1 ⋐ ef 2 . Because two nodes are not all known the other side's operation, thus they all the node of all in the whole network send subscribe message.Yet, for pr 1Node beyond interval, they only need processing messages (subscription:pr 1, ef 2, destine_prefix) just much of that, and needn't processing messages (subscription:pr 1, ef 1, destine_prefix).
For fear of sending unnecessary subscription message, cause waste of network resources, each node is being transmitted message (subscription:sp 1, ef 1, in the time of destine_prefix), should check the filtercondition table of oneself earlier, see wherein whether there has been filtering item (sp 1, ef 2), and ef 1 ⋐ ef 2 . If this filtering item is arranged, so just send this message no longer forward.
If node n 1Carry out unsubscribe (f 1) time, node n 2Carry out unsubscribe (f 2), and ef 1 ⋐ ef 2 . At this moment, n 1The filtercondition table in write down n 2To f 2Subscription, so it only will " f cancels subscriptions 1" message sends to pr 1Node in interval, and not to pr 1Node beyond interval sends.And n 2The filtercondition table in write down n 1To f 1Subscription, so it is to pr 1The message that node beyond interval sends is (updateSubscription:pr 1, ef 2, { ef 1, destine_prefix, n 2, opNo 2).Like this, after after a while, pr 1In the node beyond interval filtering item (pr is arranged all 1, ef 1), and pr in fact lNode in interval is no longer subscribed to ef 1
For fear of this situation, each node is after carrying out the unsubscribe operation, should note the target code interval of the sequence number of this operation, the expansion filtercondition of being cancelled and updateSubscription message, the message that MaxDT was after this received in the time is handled especially then.If node n 2The sequence number of unsubscribe operation be opNo 2, the expansion filtercondition of being cancelled is ef 2, then for the (updateSubscription:n that receives in a period of time after this 1, ef 1, AF, destine_prefix, n 1, opNo 1) message, if ef 1 ⋐ ef 2 , And ef 1.opNo>ef 2.opNo (be n 1Might be according to n 2Subscription dwindled the message scope), and ef 1.opNo<opNo 2(be n 2When unsubscribe, the filtercondition table may have ef 1), n then 2The scope that Ying Xianggeng is big is reissued message (updateSubscription:n 1, ef 1, AF.destine_prefix, n 1, opNo 1), the scope of reissuing is for " ef cancels subscriptions 2" target interval of message deducts that " ef cancels subscriptions 1" target interval of message.
But said method may cause the transmission that repeats of updateSubscription message again.For example in last example, if n 1Receiving n 2UpdateSubscription message after carry out unsubscribe again, then can not cause system mode inconsistent, thereby n 2The message of reissuing afterwards is unnecessary.The transmission that repeats for fear of updateSubscription message, each node should be checked the message history of oneself when receiving updateSubscription message, look at whether to receive the message with identical opPeer and opNo, if receive, then stop to transmit forward.
If node n 1Carry out subscribe (f 1) time, node n 2Carry out unsubscribe (f 2).At this moment to divide following two kinds of situations to consider:
1、ef 1_ef 2。Node n 1To " subscribe to ef 1" message sends to the whole network, n simultaneously 2Also will " ef cancels subscriptions 2" message sends to the whole network.For pr 1Node beyond interval (is made as n 3), it receives message (subscription:pr 1, ef 1, destine_prefix) after, promptly delete (the pr in its filtercondition table automatically 1, ef 2), so needn't handle n again 2UpdateSubscription message.
But, for n 3, have a variety of situations can cause not having filtering item (pr in its filtercondition table 1, ef 2), n for example 2Subscription message no show still etc.For the correctness of guarantee agreement, it must give other node with this updateSubscription forwards.
2、 ef 1 ⋐ ef 2 . At this moment, n 1The filtercondition table in write down n 2To ef 2Subscription, so n 1Only will " subscribe to ef 1" message sends to pr 1Node in interval, and not to pr 1Node beyond interval sends.Simultaneously, n 2Then " ef cancels subscriptions to the whole network transmission 2" message.Like this, after after a while, pr 1Both there be not filtering item (pr in the node beyond interval 1, ef 1), there is not filtering item (pr again 1, ef 2), thereby cause n 1Can't receive some its interested incident.
For fear of this situation, each node all will be handled the message that MaxDT after this arrived in the time after carrying out the unsubscribe operation especially.If node n 2The sequence number of unsubscribe operation be opNo 2, the expansion filtercondition of being cancelled is ef 2, then for the (subscription:n that receives in a period of time after this 1, ef 1, destine_prefix) message, if ef 1 ⋐ ef 2 , And ef 1.opNo>ef 2.opNo (be n 1Might be according to n 2Subscription dwindled the message scope), then this node should be reissued message (subscription:pr to bigger scope 1, ef 1, destine_prefix), the scope of reissuing is for " ef cancels subscriptions 2" target interval of message deducts and " subscribe to ef 1" target interval of message.
But, do and may cause the transmission that repeats of subscription message like this.For example in last example, if n 1Receiving n 2UpdateSubscription message after carry out subscribe again, then can not cause system mode inconsistent, thereby n 2The message of reissuing afterwards is unnecessary.Therefore, each node should be checked the message history of oneself when receiving subscription message, looks at whether to receive the message with identical opPeer and opNo, if receive, then stops to transmit forward.
Introduce entire data structure of the present invention below.
In the present invention, the pub/sub layer of each node need be safeguarded following four kinds of data altogether: filtercondition table (Filter Table, FT), cancellation operation table (Unsubscribing Operation Table, UOT), message history formation (Message History Queue, MHQ), the formation that waits for the arrival of news (Waiting Message Queue, WMQ).
The form of each is in the filtercondition table of each node of the present invention: (prefix, extended_filter).Wherein, prefix is a coding prefix of sending opPeer, and extended_filter is the expansion filtercondition.The form of extended_filter is: (opNo), wherein filter is the filtercondition of appointment in the subscribe request for filter, opPeer, and opPeer is the nodes encoding that sends subscribe request, and opNo is the sequence number of this subscription operation.
The cancellation operation table of each node of the present invention has write down its interior performed unsubscribe operation of MaxDT time in the past, and wherein MaxDT is the maximum duration that any two messages between nodes send in the network.In the cancellation operation table each is: (opNo, ef, minPrefixLen) wherein opNo represents to cancel the sequence number of operation, and ef represents that the expansion filtercondition cancelled, minPrefixLen represent the minimum length of the target prefix of the updateSubscription message that sent.
The message history queue record of each node of the present invention it received in the MaxDT time in the past, and the message handled, wherein MaxDT is the maximum duration that any two messages between nodes send in the network.
Each node of the present invention wait for the arrival of news queue record it received in the MaxDT time in the past, still untreated message for various reasons, wherein MaxDT is the maximum duration that any two messages between nodes send in the network.
Introduce entire message type of the present invention below.The present invention has following four types message:
1, subscription message is represented a subscribe request.Form is: (destine_prefix), wherein, subscriber_prefix represents between subscriber's code area for subscription:subscriber_prefix, extended_filter; Extended_filter represents the expansion filtercondition of subscriber's appointment; Destine_prefix represents the target code interval of this message.
2, updateSubscription message is represented to cancel certain subscription condition between certain code area, and increases other subscription conditions.Form is: (updateSubscription:subscriber_prefix, canceled_filter, added_filters, destine_prefix, opPeer, opNo), wherein, subscriber_prefix represents between the code area of the request of sending; Canceled_filter represents the filtercondition that is cancelled; The set of the filtercondition that added_filters indicates to increase; Destine_prefix represents the target code interval of this message; OpPeer represents to carry out the nodes encoding of unsubscribe operation; OpNo represents the sequence number of unsubscribe operation.
3, notification message is represented the arrival of certain incident.Form is: (notification:event, destine_prefix, opPeer, opNo), wherein, event represents the incident that is published; Destine_prefix represents the target code interval of this message; OpPeer represents to carry out the nodes encoding of publish operation; OpNo represents the sequence number of publish operation.
4, redirect message is used for the arbitrary node that encapsulates original message and send it to the target code interval.Form is: (original_message), wherein, middle_id represents the target code of this message for redirect:middle_id, destine_prefix, and it is to be the intermediate code value in the interval of prefix with destine_prefix; Destine_prefix represents the target code interval of former message; Original_message is the content of former message.
5, requestFilter message is used for obtaining its filtercondition table to certain neighbor node request.Form is: (requestFilter:requester_id), wherein, requester_id represents the coding of requesting node.
Introduce the handling process of the present invention below to various operations and message.For convenience of description, the present invention defines several basic functions:
Length (n): the length of returning coding n;
Left (n, i): the preceding i position of returning coding n;
BeginWith (n 1, n 2): test n 1Whether with n 2Be prefix,, otherwise return false if then return true;
Mid_key (pre): returning with pre is intermediate code value between the code area of prefix;
CommonPrefix (n 1, n 2): return n 1And n 2Common prefix.
Below be the handling process of the present invention to various operations and message.
If node n 1Executable operations subscribe (f 1), the current operation sequence number of this node is opNo 1Node n 1Handling process as shown in Figure 9.
If node n 1Executable operations unsubscribe (ef 1), the current operation sequence number of this node is opNo 1Node n 1Handling process as shown in figure 10.
If node n 1Executable operations publish (e 1), the current operation sequence number of this node is opNo 1Node n 1Handling process as shown in figure 11.
If node n 1Just added the P2P network, it is with the filtercondition table of initialization oneself.The handling process of initialization operation as shown in figure 12.
If node n 1Receive message m sg 1, its content is (subscription:sp 1, ef 1, dp 1).Node n 1Handling process as shown in figure 13.
Use a subprocess addFilter (sp in the said process 1, ef 1), be used for to n 1The filtercondition table in increase a filtering item, and check n 1The formation that waits for the arrival of news in have or not the message that cancels subscriptions accordingly, if having then and handle accordingly.Sp wherein 1Be coding prefix, ef 1Be the expansion filtercondition.
Subprocess addFilter (sp 1, ef 1) implementation as shown in figure 14, its adopts the method for recurrence to realize.Because during each recursive call, new ef all can be covered by the ef of last time institute is true, so this process must stop in the limited step.
If node n 1Receive message m sg 1, its content is (updateSubscription:sp 1, ef 1, AF, dp 1, opPeer 1, opNo 1).Node n 1Handling process as shown in figure 15.
If node n 1Receive message m sg1, its content is (notification:e 1, dp 1, opPeer 1, opNo 1).Node n 1Handling process as shown in figure 16.
If node n 1Receive message m sg 1, its content is (redirect:mid 1, dp 1, origin_msg 1).Node n 1Handling process as shown in figure 17.
If node n 1Receive message m sg 1, its content is (requestFilter:n 2).Node n 1To be transmitted to n to the filtercondition table of oneself 2, its handling process as shown in figure 18.

Claims (6)

1, a kind of method for routing that is implemented in the publish/subscribe system on the structured p2p network, the node of this system comprises peer layer, publish/subscribe layer and application layer, may further comprise the steps:
1) all nodes is encoded, and described node division is become the subspace of different levels by the prefix of coding; For each node, in each subspace, select one and be used for the node that converges of forwards to these other nodes of subspace;
2),, and write down each subspace and converge node accordingly for each node is set up corresponding route table items based on described subspace;
3) based on described subspace, set up corresponding filtercondition table for each node, write down the defined subscription condition in each subspace;
When 4) node is desired subscribe message, the subscription condition is transmitted to the node that converges of each subspace; After converging node and receiving this subscription condition, this subscription condition is added oneself filtercondition table, again should the subscription condition be forwarded to other nodes of this subspace;
When 5) node cancels subscriptions, the forwards that cancels subscriptions is given the node that converges of each subspace; After converging node and receiving this message that cancels subscriptions, with corresponding filtercondition cancellation, the forwards that again this cancelled subscriptions is to other nodes of this subspace;
6) when certain node issue incident, will check that the filtercondition table sends this incident with decision to which subspace, mails to this incident the node that converges of corresponding subspace then; After converging node and receiving this incident, check the filtercondition table sends this incident with decision to which littler subspace, after transmitting through several times like this, can make this incident arrive the node that all have defined corresponding subscription condition;
Wherein, described filtercondition table record the defined subscription condition in each subspace, be kept at the publish/subscribe layer.
2, method for routing as claimed in claim 1 is characterized in that, this method also comprises, when a new node dynamically adds fashionablely, at first carry out the initialization of peer layer, to make up corresponding routing table, carry out the initialization of publish/subscribe layer then, to make up the filtercondition table; When a node failure, the forwards that then will be forwarded to this failure node extremely is in other node place of same subspace with this failure node.
3, method for routing as claimed in claim 1 is characterized in that, record operation sequence number therebetween when mutual between described peer layer and application layer, the publish/subscribe layer, the initial operation sequence number of setting each node is 1, carries out an operation after, operate sequence number and add 1; Contain the information of operating sequence number in the described message; When node was received a message, relatively the sequence number in this message added 1 and oneself the size of sequence number, and oneself sequence number is made as both maximum sequence numbers.
As each described method for routing of claim 1-3, it is characterized in that 4, this method comprises that also when concerning, then forwards is specially under the subscription condition of the transmission of two nodes in the subspace has:
When the non-concurrent transmission of these two subscribe message,, then cover last condition if subscribe to bigger the sending of condition and range in the back; If subscribe to condition and range big in preceding transmission, then after the less subscription condition of scope only need be sent to other nodes in this subspace;
When these two concurrent transmissions of subscribe message,, send by aforementioned manner then in next non-concurrent forwarding place.
As each described method for routing of claim 1-3, it is characterized in that 5, this method comprises that also when concerning, then forwards is specially under the message that cancels subscriptions of the transmission of two nodes in the subspace has:
When the non-concurrent transmission of these two message that cancel subscriptions, when then cancelling the less subscription condition of scope, only the node of other in the subspace sends the message that cancels subscriptions; If during the bigger subscription condition of cancellation scope, to send this message that cancels subscriptions to each subspace, wherein also indicate the less subscription condition of this scope, after each node is received this message, with the bigger subscription condition of this scope of cancellation, increase the less subscription condition of specified scope simultaneously;
When these two concurrent transmissions of the message that cancels subscriptions,, send by aforementioned manner in next non-concurrent forwarding place.
6, method for routing as claimed in claim 1 is characterized in that, this method also comprises, cancel subscriptions operation and subscription operation when concurrent as affiliated relation, if the condition that cancels subscriptions is under the jurisdiction of the condition of subscription, then, only transmit subscribe message in next non-concurrent forwarding place; If the condition of subscribing to is under the jurisdiction of the condition that cancels subscriptions, then in next non-concurrent forwarding place, transmit the message that cancels subscriptions earlier, transmit subscribe message again.
CNB2004100099742A 2004-12-09 2004-12-09 Routing method of pub/sub system on structural P2P network Expired - Fee Related CN1327653C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100099742A CN1327653C (en) 2004-12-09 2004-12-09 Routing method of pub/sub system on structural P2P network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100099742A CN1327653C (en) 2004-12-09 2004-12-09 Routing method of pub/sub system on structural P2P network

Publications (2)

Publication Number Publication Date
CN1625119A CN1625119A (en) 2005-06-08
CN1327653C true CN1327653C (en) 2007-07-18

Family

ID=34763151

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100099742A Expired - Fee Related CN1327653C (en) 2004-12-09 2004-12-09 Routing method of pub/sub system on structural P2P network

Country Status (1)

Country Link
CN (1) CN1327653C (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101394415B (en) * 2007-09-19 2012-08-29 北京邮电大学 Method and device of resource broadcast interaction mechanism used in structured coverage network
CN101938503B (en) * 2009-09-27 2013-03-20 北京暴风科技股份有限公司 System and method for selecting opposite terminals in point-to-point network
CN102427419B (en) * 2011-08-09 2014-03-26 国电南瑞科技股份有限公司 Method for supporting poly-morphism function of message bus
CN102420864B (en) * 2011-12-01 2014-03-26 河海大学 Massive data-oriented data exchange method
CN102711209B (en) * 2012-06-01 2015-02-11 广州市香港科大霍英东研究院 Dynamic self-organizing hierarchical routing method applied to wireless sensor network
CN102833151B (en) * 2012-07-02 2015-07-08 上海交通大学 User individuation priority routing algorithm based on content coverage and feedback mechanism
CN103412883B (en) * 2013-07-17 2016-09-28 中国人民解放军国防科学技术大学 Semantic intelligent information distribution subscription method based on P2P technology
CN103729461B (en) * 2014-01-12 2017-02-01 中国科学院软件研究所 Releasing and subscribing method based on history recorded data mining
WO2017214801A1 (en) * 2016-06-13 2017-12-21 深圳天珑无线科技有限公司 Distributed network message processing method and node
WO2017214802A1 (en) * 2016-06-13 2017-12-21 深圳天珑无线科技有限公司 Distributed network message processing method and node
WO2017214803A1 (en) * 2016-06-13 2017-12-21 深圳天珑无线科技有限公司 Distributed network message returning method and node
WO2017214810A1 (en) * 2016-06-13 2017-12-21 深圳天珑无线科技有限公司 Distributed network routing method and node
CN111181853B (en) * 2019-12-30 2022-07-01 布比(北京)网络技术有限公司 Pure distributed data exchange method and system based on block chain
CN112702270B (en) * 2020-12-18 2023-05-02 深圳赛安特技术服务有限公司 Node calling method, system and storage medium based on event distribution mechanism

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1120768A (en) * 1995-09-05 1996-04-17 张向东 Method and unit for stratified transmitting data on network of public telephone
US20020016867A1 (en) * 2000-05-02 2002-02-07 Sun Microsystems, Inc. Cluster event service method and system
CN1346464A (en) * 1998-12-31 2002-04-24 联合想象计算机公司 Method and apparatus for the dynamic filtering and routing of events
WO2004072800A2 (en) * 2003-02-06 2004-08-26 Progress Software Corporation Dynamic subscription and message routing on a topic between a publishing node and subscribing nodes
US20040236780A1 (en) * 2003-02-25 2004-11-25 Michael Blevins Systems and methods for client-side filtering of subscribed messages

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1120768A (en) * 1995-09-05 1996-04-17 张向东 Method and unit for stratified transmitting data on network of public telephone
CN1346464A (en) * 1998-12-31 2002-04-24 联合想象计算机公司 Method and apparatus for the dynamic filtering and routing of events
US20020016867A1 (en) * 2000-05-02 2002-02-07 Sun Microsystems, Inc. Cluster event service method and system
WO2004072800A2 (en) * 2003-02-06 2004-08-26 Progress Software Corporation Dynamic subscription and message routing on a topic between a publishing node and subscribing nodes
US20040236780A1 (en) * 2003-02-25 2004-11-25 Michael Blevins Systems and methods for client-side filtering of subscribed messages

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Pastry: scalable,decentralized object location and routingfor large-scale peer-to-peer systems Antony Rowstron,Peter Druschel,Proceedings of 18th IFIP/ACM International Conference on Distributed Systems Platforms (Middleware 2001) 2001 *

Also Published As

Publication number Publication date
CN1625119A (en) 2005-06-08

Similar Documents

Publication Publication Date Title
CN1327653C (en) Routing method of pub/sub system on structural P2P network
Leitao et al. Epidemic broadcast trees
Castro et al. SCRIBE: A large-scale and decentralized application-level multicast infrastructure
EP1703701B1 (en) APIs to build peer to peer messaging applications
Ferreira et al. Thicket: A protocol for building and maintaining multiple trees in a p2p overlay
Datta et al. Anonymous publish/subscribe in p2p networks
CN103856534A (en) Method and system for collecting logs based on peer-to-peer network
Turau et al. Scalable routing for topic-based publish/subscribe systems under fluctuations
Baklouti et al. Choreography-based vs orchestration-based service composition in opportunistic networks
CN1937553B (en) Reciprocal network data dispatching method based on flow media data frame
CN101605094B (en) Ring model based on point-to-point network and routing algorithm thereof
Choi et al. Mirinae: A peer-to-peer overlay network for large-scale content-based publish/subscribe systems
Zarrin et al. A self-organizing and self-configuration algorithm for resource management in service-oriented systems
Kniesburges et al. A deterministic worst-case message complexity optimal solution for resource discovery
Alekseev et al. A New Algorithm for Construction of a P2P Multicast Hybrid Overlay Tree Based on Topological Distances
Nguyen et al. Efficient video dissemination in structured hybrid p2p networks
Zhai et al. An improved DDS publish/subscribe automatic discovery algorithm
Allani et al. Rasm: A reliable algorithm for scalable multicast
JP4180488B2 (en) Node device and network topology reconstruction method
Jin et al. TCMM: hybrid overlay strategy for P2P live streaming services
Hsu et al. Message transmission techniques for low traffic P2P services
de Lacerda Machado et al. Client-Transparent and Self-Managed MQTT Broker Federation at the Application Layer
Hua et al. A P2P architecture for supporting group communication in CSCW systems
Zieba Overview of the reliability aspects in the publish/subscribe middleware
Lee et al. An adaptive sector-based routing model over structured peer-to-peer networks

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
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: 20070718

Termination date: 20181209