CN100458767C - Method and apparatus for reliable and efficient content-based routing and query and response in a publish-subscribe network - Google Patents

Method and apparatus for reliable and efficient content-based routing and query and response in a publish-subscribe network Download PDF

Info

Publication number
CN100458767C
CN100458767C CNB038121808A CN03812180A CN100458767C CN 100458767 C CN100458767 C CN 100458767C CN B038121808 A CNB038121808 A CN B038121808A CN 03812180 A CN03812180 A CN 03812180A CN 100458767 C CN100458767 C CN 100458767C
Authority
CN
China
Prior art keywords
network
notice
reservation
router
content
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 - Lifetime
Application number
CNB038121808A
Other languages
Chinese (zh)
Other versions
CN1656474A (en
Inventor
P·-F·杨
T·W·陈
A·W·P·冯
D·S·罗森布卢姆
S·亚尼克
C·-Y·王
C·-M·林
Y·黄
R·特奥多雷斯库
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.)
PreCache Inc
Original Assignee
PreCache Inc
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 PreCache Inc filed Critical PreCache Inc
Publication of CN1656474A publication Critical patent/CN1656474A/en
Application granted granted Critical
Publication of CN100458767C publication Critical patent/CN100458767C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • H04L67/5651Reducing the amount or size of exchanged application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

A method and apparatus provide for executing publish-subscribe operations over unreliable networks (10). A method and apparatus provide for propagating filters in a publish-subscribe network (118, 140). A method and apparatus provide for content-based routing of packets in a publish-subscribe network (118, 140). A method and apparatus provide for implementing query-response interactions on a publish-subscribe network (118, 140). A method and apparatus provide for persistent caching of methods delivered via a publish-subscribe network (118, 140).

Description

Be used for reliably and the method and apparatus that carries out content-based route, inquiry and response efficiently at public reservation network
Quoting of related application
The application has required the right of priority of following application, and incorporate their content into the application, for your guidance, described application is: the exercise question of on March 28th, 2002 application for the U.S. Provisional Application of " ReliablePublish/Subscribe System Architecture over Unreliable Networks " number is 60/368,833 application; The exercise question of on March 28th, 2002 application for the U.S. Provisional Application of " Methods for Propagating Content Filters for a Publish/SubscribeNetwork " number is 60/369,105 application; The exercise question of on March 28th, 2002 application for the U.S. Provisional Application of " Practical Method for Content-Based Packet Routing in aPublish/Subscribe Network " number is 60/368,831 application; The exercise question of on March 28th, 2002 application for the U.S. Provisional Application of " Implementing Query-ResponseInteractions On a Publish-Subscribe Infrastructure By Mapping DataAdvertisements as Subscriptions and Queries as Notifications " number is 60/368,870 application; The exercise question of on April 3rd, 2002 application for the U.S. Provisional Application of " Method andApparatus for Implementing Persistent and Reliable Message Delivery " number is 60/369,832 application; And application on February 19th, 2003, exercise question is that the U.S. Provisional Application of " Propagating Content Filters; Content-Based Packet Routing UsingCompact Filter Storage and Off-Line Pre-computation; Reliable Publishingand Subscribing Implementing Persistent and Reliable Message Delivery; and Implementing Query-Response Interactions By Mapping DataAdvertisements as Subscriptions and Queries as Notifications in aPublish-Subscribe Network " number is 60/447,782 application.
The application also introduces following content, and for your guidance, described content is: the 10/199th, No. 356 U.S. Patent application that is entitled as " PacketRouting ViaPayload Inspection "; The 10/199th, No. 368 U.S. Patent application that is entitled as " Method And Apparatus For Content-Based Routing And Filtering AtRouters Using Channels "; The 10/199th, No. 439 U.S. Patent application that is entitled as " MethodFor Sending And Receiving A Boolean Function Over A Network "; The 10/199th, No. 369 U.S. Patent application that is entitled as " Method For Storing Boolean FunctionsTo Enable Evaluation, Modification, Reuse, And Delivery Over ANetwork "; And be entitled as " EfficientImplementation of Wildcard Matching On Variable-Sized Fields InConnect-Based Routing " the 10/199th, No. 388 U.S. Patent applications, these applications are all applied on July 19th, 2002.
Technical field
The present invention relates to a kind of execution distribution-reservation method of operating, network, router, more specifically is that they are carried out on insecure network.
Background technology
The network bandwidth increases by index law ground.Yet network infrastructure (comprising router, server, demons, agreement etc.) is still used old relatively technology.Therefore, the Internet application and network router can't be caught up with the speed that bandwidth increases.Simultaneously, more and more install and use all become can use network.Place the load of these devices on the network node and application greatly to increase.The complicacy that the increase of offered load and application numbers also makes realization and maintaining network use increases greatly.Therefore, the unprecedented use of the increase of the network bandwidth and network equipment and application has produced the problem of route and data transmission in old network infrastructure, particularly outstanding when to subscriber's issued content.
The model that makes network give client with information from server push is a distribution-subscription type.According to this model, described server becomes the publisher of the simplification of its information, and do not consider which client to described information interested or they where be positioned at network.Described client becomes the subscriber of information, is sent when information becomes effective, do not consider potentially relevant it in the where released details of network.Then, described network is responsible for efficiently the information to the distribution of subscriber's route, information is complementary with effectively subscribing, and being that transparent way is carried out above-mentioned these operations for publisher and subscriber.
Because in distribution-subscription model, greatly reduced the complicacy of server, therefore, the difference between heavyweight server and the lightweight client begins to disappear, exactly, be merged into the notion of a peer-to-peer, this peer-to-peer can be that publisher or subscriber or both are.Has natural compatibility (affinity) the distribution-subscription type of the application of many types between peer device is mutual.The general problem that becomes the basis of many these application is that information released and that subscribe is the form appearance with incident.For example, the investor buys or sells stock, makes the price of stock change.Traffic hazard takes place on highway, makes the traffic jam on the highway.Security breaches in the software systems are found, and cause that the user for software develops patch.The player uses weapon-shooting in Internet Game, make another player's incarnation death.All these exemplary phenomenons all are incidents, and these incidents are that a large amount of subscribers institute is interested potentially, and can be via Internet communication so that notify the generation of those subscriber's incidents.Thus, incident is self-contained, brief message unit, and they relate on network a certain place and in the possible more interested things that take place sometime.
Other example relates to the broadcasting of having arranged the time, and it has the characteristic that is different from the application that only relates to asynchronous event, and in described asynchronous event, the time of incident is unpredictable and is at random.At first, described incident is arranged at known time and takes place.The second, one incident needs not be brief message unit.On the contrary, it can the amount of being unusual googol certificate.This googol is directed to the network portion that the subscriber finds interest according to load requires sizable server process.
Usually, server or publisher carry out the route decision to network, so that order will send the network of the content of distribution thereon in distribution-subscription model.The storage of described publisher is to the reservation of the content of its distribution.When receiving or generating new content, publisher compares described content and each reservation so that discern arbitrary coupling.If described content (incident) satisfies arbitrary reservation, publisher will be pushed to corresponding subscriber to described content via network so.Distribution-the subscription model of this routine has increased huge burden to publisher, and this point becomes at more devices can network and particularly outstanding when subscribing the number increase.The method of compensation may be horrible---the subscriber estimates the reservation that it has to the incident of all distribution.
Along with the bigger covering of the application of the countless quantity of crossing over the Internet, adopt the possibility of event notice to become ceaselessly.Yet those possibilities require more high-efficiency method to make route decision and the incident that determines when to satisfy and subscribe, alleviate the burden of publisher thus.Therefore, general, lasting event notice service can be used and other application and realization provide huge value-rising for the Internet.
Summary of the invention
Provide a kind of being used for to propagate the method and apparatus that filters at the publish-subscribe network.Reception relates to a plurality of filtrations of content subscription in the network.Reduce the number that filters based on certain criteria, and propagate the filtration of decreased number so that satisfy described reservation.
A kind of mutual method and apparatus of inquiry-response that is used for realizing on the publish-subscribe network is provided.Reception relates to the advertisement of data set and represents the inquiry of logical expression.Described advertisement is mapped to corresponding reservation.Described query mappings is notified to corresponding.Subscribe and notify and be used in network, realize advertisement and inquiry.
A kind of persistent method and equipment that is used to provide the message that sends via network is provided.Receive message via described network.Store described message so that retrieval after a while.The fault that response relates to network provide lasting and reliably message send.
(1). the invention provides a kind of execution distribution-reservation method of operating on insecure network that is used for, comprising:
Use the reservation of network reception to content; And
Use network to come issued content, comprising based on reservation to content:
Node place in network receives the notice about described content;
Determine whether and to be forwarded to adjacent node to described notice; And
Determine that based on described the service-strong host-host protocol is forwarded to adjacent node to described notice selectively; The wherein said step of transmitting selectively is included in to transmit in the described notification procedure and receives indicating fault, and transmits described notice again in response to described indication.
Preferably, described forwarding step comprises that forwarding is packaged with the grouping of described notice.
Preferably, described forwarding step comprises and uses Internet protocol to transmit described notice.
Preferably, described forwarding step comprises that be that described notice is transmitted on the basis with individual node to individual node.
Preferably, described determining step comprises whether definite described content satisfies the one or more standards to the reservation of content.
Preferably, described forwarding step comprises that the use router is forwarded to adjacent node to described notice.
Preferably, it is that described distribution steps is repeated on the basis that described method also is included in the network with the node-to-node, up to described notice is forwarded to the corresponding one or more subscribers of described reservation till.
Preferably, the described step of transmitting is selectively used transmission control protocol.
(2). the invention provides a kind of router that is used on insecure network, carrying out distribution-reservation operation, comprise the module that is used to carry out the above method.
(3). the invention provides a kind of wide area network that is used to carry out distribution-reservation operation, comprising:
One or more subscriber's machines; And
A plurality of routers, each of wherein said a plurality of routers all comprises:
Subscribe receiver module, wherein said reservation receiver module via described wide area network receive corresponding with one or more subscriber's machines, to the reservation of content; And
The distribution module, wherein said distribution module comprises:
The notice receiver module, the node place of wherein said notice receiver module in network receives the notice about content;
Content-based routing module, wherein said content-based routing module determine whether and will be forwarded to adjacent node to described notice; And
Reliable forwarding module, wherein said reliable forwarding module based on describedly determine, the service-strong host-host protocol is forwarded to adjacent node to described notice selectively;
Wherein said a plurality of router is transmitted described notice selectively and reliably, till described notice being forwarded to and subscribing corresponding one or more subscriber's machine, if and fault is transmitted in existence between the first router and the second router, the first router just receives the indication of described forwarding fault so, and again described notice is forwarded to Section Point in response to described indication.
(4). the invention provides a kind of execution distribution-reservation method of operating on insecure network that is used for, comprising:
Via the reservation of the first node place reception of network in network to content;
First node place in network receives the notice about content;
Use described reservation to content according to content-based route, determine whether and to be forwarded to second adjacent node to described notice;
Based on describedly determine, the service-strong host-host protocol is forwarded to second adjacent node to described notice selectively;
Transmit fault if between first node and Section Point, exist, so just receive the indication of described forwarding fault, and
Again described notice is forwarded to Section Point in response to described indication.
Preferably, described method also be included in transmit before the step selectively, the step of the described notice of buffering in impact damper.
Preferably, described method also comprises the step that moves to second-level storage after after a while, the notice that is cushioned.
Preferably, described method also comprises the step of the notice that is cushioned based on first in first out, deletion.
Preferably, described method also comprises the step of the notice that is cushioned based on service quality, deletion.
Preferably, described method also is included in the first node place described notice is cached at step in the Cache.
Preferably, the described step of transmitting is reliably used transmission control protocol.
(5). the invention provides a kind of router that is used on insecure network, carrying out distribution-reservation operation, comprise being used to carry out the module of method as mentioned above.
(6). the invention provides a kind of wide area network that is used to carry out distribution-reservation operation, comprising:
One or more subscriber's machines; And
A plurality of routers, each of wherein said a plurality of routers all comprises:
Subscribe receiver module, wherein said reservation receiver module first node place in wide area network use described wide area network receive corresponding with one or more described subscriber's machines, to the reservation of content;
Notice receiver module, wherein said notice receiver module receive the notice about content at the first node place;
Content-based routing module, wherein said content-based routing module determine whether and will be forwarded to Section Point in the wide area network to described notice; And
Reliable forwarding module, wherein said reliable forwarding module based on describedly determine, the service-strong host-host protocol is forwarded to Section Point to described notice selectively;
Wherein said a plurality of router is transmitted described notice selectively and reliably, up to described notice is forwarded to the reservation of content till corresponding one or more subscriber's machines, if and fault is transmitted in existence between the first router and the second router, the first router just receives the indication of described forwarding fault so, and again described notice is forwarded to Section Point in response to described indication.
Preferably, described reliable forwarding module uses transmission control protocol.
(7). the invention provides a kind of execution distribution-reservation method of operating on insecure network that is used for, comprising:
The service-strong host-host protocol is set up reliable tunnel between two adjacent nodes;
Via the reservation of the first adjacent node place reception of network in network to content;
The described first adjacent node place in network receives the notice about content;
Use described reservation to content according to content-based route, determine whether and to be forwarded to second adjacent node in the network to described notice;
Determine, use described reliable tunnel selectively described notice to be forwarded to second adjacent node in the network based on described;
Transmit fault if between first node and Section Point, exist, so just receive the indication of described forwarding fault, and
Again described notice is forwarded to Section Point in response to described indication.
(8). the invention provides a kind of router that is used on insecure network, carrying out distribution-reservation operation, comprise being used to carry out the module of method as mentioned above.
(9). the invention provides a kind of execution distribution-reservation network operating that is used for, comprise a plurality of aforesaid routers.
Description of drawings
A part of accompanying drawing being incorporated and constituted into this instructions, and come together to explain advantage of the present invention and principle together with described description.
Fig. 1 is the figure that illustrates intelligent route in network core.
Fig. 2 is the network chart that illustrates the intelligent router that is used for publisher and subscriber.
Fig. 3 is the figure that illustrates the network infrastructure that is used for intelligent router and P.
Fig. 4 is the figure of the hardware component of intelligent router.
Fig. 5 is the figure of publisher and subscriber's machine.
Fig. 6 is the figure of the channel manager of intelligent router.
Fig. 7 is the figure that is used to connect the component software of described machine and intelligent router in subscriber set.
Fig. 8 is the figure of the component software of intelligent router.
Fig. 9 is the figure of the packet configuration of message.
Figure 10 is the process flow diagram of publisher's method.
Figure 11 is the process flow diagram of subscriber's method.
Figure 12 is the figure of passage and subscriber's screen.
Figure 13 is based on the process flow diagram of the method for routing of content.
Figure 14 is the process flow diagram of cache method.
Figure 15 is the figure that illustrates cache index.
Figure 16 is the process flow diagram of the Proxy Method of the message that is used to away.
Figure 17 is the process flow diagram of the Proxy Method of the message that is used to come in.
Figure 18 is the figure that illustrates the example of message coding.
Figure 19 is the figure that is used to store the database structure of reservation.
Figure 20 is the process flow diagram of wildcard method.
Figure 21 is the process flow diagram that is used in the method for publish-subscribe network reliable transmission notice.
Figure 22 A is the process flow diagram that filters transmission method.
Figure 22 B is the process flow diagram that filters the minimizing method.
Figure 22 C is another process flow diagram that filters transmission method.
Figure 22 D is the figure of publish-subscribe network topology.
Figure 23 A-23B is to use the process flow diagram of precalculated content-based method for routing.
Figure 24 A is to use the process flow diagram of the inquiry-response method of distribution-reservation.
Figure 24 B is the precedence diagram that further illustrates the method for Figure 24 A.
Figure 24 C is to use the process flow diagram of another inquiry-response method of distribution-reservation.
Figure 24 D is the precedence diagram that further illustrates the method for Figure 24 C.
Figure 24 E is to use the process flow diagram of another inquiry-response method of distribution-reservation.
Figure 24 F is the precedence diagram that further illustrates the method for Figure 24 E.
Figure 24 G and 24H are to use the process flow diagram of another inquiry-response method of distribution-reservation.
Figure 24 I is the precedence diagram that further illustrates the method for Figure 24 G and 24H.
Figure 25 A is the block diagram that illustrates the parts of persistence publish-subscribe network.
Figure 25 B is the figure that illustrates the embodiment of cache manger routine.
Figure 25 C is the process flow diagram of persistent cache method.
Figure 25 D is the process flow diagram of permanent message search method.
Embodiment
General introduction
Event notice systems a kind of the Internet-scale or other distributed network-scales provide the realization high-power and networking of distribution-reservation flexibly for application.In this system, application program uses event notification applications routine interface (API) to come release note and/or reservation and the reception notice about network internal generation incident.
Notice in system gives a theme, and described theme is character string or other structures, and it is classified to the type of notifying packaged information.In addition, utilize the one group of attribute that comprises the information that is exclusively used in described notice to finish notice.For example, application may use theme quotes.nyse and attribute symbol (symbol) and price (price) to issue notice about the transaction of New York Stock Exchange.Described application examples such as utilization equal SNE (the stock ticker symbol of Sony company) and equal the single notice that 85.25 price distribution has particular attribute-value.Say on the meaning that dependency can both be found in for all notices of the theme of same train, the great majority of the attribute in a notice, otherwise be exactly in a notice attribute all by pre-defined.Yet publisher can be according to prenoticing or other modes are added attribute arbitrarily, so that additional event-specific information is provided.Therefore, not every and even any attribute all needs by pre-defined.
In this system, the subscriber is not limited to and only subscribes theme or whole passage.Hereinafter will further explain and define channel.They can comprise one or more other hierarchies of level of regulation subject field for example and correlator field (sub-topics).Thus, the subscriber can provide the good much more expression formula that can finely tune of interest by the content-based filtration of regulation on notification properties.For example, the subscriber may subscribe and have symbol and equal SNE and price all notices (the general sale opportunity that shows the stock that the subscriber has) greater than 90.00 theme quotes.nyse.All notices that are complementary with described reservation can be delivered to the subscriber via call back function or other types function, and the function of described other types is that the subscriber provides in its reservation of registration or at other times.A reservation can be decomposed into a plurality of filtrations.
Described call back function can be carried out multiple calculating, comprise resembling message is write terminal or send Email simple thing so, such as starting the more complicated thing of selling stock, and the complicated all the more thing that starts new distribution-subscription activation (for example, replace existing reservation with new reservation for the purchase opportunity of 75.00 prices, perhaps the new notice of subscriber's securities has been revised in distribution).
For example be applied in they distribution and subscription activation in by agency (angent) helped.Described agency may use proxy machine (proxy), perhaps utilizes proxy machine to realize.When use was acted on behalf of, described agency provided network connectivty, so that give notice and subscribe, and the match notifications of sending into to the subscriber.In case notice enters described network, the grid of router is subscribed all subscribers of mating with described notice to it and is propagated described notice.A mode that realizes this operation allows application proxy judge whether described notice is relevant with their subscriber often to the described notice of broadcasting a little of network then.Yet this may not be that scalable approach-network is often toppled soon because of the load of message communicating amount, and is particularly outstanding when having mass efficient and tediously long publisher.And do not have problems when even if enough bandwidth are arranged, the subscriber also can be toppled because of handling so much notice.
The example networks of system is more effective according to the mode of its route notice.At first, it can use the multicast route to guarantee that notice is for example propagated once at most via any link in the network.The second, it can adopt a large amount of senior optimization to reduce the propagation of notice as much as possible to filtering.
Fig. 1 is the conceptive figure that illustrates this intelligent route in network core.Publisher 14 adopts message that content is sent to network core 10 via edge router 16, and it is used in the publish-subscribe network.The publish-subscribe network comprises the network that is used for data or content are routed to from publisher subscriber's any kind.Described content is sent via one or more passages 18, and described passage represents that the logic between router or other devices connects.Intelligent router 12 in the network core 10 determines that route still is a forwarding message.Specifically, intelligent router 12 can determine whether described message comprises the content that subscriber 24 subscribes.
Each is subscribed, and the encapsulation theme filters and attribute filters.Router may filter theme and expand to the set of coupling theme, and themes as the basis with each and merge attribute and filter.Intelligent router is assessed theme with respect to the theme of notice and is filtered, and filters with respect to the property value evaluation attribute in the notice.The grammer that theme filters may use asterisk wildcard, and the grammer that attribute filters can use Boolean expression, hereinafter will further explain them both.Use term " filtration " to describe one group of incident, described incident is subscriber's incident that receives from publisher interested.To generate routing rule according to described filtration, and use described routing rule to make the route decision by intelligent router.
Therefore, if for example whole filtration group does not satisfy message 26, intelligent router 12 is lost (abandoning) message 26 so, this means and does not transmit described message.For example, if any filtration of whole group is satisfied with message 20 according to the assessment that theme and attribute filter, so according to all routes and/or for filter the action rules of defined for coupling, intelligent router 12 via edge router 22 and other possible devices to subscriber's 24 routes (forwarding) message 20, other functions of perhaps utilizing message 20 to carry out in the router ones 2.Described search will continue, up to whole group that filters exhausted or obtained any one of the decision of strictly all rules at first arrived till.
The content-based route of this class intelligence in network core provides the real time data of for example alarm and renewal to send.Be used for the example that the real time data of alarm sends comprise, but be not limited to following content: stock market, traffic, news, tourism, weather, fraud detection, safety, teleinformation, factory automation, supply chain management and network management.The example that the real time data that is used to upgrade is sent comprises, but be not limited to following content: software upgrading, anti-virus renewal, film and music is sent, workflow, storage administration and cache coherence.Multiple other are used the information of sending reservation that also can be used in.
Table 1 is for example clear to utilize theme and predicate (predicate) to store reservation for filtration.According to expectation or demand, can they be stored in the network Anywhere according to the data structure of any kind.As explained later, described predicate is the component of subscribing.Described reservation can be represented in any way, and its example is provided below.
Figure C0381218000161
Table 2 provides the distribution of opening quotation server and the example of reservation.This example only provides for illustrating, and described reservation can comprise data or any number of content and the parameter of type that is used for any kind.
Figure C0381218000162
Described predicate provides Boolean expression for reservation, and themes as described reservation passage indication is provided.Reservation can be represented with different ways.Using Boolean expression is one of this example, and for content-based route provides described reservation easily is converted to the ability that theme filters and attribute filters.As selection, reservation not referenced subject matter is represented; But, use theme or passage (following further explanation) to be provided for explaining and attribute being used the environment of filtration.
The decision of described route can realize in network core, and spreads all over described net distribution, alleviates the processing burden to publisher and subscriber's machine thus, and strengthened network efficiency significantly.Fig. 1 for example understands a publisher, a subscriber and an intelligent router, and this only is to illustrate for example; Its realization can comprise many publishers, subscriber and intelligent router.The term intelligent router refers to has router or other entities of making the ability of route decision by the service load of grouping or message in inspection network core or other positions.
Network infrastructure
Fig. 2 is the network chart that illustrates publisher and subscriber's intelligent router.The route entity 30 that passage service is provided for example on network infrastructure by layering effectively, as hereinafter will explaining, so as between intelligent router route messages.Publisher uses 34 32 conceptive for example comprising, is used to receive the indication of issued content, such as the pointer that is used to retrieve described content; And act on behalf of 36, be used to encode and carry out the content of Network Transmission via passage service 30.The set of Hu Lian intelligent router 38,40,42,44,46 and 48 is used according to theme filtration and the attribute of subscribing filtered the routing rule that generates, the content that route comes from publisher in logic.A plurality of links 39,41,43 and 45 provide intelligent router 38,40, and the logic between 42,44,46 and 48 connects. Other links 37 and 47 provide between publisher 32 and the intelligent router 38 respectively, the logic between subscriber 54 and the intelligent router 46 connects.Subscriber 54 comprises agency 50, is used for detecting and the content of accepting reservation, and comprises application 52, is used to show content.
Passage for example can comprise the relative set of the logical multicast connection that realizes according to distributed mode.Passage in this exemplary embodiment is the logic relative set that is used to serve the Internet resources of the publisher of exchanging contents and subscriber group.Described content is classified according to passage subject word space, and described resource is managed, controlled and supply by the passage service that channel manager provides.A plurality of passages can be shared same resource.Passage can provide highly scalable directory service, such as but be not limited to following example: publisher and subscriber information, authentication and authorization information, type of message, management information and account and charge information.Passage for example can also provide persistence by high-speed cache, fast data delivery mechanism, safety and user and network management.Passage also can be used for any other purpose.
Can occur in the network core by the filtration that intelligent router carried out, so that the decision of distribution route.In addition, intelligent router can also play edge router, and described edge router is with user's set, be connected with network core such as publisher or subscriber.In addition, the same apparatus that links to each other with network can play publisher and subscriber, and publisher is used at network content being pushed to the subscriber via the route decision, and the subscriber is used to receive the content that is pushed.Described intelligent router and passage can be according to demand or the requirement of specific implementation, are adopted any configuration to be connected, and the configuration shown in Fig. 2 only illustrates for example and provides.
Fig. 3 is the figure that is used for the intelligent router and the example networks foundation structure of the P of routine, understands for example that in addition the logic of passage connects.In this example, existing P in the network of described intelligent router use such as the Internet or other distributed networks, and described intelligent router is thus effectively at the P higher slice.In this example, Internet service provider (ISP) network 58,59 and 60 includes a plurality of P, is used for the conventional route of message or grouping.A plurality of intelligent router 61-70 and ISP network 58,59 are connected with one or more P in 60.Also by a plurality of link 73-85 interconnection, described a plurality of link 73-85 represent the example of link to intelligent router 61-70, and also can link to each other with final user's device by described link.Intelligent router 61-70 can be controlled by one or more administrator machine, and such as entity 71, and one or more VPN (virtual private network) (VPN) controller is such as entity 72.ISP network 58,59 links to each other with subscriber's machine (not shown among Fig. 3) with publisher toward contact with 60.Among ISP 58,59 and 60 and between P in existing network infrastructure, interconnect according to the mode of routine.
As shown in the figure, described intelligent router 61-70 and link 73-85 can use existing network infrastructure to realize, and they are provided at route content-based in the network core.Link 73-85 represents that the logic between the intelligent router 61-70 connects, and for example can use existing network infrastructure or other devices to realize.For example, can use the logic that is called tunnel (tunnel) to connect realizes.The tunnel comprises hardware, and may comprise software, is used to realize the network infrastructure that links, and the part that the tunnel can be a plurality of passages.Described passage is easy to carry out content-based route in intelligent router by logic configuration is provided for the specific type content, and provides environment for the attribute that sends via passage thus.Although intelligent router can not have under the situation of passage the decision of the route of execution, the efficient of the content-based route that intelligent router carries out in the described passage enhancing network core.
This exemplary embodiment comprises uses passage and link.Though link is two connections between the router---be intelligent router.Passage is the network entity that comprises set of routers (bigger usually), and its link by interconnection comes statically or dynamically dispose so that realize the logic of one-to-many or multi-to-multi to connect.Specifically, passage is a top logic entity of describing the passage essential characteristic.Under a passage, can there be many themes.Each theme will form sub-network (such as multicast tree), and described sub-network relates to the set of interconnection router.These sub-networks based on theme can be distributed in different ways, directed and configuration.For example, be its grid that down passage of the set of the all-ones subnet network that forms of theme may similar network.
Fig. 4 is the figure of the example hardware parts of intelligent router 92, and it is corresponding to any other intelligent router of mentioning.Network node 90 can comprise the intelligent router 92 that is connected with conventional P 95.Intelligent router 92 comprises the processor 93 that links to each other with second-level storage 97 with (for example may utilize detachable Realization by Machine) storer 94, one of people among both can store data, and can cached data, and the application carried out of storage of processor 93.Second-level storage 97 provides the non-volatile memories of data.Under software control as described below, processor 93 provides instruction to P 95, so that described P 95 is based on routing rule route (forwarding) or not route (abandoning) message or grouping according to the theme to reservation filters and the attribute filtration generates.Although adopt the implementation of the device of separate processor control to illustrate, but as selecting, intelligent router 92 can adopt the special IC (ASIC) in the P 95 to realize, so that adopt the hardware that may have embedded software that intelligent routing function is provided.As selection, described intelligent routing function can also adopt software and the incompatible realization of hardware group in one or more route device.
Fig. 5 is the exemplary publisher and the figure of subscriber's machine.Publisher's machine 100 or 118 can comprise with lower member: storer 102, store application 104 of one or more publishers and agent application 105; Secondary memory means 112 provides the non-volatile memories of data; Input media 108 is used for input information or order; Processor 114 is used for carrying out application that is stored in storer 102 or the application that receives from other memory devices; Output unit 110 is used for output information; And display device 116, be used to provide the visual display of information.
Subscriber's machine 122 or 140 can comprise with lower member: storer 124, store one or more application 126 and agent application 128; Secondary memory means 130 provides the non-volatile memories of data; Input media 132 is used for input information or order; Processor 134 is used for carrying out application that is stored in storer 124 or the application that receives from other memory devices; Output unit 136 is used for output information; And display device 116, be used to provide the visual display of information.As selection, publisher and subscriber's machine can adopt any configuration to comprise more or less parts, perhaps different parts.
Publisher's machine 100 and 118 is connected with subscriber's machine 122 and 140 via network 120, and described network is such as aforesaid network.Network 120 comprises intelligent router, is used for being provided at the data of network core or the distributed route of content via grouping or message.Although only show two publishers and subscriber's machine, network 120 can expand to and comprise more multiple passerby and subscriber's machine.Described publisher and subscriber's machine can utilize any processor control device to realize, such as but be not limited to following example: server, personal computer; Notebook; Personal digital assistant; Phone; Cell phone; Beeper; Perhaps other devices.The network 120 that has an intelligent router can comprise wired arbitrarily or wireless distributed network, wired connection device, wireless device or both.Network 120 also may use existing or conventional network infrastructure.
Fig. 6 is the figure that for example understands the channel manager 150 of intelligent router.In this example, channel manager 150 utilizes a plurality of servers 152,154 and 156 to realize.Each server includes the local storage 158,160 and 162 of himself.Intelligent router 164,166 and 168 is got in touch with regard to the information of relevant special modality with channel manager.Described channel manager can also provide lasting data, failover functionality or other functions.Described channel manager provides the passage service thus, and it is included in user profile and foundation structure database of information or the data base set of information Anywhere, that be used to stipulate to relate to passage, lasting data attribute, publisher and subscriber in the network.Described foundation structure information for example can comprise the sign of intelligent router and the corresponding tunnel that is connected them, the theme of passage and the attribute (title of each attribute and type) of passage.Grouping or message can also be carried the information that relates to passage, comprise the sign of fixed attribute and variable attribute.
Can download channel information when the user is online.For example, the user can register by using user name and password.When authentication user's login, the user can open (enabling) passage, and from the information of channel manager retrieval about described passage.Publisher can use this information in the issued content, and the subscriber can use this information to import and register and reserve.
In this example, each channel manager 152,154 and 156 is served as the main channel manager for each intelligent router.Specifically, in this example, each intelligent router is provided with two Internet protocols (IP) address, and one is used for the main channel manager and another is used for the backup path manager.Described intelligent router uses those IP addresses to come contact channel manager and retrieval channel information.If described main channel manager fault, intelligent router can be got in touch the backup path manager so.Described channel manager 152,154 and 156 is shared thus and is related to the data of channel attributes and the data of other information, as it is represented to connect their line.Each channel manager also has the backup of appointment, if so that this channel manager fault, another can be taken over it and handles so.Device in the network for example can utility command be retrieved channel information, and its example is provided in the table 3.As selection, intelligent router can only have a main channel manager or plural channel manager.
Fig. 7 is at subscriber set or is used for figure with the exemplary software components of the storehouse 180 of its device that is connected with the network with intelligent router.Described subscriber set can be used as publisher, subscriber or both, and its exemplary means that can comprise above being identified.Storehouse 180 can comprise that one or more users use 182, its can provide from the user receive reservation, from publisher's receiving cable information, perhaps receive content or data to be issued.The user uses 182 application that can also comprise any other type, is used for being carried out by subscriber set or device.
Storehouse 180 for example can also comprise that agency 184, event base 186, high-speed cache storehouse 188, channel pool 190, message transmit storehouse 192 and scheduler storehouse 194.Agency 184 provides and sets up that network connects or other functions, and table 3 provides the example of the orders that realized by agency 184, and it can use the order of proxy machine order or other types.Event base 186 gets off the incident that relates to subscriber set or other incidents or information as log record.High-speed cache storehouse 188 provides the local cache of data.The sign of channel pool 190 memory channels and about their information.Scheduler storehouse 194 provides and being connected of control path 196, channel manager 198 and one or more intelligent router 200, and it can comprise the exemplary functions of sign in the table 4.Message transmits storehouse 192 and provides and being connected of data path 204.
Table 5-9 provides the message that adopts the c program design language to transmit the example of API.Table 5 and 6 provides the example that is used to send with the API of searching message.Table 7 and 8 provides the example of the API that is used to send and retrieve notice.Table 9 provides the example of the API that is used to send and retrieve control messages.These API and other API, program and data structure as just providing, are used to realize specific function or feature in this explanation, but other software entitys that implementation can comprise the API of any kind or adopt any programming language to work out.
Figure C0381218000211
Figure C0381218000221
Figure C0381218000231
Figure C0381218000232
Figure C0381218000241
Figure C0381218000251
Fig. 8 is the figure of the exemplary software components 210 of intelligent router, such as those and the intelligent router 92 shown in Fig. 4 that identify above.Component software 210 for example can be stored in the storer 94, so that carried out by the processor in the intelligent router 92 93.Assembly 210 for example comprises filtration demons 212, scheduler 214, route demons 216 and cache manger 218.Filter demons 212 and provide filtration, so that handle the content of subscribing, as below will explaining according to routing rule for content-based route.Scheduler 214 provides the communication of control messages, filter desired those message such as propagating via path 220, and the safe socket character that described scheduler can also provide single input point and have channel manager for the user strengthens the security of network thus.In other words, in this example, the user does not contact directly channel manager, but is possible in the implementation that substitutes.Scheduler 214 uses control messages to come to obtain attribute (name-value to) from channel manager.
Route demons 216 provide and the communicating by letter of data path 222, and it can carry out via conventional P or other route devices as shown in Figure 4.Cache manger 218 provides the local cache of the data that are in the network node that comprises corresponding intelligent router.Below further explain the operation of cache manger 218, and it provides the distributed cache of the data that spread all over network core.
Content-based route can realize in the kernel rank, as substituting the application rank.The addressable storer of core is independent of the storer in the application layer.The content-based route of operation for example requires message data is copied to application area from the kernel memory block, and environment of applications is switched to the route environment of applications from interior nuclear environment in application.Both can cause suitable expense.Revise described kernel so that support content-based route if replace, so described route can be carried out faster, reduces aforesaid expense thus.
Use this feature of the content-based route in the kernel, route demons 216 can directly or can directly not send via data path 222 or receive data, and this will depend on implementation.Described demons are such processes, move in application layer, calculate the content-based routing table of waiting to be injected in the kernel in advance.Yet in case inject, described routing table can be made by kernel and be used for making the route decision.Similarly, the filtration demons calculate filter table in advance and are injected in the kernel.In this kernel implementation, route demons and filtration demons are often direct and data path is mutual.
Fig. 9 is the figure of example of packet configuration 230 that possible comprise the message of subscription content.Supply the grouping or the message of the usefulness of content-based route for example to comprise stem part and service load part.Described stem is partly stipulated route or other information.Described service load part specified data or content, the perhaps indication of data or content.Packet configuration 230 comprises IP stem 232, User Datagram Protoco (UDP) (UDP), transmission control protocol (TCP) stem 234, length value 238, one or more subject field 240 and one or more attribute 242.Packet configuration 230 is for example understood the basic structure of length value and theme and attribute.The grouping that is used for content-based route can also comprise other or different units, those shown in the example of Figure 18 of explained later, and the grouping that is used for content-based route can be adopted any way configuration.In addition, described attribute for example can comprise the attribute arbitrarily that is appended to the message end.These arbitrarily attribute be the ad-hoc information of for example adding by publisher's (and even router), its necessary message format reception and registration of using to the passage regulation.
Publisher and subscriber's method
Figure 10 is used so that the process flow diagram of the exemplary publisher method 250 of passage and issued content is set by publisher.Method 250 for example can adopt software module to realize, described software module comprises the agency 106 who is carried out by the processor in publisher's machine 100 114.In method 150, (step 252) created by the publisher that the agency 106 in publisher's machine receives the proxy machine that is used for passage.Described proxy machine provides and the communicating by letter of described network.Agency 106 determines the message format (step 253) of passage by interface, and described format information for example can obtain in other entities from channel manager or network.Agency 106 uses the channel information that is received that the proxy machine (step 254) of passage is set, and it comprises the attribute (step 256) of receiving cable and create notice (step 258) on passage.Described notice provides content for the device of the content on " intercepting " passage.The parameter and the feature of described attribute definition notice.
Agency 106 is in network core or the identifier (ID) of the intelligent router sendaisle in other places and content information, for the usefulness (step 260) of handling reservations.Described publisher utilizes suitable value to fill notification properties (step 261), and publisher therefore can be according to channel attributes issued content (step 262) on notice.In this example, step 260-262 realizes the described notice of distribution, and as selection, it can relate to different or additional step to depend on specific implementation.Therefore, in this example, the information that will be associated with notice is divided into the sequence of the ordering of attribute, and each attribute all has position (originating in 1), type and the value in title, the notice.As selection, depend on specific implementation, attribute can take on a different character.Attribute for example can comprise predefined attribute, attribute or both arbitrarily.
Described intelligent router can use the passage ID of grouping to obtain the attribute of respective channel, and it determines structure or form via the grouping of passage transmission.Specifically, each grouping for example can comprise mark and other header messages that is associated with passage ID, such as ID of publisher and theme.Described mark can be used for theme is mapped to numbering in the message format, and its example has been shown among Figure 18.For example can use the lowerinteger value of sixteen bit value to number.As selection, can use the numbering of any other type or information to shine upon theme.Theme is mapped to numbering special advantage can be provided; For example, it can save the space of message format joint, and indication unified or that standard mode is come the theme in the regulation message is provided, so that they can be positioned and discern soon.Intelligent router can locally be stored described mapping, perhaps as selecting, uses by order and numbers the corresponding theme of long-range acquisition.
Table 10 is for example understood the structure that numbering is mapped to theme, has used round values in this example.Subject tree parameter indicating in the table: theme can comprise one or more subject field according to hierarchical relationship; For example, subject tree can comprise the character string by the subject field of special symbol boundary.The example of subject tree is provided in the table 2.As an example, subject tree quotes.nyse comprises theme " quotes " and son field " nyse ", and two by ". " boundary of being found in URL or other network addresss.Except life cycle and regulation URL type character string, subject tree can use any character and the symbol that is used to demarcate to adopt any-mode to stipulate.
Figure C0381218000281
Thus, know the packet format or the structure of special modality, described intelligent router is theme and the attribute in the positioning packet soon, and perhaps other information are so that carry out in content-based route.For example, passage can be stipulated via the theme of described passage transmission and the byte location of attribute, makes them be convenient to the location by the byte of calculating in the grouping.As selection, intelligent router can analyze grouping so that location theme and attribute, perhaps other information.
Table 11 provides the example that adopts publisher's program of C++ programming language.Table 12 provides the example of the API that is used to create passage.Table 13 provides the channel arrangement file of safeguarding by channel manager (referring to Fig. 6) and the example of the information that relates to passage is provided, as shown in the figure.As selection, described system can have the channel manager of the overall situation, is used to provide the IP address of the server that disperses on the geographic position, and described server plays the local channel manager, so that distribute described processing load.
Figure C0381218000291
Figure C0381218000302
Figure 11 is the process flow diagram for subscriber's method 264 of the usefulness that receives and handle reservation.Method 266 for example can adopt software module to realize, described software module comprises agency 128, is carried out by the processor in subscriber's machine 122 134.In method 264, for example graphic user interface (GUI) is showed the indication (step 266) of effective passage to the user, and this can utilize uses 126 and realize.The information that identifies described passage for example can receive from the channel manager that the information that relates to passage is provided.The application 126 of any kind can adopt any particular form or form to show gap marker.Described application receives the selection (step 268) of user to passage, and calls API or other programs (step 270) for selected passage.Described API shows subscription option (step 272) at the passage corresponding to selected option to the user.Described API receives the value (step 274) of the reservation that comes from the user, and sends described reservation so that handle to agency 128, as (step 276) that below will explain.
The parameter that is used to subscribe for example can comprise predicate as shown in table 1.For example, each passage can use the API of himself, so that handle reservation according to the particular demands or the parameter of respective channel.These API for example can comprise be used to receive reservation based on webpage or based on the API of Java, and can use the user interface of any kind and handle and receive subscription information, and it is delivered to agent application.
Figure 12 conceptively illustrates passage and subscriber's screen is the figure of GUI 278 and 284, and it can be used for associated methods 264 and receives reservation.Screen 278 comprises a plurality of parts (section) 282, is used to identify effective passage and selects for the user.When selecting specific passage, can display screen 284, so that be received in the reservation value of the user in the part 286.The user can select part 288 to submit reservation to or select part 290 to cancel a reservation.Screen 278 and 284 for example can be formatted as the HTML(Hypertext Markup Language) webpage, perhaps has any extended formatting.In addition, described screen can comprise any configuration of part and content, for example may comprise text, figure, picture, various color or multimedia messages, so that indiscriminately ad. as one wishes provide user-friendly and visually attracting reservation interface to the subscriber.Described screen can also comprise toolbar 280, is used for the browser function that for example provides conventional.
Table 14 provides the example that adopts subscriber's program of C++ programming language.
Figure C0381218000321
Content-based route via service load inspection and passage
Figure 13 is the process flow diagram via the content-based route of service load inspection method 300.Method 300 for example can adopt software module to realize, described software module is carried out by the processor in the intelligent router 92 93, as by 212 expressions of filtration demons.As selection, it can adopt the combination of ASIC or hardware and software to realize.Like that, content-based route can be carried out in network intelligent router Anywhere, such as carrying out in network core or in edge router shown in method 300.
According to general sense, content-based route relates to the service load part of checking grouping, so that determine how to handle grouping.This content-based method for routing for example can comprise according to any order (for example use and filter) handles subscription list, with message one by one theme and one by one attributively with routing rule relatively, so that determine the route of message, and carry out the processing in the network core.Described rule can comprise rule of handling in the control router or any rule that is associated with filtration.Therefore these route decisions can spread all over network core and distribute.Message format determined in the theme that use is represented by passage, and the mode of very fast location attribute in intelligent router is provided at message thus is for example by learning that they provide in the message of special modality or the byte location in the grouping.
In method 300, intelligent router 92 receives the grouping (step 302) of message.It is identified for the passage ID (step 304) of corresponding message from grouping, and uses the attribute (step 306) of passage ID retrieval passage.In this example, (determining from passage ID) channel type is determined the position and the data type of attribute the grouping.The attribute of passage can local storage or such as via channel manager telereference.Intelligent router 92 retrievals are filtered, and it is corresponding to subscribing (step 308).Described filtration comprises one or more attribute tests, normally one group of attribute test to subscribing.Attribute during intelligent router 92 will divide into groups is applied to filter the corresponding attribute test (step 310) in the description.
If all properties test of filtering in describing produces positive result (step 312), mean that described attribute satisfies all properties test, intelligent router is carried out the one group of function (step 314) by the rule predetermining that is associated with described filtration so.These functions for example can comprise described next link that is grouped into of route, and/or according to rule predetermining like that, utilize the packet content of local router to carry out some actions or calculating.Described action or next link for example can be identified in the data structure of regulation corresponding subscription.When described rule was link, it identified next network node usually so that receive described grouping, and described next node can comprise device or other entities that intelligent router, P, network connect.As selection, next link can adopt other modes to stipulate or be associated with described reservation.
If all properties test of filtering in describing does not all produce positive result (step 312), mean that described attribute does not satisfy all properties test, states described filtration mismatch (step 315) so.Described intelligent router is recursively followed said process, and till all properties test in filter describing is exhausted or run into first negative test, and no matter which occurs earlier.
In case for this reason filtration treatment all properties test, intelligent router just determines whether to exist more filtrations (step 316), if so, it turns back to step 308 and tests to handle its attribute so that filter searching attribute for next.Continue matching process (step 308,310,312,314,315 and 316), till exhausting whole filtration group or can determining the result of everything or routing rule, and no matter which occurs earlier.If any filtration is not satisfied in described grouping, so it is omitted (abandoning) and do not transmit.
Intelligent router 92 can adopt any particular order by filtering sequencing.For example, as shown in table 15, intelligent router can be stored in the filtration of subscribing in file or the routing table, and by they linearly sequencing so that attribute is applied to filter (attribute test).As selection, described routing table can be included in the link or the pointer of filtration.
According to the inspiration of using and performance strengthens, such as the switching of the algorithm based on traffic condition, content-based route can optionally be used more than one method simultaneously.The filtration that is used to handle can optionally be encoded at the router place of network, decoding, conversion and merging, for the usefulness of carrying out the service load part of checking content-based route.For example, may be blocked such as the reservation of price>$3.54122 and to be price>$3.54, be known because the distribution in using does not comprise the currency attribute that exceeds second radix point.In addition, when the issued content arrival from overseas transmission for example is positioned at the first router of the U.S., foreign currency can be converted to American currency.
As substituting of linear method, intelligent router 92 can be selected to filter so that adopt other orders or according to various algorithm process, speed and efficient that described algorithm may enhancement process.Table 16 provides the example of reservation and their respective link; In these examples, relating to the theme of special modality and the reservation of theme can represent by the routing rule that filters.Described theme for example can comprise the network address, such as the uniform resource locator that is used to identify content source (URL).
Figure C0381218000362
Figure 14 is the process flow diagram of cache method 320.Method 320 for example can adopt software module to realize, described software module is carried out by the processor in the intelligent router 92 93, as being represented by cache manger 218.As selection, it can adopt the combination of ASIC or hardware and software to realize, adopts the physical equipment identical or different with corresponding intelligent router to realize.In method 320, intelligent router 92 receives has the message (step 322) of data or content, passage ID and theme.Intelligent router 92 adds time mark (step 324) for described data, and with its local cache in storer 94 or second-level storage 97 (step 326).It for example comes the data (step 328) of indexes cached according to passage ID, theme and timestamp.
If intelligent router 92 receives request of data (step 330), it uses the data (step 332) of indexed search high-speed cache according to described request so.Intelligent router 92 is transferred to P 95 with the data of high-speed cache, and perhaps other route entities are so that finally send to requestor or other people.Method 320 can repeatedly be carried out, so as response request constantly cached data and the retrieval cached data.
Figure 15 is the figure that for example understands the cache index (336) that supplier's method is used.Cache index (336) receives data (338) and itself and timestamp is stored together (340).When collecting data, when the time of each Δ t, just label, wherein the time between the Δ t expressive notation, for example t to data 2-t 1As selection, can use other types index according to the time mark of any way.
The conceptive data directory of for example understanding high-speed cache of table 17.Table 18 is conceptive for example to be understood to be used to store and connects history so that the data structure of high-speed cache.Table 19 provides and has been used for the example of data structure of data that local cache has the network node of intelligent router.
Adding the time mark can be according to any fixing or generation at interval that can become.For example, can per five minutes high-speed cache and index data.When receiving order with the data (such as #_.getCache) of retrieval high-speed cache, wherein said data are used for stipulated time and theme, and channel manager 218 uses cache index to determine whether it can retrieve the cached data of asking corresponding to step 332 so.
Each theme or passage for example can comprise its self IP address and one group of intelligent router in multicast tree.Therefore, the connection history between this router that can be stored locally on subscriber set of table 18 expression; History is determined when edge router recovers online, how to be reconnected upstream router for described passage if edge router fault, so described machine can be visited connection.For example it can also carry out the caching directives that obtains the duration that disconnects it, so that obtain all unsettled contents of reservation.
Figure C0381218000382
Figure C0381218000383
Figure C0381218000391
These example data structure comprise following information.The theme node comprises subject identifier, theme rank, points to the pointer of parental generation passage or theme node, the filec descriptor of himself catalogue, point to the pointer of the hash table that comprises its next rank theme node and the pointer that points to back end.Back end comprises the pointer that points to its theme parent node, the stem and the afterbody of the filec descriptor of data directory, the circular buffer that comprises the data structure that is stored in the data on each memory storage, impact damper, is used at the retrieval and the lock of memory period locking data node.The time granularity node of storage is the node of expression actual data files, and but last time granularity node is represented also not store into memory storage but is maintained in last impact damper in the storer.The mutex of the incident granularity node that high-speed cache in this example and the use of data storage thread are last prevents the concurrent visit to final time granularity node.
Agent processes
Figure 16 is the process flow diagram of the Proxy Method 350 of the subscribe messages that is used to away.Method 350 for example can adopt as the software module by agency's 128 expressions and be realized that described software module is carried out by the processor 134 in user (subscriber) machine 122.In method 350, agency 128 is such as receiving reservation (step 352) by method described in Figure 11 and 12.Agency 128 creates the character string (step 354) of the Boolean expression of the described reservation of regulation, and analyzes described character string so that detect any mistake (step 356) in the described reservation.If there is mistake, acts on behalf of 128 so and can show error message (step 360), so that the user can correct a mistake and import described reservation again to the user.If described reservation does not comprise mistake (step 358), act on behalf of 128 so and in data structure, store described expression formula, its example (step 362) is provided below.Agency 128 is converted to canonical form (form) (step 364) with the expression formula that do not wait as ingredient in the data structure, and described data structure is converted to corresponding disjunctive normal form (DNF) structure (step 366).Agency 128 also simplifies the AND expression formula of DNF structure, and scope is filtered and membership qualification test (step 368) so that only comprise.
Described DNF is well-known canonical form, wherein Boolean expression is expressed as the OR of the one or more subexpressions that are called disjunct, and each subexpression is the AND of one or more attribute tests.For example, described Boolean expression (price>=10 AND (Symbol==" LU " ORSymbol==" T ")) has equivalent DNF and represents ((price>=10 AND Symbol==" LU ") OR (price>=10 AND Symbol==" T ")).
Relate in the conversion of step 364 and (to be expressed as according to example syntax with having " not waiting " operational symbol!=) expression formula be transformed to equivalence " canonical " form, it is used to stipulate not allowable value of all allowable values rather than.This conversion was carried out before creating DNF, and because the router in this example needs the formula of canonical form, so need it.=80) can be converted to equivalent regular expression (price<=79 OR price>==81).
After DNF is being created in the conversion of step 368, carry out, and comprise the consequent AND expression formula of extra simplification, and carry out it so that be reduced at the work of router in this example.Specifically, the AND to a plurality of attribute tests of same alike result can be reduced to canonical " scope filtration ", it has a lower bound, upper bound, has the lower bound and the upper bound, perhaps is single value under equivalent test case.Filter according to the scope of table 22 coding particular category then.
For example, expression formula (price>=10 AND price<=80 AND price>=20ANDprice<=100) can be reduced to expression formula (price>=20 AND price<=80), and this is the example with the scope filtration in the lower bound and the upper bound.Below be the example of oversimplifying other classifications afterwards: (price>=20) (having only lower bound); (price<=80) (having only the upper bound); And (price==50) (monodrome).Creating during these scopes filter, some subexpressions may be simplified to genuine or false, under these circumstances, can leave out certain subexpression according to the rule of Boolean algebra, thus the coding of the expression formula in the optimization message further.For example, expression formula (price>=50 AND price<=20) is reduced to false, can not satisfy described expression formula because have corresponding to the price of " price ".Be reduced to vacation in particular cases in whole filtration expression formula, described agency need not create message at all, has alleviated the unnecessary work of router thus.
Comprise asterisk wildcard if theme filters, act on behalf of 128 so and can optionally change them, as (step 370) that below will explain.Otherwise, can in network, change any asterisk wildcard, rather than on subscriber set or other devices.In this exemplary embodiment, it is the grammer that only uses asterisk wildcard that theme filters grammer, and the grammer that attribute filters is the grammer that only uses Boolean expression.As selection, to filter and the attribute filtration for theme, implementation can be with grammer different or change type.
Agency 128 is encoded to message (step 372) with consequent DNF expression formula, and with described transfer of messages to intelligent router (step 374).Described coding can relate to described reservation is converted to flat (flat) message format, means its composition data character string.This passes on and can comprise and will propagate into other route entities in one or more intelligent routers or the network according to the theme filtration of described reservation and the routing rule of attribute filtration generation.For described propagation, for example can be mapped to conventional packet configuration with subscribing expression formula.
The coding of step 372 comprises the reservation layout (marshall) of passage is transmitted the message transformat of API for message, so that spread all over channels spread.Inside story is carried out in reservation transmitted, for example propagate as notice with theme #.SUBSCRIPTION.Because have quantity variable theme filtered fields and attribute test, thus in this example, use the number of a pair of bytes store theme filtered fields, and use another number to the bytes store attribute test.The respective fields layout sequentially that theme is filtered, the order of in original subscriptions, stipulating according to them for example, and all be programmed in the part of two bytes of message.The asterisk wildcard field can be as described below carry out layout.
In the process of the described attribute test of layout, come the operand of layout test in the mode of the property value that is similar to layout notice at message end.Before described attribute test of layout and operand, they are sorted according to the attribute order in each disjunct of DNF, and subscription properties is tested according to location order, according to Name Order attribute is arbitrarily tested subsequently.In addition, relation test collection to the scalar value attribute in each disjunct is reduced to canonical form, filters such as having a boundary (for scope or equivalence test are opened in a left side or the right side) or the scope of two boundaries (for the closed scope between the distinct boundary).It is right for example to be encoded as two bytes by the order identical with operand about the remaining information of testing; The sequence that two these right sequences of byte are closelyed follow two byte codes of theme filtered fields places message afterwards.Described two bytes are to a sequence form of the bit string coding that can constitute attribute test, its can also be used to represent except two bytes to other types encode.The example of attribute test hereinafter is provided.
The encoding scheme of attribute test has been described in table 20.Table 21 is for example understood the right coding of two bytes, and table 22 is for example understood the coding according to the right operational symbol ID of two bytes.
Figure C0381218000421
Figure C0381218000422
Figure C0381218000431
Figure C0381218000432
Subscribe justice or attribute arbitrarily because whether two bytes that are used to test are applicable to the type of the operand that shows test already and test, so the number of test is carried out in layout to any attribute or their type independently.This scheme supposition has only 127 predefined attributes in notice.As selection, this design can use more multidigit to come the encoded attributes test.
Though the DNF that this layout convention is filtered according to attribute is to be ranked order and divided group of attribute test, but can select infrastructure components (such as router) to come according to other order assessment test (perhaps according to dynamic derivation about the success of difference test or the local data of failed probability), so that the net assessment that attribute is filtered is more effective.The described reservation id field of message is the value that is generated by the agency, is used for subscribing to the edge router sign of acting on behalf of in request subsequently uniquely, so that revise or cancellation being scheduled to described reservation.Specifically, use the message format shown in the example of Figure 18 to propagate,, and subscribe the ID that ID is the reservation of the previous registration that is modified except theme is #_.RESUBSCRIPTION to on-the-fly modifying that the attribute of subscribing filters.And the message format that for example uses Figure 18 is upstream propagated cancellation by subscribing id field, and theme is #_.UNSUBSCRIPTION and to subscribe ID be the ID of reservation that is cancelled the previous registration of reservation simultaneously.
The example that illustrates by aforesaid agency's conversion and coding below is provided.Consider that following attribute filters the example of expression formula: price>=10and (symbol==" LU " or (volume>=1000 and volume<=10000)).Figure 19 has showed unified modeling language (UML) Figure 39 0, is used to describe the object that the agency uses in step 362, is used to store expression formula.This figure for example understands and is used to stipulate the hierarchical relationship of described reservation, its can comprise variable, steady state value or they both.Object among the figure can be to filter the example of class according to specific implementation.Each SimpleFilter (simple filtration) object factory be used to store and the genus of corresponding filtration expression formula is given birth to the property value of the relevant information of test.In the expression formula of Figure 19, OR filter 23 96 connects two AND filter 23s 92 and 400.AND filter 23 92 comprises the simple filtration 394 with subscription properties.Equally, OR filter 23 96 comprises simple filtration 398, and AND filtration 400 comprises simple filtration 402 and 404.
For this example, attribute price, symbol and quantity are assumed to the predefined attribute of the passage that is associated, and are assumed to and are defined in position 0,1 and 2 respectively.In addition, attribute type is assumed to signless integer (typecode 6), character array (typecode 12) and signless integer (typecode 6) respectively.
Next, will comprise above-mentioned Exemplary attributes filters the reservation of expression formula and is considered as its attribute and filters.It is message that Figure 18 shows described reservation layout.The sketch 386 in Figure 18 left side shows the real messages content, and the sketch 388 on right side provides the legend of the different piece of message.In this example, the width of each sketch is four bytes.Before layout, described filtration has been converted to its equivalent DNF:(price>=10and symbol==" LU ") or (price>=10and volume>=1000 and volume<=10000).
Sixteen bit attribute test coding is shown as bit sequence, and its intermediate gap shows the interval of different piece.Noting, in this example, can't make up two tests of price, because they adopt independently disjunct, and is the scope (" scope is opened on the right side ") that does not have right margin with their layouts thus independently.On the other hand, can make up,, and thus they are programmed into together and test as single " closed scope " because they are in identical disjunct to two tests of quantity.
At last, note also that, the field of determining is described as the feature of " supposition "; This means for this example, can at random select the value of these fields, and be independent of usually by the reservation of layout.In addition, the theme of at random selecting to be used for described reservation filters so that it mates with any theme by related channel definition as ">, ".As mentioned above and the example shown in Figure 18 and 19 illustrate for example just and provide that described layout can be used for the reservation of any other type.In addition, example that 350 of methods provide layout to subscribe, and can according to any other mode come layout they.
Figure 17 is the process flow diagram of the Proxy Method 376 of the message that is used to come in.Method 376 for example can and be used 126 and realize by the agency in the subscriber set 122 128.In method 376, agency 128 receives and comes from intelligent router corresponding to the message (step 378) of subscribing.Agency 128 for example passes through the definite passage (step 380) corresponding to described reservation of passage ID in the message, and calls API (step 382) for described passage.Described API shows subscription data (step 384) according to GUI or extended formatting on subscriber set.The processing of the message of coming in can be used the process of the decoded data opposite with aforesaid cataloged procedure, and this decode procedure (phase-reversal coding) can be carried out in router or in other network entities.
Asterisk wildcard is handled
Figure 20 is the process flow diagram of wildcard method 410.The example of the asterisk wildcard of the expression formula that for example clear one group of routing rule conversion that is used for filtering of the method is used to subscribe.Method 410 for example can adopt the software module as acting on behalf of 128 representatives to be realized that described software module is carried out by the processor in the subscriber set 122 134.As selection, asterisk wildcard can be handled in network by processor 93 in intelligent router 92 or under the software control of the corresponding function that comprises among the ASIC 91.Asterisk wildcard comprises open field or variable length field, and its example is provided in table 21.
In method 410, agency 128 or other entities receive the reservation (step 412) with asterisk wildcard.The theme length that is used to subscribe can be stipulated by publisher when issued content, and theme can anticipate on publisher's machine, for example to the field counting of theme and obtain its field counting (length) thus.Act on behalf of the field number (step 414) in the 128 count filtering operands, and the new regulation of initialization field length=N (filtration) (step 416).The son field (step 418) that agency's 128 retrievals are subscribed, and son field 0[i is counted in definite filter operation] whether be asterisk wildcard (step 420).If it is not asterisk wildcard that son field is counted in described filter operation, acts on behalf of 128 so and add conjunctive clause to rule, field [i]=0[i] (step 422).If described filter operation number has more son fields (step 424), act on behalf of 128 so and turn back to step 418, so that handle additional son field.Parameter " i " is represented this field, and wherein i is a Field Count purpose integer in this example of expression.
Handle after the described son field, agency 128 determines whether son field is counted in last filter operation is ">" (step 426), and if so, it changes into field length>N-1 (step 428) with length constraint.Asterisk wildcard is handled the symbol that can use any kind, and ">" is one of this example.In this example, " a.>" can refer to a.b, a.c, a.d etc., and their all sub-topicses at different levels (for example, a.b.x, a.c.x, a.b.x.y etc.).Other symbols also can be used for other implementations of asterisk wildcard.
In case of necessity, agency 128 other entities in intelligent router or network are propagated the rule (step 430) of conversion.In view of the above,, asterisk wildcard is converted to non-asterisk wildcard rule, means the rule that does not comprise asterisk wildcard so that handle them by the described method of described son field iteration.The conversion of asterisk wildcard can occur in network Anywhere, for example occurs in subscriber's machine or the intelligent router.Can change in an entity of the rule with the conversion that propagates into other entities thus, perhaps this conversion can dynamically take place.
Table 23 provides the summary and the example of these exemplary routing rules that are used to handle asterisk wildcard.These routing rules for example can generate in intelligent router, perhaps generate in other network entities, and propagate into described intelligent router.In addition, the routing rule in the table 23 only provides for illustrating, and other routing rules also can be used to change asterisk wildcard.
Figure C0381218000461
Reliable distribution-reservation system in the unreliable network
The major function of publish-subscribe network-Zhu publish-subscribe network (for example referring to Fig. 1-3) as described here is and will sends the notice of coupling to the subscriber according to mode effectively and timely.The implementation of publish-subscribe network need will be notified from publisher with the form of network packet and send to the subscriber.Unreliable network is inferred some network packet and may be lost in the process of transporting.The major technique difficulty that is overcome by present embodiment is to determine whether described notice (that is network packet) is lost because of error of transmission or because of the strobe utility of upstream router inside.
Figure 21 for example understands the method 520 of the reliability be used for providing the publish-subscribe network.In the method 520, used reliable host-host protocol.Specifically, described reliability by realize neighboring router between (perhaps router-subscriber set between) reliably transmission mechanism (tunnel reliably) realize.If router is determined the notice of coming in and need send to neighbor router that its service-strong host-host protocol-preferably TCP transmits described message so. each router only is responsible for delivery of notifications to its downstream vicinity (jumping figure=1) router.Therefore, realize reliable delivery of notifications from the publisher to subscriber according to the hop-by-hop mode.Method 520 can be carried out by processor 93 in intelligent router 92 or under the software control of the corresponding function that comprises among the ASIC 91.Method 520 for example can also adopt the software module of for example being represented by agency 105 to be realized that described software module is carried out by the processor in the subscriber set 100 114.
Have been found that and use TCP to overcome and the problem that reliable transport protocol is associated with the content-based route of distribution-reservation system described here, and the method is preferred.May be used to issue-another technology of reservation system is forward error correction.Forward error correction sends a plurality of notice packet to the recipient, one of to expect among them and will pass through.Doing has like this increased the probability that receives grouping, and it uses with the increase bandwidth and is cost, but does not guarantee to send.Reliable multicast is the third technology, and it guarantees that one group of multicast recipient receives " identical " set of packets that comes from the multicast sender.Because different recipients must receive different notice collection according to different reservations, so adopt CBR distribution-reservation system well to work.
Node in the publish-subscribe network is via the reservation (step 522) of described network reception to content.Use CBR to issue from the content that publisher receives according to subscribing via network and by following steps, described step is: receive the notice (step 524) that relates to the content of node in the network, determine whether described notice is forwarded to adjacent node (step 526), and based on describedly determine, the service-strong host-host protocol is forwarded to adjacent node (step 528) with described notice selectively.Preferably, carry out these steps according to aforesaid any CBR method.
The reliable transport protocol that is used for step 528 is TCP preferably.TCP is the communication protocol on the transport layer of osi model.TCP provides transfer function, and it guarantees that the total amount of byte that sends correctly is received at the other end.In view of the above, is that forwarding step 528 is carried out on the basis with individual node to individual node, if and had transmission fault, would transmit step 528 so and comprise the indicating fault (step 5281) that is received in the notification transmission, and respond described indication and transmit described notice (step 5282).Preferably, will the request of this indicating fault be encapsulated in the notice packet.
Preferably, transmission notice grouping again just is kept at notice packet in the impact damper if desired.If it is full to be used for the impact damper of specific adjacent node, can stop so sending that this node carries out, described grouping can be dropped based on first in first out, and perhaps described grouping can be stored in the second-level storage.As selection,, can from impact damper, abandon described grouping (for example, those groupings of not managing of QoS will at first be dropped) selectively based on QoS so if assure certain service quality (QoS) to certain publisher or subscriber.
As shown in figure 21, if need further route, repeat described method (step 530) for next adjacent node so at adjacent node.This has illustrated that for example method 520 realizes reliable delivery of notifications from the publisher to subscriber according to skip mode step by step.
Filter and propagate
Content-based route (CBR) is a kind of route of constraint-driving of form.In the publish-subscribe network of enhancing,, preferably, the subscriber is encapsulated in the entity that is called filtration the interest (promptly subscribing) of the special content of distribution such as aforesaid publish-subscribe network (for example referring to Fig. 1-3) with CBR function.Preferably, use described filtration to make the route decision by the router in the network.Be different from and have at the edge the preceding or filtering scheme that user side is carried out, the current C BR scheme that can operate in network core relates to the propagation of these filtrations.If give the ability that packet content that the subscriber receives their is provided with constraint, and if these contents constraints are used for network core so that routing packets, and networks efficiency and function will greatly be benefited from CBR so.
Embodiment described herein provides a series of height scalable filtration transmission method, consequently (i) described filtration can propagate in the core router or therefrom output and/or spread all over described core router along the data path between publisher and the subscriber, and (ii) if necessary, in network core but not only upstream carry out CBR at network edge.(for example, in network core, perhaps in publisher's machine) CBR needs the number of data packets of downward route often can sharply reduce by carrying out more upstream.Therefore, can reduce load of traffic on the network.
Filtration transmission method described herein is contained according to any title and any form and is propagated into information filtering in the network core or therefrom spread out of and spread all over network core and propagate.Described filtration is propagated to have many aspects and comprises many problems.One of major issue that described filtration transmission method solves is: flow when a large amount of filtered source (for example subscriber) move to " going to " several filtrations destination (for example core router, edge router or publisher) when filtering to propagate, can avoid assembling a large amount of filtrations.This problem also is called " accumulation " problem, and it for example occurs in the network of being made up of the tandem node that is connected in the tree topology.
Be designed so that solve one or more set that the scheme of these and other problems comprises rule, process, strategy, process, mechanism, agreement, message format, data structure and/or algorithm.By these solutions, can propagate: (for example, by simplification, merging, effective layout etc.) fast so that filter; Scalable (for example, by merge, ask approximate etc.); (for example, new reservation, cancellation, repairing etc.) dynamically; (for example, the authentication) of safety; Private (for example, encrypting); (for example, TCP connection, reliable tunnel, coding, recovery agreement etc.) reliably; (for example, inertia is propagated (seeing below), various multicast topological structure or agreement) flexibly; And adapt to user's request (for example, publisher/subscriber's behavior-coding).Described filtration transmission method described herein uses these solutions to realize these benefits and other benefits.
A. Network topology-filtration communication strategy
Distribution-reservation system can realize according to multicast, broadcasting or portable distribution-reservation strategy.Can filter propagate the embedded network topology, perhaps network topology " above " or remove network topology with external execution, wherein said network topology is forced by the strategy of selecting for link publisher and subscriber.As selection, described filtration communication strategy can also be the strategy that is used to link publisher and subscriber, such as according to relating to the distribution-subscription approach of issuing an advertisement, wherein can directly send towards the destination of advertising embedding the reservation of filtering.
In the multicast kind, filter to propagate can use be used for multicast (for example, agreement independently multicast-disperal pattern (PIMSM) and-intensive model (PIMDM), tree (CBT), distance-vector multicast routing protoc (DVMRP), multicast ospf (MOSPF) etc. based on core) consistent agreement.According to employed agreement, it can be two-way or unidirectional filtering propagation, and many filtration communication strategies all are possible.These strategies comprise one or more following examples: 1) when receiving all filtrations, they are propagated into all possible upstream link (positive propagation scheme); 2) publisher of response input divides into groups to start filtration propagation (inertia propagation scheme); 3) commercials of response publisher are propagated; 4) propagate afterwards in computational grid topology (for example MOSPF); 5) the periodic filtration propagated (for example, refreshing demand in order to satisfy to support to filter again in the overtime system); 6) require between the age at failure in repairing network to filter again to propagate; 7) during reconfiguring, network requires to filter again to propagate; And/or any combination of above-mentioned example.Preferably, be condition with described strategy with filtration transmission method described herein and rule.
B. Be used to filter the link level connection mechanism of propagation
Being connected the mode of filtering the source and destination that relate in the communication process can change.For example, filtering the source and destination that relate in the communication process can connect according to following mode: 1) skip (for example router-to-router) step by step; 2) end-to-end (for example, in off-line data retrieval from the subscriber set to the high-speed cache); 3) use the tunnel; 4) use transmission control protocol (TCP); 5) use User Datagram Protoco (UDP) (TCP) (for example, utilizing reliable time data recovery mechanism to replace); 6) agreement safe in utilization; 7) use other agreements; 8) only in the kernel of router and/or subscriber set, carry out; 9) user class that only relates to router and/or subscriber set place is handled; 10) relate to the kernel at the router that might make up and/or subscriber set place and user level process (for example, kernel is to using, be applied to kernel to using etc.); And/or 11) above-mentioned any combination.
C. Filter the destination of propagating
Can filter inject the publish-subscribe network Anywhere, as following given example: 1) form the all-router and the subscriber set of the end-to-end connection between publisher and the subscriber; 2) comprise each router in the network of edge router; 3) has only core router; 4) has only edge router; 5) subscriber's machine; 6) publisher's machine; 7) administrator machine; 8) high-speed cache; 9) backup router; 10) wherein can shift any router of grouping; 11) relate to that network is repaired or the new router of fault recovery; And/or 12) above-mentioned any combination.Preferably, described filtration is by asking approximate, merging and other processes are revised.For top each destination kind, the filtered version of being propagated may be different.
D. Filter the source of propagating
Filter propagating source and can be in the publish-subscribe network Anywhere.Can in C part above, find example.Equally, preferably, between propagation periods, by asking approximate, merge and other processes are revised filtration, so they often take different forms to different sources.
E. Potential filtration addressee rule of conduct
Filter propagating also may be according to potential addressee's behavior and demand and different.For example: 1) be positioned at publisher lasting or semi-durable position and wish to filter propagation towards them; 2) portable publisher may not wish to filter the position propagation towards them, because they leave soon; 3) a small amount of publisher that only issued a little publication before nullifying does not need filtration; 4) a large amount of publishers may wish to propagate filtration so that save the network bandwidth before sending first group of publication; 5) publisher with limited access right may be rejected to filter and propagate, with privacy and the confidentiality of protection subscriber in this is used; 6) realize that the core router that filters overtime strategy need upgrade from the downstream router cycle; And/or 7) edge router of not fixedlying connected with subscriber's machine may upgrade reservation or filter interest by RQ cycle.All these behavior properties and other for example can be distinguished by the advertisement of use publisher, coding publisher behavior when it is issued first, cycle transmission filtration renewal and other technologies, so that addressee's demand is filtered in reception and registration.
F. Filter sender's rule of conduct
Equally, filter propagating also may be according to the behavior of filtering the sender and demand and different.For example: 1) subscriber may only wish that submission has (system definition or user-defined) overtime interim filtration; For example, if he is to the interested words of sampling publication; 2) subscriber moves, and filters and expire after the subscriber moves; 3) in supporting the overtime CBR system of automatic fitration, the subscriber of fixedlying connected with their edge router may not be requested the filtration renewal of transmission cycle; 4) some strategies may stipulate that the subscriber needed to carry out authentication in the past in the filtration of propagating them; 5) router in supporting the overtime CBR system of automatic fitration often needs the transmission cycle to filter renewal; 6) only to the ad hoc inquiry of data fixed set may relate to filter or may realize by filtering (for example, the response inquiry or subscribe the data that come from high-speed cache, persistence Backup Data, data recovered etc. during fault recovery); And/or 7) for propagate revised the router that filters upstream router show how to revise the filtration of being propagated according to sender's demand needs.Behavior during all these behavior properties and other can for example spread news by encoding filter or by using particular protocol (agreement that for example is used for authentication) to be supported.
G. The filtration treatment of being propagated
Described filtration treatment can relate to and be used to revise the content of filtration or the conversion of expression, and/or relates to the management function that only is used to organize described filtration.Original filtration expression formula in the reservation may experience different processing procedure collection in the different piece of data delivery path, it comprises following passage portion: 1) from subscriber's machine to edge router; 2) from edge router to core router; 3) between two core routers; 4) edge router on the end from core router to publisher; With 5) from edge router to publisher's machine.Some examples of these conversion processes as mentioned above (for example, referring to Agent processes and asterisk wildcard are handled).These processes can spread all on the publish-subscribe network-for example on subscriber's machine, on publisher's machine, carry out on edge router or the core router.Assembly such as (on subscriber and the publisher's machine) agency and (on the router) demons can be carried out these processes.
Described process can comprise following example: 1) property content conversion (for example, from subject name to theme ID, the value of lexicographic from character string to them, from a kind of currency to another kind); 2) expression formula expansion (for example, composition) from asterisk wildcard to them; 3) expression formula conversion (for example,>operational symbol arrives>=operational symbol,!=operational symbol to>and<operational symbol); 4) the expression conversion (for example, from the string representation to the numeral or symbolic representation, such as Polish formula representation, relate to the representation of bracket, perhaps to the relevant expression of concrete data structure that is used to store or mate filtration, such as tree, radix clue (Rdix trie) etc.); 5) coding/decoding (for example, verification and); 6) encrypt/decrypt; 7) machine level layout and cancellation layout; 8) the protocol level layout is filtered the form that spreads news for subscribing, and filters the form cancellation layout that spreads news from subscribing; 9) decompose (for example, being decomposed into disjunctive normal form (DNF)); 10) simplify in case remove redundant predicate expression formula (for example,>5﹠amp; ﹠amp; $2>3 ﹠amp; ﹠amp; $1>3); 11) classification of two or more filtrations; 12) before merging and/or afterwards filtration is asked approximate; 13) merge two or more different filtrations (for example, based on approximate); 14) two or more different filtrations are divided into groups (for example, being used to be transmitted to different up-links); 15) cancel a reservation or remove filtration; 16) filter expiration; 17) Δ that filters upgrade (for example, according to the old filtration collection of any expression bookkeeping and from wherein deducting new filtration so that obtain to filter the change of configuration aspect, promptly Δ upgrades); And/or 18) formation of filtering model (for example,, filter 2 so and also just mate) if filter 1 coupling.List above relating to or any process that unlisted filtration is propagated can be used by described from here filtration transmission method.
H. Content that filtration spreads news and form
Message can be used to send or propagate and filter.The content and the form that comprise the filter message of being propagated may be subjected to the conversion process of described filtration experience and trigger the influence of filtering the environment of propagating between its propagation periods.Below be example format: 1) any message is in the layout of machine or user class; 2) filter the attribute (for example, with publication part characters matched string) that may relate to fixing or random site; 3) filtration may relate to fixed size (for example, integer, Boolean etc.) or variable-size attribute (for example, array, character string, c structure etc.); 4) filter the data type (for example, array, character string, bound variable etc.) that may comprise simple (for example, integer, Boolean etc.) or complexity; 5) filter may comprise simple (for example,>,==,<=, etc.) or complicated test OR-operator (for example, membership qualification test, regular expression, string matching, range arithmetic, such as the inquiry of occuring simultaneously, closure inquiry, comprise inquiry etc.); 6) decomposing D NF form; 7) simplification of Guo Lving or original expression; 8) form compact or expansion (for example, a side is filtered and can be used two boundary expression formulas to represent, perhaps double-side filtering can be rewritten as two one sides and filter); 9) part of Guo Lving is represented (for example, the blocking of character string predicate, data type is cleared up the end (reduction) of (resolution) and the minimizing of number attribute); 10) (for example, Polish notation, classification, tree, clue (trie) etc.) are represented in the conversion of Guo Lving; 11) the comprising/get rid of of subject field (for example, can propagate the multicast backbone of taking place thereon and realize that theme filters) by filtering; 12) expansion of asterisk wildcard theme or attribute predicate; 13) conversion of content or expression formula; 14) coded message (for example, error checking and correction and etc.); 15) encrypt; 16) complete or collected works of Guo Lving (for example, during fault recovery, in having the overtime system of filtration, refreshing renewal again); 17) segment set of Guo Lving (for example, sort out, have only new filtration to be inserted into or old filtration will be removed) to filtration; 18) the modification collection of Guo Lving (merge and filter, ask approximate filtration); 19) do not have to represent that similar in appearance to the filtration of filtering the Δ of aspect changes (for example, inserting and removing the change on the radix clue during the filtration); 20) sign is filtered label rather than its coordinate (for example, during canceling a reservation); 21) timeout parameter of Guo Lving; 22) filtering model information; And/or 23) the filtration sender of coding described in part F behavior and information requested.This tabulation only expression can be used for the possible content of filtration of propagation of method described herein and the sampling of form.
I. Filter process and the strategy propagated
System-level, can generate strategy and process so that controlled filter is propagated some of all aspects.These aspects for example can comprise: 1) management (for example, Quan Ju shutdown and restart); 2) safeguard (for example, fault recovery); 3) filter persistence (for example, the expiration is overtime, the former filtration of cached data); 4) performance strengthens strategy (for example, load balancing, edge selection, positive propagation to inertia); 5) monitoring (for example, Trouble Report); 6) (for example, statistics bookkeeping) accounts; 7) charge; 8) regulate (for example, authorize and propagate the filtration types of filtering, allowing in the network etc.); 9) subscriber authentication; 10) user aid (for example, the directory service of theme filtration); 10) subscriber's privacy (for example, filtration should be concealed other people); 11) synchronous (for example, when edge router receives filtration, confirm, repair router etc.) when finishing to filter to propagate to subscriber's affirmation, affirmation during restoration to the subscriber; 12) priorization, and/or 13) determine and regulate any strategy that automatic fitration injects (for example, the interest shown in concentrating based on the filtration of their injection itself, automatically inject) to permitting that the consumer is consumer's relation management of interested filtration.
Discussed up hill and dale in the I in part A and to have filtered aspect propagate many and possible feature.Yet, filter the feasibility of propagating and rely on the scalable solution that finds aforesaid " accumulation " problem.The method and apparatus that is used to realize scalable filtration propagation below is provided.
As mentioned above, important problem is in filter propagating: flow when a large amount of filtered source (for example subscriber) move to " going to " several filtrations destination (for example core router, edge router or publisher) when filtering to propagate, avoid assembling a large amount of filtrations.This problem also is called " accumulation " problem, and it for example occurs in the network of being made up of the tandem node that is connected in the tree topology.Figure 22 A for example understands filtration transmission method 450, and it is devoted to solve the accumulation problem of filtering.Method 450 for example understand to be used above the example of one group of solution describing at part A-I, is used for propagating at the publish-subscribe network filtering.Described method 450 for example can also adopt by agency's 128 represented software modules and be realized that described software module is carried out by the processor in subscriber's machine 122 134.As selection, described method 450 can be carried out by processor 93 in intelligent router 92 or under the software control of the corresponding function that comprises in ASIC 91.In addition, method 450 can be carried out by the combination of these modules.
Shown in Figure 22 A, receive a plurality of filtrations (step 452).As mentioned above, in portion C, described filtration can be injected the publish-subscribe network Anywhere.Handle the filtration that is received and filter number (step 454) so that reduce.Described minimizing step has reduced the filtration number of being propagated, so that avoid or reduce the accumulation problem of filtering.If too many a filtration of node place accumulation at this publish-subscribe network, just as when a large amount of directly downlink node that exists to present node, perhaps be in the situation of the level after filtering the leaning on very much of propagation path at front nodal point, publisher and router may be toppled so, and network efficiency will suffer to filter required huge computation burden and the puzzlement that brings because handle and mate all.
Below illustrate the effect that reduces step 454 of filtering further.In each level of travel path, there are many downstream nodes and only have one or several upstream nodes.Reduce the filtration number if be in each downstream node of a specific order, so according to approaching or be not very it to be transmitted to upstream node, will have and the same number of order of magnitude of the filtration of each its downstream node at the filtration sum of upstream node accumulation less than the factor of the number of the downstream node of this grade.By concluding, can find out that this minimizing factor is guaranteed will never be faster than several growth rate of the level in the propagation path at the number of the filtration of filtering each destination of propagating, and solved the accumulation problem thus effectively.
Figure 22 B for example understands the preferred substep that reduces step.Preferably, these substeps comprise simplifies filtration so that remove redundant predicate expression formula (step 4542), to the filtration that only comes from the downlink relevant divide into groups (step 4544) with theme, and in the group of this filtration, (before merging or back) asks approximate (step 4546) to filtration, relative distance cluster according to them is filtered (step 4548), (step 4550) is sorted out in filtration, and merged two or more filtrations (step 4552).Can carry out these steps according to being different from shown order, and can omit some steps.Simplification has been described, with reference to Figure 16 in agent processes.
Filtering combination step 4544 is crucial for upstream sending the correction filtering information.Below provide some examples of its importance.For example, router can have the many downlinks link of downstream router (for example, to).Not all downlink all allows the subscriber send to them and subscribes or filter.For another example, in two-way multicast scheme, can serve as up-link and both downlink to each link of router, this is because allow publisher and subscriber to be connected described network according to direction arbitrarily.When link has received filter request, this link should be considered to current up-link, and filtration that those downlinks that only are subordinated to same theme inject and the filtration outside the current up-link are combined, so that be used to ask approximate, cluster subsequently, comprise and union operation.
Grouping 4544 is also because of other purpose needs, such as keeping accounts and Internet traffic control.In some cases, for example when because arbitrarily during the global map of the filtration that need come in from all links of reason, even it can be omitted together.
Step 4546 asks approximate the modification to filter so that obtain more rather than the minority publication.For example, ask the predicate number that is similar in the expression that can reduce the filtration of being propagated, reduce the resolution that filters coordinate, perhaps will grow the truncation of a string is 12 initial characters.Ask approximate effect, so that they can become the optimal candidate (step 4550,4552) of sorting out and merging with alignment filter form.The described size of asking approximating step also to reduce the message of propagating described filtration.
Step 4550 is sorted out the filtration of leaving out as the subclass of another filtration.For example, if first filters and to be used to have area more than or equal to 1000 square feet and be less than or equal to all apartments of 1300 square feet and price range Da Yudengyu $200K and Xiao Yuhuodengyu $300k, and second filter and to be used to have area more than or equal to 1100 square feet and be less than or equal to all apartments of 1200 square feet and price range Da Yudengyu $225k and Xiao Yuhuodengyu $275k, second filtration is first subclass of filtering so, therefore by sorting out it is left out.
Step 4542,4544,4546,4548,4550 and 4552 can reduce any order execution of algorithm, employing of scheme and/or selection according to concrete filtration.For example, step 4546 and 4550 can exchange.Asking approximate can carry out after sorting out.In addition, step 4550 and 4552 can be integrated and carry out as single step.For example, merging can comprise classification, shown in following figure.
Continuation is with reference to Figure 22 B, and step 4552 is used for making up two or more filtrations filtrations because merge, and is therefore similar to classification.Yet merging can be used to ask and be similar to built-up section or diverse two or more filtration.Browse several these processes that where illustrate of various filtrations.For example, referring to following Fig. 1-4:
Figure C0381218000551
Several two filtration s1 and s2 of where having illustrated of Fig. 1 as mentioned above, are the subclass of filtering s1 because filter s2, so it can reduce by classification.Yet in Fig. 2, filtering s3 or filtering s4 neither is the subclass of other filtrations.But filtering s3 and s4 overlaps.Combining step 4552 merges s3 and s4 by asking an approximate minimum filtration sA who comprises s3 and s4.Because two of s3 and s4 are the subclass of sA, s3 and s4 are classified among the sA.Fig. 3 for example understands another example that merges; In Fig. 3, it is different fully with s6 to filter s5.Described combining step 4552 is asked an approximate filtration sA who comprises the area between s5, s6 and these filtrations.Filtering s5 and s6 is classified among the sA then.Fig. 4 for example understands another example that merges, and it is only different because of an attribute part with s8 wherein to filter s7.Because the overlapping attribute of s7 and s8, and have other identical property values, so combining step 4552 merges to sA simply together with two filtrations, sorted out lap.
Just as can be seen, sort out the filtration that approximating location is depended in (step 4550) and merging (4552).In order to obtain efficient via linear search, can use the optional step (step 4548) of clustering algorithm conduct so that collect filtration with closer to each other or overlapping border by whole filter list.When adding or remove filtration, can be in real time by carrying out clustering algorithm with increasing.The fixed size of any granularity on the attribute space of filter attribute or the grid of variable-size can also be used to based on their mesh coordinate separately filtration be divided into groups.
The sA by any covering among s3, s4, s5 and the s6 partly is not called as leakages (leakage) area (perhaps lax (relaxation) area, redundant area etc.), and reason is that these parts will obtain not by s3 or s4 or by the publication of s5 or s6 request.Therefore, described combining step 4552 losses are filtered and are reduced or reduce to leak to exchange for to filter.Yet along with carrying out bigger asking approximate, leakage area may reach a point, at this point, filters the benefit that reduces to such an extent as to its can't remedy very greatly.Just it is therefore preferable that therein that the publish-subscribe network in manner of execution 450 has the leakage area threshold value that has defined, this threshold value is used for combining step 4552 and determines that each asks approximate leakage area whether excessive.Preferably, the 4552 pairs of leakage areas of described combining step are carried out statistical study, so as to determine because described ask approximate and with the expection number percent of the additional packet accepted what are (that is, falling into the grouping of described leakage area).This statistical study can be based on the grouping distribution plan, and the history of grouping that this grouping distribution plan uses into or the grouping of going out (for example, at the router place that carries out described method 450) makes up.If expection number percent exceeds described leakage area threshold value, do not use so and ask approximate.
Described leak threshold is chart of percentage comparison normally, and one can be used as the merging standard with upper threshold value.One of them example as leak threshold, in Fig. 3, if leak threshold #_1 is defined as 10% of grouping number, this relate in combining step 4552 often actual filtration s5 and s6 accepted, if and estimate that leakage area may comprise and drop on 20% of the total number packets of filtering among s5 and the s6, can disapprove union operation so.Another example for leak threshold, in same figure, if leak threshold #_2 is by 2% of the total number packets of router, if and estimate to filter gap between s5 and the s6 and may constitute 1% of total number packets by router, even if first leak threshold (#_1) exceeds so, also can allow union operation, this is because gross leak is still the little number percent of grouping, if under the situation of not filtering route they, often consume downstream bandwidth.Can design and stipulate a large amount of the influencing each other between the various leak threshold with multifarious.
Described leakage area threshold value can depend on the filtration number of merging, the area that filters covering or any feature of filter distribution.For example, when the sum that filters more after a little while because the accumulation problem is not also arrived at once, constraint merges filtration so can use more closely.
As top illustrated in fig. 4, it should be noted that not all union operation all is similar to.Perhaps, the filtration sA of the merging of being made up of two or more different filtrations has the zero leakage area under certain situation, and is definite therefore.For example, suppose two dimensional filters (being s7 and the s8 of Fig. 4), when two rectangles representing filtration align mutually and be closer to each other, do not have leaving gap between them, it will be definite producing the combining step 4552 that filters sA.Usually, under the multidimensional situation, if two or more filtration has overlapping or crossing predicate scope and all has identical predicate scope for any other attribute for an attribute, so this situation may take place.Equally, if with next possible values after the predicate end of extent (EOE) of another filtration (for example to the predicate scope of a filtration, for the attribute that has only integer) beginning, these filtrations may be similar to the filtration sA of the merging with zero leakage area so, suppose that here any other attribute for these filtrations all has identical predicate scope.
Return the 22A with reference to figure, as selection, method 450 can comprise additional filtration treatment (except that the processing of step 454), such as the filtration treatment of part G description in the above.As shown in the figure, method 450 determines whether to propagate described filtration (step 456) based on addressee's rule of conduct, and its example part E in the above provides.Preferably, described determining step 456 checks that whether will filter (and/or with what filtration) is transmitted to potential addressee.For example, potential addressee may be a mobile publisher, and described publisher has not sent and propagated the request of filtering to its appended node (for example edge router) thereon.As selection, potential addressee can be new publisher, and described publisher has sent a request, so that before it gets off the ground a large amount of contents, all filtrations is transmitted to its appended node thereon.Can also use other potential addressee's rule of conduct, such as on part E, list those.Step 458 and 456 order are interchangeable.In addition, because filtering accumulation also is not a serious problem, so, be optional such as step 454 (specifically, merging substep 4552) and some steps of step 456 for example for the limited reservation of number (promptly filter) or include only several networks of propagating level.
Can also determine whether to propagate described filtration (step 458) based on sender's rule of conduct, its example part F in the above provides.For example, filter the sender and may comprise that filtration is overtime.In this case, determining step 458 checks whether described filtration expires so that check described filtration.Simultaneously, for the filtration of waiting to be transmitted to next node, filtering the sender may need to carry out authentication.In this case, if its origin can't be by authentication, determining step 458 may be refused described filtration so.Can also use other to filter sender's rule of conduct, such as on part F, list those.
Described in part D, this filters the startup Anywhere that communication process 450 can be from the publish-subscribe network, comprises the network manager.Be transmitted to next node (step 460) with reducing the filtration of number or the complete or collected works of filtration.As described in the portion C, described next node (described filtration addressee) can be arranged in the publish-subscribe network Anywhere as above.Can reduce the number of filtration by step 454 to each step of 458.In fact, can be zero with the decreased number of filtering by step 456 or 458 (for example, based on potential addressee's rule of not propagating any filtration).Described method 450 can also propagate 460 based on one of filtration communication strategy of publish-subscribe network, described in upper part A.Therefore, described propagation steps can comprise to be determined to filter communication strategy, and propagates filtration based on the satisfying of demand of determined filtration communication strategy.For example, propagate 460 and can carry out receiving when filtering, perhaps only respond the commercials that publisher carries out and carry out.Equally, method 450 can be carried out according to any strategy and the process listed among the upper part I.Method 450 can also format to filter and spread news according to upper part H.The mode that is used for being connected the source and destination that propagation steps 460 relates to can change, described in upper part B.
Propagating after 460, described method 450 can determine whether to exist another potential addressee (another node) (step 462).If there is another potential addressee, so described method 450 determines whether to exist potential for this reason addressee to repeat the needs of described process.There is such situation in (for example CBT) in a certain publish-subscribe network strategy, wherein filter without any expiration overtime, and in case they are transmitted to a node, they will keep lasting on this link, up to some changes (for example, filtration adds, filters removal etc.) that taken place the filtration collection.Under those situations, filter propagation and become unnecessary for this link.In inertia transmission method as described below, can find an example.
Filter if desired and propagate, method 450 can determine whether to propagate step 456 and 458 based on rule of conduct so.Described method 450 can repeat, till the potential addressee of the filtration that no longer includes minimizing.
Figure 22 C understands that for example another filters transmission method 470.The method is for example understood another example that uses one group of solution above describing in part A-I, is used for propagating filtration at the publish-subscribe network.Described method 470 can be carried out by processor 93 in intelligent router 92 or under the software control of the corresponding function that comprises in ASIC91.As selection, described method 470 for example can adopt as acting on behalf of 128 or 105 represented software modules and be realized that described software module is carried out by the processor in subscriber or publisher's machine 122 or 100 134 or 114.
In this example, network topology is two-way topological structure, and wherein a series of P of publisher are connected thereto from direction arbitrarily and via any path arbitrarily to the network of intelligent router C, shown in Figure 22 D.This network for example can be realized by the multicast scheme based on the tree of core.In described example, with the new P of publisher NAnd new router C NBe connected to the network at router C place.Effort and the new P of publisher that contingent issue of securities-the reservation network is connected N, may need to be connected with described core by a series of new routers, wherein said new router will form the expansion of this network, and/or this new P of publisher NCan be by connecting as the router of this network part.Illustrative purposes only illustrates 1 new router C among Figure 22 D for example N
Described filtration communication process is carried out in 2 levels.In the bilateral network shown in Figure 22 D, any link can be up-link or downlink simultaneously.Purpose for current argumentation, described up-link (having only one) is defined as the link that receives current filter request from it, downlink (many in the middle of) is defined as the direct downstream addressee's of the filter request of leaving from described up-link link.Upstream and downstream be according to the direction of up-link and downlink same meaning definition.
With reference to Figure 22 C, in the first order, the new P of publisher NTo ask the notification broadcast of filtering or be multicasted to downstream router C (perhaps all downstream nodes) (step 472).After router C receives filter request (step 474), router C upgrades its bookkeeping so that guarantee identical filtration collection not to be sent twice to same up-link, preferably, realizes (step 476) by means of reference count.Then router C determine to come from this up-link filter request whether before serviced the mistake, preferably, the reference counter of this up-link is realized (step 478) by means of checking.If it is the new up-link that never must be service before, resemble first publisher thus up-link connect the situation of described network, router C relays to the downlink (being downstream router) of (step 480) router with described request so, and waits for the response (step 482) that comes from described router downlink.Those downstream routers send again described request to they downstream router and wait for their response.Described receiving node repeats this process, till can be made a response.So just finished the first order.
When any node that is used for the receiving filtration request has all been collected all response of the downstream router that comes from that node, perhaps when this node be node last in the network and when not expecting to come from the response in downstream, the beginning second level (step 484).To not send if filter, will upstream send Negative Acknowledgement (expectation perhaps in office all is the empty collection that filters in showing) so.If from the downstream router of described node received all new filtrations all, so whole or part filter collection (for example, Δ changes) will optionally filter reduce after (step 454) upstream send (step 486).According to method 450, have only from the filtration of collecting to be grouped, to merge and to reduce with respect to the downlink of current up-link.Then, collect this then that communication process upstream repeats, till the publisher that sends filter request or initial router receive the Negative Acknowledgement of the downstream router that comes from all described publishers or initial router.Actual propagation of filtering or aforesaid empty set (Negative Acknowledgement) constitute the second level.Described two levels they the direction of propagation and propagating contents aspect difference, and since filter request can advance to more some network branches in downstream than other request, so they in time may be overlapping.
Because having only, this filtration propagation scheme when receiving the filter request that comes from up-link, just starts the filtration communication process, rather than forwardly filter pump is delivered to each up-link, so it may be known as the inertia propagation scheme, it is only delivered to filter pump the upstream router of request filtration and has only when it asks them and just do like this.Here it should be noted that filter request may not be the notice of special format.According to part E, first notice that comes from any publisher can be considered to the advertisement of its existence, and has encoded and whether the filtration addressee rule of conduct that is embedded into data notification can be used to determine to filter just be requested.
The filtration of each P of publisher may be stored in publisher's subscriber set 100, perhaps is stored among the router C that is connected with the P of publisher.With adopt that above method 450 is the same, method 470 can also be used additional solution, such as in part A-I above, describe those.
Use compact filter store and the precalculated CBR of off-line
The embodiment of the CBR that in this part, describes relate to a kind of be used for based on the deep packet inspection and filter coupling, in the method for publish/subscribe network core route data grouping.By filtration being transformed to compact more form, and by calculating the coverage of described filtration in attribute space in advance, this CBR method forms the mapping of the finite set of dependency air coordinates to the off-line route instruction, uses described mapping to make the route decision then in real time.This CBR method is very fast, has realized the data forwarding speed with traditional Internet protocol (IP) route same order.Therefore, this CBR method is the practical commercial candidate who is fit to who disposes who is used in the content-based route of network core.
As mentioned above, the subscriber to come the selectivity of the following grouping of refining, described grouping by regulation predicate on attribute-value ranges be that one or more publisher from the publish-subscribe network sends.Each predicate is an attribute test (attribute test also can comprise theme test), the attribute of certain position and 1 or 2 operands relevant (operand can be the complex object such as regular expression) during relation or membership qualification are tested during this attribute test will divide into groups.For example, 10<$1<20 are whether the data value of first property location that is used for checking that You $1 represents is greater than 10 and (can be with the definition of predicate by test limits is simplified for only comprising 1 operand less than 20 test, for example, the test of 2 side scopes can be split up into the connection of two one-sided tests).Described subscriber submits a set of these tests in one or more is subscribed, each is subscribed and all can comprise subscriber's topics of interest field.
Embodiment described herein relates to the content-based route of use filtering, and described filtration is from subscribing the object of deriving and only being different from reservation in their expression.An example that filters is that conjunction as described below is filtered.In some sense, a reservation is original filtration, an original filtration that is prescribed and is used for filter packets and/or directly sent to network by the subscriber.In order to be easy to propagate and router place in the network coupling of dividing into groups, reservation can be converted to the object of the extended formatting that is called filtration.For example, in some implementations, each theme uses multicast network to realize.The grouping with same subject field is only filtered in the filtration that belongs to same subject and be injected into each node of multicast network for particular topic, in fact implicitly carries out subject field and filters.Therefore, filtration can be stored under their topic headings at each node place in this network, and without their subject field.There is not the filtration of subject field to be commonly referred to the attribute filtration.For following argumentation, term reservation, filtration and attribute filter and are used interchangeably, and its meaning is only clearly show by their environment.
For the packet and these reservations that are easy to enter are mated, before each reservation is sent to edge router, can handle each reservation and it is decomposed into its equivalent disjunctive normal form (DNF) by proxy machine, as mentioned above.DNF is called the one or more sub disjunction expression that filters that conjunction is filtered.It is the conjunction expression of one or more attribute tests that each conjunction is filtered, and wherein each attribute utilizes the same test operational symbol to represent once at most in expression formula.For example, conjunction is filtered and can be constrained in the attribute of position 1 and the coupling of expression formula (attribute of Bu Tongyu $1 is included into following example):
$1>10?and?$1<20?and?$2<4?and?$3==5?and?...
With regard to router, it all is that conjunction is filtered that attribute filters because of the action of proxy machine.The beneficial property that not only has consolidation form is filtered in conjunction, this unified format is easy to propagate these filtrations in network core, and the geometric object of multidimensional appears also allowing these filtrations are interpreted as in the single of each attribute in filtering expression formula, and this is very useful for describing in this CBR embodiment.Therefore, hereinafter, only conjunction is filtered as example.
No matter whether use DNF, if use a kind of simple method come singly and predicate ground of a predicate mate filtration than big collection, so needed huge calculated amount may be easy to make by the benefit of using the downstream bandwidth gain that CBR obtains impaired.This huge calculated amount in key data forwarding path may seriously be delayed the efficient of publish-subscribe network.CBR embodiment described herein manages to reduce this huge calculated amount, and manages major part calculating is removed from key data forwarding path.
In fact, embodiment described herein provides a kind of very effective method for CBR, is approximately more compact form and off-line and calculates in advance and filter coverage information and realize by filtering expression formula.In this CBR method, when inserting or remove filtration, the filtration coverage in the attribute space on each single-point is pre-determined by off-line.To the correct operation of the described grouping that has property value at that point will be the unification that covers the action that whole filtration of this point asserts.These actions can relate to following grouping, for example comprise that the grouping of the interface that is forwarded to physics or encapsulation, the grouping that is transferred to user level process or duct type are sent to the grouping of parallel machine (for example high-speed cache, backup router etc.).Some actions may not relate to grouping, for example comprise that the general application that triggering moves is so that respond the arrival of the grouping of special appointment on router, owing in the relevant range of described filtration still the publication of existence activity prolong the life-span of some filtrations, automatically inject new filtration etc. based on the content of publication.In fact, each filters the action of being asserted can pass through the data structure specific implementation, described data structure such as act bit shielding (ABM), different (forwarding) action of each bit position representative, perhaps become too difficult control so that can't be placed in the bit mask (for example subscriber that the edge router linking number is huge) time at the action number, described data structure is tabulations (the different action lists-DAL) of different actions.In argumentation subsequently, when mentioning ABM or DAL separately, it should be understood that described environment contains the form of ownership of the data structure that embodies action.
Thus, a plurality of coordinates shine upon to the unification of similar number or the CBR of action lists in the dependency of the calculating generation in advance space.Because this simple mapping is similar to the multicast routing table that is used for the multicast of theme group, it can be commonly referred to as the CBR table.Just as can be seen, by heavy computation burden is transferred in the nonessential filtration of running background calculation procedure in advance from key data forwarding path, data almost avoid mating the required processing of original filtration expression formula and apace by key data forwarding path.
Preferably, this CBR method also comprises and is approximately compact more form with filtering expression formula, for example sums up by means of space quantization and predicate and realizes.Because in each attribute dimension, have huge number of coordinates, so necessary quantified property space forms grid thus.Only use the zone rather than the individual coordinate that quantize to construct the CBR table.Because space quantization has the effect that the point of the individuality in the actual attribute space is grouped into a single point in the quantified property space, so each point in the original actual attribute space is explanation in the CBR table indirectly still, the point with identical quantification coordinate adjacent thereto is shared the tabulation of the action that those quantification coordinates are asserted.
In the method, allow various space quantization schemes.In addition, when the filtration expression formula comprised too many predicate, it can be approximately the only subclass of expression in the CBR table.
The attribute space of attribute is unlimited potentially.Therefore, even use grid, attribute space also may too be used inconvenience.Therefore, CBR method described herein preferably reduces the area of the attribute space that is quantized.Specifically, preferably, following such area in a quantified property space can be expected the packet that receives coupling for this area.As described below, be based on the information that receives from publisher and/or determine for its area that may receive the data of coupling based on the statistical study of the distribution of the grouping of (promptly the receiving in advance) in past and/or filtration.For example, if publisher provides information: will never issue packet, and so preferably not quantize attribute space greater than described certain value greater than the coupling of certain property value of an attribute.Equally, if statistical results show: never receive filtration, so preferably do not quantize attribute space less than described certain value less than the certain value of an attribute.
Figure 23 A is according to embodiment described herein, for example understand by filtering the CBR method 480 that expression formula is approximately compact more form and off-line calculates filtration coverage information in advance.This CBR method has minimized the real-time filtration coupling by predicate.Method 480 can be carried out in intelligent router 92 or under the software control of the corresponding function that comprises among the ASIC 91 by processor 93.Usually, be centralized calculation because relate to the calculation procedure in advance of filtering management function, so preferably, adopt software to carry out it.Yet in some the filtration expressions such as radix (radix) expression, it can also adopt hardware to safeguard filtration.Method 480 for example can also adopt software module to realize, described software module is carried out by the processor in the subscriber set 100 114 for example by agency's 106 representatives.
Shown in Figure 23 A, method 480 at first determines whether to carry out in time space (again) and quantizes (step 482), it can be by overtime triggering cycle or aperiodic, perhaps by predefined Event triggered, described predefined incident has become irregular to heavens on the attribute space of current quantification such as observing the classified statistics amount.If desired and when router is idle relatively, off-line ground execution space quantization (step 484).Space quantization relates to the calculating of new grid, and preferably, described new grid has the character that the grouping of making distributes or filter distribution (perhaps the two some are relevant) becomes consistent on consequent quantified property space.The additive method and the standard that can usage space quantize.
The net region can be configured to only to cover the area of the minimizing of attribute space, in the area of the minimizing of described attribute space, expection can receive matched packet.For example, if first attribute is represented the stock number in a certain industrial sector of US, space quantization only need carry out in the number range of stock sum to all American Stock Exchanges of combination from 0.After the statistical distribution of this attribute is formed by collected classified statistics amount, as below discussing, adaptive quantizing can be used for dynamically regulating this scope, be adjusted to a much smaller number at first, this number is a number maximum in whole departments stock number, and when maximal value increases, be adjusted to higher number later on.
Then, router determined whether that any filtration has been inserted into network site (for example core or edge intelligent router 92 or publisher's machine 100) or from this network site with its removal (step 486), in described position just in manner of execution 480.The reference count method can write down a filtration of newly injecting and whether have identical information (for example, the property value of attribute, coupling and filter action) (step 488, step 494) with previous another filtration of injecting.Have only diverse filtration just need be handled.Purpose of description is assumed to intelligent router 92 with described position for this reason.For example, perhaps a new filtration upstream has been transmitted to intelligent router 92, and perhaps the filtration in a Geju City is perhaps because at the set overtime expiration of old filtration and overtime.
When having received the request of inserting or removing a filtration (step 486), at first use the actual coordinate of this filtration, described filtration is compared with other filtrations that received already and stored by router, purpose is can (1) to upgrade the reference count (step 488) to correct filtration in the actual attribute space, and (2) determine that the filtration that is inserted into/removes is a different filtration or a filtration (step 490) that has received in the past.If described filtration is not a diverse filtration, carry out flowing to the routine that passback is delivered to matched packet so.Otherwise, the property value of grouping is mapped to the quantification space, so that obtain the quantification coordinate (step 492) of property value.Carry out one and similarly filter identification procedure, be to use the quantification coordinate to carry out specifically, so that (1) in the quantified property space, upgrade reference count (step 494), and (2) determine whether this filtration is a diverse filtration (step 496) in the quantification coordinate that filters to correct filtration.For step 488 and step 494, preferably, use from filtering two mappings that coordinate is quoted to filtration.
If filtering described in actual attribute space and the quantification space is diverse, so therefore can asks approximate and reduce filtration (step 498) filtration.For example, for quantizing and mapping, only to select to have the filter attribute subclass of too many predicate.Equally, has the predicate (for example, require in string matching, regular expression, the character string, in the array, the predicate of range arithmetic etc.) of more complicated character or require the higher attribute of clearing up to be handled independently.
One of the key of embodiment of the invention contribution is such thought: if filtration is made compact, so just can adopt scalable mode to carry out the coupling and the forwarding of grouping efficiently.The compression of filtering can relate to the mapping (step 492) that is filled into the quantified property space and filter approximate and minimizing (for example step 498) both of these case of asking of expression formula.As shown in the figure, compression step comprises and spatially quantizes described attribute space (step 484).This step forms grid in attribute space, as mentioned above and show below:
Figure C0381218000651
Can upgrade CBR table (step 500) now.Each filters with showing the rule that one or more (route) of the publication that mates this filtration moved and is associated.Be inserted in the following ways in the grid cell in this CBR table filtering the action (route) asserted.The quantification coordinate that the grid that use forms in the attribute space of filtering coverage information, step 500 at first identify described filtration covers or overlapping total-grid unit (that is the zone of quantification).Step 500 is inserted into (route) action of being asserted in these grid cells then.For example, suppose five possible destination nodes, two filtrations that require to route to the subscriber set that is connected with 3 with node 2 can cover the regional X (referring to above) of described grid cell or quantification respectively.Therefore, the regional X of grid cell or quantification is inserted or confirmed to step 500 rule that will require to route to node 2 and 3 respectively.To be covered or each overlapping grid cell by the quantification coordinate that filters for being identified as, be repeated this process.Preferably, step 500 is represented the mapping by the zone for each grid cell or quantification generates or renewal ABM obtains.In this example, suppose that node is numbered as the grid cell of 0-4 or the ABM of quantization areas X is:
0 0 1 1 0
Note, preferably, carry out bookkeeping for filtering to remove.For example, suppose that a grid cell filter to cover by two, and one of described filtration is removed.Corresponding positions among the ABM should not be reset to 0.By being the reference count of the filtration of each grid cell bookkeeping capping unit area, just can avoid confusion.Then, generate FBM according to the reference counter that upgrades.These reference counters can be called the action reference counter.Therefore, mapping step 500 can comprise bookkeeping step described herein.
(step 500) constructed/upgraded to the CBR table from the ABM that the zone for each grid cell or quantification generates.Preferably, this will relate to the space re-quantization directly or indirectly and the CBR table upgrades, and all step 482-500 that replenish.Preferably, off-line (that is, when intelligent router 92 not when receiving the grouping of distribution) execution in step 482-500 is perhaps when injecting, hang up, suspend or removing when filtering execution in step 482-500 in the backstage of real-time routing daemon.In view of the above, if do not receive the grouping of distribution, if perhaps on the backstage just at execution in step 482-500, when method 480 at first determines whether to be the re-quantization attribute space once more so (step 482), and determined whether that subsequently any filtration has been inserted into or has removed (step 486).Then, in the data forwarding path, the CBR table is used for real-time routing daemon, shown in Figure 23 B.
The size of CBR table may be very huge because of a large amount of attributes or a large amount of grid dividing to each attribute.In principle, the grid cell in CBR table (that is, by filtering those unit that cover) that only comprises action rules need be stored.Can use any technology to simplify the CBR table.
And Figure 23 A for example understands the CBR management aspect of method 480, and Figure 23 B for example understands the CBR data forwarding aspect of method 480.If method 480 has determined to receive the grouping (step 502) of distribution, intelligent router 92 receives the grouping (step 504) of distribution so, shown in Figure 23 B.The grouping that received can be used point-to-point to connect the wireless connections of edge router (for example, to) is injected in the network.With the packet map that received to grid (step 506).Step 506 is determined the quantification coordinate of grouping, so that can search the correct grid cell of CBR table, and can extract the action rules that comprises in this grid cell and, use these working rules to handle described grouping (508).These actions can comprise to be determined and will be routed to which node or which other position in the network to grouping, perhaps comprises abandoning described grouping.
Leak and reduce
So far given CBR method 480 may be deposited owing to filtering the approximate grouping that produces and be leaked the mistake (referring to step 492) of form.Come matched packet because use the border rather than the original filtration border of grid cell, so (for example increased the actual area that is used to mate, 2 dimension areas and 3 dimension volumes), and the undesirable grouping (being commonly referred to as relaxation area herein) that property value falls between actual filtration border and the grid cell border will be accepted mistakenly.As mentioned above, obtained or when being modified in process when speed ability and scalability, and relatively be hour when leaking wrong sum with the grouping that enters, the filtration of minimizing is cleared up and is considered to acceptable loss.
Yet in some cases, it may not be little leaking mistake.For example, to have attribute predicate that at least one its CBR enables be to equate or does not wait the filtration tested (for example $1=4 ﹠amp for example when described system comprises; $2=100 ﹠amp; S3<30,, $1=4 ﹠amp; $2>3).As equating test or do not wait in the dimension of those attributes of testing that described filtration is similar in appearance to a bit.So that when sorting out these (in the above in the step 490), relax zone extension of a field (for example area, volume, hypervolume) just can be greater than the expansion of actual filtration self when forcing net boundary.
Described among this problem figure below, this figure has described the space of 2 attributes and has shown two points to filter F 1 and F2, and both are defined by the equal test in arbitrary dimension.Described numeral indication grid cell coordinate and described letter is an actual coordinate.Its attribute fall into grid cell no matter Anywhere those groupings (4,1) will be taken as coupling F1 and F2 these two.
By reducing this undesirable characteristic that the various technology of carrying out in the step 516 can alleviate CBR method 480 in leakage, this part content will be described as an example below.
One of this technology of leaking minimizing 516 relates to the definite coupling in a dimension (1D).Definitely grouping being matched to filtration at all properties simultaneously is the problem of multidimensional, and it does not have scalable solution.Yet the definite coupling in 1D is known to have many efficient and scalable solutions, includes but not limited to: (1) is to filtering the binary search of border array; (2) spread all over the binary tree search on whole filtrations border; (3) along being embedded with the downward radix search of tree of filtering boundary information; And (4) adopt other complex data structures-such as the search of interval binary search tree etc. more.
In leaking minimizing step 516, preferably, the definite coupling of using any 1D search technique 1D to carry out 1D all will be carried out all properties.The exemplary leakage that to describe below according to the 1D exact match reduces step 516.
A. not leaking execution CBR coupling step 508 under the situation about reducing, (, then lose grouping) as mentioned above if there is not coupling;
B. for the grouping (referring to top step 508) of coupling, select an attribute dimension, and use any ID exact match technology and respective data structures thereof that this property value and all projection of filtration border on this attribute axis of described grouping are mated.Obtained to have found the tabulation of whole forward node of the filtration of mating for it;
If c. there is not the 1D coupling, so because guarantee in all packet attributes tests, will not filter the described grouping of coupling, so can lose described grouping;
If d. there is coupling, select another attribute dimension and repeating step b so, in any dimension, all find it is mismatch up to (i); (ii) the forward node tabulation that is produced by all previous 1D search of carrying out does not comprise common interface (that is, generating the 1D coupling from the filtration that comes from distinct interface); Perhaps, (iii) all properties dimension is all carried out definite matching test, described attribute dimension can comprise forbidden those attribute dimensions for CBR.
If e. any one that describe in the steps d condition of losing does not take place, and test all properties and do not have mismatch, a judgement that does not abandon grouping can be made so.
F. under the situation that relates to an above interface, must not compare with the interface list that obtains from step a because of its interface of losing grouping.Described grouping only is routed to the interface in occuring simultaneously between two tabulations of route.
Other order of substep a-f also are allowed to.For example, substep a can carry out after ID leakage minimizing step (substep b-e) is finished.Can more integrated substeps.
It should be noted that it is inapt that above-mentioned ID leaks minimizing step 516 when considering whole dimension.Use previous example, have have $1=a ﹠amp; Being grouped in of $2=d all will be by the test of exact match under arbitrary dimension, still in fact filtration that coupling is different of the test under each dimension.In correct multidimensional analysis, often to be lost.Therefore this leaks and only reduces losing grouping of great use, and is otiose for accepting grouping.For latter instance, its indication is similar to, and the leakage mistake is still possible.Although it is inaccurate, leaks minimizing step 516 and greatly reduced the leakage mistake that causes for the whole area in the grid cell (4,1) that filters by using.
Inspection is via the quantity of information of the described data forwarding path of described intelligent router 92, so that (step 510) (promptly on one group of threshold value to determine it, intelligent router 92 for example is " busy ", the mission critical that is forwarded grouping in occupation of), wherein in described intelligent router 92 place's manners of execution 480.If described intelligent router 92 is busy, moves route to map to the grouping (step 512) of the grid cell (step 508) of covering based on the route of determining by step 508 so, and upgrade corresponding classified statistics amount (step 514).Therefore, if intelligent router 92 is busy, because mapping to " leakages " that grouping caused that the grouping of the grid cell that part covers rather than route exceed beyond the actual filtration coverage in this grid cell, route is taken as loss so, so that raising route speed.
If step 510 is determined intelligent router 92 not busy (that is, the traffic does not surpass threshold value), so preferably, carry out to leak and reduce (step 503).Described leakage reduces step 516 and reduce the leakage of describing in leading portion.Described leakage for example reduces and can carry out according to the method that describes below.
Up to the present, also do not carry out any definite or filtration coupling of predicate one by one in real time.Yet, in method 480, can allow the definite filtration coupling of minimum level, preferably, have only when the traffic does not exceed threshold value, just to allow above-mentioned definite filtration coupling.This CBR method is internally divided into groups to filtration with respect to the position of described grid according to them.Described grid cell is a kind of instrument, is used for according to their geometric position filtration being divided into groups.(as selecting to be commonly referred to as filter vat (filter bucket)) can carry out filtering in detail more accurately for some situation in any group that filters.This extra coupling demand can be stored in the filter vat.Some examples comprise:
1. require to be handled afterwards from first grid coupling step of CBR, retrieving filter vat (step 508) than the higher attribute test of clearing up of clearing up that the CBR mapping provides.
2. handle the attribute test of more complicated character (in for example, string matching, regular expression, the character string, in the array, range arithmetic etc.) by the described group of methods that is filtered into.
3. for the filtration that comprises a large amount of attribute tests, described attribute can be divided into two groups, one group is imported into the CBR mapping, and another group is imported into filter vat.
Can reduce the filtration predicate of the attribute of in 1-3, describing by top step 498.In addition, if intelligent router 92 not busy (referring to step 520), use so by filtration predicate or that other are definite and mate the filter vat coupling that this grouping and the grid cell that is covered by part are determined, the grid cell that described part covers is determined according to the CBR table.Reduced by (from the sum that filters) by calculating (at step 482-500) in advance already because be used for the filter vat of this grid cell or quantization areas, so this process is carried out directly the CBR of predicate one by one simply, so more effective.
(step 512) (determined) before based on the described grouping of described CBR table route by step 508, described method determines for the filter vat of being determined by the grid cell that is mapped to, and whether has the filtration predicate of any minimizing or whether has the grouping (step 522) that maps to the grid cell that part covers.If have the filtration predicate (for example) of this minimizing or, carry out predicate or that other are definite one by one filtration coupling (step 524) so from there being the grouping of this mapping according to previous example 1-3.Then, according to the grouping of for example moving route to mate from the route that CBR shows and definite coupling is determined, (step 512), and update packet statistic (514) by the common factor of asking between the interface list that obtains by these two kinds of methods.
In the alternate embodiment of method 480, traffic threshold checks that step 510 can calculate the step of concentrating prior to some, such as step 518 and 524, by balance consumption to the calculating strength balance consumption determined.In addition, described method 480 can have independently path, is respectively applied for the grouping that maps to fully the grid cell that covers, and the grouping that is used to map to the grid cell that part covers.Traffic threshold step 510 may only be carried out in the grid cell path that part covers.
Leakage in method 480 reduces step 516 can replace with more senior leakage minimizing process described herein.The leakage of the high utmost point reduces process and further reduces the leakage mistake.For example, definite multidimensional coupling can be carried out in grid cell by crossed product (cross-producting) after the grid table search.Crossed product relates to following process:
A. use any ID exact match technology to carry out aforesaid ID exact match.The key distinction in this alternative steps is to produce filtration list of labels rather than forward node tabulation;
If b. described tabulation is empty (promptly not mating), lose described grouping so;
If c. there is at least one coupling, so described search proceeds to another attribute.Step ac is repeated, till the following condition that each is taken a shortcut satisfies: (i) all found mismatch under the dimension in office; (ii) do not having general filtration label filtering in list of labels by all that produce in preceding ID test, perhaps, (iii) after tested all dimensions; And
If d. any one that describe in the step c condition of losing does not take place, and test all properties and do not had mismatch, can make a decision of accepting grouping so.
For example, in above-mentioned figure, (a, grouping d) will produce F2 to test, and test is produced F1 to have property value.Because two are filtered between the list of labels and are not occured simultaneously, so will lose described grouping.On the other hand, (a, grouping c) makes described grouping be accepted with all producing F2 in Zai $1 and the $2 test thus to have property value.Because this process even also almost be definite in last multidimensional analysis, so it is a test of accepting grouping, rather than a test of only these groupings being lost.Having only asking of having carried out approximate is the blocking of attribute test in filtering.This problem can not solve.For example can prevent that it from taking place by following process:
1. create a plurality of grid table, comprise attribute set (for example, selecting ($1, $2, $3) as a set, ($S2, $4, $5 corresponding to the displacement of complete or collected works' subclass) as another another set).Filtration with long predicate tabulation will be covered by at least one this grid table; Perhaps
2. whole attributes are carried out the crossed product test.Because having the filtration of a large amount of predicates is selectable in nature, so the probability of taking a shortcut is very high, and top outline at step c each lose branch set condition (for example, filtering list of labels occurs simultaneously) and can before the test all properties, take place.
Because it is unpractical and rare allowing filtration comprise a large amount of predicates,,, can not take place continually though be essential so certain of filtration expression formula blocks.
Interblock space quantizes and this mixed process of crossed product and the contribution point of another key that aforesaid multilist lookup method constitutes this patent, this is because these two kinds of methods of being made up have solved the traditional problem of the not scalability that any crossed product solution often faced, as below will seeing.
Under the situation of a filtration, the crossed product solution is definite.Yet under the situation that scope is filtered,, there are two problems traditionally owing between arbitrarily to adjacent filtration border, need to store the crossed product that list of labels is filtered in conduct.The first, when scope from high superposed each other to system that inject was filtered, storage had N 2Rank, wherein N is the number that filters.The second, the common factor list of steps has the N rank, and when N was big, this may be a very slow process.The hybrid processing mode of composite grid search and crossed product method is reasonably big or small with two the question resolves itself intos, because have only those filtration borders that fall into the same mesh unit to be stored, and mate for the grouping on the border that falls into this grid cell.In some sense, described grid cell has been taken over the role who filters the interval stored filter list of labels between the border according to contiguous, and because there is fewer grid cell, so need the stored filter list of labels.
If distribute and construct described grid, in arbitrary attribute dimension number, will produce the even number filtration at interval so at each grid cell based on filtering the border.When N diminishes, storage problem N 2Just become and be not difficult to so tackle.For example, just might to reduce storage problem be (N/32) to 32 at interval grids 2* 32=N/32.Tabulation common factor speed issue is similarly alleviated.
As long as the number of grid cell keeps a little number actually, aforesaid crossed product method is its effect well just.Attribute is divided into various displacement collection and distributes the method for a CBR table for each collection is rational number with the network element numerical limitations in each table.For example, if L is the division number in each attribute axis, the sum of the grid cell of the attribute of k number will be L kBy using the method for a plurality of tables (size=4), now size is reduced to M L 4, wherein M less than displacement total k! / (k-4)! It should be noted that some are replaced each other high superposed and have only one can select and be used as representative.(for example,,,,,,, ,).
According to the CBR method of present embodiment (for example, method 480) (deduct the definite filtration coupling step 516 and 524 by predicate) and have following at least character: 1) packet forward speed is very fast, and can compare with the IP route, only need 0[klog (L)] individual step, wherein L is the division number in all properties axle and k is the attribute number that is quantized and shines upon.Use 4 attributes and 32 divisions of every attribute, need about 22 steps; 2) packet forward speed is constant in real time.It does not depend on the number (N) of filtration.This character makes the sustainable maximum bandwidth capacity of this CBR method of estimation become possibility; 3) it also is fast for dynamic renewal.For example, insert filtration and can adopt 0 (L according to implementation k) step; 4) storage demand is very little and limited, is k (L-1) S approx A+ N rL k/ 8, wherein SA is the size that adopts the attribute data type of byte, and Nr is the number of router place forwarding interface.First is the size of population of all k number index parts of data structure, and the latter is indexed actual forwarding part (that is CBR table).For the router with 8 interfaces that 32 CBR that divide according to 4 integer attributes dispose, memory space has only 1MB; 5) index data structure that partly is separated with much bigger forwarding should submit to high-speed cache very much.For example, the example above using, the size of index structure has only (4) (31) (4)=496 byte; And 6) described grid also is the instrument for grouping and tissue filter.It is particularly useful for merging filtration before filtering in propagation, and it is scalable to make that thus the method is highly susceptible in comprising a large amount of subscribers' system.Put it briefly, CBR method 480 be fast, affirmable, dynamic, scalable, do not have storage demand, flexibly, and be practicable in the core of publish-subscribe network, disposing thus.
Adaptive mesh
As mentioned above, described grid forms by quantified property space spatially.In general, described attribute space quantizes equably.Yet if described attribute space is spatially quantized adaptively, for example, distributing based on the grouping in past is quantized, and the efficient of the resolution of grid and CBR method 480 therefore can be improved so.Adaptive quantification determines will receive for it probably the zone of the attribute space of the grouping of mating most.For example, adaptive quantification can be determined the distribute zone of the attribute space that focuses mostly on greatly of the grouping of passing by therein.Then according to quantizing determined one or more zone than the bigger degree of other quantization areas of attribute space.In other words, in determined zone, what the number of grid cell will be greater than other quantization areas in the attribute space, and the size of grid cell is less than other quantization areas.Following 2 figure of adaptive mesh for example understand this situation:
Figure C0381218000731
In first figure, meticulous grid is superimposed upon on the zone of heavy amount of packet communication.In second figure, for example understand a kind of alternative method, on arbitrary attribute axis, change mesh spacing, so that more grid cell is meticulousr, and concentrates on more for example by quantizing coordinate (3,2), (4,2), in the area that (3,3) and (4,3) surround.
The advantage of this adaptive mesh is a lot.As in this figure, can seeing, quantized regional Z adaptively.The chances are in regional Z, and four (4) grid cells do not carry out adaptive quantification, have 64 (64) grid cells at present.Such just as shown in this figure, may have three grid cells that part covers in advance although filter coverage information sS, only there is the grid cell Y of one (1) part covering according to adaptive mesh.Therefore, potential leakage rate is reduced significantly.In addition, if one or more quilts of 64 grid cells among the regional Z have partly covered, the potential leakage rate of each in these grid cells will be significantly less than the leakage rate among the grid cell Y that covers in part so.This is because the relaxation area of each in the grid cell that this part covers among the regional Z can be significantly less than the relaxation area among the grid cell Y of part covering.Therefore, can improve the efficient of CBR method 480 by using adaptive mesh.
Second method has the advantage that increases storage demand unlike first method, and this is because produce the grid cell of similar number.Yet, to compare with former approach, it also produces the accuracy of owing slightly.
Realize inquiry-response according to distribution-reservation architecture
Described herein is for using the publish-subscribe network to support to inquire about-the mutual serial of methods of respond style.Described method relates to from original abstract (just publication (being also referred to as notice) and subscribe) of distribution-subscription type to those inquiry-respond styles the different mappings of (advertisement just (being also referred to as provides), inquiry and respond).The additional use that changes single (singleton) advertisement of difference and inquiry (it characterizes single content item) and advertisement and query set (it characterizes a plurality of content items).
As mentioned above, in the publish-subscribe network, the content item that is called publication or notice is created and sent in publisher.In many systems, be the tuple of type attribute with these information structurings, and in some systems, be called the Main classification device of the discriminative attributes of theme as described notice.The subscriber creates and distribution is subscribed, and these are subscribed and characterize their interested notice.Notify normally single content item, use complicated expression formula to characterize one group of interested notice usually and subscribe.Identical entity can serve as publisher and subscriber.Undertaken alternately by allowing publisher that content item is pushed to the subscriber.This pushing-type is sent between reservation and notice and is observed the regular hour order; Specifically, only notify and mate, and do not mate with respect to reservation in the future with respect to the reservation of activity when notifying.
Multi-form is mutual, and inquiry-respond style is positioned under many universal distributed application, and described application comprises the content share system of web page search engine and end-end.In inquiry-response software application, the entity that is called the advertiser or the producer is made available content to other entities, open and described entity makes the existence of this content by following advertisement or supply people be learnt, described advertisement or supply characterize described entity the single or interested content item collection that can provide.Be called requestor or consumer's following inquiry of another entity broadcasts or request, described inquiry or request characterize single content item or interested content item collection.Described then application is responsible for locating the advertisement of coupling and in response they is delivered to the consumer.By allow the consumer with advertisement and content item the two itself together from the producer pull back carry out mutual.This pull-back is sent between advertisement and inquiry and is followed the regular hour order; Specifically, inquire about the response that only obtains about the advertisement of activity in inquiry for one, and do not obtain the response of relevant advertisement in future.
Embodiment described herein is used to use that the push-type of distribution-subscription supports to inquire about-respond alternately retracts the mutual serial of methods of type.Below describe and be used to realize its five illustrative methods.
1. Figure 24 A is the process flow diagram that illustrates the first inquiry-response method 600 that uses distribution-reservation system.Method 600 can use various distribution-reservation system to carry out.For example, method 600 can be in intelligent router 92 be carried out by processor 93 under the software control of (perhaps in the corresponding function that comprises in ASIC 91), and for example adopt as software module and realized that described software module is carried out by the processor in subscriber set 122 and 100 134 and 114 by agency's 128 and 105 representatives.
In method 600, use the publish-subscribe network to come match advertisements and inquiry, the advertiser uses to subscribe and registers single or set of advertisements (step 602) whereby, and the requestor uses publication/notice to distribute single query (step 604).In other words, single or set of advertisements are mapped to reservation, and single query is mapped to notice.The notice of any coupling is pushed to the advertiser by distribution-reservation system, and described distribution-reservation system uses described reservation (advertisement) as CBR (step 606) is carried out in the filtration of notice (inquiry).Described CBR can use above-mentioned foundation structure and carry out according to any said method.Non-distribution-the reservation means (for example via some for described advertiser, clean culture to described request person connects) or via the consensus convention of using the publish-subscribe network (for example, require requestor's registration independently to subscribe (corresponding to requestor's notice), receive described response, it is sent as notice), receive described notice and return response (step 608) to the requestor.
Figure 24 B is the precedence diagram that further illustrates method 600.Figure 24 B has described mutual between (for example using publisher's machine 100) advertiser, CBR foundation structure (for example network of intelligent router 92) and (for example, use subscriber's machine 122) requestor.Described precedence diagram is for example understood: a plurality of processors (for example, processor 93, processor 114 and processor 132) are manner of execution 600 preferably.
2. Figure 24 C is the process flow diagram that illustrates the second kind of inquiry-response method 610 that uses distribution-reservation system.Method 610 can use various distribution-reservation system to carry out.For example, method 610 can be in intelligent router 92 be carried out by processor 93 under the software control of (perhaps in the corresponding function that comprises in ASIC 91), and for example as by the employing software module of acting on behalf of 128 and 105 representatives realized that described software module is carried out by the processor in subscriber set 122 and 100 134 and 114.
In method 610, the producer uses relevant theme to content item is distributed in duplicate.The producer uses one of them (being called initial theme) release note (step 616) of a pair of theme of the initial ad of single content item.The producer uses this another right theme (being called theme in the past) to come release note, so that re-issue the advertisement (step 618) that those have been issued first with initial theme periodically.The consumer submits a reservation to initial theme to, so that receive new advertisement (step 612), and its submits to another reservation to the theme in past so that receive previous advertisement (step 614) of issuing.As selection, the consumer can only subscribe the advertisement of previous distribution.The advertisement (with the new advertisement under reservation status) of the previous distribution of coupling is used CBR and is pushed to consumer's (step 620).At certain point, the consumer determines to cancel the registration (step 622) to the reservation of the theme in past.
Figure 24 D is the precedence diagram that further illustrates method 610.Figure 24 D has described mutual between (for example using publisher's machine 100) advertiser, CBR foundation structure (for example network of intelligent router 92) and (for example, use subscriber's machine 122) consumer/requestor.Described precedence diagram is for example understood: a plurality of processors (for example, processor 93, processor 114 and processor 132) are manner of execution 610 preferably.
3. Figure 24 E is the process flow diagram that illustrates the third the inquiry-response method 630 that uses distribution-reservation system.Method 630 can use various distribution-reservation system to carry out.For example, method 630 can be in intelligent router 92 be carried out by processor 93 under the software control of (perhaps in the corresponding function that comprises in ASIC 91), and for example adopt as software module and realized that described software module is carried out by the processor in subscriber set 122 and 100 134 and 114 by agency's 128 and 105 representatives.
The publish-subscribe network has been replenished cache feature, such as aforesaid that, the high-speed cache notice (step 632) of issuing in the past and it can be used for subscriber in the future whereby.Producer's release note is so that be single content item advertisement (step 634).The consumer submits single reservation to so that inquire about interested content item of before having advertised (these content items are sent by the relevant notice of resetting from high-speed cache), and obtains the advertisement in future (step 636) of interested content item.As in traditional publish-subscribe network, described reservation characterizes one group of interested content item.The notice of the previous distribution of coupling is reset (step 638) from high-speed cache, and uses CBR that it is pushed to consumer's (step 640).
Figure 24 F is the precedence diagram that further illustrates method 630.Figure 24 F has described mutual between (for example using publisher's machine 100) advertiser, CBR foundation structure (for example network of intelligent router 92) and (for example, use subscriber's machine 122) consumer/requestor.Described precedence diagram is for example understood: a plurality of processors (for example, processor 93, processor 114 and processor 132) are manner of execution 630 preferably.
4. Figure 24 G and 24H are the process flow diagrams that illustrates the 4th kind of inquiry-response method 650 that uses distribution-reservation system.Method 650 can use various distribution-reservation system to carry out.For example, method 650 can be in intelligent router 92 be carried out by processor 93 under the software control of (perhaps in the corresponding function that comprises in ASIC 91), and for example adopt as software module and realized that described software module is carried out by the processor in subscriber set 122 and 100 134 and 114 by agency's 128 and 105 representatives.
Figure 24 G for example understands the data advertising stage of method 650.Receive a data advertisement (step 652).Subscribe the specifies query collection and allow the producer to use notice to come to advertise in order to allow the consumer to use for single content item, and in order to realize because of subscribing and the counter-rotating of the chronological order that this use of notice requires, carry out body (ontology) conversion, whereby the data advertisement is converted to equivalence and subscribes (step 654).With described reservation (data converted advertisement) to CBR network registry (for example, described reservation being stored in the intelligent router 92) (step 656).
Figure 24 H for example understands the inquiry-response phase of method 650.Receive inquiry (step 658).As the data advertisement above using, use the body conversion that described query transformation is equivalence notice (step 660).(for example data advertisement) at first is included in defined attribute the new space to the conversion of new space (for example equivalence is subscribed) from old space in step 654 and 660, and these attribute representatives come from the combination of the attribute and the expression solution symbol of old space.Described then conversion is included in and creates notice and reservation in the new space, and these notices and reservation are equivalent to the inquiry and the advertisement in old space respectively.Described conversion must be satisfied such requirement: during the match query of the data advertisement of not conversion that and if only and if conversion not, described notice just and described reservation coupling.
By distribution-reservation system described notice (inquiry of conversion) is pushed to advertiser's (step 662), described distribution-reservation system uses conduct that CBR is carried out in the reservation (the data advertisement of conversion) of the filtration of notice.Described CBR can use above-mentioned foundation structure and carry out according to any said method.Described advertiser is via certain non-distribution-reservation means or via the notice of the consensus convention receiving conversion of using the publish-subscribe network and return the data (step 664) of response to the requestor.
Figure 24 I is the precedence diagram that further illustrates method 650.Figure 24 I has described mutual between (for example using publisher's machine 100) advertiser, CBR foundation structure (for example network of intelligent router 92) and (for example, use subscriber's machine 122) requestor.Described precedence diagram is for example understood: a plurality of processors (for example, processor 93, processor 114 and processor 132) can manner of execution 650.
It below is the detailed description of body conversion.Below supposition is made with regard to understructure: an advertisement (advertisement) is an elements A ∈ A, causes A=V 1* V 2* ... * V m, V wherein iBe a data set (1≤i≤m) and A jBe used to refer to j A element (1≤j≤m); An inquiry (query) is a logical expression E ∈ Q, Q={E herein, E:A → B|E=(F and G) or E=(F or G) or E=A iα iv i, F, G ∈ Q, α i: V i* V i→ B, v i∈ V i; And, During E (A)=true (true) that it is generally acknowledged that and if only if, An inquiry E ∈ E just mates with advertisement A ∈ AEqually, also make following supposition: a notice (notification) is an element N ∈ N, causes N=V 1* V 2* ... * V n, V wherein iBe a data set (1≤i≤n), and N jRefer to j N element (1≤j≤n); A reservation (subscription) is a logical expression S ∈ S, S={S wherein, S:N → B|S=(F and G) or S=(F or G) or S=N iα iv i, F, G ∈ S, N ∈ N, α i: V j* V i→ B, v i∈ V i; And, It is generally acknowledged that and if only if S (A)=true time, notice N ∈ N just mates with reservation S ∈ S.With the mapping definition between A and the S, between Q and the N is a pair of function (MP AS, MP QN), MP AS: A → S, MP QN: Q → N causes for arbitrary A ∈ A and Q ∈ Q:
S=MP AS(A)
N=MP QN(Q)
S (N)=Q (A) is promptly: (MP AS(A)) (MP QN(Q))=Q (A)
As simplifying assumed condition, a query expression often is considered and includes only singular predicate (such as " A iα iv i") and the arbitrary query expression of " and " operational symbol can express and handle with the DNF form as each disjunct of inquiry independently).Next part is presented the exemplary map solution, at first particular case is used and then generalized case is used.
Single query mappings
Provide basic scheme, one of them inquiry comprises a singular predicate Q=A α v, and an advertisement tuple only comprises an element (being A=V), and α is the unique operational symbol that is the V definition, and described mapping problems becomes: N=MP QN(A α is and S=MP v) AS(A=a).Mapping for " A=a " advertisement and " A α v " inquiry is: S=" A αα -1A " and N=" A α=v ", wherein, α -1: V * V → B causes for x arbitrarily y ∈ V, " x α -1Y=y α x ".
There are a plurality of operational symbol α for working as 1, α 2... α nSituation, described mapping is: S=MP AS(A=a)=" (A α 1α 1 -1A) and (A α 2α 2 -1A) and...and (A α nα n -1And N=MP a) ", QN(A α kA)=" A α 1=null α 1, A α 2=null α 2..., A α k=a ..., A α n=null An", wherein, for any x ∈ V and i=1, n, x α i -1Null Ai=true.
Substituting mapping can be: S=MP AS(A=a)=" (A α 1α 1 -1A) or (A α 2α 2 -1A) or...or (A α nα n -1And N=MP a) " QN(A α kA)=" A α 1=null A1, A α 2=null A2..., A α k=a ..., A α n=null An", wherein, for any x ∈ V and i=1, n, x α i -1Null α i=false (false).
The query mappings of extracting
For a single operational symbol and an inquiry of extracting, described mapping seems as follows: A=" A=a ", Q=" (A α a 1) and (A α a 2) ... (A α a q) ", S=" A αα -1A ", and N=" A α=SUPER α(a 1, a 2..., a n) ", SUPER wherein α(a 1, a 2..., a n): V * V * ... → V, " (x α a 1) and (x α a 2) ... (x α a q) "<=" x α SUPER α(a 1, a 2..., a n) " and SUPER α(φ)=null aNote, for arbitrary operational symbol, do not guarantee function S UPER α (a 1, a 2..., a) there be (in fact, people can easily define the operational symbol that can't define its this character).Yet for most of general-purpose operation symbol, this function is that available (that is, for "<", it is MAX (..), for " in " ∪ (...), is a=a for "=" 1If/a 1==a 2The a of ...== nAnd can be null etc.
For a plurality of operational symbols and the inquiry of extracting, that mapping seems is following (our supposition: each operational symbol is used more than once---and how many examples are the previous case demonstrated can be reduced to this situation): A=" A=a ", Q=(A α xa α x) and (A α ya α y) ... (A α La α z) ", S=" (A α 1α 1 -1A) and (A α 2α 2 -1A) and...and (A α nα n -1A) ", and N=(..., A α k=null AiIf, α iBeing used by Q, perhaps can also be a α i...).
The generalized case mapping
Provide advertisement A and inquiry Q, A=" A 1=a 1, A 2=a 2... A n=a n", and Q=" ... and (A iα I ka i) and... ".Described mapping is as follows: S=" ... and (A Ikα Ik -1a i) and... ", wherein: i=1, n, wherein n=comes from the field number of described advertisement, and k=1, m i, m wherein i=operational symbol number that field type is supported, and N=" ..., A α k=SUPER α k({ a α k1, a α k2... }) ... ", a wherein α kiBe to appear at " A Ikα Ik -1a α ki" value of inquiry predicate inside of form, if for α IkThe words that have this element now.
Below be some examples of mapping transformation described herein.
Example 1
We consider a kind of simple stock market infosystem.Described message structure is described by 2 tuples (Symbol (symbol), Price (price)), and wherein Symbol belongs to character string type, and Price belongs to floating point type.Inquiry is formulated as the conjunct and/or the disjunct of primitive predicate, and wherein said predicate has following form: " Symbol==<string value〉" or " Price==:<float value〉".Described data set is:
A 1=(“IBM”,70.12),
A 2=(“LU”,5.30),
A 3=(" KKD ", 30.23), and
A 4=(“ATT”,5.30)。
Described inquiry is:
Q 1=(Symbol==“IBM”),
Q 2=(Symbol==" LU ") AND (Price==5.30), and
Q 3=(Symbol==“KKD”)OR(Price==5.30)。
Therefore, described match query (being described response) is:
Q 1:{A 1},
Q 2: { A 2, and
Q 3:{A 2,A 3,A 4}。
Distribution-reservation mapping for top inquiry-response is:
Notification scheme (Symbol==, Price==)
Reservation mapping to the data advertisement:
S 1=MP AS(A 1)=(Symbol ==“IBM”)AND(Price ==70.12),
S 2=MP AS(A 2)=(Symbol ==“LU”)AND(Price ==5.30),
S 3=MP AS(A 3)=(Symbol ===" KKD ") AND (Price ===30.23), and
S 4=MP AS(A 4)=(Symbol ==“ATT”)AND(Price ==5.30)。
Notice mapping to inquiry:
N 1=MP QN(Q1)=(“IBM”,*),
N 2=MP QN(Q2)=(" LU ", 5.30), and
N 31,N 32=MPQN(Q3)=(“KKD”,*),(*,5.30)。
Therefore, subscribing coupling is:
S 1:{N 1},
S 2:{N 2,N 32},
S 3: { N 31, and
S 4:{N 32}。
Described reciprocal notice coupling is:
N 1:{S 1}
Figure C0381218000811
MP QN(Q 1):{MP AS(A 1)},
N 2: { S 2}
Figure C0381218000812
MP QN(Q 2): { MP AS(A 2), and
N 31,N 32:{S 2,S 3,S 4}
Figure C0381218000813
MP QN(Q 3):{MP AS(A 2),MP AS(A 3),MP AS(A 4)}。
Example 2
We consider a kind of simple stock market infosystem once more.Described message structure is described by 2 tuples (Symbol (symbol), Price (price)), and wherein Symbol belongs to character string type, and Price belongs to floating point type.Inquiry is formulated as the conjunct and/or the disjunct of primitive predicate, and wherein said predicate belongs to following form: " Symbol==<string value〉" or " Price==<float value〉" or " Price><float value〉" or " Price<<float value〉".
Described data set is:
A 1=(“IBM”,70.12),
A 2=(“LU”,5.30),
A 3=(" KKD ", 30.23), and
A 4=(“ATT”,5.30)。
Described inquiry is:
Q 1=(Price>5.00),
Q 2=(symbol==" LU ") AND (Price<40.00), and
Q 3=(Symbol==“KKD”)OR(Price=5.30)。
Therefore, described match query (being described response) is:
Q 1:{A 1,A 2,A 3,A 4},
Q 2: { A 2, and
Q 3:{A 2,A 3,A 4}。
Described distribution-reservation mapping to above-mentioned inquiry-response:
Described notification scheme be (Symbol==, Price==, Price>, Price<).
Described reservation mapping to the data advertisement is:
S 1=MP AS(A 1)=(Symbol ==″IBM″)AND(Price ==70.12)AND(Price,<=70.12)
AND(Price >=70.12),
S 2=MP AS(A 2)=(Symbol ==″LU″)AND(Price ==5.30)AND(Price <=5.30)
AND(Price >=5.30),
S 3=MP AS(A 3)=(Symbol ==″KKD″)AND(Price ==30.23)AND(Price <=30.23)
AND (Price >=30.23), and
S 4=MP AS(A 4)=(Symbol ==″ATT″)AND(Price ==5.30)AND(Price <=5.30)
AND(Price >=5.30)。
The described notice mapping of inquiry is:
N1=MP QN(Q 1)=(*,*,5.00,∞),
N 2=MP QN(Q 2)=(" LU ", * ,-∞, 40.00), and
N 31,N 32=MP QN(Q 3)=(″KKD″,*,-∞,∞),(*,5.30,-∞,∞)。
Therefore, described reservation coupling is:
S 1:{N 1},
S 2:{N 1,N 2,N 32},
S 3: { N 1, N 31, and
S 4:{N 1,N 32}。
Described reciprocal notice coupling is:
N 1:{S 1}
Figure C0381218000821
MP QN(Q 1):{MP AS(A 1)},
N 2:{S 2}
Figure C0381218000822
MP QN(Q 2):{MP AS(A 2)},and
N 31,N 32:{S 2,S 3,S 4} MP QN(Q 3):{MP AS(A 2),MP AS(A 3),MP AS(A 4)}.
5. adopt the 5th method, replenish additional interface point and/or message format to described publish-subscribe network, described message format makes the producer can distinguish notice, advertisement and response, and makes the consumer can distinguish reservation and inquiry.Described network is followed the difference between the various primitive, uses consistent set of data structures, algorithm and agreement to realize two types mutual simultaneously simultaneously.
Lasting and reliable message is sent
Persistent storage message and recovery when embodiment described herein provides the node failure that is used in the face of network, link and/or publish-subscribe network, restart and/or equipment and method that continuation message flows.Message durability is storing message and the ability of retrieving them afterwards.The Email of a large amount of proprietary application-for example requires prolonged message durability usually for the message flow via network.Under ideal conditions, do not have in network under the situation of fault, the subscriber of Lian Jieing should be unable to need any persistence except the desired persistence of these proprietary application all the time.Yet, in fact, message can be because following a variety of causes and may " losing " when walking by network, described reason for example is: (1) occurs in the network or in the fault or the buffer overflows of user side, and perhaps (2) user disconnects network clearly and connects and reconnect after the cycle at certain hour.
The persistence model of the event notice platform of present embodiment is divided into two-stage, short-term persistence and long-term persistence.The short-term persistence is designed to from because recover the packet loss that network congestion or short-term link failure cause.Long-term persistence is designed to recover from other faults, and described other faults of example comprise that the user connects loses, fault, application and trouble and/or the long-term network failure of subscriber set.
Passage (for example aforesaid) can be lasting or real-time.A real-time channel sends and only is used for real-time data usually, and without any proprietary application persistence demand.The data that network reaches a persistence time frame T are walked in a persistence passage storage.In other words, the persistence of a persistence passage is guaranteed in a time frame T.The persistence of this data is for example to realize by following steps: in the duration of passage lasting at each fringe node cached data; Under fault condition from Cache to retrieve data the Cache of user transparent; Make that the user can explicitly retrieve data from Cache; By prevent router failure and between router, set up reliable tunnel come via network lasting carry out streams data; And avoid fault by the described channel part of copy protection.
A. the persistence by high-speed cache
Time persistence (having time frame T) is the ability from the final time frame T of described publish-subscribe network retrieve data.For example, if the subscriber leaves described network, so the subscriber not during keeping the inherent network of (from receiving what data began) time frame T in any data that received on the persistence passage.If the user returns in time frame T, the user just can not lose any data so.
Figure 25 A is the block diagram that illustrates some parts that the persistent publish-subscribe network by high-speed cache is provided.As shown in the figure, described network comprises core routing node and edge routing node.Preferably, each routing node comprises intelligent router 92 (illustrating with the edge routing node) and conventional P (not shown), as mentioned described in Fig. 4.Need each intelligent router 92 of persistence passage execution high-speed cache preferably be had with its cache manger that is positioned at 218, as shown in Figure 25 A.Described cache manger 218 is as above described with reference to Fig. 8.Described intelligent router 92 preferably is responsible for the short-term persistence, so that data that retrieval is lost or recover from router failure.Described cache manger 218 is responsible for cached datas so that provide long-term persistence for passage.Cache manger 218 is preferably in Cache 540 these data of high speed buffer memory.Described Cache 540 preferably includes storer and dish (not shown).Also show agency 128 among Figure 25 A, it preferably resides in subscriber's machine 122 (not shown among Figure 25 A), and is as shown in Figure 5.Described agency 128 is responsible for communicating by letter with cache manger 218, so that from Cache 540 retrieve data, receives institute's data retrieved and is used to organize described data retrieved.
Though not shown among Figure 25 A, preferably all comprise cache manger 218 from upstream each the one-level core routing node of described edge routing node.The upstream is the direction (that is, away from described subscriber's machine 122) that moves away from described agency 128.The upstream core routing node of the first order refers to from the direct upstream routing node of described edge routing node.Though the publish-subscribe network often comprises a plurality of one-levels upstream core routing node, Figure 25 A has only described an one-level upstream core routing node, and promptly the core routing node 548.As mentioned above, cache manger 218 provides local cache for the data at the network node place that it was positioned at.Therefore, be positioned at various core routing nodes-for example comprise the operation of the cache manger 218 of core routing node 548, for the data that spread all over network core provide distributed cache.This distributed cache provides backup for the high-speed cache at the edge routing node.
Cache manger 218 preferably includes routine or the subroutine of being in charge of Cache 546.These routines preferably include cached data routine 545, remove (purge) cached data routine 547 and retrieval cached data routine 549, as shown in Figure 25 B.In these routines each can be operated independently, perhaps as shown in the figure, also can communicate by letter each other and/or transfers control.
Figure 25 C is the process flow diagram that illustrates the exemplary method of the persistence high-speed cache 550 of the data that comprise in single message.As shown in the figure, described method 550 shows the exemplary step execution that each routine is carried out shown in Figure 25 B., the operation preferably independent of each other in operation of these routines.Method 550 can be at intelligent router 92, in edge routing node or the execution of core routing node place, and it provides high-speed cache.
Described method 550 for example can adopt software module (for example cache manger 218) to be realized that described software module is carried out by the processor in the intelligent router 92 93.As selection, it can adopt ASIC or combination of hardware to be realized, is perhaps realized in the physical equipment identical or different with corresponding intelligent router 92.Described intelligent router 92 is being forwarded to cache manger 218 by cached messages.Described cache manger 218 receives the message (step 552) that comprises data, add time mark (step 554) for the data in the message, and the Cache 546 described data of high speed buffer memory (step 556) (being similar to the step 322-326 (referring to above) among Figure 14).Described cache manger 218 is the data (step 558) of indexes cached in many ways, for example gap marker symbol, theme, publisher's identifier, timestamp or the like, as mentioned above.Described index step 558 can or be carried out after it before high-speed cache step 556, with its while.Can index to the data of high-speed cache and it is stored in (for example referring to Figure 15) in the hierarchical directory structure.Also referring to table 17-19.
With described data cache in storer (described Cache 546) and periodically it is moved on to (step 560) in the dish.To be divided into N time granularity for the duration frame " T " of special modality, each size is G.In storer, carry out high-speed cache and can only reach duration G (step 556).Cache manger determine time interval G over and done with after (step 559), data are moved on to described dish (step 560).Cache manger 218 is being stored data for the duration of lasting timeout interval T on the described dish.
In case time interval G becomes greater than overtime lastingly (T) of described passage+interval upper limit (step 562), just will delete (step 564) from described dish corresponding to the data of described time.In order better to understand these, suppose that passage has 2 hours T.As an example, described cache manger 218 uses 15 minutes time granularity G.For deleted data from described dish, preferably the strategy of Shi Yonging is: when the final data of high-speed cache during time interval G (15 minutes) has been stored T (2 hours), so 15 minute interim high-speed cache whole data will be dropped.Therefore, the data of the high-speed cache when beginning at interval in 15 minutes had been stored than 2 hours longer time before with its deletion.In this example, the data of high-speed cache are data blocks 15 minute interim in each.If duration frame T is divided into N at interval, so in Cache 540, random time point is gone up each theme will have N+1 data block (have on the dish in the individual and storer of N and have 1).
If described cache manger 218 receives requests for data (step 566), so described cache manger 218 uses described index (step 568) to retrieve the data of the high-speed cache of being asked (time T is not also not in the past), and pass on institute's data retrieved to P, so that route to subscriber's machine 122 (step 570) of request.As described below, with reference to Figure 25 D, if described data are at the Cache 540 at edge routing node place, cache manger 218 can be enabled the Cache that the upstream core routing node (for example at core routing node 548) of the first order locates and comes retrieve data so.If described cache manger 218 does not receive a request, method 550 circulations are back to step 552 so.
In order to prevent fault at the cache manger 218 at given intelligent router 92 places, except that storage data in Cache 546, also with data storage in the Cache of the upstream of first order core routing node (for example, the core routing node 548).Therefore, step 552-564 preferably is routed to the edge routing node and before routing node place, described edge manner of execution 550, the core routing node is carried out in the upstream of the first order in described message.
The position of the Cache that the upstream core routing node (for example at the first upstream core router 548) of (for example the edge routing node place) Cache 546 and the first order is located is stored locally among the agency 128.Therefore, if described subscriber's machine 122 moves (for example the subscriber is the mobile subscriber who is connected with network again at different edges routing node), act on behalf of 128 positions that the Cache of the first order upstream core routing node that described edge routing node and subscriber's machine 122 be connected thereto will be provided to new edge routing node so before moving.Even making subscriber's machine 122 like this moves also and can safeguard persistence.
Shown in Figure 25 D, the method flow diagram that it shows lasting message retrieval 580, the user who is in subscriber's machine 122 uses 182 and preferably enables agency 128 and come request msg (step 582) from described Cache.Agency 128 uses the Cache position of storage to come (for example using the getcache order) to enable the Cache 546 that is in suitable edge routing node and obtains data (step 584).Agency 128 can indicate the when frame of wanting retrieve data.As selection, cache manger 218 can check that the connection history (referring to top table 18) of subscriber's machine 122 is so that determine to retrieve the data of which type of high-speed cache.If described connection history show subscriber's machine 122 off-line the X time cycle, cache manger 218 can be retrieved whole effectively cached datas of corresponding X so.In addition, the data of the whole high-speed caches of described cache manger 218 in can a retrieves persistent time frame T.If edge routing node Cache 546 has described data (step 585), act on behalf of 128 so just from Cache 546 retrieval described data (step 586).
If Cache 546 does not have described data, cache manger 218 uses the Cache of the upstream routing node (for example the core routing node 548) of agency's 128 first order that provide to tabulate to enable these upstream Caches and locatees described data (step 588) so.In case cache manger 218 is located described data in one or more Caches of upstream, described cache manger 218 is retrieval described data (step 590) from the Cache of upstream just.Forwarding the data to before agency's 128 (steps 594), cache manger 218 can be carried out and repeat to suppress (promptly deleting the data of repetition) (step 592).
B. the persistence by emergency protection
The foundation structure consistent with present embodiment has following assembly or equivalent elements: channel manager; The event agent; And routing node and Cache.In order to prevent to lose message during fault condition, each in these assemblies needs protected.
1. channel manager emergency protection
Above with reference to Fig. 6 channel manager has been described.Prevent described channel manager fault by duplicating.Described channel manager is operated in main backup group, wherein has a primary module and another backup module.Described primary module is responsible for all renewals of data and the response to inquiring about.Inquiry can be only served in described backup, and does not carry out renewal.It is transmitted all and is updated to primary module.
Need be called the channel manager client from the assembly that channel manager is retrieved the publish-subscribe network of channel information, and distribute a channel manager to it.These clients comprise intelligent router 92 and their cache manger 218 and subscriber's machine 122 and their agency 128.If distribute to the channel manager fault of client, so described another channel manager of client-access and be connected with it.
2. router and Cache emergency protection
For the route infrastructure component, there are several level restorations.(0 grade, 1 grade, up to 3 grades).0 grade of local fault effects of control (being in the router of fault), and described recovery also is confined in the routing node of fault.0 level restoration depends on hardware redundancy so that recover from hardware fault.Hardware resource in the router is duplicated.The main advantage of 0 level restoration is that release time is short and transparent.1 grade of interior fault effects of control LAN.1 level restoration can use clustering technique to shift according to the IP fault and realize.Yet the router of a fault must be rebuild after recovering to the tunnel of its adjoint point.Therefore, 1 level restoration transparency is lower, and longer than 0 level restoration spended time.
The scope of 2 level restorations is to come restoration route device fault by the remote backup router on WAN, and does not influence network topology, and this may cause complicated reconfiguring and loss of data.Can realize to form a recovery collection (backup router of for example advocating peace) by minute router for 2 grades.A router can be an active router in the group, can also be the backup router in another group.Described active router and backup router exchange route and network configuration, and when described backup router detected the fault of active router, it took over the function of active router.Described backup router can be connected to the contiguous active router of major part of the active router of described fault by guaranteeing it, thereby has guaranteed the active router of fault, and does not guarantee the link of active router.If it can not be guaranteed, just trigger 3 level restorations.
3 grades of coordinates that can comprise system-wide on the contrary recover.When other all faults, can use 3 level restorations.The router that detects this fault sends to all downstream routers restarts notice.Receive the every other recovery of the router hang of described notice and stop the all-network service, and abandon all hyperchannel broadcast messages of restarting in the message.After stopping the all-network service, described router is restarted all services, comprises the structure tree process for hyperchannel broadcasting.Any fault in the network is handled by more low-level rejuvenation.If recover and can't use than low level, so progressively raising returns to next higher level.If do not resume work, use 3 level restorations so than low level.
3. reliable tunnel
In order to prevent to lose message during network failure, the service-strong tunnel supports the traffic between the routing node.The tunnel has been described in the narration of Fig. 3.All message of losing during sending detect by receiving end, the message of asking the sender to resend then to lose.
Though described the present invention in conjunction with exemplary embodiment, very clear, many modifications are apparent for those skilled in the art, and these intended application are to contain all scope of applications and its variation.For example, without departing from the present invention, can use various forms of publishers machine, user or subscriber's machine, passage and structure thereof, and the hardware and software implementation of content-based route and other functions.Scope of the present invention only by claims with and the equivalence limit.

Claims (23)

1. one kind is used for carrying out distribution-reservation method of operating on insecure network, comprising:
Use the reservation of network reception to content; And
Use network to come issued content, comprising based on reservation to content:
Reception is about the notice of the content of the node in the network;
Determine whether and to be forwarded to adjacent node to described notice; And
Determine that based on described the service-strong host-host protocol is forwarded to adjacent node to described notice selectively; The wherein said step of transmitting selectively is included in to transmit in the described notification procedure and receives indicating fault, and transmits described notice again in response to described indication.
2. the method for claim 1, wherein said forwarding step comprise transmits the grouping that is packaged with described notice.
3. the method for claim 1, wherein said forwarding step comprise uses Internet protocol to transmit described notice.
4. the method for claim 1, wherein said forwarding step comprises that be that described notice is transmitted on the basis with individual node to individual node.
5. the method for claim 1, wherein said determining step comprise determines whether described content satisfies the one or more standards to the reservation of content.
6. the method for claim 1, wherein said forwarding step comprise uses router that described notice is forwarded to adjacent node.
7. the method for claim 1, also being included in the network with the node-to-node is that described distribution steps is repeated on the basis, up to described notice is forwarded to the corresponding one or more subscribers of described reservation till.
8. the method for claim 1, the wherein said step of transmitting is selectively used transmission control protocol.
9. a router that is used for carrying out distribution-reservation operation on insecure network comprises being used to carry out the module of method according to claim 1.
10. one kind is used to carry out the wide area network that distribution-reservation is operated, and comprising:
One or more subscriber's machines; And
A plurality of routers, each of wherein said a plurality of routers all comprises:
Subscribe receiver module, wherein said reservation receiver module via described wide area network receive corresponding with one or more subscriber's machines, to the reservation of content; And
The distribution module, wherein said distribution module comprises:
The notice receiver module, wherein said notice receiver module receives the notice about the content of the node in the network;
Content-based routing module, wherein said content-based routing module determine whether and will be forwarded to adjacent node to described notice; And
Reliable forwarding module, wherein said reliable forwarding module based on describedly determine, the service-strong host-host protocol is forwarded to adjacent node to described notice selectively;
Wherein said a plurality of router is transmitted described notice selectively and reliably, till described notice being forwarded to and subscribing corresponding one or more subscriber's machine, if and fault is transmitted in existence between router and adjacent node, this router just receives the indication of described forwarding fault so, and again described notice is forwarded to different adjacent nodes in response to described indication.
11. one kind is used for carrying out distribution-reservation method of operating on insecure network, comprises:
Via the reservation of network reception to the content of the first node in the network;
Reception is about the notice of the content of the first node in the network;
Use described reservation to content according to content-based route, determine whether and to be forwarded to the Section Point contiguous to described notice with first node;
Based on describedly determine, the service-strong host-host protocol is forwarded to Section Point to described notice selectively;
Transmit fault if between first node and Section Point, exist, so just receive the indication of described forwarding fault, and
Again described notice is forwarded to Section Point in response to described indication.
12. method as claimed in claim 11, also be included in transmit before the step selectively, the step of the described notice of buffering in impact damper.
13. method as claimed in claim 12 also comprises the step that moves to second-level storage after after a while, the notice that is cushioned.
14. method as claimed in claim 12 also comprises the step based on first in first out, the notice that cushioned of deletion.
15. method as claimed in claim 12 also comprises the step based on service quality, the notice that cushioned of deletion.
16. method as claimed in claim 11 also is included in the first node place described notice is cached at step in the Cache.
17. method as claimed in claim 11, the wherein said step of transmitting is reliably used transmission control protocol.
18. one kind is used on insecure network carrying out the router that distribution-reservation is operated, and comprises the module that is used to carry out as method as described in the claim 11.
19. a wide area network that is used to carry out distribution-reservation operation comprises:
One or more subscriber's machines; And
A plurality of routers, each of wherein said a plurality of routers all comprises:
Subscribe receiver module, wherein said reservation receiver module use described wide area network receive corresponding with one or more described subscriber's machines, to the reservation of the content of the first node in the wide area network;
The notice receiver module, wherein said notice receiver module receives the notice about the content of first node;
Content-based routing module, wherein said content-based routing module determine whether and will be forwarded to receiving node in the wide area network to described notice that wherein said receiving node can be another router or subscriber's machine; And
Reliable forwarding module, wherein said reliable forwarding module based on describedly determine, the service-strong host-host protocol is forwarded to receiving node to described notice selectively;
Wherein said a plurality of router is transmitted described notice selectively and reliably, up to described notice is forwarded to the reservation of content till corresponding one or more subscriber's machines, if and fault is transmitted in existence between forwarding router and receiving node, so described forwarding router just receives the indication of described forwarding fault, and again described notice is forwarded to receiving node in response to described indication.
20. network as claimed in claim 19, wherein said reliable forwarding module uses transmission control protocol.
21. one kind is used for carrying out distribution-reservation method of operating on insecure network, comprises:
The service-strong host-host protocol is set up reliable tunnel between two adjacent nodes;
Via the reservation of network reception to the content of first adjacent node in described two adjacent nodes in the network;
Reception is about the notice of the content of described first adjacent node in described two adjacent nodes in the network;
Use described reservation to content according to content-based route, determine whether and to be forwarded to second adjacent node in described two adjacent nodes in the network to described notice;
Determine, use described reliable tunnel selectively described notice to be forwarded to second adjacent node in described two adjacent nodes in the network based on described;
Transmit fault if between described two adjacent nodes, exist, so just receive the indication of described forwarding fault, and
Again described notice is forwarded to second adjacent node in described two adjacent nodes in response to described indication.
22. one kind is used on insecure network carrying out the router that distribution-reservation is operated, and comprises the module that is used to carry out as method as described in the claim 21.
23. one kind is used for carrying out distribution-reservation network operating, comprises a plurality of routers as claimed in claim 22.
CNB038121808A 2002-03-28 2003-03-28 Method and apparatus for reliable and efficient content-based routing and query and response in a publish-subscribe network Expired - Lifetime CN100458767C (en)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US36910502P 2002-03-28 2002-03-28
US36883102P 2002-03-28 2002-03-28
US36883302P 2002-03-28 2002-03-28
US36887002P 2002-03-28 2002-03-28
US60/368,831 2002-03-28
US60/368,833 2002-03-28
US60/368,870 2002-03-28
US60/369,105 2002-03-28
US36983202P 2002-04-03 2002-04-03
US60/369,832 2002-04-03
US44778203P 2003-02-19 2003-02-19
US60/447,782 2003-02-19

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNA2008100915804A Division CN101312457A (en) 2002-03-28 2003-03-28 Method, router, apparatus and the network used in a publish-subscribe network

Publications (2)

Publication Number Publication Date
CN1656474A CN1656474A (en) 2005-08-17
CN100458767C true CN100458767C (en) 2009-02-04

Family

ID=28679208

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038121808A Expired - Lifetime CN100458767C (en) 2002-03-28 2003-03-28 Method and apparatus for reliable and efficient content-based routing and query and response in a publish-subscribe network

Country Status (6)

Country Link
EP (1) EP1969480A4 (en)
JP (2) JP2005521950A (en)
KR (1) KR100971506B1 (en)
CN (1) CN100458767C (en)
AU (1) AU2003218455A1 (en)
WO (1) WO2003083703A1 (en)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574408B2 (en) * 2006-05-05 2009-08-11 Microsoft Corporation Publisher unions
CN101668031B (en) 2008-09-02 2013-10-16 阿里巴巴集团控股有限公司 Message processing method and message processing system
JPWO2010090027A1 (en) * 2009-02-05 2012-08-09 日本電気株式会社 Broker node and event topic control method in distributed event delivery system
EP2471242B1 (en) 2009-08-25 2015-06-10 Telefonaktiebolaget L M Ericsson (PUBL) Method and apparatus for handling subscriptions to changes in user data in a telecommunications system
US9720681B2 (en) * 2011-07-20 2017-08-01 Data I/O Corporation Device programming system with data broadcast and method of operation thereof
US8750309B2 (en) * 2012-02-29 2014-06-10 Telefonaktiebolaget L M Ericsson (Publ) Compound masking and entropy for data packet classification using tree-based binary pattern matching
US9886210B2 (en) * 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US9602455B2 (en) * 2015-08-07 2017-03-21 Machine Zone, Inc. Scalable, real-time messaging system
JP6547580B2 (en) 2015-10-20 2019-07-24 富士通株式会社 Distributed control method, distributed control system, and distributed control program
US20190052717A1 (en) * 2016-02-18 2019-02-14 Nec Corporation Communication system, edge server, method, and storage medium
US10129360B2 (en) * 2016-03-28 2018-11-13 The Boeing Company Unified data networking across heterogeneous networks
JP6665697B2 (en) 2016-06-09 2020-03-13 富士通株式会社 Past information providing program, past information providing method, and past information providing device
US9608928B1 (en) * 2016-07-06 2017-03-28 Machine Zone, Inc. Multiple-speed message channel of messaging system
KR102031726B1 (en) * 2017-11-16 2019-10-14 경북대학교 산학협력단 OPERATING METHOD FOR INTERNET OF THINGS SYSTEM BASED ON CoAP USING DISTRIBUTED PUBLISH-SUBSCRIBE TECHNIQUE
KR102033500B1 (en) * 2017-12-26 2019-11-08 경희대학교 산학협력단 Packing Routing method by Edge Cloud in Distributed Cloud System
JP6750646B2 (en) 2018-06-07 2020-09-02 トヨタ自動車株式会社 In-vehicle device, information processing method, and information processing program
KR102339661B1 (en) * 2018-09-28 2021-12-14 (주)구름네트웍스 Gateway Devices For DDS
KR102279601B1 (en) * 2018-09-28 2021-07-19 (주)구름네트웍스 Method Of Gateway For DDS
US11580165B2 (en) * 2019-08-06 2023-02-14 Twitter, Inc. Event producer system of a messaging platform for delivering real-time messages
US11714694B2 (en) * 2019-11-08 2023-08-01 Salesforce, Inc. Error notification mechanism for streaming events
KR102527601B1 (en) 2021-04-02 2023-05-02 이상규 Method for chatting messages by topic based on subscription channel reference in server and user device
CN113783838B (en) * 2021-08-05 2024-02-06 山东有人物联网股份有限公司 Subscription method, subscription control device and computer readable storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010052015A1 (en) * 1998-06-24 2001-12-13 Chueng-Hsien Lin Push-pull sevices for the internet
US20010050908A1 (en) * 1998-10-19 2001-12-13 Markku Verkama Mechanism for network-initiated information transfer
WO2002015474A2 (en) * 2000-08-16 2002-02-21 Semandex Networks Inc. High-performance addressing and routing of data packets with semantically descriptive labels in a computer network

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08153054A (en) * 1994-11-28 1996-06-11 Mitsubishi Electric Corp File transfer system
US6065058A (en) * 1997-05-09 2000-05-16 International Business Machines Corp. Dynamic push filtering based on information exchanged among nodes in a proxy hierarchy
JP3307587B2 (en) * 1998-05-08 2002-07-24 日本電気株式会社 Middleware stored data updating method and server system executing the method
US6415027B1 (en) * 1998-08-12 2002-07-02 Bellsouth Intellectual Property Corporation Networks, systems and methods for intelligently routing traffic within a telephone network
WO2000019680A2 (en) * 1998-09-17 2000-04-06 Tod Mcnamara System and method for network flow optimization using traffic classes
US6252862B1 (en) * 1999-05-20 2001-06-26 Motorola, Inc. Method and apparatus for routing packet data in a communications system
JP4374094B2 (en) * 1999-06-14 2009-12-02 株式会社ジャストシステム Information processing apparatus, information processing method, and computer-readable recording medium recording a program for causing a computer to execute the method
US6539396B1 (en) * 1999-08-31 2003-03-25 Accenture Llp Multi-object identifier system and method for information service pattern environment
JP3679289B2 (en) * 1999-12-06 2005-08-03 株式会社日立製作所 Data relay method by gateway device
DE10000223A1 (en) * 2000-01-05 2001-07-12 Basf Ag Microcapsules which are useful in, e.g. detergent or skin care compositions, can release a fragrance from a hydrophobic core when the polymer coating of the capsule is broken down
EP1130845A3 (en) * 2000-02-18 2001-09-12 Agilent Technologies Inc. a Delaware Corporation Publish/subscribe system
GB2363216A (en) * 2000-03-08 2001-12-12 Ibm Publish/subscribe data processing with subscriptions based on changing business concepts
JP2001256098A (en) * 2000-03-09 2001-09-21 Hitachi Ltd Method for controlling cache in proxy server
KR20010107151A (en) * 2000-05-25 2001-12-07 반창모 Multi-purpose multi-media kiosk with computer network and its service method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010052015A1 (en) * 1998-06-24 2001-12-13 Chueng-Hsien Lin Push-pull sevices for the internet
US20010050908A1 (en) * 1998-10-19 2001-12-13 Markku Verkama Mechanism for network-initiated information transfer
WO2002015474A2 (en) * 2000-08-16 2002-02-21 Semandex Networks Inc. High-performance addressing and routing of data packets with semantically descriptive labels in a computer network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
计算机网络中的Push技术. 李明,陈苏,张雨,张根度.计算机工程,第26卷第6期. 2000 *

Also Published As

Publication number Publication date
EP1969480A1 (en) 2008-09-17
EP1969480A4 (en) 2008-12-03
AU2003218455A1 (en) 2003-10-13
KR20040102061A (en) 2004-12-03
JP2009163753A (en) 2009-07-23
WO2003083703A1 (en) 2003-10-09
CN1656474A (en) 2005-08-17
JP2005521950A (en) 2005-07-21
KR100971506B1 (en) 2010-07-21

Similar Documents

Publication Publication Date Title
CN100458767C (en) Method and apparatus for reliable and efficient content-based routing and query and response in a publish-subscribe network
US7551629B2 (en) Method and apparatus for propagating content filters for a publish-subscribe network
US7376092B2 (en) Method and apparatus for implementing persistent and reliable message delivery
US8521770B1 (en) Method for distributed RDSMS
US7627603B2 (en) Method and apparatus for implementing query-response interactions in a publish-subscribe network
Carzaniga et al. Achieving scalability and expressiveness in an internet-scale event notification service
CN1701304B (en) System, method and apparatus for inspecting packet routing via payload in a publish-subscribe network
US7653753B2 (en) Method and apparatus for content-based packet routing using compact filter storage and off-line pre-computation
US7545805B2 (en) Method and apparatus for content-based routing and filtering at routers using channels
US20040076155A1 (en) Caching with selective multicasting in a publish-subscribe network
US6910033B2 (en) Method for storing Boolean functions to enable evaluation, modification, reuse, and delivery over a network
US20040078450A1 (en) Packet routing via payload inspection for digital content delivery
CN101312457A (en) Method, router, apparatus and the network used in a publish-subscribe network
JP2008211835A (en) Packet routing via payload inspection and subscription processing in publish-subscribe network
US20030154302A1 (en) Method for sending and receiving a boolean function over a network
Papaemmanouil et al. Semantic multicast for content-based stream dissemination
Pallickara A Grid event service
Yang et al. Resource discovery in federated systems with voluntary sharing
Shen Techniques for building a scalable and reliable distributed content-based publish/subscribe system
KR20040039288A (en) Packet routing via payload inspection and subscription processing in a publish-subscribe network
Mahajan Towards supporting mobility and advanced semantics in Event based systems
Pandurangan Stochastic analyses of dynamic computer processes
Nath Exploiting redundancy for robust sensing
Huang et al. Routing Mechanism for Active Publish Subscribe System Based on Event Space Partition
Zhao Efficient content-based publish/subscribe systems for dynamic and large-scale networked applications

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
CX01 Expiry of patent term

Granted publication date: 20090204

CX01 Expiry of patent term