CN1656474A - 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
CN1656474A
CN1656474A CNA038121808A CN03812180A CN1656474A CN 1656474 A CN1656474 A CN 1656474A CN A038121808 A CNA038121808 A CN A038121808A CN 03812180 A CN03812180 A CN 03812180A CN 1656474 A CN1656474 A CN 1656474A
Authority
CN
China
Prior art keywords
filtration
network
notice
module
data
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.)
Granted
Application number
CNA038121808A
Other languages
Chinese (zh)
Other versions
CN100458767C (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 at public reservation network reliably and the method and apparatus that carries out efficiently content-based routing, inquiry and response
Quoting of related application
The application has required the 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 " Reliable Publish/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/Subscribe Network " 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 a Publish/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-Response Interactions On a Publish-Subscribe Infrastructure By Mapping Data Advertisements 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 and Apparatus 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 Using Compact Filter Storage and Off-Line Pre-computation; Reliable Publishing and Subscribing Implementing Persistent and Reliable Message Delivery; and Implementing Query-Response Interactions By Mapping Data Advertisements as Subscriptions and Queries as Notifications in a Publish-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 " Packet Routing ViaPayload Inspection "; The 10/199th, No. 368 U.S. Patent application that is entitled as " Method And Apparatus For Content-Based Routing And Filtering At Routers Using Channels "; The 10/199th, No. 439 U.S. Patent application that is entitled as " Method For 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 Functions To Enable Evaluation, Modification, Reuse, And Delivery Over A Network "; And be entitled as " Efficient Implementation of Wildcard Matching On Variable-Sized Fields In Connect-Based Routing " the 10/199th, No. 388 U.S. Patent applications, these applications are all applied on July 19th, 2002.
Background of invention
The network bandwidth increases by index law ground. Yet network infrastructure (comprising router, server, demons, agreement etc.) is still used relatively old technology. Therefore, 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 complexity 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 transfer of data 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 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 mode is carried out above-mentioned these operations for publisher and subscriber.
Because in distribution-subscription model, greatly reduced the complexity of server, therefore, difference between heavyweight server and the lightweight client begins to disappear, exactly, be merged into the concept of a peer-to-peer, this peer-to-peer can be publisher or subscriber or both. 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 event. For example, the investor buys or sells stock, makes the price of stock change. Accident on highway makes the traffic jam on the highway. Security breaches in the software systems are found, and cause the User Exploitation patch for software. The player uses weapon-shooting in Internet Game, make another player's incarnation dead. All these exemplary phenomenons all are events, and these events are that a large amount of subscribers are interested potentially, and can be via Internet communication in order to notify the generation of those subscriber's events. Thus, event is self-contained, brief information unit, and they relate on network a certain place and in the possible more interested things that occur sometime.
Other example relates to the broadcasting that has 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 event is unpredictable and is at random. At first, described event is arranged at known time and occurs. The second, one event needs not be brief information 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, the route that server or publisher carry out network determines, 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 in order to identify arbitrary coupling. If described content (event) 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 event of all distribution.
Along with the larger 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 efficient method to make the route decision and the event that determines when satisfies reservation, alleviate thus the burden of publisher. Therefore, general, lasting Event Notification Service can be used and other application and realization provide huge value-rising for the internet.
Summary of the invention
Provide a kind of for 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 specific standard, and propagate the filtration of decreased number in order to satisfy described reservation.
Provide a kind of for realizing the method and apparatus that inquiry-response is mutual at the publish-subscribe network. 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 be used to the message that sends via network is provided is provided. Via described network receipt message. Store described message so that after a while retrieval. The fault that response relates to network provides lasting and reliable message delivery.
The accompanying drawing summary
A part of accompanying drawing being incorporated and consisted of into this specification, 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 that illustrates for publisher and subscriber's intelligent router.
Fig. 3 is the figure that illustrates for the network infrastructure of 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 for connecting 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 flow chart of publisher's method.
Figure 11 is the flow chart of subscriber's method.
Figure 12 is the figure of passage and subscriber's screen.
Figure 13 is based on the flow chart of the method for routing of content.
Figure 14 is the flow chart of cache method.
Figure 15 is the figure that illustrates cache index.
Figure 16 is the flow chart be used to the Proxy Method of the message of going out.
Figure 17 is the flow chart be used to the Proxy Method of the message of coming in.
Figure 18 is the figure that illustrates the example of message coding.
Figure 19 is the figure for the database structure of storage reservation.
Figure 20 is the flow chart of wildcard method.
Figure 21 is the flow chart for the method for notifying at publish-subscribe network transmitting.
Figure 22 A is the flow chart that filters transmission method.
Figure 22 B is the flow chart that filters methods to reduce noises.
Figure 22 C is another flow chart that filters transmission method.
Figure 22 D is the figure of publish-subscribe network topology.
Figure 23 A-23B is the flow chart that uses precalculated content-based routing method.
Figure 24 A is the flow chart that uses 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 the flow chart that uses 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 the flow chart that uses 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 the flow charts that uses 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 flow chart of persistent cache method.
Figure 25 D is the flow chart of permanent message search method.
Describe in detail
General introduction
Event notice systems a kind of internet-scale or other distributed network-scales provide realization high-power and flexibly distribution-reservation networking for application. In this system, application program use case notification application interface (API) comes release note and/or reservation and reception about the notice of network internal generation event.
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. Dependency can both be found in for all notices of the theme of same train meaning, 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 arbitrarily attribute, in order to 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 be by providing the good much more expression formula that can finely tune of interest in the content-based filtration of notification properties regulation. For example, the subscriber may subscribe and have symbol and equal SNE and price greater than all notices (the general sale opportunity that shows the stock that the subscriber has) of 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 sends so simple thing of Email, 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 marketable 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, in order to 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. Realize a mode of this operation often to the described notice of broadcasting a little of network, then allow application proxy judge whether described notice is relevant with their subscriber. 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 processing so much notice.
The example networks of system is more effective according to the mode of its route notice. At first, it can guarantee that notice is for example propagated once at most via any link in the network with the multicast route. The second, it can adopt a large amount of senior optimization to reduce as much as possible the propagation of notice 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 distribution-reservation network. The publish-subscribe network comprises for the network that data or content is routed to any type of subscriber from publisher. 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 is determined route or forwarding messages. 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 event, described event is subscriber's event that receives from publisher interested. To generate routing rule according to described filtration, and make the route decision by intelligent router with described routing rule.
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, until whole group of filtering exhausted or obtained the decision of strictly all rules any one at first arrive.
The content-based routing of this class intelligence in network core provides the real time data of for example alarm and renewal to send. The example of sending for the real time data of alarm comprises, still is 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 of be used for upgrading 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 understands that for example utilizing theme and predicate (predicate) to store subscribes for filtration. According to expectation or demand, can they be stored in the network Anywhere according to the data structure of any type. As explained later, described predicate is the component of subscribing. Described reservation can represent in any way that the below provides its example.
Table 1
Subscribe 1 Theme 1 Predicate 1
    ...
Subscribe N Theme N Predicate N
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 for any type.
Table 2
Opening quotation server example
Subject tree Quotes.NYSE Quotes.AMEX Quotes.NASDAQ Distribution theme=Quotes.NYSE attribute symbol=SNE price=51 quantity=1000000
Attribute symbol price quantity Subscribe theme=Quotes.NYSE and filter (Symbol=SNE)
Described predicate provides Boolean expression for reservation, and themes as described reservation passage indication is provided. Reservation can represent with multiple different mode. Using Boolean expression is one of this example, and for content-based routing provides described reservation easily is converted to the ability that theme filters and attribute filters. As selection, reservation not referenced subject matter represents; But, use theme or passage (following further explanation) to be provided for explaining and attribute being used the environment of filtration.
Described route determines and can realize in network core, and spreads all over described net distribution, alleviates thus the processing load to publisher and subscriber's machine, and strengthened significantly network efficiency. Fig. 1 for example understands a publisher, a subscriber and an intelligent router, and this only is in order to illustrate; 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 pay(useful) load of grouping or message in inspection network core or other positions.
Network infrastructure
Fig. 2 is the network that illustrates publisher and subscriber's intelligent router. The route entity 30 that passage service is provided for example on network infrastructure by effectively layering, as hereinafter will explaining, so as between intelligent router route messages. Publisher uses 34 32 conceptive for example comprising, is used for receiving the indication of issued content, such as the pointer that is used for retrieving described content; And act on behalf of 36, be used for coding carries out Internet Transmission via passage service 30 content. The set of the intelligent router 38,40,42,44,46 and 48 of interconnection 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 respectively between publisher 32 and the intelligent router 38, the logic between subscriber 54 and the intelligent router 46 connects. Subscriber 54 comprises agency 50, for detection of and the content of accepting reservation, and comprise and use 52, be used for showing 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 for the Internet resources of the publisher of service 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.
The filtration of being undertaken by intelligent router can occur in the network core, so that the distribution route determines. 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 determined to be pushed to the subscriber via route that the subscriber is used for receiving the content that pushes. Described intelligent router is connected according to demand with passage or requirement, any configuration of employing of specific implementation are connected, and the configuration shown in Fig. 2 only provides in order to illustrate.
Fig. 3 is the figure for the example networks foundation structure of the P of intelligent router and 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 internet or other distributed networks, and described intelligent router is thus effectively at the P higher slice. In this example, ISP (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 with are connected in one or more P be connected. 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 end 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 (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 content-based routing in the network core. Link 73-85 represents that the logic between the intelligent router 61-70 connects, and for example can realize with existing network infrastructure or other devices. For example, can use the logic that is called tunnel (tunnel) to connect to realize. The tunnel comprises hardware, and may comprise software, be used for to realize the network infrastructure of link, and the part that the tunnel can be a plurality of passages. Described passage is by providing logic configuration to be easy to carry out content-based routing in intelligent router for the specific type content, and provides environment for the attribute that sends via passage thus. Although intelligent router can not have in the situation of passage the route of execution determine, the efficient of the content-based routing that intelligent router carries out in the described passage enhancing network core.
This exemplary embodiment comprises uses passage and link. Although link is two connections between the router---be intelligent router. Passage is the network entity that comprises set of routers (usually larger), and its link by interconnection comes statically or dynamically dispose in order to realize the logic of one-to-many or multi-to-multi to connect. Specifically, passage is the 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. The passage of the set of the all-ones subnet network that for example, forms for its lower theme may similar network grid.
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 machine to realize) memory 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 adopting independently, the implementation of the device of processor control illustrates, but as selecting, intelligent router 92 can adopt the special IC (ASIC) in the P 95 to realize, in order to 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 exemplary publisher and the figure of subscriber's machine. Publisher's machine 100 or 118 can comprise with lower member: memory 102, store the application 104 of one or more publishers and agent application 105; Secondary memory means 112 provides the non-volatile memories of data; Input unit 108 is used for input message or order; Processor 114 is used for carrying out the application that is stored in memory 102 or the application that receives from other memory devices; Output device 110 is used for output information; And display unit 116, be used for providing the visual display of information.
Subscriber's machine 122 or 140 can comprise with lower member: memory 124, store one or more application 126 and agent application 128; Secondary memory means 130 provides the non-volatile memories of data; Input unit 132 is used for input message or order; Processor 134 is used for carrying out the application that is stored in memory 124 or the application that receives from other memory devices; Output device 136 is used for output information; And display unit 116, be used for providing the visual display of information. As selection, publisher and subscriber's machine can adopt arbitrary disposition 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. Can comprise arbitrarily wired or wireless distributed network, wired connection device, wireless device or both with the network 120 of intelligent router. 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 contacts with the information of channel manager with regard to relevant special modality. Described channel manager can also provide persistent data, failover functionality or other functions. Described channel manager provides the passage service thus, its be included in the network Anywhere, be used for regulation and relate to information, persistent data attribute, publisher and subscriber's the user profile of passage and database or the data base set of foundation structure information. Described foundation structure information for example can comprise the sign in 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 user's 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 input and register and reserve with this information.
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 comes contact channel manager and retrieval channel information with those IP addresses. If described main channel manager fault, intelligent router can contact 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 processes 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 its figure with the exemplary software components of the storehouse 180 of the device of the network connection with intelligent router. Described subscriber set can be used as publisher, subscriber or both, and it can comprise the exemplary means that above identifies. Storehouse 180 can comprise that one or more users use 182, its can provide from the user receive reservation, from publisher's receive path information, perhaps receive content to be issued or data. 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 network connection 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 event that relates to subscriber set or other events or information as log recording. 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 access 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 for the API of transmission and searching message. Table 7 and 8 provides the example that is used for sending and retrieving the API of notice. Table 9 provides the example that is used for sending and retrieving the API of control message. These API and other API, program and data structure as just providing, are used for realizing specific function or feature in this explanation, but other software entitys that implementation can comprise the API of any type or adopt any programming language to work out.
Table 3
The example of proxy commands
Order Function
pc.chn.open Open passage, retrieval all information of passage and local cache it
pc.chn.close Closing passage
pc.chn.getRouterInfo Retrieval is about the route-map of passage
pc.chn.getAttributeInfo The information of retrieval channel attributes
pc.chn.getProperties The retrieval channel attributes
Table 4
Scheduler function
Server side Intercept connection (website of acceptance). Create thread in order to process each connection. Described thread is responsible for receiving and processing upper all requests that arrive of this connection.
Client-side Establishment is used for starting the thread of a connection and is responsible for receiving and being connected all data that enter into connection.
Table 5
The example that is used for the API of transmission message
PC_Status PC_msg_init(ChannelHandle ch,PC_UINT chld,PC_UINT userid,                PC_TypeInfo *MsgType,PC_UINT msgTypeSize,                PC_msg_SessionHandle *sess); PC_Status PC_msg_cleanup(PC_msg_SessionHandle sess); PC_Status PC_msg_closeTransport(PC_msg SessionHandle sess); PC_Status PC_msg_create(PC_msg_SessionHandle s,PC_msg_DataType dType,                PC_msg_MsgHandle *msg); PC_Status PC_msg_delete(PC_msg_MsgHandle msg); PC_Status PC_msg_clone(PC_msg_MsgHandle org,PC_msg_MsgHandle           *new); PC_Status PC_msg_setSubject(PC_msg_MsgHandle msg,PC_char *subject); PC_Status PC_msg_setSubjectint(PC_msg_MsgHandle msg,                PC_USHORT *subjectArray,PC_UINT arraySize); PC_Status PC_msg_setAttrByNameInt(PC_msg_MSGHandle msg,                const PC_char *Name, PC_INT value); // for every type of PC_Status PC_msg_setAttrByPosInt (PC_msg_MsgHandle msg, PC_UINT attributePos, PC_INT Value); // for every type of PC_Status PC_msg_addAttrInt (PC_msg_MsgHandle msg, const PC_char*Name, PC_INT value); // for every type of PC_Status PC_msg_send (PC_msg_MsgHandle msg);
Table 6
The example that is used for the API of searching message
  typedef struct_attribute{           PC_char             *name;   PC_Status   PC_msg_init(ChannelHandle ch,PC_UINT chld,PC_UINT userid,               PC_TypeInfo *   PC_Status   PC_msg_cleanup(PC_msg_SessionHandle sess);   PC_Status   PC_msg_recv(PC_msg_SessionHandle sh,PC_msg_MsgHandle *msg);   PC_Status   PC_msg_ctrlRecv(PC_msg_SessionHandle sh,PC_msg_MsgHandle               *msg);   PC_Status   PC_msg_getSequenceNum(PC_msg_MsgHandle msg,PC_UINT               *seqNo);   PC_Status   PC_msg_getPublisherInfo(PC_msg_MsgHandle msg,               PC_msg_PublicInfo  *pub);   PC_Status   PC_msg_getSubject(PC_msg_MsgHandle msg,PC_char **subject);   PC_Status   PC_msg_getSubjectInt(PC_msg_MsgHandle msg,                    PC_USHORT **subjectArray,PC_INT *size);   PC_Status   PC_msg_getSubjectInt(PC_msg_MsgHandle msg,                   PC_USHORT **subjectArray,PC_INT *size);   PC_Status   PC_msg_getDataType(PC_msg_MsgHandle hMsg,                   PC_msg_DataType *dataType);   PC_Status   PC_msg_getAttrByPosInt(PC_msg MsgHandle msg,               PC_UINTpos,PC_INT *Val); // for every type of PC_Status PC_msg_getAttr ValueByNameInt (PC_msg_MsgHandle msg, const PC_char*name,PC_INT *val);   PC_Status   PC_msg_getAttrTypes(PC_msg_MsgHandle msg,PC_TypeCode *Types,                    PC_INT *arraySize);   PC_Status   PC_msg_getAttributeByPos(PC_msg_MsgHandle msg,                    PC_UINT attributePos,PC_msg_Attribute **attr);   PC_Status   PC_msg_getAttributeByName(PC_msg_MsgHandle msg,                    const PC_char *name,PC_msg_Attribute **attr);   PC_Status   PC_msg_getPredefinedAttributes(PC_msg_MsgHandle msg,                    PC_msg AttributeArray **attrs);   PC_Status   PC_msg_getDiscretionaryAttributes(PC_msg_MsgHandle msg,                    PC_msg_AttributeArray **attrs);   Void        PC_msg_freeAttribute(PC_msgAttribute *attr);   Void        PC msg freeAttributeArray(PC_msg_AttributeArray *attrArray);
Table 7
Be used for sending the example of the API that notifies
ChannelHandle ch; PC_msg_MsgHandle msg; PC_msg_SessionHandle sh; PC_msg_TypeInfo  Types[2]; Types[0].type=PC_STRING_TYPE; Types[0].name=“company” Types[1].type=PC_INT_TYPE; Types[1].name=“stockvalue” PC_msg_init(ch,chld,userld,Types,2,&sh) PC_msg_create(sh,PC_MSG_DATA,&msg); PC_msg_setAttrValueByNameInt(msg,“stockvalue”,100); PC_msg_setAttrValueByPosString(msg,1,“PreCache”); PC_msg_addAttrString(msg,“comment”,“mycomments”); PC_msg_send(msg); PC_msg_delete(msg); PC_msg_closeTransport(sh);      PC_msg_cleanup(sh);
Table 8
The example that is used for the API of retrieval notice
ChannelHandle ch; PC_msg_MsgHandle msg: PC_msg_SessionHandle sh; PC_msg_TypeInfo  Types[2]; PC_msg_AttributeArray *attrArray; PC_char *company; PC_INT value; Types[0].type=PC_STRING_TYPE; Types[0].name=“company” Types[1].type=PC_INT_TYPE; Types[1].name=“stockvalue” PC_msg_init(ch,chld,userld,Types,2,&sh); While(1){       PC_msg_recv(sh,&msg);       PC_msg_getAttrValueByPosString(msg,0,&company);       PC_msg_getAttrValueByNameInt(msg,“stockvalue”,&value);       PC_msg_getDynamicAttributes(msg,&attrArray);       PC_msg_freeAttributeArray(attrArray);       PC_msg_delete(msg); } PC_msg_closeTransport(sh);       PC_msg_cleanup(sh);
Table 9
Be used for sending and retrieving the example of the API of control message
The code of sender's one side The code of recipient's one side
ChannelHandle ch; PC_msg_MsgHandle mh; Int chld=10; Passage handle PC_msg_init (ch, chld, publd, NULL, the 0 , ﹠sh) PC_msg_create (th, PC_MSG_CONTROL , ﹠mh) of // acquisition path 10; PC_msg_setSubject (mh, " #.ADD_SUBJECT "); PC_msg_addAttrInt (mh,, " Channelld ", chld); PC_msg_addAttrString (mh, " Subject ", " Quote.cboe "); PC_msg_send (mh); PC_msg_delete (mh); ChannelHandle ch; PC_msg_MsgHandle msg; PC_msg_init(ch,chld,subld,NULL,0,&sh); for(;;){          PC_msg_recv(sh,&msg);          PC_msg_getSubject(msg,&subject);          PC_msg_getAttrValueByNameInt(                msg,“Channelld,&chld);          PC_msg_getAttrValueByNameString(                msg,“Subject”,&subject);          PC_msg delete(msg); } PC_msg_closeTransport(sh); PC_msg_cleanup(sh);
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 memory 94, in order to carried out by the processor 93 in the intelligent router 92. Assembly 210 for example comprises filtration demons 212, scheduler 214, route demons 216 and cache manger 218. Filter demons 212 for content-based routing provides filtration, in order to process the content of subscribing according to routing rule, as below will explaining. Scheduler 214 provides the communication of control message, filter desired those message such as propagating via path 220, and described scheduler can also provide single input point and with a safe socket character of channel manager, strengthen thus the security of network for the user. In other words, in this example, the user does not contact directly channel manager, but is possible in the implementation that substitutes. Scheduler 214 usefulness control messages 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 the conventional P as shown in Fig. 4 or other route devices. 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 routing can be realized in the kernel rank, as substituting the application rank. The addressable memory of core is independent of the memory in the application layer. In application, move content-based routing, for example require message data is copied to application area from the kernel memory block, and the environment that the environment of using is used from the kernel environment changing to route. Both can cause suitable expense. Revise described kernel in order to support content-based routing if replace, so described route can be carried out faster, reduces thus aforesaid expense.
Use this feature of the content-based routing in the kernel, route demons 216 can directly or can directly not send or receive data via data path 222, and this will depend on implementation. Described demons are such processes, move in application layer, calculate in advance the content-based routing table in the kernel to be injected into. Yet in case inject, described routing table can make to make route by kernel and determine. Similarly, the filtration demons calculate in advance filter table and are injected in the kernel. In this kernel implementation, the route demons and filter demons often directly and data path mutual.
Fig. 9 is the figure of example of packet configuration 230 that possible comprise the message of subscription content. For content-based routing grouping or message for example comprise stem part and pay(useful) load part. Described stem is partly stipulated route or other information. Described pay(useful) load part specified data or content, the perhaps indication of data or content. Packet configuration 230 comprises IP stem 232, 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 for example understands the basic structure of length value and theme and attribute. The grouping that is used for content-based routing 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 routing can adopt any mode to dispose. In addition, described attribute for example can comprise the arbitrarily attribute that is appended to the message end. These arbitrarily attribute be the ad-hoc information of for example being added by publisher's (and even router), its necessary message format reception and registration of using as the passage regulation.
Publisher and subscriber's method
Figure 10 is used in order to the flow chart 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 114 in publisher's machine 100. In method 150, the publisher that the agency 106 in publisher's machine receives the proxy machine that is used for passage creates (step 252). 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. The channel information that agency's 106 usefulness receive arranges the proxy machine (step 254) of passage, and it comprises the attribute (step 256) of receive path and creates notice (step 258) at passage. Described notice provides content for the device of the content on " intercepting " passage. 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 (step 260) of processing reservation. 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, arbitrarily attribute or both.
Described intelligent router can obtain with the passage ID of grouping 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 the 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. Can number with for example lowerinteger value of sixteen bit value. As selection, can shine upon theme with numbering or the information of any other type. Theme is mapped to numbering special advantage can be provided; For example, it can save the space of message format joint, and the indication that provides unified or standard mode to come the theme in the regulation message, so that they can be positioned and identify soon. Intelligent router can locally be stored described mapping, perhaps as selecting, by ordering with numbering the corresponding theme of long-range acquisition.
Table 10 for example understands the structure that numbering is mapped to theme, has used integer value in this example. Subject tree parameter in the table shows: 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 finding in URL or other network address. Except life cycle and regulation URL type character string, subject tree can be stipulated with any character with for the symbol employing any-mode of boundary.
Table 10
Numbering Subject tree
Integer value
1 Subject tree 1
Integer value 2 Subject tree 2
...
Integer value N Subject tree N
Thus, know 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 in order to carry out at content-based routing. 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 for the establishment passage. Table 13 provides the passage configuration 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 for providing the IP address of the server that disperses on the geographical position, and described server plays the local channel manager, in order to distribute described processing load.
Table 11
The example of publisher's program
#include " PC_evn_Notification.h " #include " PC_evn_Proxy.h " using namespace precache ∷ event; Int main (int argc, char argv[]) { PC_UINT QuotesRUs=myChannelofInterest; // passage ID PC_UINT myID=myPublisherID; The ID try{ Proxy p of // publisher (QuotesRUs, myID); Notification n1 (p, " quotes.nyse "); N1.SetPredefinedAttr (" symbol ", " LUS "); N1.SetPredefinedAttr (price ", 95.73); P.Publish (n1);
Notification n2 (p, " quotes.nyse "); N2.SetPredefinedAttr (1, " SNE "); // attribute symbol is in position n2.SetPredefinedAttr (2,80.18); // attribute symbol is at position p.Publish (n2); Catch (InvalidChannelException icex) cerr<<" bad channel "<<end1; Catch InvalidSubjectException isex) { } catch (InvalidNotificationException inex) cerr<<" bad notification "<<end1; Catch (Exception ex) cerr<<" unknown error "<<end1;
Table 12
The example that is used for the API of establishment passage
PC_Status rc; Rc=PC_chn_create (Provider_info, authinfo, ConfigurationFile , ﹠hChannel); / * first main channel manager */rc=PC_chn_addChannelManager (hChannel, " 10.0.1.1 "); / * second channel manager */rc=PC_chn_addChannelManager (hChannel, " 10.0.2.2 "); */rc=PC_chn_setProperties (hChannel, ConfigurationFile); / */* is by using rc=PC_chn_setAttributeType (hChannel, name, position, at tributeType) the type of message part setting of message (only) the type message is set and is transmitted to all edge routers. */
Rc=PC_chn_setAttributeType (hChannel, " Priority ", 1, PC_UINT16_TYPE); Rc=PC_chn_setAttributeType (hChannel, " Alarm_Name ", 2, PC_STRING_TYPE); Rc=PC_chn_setAttributeType (hChannel, " Alarm_Time ", 3, PC_INT32_TYPE); Rc=PC_chn_updateAttribute (hChannel); / * finish passage create */
Table 13
The example of passage configuration file
# channel setting-read by passage API, time and message transmit each passage items for information of # and adds mark with following information type: #[ChannelComm 5] be used for relating to information the #[ChannelSubject 5 that communicates by letter] be used for relating at passage 5 the theme #[ChannelAttributes 5 of information] and the attribute information # of passage 5 # passage ID be appended on the mark in case the passage that indication # information belongs to for example [ChannelComm 5] to indicate the routing iinformation # # of passage 5 be not that all fields need to be arranged. If for example move with central server, then multicast IP# is unwanted. [ChannelComm 5] MulticastIP=225.0.0.1 RouterIP=test3 RouterPort=12345 ProxyPort=9015 ProxyCtrlPort=9016 [ChannelSubjects 5] NumberOfSubjects=2 subject1=#.SUBSCRIPTION
mapping1=0.100 subject2=Quotes.Nyse mapping2=102.101 [ChannelAttributes 5] NumberOfAttributes=4 name1=StockId type1=PC_UINT_TYPE name2=Company type2=PC_charARRAY_TYPE name3=Price type3=PC_FLOAT_TYPE name4=Volume type4=PC_UINT_TYPE
Figure 11 be for receive and process reservation the flow chart of subscriber's method 264. Method 266 for example can adopt software module to realize, described software module comprises agency 128, is carried out by the processor 134 in subscriber's machine 122. 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 type can adopt any particular form or form to show gap marker. Described application receives the user to the selection (step 268) of passage, and calls API or other programs (step 270) for selected passage. Described API shows subscription option (step 272) for 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 in order to process to agency 128, such as (step 276) that below will explain.
The parameter that is used for subscribing for example can comprise predicate as shown in table 1. For example, each passage can use the API of himself, in order to process reservation according to particular demands or the parameter of respective channel. These API for example can comprise for receive to subscribe based on webpage or based on the API of Java, and can and process with the user interface of any type 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 for identifying effective passage and selects for the user. When selecting specific passage, can display screen 284, in order to 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 HTML (HTML) 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, in order to indiscriminately ad. as one wishes provide user-friendly and attracting reservation interface visually 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.
Table 14
The example of subscriber's program
#include<unistd.h>#include<iostream>#include " PC_evn_Filter.h " #include " PC_evn_Subscription.h " #include " PC_evn_Proxy.h " using namespace precache ∷ event; Class SubscriberApp:public Subscriber private ": PC_UINT notificationCount=0; Public:SubscriberApp () { } // default constructor Void run{} { PC-UNIT QuotesRUs=myChannel of Internest; // passage ID PC-UNIT myID=myPublisher ID; The ID try{ Proxy p of // publisher (QuotesRUs, myD); Filter*factory*=FilterFactory ∷ GeFilterFactory0; Filter*f factory-〉CreateFilter (p, " symbol=" LU " "); PC_INT c1=0; SubscriptionHandle sh=p.Subscribe (" quotes.nyse ", f, this, (void*) ﹠c1);
While (notificationCount<2) // allow notify () obtain some notice sleep (5); P.Unsubscribe (sh); Catch (InvalidChannelException icex) { cerr* " bad channel " * endi; Catch (InvalidSubjectException isex) { cerr* " bad subject " * endi; Catch (InvalidChannelException ifex) { cerr* " bad filter " * endi; Catch (InvalidSubscriptionHandleException ishex) { cerr* " bas subscription handle " * endi; Catch (Exception ex) { cerr* " unknown error " * endi; Void Notify (Notification*n, vojd*c) // this be a callback method if (* PC_INT*) c=0) // check closure object PC_STRING symbol; PC_FLOAT price; N-〉and GetpredefinedAttr (" symbol ", symbol); N-〉and GetPredefinedAttr (" price ", price);
    cout<<″The price of″<<symbol<<″is″<<″price<<end1;         notificationCount++;     }   } }; int main(int argc,char argv[]) {     SubscriberApp a;     a.run (); }
Content-based routing via pay(useful) load inspection and passage
Figure 13 is the flow chart via the content-based routing of pay(useful) load inspection method 300. Method 300 for example can adopt software module to realize, described software module is carried out by the processor 93 in the intelligent router 92, 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 routing 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 routing relates to the pay(useful) load part that checks grouping, in order to determine how to process grouping. This content-based routing method for example can comprise according to any order (for example use and filter) processes subscription list, with message one by one theme and one by one attributively with routing rule relatively, in order to determine the route of message, and carry out the processing in the network core. Described rule can comprise the rule of processing in the control router or any rule that is associated with filtration. These routes determine that therefore can spread all over network core distributes. Use the theme that is represented by passage to determine message format, be provided at thus the mode of very fast location attribute in the message to intelligent router, for example by learning that their byte locations in the message of special modality or grouping provide.
In method 300, the grouping (step 302) of intelligent router 92 receipt messages. 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 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 filter the positive result of all properties test generation (step 312) in describing, 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 in order to receive described grouping, and described next node can comprise device or other entities of intelligent router, P, network connection. 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, until the test of all properties in filter describing exhausts or run into the first negative test, and no matter which occurs first.
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 in order to test to process its attribute for next filtration searching attribute. Continue matching process (step 308,310,312,314,315 and 316), until exhaust whole filtration group or can determine the result of everything or routing rule, and no matter which occurs first. 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 in order to attribute is applied to filter (attribute test). As selection, described routing table can be included in link or the pointer of filtration.
According to the inspiration of application and property enhancement, such as the switching of the algorithm based on traffic condition, content-based routing can optionally use more than one method simultaneously. For the treatment of filtration can optionally be encoded at the router place of network, decoding, conversion and merging, for carrying out the pay(useful) load part that checks content-based routing. For example, may be truncated 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 the second decimal 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 in order to adopt other orders or according to various algorithm process, described algorithm may strengthen speed and the efficient of processing. 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 (URL) that is used for the sign content source.
Table 15
Passage 1
Subscribe Link
Filter 1a Link 1a
Filter 2a Link 2a
... ...
Filter Na Link na
... ...
Passage N
Subscribe Link
Filter 1N Link 1a
Filter 2N Link 1b
... ...
Filter NN Link 1n
                                                                                                         10    Cac
Table 16
The content predicate Link
    sub=“quote.optimist”&     (($1>5&$2=“LU”)     |($1>30&$2=“T”))   xl0,xl1
    (sub=“sony.music”|sub=“sony.movie”)     &$1>30&$4=“Beethoven”   xl1,xl3
    sub=“movie.ratings”&     ($1>1999|$2=“Kurosawa”)&$3=“ **   xl1,sl5
  hin   gat    Net wor k No     des
Figure 14 is the flow chart of cache method 320. Method 320 for example can adopt software module to realize, described software module is carried out by the processor 93 in the intelligent router 92, 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 from 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 memory 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 receive data requests (step 330), it uses the data (step 332) of indexed search high-speed cache according to described request so. To P 95, perhaps other route entities are in order to finally send to requestor or other people with the data transfer of high-speed cache for intelligent router 92. 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) of supplier's method use. Cache index (336) receive data (338) and itself and timestamp be stored together (340). When collecting data, when the time of each Δ t, just label to data, wherein Δ t represents the time between the mark, for example t2-t 1 As selection, can use the other types index according to the time mark of any mode.
The conceptive data directory that for example understands high-speed cache of table 17. Table 18 is conceptive to understand that for example being used for storage 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 interval generation 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 usefulness cache index 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 between this router that can be stored locally on subscriber set of table 18 expression is historical; 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 accessed connection. For example it can also carry out the caching directives that obtains the duration that disconnects it, in order to obtain all unsettled contents of reservation.
Table 17
 t1 Passage ID1 Theme 1-n Pointer 1 to cached data
 t2 Passage ID2 Theme 1-n Pointer 2 to cached data
 tn Passage IDN Theme 1-n Pointer N to cached data
Table 18
Connect historical
Time Router The network address
t1  R2 UR2 UR3
t2  R2 UR2 UR3
...
Table 19
The example of the cached data structure of intelligent router
The passage node
Struct ChannelNode{ PC_UINT unChanld; PC_AttributeInfo * pAttrinfo; PC_BOOL bPersistent; / * lasting or RT*/PC_UINT unTimeout; PC_UINT unTimeGranularity; / * is according to a minute */PC_INT nDirFd; HashTable * pFirstLevelsubjs; }
The theme node
Struct SubjectNode{     PC_USHORT          unSubjectld;
PC_UINT unSubjLevel; Void pParent; / * passage or theme */PC_INT nDirFd; HashTable * pNextLevelSubjs; DataNode * pData; }
Back end
Struct DataNode{ PC_INT nDirFd; SubjectNode * pParent; LastTirneGrainNode * pLastTGrainData; DLIST * pstoredData; / * lists StoredTimeGrainNode*/PC_Mutex mStoredDataLock; }
The time granularity node of storage
Struct StoredTimeGrainNode{ PC_UINT unStartTime; / * is according to a minute */Chanld; PC_UINT UnEndTime; / * is according to a minute */PC_UINT nFd; }
The granularity node of final time
Struct LastTimeGrainNode{ PC_char pLastTGrainData; / * can be a tabulation */PC_UNIT unLastTGrainStartTime; PC_BOOL bReadyToStore; PC_Mutex mCachedDataLock; }
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 of the filec descriptor of data directory, the circular buffer that comprises the data structure that is stored in the data on each storage device, buffer and afterbody, is used for the lock at retrieval and 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 represents also not store into storage device but is maintained in last buffer in the memory. High-speed cache in this example and data storage thread prevent Concurrency Access to final time granularity node with the mutex of last event granularity node.
Agent processes
Figure 16 is the flow chart be used to the Proxy Method 350 of the subscribe messages of going out. Method 350 for example can adopt such 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 in order to detect any mistake (step 356) in the described reservation. If there is mistake, acts on behalf of so 128 and can show error message (step 360) to the user, so that the user can correct a mistake and input described reservation again. If described reservation does not comprise mistake (step 358), act on behalf of so 128 and in data structure, store described expression formula, the below provides its example (step 362). Agency 128 is converted to canonical form (form) (step 364) with the expression formula that do not wait as part 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) in order to 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>=10AND (Symbol==" LU " OR Symbol==" T ")) has equivalent DNF and represents ((price>=10AND Symbol==" LU ") OR (price>=10AND Symbol==" T ")).
Relate to the expression formula that will have " not waiting " operator (being expressed as unequal to according to example syntax) in the conversion of step 364 and be transformed to equivalence " canonical " form, it is used for stipulating not feasible value of all feasible 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 the conversion of step 368 is creating DNF, carry out, and comprise the consequent AND expression formula of extra simplification, and carry out it in order to 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 lower bound and the upper bound, perhaps is single value under equivalent test case. Then filter according to the scope of table 22 coding particular category.
For example, expression formula (price>=10AND price<=80 AND price>=20 AND price<=100) can be reduced to expression formula (price>=20AND price<=80), and this is the example with the scope filtration in lower bound and the upper bound. Below be the example of oversimplifying other classifications afterwards: (price>=20) (only having lower bound); (price<=80) (only having 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>=50AND 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 thus the unnecessary work of router.
Comprise asterisk wildcard if theme filters, act on behalf of so 128 and can optionally change them, such 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 AP I for message, in order to spread all over channels spread. Inside story is carried out in reservation transmitted, for example propagate as the 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 to the number of bytes store attribute test. With the sequentially layout of respective fields that theme filters, the order of for example stipulating in original subscriptions according to them, 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 the described attribute test of layout and operand, they are sorted according to the attribute order in each disjunct of DNF, and according to location order subscription properties is tested, 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). Remaining information about test for example is encoded as two bytes pair by the order identical with operand; 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 consist of attribute test, its can also be used for expression 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 for example understands the right coding of two bytes, and table 22 for example understands the coding according to the right operator ID of two bytes.
Table 20
Coding rule
  1 In the D position 0 shows the beginning of disjunct new in DNF, and 1 in the D position shows the additional conjunct in the current disjunct.
  2 In the notification properties position, be different from the position that all values of 1 show the predefined attribute that is applicable to test (defined as the notification type with passage); The operand that the mode of describing in the example as shown in Figure 18 comes layout to be used to test.
  3 All values of 1 show that test is applicable to arbitrarily attribute in the notification properties position, and in such cases, applicable title length and the Property Name of described test utilizes operand to carry out layout.
  4 The position of operand type ID is one of predefined type of attribute coding.
  5 The position coding of operator ID is used for the operator of test, as defined in Table 22.
Table 21
The first byte
0 1  2  3  4  5  6  7
D The notification properties position
The second byte
0  1  2  3  4  5  6  7
Operand type ID Operator ID
Table 22
Operator Operator ID
Scope is opened on a left side 000
Scope is opened on the right side 001
Closed scope 010
The equivalence test 011
Positive membership qualification test (interior) 100
Negative membership qualification test (not interior)) 101
Because whether two bytes that are used for test are applicable to subscribe justice or attribute arbitrarily to the type of the operand that shows already test and test, so the number of test is carried out in layout to any attribute or their type independently. This scheme supposition only has 127 predefined attributes in notice. As selection, this design can come the encoded attributes test with multidigit more.
Although 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 the local data about the success of difference test or failed probability of dynamic derivation (perhaps according to), in order to make the net assessment of attribute filtration more effective. The described ID of the reservation 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 subsequently request uniquely, in order to revise or cancellation being scheduled to described reservation. Specifically, propagate on-the-fly modifying that the attribute of subscribing filters with the message format shown in the example of Figure 18, except theme is #_.RESUBSCRIPTION, and subscribe the ID that ID is the reservation of the previous registration that is modified. 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 UML (UML) Figure 39 0, is used for describing the object that the agency uses in step 362, is used for the storage expression formula. This figure for example understand to be used for stipulating 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 for the property value of the storage information relevant with the attribute test of corresponding filtration expression formula. 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 respectively position 0,1 and 2. In addition, attribute type is assumed to respectively signless integer (typecode 6), character array (typecode 12) and signless integer (typecode 6).
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>=10 and symbol==" LU ") or (price>=10 and 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 two tests of quantity, because they are in identical disjunct, and thus they are programmed into together and test as single " closed scope ".
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 usually be independent of by the reservation of layout. In addition, the theme that at random select 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 just provide in order to illustrate, 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 flow chart be used to the Proxy Method 376 of the message of coming in. Method 376 for example can and be used 126 and realize by the agency 128 in the subscriber set 122. 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 processed
Figure 20 is the flow chart of wildcard method 410. The method for example understands with the example of changing for the one group of routing rule that filters for the asterisk wildcard of the expression formula of subscribing. Method 410 for example can adopt the software module as acting on behalf of 128 representatives to be realized, described software module is carried out by the processor 134 in the subscriber set 122. As selection, asterisk wildcard can be processed 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 of be used for subscribing can be stipulated by publisher when issued content, and theme can anticipate at publisher's machine, for example to the field counting of theme and obtain thus its field counting (length). 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] asterisk wildcard (step 420) whether. If it is not asterisk wildcard that son field is counted in described filter operation, acts on behalf of so 128 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 so 128 and turn back to step 418, in order to process additional son field. Parameter " i " represents this field, and wherein i is Field Count purpose integer in this example of expression.
Process after the described son field, agency 128 determines last filter operations ">" (step 426) of whether counting son field, and if so, it changes into field length>N-1 (step 428) with length constraint. Asterisk wildcard is processed the symbol that can use any type, 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, the rule (step 430) of other the entity propagation conversion of agency 128 in intelligent router or the network. Accordingly, by the described method of described son field iteration, in order to process them asterisk wildcard is converted to non-asterisk wildcard rule, means the rule that does not comprise asterisk wildcard. 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 occur.
Table 23 provides for the treatment of the summary of these exemplary routing rules of asterisk wildcard and example. 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 for the conversion asterisk wildcard.
Table 23
Original rule The rule of conversion
Subject subiect=“a.b”     subject.length=2 &subject[0]=“a”&subject[1]=“b”
subject=“C. *.D”     subject.length=3 &subject[0]=“C”&subject[2]=“D”
subject=“foo.>”     subject.length>1 &subject[0]=“foo”
subject=“ *. *.b. *.c.>”     subject.length>5 &subject[2]=“b”&subject[4]=“c”
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 to 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 for the reliability that the publish-subscribe network is provided. In the method 520, used Reliable transport protocol. Specifically, described reliability by realize neighboring router between (perhaps router-subscriber set between) reliably transmission mechanism (reliably tunnel) realize. If router is determined the notice of coming in and need to 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 that is for example represented by agency 105 to be realized that described software module is carried out by the processor 114 in the subscriber set 100.
Have been found that and use TCP to overcome and the problem that reliable transport protocol is associated with the content-based routing of distribution-reservation system described here, and the method is preferred. Another technology that may be used for distribution-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 as cost to increase bandwidth, but does not guarantee to send. Reliable multicast is the third technology, and it guarantees that one group of multicast receiver 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. Issue via network and by following steps with CBR according to subscribing from the content that publisher receives, described step is: the notice (step 524) that receives the content that relates to nodes, 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 is correctly received at the other end. Accordingly, carry out forwarding step 528 take individual node to individual node as the basis, if and had transmission fault, would transmit so step 528 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, if need again the transmission notice grouping, just notice packet is kept in the buffer. If it is full to be used for the buffer 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, if assure certain service quality (QoS) to certain publisher or subscriber, can from buffer, abandon selectively described grouping (for example, those groupings of not managing of QoS will at first be dropped) based on QoS so.
As shown in figure 21, if need further route at adjacent node, repeat described method (step 530) for next adjacent node so. 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 routing (CBR) is a kind of route of constraint-driving of form. In the publish-subscribe network of the enhancing with CBR function, such as aforesaid publish-subscribe network (for example referring to Fig. 1-3), preferably, the subscriber is encapsulated in the entity that is called filtration the interest (namely subscribing) of the special content of distribution. Preferably, making route by the router in the network with described filtration determines. Be different from and have to the preceding at the edge 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 arranges constraint, and if these contents constraints are used for network core so that routing packets, and the efficient of network 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 along the data path between publisher and the subscriber or therefrom output and/or spread all over described core router, and (ii) if necessary, in network core but not only upstream carry out CBR at network edge. By carrying out more upstream the CBR of (for example, in network core, perhaps in publisher's machine), need the number of data packets of downward route often can sharply reduce. 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 moving to " going to " several filtrations destination (for example core router, edge router or publisher) from a large amount of filtered source (for example subscriber) 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 that is comprised of the tandem node that connects in the tree topology.
The scheme that is designed to solve these and other problems comprises one or more set of rule, process, strategy, process, mechanism, agreement, message format, data structure and/or algorithm. By these solutions, can propagate so that filter: fast (for example, by simplification, merging, effective layout etc.); Scalable (for example, by merge, ask approximate etc.); Dynamically (for example, new reservation, cancellation, repairing etc.); (for example, the authentication) of safety; Private (for example, encrypting); Reliably (for example, TCP connection, reliable tunnel, coding, recovery agreement etc.); Flexibly (for example, inertia is propagated (seeing below), various multicast topological structure or agreement); And adapt to user's request (for example, publisher/subscriber's behavior-coding). Described filtration transmission method described herein is realized these benefits and other benefits with these solutions.
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 except 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 for 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 computing network topology (for example MOSPF); 5) the periodic filtration propagated (for example, again refreshing demand in order to satisfy to support to filter 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, with described strategy take filtration transmission method described herein and rule as condition.
B. Be used for filtering the link level connection mechanism of propagating
Being connected to 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 step by step (for example router-to-router); 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) user's datagram protocol (TCP) (for example, utilizing reliable time data recovery mechanism to replace); 6) use security protocol; 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 processed; 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, such as following given example: 1) form 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) only has core router; 4) only has 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 the 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 in order to save the network bandwidth before sending first group of publication; 5) publisher that has a 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 to upgrade from the downstream router cycle; And/or 7) edge router that is not fixedly connected with subscriber's machine may upgrade reservation or filter interest by RQ cycle. All these behavior properties and other for example can be by being distinguished with publisher's advertisement, coding publisher behavior when it is issued first, cycle transmission filtration renewal and other technologies, in order to pass on the demand of filtering the addressee.
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/her is to the interested words of sampling publication; 2) subscriber is mobile, and filters and expire after the subscriber moves; 3) in supporting the overtime CBR system of automatic fitration, the subscriber who is not fixedly connected with their edge router may filter and upgrade in the requested 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, the data during fault recovery, recovered etc.); And/or 7) for propagate revised the router that filters upstream router show how to revise the filtration of propagating 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 for the content of revising filtration or the conversion of expression, and/or relates to the management function that only is used for organizing 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 (for example, are processed referring to agent processes and asterisk wildcard) as mentioned above. These processes can spread all on the publish-subscribe network-for example on subscriber's machine, on publisher's machine, edge router or core router carry out. 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 the lexicographic from character string to them is from a kind of currency to another kind); 2) expression formula expansion (for example, the composition from asterisk wildcard to them); 3) expression formula conversion (for example,>operator is to>=operator, unequal to operator to>and<operator); 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 arrive the expression relevant with the concrete data structure that is used for storage or coupling 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 order to remove redundant predicate expression formula (for example, 1>5﹠﹠, 2>3﹠﹠ 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) to two or more different filtrations divide into groups (for example, being used for being 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 in order to obtain to filter the change of configuration aspect, namely Δ upgrades); And/or 18) formation of filtering model (for example, if filter 1 coupling, filter so 2 and also just mate). List above relating to or any process that unlisted filtration is propagated from here described filtration transmission method use.
H. The 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 subject to the conversion process of described filtration experience and trigger the impact 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 to relate to fixing or random site (character string of for example, partly mating with publication); 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,>,==,<=, Deng) or complicated test OR-operator (for example, inquiry etc. is inquired about, comprised to membership qualification test, regular expression, string matching, range arithmetic such as the inquiry of occuring simultaneously, closure); 6) decomposing D NF form; Simplification or the original expression of 7) filtering; 8) form compact or expansion (for example, a side is filtered and can be represented with two boundary expression formulas, perhaps double-side filtering can be rewritten as two sides and filter); The part of 9) filtering represents (for example, the blocking of predicate of character string, data type is cleared up the end (reduction) of (resolution) and the minimizing of number attribute); The conversion of 10) filtering represents (for example, Polish notation, classification, tree, clue (trie) etc.); 11) the comprising/get rid of of subject field (for example, can propagate the multicast backbone who occurs 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 that filter (for example, during fault recovery, in having the overtime system of filtration, again refreshing renewal); 17) segment set that filters (for example, sort out, only have new filtration to be inserted into to filtration or old filtration will be removed); 18) the modification collection that filters (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 that filters; 22) filtering model information; And/or 23) the filtration sender of coding described in part F behavior and the information of request. 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 with process so that controlled filter is propagated some of all aspects. These aspects for example can comprise: 1) management (for example, the overall situation 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) property enhancement strategy (for example, load balancing, edge selection, positive propagation to inertia); 5) monitoring (for example, Trouble Report); 6) (for example, statistics bookkeeping) accounts; 7) charging; 8) regulate (filtration types that for example, allows in mandate propagation filtration, 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, during restoration affirmation 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 permitting that the consumer is consumer's relation management of interested filtration).
Discussed up hill and dale in the I at 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 for realizing scalable filtration propagation below is provided.
As mentioned above, important problem is in filter propagating: flow when moving to " going to " several filtrations destination (for example core router, edge router or publisher) from a large amount of filtered source (for example subscriber) 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 that is comprised of the tandem node that connects 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 134 in subscriber's machine 122. 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, at part C, described filtration can be injected the publish-subscribe network Anywhere. Process the filtration that receives and filter number (step 454) in order to reduce. Described minimizing step has reduced the filtration number of being propagated, in order to avoid or reduce the accumulation problem of filtering. If too many a filtration of Nodes 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 process and mate all.
Below illustrate further the effect that reduces step 454 of filtering. In each level of propagation 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 close to or be not very less than the factor of the number of the downstream node of this grade 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. 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 effectively solved thus the accumulation problem.
Figure 22 B for example understands the preferred substep that reduces step. Preferably, these substeps comprise simplifies filtration in order to remove redundant predicate expression formula (step 4542), to the filtration that only comes from the downlink relevant with theme divide into groups (step 4544), and in the group of this filtration, (before merging or rear) asks approximate (step 4546) to filtration, relative distance cluster according to them is filtered (step 4548), (step 4550) 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 very important 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 that direction connects described network because allow publisher to be connected arbitrarily with the subscriber. When having received filter request from link, this link should be considered to current up-link, and the filtration that those downlinks that only are subordinated to same subject inject and the filtration outside the current up-link are combined, in order to be used for subsequently asking approximate, cluster, comprise and union operation.
Grouping 4544 is also because 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 to come in from all links of reason, even it can be omitted together.
Step 4546 asks approximate the modification to filter in order to 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 with alignment filter form, so that they can become the optimal candidate (step 4550,4552) of sorting out and merging. 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 subset of another filtration. For example, if first filter to be used for having area more than or equal to 1000 square feet and to be less than or equal to 1300 square feet and price range more than or equal to $ 200K and to be less than or equal to all apartments of $ 300k, and second filter to be used for having area more than or equal to 1100 square feet and to be less than or equal to 1200 square feet and price range more than or equal to $ 225k and to be less than or equal to all apartments of $ 275k, the second filtration is the first subset of filtering so, therefore by sorting out it is left out.
Step 4542,4544,4546,4548,4550 and 4552 can reduce according to concrete filtration any order execution of algorithm, employing of scheme and/or selection. 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 similar to built-up section or diverse two or more filtration with asking. Browse several these processes that where illustrate of various filtrations. For example, referring to following Fig. 1-4:
Figure A0381218000691
Several two filtration s1 and s2 of where having illustrated of Fig. 1 as mentioned above, are the subsets of filtering s1 because filter s2, so it can reduce by classification. Yet in Fig. 2, filtering s3 or filtering s4 neither is the subset of other filtrations. But filtering s3 and s4 overlaps. Combining step 4552 is by asking an approximate minimum filtration sA who comprises s3 and s4 to merge s3 and s4. Because two of s3 and s4 are the subsets of sA, s3 and s4 are classified among the sA. Fig. 3 for example understands another example that merges; In Fig. 3, it is fully different 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 then is classified among the sA. 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 by whole filter list via linear search, can use the optional step (step 4548) of clustering algorithm conduct in order to collect the filtration with closer to each other or overlapping border. 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 separately mesh coordinate 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 larger 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 defined leakage area threshold value, 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 analysis, so as to determine because described ask approximate and with the expection percentage of the additional packet accepted what are (that is, falling into the grouping of described leakage area). This statistical analysis can the group-based distribution map, and the history of the grouping that this grouping distribution map uses into or the grouping of going out (for example, at the router place that carries out described method 450) makes up. If expection percentage 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, the actual filtration s5 that this relates in combining step 4552 often and s6 accept, 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 consist of 1% of total number packets by router, even if the first leak threshold (#_1) exceeds so, also can allow union operation, this is because gross leak is still the little percentage of grouping, if in the situation of not filtering route they, often consume downstream bandwidth. Can design and stipulate a large amount of the influencing each other with multifarious between the various leak threshold.
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 filter total less the time because the accumulation problem also do not arrive at once, so can merge filtration with more closely constraint.
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 that is comprised of two or more different filtrations has the zero leakage area in certain situation, and is definite therefore. For example, suppose two dimensional filters (being s7 and the s8 of Fig. 4), when two rectangles that represent filtration mutually align 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, in 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 occur. Equally, if to the predicate scope of a filtration with next possible values after the predicate end of extent (EOE) of another filtration (for example, for the attribute that only has 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 has identical predicate scope.
Return the 22A with reference to figure, as selection, method 450 can comprise additional filtration treatment (except 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 in the above part E 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 list at part E those. Step 458 and 456 order are interchangeable. In addition, because filtering accumulation also is not a serious problem, so for example for the reservation of Limited Number (namely filtering) or include only several networks of propagating level, optional such as step 454 (specifically, merge substep 4552) and some steps of step 456.
Can also determine whether to propagate described filtration (step 458) based on sender's rule of conduct, its example in the above part F provides. For example, filter the sender and may comprise that filtration is overtime. In this case, determining step 458 checks whether described filtration expires in order to check described filtration. Simultaneously, for the filtration of next node to be transmitted to, 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 list at part F those.
Described in part D, this filters the Anywhere startup 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 part C, described next node (described filtration addressee) can be arranged in the publish-subscribe network Anywhere as above. Can reduce by step 454 number of filtration 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 determine to filter communication strategy, and satisfies to propagate filtration based on the 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 according to upper part H and spread news. The mode that is used for being connected to 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 for this reason potential 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 at this link, until occured some changes of filtering collection (for example, filter additional, filter and remove etc.). In those situations, filter propagation and become unnecessary for this link. In inertia transmission method as described below, can find an example.
Propagate if need to filter, method 450 can determine whether to propagate step 456 and 458 based on rule of conduct so. Described method 450 can repeat, until no longer include the potential addressee of the filtration of minimizing.
Figure 22 C understands that for example another filters transmission method 470. The method for example understands another example that uses one group of solution above describing in part A-I, filters for propagating at distribution-reservation 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 ASIC 91. 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 134 or 114 in subscriber or publisher's machine 122 or 100.
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 arbitrarily path to the network of intelligent router C, shown in Fig. 2 2D. 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 publisherNAnd new router CNBe connected to the network at router C place. The new P of publisher of effort and contingent issue of securities-reservation network connectionN, 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 publisherNCan be by connecting as the router of this network part. For illustrational purpose, only illustrate 1 new router C among Figure 22 DN
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 discussion, described up-link (only having 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 publisherNTo 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 in order to 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, by means of checking the reference counter of this up-link is realized (step 478). If it is the new up-link that never must be service before, resemble the 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 their downstream router and wait for their response. Described receiving node repeats this process, until 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 so NACK (all being the empty collection that filters during perhaps expectation in office is shown). If all received all new filtrations from the downstream router of described node, so whole or part filtration collection (for example, Δ changes) will (step 454) upstream send (step 486) after optionally filtering minimizing. According to method 450, only have from the filtration of collecting with respect to the downlink of current up-link will be grouped, merge and reduce. Then, collect this then that communication process upstream repeats, until send the publisher of filter request or the NACK that initial router receives the downstream router that comes from all described publishers or initial router. The actual propagation of filtering or aforesaid empty set (NACK) consist of the second level. Described two levels they the direction of propagation and propagating contents aspect different, and because filter request can advance to more some network branches in downstream than other request, so they in time may be overlapping.
Because only having, 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 only has 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, the 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 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 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 compacter form, and by calculating in advance the coverage of described filtration in attribute space, this CBR method forms the finite aggregate of dependency air coordinates to the mapping of off-line route instruction, then makes route with described mapping in real time and determines. This CBR method is very fast, has realized the data retransmission speed with traditional Internet protocol (IP) route same order. Therefore, this CBR method is for the practical commercial candidate who is fit to who disposes at the network core content-based routing.
As mentioned above, the subscriber comes the selective of the following grouping of refining by regulation predicate on attribute-value ranges, and described grouping is 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, whether 10<$ 1<20 is one and be used for checks by the data value of the first property location of $ 1 expression 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, 2 side range tests 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 the interested subject field of subscriber.
Embodiment described herein relates to the content-based routing that use to filter, 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 network carries out group match, 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 of each Nodes 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 discussion, 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 process 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 operator 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 that is different from $ 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 form 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 with a kind of simple method come singly and predicate ground of a predicate mate filtration than big collection, so needed huge amount of calculation may be easy to make by the benefit of using the downstream bandwidth gain that CBR obtains impaired. This huge amount of calculation in key data retransmission path may seriously be delayed the efficient of publish-subscribe network. CBR embodiment described herein manages to reduce this huge amount of calculation, and manages major part calculating is removed from key data retransmission path.
In fact, embodiment described herein provides a kind of very effective method for CBR, is approximately compacter 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 be the unification that covers the action that whole filtrations of this point assert to the correct operation of the described grouping that has property value at that point. These actions can relate to following grouping, are sent to the grouping of parallel machine (such as high-speed cache, backup router etc.) such as the grouping that comprises the interface that is forwarded to physics or encapsulation, the grouping that is transferred to user level process or duct type. Some actions may not relate to grouping, for example comprise and trigger the general application that moves at router in order to respond the arrival of the grouping of special appointment, 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 asserting 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 discussion subsequently, when mentioning separately ABM or DAL, 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 in advance calculating generation dependency 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 retransmission path, data almost avoid mating the required processing of original filtration expression formula and rapidly by key data retransmission path.
Preferably, this CBR method also comprises and is approximately compacter form with filtering expression formula, for example sums up to realize by means of space quantization and predicate. Because in each attribute dimension, have huge number of coordinates, so necessary quantified property space forms grid thus. Only construct the CBR table with the zone that quantizes rather than individual coordinate. 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 indirectly explanation in the CBR table 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 subset 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 based on the statistical analysis of the distribution of the grouping of (namely the receiving in advance) in past and/or filtration for its area that may receive the data of coupling. For example, if publisher provides information: will never issue the packet greater than the coupling of certain property value of an attribute, and so preferably not quantize the attribute space greater than described certain value. Equally, if statistical analysis shows: never receive the filtration less than the certain value of an attribute, so preferably do not quantize the attribute space less than described certain value.
Figure 23 A is according to embodiment described herein, for example understand by filtering the CBR method 480 that expression formula is approximately compacter 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 in advance calculation procedure 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 114 in the subscriber set 100 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 event has become irregular to heavens on the attribute space of current quantification such as observing the classified statistics amount. If need and when router relatively during the free time, carry out off-line space quantization (step 484). Space quantization relates to the calculating of new grid, preferably, and the character that described new grid has that the grouping of making distributes or filter distribution (perhaps the two some relevant) becomes consistent in 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 the stock number in a certain industrial department of the first attribute 1 expression US, space quantization only need to 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 at first a much smaller number, this number is number maximum in whole departments stock number, and when maximum 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 record 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. Only have diverse filtration just need to be processed. The purpose of for this reason describing is assumed to intelligent router 92 with described position. 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 for 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 so flowing to the routine that passback is delivered to matched packet. Otherwise, the property value of grouping is mapped to the quantification space, in order to obtain the quantification coordinate (step 492) of property value. Carry out one and similarly filter identification procedure, carry out with the quantification coordinate specifically, in order to (1) upgrade reference count (step 494) to correct filtration in the quantified property space, and (2) determine that in the quantification coordinate that filters this filters a whether diverse filtration (step 496). For step 488 and step 494, preferably, use two mappings of quoting to filtration from filtering coordinate.
If in the actual attribute space with to quantize to filter described in the space be diverse, so therefore can ask approximate and reduce and filter (step 498) filtration. For example, for quantizing and mapping, only to select to have the filter attribute subset of too many predicate. Equally, has the predicate (for example, require in the string matching, regular expression, 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 processed 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 efficiently coupling and the forwarding of grouping. 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 A0381218000791
Can upgrade now CBR table (step 500). 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) assert. 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). Then step 500 is inserted into (route) action of asserting in these grid cells. 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 respectively the regional X (referring to above) of described grid cell or quantification. Therefore, the regional X of grid cell or quantification is inserted or confirmed to step 500 rule that will require respectively to route to node 2 and 3. 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 represents 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 directly or indirectly the space re-quantization 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. Accordingly, 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 again so (step 482), and determined whether that subsequently any filtration has been inserted into or has removed (step 486). Then, in the data retransmission 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 a large amount of attributes or a large amount of grids to each attribute divide. In principle, the grid cell in CBR table (that is, by filtering those unit that cover) that only comprises action rules need to be stored. Can simplify the CBR table with any technology.
And Figure 23 A for example understands the CBR management aspect of method 480, and Figure 23 B for example understands the CBR data retransmission 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 receives 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 receives 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, process described grouping (508) with these working rules. These actions can comprise to be determined and will Packet routing which node or which other position in the network, perhaps comprise abandoning described grouping.
Leak and reduce
So far given CBR method 480 may be deposited owing to the mistake (referring to step 492) of filtering the approximate grouping leakage form that produces. Because matched packet is come on border rather than original filtration border with grid cell, so for the actual area of mating (for example increased, 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, when speed ability and scalability obtained or when being modified in process, and when the sum that leaks wrong grouping with entering relatively be hour, 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 ﹠ $ 2=100 ﹠ S3<30, perhaps $ 1=4 ﹠ $ 2>3) when described system comprises. 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 F1 and F2, and both are defined by the equal test in arbitrary dimension. Described numeral indication grid cell coordinate and described letter is 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.
Figure A0381218000811
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). Be group match the problem of multidimensional to filtering definitely for all properties simultaneously, it does not have scalable solution. Yet the definite coupling in 1D is learned has many efficient and scalable solutions, includes but not limited to: (1) is to filtering the bichotomizing 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 more complicated data structures-such as the search of interval binary search tree etc.
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 the below will describe according to the 1D exact match reduces step 516.
A. not leaking execution CBR coupling step 508 in the situation about reducing, (if there is not coupling, then lose grouping) as mentioned above;
B. for the grouping (referring to top step 508) of mating, select an attribute dimension, and with any ID exact match technology and respective data structures thereof this property value of described grouping and all are filtered the projection matching of border on this attribute axis. Obtained to have found for it tabulation of whole forward node of the filtration of mating;
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. have coupling, select so another attribute dimension and repeating step b, until (i) in any dimension, all find it is mismatch; (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 any one that e. describe in steps d lost condition and do not occured, and test all properties and do not have mismatch, a judgement that does not abandon grouping can be made so.
F. in 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, having being grouped in of property value $ 1=a ﹠ $ 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 information content of the described data retransmission path of described intelligent router 92, so that (step 510) (namely 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 being determined by step 508 so, and upgrade corresponding classified statistics amount (step 514). Therefore, if intelligent router 92 is busy, so because route maps to the grouping of grid cell of partial coverage rather than route exceeds " leakages " that the grouping beyond the actual filtration coverage causes be taken as loss in this grid cell, 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 the following describes.
Up to the present, also do not carry out in real time any definite or filtration coupling of predicate one by one. Yet, in method 480, can allow the definite filtration coupling of minimum level, preferably, only have 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 processed afterwards from the first mesh fitting 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. process the attribute test (in for example, the string matching, regular expression, character string, in the array, range arithmetic etc.) of more complicated character by described filtration grouping method.
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 by top step 498 the filtration predicate of the attribute of in 1-3, describing. In addition, if intelligent router 92 not busy (referring to step 520), with mating by filtration predicate or that other are definite this grouping and the filter vat coupling of being determined by the grid cell of partial coverage, the grid cell of described partial coverage is determined according to the CBR table so. Reduced by (from the sum that filters) by calculating in advance (at step 482-500) already because be used for the filter vat of this grid cell or quantization areas, so this process is carried out directly the one by one CBR of predicate simply, so more effective.
(step 512) (determined by step 508) before based on the described grouping of described CBR table route, 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) of the grid cell that maps to partial coverage. If have the filtration predicate (for example, according to previous example 1-3) of this minimizing or from there being the grouping of this mapping, carry out so one by one filtration coupling predicate or that other are definite (step 524). Then, according to the grouping of for example moving route to mate by the common factor of asking between the interface list that obtains by these two kinds of methods from the route that CBR shows and definite coupling is determined, (step 512), and update packet statistic (514).
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 to map to fully the grouping of the grid cell that covers, and the grouping that is used for mapping to the grid cell of partial coverage. Traffic threshold step 510 may only be carried out in the grid cell path of partial coverage.
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 main distinction in this alternative steps is to produce filtration list of labels rather than forward node tabulation;
If b. described tabulation is empty (namely not mating), lose so described grouping;
If c. there is at least one coupling, so described search proceeds to another attribute. Step ac is repeated, until the following condition that each is taken a shortcut satisfies: (i) all found mismatch under the dimension in office; (ii) in by all the filtration list of labels at front ID test generation, there is not general filtration label; Perhaps, (iii) after tested all dimensions; And
If any one that d. describe in step c lost condition and do not occured, and test all properties and do not had mismatch, can make so a decision of accepting grouping.
For example, in above-mentioned figure, the grouping with property value (a, d) will be to $ 1 test generation F2, to $ 2 test generation F1. Because two are filtered between the list of labels and are not occured simultaneously, so will lose described grouping. On the other hand, the grouping with property value (a, c) will all produce F2 in $ 1 and $ 2 tests, make thus described grouping be accepted. 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. Only having 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 occuring by following process:
1. create a plurality of grid table, comprise the attribute set (for example, select ($ 1, $ 2, $ 3) as a set, ($ S2, $ 4, $ 5) is as another another set) corresponding to complete or collected works' subset displacement. 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 the above outline at step c each lose a minute set condition (for example, filtering list of labels occurs simultaneously) and can before testing all properties, occur.
Because it is unpractical and rare allowing filtration comprise a large amount of predicates, so certain of filtration expression formula blocks, although be essential, can not occur continually.
Interblock space quantizes and this mixed process of crossed product and the contribution point of another key that aforesaid multilist lookup method consists of this patent, this is because these two kinds of methods of making up have solved the traditional problem of the not scalability that any crossed product solution often faced, as below will seeing.
In the situation of a filtration, the crossed product solution is definite. Yet in the situation that scope is filtered, owing between arbitrarily to adjacent filtration border, need to store the crossed product that list of labels is filtered in conduct, there are two problems traditionally. The first, when scope from high superposed each other to system that inject was filtered, storage had N2Rank, wherein N is the number that filters. The second, the common factor list of steps has the N rank, and when N was larger, this may be a very slow process. The mixed processing mode of composite grid search and crossed product method is summed up as rational size with two problems, because only have 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 to construct described grid based on filtering the border, in arbitrary attribute dimension number, in each grid cell interval, will produce so even number and filter. When N diminishes, storage problem N2Just become and be not difficult to so tackle. For example, the grid at 32 intervals just might reduce storage problem for (N/32)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 well its effect just. Attribute is divided into various displacement collection and distributes the method for a CBR table that the NE number in each table is restricted to rational number for each collection. 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 Lk By using the method for a plurality of tables (size=4), now size is reduced to M L4, wherein M less than displacement total k! / (k-4)! 4! It should be noted that some are replaced each other high superposed and only have one can select and be used as representative. (for example, and $ 1, and $ 2, $ 3}, and $ 1, and $ 2, $ 4}, $ 1, and $ 2, $ 5}).
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) forwarding of packets speed is very fast, and can compare with the IP route, only need O[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) forwarding of packets speed is constant in real time. It does not depend on the number (N) of filtration. This character becomes possibility so that estimate the sustainable maximum bandwidth capacity of this CBR method; 3) it also is fast for dynamic renewal. For example, insert filtration and can adopt O (L according to implementationk) step; 4) storage demand is very little and limited, is k (L-1) S approxA+N xL 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 only has 1 MB; 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 only has (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, thus so that the method is highly susceptible to scalable 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 probably will receive for it 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 larger 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 A0381218000881
In first figure, meticulous grid is superimposed upon on the zone of heavy amount of packet communication. In the second figure, for example understand a kind of alternative, change mesh spacing in arbitrary attribute axis, so that more grid cell is meticulousr, and more concentrate on for example by quantizing coordinate (3,2), (4,2), (3,3) and in (4,3) area of surrounding.
The advantage of this adaptive mesh is a lot. As can seeing among this figure, quantized adaptively regional Z. The chances are in regional Z, and four (4) grid cells do not carry out adaptive quantification, have at present 64 (64) grid cells. Such just as shown in this figure, although filter three grid cells that coverage information sS may have partial coverage in advance, only there is the grid cell Y of (a 1) partial coverage according to adaptive mesh. Therefore, potential leakage rate is reduced significantly. In addition, if the one or more of 64 grid cells among the regional Z have partly been covered, the potential leakage rate of each in these grid cells will be significantly less than the leakage rate in the grid cell Y of partial coverage so. This is because the relaxation area of each in the grid cell of this partial coverage can be significantly less than the relaxation area among the grid cell Y of partial coverage among the regional Z. Therefore, can be by improve the efficient of CBR method 480 with 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 slightly owing.
Realize inquiry-response according to distribution-reservation architecture
Described herein is for supporting to inquire about with the publish-subscribe network-the mutual serial of methods of respond style. Described method relates to from original abstract (namely publication (being also referred to as notice) and subscribe) of distribution-subscription type to those inquiry-respond styles the different mappings of (namely advertisement (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, publisher creates and sends the content item that is called publication or notice. In many systems, be the tuple of type attribute with these information structurings, and in some systems, be called the discriminative attributes of theme as the Main classification device of described notice. The subscriber creates and distribution is subscribed, and these are subscribed and characterize their interested notice. Notify normally single content item, characterize one group of interested notice and subscribe usually with complicated expression formula. 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 with respect to the reservation of activity when notifying, and do not mate with respect to reservation in the future.
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 advertiser or the producer is made available content to other entities, and described entity is so that the existence of this content learns people by following advertisement or supply, and described advertisement or supply characterize the single or interested content item collection that described entity can provide. Be called requestor or consumer's the following inquiry of another entity broadcasts or request, described inquiry or request characterize single content item or interested content item collection. Then described application is responsible for the advertisement of position matching and as 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 retracts the mutual serial of methods of type for what support alternately with the push-type of distribution-subscribe to inquire about-respond. Five illustrative methods that are used for realizing it are below described.
1. Figure 24 A is the flow chart 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 (in the corresponding function that perhaps comprises in ASIC 91), and for example adopt such as the software module by agency's 128 and 105 representatives and realized that described software module is carried out by the processor 134 and 114 in subscriber set 122 and 100.
In method 600, come match advertisements and inquiry with the publish-subscribe network, the advertiser registers single or set of advertisements (step 602) with subscribing whereby, and the requestor distributes single query (step 604) with publication/notice. 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 carry out with above-mentioned foundation structure and 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 for example understands: 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 flow chart that illustrates the second 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 (in the corresponding function that perhaps 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 134 and 114 in subscriber set 122 and 100.
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, in order to re-issue periodically the advertisement (step 618) that those have been issued first with initial theme. The consumer submits a reservation to initial theme to, in order to receive new advertisement (step 612), and its submits to another reservation to the theme in past in order to 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 for example understands: 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 flow chart 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 (in the corresponding function that perhaps comprises in ASIC 91), and for example adopt such as the software module by agency's 128 and 105 representatives and realized that described software module is carried out by the processor 134 and 114 in subscriber set 122 and 100.
The publish-subscribe network has been added 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 in order to be single content item advertisement (step 634). The consumer submits single reservation in order to 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 for example understands: 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 flow charts 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 (in the corresponding function that perhaps comprises in ASIC 91), and for example adopt such as the software module by agency's 128 and 105 representatives and realized that described software module is carried out by the processor 134 and 114 in subscriber set 122 and 100.
Figure 24 G for example understands the data advertising stage of method 650. Receive a data advertisement (step 652). In order to allow the consumer with subscribing the specifies query collection and allowing the producer to come to advertise for single content item with notice, and in order to realize because 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 (the data advertisement of conversion) 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). In step 654 and 660 from old space (for example data advertisement) conversion of (for example equivalence subscribe) at first is included in defined attribute the new space to new space, these attributes representatives come from the combination of attribute and the expression solution symbol of old space. Then described conversion is included in and creates notice and reservation in the new space, and these notices and reservation are equivalent to respectively inquiry and the advertisement in old space. 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 carry out with above-mentioned foundation structure and 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 for example understands: 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=V1×V 2×... ×V m, V whereiniA data set (1≤i≤m) and AjBe 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=Aiα i v i, F,G∈Q,α i:V i×V i→B,v i∈V i; And,The E (A) that it is generally acknowledged that and if only if= Very when (true), an inquiry E ∈ E just mates with advertisement A ∈ A Equally, also make following supposition: a notice (notification) is an element N ∈ N, causes N=V1 ×V 2×...×V n, V whereiniA data set (1≤i≤n), and NjRefer 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=Niα iv i,F,G∈S,N∈N,α i:V j×V i→B,v i∈V i; And,Generally S (the A)=true time of thinking that and if only if, notice N ∈ N are just and subscribe S ∈ S coupling.Be a pair of function (MP with the mapping definition between A and the S, between Q and the NAS,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 namely: (MPAS(A))(MP QN(Q))=Q(A)
As the simplification and assumption condition, a query expression often is considered and includes only singular predicate (such as " Aiα iv i") and the arbitrary query expression of " and " operator can express and process as each disjunct of inquiry independently with the DNF form). Next part is presented the exemplary map solution, at first particular case is used and then ordinary circumstance 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 operator that is the V definition, and described mapping problems becomes: N=MPQN(Aαv)and S=MP 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 operator α for working as1,α 2,...α nSituation, described mapping is: S=MPAS(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 -1 null ai=true.
Substituting mapping can be: S=MPAS(A=a)=“(A α1α 1 -1a)or(A α2α 2 -1 a)or...or(A αnα n -1And N=MP a) "QN(Aα k a)=“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 -1 null αi=false (false).
The query mappings of extracting
For a single operator and an inquiry of extracting, described mapping seems as follows: A=" A=a ", Q=" (A α a1)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 a Note, for arbitrary operator, do not guarantee function SUPER α (a1,a 2..., a) there be (in fact, people can easily define the operator 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 " U (...), is a=a for "="1If/a1==a 2...==a nAnd can be null etc.
For a plurality of operators and the inquiry of extracting, that mapping seems is following (our supposition: each operator 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 α Za α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 ordinary circumstance mapping
Provide advertisement A and inquiry Q, A=" A1=a 1,A 2=a 2,...A n=a n", and Q=" ... and (Aiα ika i) and... ". Described mapping is as follows: S=" ... and (Aikα ik -1a i) and... ", wherein: i=1, n, wherein n=comes from the field number of described advertisement, and k=1, mi, m whereini=operator number that field type is supported, and N=" ..., Aαk=SUPER αk({a αk1,a αk2... }) ... ", a whereinαkiTo appear at " Aikα ik -1a αki" value of inquiry predicate inside of form, if for αikThe words that have now this element.
Below be some examples of mapping transformation described herein.
Example 1
We consider a kind of simple stock market information system. 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 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}。
For the distribution of top inquiry-response-reservation mapping be:
Notification scheme (Symbol==, Price==)
Reservation mapping to the data advertisement:
S 1=MP AS(A 1)=(Symbol==“IBM”)AND(Price==70.12),
S 2=MO AS(A 2)=(Symbol==“LU”)AND(Price==5.30),
S 3=MP AS(A 3)=(Symbol==" KKD ") AND (Price==30.23), and
S 4=MO 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=MP QN(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 A0381218000951
  MP QN(Q 1):{MP AS(A 1)},
N 2:       {S 2}           
Figure A0381218000952
  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)}。
Example 2
We consider a kind of simple stock market information system again. 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 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}。
To the described distribution of above-mentioned inquiry-response-reservation mapping:
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}              MP QN(Q 1):{MP AS(A 1)},
N 2:       {S 2}           
Figure A0381218000972
  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 is so that the producer can distinguish notice, advertisement and response, and so that the consumer can distinguish reservation and inquiry. Described network is followed the difference between the various primitive, realizes simultaneously two types mutual with consistent set of data structures, algorithm and agreement simultaneously.
Lasting and reliable message delivery
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 afterwards them. 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 in the out of order situation, the subscriber who connects all the time should be unable to need any persistence except the desired persistence of these proprietary application. Yet, in fact, message is understood when walking by network because of following a variety of causes and possibility " losing ", described reason for example is: (1) occurs in the network or in fault or the buffer overflows of user side, perhaps (2) user disconnects clearly network connection and reconnects 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 usually only is used for real-time data, 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; So that the user can explicitly retrieve data from Cache; By preventing router failure and between router, setting up reliable tunnel to come to flow via the lasting data of carrying out of network; 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 receive 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 to 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 retrieval missing data or recover from router failure. Described cache manger 218 is responsible for cached datas in order to 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 memory 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 the data of retrieving and the data that are used for organizing described retrieval.
Although not shown among Figure 25 A, preferably 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. Although the publish-subscribe network often comprises a plurality of one-levels upstream core routing node, Fig. 2 5A has only described an one-level upstream core routing node, and namely the core routing node 548. As mentioned above, the data at the network node place that is positioned at for it of cache manger 218 provide local cache. 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 operate independently, perhaps as shown in the figure, also can communicate by letter each other and/or transfers control.
Figure 25 C is the flow chart 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. , these routines are preferably operation independent of each other in operation. 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 93 in the intelligent router 92. As selection, it can adopt ASIC or combination of hardware to be realized, is perhaps realized in the physical equipment identical or different from corresponding intelligent router 92. The message that described intelligent router 92 is cached needs is forwarded to cache manger 218. 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 etc., 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 memory (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 memory, carry out high-speed cache and can only reach duration G (step 556). Determine (step 559) after time interval G passes by at cache manger, data are moved on to described dish (step 560). Cache manger 218 is stored data for the duration of lasting timeout interval T at described dish.
In case time interval G becomes greater than lastingly overtime (T)+interval upper limit (step 562) of described passage, 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 deletion data from described dish, the strategy that preferably uses 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 the interval began 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 interval, so in Cache 540, upper each theme of random time point will have N+1 data block (have on the dish in the individual and memory of N and have 1).
If the request (step 566) that described cache manger 218 receives data, so described cache manger 218 uses described index (step 568) to retrieve the data of the high-speed cache of asking (time T is not also not in the past), and pass on the data of retrieving to P, in order to 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 the fault at the cache manger 218 at given intelligent router 92 places, except storage data in Cache 546, also store data in the Cache of upstream core routing node (for example, the core routing node 548) of the first order. 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 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 at different edges routing node again mobile subscriber connected to the network), act on behalf of so 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 before movement. Even making like this subscriber's machine 122 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 data (step 582) from described Cache. The Cache position of agency's 128 usefulness storage next (for example using the getcache order) is enabled the Cache 546 that is in suitable edge routing node and is obtained data (step 584). Agency 128 can indicate the when frame of wanting retrieve data. As selection, cache manger 218 can check that the connection historical (referring to top table 18) of subscriber's machine 122 is in order to 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 so 128 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 locates 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 (namely deleting the data of repetition) (step 592).
B. the persistence by error 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 losing message during fault condition, each in these assemblies needs protected.
1. channel manager error protection
Above with reference to Fig. 6 channel manager has been described. By copying to prevent described channel manager fault. Described channel manager operates 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 to 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 error protection
For the route infrastructure component, there are several level restorations. (0 grade, 1 grade until 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 in order to recover from hardware fault. Hardware resource in the router is copied. The main advantage of 0 level restoration is that recovery 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 affect 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 switching and routing 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 on the contrary system-wide 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 multichannel 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 multichannel broadcasting. Any fault in the network is processed by more low-level recovery process. If recover and can't use than low level, so progressively raising returns to next higher level. If do not resume work than low level, use so 3 level restorations.
3. reliable tunnel
In order to prevent losing 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 terminal, the message of then asking the sender to resend to lose.
Although 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 routing and other functions. Scope of the present invention only by claims with and the equivalence limit.

Claims (193)

1. one kind is used for carrying out the method that distribution-reservation operates on insecure network, comprising:
Use the network reception to the reservation of content; And
Come issued content with network based on the reservation to content, comprising:
Reception relates to the notice of the described content of a node in described 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.
2. the method for claim 1, the wherein said step of transmitting selectively is included in to transmit in the described notification procedure and receives indicating fault, and responds described indication and again transmit described notice.
3. the method for claim 1, wherein said forwarding step comprise the grouping of transmitting a described notice of encapsulation.
4. the method for claim 1, wherein said forwarding step comprises with Internet protocol transmits described notice.
5. the method for claim 1, wherein said forwarding step comprise transmits described notice take individual node to node as the basis.
6. the method for claim 1, wherein said determining step comprise determines whether described content satisfies one or more standards of content subscription.
7. the method for claim 1, wherein said forwarding step comprise with router described notice are forwarded to adjacent node.
8. the method for claim 1 also is included in the network and repeats described distribution steps as the basis take node-to-node, until described notice is forwarded to one or more subscribers corresponding to described reservation.
9. the method for claim 1, the wherein said step of transmitting is selectively used transmission control protocol.
10. a router that is used for carrying out distribution-reservation operation on insecure network comprises be used to carrying out the as claimed in claim 1 module of method.
11. a wide area network that is used for carrying out distribution-reservation operation comprises:
One or more subscriber's machines; And
A plurality of routers, each of wherein said a plurality of routers comprises:
Subscribe receiver module, wherein said reservation receiver module is via the content subscription of described wide area network reception corresponding to one or more subscriber's machines; And
Issuing module, wherein said issuing module comprises:
The notice receiver module, wherein said notice receiver module receives the notice of the content that relates to the nodes place;
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, until described notice is forwarded to subscriber's machine corresponding to one or more reservations.
12. a method that is used for carrying out distribution-reservation operation on insecure network comprises:
Via the reservation of network reception to the content of first node in the network;
Reception relates to the notice of the content of first node in the network;
Use described content subscription according to content-based routing (CBR), determine whether and to be forwarded to the second adjacent node to described notice; And,
Based on describedly determine, the service-strong host-host protocol is forwarded to Section Point to described notice selectively.
13. method as claimed in claim 12 further comprises step:
Transmit fault if between first node and Section Point, exist, receive so the indication of transmitting fault; And,
Respond described indication and again described notice is forwarded to Section Point.
14. method as claimed in claim 12, also be included in transmit selectively before the step, the step of the described notice of buffering in buffer.
15. method as claimed in claim 14 also comprises the step that moves to second-level storage after after a while, the notice that cushions.
16. method as claimed in claim 14 also comprises take the step of first in first out as the notice basic, that deletion is cushioned.
17. method as claimed in claim 14 also comprises take the step of service quality as the notice basic, that deletion is cushioned.
18. method as claimed in claim 12 also is included in the step of the described notice of Cache high speed buffer memory at first node place.
19. method as claimed in claim 12, the wherein said step of transmitting is reliably used transmission control protocol.
20. a router that is used for carrying out distribution-reservation operation on insecure network comprises be used to carrying out the as claimed in claim 12 module of method.
21. a wide area network (WAN) that is used for carrying out distribution-reservation operation comprising:
One or more subscriber's machines; And
A plurality of routers, each of wherein said a plurality of routers comprises:
Subscribe receiver module, wherein said reservation receiver module receives the content subscription corresponding to one or more described subscriber's machines of first node among the WAN with described WAN;
The notice receiver module, wherein said notice receiver module receives the notice of the content that relates to first node;
Content-based routing module, wherein said content-based routing module determine whether and will be forwarded to Section Point among the WAN 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, until described notice is forwarded to one or more subscriber's machines corresponding to content subscription.
22. network as claimed in claim 21, wherein said reliable forwarding module uses transmission control protocol.
23. a method that is used for carrying out distribution-reservation operation on insecure network comprises:
The service-strong host-host protocol is set up reliable tunnel between two adjacent nodes;
Receive the content subscription of the first adjacent node in the network via network;
Reception relates to the notice of the content of the first adjacent node in the network;
Use described content subscription according to content-based routing (CBR), determine whether and to be forwarded to the second adjacent node in the network to described notice; And,
Determine, use described reliable tunnel selectively described notice to be forwarded to the second adjacent node in the network based on described.
24. a router that is used for carrying out distribution-reservation operation on insecure network comprises be used to carrying out the as claimed in claim 23 module of method.
25. a network that is used for carrying out distribution-reservation operation comprises a plurality of such as the described router of claim 24.
26. one kind is used for propagating the method for filtering at the publish-subscribe network, comprises:
Reception relates to a plurality of filtrations of content subscription in the network;
Reduce the filtration number according to specific standard; And
In network, propagate the filtration of decreased number, for the usefulness that satisfies content subscription.
27. method as claimed in claim 26, it is one or more that wherein said minimizing step may further comprise the steps:
To the approximate operation of one or more execution of a plurality of filtrations; And
One or more execution union operations to a plurality of filtrations.
28. method as claimed in claim 27 is wherein carried out described union operation step and is comprised whether the filtration of determining merging can exceed a grouping leak threshold.
29. comprising via the content-based routing network, method as claimed in claim 26, wherein said receiving step receive a plurality of filtrations.
30. method as claimed in claim 26, wherein said propagation steps comprises uses one or more processes of a plurality of particular procedures of selecting from the tabulation that comprises following content to propagate described filtration, and what described tabulation comprised thes contents are as follows: positive propagation scheme; The inertia propagation scheme; Response commercials scheme; Scheme after network topology is calculated; Regularly disseminate scheme; Filter again propagation scheme during the fault repair; Filtration during network reconfigures is propagation scheme again.
31. method as claimed in claim 26, wherein use the one or more of a plurality of specific mechanism of selecting from following tabulation to connect for source node and the destination nodes propagated, described tabulation comprises: hop-by-hop skips, end-to-end, use the tunnel and use transmission control protocol.
32. method as claimed in claim 26 also is included in the network one or more positions of a plurality of ad-hoc locations and injects described filtration.
33. method as claimed in claim 26, wherein said propagation steps comprises based on the one or more behaviors in a plurality of specific behaviors of intended recipient propagates described filtration, described behavior is selected from the tabulation that comprises following content, and described content comprises: mobile, lasting and interim.
34. method as claimed in claim 26, wherein said propagation steps comprises based on one or more behaviors of a plurality of specific behaviors of the sender of one or more filtrations propagates described filtration, described behavior is selected from the tabulation that comprises following content, and described content comprises: mobile, lasting and interim.
35. method as claimed in claim 26, also comprise one or more steps in a plurality of particular procedure steps are carried out in one or more filtrations, described treatment step is selected from the tabulation that comprises following content, and described content comprises: property content conversion, expression formula expansion, expression formula conversion, expression conversion, coding/decoding and encrypt/decrypt.
36. method as claimed in claim 26 also comprises according to the one or more forms in a plurality of specific formats and formats the message that comprises one or more filtrations.
37. method as claimed in claim 26, wherein said propagation steps comprises according to the one or more strategies in a plurality of specific policies of selecting from the tabulation that comprises following content or the process or process propagates described filtration, and described content comprises: manage, safeguard, filter persistence, property enhancement strategy, monitor and account.
38. method as claimed in claim 26, wherein said propagation steps comprises:
Determine to filter communication strategy as the network topology on basis, the network topology on wherein said basis comprises for what propagate that filtration must satisfy and is used for filtering the one or more of a plurality of demands of propagating; And
The filtration of satisfying to propagate decreased number based on determined filtration communication strategy demand.
39. method as claimed in claim 38, wherein said definite filtration communication strategy are one that comprises in the tabulation of following content, described content comprises: positive propagation scheme; The inertia propagation scheme; Response commercials scheme; Scheme after network topology is calculated; Regularly disseminate scheme; Filter again propagation scheme during the fault repair; Filtration during network reconfigures is propagation scheme again.
40. method as claimed in claim 26, wherein said receiving step are received in a plurality of filtrations of the core router in the network.
41. method as claimed in claim 26, wherein said receiving step are received in a plurality of filtrations of the edge router in the network.
42. method as claimed in claim 26, wherein said receiving step receives a plurality of filtrations of publisher's machine in the network.
43. one kind is used for propagating the router that filters at the publish-subscribe network, comprises be used to carrying out the as claimed in claim 26 module of method.
44. a publish-subscribe network comprises a plurality of routers, described router comprises be used to carrying out the as claimed in claim 26 module of method.
45. a publish-subscribe network comprises subscriber set, described subscriber set comprises be used to carrying out the as claimed in claim 26 module of method.
46. one kind is used for propagating the equipment that filters at the publish-subscribe network, comprises:
Filter receiver module, wherein said filtration receiver module receives a plurality of filtrations that relate to the content subscription in the network;
Filter and reduce module, wherein said filtration reduces module and reduces the number that filters based on specific criteria; And
Filter propagation module, wherein said filtration propagation module is propagated the filtration of decreased number for the usefulness of satisfied reservation in the publish-subscribe network.
47. equipment as claimed in claim 46, wherein said filtration reduce module and also comprise:
Filter approximate module, the approximate module of wherein said filtration is to the approximate operation of one or more execution of a plurality of filtrations; And
Filter and merge module, the two or more filtrations in a plurality of filtrations of wherein said filtration merging block merging.
48. equipment as claimed in claim 46 also comprises:
The filtration treatment module, the one or more filtrations of wherein said filtration treatment module conversion; And
The filter packets module, wherein said filter packets module is come filtration is divided into groups based on the degree of approach of described filtration and other filtrations.
49. one kind is used for propagating the method for filtering at the publish-subscribe network, may further comprise the steps:
(a) a plurality of filtrations of reception nodes;
(b) process one or more filtrations that receive, in order to reduce the number that filters;
(c) determine whether to propagate filtration based on addressee's rule of conduct; And
(d) propagate the handled next node in the network that is filled into.
50. method as claimed in claim 49 also comprises:
Determine whether to propagate filtration based on sender's rule of conduct.
51. method as claimed in claim 49 also comprises the step of determining whether to exist after the next node another node in network.
52. method as claimed in claim 49 is if determine to exist another node, so repeating step (b)-(d).
53. method as claimed in claim 49 also comprises and determines whether in network next node exists the step of the additional filtration that will receive.
54. method as claimed in claim 53 is if determine that there is the additional filtration that will receive in next node in network, so at new node repeating step (a)-(d).
55. method as claimed in claim 49, wherein said treatment step comprises one or more following steps:
Simplify described filtration in order to remove redundant predicate expression formula;
Described filtration is asked approximate;
The described filtration of cluster;
Described filtration is sorted out; And
Merge two or more filtrations.
56. method as claimed in claim 55, wherein said treatment step also comprises:
Filtration is divided into groups; And,
The wherein said approximating step of asking asks approximate to the filtration in described group, filtration in described group is located and collected to described sorting procedure with respect to the degree of approach of filtering, described classification step is sorted out the filtration in described group, and described combining step merges the filtration in described group.
57. method as claimed in claim 56, wherein said grouping step is only divided into groups to the filtration that comes from the downlink relevant with theme.
58. comprising, method as claimed in claim 55, wherein said combining step determine whether the filtration that merges will exceed the grouping leak threshold.
59. method as claimed in claim 49, wherein said treatment step also comprises:
Described filtration is asked approximate; And,
Sort out and merge and ask the filtration that has been similar to.
60. method as claimed in claim 49, wherein the node in the network comprises the filtration of storage, and wherein said treatment step processes the filtration receive and the filtration of storage, in order to reduce the number that filters.
61. method as claimed in claim 60, the filtration of wherein storing are the filtrations that receives in advance and process.
62. method as claimed in claim 49, wherein said receiving step (a) receives a plurality of filtrations of node in the network core.
63. one kind is used for propagating the router that filters at the publish-subscribe network, comprises for the module of carrying out such as method as described in the claim 49.
64. a publish-subscribe network comprises a plurality of routers, described router comprises for the module of carrying out such as method as described in the claim 49.
65. a publish-subscribe network comprises subscriber set, described subscriber set comprises for the module of carrying out such as method as described in the claim 49.
66. one kind is used for propagating the equipment that filters at the publish-subscribe network, comprises:
Filter receiver module, wherein said filtration receiver module receives a plurality of filtrations of nodes;
The filtration treatment module, wherein said filtration treatment module reduces the filtration number of a plurality of filtrations that receive; And,
Filter propagation module, wherein said filtration propagation module determines whether to propagate based on addressee's rule of conduct and filters, if determine to propagate, propagates so the next node in the network that is filled into of decreased number.
67. such as the described equipment of claim 66, wherein said filtration treatment module comprises:
Simplify module, wherein said simplification module reduction filters in order to remove redundant predicate expression formula.
68. such as the described equipment of claim 66, wherein said filtration treatment module comprises:
Grouping module, wherein said grouping module is divided into groups to filtration according to the selection of downlink.
69. such as the described equipment of claim 66, wherein said filtration treatment module comprises:
Approximate module, wherein said approximate module asks approximate to described filtration.
70. such as the described equipment of claim 66, wherein said filtration treatment module comprises:
Classifying module, wherein said classifying module is sorted out filtration.
71. such as the described equipment of claim 66, wherein said filtration treatment module comprises:
The cluster module, wherein said cluster module comes cluster to filter according to filtering proximity to one another.
72. such as the described equipment of claim 66, wherein said filtration treatment module comprises:
Merge module, wherein said merging block merging filters.
73. the filtration transmission method in the publish-subscribe network may further comprise the steps:
A router sends the notice that request is filtered;
One or more downstream routers receive described notice;
Propagate filter request to downstream more;
Wait comes from the response of propagating the downstream router of filter request to it;
Collect filtration from the downstream router of propagating filter request to it;
Process the filtration of propagating in order to reduce the number that filters; And,
The filtration of decreased number is upstream sent to the router that request is filtered.
74. such as the described method of claim 73, also comprise:
Each downstream router upgrades the bookkeeping database, receives filter request in order to reflect from router; And
Determine whether obtained service from the router of its receiving filtration request.
75. a publish-subscribe network comprises a plurality of routers and publisher's machine, it comprises for the module of carrying out such as method as described in the claim 73.
76. a method that is used for the content-based routing of grouping in the publish-subscribe network comprises:
Receive the grouping in the network;
The access regulation is filtered the mapping of coverage in attribute space;
Check packet content, for the usefulness to the route decision of grouping;
Use described mapping to help the route of grouping is determined;
Make the route decision based on the packet content that checks and mapping; And
Determine the described grouping of route based on described route.
77. such as the described method of claim 76, wherein make the route deciding step and also comprise described content and corresponding subscription are complementary.
78. such as the described method of claim 77, wherein said coupling step comprises uses a plurality of conjunction to filter so that the identification coupling.
79. such as the described method of claim 77, wherein said coupling step comprises the execution attribute test.
80. such as the described method of claim 76, wherein make the route deciding step and comprise the online mapping of use.
81. such as the described method of claim 76, also comprise off-line or utilize background process to calculate in advance the filtration coverage.
82. such as the described method of claim 76, comprise also calculating in advance and filter coverage that wherein said in advance calculation procedure comprises to be asked approximate and reduce to filter expression formula filtering expression formula.
83. such as the described method of claim 76, comprise also and calculate to filter coverage that wherein said calculating is filtered coverage and comprised spatially attribute space is quantified as the grid that comprises grid cell.
84. such as the described method of claim 83, wherein said calculating is filtered coverage and is comprised:
Make up filtering coverage information and grid; And
The unification of the action of asserting based on the filtration coverage information in each grid cell generates described mapping.
85. a router that is used for the content-based routing of grouping in the publish-subscribe network comprises for the module of carrying out such as method as described in the claim 76.
86. one kind comprises the network such as the described a plurality of routers of claim 85.
87. a computer-readable medium comprises for the instruction of carrying out such as the described method of claim 76.
88. one kind for the grouping content-based routing method, comprising:
(a) quantified property space spatially, wherein said spatially quantization step creates the grid that comprises grid cell;
(b) sign is by the grid cell of a plurality of filtrations coverings, and wherein each filtration has the attribute that at least one is asserted; With
(c) action rules of utilizing a plurality of filtrations to assert is upgraded content-based routing (CBR) table, and described filtration covers the grid cell of step (b) sign.
89. such as the described method of claim 88, further comprising the steps of:
Determine whether one or more different filtrations to be inserted or from node, remove; And
Based on whether one or more different filtrations are inserted or come in described node execution in step (b) and (c) from determining of removing of node.
90. such as the described method of claim 88, further comprising the steps of:
Receive the grouping of distribution; And
The grouping that receives is plotted to described grid.
91. such as the described method of claim 90, wherein for the grouping that is plotted to the grid cell that is covered fully by the filtration coverage information of calculating, described method also comprises:
Check that described CBR table moves in order to determine route for the grouping that is plotted to the grid cell that covers fully.
92. such as the described method of claim 91, also comprise:
Determine that described Internet traffic is whether on the threshold value that arranges; And
If determine described Internet traffic on the threshold value that arranges, move so the grouping of route distribution based on the route of determining.
93. such as the described method of claim 92, also comprise:
Be equal to or less than the threshold value of setting if determine Internet traffic, carry out so to leak and reduce.
94. such as the described method of claim 93, wherein said execution is leaked and is reduced the definite coupling that step comprises one dimension.
95. such as the described method of claim 93, wherein said execution is leaked the minimizing step and is comprised crossed product.
96. such as the described method of claim 93, wherein carry out to leak reduce step and comprise that the complete set according to the subset of the displacement of finite population and various attributes forms a plurality of grids and CBR table.
97. such as the described method of claim 92, also comprise:
Be equal to or less than the threshold value of described setting if determine Internet traffic, determine whether so to exist the filtration predicate that reduces arbitrarily or be plotted to the grouping of the grid cell of partial coverage;
If the grouping of determining there is the filtration predicate that reduces or being plotted to the grid cell of partial coverage, predicate ground carry out to filter coupling so one by one, moves in order to determine route for the filtration predicate of any minimizing and any grouping that is plotted to the grid cell of partial coverage; And
Move the described grouping of route based on determined route.
98. such as the described method of claim 88, also comprise reducing to filter expression formula.
99. such as the described method of claim 88, wherein step (a) comprises the described attribute space of adaptive quantizing.
100. such as the described method of claim 99, the distributed intelligence of wherein said adaptive quantizing step group-based quantizes described attribute space adaptively.
101. such as the described method of claim 88, the distributed intelligence of wherein said space quantization step group-based quantizes described attribute space spatially.
102. such as the described method of claim 88, described grid is upgraded in the distributed intelligence of wherein said space quantization step group-based.
103. such as the described method of claim 88, wherein step (c) generates or upgrade the act bit shielding of grid cell, wherein said grid cell is covered by computer filters coverage information.
104. such as the described method of claim 88, wherein step (c) generates or upgrade the action link table of grid cell, wherein said grid cell is covered by computer filters coverage information.
105. such as the described method of claim 88, also be included in the parameter of upgrading capping unit in the CBR table, wherein said parameter comprises the statistical information about filter distribution.
106. such as the described method of claim 88, comprise also and collect the statistical information that distributes about grouping that wherein said grouping distributed intelligence is used for step (a).
107. such as the described method of claim 88, step (a) to (c) off-line execution wherein.
108. such as the described method of claim 88, also comprise and carry out content-based routing (CBR) wherein only have the rule in CBR table and the CBR table to be used to carry out described CBR.
109. an equipment that is used for the content-based routing that divides into groups at the publish-subscribe network comprises for the module of carrying out such as method as described in the claim 88.
110. such as the described equipment of claim 109, wherein said equipment is router.
111. a network that comprises a plurality of routers, described router comprise for the module of carrying out such as method as described in the claim 88.
112. a computer-readable medium comprises for the instruction of carrying out such as method as described in the claim 88.
113. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
Reception relates to the advertisement of data set;
Receive the inquiry that represents logical expression;
Described advertisement is mapped to corresponding reservation;
Described query mappings is notified to corresponding;
Use the corresponding subscription that is used for realizing described advertisement; And
Use the corresponding notice of the inquiry that is used for the realization network.
114. such as the described method of claim 113, wherein said mapping advertisement step is included as described advertisement execution ordinary circumstance mapping.
115. such as the described method of claim 113, wherein said map locating step comprises to be carried out being the query mappings of extracting of described inquiry.
116. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
Create and subscribe so that register advertisements;
Release note is so that the distribution inquiry;
Carry out content-based routing (CBR) in order to described notice is pushed to the advertiser with described reservation; And,
Response data is returned to the requestor.
117. such as the described method of claim 116, the wherein said step of returning uses the clean culture between advertiser and the requestor to connect realization.
118. such as the described method of claim 116, the wherein said step of returning comprises that the requestor is that response data creates new reservation, and uses new reservation to carry out CBR in order to response data is pushed to the requestor.
119. such as the described method of claim 116, wherein said foundation step create subscribe in case registration to the advertisement of one group of data.
120. a publish-subscribe network that be used for to realize that inquiry-response is mutual comprises router, publisher's machine and subscriber's machine, it comprises for the module of carrying out such as method as described in the claim 116.
121. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
Receive the reservation that is used for register advertisements;
Receive the notice that is used for the distribution inquiry;
Use described reservation to carry out content-based routing, in order to determine whether described notice is forwarded to adjacent node; And,
Selectively transmit described notice based on described defining.
122. one kind is used for realizing the equipment that inquiry-response is mutual at the publish-subscribe network, comprises for the module of carrying out such as method as described in the claim 121.
123. such as the described equipment of claim 122, wherein said equipment comprises router.
124. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
Distribution has the notice of initial theme;
Distribution has the in the past notice of theme, wherein has the advertisement of distribution before the notice of theme belongs in the past;
Submission is to the reservation of past theme, is inquiry to the advertisement of former distribution to the reservation of past theme wherein; And
Use is carried out content-based routing to the reservation of past theme, so that the advertisement pushing that will issue in the past is to the consumer.
125. such as the described method of claim 124, also comprise and submit to cancellation to the step of the reservation of past theme.
126. such as the described method of claim 124, also comprise the step of submitting to the reservation of initial theme.
127. a publish-subscribe network that be used for to realize that inquiry-response is mutual comprises router, publisher's machine and subscriber's machine, it comprises for the module of carrying out such as method as described in the claim 124.
128. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
Reception has the notice of initial theme and has the in the past notice of theme, wherein has the advertisement of distribution before the notice of theme belongs in the past;
Reception is to initial theme and to the reservation of past theme, is inquiry to the advertisement of former distribution to the reservation of past theme wherein;
Use is carried out content-based routing to the reservation of past theme, so that the advertisement forwarding that determines whether to issue in the past is to adjacent node; And,
Selectively transmit the in the past advertisement of distribution based on described defining.
129. one kind is used for realizing the equipment that inquiry-response is mutual at the publish-subscribe network, comprises for the module of carrying out such as method as described in the claim 128.
130. such as the described equipment of claim 129, wherein said equipment comprises router.
131. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
The notice that high-speed cache is issued;
Release note so as in the release note of high-speed cache ad content;
Submit to and subscribe so that the notice of inquiry distribution;
Playback comes from the release note of the high-speed cache of described Cache; And,
Carry out content-based routing (CBR) based on described reservation, in order to the release note of resetting is pushed to the consumer.
132. a publish-subscribe network that be used for to realize that inquiry-response is mutual comprises router, publisher's machine and subscriber's machine, it comprises for the module of carrying out such as method as described in the claim 131.
133. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
The notice of high-speed cache distribution;
Receive the reservation of the notice that is used for the inquiry distribution;
Playback comes from the release note of the high-speed cache of described Cache; And,
Use the reservation of described notice for inquiring about distribution to carry out content-based routing (CBR), in order to determine whether to transmit the release note of high-speed cache to adjacent node; And,
Based on the described release note of selectively transmitting high-speed cache that defines.
134. one kind is used for realizing the equipment that inquiry-response is mutual at the publish-subscribe network, comprises for the module of carrying out such as method as described in the claim 133.
135. such as the described equipment of claim 134, wherein said equipment comprises router.
136. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
The receive data advertisement;
Described data advertisement is transformed to reservation;
Receive inquiry;
Described query transformation is notice;
Carry out content-based routing (CBR) in order to described notice is pushed to the advertiser based on described reservation; And,
Based on described notice response data is returned to the requestor.
137. such as the described method of claim 136, wherein said shift step comprises carries out the body conversion.
138. such as the described method of claim 136, the wherein said step of returning uses the clean culture between advertiser and the requestor to connect realization.
139. such as the described method of claim 136, the wherein said step of returning comprises that the requestor is that response data creates new reservation, and uses new reservation to carry out CBR in order to response data is pushed to the requestor.
140. such as the described method of claim 136, wherein said reception query steps receives the inquiry to data set.
141. such as the described method of claim 136, wherein said receive data advertisement step receives the data advertisement to data set.
142. such as the described method of claim 136, wherein said transform data advertisement step comprises described data advertisement execution ordinary circumstance mapping.
143. such as the described method of claim 136, wherein said conversion query step comprises the query mappings of extracting of carrying out described inquiry.
144. such as the described method of claim 136, wherein the described data advertisement of conversion step is included in defined attribute in the reservation, the combination of attribute and expression solution symbol in the advertisement of described attribute representative data.
145. such as the described method of claim 136, wherein conversion is changed described query steps and is included in defined attribute in the described notice, the combination of attribute and expression solution symbol in the described attribute representative inquiry.
146. a publish-subscribe network that be used for to realize that inquiry-response is mutual comprises router, publisher's machine and subscriber's machine, it comprises for the module of carrying out such as method as described in the claim 136.
147. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
Receive inquiry;
Described query transformation is notice; And,
Based on described notice and the content-based routing that is transformed to the data advertisement execution of reservation are received response data.
148. one kind is used for realizing the equipment that inquiry-response is mutual at the publish-subscribe network, comprises for the module of carrying out such as method as described in the claim 147.
149. such as the described equipment of claim 148, wherein said equipment comprises subscriber's machine.
150. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
The receive data advertisement;
Described data advertisement is transformed to reservation;
Coming receiving conversion based on the content-based routing to described reservation and the execution of described notice is the inquiry of notice; And
Based on described notice response data is transmitted to the requestor.
151. one kind is used for realizing the equipment that inquiry-response is mutual at the publish-subscribe network, comprises for the module of carrying out such as method as described in the claim 150.
152. such as the described equipment of claim 151, wherein said equipment comprises publisher's machine.
153. one kind is used for realizing the method that inquiry-response is mutual at the publish-subscribe network, comprises:
Reception notification, wherein said notice is come from query transformation;
Carry out content-based routing (CBR), in order to determine whether described notice is forwarded to adjacent node; And
Selectively transmit described notice based on described defining.
145. such as the described method of claim 153, comprise also receiving and subscribe that wherein said reservation is from data advertisement conversion, and wherein said execution CBR step is carried out CBR based on described reservation.
155. one kind is used for realizing the equipment that inquiry-response is mutual at the publish-subscribe network, comprises for the module of carrying out such as method as described in the claim 153.
156. such as the described equipment of claim 155, wherein said equipment comprises router.
157. a method that is used to the message of sending via the publish-subscribe network that lasting high-speed cache is provided may further comprise the steps:
(a) receive the message with data via described network at first node;
(b) add the time mark for described data;
(c) with described data cache in the Cache of first node; And
(d) use content-based routing that described message is routed to Section Point.
158. such as the described method of claim 157, further comprising the steps of:
(e) at Section Point repeating step (a) to (d), wherein with described data cache in the Cache of Section Point.
159. such as the described method of claim 157, further comprising the steps of:
Determined whether time granularity G passes by since high-speed cache step (c); And
Based on determining of passing by of G, the data of high-speed cache are moved on the dish from Cache.
160. such as the described method of claim 157, further comprising the steps of:
Determined whether lasting time frame T passes by since for the high-speed cache step (c) of last cache data blocks; And
Based on the data of determining to delete high-speed cache of passing by for last cache data blocks T.
161. such as the described method of claim 160, wherein T is based on described data passage associated with it and arranges.
162. such as the described method of claim 157, wherein said first node comprises intelligent router, and receiving step (a) receives the message of intelligent router.
163. such as the described method of claim 162, wherein said intelligent router comprises cache manger, and described cache manger execution in step (b) and (c).
164. such as the described method of claim 157, wherein said Section Point comprises subscriber's machine.
165. a router that is used to the message of sending via the publish-subscribe network that lasting high-speed cache is provided comprises for the module of carrying out such as method as described in the claim 157.
166. a publish-subscribe network that is used for the persistent cache give information comprises a plurality of nodes, described node comprises for the module of carrying out such as method as described in the claim 158.
167. a computer-readable medium comprises for the instruction of carrying out such as method as described in the claim 157.
168. a method that is used to the message of sending via the publish-subscribe network that lasting high-speed cache is provided may further comprise the steps:
Receive the message with data via described publish-subscribe network;
Add the time mark for described data;
In the described data of Cache high speed buffer memory;
Determined whether time granularity G passes by since the high-speed cache step;
Based on determining of passing by of G, with the data mobile of high-speed cache to dish;
Determined whether lasting time frame T passes by since the high-speed cache step for last cache data blocks; And
Based on the data of determining to come deletion high-speed cache from described dish of passing by for last cache data blocks T.
169. such as the described method of claim 168, also comprise the request that determines whether to have received to cached data.
170. such as the described method of claim 169, wherein the request of cached data received from subscriber set.
171. such as the described method of claim 169, also comprise based on the data of determining to retrieve high-speed cache that received the request of cached data.
172. such as the described method of claim 171, wherein said searching step comprises enables the upstream Cache, and retrieves the data of high-speed cache from the upstream Cache.
173. such as the described method of claim 172, also comprise and repeat to suppress to carrying out from the cached data of upstream Cache retrieval.
174. such as the described method of claim 172, wherein said searching step obtains the tabulation of upstream Cache from the subscriber set agency.
175. such as the described method of claim 171, also comprise cached data is transferred to P in order to be routed to the step of subscriber set.
176. such as the described method of claim 168, also be included as the step that the data of high-speed cache index.
177. such as the described method of claim 176, the wherein said step that indexes to index for the data of high-speed cache according to passage ID, theme and/or timestamp.
178. such as the described method of claim 168, also be included in the upstream routing node and carry out the step that receives, does time mark and high-speed cache step.
179. such as the described method of claim 168, also comprise the step that repeats described receiving step.
180. a router that is used to the message of sending via the publish-subscribe network that lasting high-speed cache is provided comprises for the module of carrying out such as method as described in the claim 168.
181. publish-subscribe network that is used for providing persistent cache message, comprise first node and Section Point, wherein first node is positioned at the Section Point upstream, and described first node and Section Point include for the module of carrying out such as method as described in the claim 168.
182. a computer-readable medium comprises for the instruction of carrying out such as method as described in the claim 168.
183. a method that is used to the message of sending via the publish-subscribe network that lasting high-speed cache is provided may further comprise the steps:
(a) receive a plurality of message with data at a plurality of upstream nodes via described network;
(b) add the time mark for described data;
(c) in the described data of Cache high speed buffer memory of one or more nodes of a plurality of upstream nodes;
(d) use content-based routing that described message is routed to fringe node; And,
(e) at fringe node repeating step (a) to (c), wherein with described data cache in the Cache of Section Point.
184. such as the described method of claim 183, also comprise the step of using content-based routing at least one message to be routed to subscriber's machine from fringe node.
185. such as the described method of claim 184, comprise that also described fringe node receives the step to the request of cached data that comes from subscriber's machine.
186. such as the described method of claim 185, further comprising the steps of:
The response described request determines that the time quantum of cached data is so that retrieval; And,
Retrieve the time quantum of determined cached data based on the time mark of cached data.
187. such as the described method of claim 186, wherein determine described time quantum according to described request, wherein said request comprises the time quantum with the request of the cached data of retrieval.
188. such as the described method of claim 186, wherein determine described time quantum by the time that disconnects of calculating subscriber's machine, wherein said to disconnect the time be the time quantum that subscriber's machine and publish-subscribe network disconnect.
189. such as the described method of claim 185, also comprise determining step, be used for determining to store the cached data that at least some are asked at one or more nodes of a plurality of upstream nodes.
190. such as the described method of claim 189, comprise that also described fringe node receives the step of the upstream node tabulation that comes from subscriber's machine.
191. such as the described method of claim 189, further comprising the steps of:
To send to the request of cached data the one or more of a plurality of upstream nodes;
The cached data of asking from one or more retrievals of a plurality of upstream nodes; And,
The data that route retrieves are to subscriber's machine.
192. such as the described method of claim 191, comprise that also the data execution to retrieving repeats to suppress.
193. a publish-subscribe network that is used for providing persistent cache message comprises a plurality of upstream nodes and fringe node, wherein said node comprises for the module of carrying out such as method as described in the claim 183.
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 true CN1656474A (en) 2005-08-17
CN100458767C 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104137494A (en) * 2012-02-29 2014-11-05 瑞典爱立信有限公司 Compound masking and entropy for data packet classification using tree-based binary pattern matching
CN107924371A (en) * 2015-06-09 2018-04-17 乌尔特拉塔有限责任公司 Infinite memory constructional hardware implementation with router
CN109691035A (en) * 2016-07-06 2019-04-26 萨托里环球有限责任公司 The multi-speed message channel of message transfer service

Families Citing this family (19)

* 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
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
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

Family Cites Families (17)

* 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
US20010052015A1 (en) * 1998-06-24 2001-12-13 Chueng-Hsien Lin Push-pull sevices for the internet
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
FI108195B (en) * 1998-10-19 2001-11-30 Nokia Networks Oy Mechanism for network initiated information transfer
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
US7216179B2 (en) * 2000-08-16 2007-05-08 Semandex Networks Inc. High-performance addressing and routing of data packets with semantically descriptive labels in a computer network

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104137494A (en) * 2012-02-29 2014-11-05 瑞典爱立信有限公司 Compound masking and entropy for data packet classification using tree-based binary pattern matching
CN107924371A (en) * 2015-06-09 2018-04-17 乌尔特拉塔有限责任公司 Infinite memory constructional hardware implementation with router
CN107924371B (en) * 2015-06-09 2021-05-04 乌尔特拉塔有限责任公司 Hardware implementation scheme of infinite storage structure with router
CN109691035A (en) * 2016-07-06 2019-04-26 萨托里环球有限责任公司 The multi-speed message channel of message transfer service

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
JP2005521950A (en) 2005-07-21
CN100458767C (en) 2009-02-04
KR100971506B1 (en) 2010-07-21

Similar Documents

Publication Publication Date Title
CN1656474A (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
CN1701304A (en) Packet routing via payload inspection for alert services, for digital content delivery and for quality of service management and caching with selective multicasting in a publish-subscribe network
CN1678990A (en) Web services apparatus and methods
CN1300677C (en) Distributed computing services platform
US7376092B2 (en) Method and apparatus for implementing persistent and reliable message delivery
CN101069169A (en) Caching content and state data at a network element
CN1428033A (en) Semantic information network (SION)
US7627603B2 (en) Method and apparatus for implementing query-response interactions in a publish-subscribe network
CN1607781A (en) Network load balancing with connection manipulation
CN1846419A (en) Self-managed mediated information flow
CN1777107A (en) On-demand instantiation in a high-performance computing (HPC) system
CN101031882A (en) Architecture, apparatus and method for device team recruitment and content renditioning for universal device interoperability platform
CN1578259A (en) Method and apparatus for monitoring traffic in network
CN1615612A (en) System for supply chain management of virtual private network services
CN1783083A (en) Dynamic summary module
CN1601510A (en) Architecture for distributed computing system and automated design, deployment, and management of distributed applications
CN1703048A (en) Web service application protocol and SOAP processing model
CN1839403A (en) Improved philanthropy management system and method of doing business
CN1276123A (en) Method and apparatus for structured geared to point to point communication
CN1619490A (en) Integrating design, deployment, and management phases for systems
CN1762123A (en) Method and apparatus for secure communications and resource sharing between anonymous non-trusting parties with no central administration
CN1856790A (en) Information access using ontologies
CN1524216A (en) System and method for software component plug-in framework
CN1741005A (en) Information processing system, information processing method, and computer program used therewith

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