CN1701304A - 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 - Google Patents

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 Download PDF

Info

Publication number
CN1701304A
CN1701304A CNA038212064A CN03821206A CN1701304A CN 1701304 A CN1701304 A CN 1701304A CN A038212064 A CNA038212064 A CN A038212064A CN 03821206 A CN03821206 A CN 03821206A CN 1701304 A CN1701304 A CN 1701304A
Authority
CN
China
Prior art keywords
network
order
route
grouping
cache
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
CNA038212064A
Other languages
Chinese (zh)
Other versions
CN1701304B (en
Inventor
Y·黄
A·W·P·冯
D·S·罗森布卢姆
S·亚尼克
R·特奥多雷斯库
T·-W·陈
C·-M·林
C·-Y·王
P·-F·杨
R·C·冷
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 CN1701304A publication Critical patent/CN1701304A/en
Application granted granted Critical
Publication of CN1701304B publication Critical patent/CN1701304B/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
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/52Multiprotocol routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • 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/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • 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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1895Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for short real-time information, e.g. alarms, notifications, alerts, updates
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Packet routing via payload inspection at routers in a core of a distributed network for use in distributing digital content such as video, music, and software. Packets include subjects and attributes in addition to routing information. The subjects correspond with particular types of content for subscriptions, and the attributes encapsulate the data or content, which can include video, music, or software such as software updates. The routers store filters corresponding with subscriptions to content. Upon receiving a packet, a router inspects the payload section of the packet containing the attributes in order to retrieve the attributes and apply them to the filters for the subscriptions to the digital content. If an attribute satisfies a filter, the packet is routed to the next link. If the attributes do not satisfy the filters, the router discards the packet. These routing decisions are distributed among routers in the network core.

Description

In issue-subscribe, detect for the Packet routing of alerting service, digital content delivery and Service Quality Management and the high-speed cache with selection multicast by payload
To quoting of related application
The application is by reference in conjunction with the U.S. Provisional Application No.60/394631 that is entitled as " by the Packet routing of payload detection for Service Quality Management " that submitted on July 8th, 2002, and its priority is enjoyed in requirement. Present patent application or following all in the U.S. Patent application No.10/199356 of being entitled as of submitting on July 19th, 2002 " Packet routing that detects by payload ", be entitled as " carry out content-based routing at the router that adopts channel and be connected method and apparatus with filtration " U.S. Patent application No.10/199368, be entitled as " method of send and receive Boolean function on network " U.S. Patent application No.10/199439, be entitled as " be used for the storage Boolean function with realize assessment at network, revise, recycling and the method for being connected " U.S. Patent application No.10/199369 and the part continuation application (CIP) that is entitled as the U.S. Patent application No.10/199388 of " in effective realization of mating about the asterisk wildcard of variable size field based on the route that connects ", and by reference they all are combined in this.
The application also combines the following U.S. Patent application of submitting on March 28th, 2003 by reference, and as their CIP: be entitled as " be used for reliably issue and order at insecure network method and apparatus " application No.10/400671, be entitled as " adopting the compact method and apparatus that content-based Packet routing is carried out in storage and off-line precomputation that filters " application No.10/400465, be entitled as " being used for realizing the mutual method and apparatus of inquiry response at issue-subscribe " application No.10/400453, be entitled as the application No.10/400462 of " method and apparatus of realizing lasting reliable message-submission " and be entitled as " for the method and apparatus of issue-subscribe propagating contents filter " and apply for No.10/400444.
Technical field
The detection that the present invention relates to the payload in a kind of group-based in network core this grouping of route in order to the method and apparatus of alerting service to be provided.
Background technology
Nowadays the network bandwidth just sharply increases progressively by index law. Yet the infrastructure of network (comprising router, server, demons and agreement etc.) is still being used relatively old technology. Therefore internet application software and network router development speed do not catch up with the speed that bandwidth increases. Simultaneously, increasing equipment and application software become network-enabled. These equipment and application software increase greatly to the load that network node applies. The increase of offered load and application software quantity is so that realization and maintaining network application software become more complicated. Therefore, the increase of the network bandwidth and the network equipment and application software generally use so that more and more difficult in old network infrastructure route and the transmission of data, particularly especially true when content distributed to the subscriber.
A kind of is issue-order form be used to making network with the model of information from server push to client computer. In this model, server becomes simple information publisher, and do not consider which client computer may be to information the interested or position of client computer in network. Client computer becomes the subscriber of information, just receives the information of paying when information can get, and can not consider its particular location of issue in network. Network then is responsible for: efficiently with the information router issued to the subscriber, with information with effectively order coupling and with to publisher and subscriber all transparent mode carry out aforesaid operations.
Because the complexity of server reduces greatly in issue-order model, therefore becoming between important server and the unessential client computer does not have difference, perhaps they can be merged into or publisher or subscriber or the counterpart of the two. For between counterpart, issuing-order the mutual of form, permitted eurypalynous application software and had the nature compatibility. Many these application software based on common theme be that institute's information of issuing and ordering is with the event form. For example, the investor buys or sells stock, so that stock price changes. Accident on the highway is so that traffic jam on the highway. Safe breach in the software systems is found, and makes to develop patch for software user. Player shooting of opening fire in online game is so that the virtual portrait that another player handles is dead. All these representative phenomenons all are the interested events of most of subscribers, and can spread through the internet to notify those subscribers that these events have occured. The succinct information of independence of the possible attractive something that occurs when therefore, event is only about somewhere on network.
For the content that command net is issued by issue-order model wherein, generally carry out the network routing decision by server or publisher. Publisher's storage is about the order of the content of its issue. When receiving or producing new content, issue is convenient compares to identify any coupling part with this content and each order. Order if this content (event) satisfies, then the publisher pushes content to corresponding subscriber by network. Issue-the order model of this routine causes huge burden to the publisher, particularly becomes network-enabled and when lot-size increases at increasing equipment, and is especially true.
Along with myriad applications in the internet converges further, utilize the possibility of event notice will become infinite only most. Yet these possibilities need a kind of more effective mode to make routing decision and the event that determines when satisfies order, thereby alleviate publisher's burden. Therefore, general lasting Event Notification Service can be internet application and other application and realization great value-rising is provided.
Summary of the invention
A kind of method and apparatus provides and has carried out routing packets in order to alerting service to be provided in network. The method and device have overcome the defective of prior art. An advantage of the method and device has significantly reduced network burden when being included in processing and route video clipping. Another advantage comprises the bandwidth demand that has reduced the route video clipping. Also have an advantage to comprise the portfolio that has reduced on the digital video recorder LAN.
In realizing the embodiment of these and other advantages, receive the grouping with stem part and payload portions, its include with from the relevant information of the video clipping of particular camera. In network core, detect payload portions, be used for determining how routing packets is to the information of subscriber from particular camera, and based on detecting route is carried out in this grouping selectively. These and other advantage also can realize by the device that for example has the module of finishing these steps.
These and other advantage for example can utilize also that route messages provides the method for alerting service to realize in network. The method comprises: receive the message with stem part, at least one main body and at least one attribute, attribute relates to the video clipping from particular camera; Retrieval main body and attribute from message; Retrieval is ordered according to main body; And in order to determine how route messages is to the information of subscriber from particular camera, in network core, attribute is applied to order. These and other advantage also can realize by the device that for example comprises the module of carrying out these steps.
Equally, these and other advantage for example can utilize that routing packets provides the method for alerting service to realize in network. The method comprises: receive the grouping with stem part and payload, wherein the payload portions bag relates to the information of the event of specific warnings service; In network core, detect the payload section of grouping in order to determine how routing packets is to subscriber's alerting service information; And based on detecting selectively this grouping of route. These and other advantage also can realize by the device that for example comprises the module of carrying out these steps.
Description of drawings
Accompanying drawing is incorporated into and forms the part of this explanation, and it and specification one are used from sets forth advantage of the present invention and principle.
Fig. 1 is intelligent route is carried out in explanation in network core figure.
Fig. 2 is the figure of explanation publisher and subscriber's intelligent router.
Fig. 3 is the figure of the network infrastructure of explanation intelligent router and backbone router.
Fig. 4 is the hardware component figure of intelligent router.
Fig. 5 is the figure of publisher and subscriber computer.
Fig. 6 is the figure of the channel manager of intelligent router.
Fig. 7 is the software part figure that is used in subscriber computer this machine and intelligent router interface.
Fig. 8 is the software part figure of intelligent router.
Fig. 9 is the packet configuration figure 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 channel 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 of explanation cache index.
Figure 16 is the flow chart of the Proxy Method of output message.
Figure 17 is the flow chart of the Proxy Method of input message.
Figure 18 is the figure of a message coding example of explanation.
Figure 19 is the figure of the database structure of stores subscription.
Figure 20 is the flow chart of wildcard method.
Figure 21 is the figure of digital video surveillance system.
Figure 22 is explanation is used for the agency of digital video surveillance system in two-stage process figure.
Figure 23 is the system assumption diagram of digital content delivery.
Figure 24 is the system assumption diagram in explanation digital content delivery stage 1.
Figure 25 is the system assumption diagram in explanation digital content delivery stage 2.
Figure 26 is the figure of a plurality of external linkages of explanation Service Quality Management.
Figure 27 is the figure of the single external linkage of explanation Service Quality Management.
Figure 28 is that explanation is at the figure of the outside filtration of ISP and dynamic buffering.
Figure 29 is the Cache figure in the network.
Figure 30 is the persistent cache device figure for subsequent use in the upstream router.
Figure 31 is figure mutual between explanation high-speed cache and acting server and the router.
Figure 32 illustrates the figure that creates about the high-speed cache of ordering.
Figure 33 is the figure of index tree.
Figure 34 is the figure that explanation is retrieved from a plurality of Caches.
Figure 35 is the mutual figure of other module in explanation cache manger and the system.
Figure 36 is the document directory structure figure of Cache.
The specific embodiment
Overview
The event notice system of internet level or other distributed network level provides powerful and application flexibly issue-subscribe realization. In this system, application program is utilized event notification applications routine interface (API) to make an announcement and/or is ordered and receive notice about the network internal event.
Notice in the system has a main body, and it is that a character string or other are distinguished the structure that this notifies packaged information type. Notice also comprises specific to the attribute of the information of notifying with one group to be finished. For example, application can utilize main body quote.nyse and attribute symbol and price issue about the notice in the New York Stock Exchange transaction. This application can be issued the notice that the specific properties value is arranged individually, and for example symbol is SNE (the stock ticker symbol of Sony), and price is 85.25. As a rule, if not every attribute scheduled justice all in the notice, the attribute in all notices is same main body class so. But for the extra information specific to event is provided, the publisher can increase arbitrarily attribute in each notice or other basis. Therefore, not all or even any attribute all need predefine.
In this system, the subscriber is not limited to only main body or whole channel be ordered. Below further explain and the definition channel. They can comprise a hierarchy, and this hierarchy is specified for example son field (sub-main body) that body field is relevant with one or more levels. Therefore, the subscriber specifies content-based filter by the attribute in notice, can provide the interest that is more suitable for to represent. For example, the subscriber may order that to have symbol be all notices (showing it perhaps is the sales schedule that the subscriber holds stock) that SNE and price surpass 90.00 main body quote.nyse. All with order the notice be complementary can by callback or subscriber when registration is ordered or other the time other type of functionality of providing consign to the subscriber. An order can be decomposed in many filters.
Callback can be carried out many calculating, comprise to terminal and write message or send the such shirtsleeve operation of Email, the more more complicated sale such as initiation stock, also want complicated any new issue-the order behavior (for example such as initiating, be used in price and be the new order of buying at 75.00 o'clock and substitute existing the order, perhaps issue the new notice that subscriber's marketable securities have been modified).
For example, in using issue and order behavior, assisted by the agency. The agency may utilize acting server or realize with it. The agency when being used in order to network connection to be provided, so that output notice and order and the match notifications of paying input to the subscriber. In case notice enters network, the router of the network of this system then will be notified the subscriber who propagates its this notices of order coupling to all. A kind of method that realizes this propagation is this notice of broadcasting a little in the network, then allows application proxy determine whether this notice is relevant with the subscriber. Yet this is not need the method expanded, and network is subject to excessive message traffic load usually soon, and is particularly when there being a large amount of activate and during tediously long publisher, especially true. Even if enough bandwidth are arranged, the subscriber also can bear very heavy burden because a lot of notices processed by needs.
The demonstration network of native system is more effective aspect the route notice. At first, can use Multicast Routing, propagate once to guarantee any being connected to that notice is for example crossed in the network more. Secondly, can be to a large amount of senior Optimum Operations of filter application, to reduce as much as possible the propagation of notice.
Fig. 1 is the figure of this intelligent router in the conceptual illustration network core. Be used for issue-subscribe, publisher 14 is sent to network core 10 by edge router 16 with the content in the message. Issue-subscribe comprises the network that data or content is routed to any type of subscriber from the publisher. Content is to transmit by the channel 18 that logic between one or more expression routers or the miscellaneous equipment connects. Determine whether route or forwarding messages by the intelligent router 12 in the network core 10. Particularly, intelligent router 12 can determine whether message comprises the content that subscriber 24 orders.
Each order has encapsulated bulk filter and attribute filter. Router can expand bulk filter to the main body collection of coupling, merges the attribute filter based on each main body. Intelligent router is to as per advice main body assessment bulk filter, to the property value evaluation attribute filter in as per advice. The grammer that is used for bulk filter can use asterisk wildcard, and the grammer that is used for the attribute filter can use Boolean expression, and the two will describe in detail below. Term " filter " is to describe subscriber's one group of event that receives from the publisher interested. Routing rule is produced by filter, and by intelligent router in order to make routing decision.
Therefore, if message 26 does not satisfy whole filter set, for example, intelligent router 12 draws lower (abandoning) message 26, means that this message no longer is forwarded. For example, if according to the assessment to main body and attribute filter, any filter in whole group satisfies by message 20, then intelligent router 12 is according to being all routes of matching filter device regulation and/or the rule of action, give subscriber 24 by edge router 22 and possibility miscellaneous equipment with message 20 routes (forwarding), or utilize message 20 to carry out other function of router ones 2 inside. This search will be continued until that whole filter set exhausts or obtained till the decision about strictly all rules, and whichever occurs first.
The intelligent route of these content-based routings provides the payment of real time data (for example alarm and renewal) in the network core. Pay example for the real time data of alarm and include but not limited to stock quotation, business, news, travelling, weather, fraud detection, safety, information communication service (telematics), automatically control of factory, supply chain management and network management. Pay example for the real time data of upgrading and include but not limited to software upgrading, anti-virus renewal, film and music payment, workflow, storage administration and cache coherency. Many other application can be used for paying ordering information.
Table 1 has illustrated the storage of the order that main body is arranged and filtration has been concluded. They can any position of data structure storage in network by any types expectation or that need on. As described below, conclude it is the part of ordering. Order can represent by any way, and example wherein below is provided.
Table 1
Order 1 Main body 1 Conclude 1
...
Order N Main body N Conclude N
Table 2 provides about the issue of quotation server and the example of order. Provide this example only to be used for illustration purpose, order can comprise about any quantity of the data of any type or content and the parameter of type.
Table 2
The quotation server example
Main body tree Quotes.NYSE Issue main body=Quotes.NYSE
    Quotes.AMEX     Quotes.NASDAQ Attribute symbol=SNE price=51 amounts=1000000
Attribute symbol price amount Order main body=Quotes.NYSE filter (﹠ (price>55) of symbol=SNE)
Conclude the Boolean expression that order is provided, and main body provides the indication of ordering channel. Can many different modes express order. Adopting Boolean expression is so a kind of example, and provides and be easy to convert order to bulk filter and attribute filter for the ability of content-based routing. Perhaps can not express order with reference to main body; Yet, adopt main body or channel (following will do further explaination) to provide to be used for explaining and with the environment of filter application in attribute.
Routing decision can be finished in network core, and is distributed in whole network, has alleviated the processing load on publisher and the subscriber's machine, and has significantly improved network efficiency. Only for the purpose of illustration, Fig. 1 has shown a publisher, a subscriber and an intelligent router; Realization can comprise many publishers, subscriber and intelligent router. The term intelligent router refers to can be by making router or other entities of routing decision in the payload of network core or other position detection groupings or message.
Network infrastructure
Fig. 2 is the network of explanation publisher and subscriber's intelligent router. For example, the route entity 30 that channel services is provided for actual on network infrastructure at route messages between the intelligent router be layering, as described below. Publisher 32 is conceptive to be comprised and uses 34 and agency 36, wherein uses 34 indications that for example are used for receiving the content of issuing, and such as the pointer in order to retrieval of content, and acts on behalf of 36 in order to the content of coding via the Internet Transmission of channel services 30. One group of intelligent router that interconnects in logic 38,40,42,44,46 and 48 adopts the routing rule incoming road that is produced by the bulk filter of ordering and attribute filter by the content from the publisher. A plurality of links 39,41,43 and 45 provide the logic between the intelligent router 38,40,42,44,46 and 48 to connect. Other links 37 and 47 provide respectively between publisher 32 and the intelligent router 38 and the logic between subscriber 54 and the intelligent router 46 connects. Subscriber 54 comprises the agency 50 of the content of ordering in order to detection and reception, and the application 52 that demonstrates this content.
Channel can comprise that one group of relevant logical multicast of for example realizing with distribution mode connects. Channel in this example embodiment is used to the relevant Internet resources set of logic of publisher and subscriber's joint operation mechanism exchanging contents. Name space according to the channel main body comes content is classified, and manages, controls and supply these resources via the channel services that channel manager provides. A plurality of channels can be shared identical resource. Channel can provide high expansion directory service, such as following example: and publisher and subscriber information, authentication and authorization information, type of message, management information and record keeping pay imformation, but be not limited to this. Channel also can provide continuing during the high-speed cache for example, rapid data delivery mechanisms, safety and user and network management. Channel also can be used for any other purpose.
The filtration of being undertaken by intelligent router can occur with the distribution routing decision in network core. In addition, intelligent router also can be used as the edge router that connects subscriber equipment (such as publisher or subscriber) and network core. And the identical device that is connected to network namely can be used as the publisher to push content to subscriber by routing decision in network, also can be used as the subscriber to receive the content that is pushed away. Intelligent router is connected with channel and is connected by any configuration (as required for specific implementation or wish like that), and provides configuration shown in Figure 2 for the purpose of illustration.
Fig. 3 is the figure of the demonstration network infrastructure of intelligent router and traditional backbone router, and it has illustrated that also the logic of channel connects. Existing backbone router in the intelligent router Adoption Network in this example (such as internet or other distributed networks), and this intelligent router actual on backbone router at this be layering. In this example, ISP (ISP) network 58,59 and 60 comprises the backbone router of several traditional routes for message or grouping separately. A plurality of intelligent router 61-70 link to each other with one or more backbone routers in the ISP network 58,59 and 60. Intelligent router 61-70 also connects by a plurality of link 73-85 (the representative example of link), and also can pass through these link attached terminal subscriber equipmenies. Intelligent router 61-70 can be by one or more supervisors (such as entity 71) and one or more Virtual Private Network (VPN) controller (such as entity 72) control. ISP network 58,59 and 60 also can be connected to publisher and subscriber's machine (not shown among Fig. 3). Among the ISP58,59 and 60 and the backbone router between the ISP58,59 and 60 can in network infrastructure, connect by any traditional approach.
As above intelligent router 61-70 and the link 73-85 of explanation can adopt network infrastructure to realize, they provide content-based routing in network core. Link 73-85 represents that the logic between the intelligent router 61-70 connects, and can adopt for example network infrastructure or the realization of other equipment. For example, link can adopt the logic that is called the tunnel to connect to realize. The tunnel comprises hardware, may also have software, be used for realize the network infrastructure of link, and tunnel can be used as parts of a plurality of channels. Thereby channel is by providing for the logic configuration of the content of particular type and providing environment to promote content-based routing in the intelligent router for the attribute of channel thus. Although intelligent router can not have to carry out routing decision under the condition of channel, channel improves the efficient of being carried out content-based routing by the intelligent router in the network core.
This example embodiment comprises the use of channel and link. Link is two connections between the router, even if intelligent router is also like this. Channel is the network entity (usually larger) that comprises set of routers, and they connect with the logic of finishing one-to-many or multi-to-multi by link static state or the dynamic-configuration that connects. Particularly, channel is the top logic entity of describing the channel essential characteristic. Under a channel, may there be many main bodys. Each main body relates to formation the subnet (such as multicast tree) of the set of routers that connects. Can by different modes to these agent-based subnets distribute, directed and configuration. Channel can be similar to for example netted network as the set of the all-ones subnet that consists of for main body and therein.
Fig. 4 is the exemplary hardware component diagram of intelligent router 92, and intelligent router 92 can be corresponding to any other intelligent router of quoting. Network node 90 can comprise the intelligent router 92 that links to each other with traditional backbone router 95. Intelligent router 92 comprises the processor 93 that is connected to memory 94 and auxilary unit 97 (may be with for example independently machine realization), memory 94 and auxilary unit 97 the two any all can be stored data, also cacheable data, and can store the application of being carried out by processor 93. Auxilary unit 97 provides the non-volatile data storage. According to following software control of explaining, processor 93 provides instruction to backbone router 95, so that it can be based on the routing rule route (forwarding) or not route (abandoning) message or the grouping that are produced by bulk filter and attribute filter for order. Independently realizing in the processor control appliance although be shown as, but optionally available dedicated integrated circuit (ASIC) is at backbone router 95 interior realization intelligent routers 92, in order to can may also provide intelligent routing function in the hardware with embedded software. Perhaps, intelligent routing function also can realize with the combination of the software and hardware of one or more routing devices.
Fig. 5 is the figure of exemplary publisher and subscriber's machine. Publisher's machine 100 or 118 can comprise with lower member: store one or more publishers and use 104 and the memory 102 of agent application 105; The auxiliary storage device 112 of non-volatile data storage is provided; The input equipment 108 that is used for input message or order; Be used for to carry out the processor 114 of the application that is stored in memory 102 or receives from other memory devices; The output equipment 110 that is used for output information; And the display device 116 that is used for providing visible display message.
Subscriber's machine 122 or 140 can comprise with lower member: the memory 124 of storing one or more application 126 and agent application 128; The auxiliary storage device 130 of non-volatile data storage device is provided; The input equipment 132 that is used for input message or order; Be used for to carry out the processor 134 of the application that is stored in memory 124 or receives from other memory devices; The output equipment 136 that is used for output information; And the display device 138 that is used for providing visible display message. Perhaps, publisher and subscriber's machine can comprise more or less parts, perhaps different parts, and they can be any configuration.
Publisher's machine 100 links to each other with 140 with subscriber's machine 122 via network 120 (such as above-mentioned network) with 118. Network 120 comprises for the intelligent router that the distribution route of data or content is provided by grouping or message in network core. Although only shown two publishers and subscriber's machine, network 120 is scalable to comprise more publishers and subscriber's machine. Publisher and subscriber's machine can be realized with any processor controlled plant, as include but not limited to following example: server; Personal computer; Notebook computer; Personal digital assistant; Phone; Cellular phone; Pager; Or other equipment. Network 120 with intelligent router can comprise any hard wired devices, wireless device or the Wireline of the two or wireless distribution network of having connected. Network 120 also might utilize existing or classical network infrastructure.
Fig. 6 is the figure of the channel manager 150 of explanation intelligent router. In this example, channel manager 150 is to realize with a plurality of servers 152,154 and 156. Each server comprises the local storage 158,160 and 162 of himself. Intelligent router 164,166 and 168 contacts channel managers in order to obtain the information of relevant particular channel. Channel manager can provide also that data continue, fault skip functions or other functions. Therefore this channel manager provides a database comprising in this network Anywhere or the channel services of one group of database, and these databases have been stipulated for example information, data lasting characteristic, publisher and the subscriber's relevant with channel user profile and infrastructure information. Infrastructure information can comprise for example sign and the main body of the corresponding tunnel that is connected them, channel and the attribute of channel (title of each attribute and type) of intelligent router. But grouping or message is the relevant information of Bearer Channel also, comprises the sign of fixed attribute and variable attribute.
But the user is download channels information when online. For example, the user can register by utilizing the user name and password. When the login of authenticated user, this user can open (activation) channel, and from the information of channel manager retrieval about this channel. The publisher can utilize this information when content distributed, and the subscriber can utilize this information to enter and register order.
Channel manager 152,154 and 156 preferably consists of one group and carries out lasting reliable channel directory service. One of channel manager will be as the main channel manager, and other are as the alternate channel manager. If main channel manager fault, then the adjacent channel manager of main channel manager becomes new main channel manager with adapter, to keep reliable service. Each intelligent router remains with the address of these channel managers. If intelligent router can not arrive a channel manager, then it will be sought another and come retrieving information. For example, the equipment in the network can adopt order to retrieve channel information, and some examples wherein are provided in the table 3. Perhaps, intelligent router can only have the main channel manager or surpass two channel managers.
Fig. 7 is the figure of the exemplary software part in the stack 180 in subscriber computer or the equipment, and this software part is used for subscriber computer or equipment are linked to each other with the network with intelligent router. Subscriber computer can be used as publisher, subscriber or the two, and it can comprise the above demonstration equipment that identifies. Stack 180 can comprise that one or more users use 182, the user use 182 can be provided for from the user receive order, from publisher's receiving channel information or receive the interior perhaps data that will issue. The user uses 182 application that also can comprise by any other type of subscriber computer or equipment execution.
Stack 180 also can comprise as act on behalf of 184, event base 186, high-speed cache storehouse 188, channel bank 190, message transmit storehouse 192 and distributor storehouse 194. Agency 184 provides and sets up network connection or other functions, and table 3 provides the order example that is realized by agency 184, and it can adopt the order of acting server order or other types. Event or other events or the information of the relevant subscriber computer of event base 186 records. High-speed cache storehouse 188 provides the local cache data. Sign and the information thereof of channel bank 190 memory channels. Distributor 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 functionality that identifies in the table 4. Message transmits storehouse 192 and provides and being connected of data path 204.
Table 5-9 provide the example that transmits API with the message of C programming language. Table 5 and 6 provides the API example in order to transmission and searching message. Table 7 and 8 provides in order to the API example that sends and retrieval is notified. Table 9 provides in order to send and to retrieve the API example of control message. These API that provide in this specification and other API, program and data structure are only as the example that is used for realizing specific function or feature, and realization can comprise API or other software entitys with any type of any programming language.
Table 3
The proxy commands example
Order Function
  pc.chn.open Open channel, the retrieval channel all information, and in this locality to its high-speed cache
  pc.chn.close Close channel
  pc.chn.getRouterInfo Retrieval is about the information of the router on the channel
  pc.chn.getAttributeInfo Retrieval is about the information of the attribute of channel
  pc.chn.getProperties The characteristic of retrieval channel
Table 4
Distributor function
Server side Intercept connection (wait for and receiving). Create thread to process each connection. This thread is responsible for receiving and is connected upper all requests that occur of that connection.
Client-side Create thread, in order to initialize connection and to be responsible for receiving and being connected all data that enter this connection.
Table 5
In order to send the API example of 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_tatus     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 each type   PC_Status    PC_msg_setAttrByPosInt(PC_msg_MsgHandle msg,                     PC_UINT attributePos,PC_INT Value);//for each type   PC_Status    PC_msg_addAttrInt(PC_msg_MsgHandle msg,const PC_char                 *name,                            PC_INT value);//for each type   PC_Status    PC_msg_send(PC_msg_MsgHandle msg);
Table 6
API example in order to searching message
  typedef struct_attribute {           PC_char                    *name;           PC_TypeCode                type;           void                       *value;           PC_UINT                    arraySize;   }PC_mag_Attribute;   typedef struct_attributeArray{           PC_UINT                            size;           PC_msg_Attribute           **attrs;   }PC_msg_AttributeArray;   PC_Status  PC_msg_init(ChannelHandle ch,PC_UINT ehld,PC_UINT userid,              PC_TypeInfo *                    MsgType,PC_INT msgTypeSize,PC_msg_SessionHandle              *sess);   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_getDataType(PC_msg_MsgHandle hMsg,                    PC_msg_DataType *dataType); PC_Status    PC_msg_getAttrByPosInt(PC_msg_MsgHandle msg,              PC_UINT pos,PC_INT *val);//for each type PC_Status    PC_msg_getAttrValueByNameInt(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
In order to send the API example of notice
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
API example in order to the 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
In order to send and to retrieve the API example of control message
Transmitter code The receiver code
ChannelHandle ch; PC_msg_MsgHandle mh; Int chld=10; //Get a Channel handle for channel 10 PC_msg_init(ch,chld,publd,NULL,0, &sh) PC_msg_create(th, PC_MSG_CONTROL,          &mh); PC_msg_setSubject(mh, “#.ADD_SUBJECT”); PC_msg_addAttrInt(mh,,”Channelld”,            chld); 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_addAttrString(mh,            “Subject”,“Quote.cboe”); PC_msg_send(mh); PC_msg_delete(mh);      PC_msg_closeTransport(sh); PC_msg_cleanup(sh);
Fig. 8 is the figure such as the exemplary software part 210 of those intelligent routers of above sign and intelligent router 92 shown in Figure 4. Software part 210 for example can be stored in the memory 94, in order to carried out by the processor 93 in the intelligent router 92. Parts 210 comprise and for example filter demons 212, distributor 214, route demons 216 and cache manger 218. Filter demons 212 filtration of content-based routing is provided, in order to process the content of ordering according to following routing rule of explaining. Distributor 214 provides such as needs and is used for propagating via path 220 those the communication of control message of filters, and distributor also can be the user and single input point is provided and provides channel manager to a secret plug-in unit, thereby has improved the security of network. In other words, the user does not contact directly channel manager in this example, but they can do like this in alternative implementation. Distributor 214 utilizes control message to come to obtain attribute (title-value to) from channel manager.
Route demons 216 provide and the communicating by letter of data path 222, and it can be via such as the illustrated traditional backbone router of Fig. 4 or other routing devices and carry out. Cache manger 218 provides the local cache data at the network node that comprises corresponding intelligent router. Below will further explain the operation of cache manger 218, cache manger 218 provides the distributed cache of data in whole network core.
As the alternate ways of application layer, content-based routing can be realized in kernel level. Can be independent of by the memory of kernel access the memory in the application layer. For content-based routing is run in the application, need for example to copy message data to application area from the kernel memory district, and applied environment is exchanged to the route applied environment from interior nuclear environment. The two all can cause a large amount of expenses. If replace revising kernel to support content-based routing, then can carry out more quickly route, thereby break away from above-mentioned expense.
Owing in kernel, have this feature of content-based routing, so route demons 216 are according to realizing and can or not directly sending or receive data via data path 222. Demons are the processing that run on application layer, and it calculates the content-based routing table that will be inserted in the kernel in advance. Yet in case inserted the content-based routing table, routing table just can be used for outlet by decision-making by kernel. Equally, the filtration demons calculate in advance filter table and are inserted in the kernel. In this kernel is realized, the route demons or filter demons all can not be directly and data path mutual.
Fig. 9 is the figure of example of packet configuration 230 that possible comprise the message of subscription content. The grouping or the message that are used for content-based routing comprise for example stem part and payload portions. Stem is partly stipulated route or other information. Payload portions specified data or content, or the 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 body field 240 and one or more attribute 242. Packet configuration 230 has illustrated the basic structure about length value and main body and attribute. The grouping of content-based routing also can comprise other or different unit, those that illustrate in the example such as following Figure 18 that explains, and the grouping of content-based routing can be configured by any means. And these attributes can comprise the free attribute (discretionary attribute) that for example is additional to the message end. These free attributes are the ad hoc information that is for example increased by publisher's (perhaps or even router), can it be transmitted with the message format for the channel appointment.
                  Publisher and subscriber's methodology
Figure 10 is the flow chart that is used for setting up channel and content distributed exemplary publisher's method 250 by the publisher. Method 250 can realize with the software module that for example comprises the agency 106 who is carried out by the processor 114 in publisher's machine 100. In method 150, the agency 106 in publisher's machine receives the publisher for the establishment (step 252) of the acting server of channel. Acting server provides and the communicating by letter of network. Agency 106 determines the message format (step 253) of channel by interface, and this format information can obtain by other entities from for example channel manager or network. The channel information that agency's 106 usefulness receive is set up the acting server (step 254) of channel, and it comprises the attribute (step 256) of receive channel and creates notice (step 258) at channel. This notice provides content for the equipment of the content on " intercepting " channel. Attribute definition the notice parameter and feature.
Agency's 106 identifiers with content information and channel (ID) send in the network core or other is for the treatment of the intelligent router (step 260) Anywhere of ordering. The publisher fills notification properties (step 261) with suitable value, and the publisher subsequently can be according to the content (step 262) of channel attribute issue about notice. In this example, step 260-262 finishes and makes an announcement, and perhaps, this can be depending on specific implementation needs different or additional step. Therefore, the information that is associated with notice in this example is divided into the sequence of attributes of arranging in order, and each has title, position (since 1), type and value in notice. Perhaps, also can take on a different character according to the specific implementation attribute. Attribute for example can comprise pre defined attribute, free attribute or the two.
Intelligent router can utilize the channel id in the grouping to obtain the attribute of respective channels, and it determines structure or form via the grouping of channel transmission. Particularly, each grouping can comprise the marker character that for example is associated with channel id and other header messages (such as publisher ID and main body). These marker characters can be used for main body is mapped as numeral in the message format, have shown its example among Figure 18. Lowerinteger value (for example value of 16 bits) can be used as these numerals. Perhaps, can shine upon these main bodys with numeral or the information of any other type. Main body is mapped as numeral has special benefit; For example, it can save the indication that the space in the message format also can provide the mode of unified or standard to come regulation main body in message, so that they can be positioned and be identified rapidly. Intelligent router can in local Storage Mapping, perhaps, also can utilize numeral by the corresponding main body of the long-range acquisition of order.
Table 10 explanation is used for the structure of digit mapping to main body adopted integer value in this example. Main body tree parameter in the table shows that main body can comprise one or more body field in classification relationship; For example, the main body tree can comprise a string body field of demarcating with special symbol. The example of main body tree is provided in the table 2. As example, main body tree quotes.nyse comprises main body " quotes " and two terms of son field " nyse ", and they are with demarcating such as ". " found in URL or other network address. Except the URL type string of employing cycle and regulation, can also utilize the mode of any any character for description and symbol to come regulation main body tree.
Table 10
Numeral The main body tree
Integer value
1 Main body tree 1
Integer value 2 Main body tree 2
...
Integer value N Main body tree N
Therefore, known packet format or the structure of particular channel, intelligent router just can be located main body and attribute or other information rapidly in the grouping of content-based routing. For example, channel can be defined in the main body that transmits on the channel and the byte location of attribute, and they are easy to by the byte count in the grouping is located. Perhaps, intelligent router can be resolved grouping with location main body and attribute or other information.
Table 11 provides the example of publisher's program of C++ programming language. Table 12 provides the example in order to the API that creates channel. Table 13 provides the example by channel manager (referring to Fig. 6) channel configuration file that safeguard and that channel related information is provided, and it is as shown in the table. Perhaps, for the distribution process load, system can have to provide the global channel manager of the IP address of the server that disperses on the geographical position, and wherein these servers are as the local channel manager.
Table 11
Publisher's program example
#include“PC_evn_Notification.h” #include“PC_evn_Proxy.h” using namespace precache::event; int main(int argc,char argv[]) {        PC_UINT QuotesRUs=myChannelofInterest;//channel ID        PC_UINT myID=myPublisherID;//publisher ID
   try{          Proxy p(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 1          n2.SetPredefinedAttr(2,80.18);  //attribute price is in position 2          p.Publish(n2);       }       catch(InvalidChannelException icex){              cerr<<“bad channel”<<endl;       }       catch InvalidSubjectException isex){       }       catch(InvalidNotificationException inex){              cerr<<“bad notification”<<endl;       }       catch(Exception ex){              cerr<<“unknown error”<<endl;       } }
Table 12
In order to create the API example of channel
PC_Status rc; rc=PC_chn_create(Provider_info,authinfo,ConfigurationFile,&hChannel); /*the first one primary channel manager*/ rc=PC_chn_addChannelManager(hChannel,“10.0.1.1”); /*secondary channel manager*/ rc=PC_chn_addChannelManager(hChannel,“10.0.2.2”); */ rc=PC_chn_setProperties(hChannel,ConfigurationFile); /* Set the message type(only in fixed part of the message) by using rc=PC_chn_setAttributeType(hChannel,name,position,attributeType). The type information is propagated to all edge routers. */ rc=PC_chn_setAttributeType(hChannel,”Priority”,1,PC_UINT 16_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); rc=PC_chn_close(hChannel);/*finish channel creation*/
Table 13
The channel configuration file example
#Channel Setup-Read by Channel API,event and messaging #Each channel entry information is tagged with the #type of information e.g. #[ChannelComm 5]for Channel 5 Communication related information #[ChannelSubjects 5]for subject related information in channel 5 #[ChannelAttributes 5]for attribute information in channel 5 # #The Channel id is appended to the tag to indicate #the channel that the information belongs to #e.g.[ChannelComm 5]indicates routing information #for channel 5. # #All the fields need not be set.For example if #running with the central server,the MulticastIP is #not needed. [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 is for the flow chart that receives and process subscriber's method 264 of ordering. Method 266 can realize with the software module that for example comprises the agency 128 who is carried out by the processor 134 in subscriber's machine 122. In method 264, graphic user interface (GUI) for example shows the indication (step 266) of available channel to the user, and this useful application 126 is finished. The information of identification channel can receive from the channel manager that channel related information for example is provided. The sign that can show with the application 126 of any type channel with any ad hoc fashion or form. This channel that use to receive the user is selected (step 268), and calls API or for other programs (step 270) of the channel of selecting. API provides subscription options (step 272) corresponding to the channel of selected option to the user. API receives order value (step 274) and this order is sent to agency 128 from the user, in order to carry out processing (step 276) as described below.
Subscription parameters can comprise as shown in table 1 the concluding of example. For example, each channel can utilize the API of himself, in order to process order according to the parameter of particular demands or respective channels. These API for example can comprise for receive order based on web's or based on the API of Java, and can adopt the user interface of any type and process the information that receives order, and it is passed to agent application.
Figure 12 is the figure from conceptual illustration channel and subscriber's screen or GUI 278 and 284, and it can be used to be combined with the method 264 that receives order. Screen 278 comprises that identification can supply a plurality of districts 282 of the available channel of user selection. When having selected particular channel, but just display screen 284 is used for being received in the order value of distinguishing 286 users. The user can select to distinguish 288 to submit order to or to select district 290 with order cancellation. Screen 278 and 284 can be formatted as for example HTML (HTML) webpage or any other form. And screen can comprise district and the content of arbitrary disposition, may comprise for example text, picture, picture, shades of colour or multimedia messages, so that by the desirable interface that provides for the user friendly of subscriber and attraction vision. These screens also can comprise provides for example tool bar 280 of conventional browser function.
Table 14 provides the example of subscriber's program with the C++ programming language.
Table 14
Subscriber's program example
#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_UINT QuotesRUs=myChannelofInterest;//channel ID                PC_UINT myID=myPublisherID;           //publisher ID                try{                     Proxy          p(QuoteaRUs,myID);                     FilterFactory *factory=FilterFactory::GetFilterFactory();                     Filter *       f=factory->CreateFilter(p,“symbol==”LU””);                     PC_INT         c1=0;                     SubscriptionHandle sh=p.Subscribe(“quotes.nyse”,f,this,                                                         (void *)&c1);                     while(notificationCount<2){        //let notify()get some                                                         //notifications                           sleep(5);                     }                     p.Unsubscribe(sh);                }                catch(InvalidChannelException icex){                       cerr<<“bad channel”<<endl;                }                catch(InvalidSubjectException isex){                       cerr<<“bad subject”<<endl;                }
             catch(InvalidChannelException ifex){                     cerr<<“bad filter”<<endl;              }              catch(InvalidSubscriptionHandleException ishex){                     cerr<<“bas subscription handle”<<endl;              }              catch(Exception ex){                     cerr<<“unknown error”<<endl;              }        }        void Notify(Notification *n,void *c)//this is the callback method        {              if( *(PC_INT *)c=0){//check the closure object                     PC_STRING symbol;                     PC_FLOAT price;                     n->GetPredefinedAttr(“symbol”,symbol);                     n->GetPredefinedAttr(“price”,price);                     cout<<“The price of“<<symbol<<“is”<<price<<endl;                     notificationCount++;              }        }  };  int main(int argc,char argv[])  {         SubscriberApp a;         a.run();         }
         Content-based routing and channel by payload inspection
Figure 13 is the flow chart by the method 300 of payload inspection content-based routing. Method 300 for example can realize with the software module that the processor 93 in the intelligent router 92 is carried out, as with filtering the represented software module of demons 212. Perhaps, it can be realized with the combination of ASIC or hardware and software. In the method 300 illustrated content-based routing can be in network as in the network core intelligent router Anywhere or carry out in the edge router.
In general sense, content-based routing relates to the payload portions that checks grouping, in order to determine how to process grouping. The method of this content-based routing for example can comprise the order tabulation (for example adopting filter) processed in any order, main body and attributively message and routing rule being compared in order to determine the route of this message and this processing of execution in network core one by one one by one. These rules can comprise the rule of processing in the management router or any rule that is associated with filter. Therefore these routing decisions can be distributed in the whole network core. With for example determining message format by understanding them for the byte location of particular channel in message or grouping such as the represented main body of channel, thereby be provided at the mode of locating fast attribute in the message for intelligent router.
In method 300, intelligent router 92 receipt messages groupings (step 302). It determines the channel id (step 304) of corresponding message according to this grouping, and utilizes channel id to retrieve the attribute (step 306) of this channel. In this example, channel type (determining according to channel id) is determined position and the data type of attribute in the grouping. Channel attribute can be in this locality storage or such as passing through channel manager telereference. Intelligent router 92 retrievals are corresponding to the filter (step 308) of ordering. This filter comprises one or more attribute tests, normally one group of attribute test for order. Attribute during intelligent router 92 will divide into groups is applied to the attribute test (step 310) of the correspondence in the filter description.
If all properties test generation positive result (step 312) during filter is described means that then attribute satisfies all attribute tests, intelligent router is carried out the one group of function (step 314) by the rule predetermining that is associated with filter. These functions for example can comprise Packet routing to next link, and/or utilize the content of grouping to carry out by these rules specified some actions or calculating at local router. Can for example in specifying the corresponding data structure of ordering, identify action or next link. When rule was link, it identified next network node usually in order to receive grouping, and next network node can comprise equipment or other entities of intelligent router, backbone router, network connection. Perhaps, next link can designated or otherwise be associated with order.
If positive result (step 312) is not produced in the test of all properties during filter is described, mean that then attribute does not satisfy all attribute tests, filter is declared mismatch (step 315). Intelligent router recursion ground continues above process, until exhaust all properties test in the filter description or run into first negative decision, and no matter which occurs first in them.
In case treated all properties test to this filter, intelligent router just determines whether to exist more multiple filter (step 316), if it turns back to step 308, retrieve the attribute test of next filter in order to process this attribute for it. Matching process (step 308,310,312,314,315 and 316) continues always, maybe can determine all actions or the result of routing rule until exhaust complete filter set, and no matter which occurs first. If any filter is not satisfied in grouping, (abandoning) was not forwarded under then it will be drawn.
Intelligent router 92 can pass through filter by any particular order sequence. For example, as shown in table 15, intelligent router can be with the filter stores ordered in file or routing table, and linearly sequence by them attribute is applied to filter (attribute test). Perhaps, this routing table can comprise link or to the pointer of filter.
Be alternatively, content-based routing can adopt more than one method in the identical time, and this depends on for example uses and property enhancement heuristic, exchanges such as the algorithm of service based condition. Selectively to for the treatment of the router of filter in network be encrypted, decipher, change and merge, in order to carry out the inspection of payload portions for content-based routing. For example, can be price>$ 3.54 with deleting such as the order of price>$ 3.54122, not surpass second currency attribute that decimal point is later because the publication in the known applications does not comprise. And foreign currency arrives from the publication abroad sent when for example being positioned at the first router of the U.S., had better convert first American currency to for well.
As the alternate ways of linear method, intelligent router 92 can select filter to be used to process by other orders or according to the various algorithms that might improve processing speed and efficient. Table 16 provides to be ordered and for the example of the respective links of ordering; In these examples, main body is relevant with particular channel, and can be represented by the routing rule of filter for the order of main body. Main body can comprise for example the network address (such as the URL (URL) of identification content sources).
Table 15
Channel 1
Order Link
Filter 1a Link 1a
Filter 2a Link 2a
  ...   ...
Filter Na Link Na
  ...
Channel N
Order Link
Filter 1N Link 1a
Filter 2N Link 1b
  ...   ...
Filter NN Link 1n
Table 16
Content is concluded Link
  sub=“quote.optimist”&   (($1>5 & $2=“LU”)   |($1>30 & $2=“T”))   x10,x11
  (sub=“sony.music”|sub=“sony.movie”)   & $1>30 & $4=“Beethoven”   x11,x13
  sub=“movie.ratings”&   ($1>1999|$2=“Kurosawa”)& $3=“**”   x11,s15
                High-speed cache on the network node
Figure 14 is the flow chart of cache method 320. Method 320 can realize with the software module that the processor 93 in the intelligent router 92 is for example carried out, and is represented such as cache manger 218. Perhaps, its available ASIC or hardware and software be combined in the identical or different physical equipment of corresponding intelligent router in realize. In method 320, intelligent router 92 receives the message (step 322) that contains data or content, channel id and main body. 92 pairs of data of intelligent router mark (step 324) between the added-time, and in this locality caches to it such as memory 94 or auxilary unit 97 (step 326). It comes the data (step 328) of indexes cached by for example channel id, main body and timestamp.
If intelligent router 92 has received the request (step 330) to data, its convenient index of reference is according to the data (step 332) of described request retrieval high-speed cache. Intelligent router 92 is sent to the data of high-speed cache on backbone router 95 or other route entities, in order to it finally is transferred to requestor or other people. Method 320 can repeatedly be performed in case in response to request continuously cached data and the retrieval cached data.
Figure 15 is that explanation is with the figure of the cache index (336) of method 320 uses. Cache index (336) receive data (338), and it is stored with timestamp (340). When collecting data, just data are carried out mark every one section delta (Delta) t time, deltat represents the time between the mark, for example t here2-t 1 Also can adopt other to make by any way the index type of time mark.
The index that table 17 carries out the data of high-speed cache from conceptual illustration. Table 18 is used for storage about the data structure of the connection history of high-speed cache from conceptual illustration. Table 19 provides the example that is used in the data structure of the network node local cache data that contain intelligent router.
Can carry out time mark by any fixing or variable time interval. For example, can carry out high-speed cache and index to data every five minutes. When the order (such as #.getCache) of the data of the high-speed cache that receives to retrieve fixed time and main body, channel manager 218 utilizes cache index to determine whether it can retrieve data corresponding to the high-speed cache of the request of step 332.
Each main body or channel for example can comprise himself the IP address in multicast tree and one group of intelligent router. Therefore, the connection that table 18 is illustrated between this router is historical, and it can be stored in the subscriber computer in this locality; If the edge router fault, then the addressable connection of subscriber computer is historical, how to determine when edge router is again online and the upstream router of channel reconnects. For example, it also can it disconnect during carry out and to obtain the order of high-speed cache, in order to obtain any unsettled subscription content.
Table 17
  t 1 Channel id 1 Main body 1-n The pointer 1 of the data of high-speed cache
  t 2 Channel id 2 Main body 1-n The pointer 2 of the data of high-speed cache
  t n Channel id N Main body 1-n The pointer N of the data of high-speed cache
Table 18
Connect historical
Time Router The network address
  t 1   R2   UR2   UR3
  t 2   R2   UR2   UR3
Table 19
The example of the cached data structure of intelligent router
Channel node
Struct ChannelNode{         PC_UINT             unChanld;         PC_AttributeInfo    *pAttrinfo;         PC_BOOL             bPersistent;/*Persistent or RT*/         PC_UINT             unTimeout;         PC_UINT             unTimeGranularity;/*in minutes*/         PC_INT              nDirFd;         HashTable           *pFirstLevelSubjs;         }
Master nodes
Struct SubjectNode{         PC_USHORT           unSubjectld;         PC_UINT             unSubjLevel;         Void                pParent;   /*Channel or Subject*/         PC_INT              nDirFd;         HashTable           *pNextLevelSubjs;         DataNode            *pData; }
Back end
Struct DataNode {         PC_INT              nDirFd;         SubjectNode         *pParent;         LastTimeGrainNode   *pLastTGrainData;         DLIST               *pStoredData;/*list StoredTimeGrainNode*/         PC_Mutex            mStoredDataLock;         }
The time granularity node of storing
Struct StoredTimeGrainNode {
        PC_UINT             unStartTime;/*in minutes*/Chanld;         PC_UINT             unEndTime;/*in minutes*/         PC_INT              nFd; }
Last time granularity node
Struct LastTimeGrainNode{         PC_char             pLastTGrainData;/*could be a list*/         PC_UINT             unLastTGrainStartTime;         PC_BOOL             bReadyToStore;         PC_Mutex            mCachedDataLock; }
These exemplary data structure comprise following information. Master nodes comprises main body identifier, main body level, to the filec descriptor of the pointer of father's channel or master nodes, its catalogue, to the pointer of hash (Hash) table of the next stage master nodes that includes it and to the pointer of data node. Back end comprises the filec descriptor of the pointer of its main body father node, data directory, includes the head and tail of circular buffer for the data structure that is stored in the data on each memory device, buffer and be used for lock at retrieval and memory period locking data node. The time granularity node of having stored is the node of expression actual data files, and last time granularity node represents also not store memory device into but the last buffer safeguarded in memory. The mutual exclusion of the time granularity node that the high-speed cache in this example and the utilization of data storage device thread are last prevents the Concurrency Access to last time granularity node.
                       Agent processes
Figure 16 is the flow chart for the Proxy Method 350 of output subscribe message. Method 350 can for example use as be realized by agency's 128 software modules that represent that wherein this software module is carried out by the processor 134 in user (subscriber) machine 122. In method 350, agency 128 is as utilizing the said method in Figure 11 and 12 to receive order (step 352). Agency 128 creates the character string (step 354) of specifying Boolean expression for ordering, and resolves this character string to detect any mistake (step 356) in ordering. If there is mistake, agency 128 can provide error message (step 360) so that the user corrects a mistake and re-enters order to the user. Do not comprise mistake (step 358) if order, then to act on behalf of 128 expression formula is stored in (step 362) in the data structure, its example below is provided. Agency 128 is transformed into conformality (positive form) (step 364) with the expression formula that do not wait that forms in the data structure, and data structure is transformed into corresponding disjunctive normal form (DNF:disjunctive normal form) structure (step 366). Agency 128 also with the DNF structure " with " expression formula is reduced to and only comprises scope filter and member test (step 368).
DNF is a kind of well-known canonical form, and wherein Boolean expression is expressed as the "or" of one or more so-called subexpressions that separate, each subexpression as one or more attribute tests " with ". For example, Boolean expression (price>=10 " with " (symbol==" LU " OR symbol==" T ")) have the DNF of being equal to represent ((price>=10 " and with " symbol==" LU ") "or" (price>=10 " with " symbol==" T ")).
Conversion in the step 364 relates to " just " shape that the expression formula that will have " not waiting " operator (being expressed as unequal in exemplary grammer) converts equivalence to, and this conformality is specified not feasible value of all feasible values rather than. This conversion was carried out before creating DNF, and because router in this example requires the formula in the conformality, therefore this conversion is necessary. For example expression formula (price unequal to 80) can be exchanged into the positive expression formula (price<=79 or price>=81) of equivalence.
Conversion in the step 368 is execution after creating DNF, and relate to gained " with " the extra simplification of expression formula, in this example, also carry out it in order to simplify the work of router. Particularly, for the test of the multiattribute of identical attribute " with " can in the situation of identity property test, be reduced to or with " the scope filter " of the standard of a lower bound, the upper bound, lower bound and a upper bound the two or single value. The scope filter of particular types is then encoded according to table 22.
For example, expression formula (price>=10 " with " price<=80 " with " price>=20 " with " price<=100) can be reduced to expression formula (price>=20 and price<=80), this is the example with the scope filter in lower bound and the upper bound. Below be the example of other kinds after simplifying: (price>=20) (only having lower bound); (price<=80) (only having the upper bound); And (price==50) (single value). When creating these scope filters, also some subexpressions can be reduced to "True" or " vacation ", in this case, can eliminate subexpression according to the Boolean algebra rule, also can further optimize thus the coding of the expression formula in the message. For example, expression formula (price>=50 " with " price<=20) is reduced to " vacation ", this is because there is not to satisfy the value of this expression formula for " price ". Whole filter expression is being reduced under the particular case of " vacation ", the agency must not create message, has alleviated thus the unnecessary work of router.
If bulk filter comprises asterisk wildcard, act on behalf of 128 alternatively in a manner described below with they conversions (step 370). Perhaps, can be in network rather than subscriber computer or any asterisk wildcard of other equipment conversion. In this example embodiment, the grammer that is used for bulk filter be adopt asterisk wildcard grammer only arranged, and the grammer of attribute filter be adopt Boolean expression grammer only arranged. Perhaps, realization can be adopted grammer different or variable type with the attribute filter for bulk filter.
Agency's 128 DNF expression formulas with gained are encoded into message (step 372), and forward this information to intelligent router (step 374). Coding may relate to and converts order to plane message form (flat message format), this means that it has consisted of serial data. This transmission can relate on other route entities that will be transmitted to by the routing rule of the bulk filter of ordering and the generation of attribute filter in one or more intelligent routers or the network. For this propagation, order expression formula and for example can be mapped to legacy packet structures.
The coding of step 372 relates to the message transformat that the order for certain channel is organized as message transmission API, in order to propagate at whole channel. Order is for example to transmit as carry out message with the notice of main body #.SUBSCRIPTION in inside. Therefore because the bulk filter field of existing variable number has again the attribute test of variable number, a pair of byte is used for storage bulk filter Field Count in this example, and another is used for memory attribute test number to byte. Organize into groups on each order of the field ground (for example pressing the order of defined in order in the source) to bulk filter, and each is organized as two byte parts of message. The asterisk wildcard field can be organized into groups by following mode.
When attribute test was organized into groups, the mode at the end of message with the marshalling of the property value that is similar to notice was organized into groups the test operation number. Before to attribute test and operand marshalling, they are sequentially to classify by the attribute in each disjunct (disjunct) of DNF, and the predefined attribute of simultaneously opsition dependent sequential testing is the free attribute of by name sequential testing subsequently. In addition, in each disjunct, the attribute of scalar value is carried out the regular formula that the dependence test collection is reduced to the scope filter of have a boundary value (for left or right range of opening or identity property test) or two boundary values (for the closed scope between the different boundary values). About all the other information of test for example be encoded into by with two bytes of the same sequence of operand pair; This two byte is located in the message sequence, immediately following after two byte code sequences of bulk filter field. Two bytes are to a kind of form of the Bit String coding that can consist of sequence properties test, except two bytes to it also can be used for representing the coding of other types. The example of attribute test below is provided.
The coding summary of attribute test is as described in Table 20. The right coding of table 21 explanation two bytes, the coding of the operator ID of table 22 explanation two byte centerings.
Table 20
Coding rule
  1 The beginning of the new disjunct among the indication of 0 in the D position DNF, 1 in the D position be indication other conjunct in current extracting then.
  2 The position (defining such as the notification type by channel) of the pre defined attribute of the value indication Test Application except complete 1 in the notification properties position; By the example described in Figure 18 the operand of this test is organized into groups.
  3 Complete 1 value indication Test Application in the case, utilizes title and the title length of the attribute of operand pair Test Application to organize into groups in free attribute in the notification properties position.
  4 One of them of the predefined type of the position encoded attributes of operand type ID
  5 Used operator in the position encoded test of operator ID, 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
Left range of opening 000
Right range of opening 001
Closed scope 010
Test of equal value 011
Certainly member's test (in scope) 100
It negate member's test (not in scope) 101
Because whether two bytes of test are applied to predefine or free attribute to type and the test of the operand that shows test, therefore do not need free attribute or the performed separately marshalling of test number of their type. This scheme supposition is no more than 127 pre defined attributes in notice. Perhaps, this design can adopt more bits to come the encoded attributes test.
Although the conventional DNF according to the attribute filter of this marshalling comes order and packet attributes test, but for to make the total evaluation of whole attribute filter more efficient, infrastructure element (such as router) also can select by certain other orders (perhaps according to the local data about the success of difference test or failed possibility that dynamically obtains) to assess test. The order id field of message is the value that is produced by the agency, is used for the agency's of unique identification subsequent request the order of edge router, in order to revise or cancel this order. Particularly, be to adopt the message format that shows in the example of Figure 18 to propagate to on-the-fly modifying of the attribute filter ordered, except main body is #.RESUBSCRIPTION, and order the ID that ID is the order of the previous registration that will revise. Order cancellation is for example to adopt the message format of Figure 18 to propagate in whole order id field, and wherein main body is #.UNSUBSCRIPTION, and orders the ID that ID is the order that will be cancelled of previous registration.
Below provide and be used for conversion that explanation undertaken by above-mentioned agency and the example of coding. Consider following exemplary attribute filter expression: price>=10 and (symbol==" LU " or (amount>=1000 and amount<=10000)). Figure 19 has shown in the description step 362 by the employed object of agency Figure 39 0 with the UML (UML) of storage expression formula. This figure explanation is used for the hierarchical relationship that regulation is ordered, and it can comprise variable, steady state value or the two. Object among the figure can be the filter class example according to specific implementation. Each SimpleFilter (simple filter) object factory be used for storing the property value of information of the corresponding attribute test of relevant filter expression. In the expression formula of Figure 19, "or" filter 396 connect two " with " filter 392 and 400. " with " filter 392 comprises and have the simple filter 394 of ordering attribute. Similarly, "or" filter 396 comprises simple filter 398, " with " filter 400 comprises simple filter 402 and 404.
Example is supposed that attribute price, symbol and amount are the pre defined attribute of associated channel, and is supposed that they are defined in respectively in the position 0,1 and 2 for this reason. In addition, the attribute type supposition is respectively signless integer (type code 6), character array (type code 12) and signless integer (type code 6).
Consider to comprise next order of above exemplary attribute filter expression as its attribute filter. Figure 18 has shown order has been organized into message. The sketch 386 on Figure 18 left side has shown actual message content, and the sketch 388 on the right provides the legend of the different piece of message. In this example, the width of each sketch is four bytes. Before marshalling, filter be converted to its DNF:(price of equal value>=10 and symbol==" LU " ") or (price>=10 and amount>=1000 and amount<=10000).
The attribute test coding of 16 bits is shown as bit sequence, and the gap demonstrates and is separated into different parts. Notice that two tests of the price in this example can not merge, because they are disjunct separately, so they separately are organized as the scope of Wu Youjie (" right range of opening "). On the other hand because two tests of amount are in identical disjunct, so they can in conjunction with, and thus they are grouped into together test as single " closed scope ".
At last, the feature that also is appreciated that certain field is " hypothesis "; These field values that this means this example are optional, and order general and that organize into groups is irrelevant. In addition, the bulk filter of order at random is chosen as ">", any main body coupling that it and associated channel define. Example shown in above-mentioned and Figure 18 and 19 is only to provide for the purpose of illustration, and marshalling can be used for the order of any other type. And the example that 350 of methods provide marshalling to order can any other mode be organized into groups them.
Figure 17 is the flow chart of the Proxy Method 376 of input message. Method 376 can for example realize by the agency 128 in the subscriber computer 122 and application 126. In method 376, agency 128 receives from the message (step 378) corresponding to the intelligent router of ordering. Agency 128 for example utilizes the channel id in the message to determine corresponding to the channel (step 380) of ordering, and calls the API (step 382) of this channel. This API provides data (step 384) for this order with GUI or extended formatting at subscriber computer. The processing of input message can be adopted with above-mentioned coding and process processing opposite, decoded data, and this decoding (Gray code) can be carried out in router or other network entities.
                       Asterisk wildcard is processed
Figure 20 is the flow chart of wildcard method 410. The method explanation adopts one group of routing rule with the example of the asterisk wildcard in the expression formula of conversion order for filter. Method 410 can realize with the software module that the processor 134 by in the subscriber computer 122 that for example represents with agency 128 is carried out. Perhaps, can be in network by processor 93 at intelligent router 92 or be included under the software control in the corresponding function among the ASIC91 and process asterisk wildcard. Asterisk wildcard comprises out field (open fields) or variable length, and its example provides in table 21.
In method 410, agency 128 or other entities receive has the order (step 412) of asterisk wildcard. The principal length of ordering can be stipulated by the publisher when content distributed, and main body can carry out preliminary treatment at publisher's machine, in order to for example the field of main body is counted and therefore obtained its field counting (length). Act on behalf of the quantity (step 414) of field in the 128 count filtering device operands, and the new regulation of initialization field length=N (filter) (step 416). The son field (step 418) that agency's 128 retrievals are ordered, and definite filter operation is counted son field O[i] whether be asterisk wildcard (step 420). If it is not asterisk wildcard that filter operation is counted son field, then acts on behalf of 128 conjunctive clause be increased in this rule field [i]=O[i] (step 422). If the filter operation number has more son fields (step 424), agency 128 turns back to step 418 to process other son fields. Parameter " i " expression field, wherein i is the integer of expression Field Count in this example.
After having processed son field, ">" (step 426) that whether agency's 128 definite last filter operation count son field is if then it changes into field length>N-1 (step 428) with length restriction. Asterisk wildcard is processed the symbol that can adopt any type, and ">" is a such example. In this example, " a.>" can mean a.b, a.c, a.d etc., and all its sub-main bodys on all levels (for example a.b.x, a.c.x, a.b.x.y etc.). Realize also available other symbols for other of asterisk wildcard.
If necessary, agency 128 propagates converted rule to other entities (step 430) in intelligent router or the network. Therefore, the method repeats by above-mentioned son field in order to process them, and asterisk wildcard is converted to rule without asterisk wildcard, does not namely comprise the rule of asterisk wildcard. The conversion of asterisk wildcard can appear in the network Anywhere, for example on subscriber's machine or in intelligent router. Therefore, this conversion can be carried out in the entity of the rule of the conversion that propagates into other entities at one, and perhaps it also dynamically carries out.
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 produce in intelligent router, or produce and propagate in the intelligent router at other network entities. In addition, provide the routing rule in the table 23 only to be used for illustration purpose, also can adopt other routing rules for the conversion asterisk wildcard.
Table 23
Meta-rule The rule of conversion
Main body=" a.b " Main body. length==2 main bodys [0]==" a " main body [1]==" b "
Main body=" C.*.D " Main body. length==3 main bodys [0]==" C " main body [2]=" D "
Main body=" foo.>" Main body. length>1 main body [0]==" foo "
Main body=" * .*.b.*.c.>" Main body. length>5 main bodys [2]==" b " main body [4]==" c "
                        Alerting service
The content-based routing of above-mentioned intelligence can be used in many realizations, and one of them relates to digital video surveillance system (DVSS). For example, user's (such as law enforcement or release mechanism) can input the order from the video clipping of the video camera of ad-hoc location. Video camera can be caught digital video clipping and be transmitted those montages via the network with content-based routing (such as the internet), and it is according to the subscription process video clipping in network core. Therefore, the user receives interested video clipping, and with their filter distribution in whole network. Except video clipping, the content of any other type that can distribute is to provide the warning of any type, and these examples comprise security breach, catch fire and fraud detection.
In another example, particular camera can comprise the movable sensor that is associated. Detecting when mobile, movable sensor triggers simultaneously video camera the video clipping of taking is sent to network, and this network using content-based routing routes to the subscriber with video clipping.
Therefore, above-mentioned content-based routing can significantly reduce the burden of network aspect processing and route video clipping. For example, the vision signal that is produced by each charge coupled device (CCD) requires to write four different destinations by digital video recorder (DVR), and they are respectively local storage, the overall storage device that is connected to network, DVSS system and the iDSS management server of DVR management. Consider carrying googol like this according to the necessary network bandwidth of amount, may do not satisfied client's capacity requirement by the total amount of the CCD of iDSS management or DVR. Therefore, bandwidth need to for example adopt the technology for medium or a large amount of subscriber to limit. Figure 21 has shown that the integral body of a surveillance connects the structure view, and wherein each DVR can manage four or 16 CCD.
Architectural overview:Figure 22 has illustrated mainly two improvement based on above-mentioned technology, improving the ability of surveillance shown in Figure 21. As shown in figure 22, first improvement concentrates on how to reduce DVR trunk portfolio, and the equipment that is called the z box is adopted in second improvement, and this equipment provides the function such as the content-based routing of above-mentioned those functions, to improve data-transmission efficiency.
Reduce the local service amount on the DVR trunk:Poor efficiency in the data distribution scheme can cause serious scalability problem. That is, when the image file that DVR generates adopted in the box that is delivered to other based on the TCP agreement, bandwidth consumption is linear increasing with the number of devices that is connected to LAN (LAN). In the view of iDSS, identical stream-type video data need to send among storage device (SAN or NAS), iDSS monitor and each DVSS of networking, and wherein DVSS is remote monitoring software.
A kind of method of head it off is for each DVR, issues out only data flow at LAN, and allows other equipment that are connected to network receive identical data flow as the result who orders. Therefore, if the output speed of DVR is 10 mbit/(Mbps), then for example there are 3 order for equipment should only need the 10Mbps of network on the identical network, but not 30Mbps.
For reaching this purpose, above-mentioned issue-order, event notice API can be used for the DVR box and utilize on any equipment of DVR data (such as iDSS, overall storage device). API can be simple but effectively, it can adopt the IP multicast and recover agreement. API also can follow above issue-order model, so that other realize not needing to change code, as long as utilize simply the storehouse of the complete version that API is provided just can again link.
The acting server of DVSS:Each DVSS can connect a connection (based on TCP) of arriving the DVR box to receive the stream-type video data. Extensibility has proposed identical as mentioned above problem.
With reference to Figure 22, the method can be described as 2 stages, for example in the phase I 1, at LAN side place, can provide acting server (such as z box 1) to process all DVSS output data (namely outputing to the data of DVSS from DVR). This acting server is ordered the upper all DVR data of LAN, and these data are published on the external network (such as the internet). DVSS orders this data. Therefore, acting server z box 1 provides subscriber agency's (as acting on behalf of 128) and publisher agency (as acting on behalf of 36), wherein the subscriber agency is used for gathering the data from DVR, and the publisher agency is used for these data are issued at whole issue-subscribe (issue-subscribe described above).
Even in the stage 1, portfolio also can have greatly minimizing in the LAN side, but portfolio still may be stopped up output link, particularly in some country, when typical asymmetric DSL (ADSL) only has the uplink speed of 64 kilobits/second (kbps), especially true.
Continuation is with reference to Figure 22, and the stage 2 preferably relates to the connection of renting or obtaining in service provider's machine room and the 2nd z cartridge device (such as z box 2) is set there. For example, the z cartridge device can be placed on the Hi-Net trunk. Can set up at client's dwelling house place the single connection (tunnel) from this equipment to z box 2.
In the case, act on behalf of (as acting on behalf of 128) at the z box 2 at client's dwelling house place as the subscriber. Z box 2 also can be used as route demons (such as route demons 216). As the subscriber agency, z box 2 (in the Hi-Net machine room) is preferably ordered DVR by the content of z box 1 issue. Between z box 1 and z box 2 is aforesaid issue-subscribe. Therefore, 1 issue of z box is from the video of DVR, and z box 2 is ordered the needed video of DVSS. In this mode, adopt event notice system described here to improve the data delivery efficiency of alerting service. Z box (such as z box 1 and z box 2) preferably includes as mentioned above for the module of issuing and ordering at this issue-subscribe.
                        Digital content delivery
The route of above-mentioned intelligence is content-based to can be used for many realizations, comprises video, music and the software upgrading of route by ordering. For example, the user can order software upgrading (such as anti-virus software), and should upgrade automatic route to them. In other examples, the user can order particular video frequency and music content, and also can make the automatic route of content of order give them. Video and music for example can be used as the streaming digital content and receive. In addition, the distribution process in the network core has alleviated the processing load on the server that software, video and music content are provided greatly. Therefore, except other benefits, adopt identical network infrastructure to provide content also can effectively increase the network bandwidth.
Figure 23 has shown a kind of ad hoc structure for realizing this route. Should be noted that this structure hypothesis has two levels of cache server C1 and C2, preferably resides in Internet Service Provider's the place that is located at same position. But, when only having the C1 cache server to be available, also can obtain these benefits. Term C1 and C2 cache server refer to provide the server (referring to Figure 14-15 and associated description) of aforesaid distributed network high-speed cache. This structure example gets as developing in two stages. Phase I hypothesis C2 cache server does not exist, and it adopts the rapid file transfer mechanism between central distribution device 450 and C1 cache server, to reduce server load and to send the large required time of media file. The rapid file transfer mechanism preferably obtains by add route box (470 among Figure 23) between central distribution device 450 and C1 cache server. Second stage is to add the route box at the C2 cache server, and adopts above-mentioned order mechanism between user's (such as subscriber computer 460) and C2 cache server.
Adopt the benefit of route box: Route box 470 preferably includes be used to the module that realizes above-mentioned content-based routing (such as above-mentioned intelligent router 92). Adopt route box 470 to realize that above-mentioned content-based routing has two main benefits. The through street of adopting these route boxes 470 is by transmitting Speed improving that solution can transmit file to 5 times of traditional file transportation protocol (such as FTP or RCP) with file. Simultaneously, also can realize efficient multicast at wide area network (WAN). When data send to one group of receiver from middle position, thereby this routing solution will make up the speed that Multicast Tunnel reduces server load and network bandwidth requirements quickening content delivery at WAN by utilizing the network multicast topological sum.
Structure:Media content is delivered to the C1 cache server from central distributor. The content file that the storage of C1 cache server is whole. Each the C1 cache server for example disk space of terra byte is stored full content. The content of user's (for example adopting the subscriber computer 460 such as subscriber's machine 122) request C2 cache server, this cache server storage area content. The C2 cache server needs for example disk space of hundreds of gigabytes.
File between user and the C2 high-speed cache transmits:When sending the subscription request media file, this request is processed by one of them C2 cache server user 460. If the media file of asking at C2 server high speed buffer memory, is then paid this file immediately. If not at C2 server high speed buffer memory, then send order and the file of asking is sent to the C2 cache server from the C1 cache server to the C1 cache server.
From the C1 Cache to the C2 Cache in advance with the media data high-speed cache:Order or order model based on the user, can in advance media file be cached to the C2 cache server from the C1 cache server. For example, if it is very interested to be connected to user's 460 pop songs of C2 cache server, the C1 cache server can be pushed new popular song to the C2 cache server, even if also did like this before this song of any user 460 requests on the C2 cache server.
Implementation phase:Phase I relates to for example installs the rapid file transfer mechanism, has the content route between distributor 450 and all C1 cache server. Do not need the C2 cache server. In the case, all users 460 are directly connected on the C1 Cache. The C1 cache server regularly receives new media file from distributor 450. The structure that has shown the stage 1 among Figure 24.
Notice that in Figure 24, distributor 450 sends new media file once to 470 in route box, by the content-based routing technology driving of above-mentioned intelligence. Therefore, reduced the load of distributor 450. Route box 470 adopts the rapid file transfer mechanism that file is sent to each C1 cache server. In the case, do not need extra route box at receiver 460 ends. Perhaps, the server of other types can be used for the C1 cache server.
Referring now to Figure 25, wherein shown the structure of the embodiment of implementation phase 2. The preferred route box 470 that adopts kernel to realize of stages 2 in this example comes route and sends data. Expense when the inner nuclear layer solution has also reduced Transmit message, this is because it needs buffer still less to copy and environment swap time still less (context-switching time). In addition, stages 2 solution has increased the C2 cache server in structure, as shown in figure 25. Equally, as shown in the figure, preferably in service provider network, adopt common location to add route box 470 at the C2 website. This has further significantly reduced bandwidth demand, may have hundreds of times bandwidth to reduce.
As shown in figure 25, the file that transmits between C1 cache server and the C2 cache server transmits via the route box 470 that is associated with the C1 cache server and the route box 470 that is associated with the C2 cache server. In this mode, adopt these route boxes 470 to realize that through street between C1 and the C2 cache server is by transmitting solution with file.
                   Service Quality Management
The content-based routing of above-mentioned intelligence for example can be used for specific delivery guarantee route content. For example, based on service level agreement (SLA), but ISP or content supplier's bandwidth reserved guarantee service quality (QoS). This can finish efficiently by above-mentioned content-based intelligent route.
Structure:There are at least two kinds of possible configurations that guarantee the QoS in the content delivery. The first configuration is that a plurality of link connections are arrived in one or more telephone operators (TELCO) network. The second configuration is only to arrive TELCO network of network link with one. Example as shown in Figure 26 has two-layer route box (R box). The content of R box 1 based on data grouping routes the packet to R box 2 and R box 3. R box 2 routes the packets directly in the different network link (such as L1-L4) with R box 3, and every link connection is to the TELCO network. For giving advanced level user's bandwidth reserved, the packet that produces for the highest SLA client is routed on the link with high bandwidth (limit priority), to guarantee those clients' specific QoS.
Example as shown in Figure 27, R box 1 route the packets directly to R box 2 and R box 3. R box 2 is routed to packet again in the different communication links with R box 3, and they all are connected to R box 4 subsequently. R box 4 obtains packet based on the QoS level of every link from four links. Subsequently, R box 4 sends to internet ISP by network link (such as L5) with packet. By being implemented in the various algorithms that obtain data in every link, this system can be every link dynamic bandwidth allocation, in order to obtain the QoS management better than the multilink configuration.
Technology:The QoS assurance can affect the technology of the content-based routing of above-mentioned intelligence and distribution. Want each grouping of route for the content-based routing mark. Solution is the deployment that economically viable QoS makes in ASP/ content supplier, in addition other benefits may be arranged.
Benefit:This solution can offer ISP (such as IDC) or content supplier (such as media (MOD) service provider as required), in order to be different client's bandwidth reserveds based on client's SLA.
Real-time Alarm:Alarm can have different priority. For example, safety and the alarm of catching fire can be given limit priority, and new alarm can be given more low priority. In the situation that does not have the QoS route, the limit priority alarm may not arrive with real-time mode their subscriber, and the alarm of low priority takies with communicating by letter because the network bandwidth of ASP may be had more. This solution has prevented the generation of this problem. And, can alarm be sent to each client based on client's SLA. Premium customers can be paid more expense and have the more multi-band of distributing to them wide.
Real time data is paid:For some application (such as the voice transfer on as required audio frequency (VOD), MOD or the IP professional (VoIP)), bandwidth has affected the quality of these application. This solution can be by coming the route packet by the inspection packet content based on type of message as mentioned above. For the application of some bandwidth sensitive, their packet can be routed to the link with higher priority. Except type of message, packet also can be routed to each subscriber based on their SLA level. Can adopt this solution will be for higher SLA client's Packet routing to the link with higher priority.
The renewal of software or anti-virus software also can utilize this solution. For example, the anti-virus file can be routed to the link with limit priority, upgrade to guarantee real-time anti-virus, and the audio driven file can be routed to the link with lower priority.
Content-based filtration:Adopt common positioning service and the R box is placed in the TELCO network, system can carry out outside ISP filters and dynamic caching, as shown in figure 28. Can come filtering data based on above-mentioned information filtering technology at the R of TELCO network internal box, enter the portfolio of IDC/ISP network with minimizing. This can be used to stop black gram to attack, and for example DOS attacks or undelegated data access. Owing to can check the content of request, so the R box can also be the high-speed cache box for Static and dynamic web data. The load that the advantage of this solution for example comprises safely, saves the network bandwidth between TELCO and the ISP and save isp server.
                Utilize and select multicast to carry out high-speed cache
It is a kind ofly can and retrieve their ability at time storing message after a while that message continues. A large amount of application-specific (such as Email) needs the message of overlength to continue for the message that flows through network usually. In the ideal situation, do not have out of order the time at network, the subscriber who always connects should continue without any need for surpassing for these application-specific are needed. Yet, in the reality, message may be by network the time because a variety of causes " be lost " for example (1) or fault occurred in network internal or at the user side place or buffer overflows or (2) user has explicitly disconnected network connection and again connection a period of time after.
Event notice system described here continues model and is divided into two-stage: short term sustained and long-term continuing. The short term sustained link failure that recovers owing to network congestion or short-term that is exclusively used in causes the grouping of losing. Continue for a long time to be exclusively used in and recover other faults, comprise for example user's connection failure or ISP network failure, subscriber computer fault, longer network failure and/or other faults. The embodiment of this two schemes below will be described.
Short term sustained: data re-transmission and current control
In data network, the reason of loss of data can be divided into link failure simply and buffer overflows. For reliable channel is provided to event notice system, need to address these problems. For link failure, can implement forward error correction (FEC) scheme to correct some mistakes that caused by link failure. Yet, still be necessary to provide a kind of very serious so that there is not FEC scheme recoverable to recover the scheme of grouping in it in mistake. With regard to buffer overflows, must prevent that buffer stream from occuring. Flow control scheme is generally used for data network to prevent this problem.
In short term sustained scheme, transmission control protocol (TCP) tunnel is preferred for hop-by-hop ground connection event router (such as intelligent router 12). Reason based on reliable layer 2 tunnel rather than employing reliable transport protocol (such as RMTP) is many-sided. In the short term sustained scheme in event notice system, if message does not satisfy filtering rule, then message is preferably filtered out by router. Therefore, receiving router cannot detect by the scheme that adopts similar source sequence number losing of grouping usually. Equally, do not wish to confirm each grouping of their receptions for all receiving routers, because will cause like this confirming excessive (being the ACK amplification) yet. In addition, overflow for avoiding buffer, implement flow control scheme for short term sustained model, so that the neighbor router that router can ask to be transmitted to its message before router is finished buffer space slows down. These schemes all are contained among the TCP.
The TCP transmission policy:At the TCP that is used for short term sustained scheme, transmission window preferably is used for data transmitter to assist to follow the tracks of the data that retransmitted in this locality. Adopt the purpose of transmission window to be two aspects: at first, transmission window has guaranteed that transmitter will know clearly by receiver receive data correctly; Secondly, transmission window allows more preferably to utilize channel capacity. In TCP, need to imply or confirm clearly each byte that transmitter sends. Transmission window helps the sender to follow the tracks of the data that send and confirm. Transmission window has also improved channel usage, because the sender can send data in transmission window, and need not stop and waiting for the last grouping that will obtain confirming. In case last data obtains confirming that then window will advance automatically.
The receiver window is also safeguarded in TCP. The receiver window preferably is used for showing the available buffer space at the data sink end. Its available buffer space value is sent to transmitter, how to avoid overflowing buffer at receiver-side so that transmitter is known.
The TCP congestion control:Because TCP is designed to end to end host-host protocol, the buffer that the TCP that therefore adopts in the short term sustained scheme has also solved in issue-subscribe inside overflows. Be head it off, the TCP that is used for short term sustained model preferably adopts the 3rd window: congestion window. This congestion window is used for making the transmitter conjecture along the largest buffer space on the router of path. In brief, if transmitter detect in the grouping lose the congestion window size is reduced, otherwise or then increase.
Long-term continuing: the high-speed cache that continues channel
Channel (as mentioned above) can be lasting or real-time. Real-time Channel only transmits usually useful and without any using the specific data that continue demand in real time. Lasting channel is stored in the interior data by network of duration frame T. In other words, the continuation of lasting channel is guaranteed during time frame T. This continuation of data obtains by following steps, for example: in the channel duration that each fringe node place cached data continues; Retrieval is from the data to the Cache of user transparent under fault condition; Allow clearly retrieve data from Cache of user; By preventing router failure and between router, setting up reliable tunnel the data flow through network is continued; And prevent channel elements fault in reproduction process.
Therefore, as described below, when the subscriber was lost efficacy and continuing again to return in the time frame T of channel, continue for a long time scheme optimization and make and utilize the subscriber who continues the channel registration can retrieve in the end " X " of network high speed buffer memory time frame (early data of X<T).
Continue in the scheme long-term, the subscriber uses (as using 126) and preferably can clearly data (such as message) be pulled out from the subscriber agency (as acting on behalf of 128) who is associated. As mentioned above, the agency can utilize acting server or realize with it. After agency or acting server had recovered from network failure, the agency preferably retrieved data in a period of time that it and edge router disconnect with transparent mode from Cache. And, allow preferably that the subscriber only may have access to the data of last T time frame long-term continuing in the scheme. For this reason, preferred pin is determined the time to the edge router that is connected on agency's (or acting server). The data optimization of the high-speed cache of retrieval transmits not real-time ensuring outside band. The long-term embodiment main object that continues scheme is to lose efficacy and again effectively or lose the existing subscriber who is connected with edge router (such as edge router 16). New subscriber may not access the information of high-speed cache.
The continuation definition:Subscriber's time control continuation (utilizing time frame T) is defined as the ability that can retrieve from issue-subscribe the data of last time frame T. If this subscriber has left network, then continue on the channel the subscriber not during any data of receiving will be in the time that keeps a period of time frame T (from the reception of data) in the network. If this subscriber returns in time frame T, then the subscriber can not lose any data. Yet if the subscriber returns between T and 2T time frame, the subscriber may obliterated data. If the subscriber returns, then preferably do not guarantee that the subscriber accesses any previous data after time frame 2T.
More than definition requires to send at the subscriber place issue of leaf-subscribe tree should keep a time frame T after the subscriber disappears, can be wiped out subsequently, so that the new data that will receive in time frame T after the subscriber leaves remain into till its time expiration of time frame T arrival.
Structure:Figure 29 is the block diagram that some parts of issue-subscribe that continuation is provided in high-speed cache are described. As shown in the figure, this network comprises core routing node 548 and edge routing node 545. Each routing node preferably includes intelligent router 92 (showing with the edge routing node) and traditional backbone router (not shown), and as above Fig. 4 is described. Each intelligent router 92 that need to carry out to continuing channel high-speed cache preferably has and its common cache manger 218 of locating, as shown in figure 29. Abovely with reference to Fig. 8 cache manger 218 has been described. Intelligent router 92 is preferred is responsible for short term sustained property in order to retrieve missing data or recover from router failure. Cache manger 218 is responsible for cached data so that the long-term continuation of channel to be provided. Cache manger 218 preferably with this data cache in Cache 540. Cache 540 preferably includes memory and dish (not shown).
There are several advantages with cache manger 218, as opposite with intelligent router 92, be responsible for the data of the long-term continuation of high-speed cache, comprise: the computation-intensive operation of the data of indexes cached can be carried out at independent processor, therefore the performance of route and filtering treater is not affected, periodically the data mobile with high-speed cache also can carry out at another processor to the dish I/O operation of dish, therefore prevented that circulation is stolen from route with filtering, and avoids edge router must carry out regular I/O.
Also shown agency 128 among Figure 29, it preferably resides in subscriber's machine 122 and (does not show among Figure 29), as shown in Figure 5. Agency 128 is responsible for communicating with cache manger 218, with retrieve data from Cache 540, receive the data retrieved and the data of responsible organizing search. As noted above, agency 128 can utilize acting server or realize with it.
Do not having under the out of order condition, only having edge nodes 545 to need cache manger 218 to be associated with them. Yet although show among Figure 29, because the long-term scheme predictive-failure that continues, each of first order core routing node 548 that is in edge routing node 545 upstreams preferably includes the cache manger 218 for the storage data. The upstream is away from the mobile direction of agency's 128 (namely away from subscriber's machines 122). The first order of upstream core routing node refers to directly be in the routing node of edge routing node 545 upstreams. Although issue-subscribe generally includes a plurality of first order upstream core routing node, Figure 29 has only described a first order upstream core routing node, core routing node 548. As mentioned above, cache manger 218 provides the local cache of data at its residing network node. Therefore, the operation that is arranged in the cache manger 218 on each core routing node (comprising such as core routing node 548) provides the distributed cache in the data of whole network core. This distributed cache provides backup for the high-speed cache at edge routing node 545 places.
Figure 30 is the figure of explanation backup high-speed cache in upstream router (such as core routing node 548). Continue in the scheme long-term, each high-speed cache preferably backs up with the Cache of next upstream router. The upstream Cache has been stored whole input data and has been used as the backup of all next stage downstream edge router Caches. Data optimization in the high-speed cache of upstream adopts the mechanism identical with the edge router high-speed cache to store.
Below with reference to Figure 31, preferably provide the functional of four disparate modules of leap for the cache structure that continues channel: cache manger 218-is preferably and is responsible for storage by the server process of the data of intelligent router 92; Router high-speed cache API552-is preferably the storehouse of being responsible for from all chain of command access of 92 pairs of cache mangers 218 of intelligent router, as creating and destroy high-speed cache; Agency's (or acting server) high-speed cache API554-is preferably and is responsible for from acting on behalf of 128 (or acting on behalf of 128 acting servers) to the storehouse of all chain of command access of cache manger 218, such as retrieve data; And act on behalf of 128 (or acting servers)-preferred being responsible for and collect the data of retrieval and organize these data from Cache 546.
Figure 31 illustrates the interactive operation of these four modules. Agency 128 and intelligent router 92 the two preferably by high-speed cache API storehouse 552 and 554 accesses cache. High-speed cache API storehouse 552 and 554 is provided in Cache 546 initializing, to create and to destroy high-speed cache, retrieval high-speed cache address for main body, the most important thing is from the API of Cache 546 retrieve data. Route demons 216 preferably send to cache manger 218 by data path with data, and need not pass through high-speed cache API552. High-speed cache API552 and 554 preferably adopts the control access to all control messages (comprising data retrieval).
Cache manger-high-speed cache management:Below with reference to Figure 32, when cache manger 218 has run into new channel, the channel manager 150 of cache manger 218 preferred active information servers (server 152 described above, 154 and/or 156) to obtain this channel. In case cache manger 218 has the address of channel manager 150, the characteristic of channel of cache manger 218 preferred retrieval channel managers 150. Characteristic of channel preference is as comprising: the duration frame (T) of the lasting characteristic of channel main body tree and attribute, channel, channel, the granularity of high-speed cache. Can begin before high-speed cache flows through data for the channel of given main body at cache manger 218, need in cache manger 218, create the high-speed cache of that main body. Cache manger 218 expectation creates the high-speed cache message and in response to this message establishing main body high-speed cache. Can this main body high-speed cache be destroyed, hang up or recover according to request subsequently. Figure 32 explanation is about the establishment of the high-speed cache of order.
Cache manger-cached data input:The data that cache manger 218 preferred in many ways access enter intelligent router 92, for example: solution like the IP, in this type of situation, the data on intelligent router 92 input links also are forwarded in the cache manger 218; Mechanism (intercepting all groupings of propagating at the network of intelligent router 92 at this machine-processed high speed cache manager 218) is detected in employing; After filtration, intelligent router 92 is transmitted each message that need to propagate at one or multilink to Cache 546; And cache manger 218 is as the subscriber of all data that enter intelligent router 92.
Cache manger-cached data storage device:Below with reference to Figure 33, cache manger 218 is index data in many ways in Cache 546 preferably, as take channel id, main body, publisher ID, timestamp, time granularity (G), main cache attribute, link (in the specific situation when carrying out high-speed cache as fault) or other modes. Data can be indexed and be stored in file system or the memory by hierarchical directory structure. Data optimization is cached in the memory, and is periodically moved to dish. High-speed cache in the memory only continues the duration of " G " time granularity. , move in the file under that branch with relevant all data optimizations of specific branch in the tree to after date at time G, thereby cover the file the earliest of that branch. (noticing that G had better not be embodied as sliding window, but be embodied as absolute window that because it is high each message will to be write individually in the dish cost, and it is higher all G intervals to be write in the dish efficient in once-through operation). Figure 33 is the figure of exemplary index tree. When for lasting cached data, preferably use the first index tree among Figure 33.
Continuation is with reference to Figure 33, and the preferred classification of main body is stored, and " a " is the father of main body (such as " a.b ", " a.c " " a.d " etc.). Cache manger 218 preferred pins keep the hash table to the Cache 546 of the respective file position that all main bodys is mapped to they. In some cases, when upstream router (such as core routing node 548) detected the fault of a downstream router (such as edge routing node 545) on its link, Cache 546 may need the data under the storage failure condition. The first method that is used for recovering is to restart downstream router (this may spend a few minutes). When the downstream router restarts, upstream router will need high-speed cache to be forwarded to downward the data of that link. This high-speed cache (as being called the FM high-speed cache among Figure 33) is index on output link preferably.
Cache manger-collecting garbage:If channel does not continue, then Cache 546 is not stored data, but immediately these data is drawn lower. If channel continues, then Cache 546 is stored these data. The duration frame " T " of particular channel is divided into N time granularity, and each size is G. High-speed cache in the memory only continues the duration of G. After cache manger determined to have crossed time interval G, data were moved in the dish. Cache manger 218 will store data on the dish in the duration of duration frame period T.
In case the time just will be corresponding to data deletion from dish of time interval G greater than the upper limit at lasting overtime (the T)+interval of channel. For more understanding this point, the T that supposes channel is 2 hours. As example, cache manger 218 adopts 15 minutes time granularity G. For data are deleted from dish, the preferred strategy that adopts is to have stored T (2 hours) when the last data of high-speed cache during time interval G (15 minutes), and the whole data of high-speed cache will be dropped 15 minute interim. Therefore, the data of high-speed cache will have been stored above 2 hours before deleted when the beginning at 15 minutes intervals. In this example, each 15 minute interim high-speed cache data are data blocks. If duration frame T is divided into N interval, then will N+1 data block (1 in the N on the dish and the memory) be arranged for each main body in Cache 546 on any point in the time.
Cache manger-cached data retrieval:Below with reference to Figure 34, agency's 128 (or acting servers) preferably activate the data of GetCache (obtaining high-speed cache) operation to obtain to get back to the time " T " from the current time. In Figure 34, the cache manger 218 that agency 128 links active GetCache are operated is designated as the entrance Cache. Because router or act on behalf of 128 fault/disconnect, the entrance high-speed cache cannot have data of all agency's 128 requests. In this case, the work of entrance high-speed cache is retrieve data from every other high-speed cache (such as the upstream Cache), comparing data and with it return to agency 128. Figure 34 explanation is from the search operaqtion of a plurality of high-speed caches (A, B and C) of different time stamp (TS1, TS2 and TS3).
Cache manger 218 preferably can retrieval time data in the piece of granularity G. Therefore act on behalf of the 128 more data that can obtain than its expectation or request. Therefore in addition, during retrieval from a plurality of high-speed caches, may have some overlapping intervals between high-speed cache, act on behalf of 128 duplicates that also will find to exist data, agency 128 should carry out duplicate to the data flow that high-speed cache provides and suppress.
The interactive operation of cache manger and other modules:In event notice system infrastructure, cache manger 218 is preferred mutual with several modules, as shown in figure 35. When cache manger 218 has run into new channel (creating high-speed cache during the time), the channel manager 150 of its preferred active information server 550 to obtain this channel. In case cache manger 218 has had the address of channel manager 150, it preferably obtains the characteristic of channel from channel manager 150. Allow that preferably administrator module 552 arranges/some characteristics of modification, such as the granularity of high-speed cache. Also preferably allow administrator module 552 manual creation or erasure channel high-speed cache.
Proxy cache API-uses-acts on behalf of mutual:Use (as using 126) and preferably activate proxy cache API554 to obtain the Cache 546 with given main body and filter. Preferably, only retrieval is from the data of Cache 546 in application, and condition is that it has ordered these data. Proxy cache API554 is preferably actual to provide two API.
The one API allows order cancellation to use, in order to order and retrieval Cache 546 in the identical time. If be provided with " fifo " sign, then create and order and send it to edge nodes 545. Yet, preferably immediately order is placed " time-out " pattern. After agency 128 has received the data of all high-speed caches, agency's 128 data of at first paying all high-speed caches, the last sequence that tracking is not seen in data for the publisher, and the final nucleotide sequence of never being seen by each publisher subsequently begins to pay paused data.
For the 2nd API, suppose to use the data of having ordered some data and having asked high-speed cache. In the case, to use some to this may not be the data of sequence with regard to cached data in delivered. Therefore, " fifo " sign in the case only shows that from the data of Cache 546 retrievals should be sequence at itself, and needn't sequence in regular data.
Agency 128 is all events of retrieval in a bulk of data preferably. After high-speed cache API554 retrieve data, agency 128 preferably need to carry out following operation (referring to foregoing) to data before activating the callback operation: according to notice list builder notice; Follow the tracks of each publisher's last sequence number; And filter. When agency 128 pushed all events to callback, it preferably sent to callback with DoneCache (finishing high-speed cache) event, with the data of all high-speed caches that shown delivered. On this aspect, be FIFO if order, and the data of rule are suspended agency's 128 preferred notices of transmitting all time-outs. Act on behalf of 128 notices of paying sequence number last in the data of those its sequence numbers greater than high-speed cache.
Proxy cache API is to the high-speed cache interactive operation:When the subscriber asks the data of high-speed cache, the history that high-speed cache API on agency's 128 ends 554 preferably at first inquires about the edge router of Connection Proxy 128, and adopt the time interval that provides in GetCache (the obtaining high-speed cache) request to filter out this tabulation. API554 sends GetCache (channel, main body, filter, local_pubs, time _ cycle, fifo, router array) message with backward last edge cache device that it connects. Cache manger 218 is preferably based on channel id, main body and timestamp and releases data, and data are pushed act on behalf of to 128. When cache manger 218 had been finished the release data, it just sent the DoneCache event to high-speed cache API and finishes to show that data transmit.
If cache manger 218 is found data in this locality, its facility is located needed data with agency's 128 " router-lists " that provide. In case after cache manger 218 had been collected the data that are necessary, cache manger 218 is relatively necessary data just, but and before it being transmitted to agency 128, it is carried out duplicate and cause.
High-speed cache connects historical:In order from Cache 546 retrieve data, for edge and upstream Cache, preferably to act on behalf of the maintaining cached connection history in 128 places. Because this informational needs strides across agency 128 and closes and destroy, so information should be safeguarded hereof constantly. High-speed cache on the dish connects history preferably by being stored in following file and the form:
The edge cache position:The position of edge cache (such as the Cache 546 on edge routing node 546) preferably obtains from channel manager/channel bank. This any moment subsequently that changes (as losing/recover connection, connection movement) when guiding and at the edge cache device occurs. Any variation during distributor notification agent 128 relevant edge cache connect, and these variations are passed in the agency 128 high-speed cache storehouses subsequently. When changing, this variation is continued.
Continue storage device:The exemplary path of the data of CACHE_ROOT/ channel _ id/ channel-high-speed cache.
Data optimization is stored by following form:
The edge cache number;
Edge cache 1: time interval number, the time started 1: the termination time 1, the time started 2: the termination time 2 ...; And
Edge cache 2: time interval number, the time started 1: the termination time 1, the time started 2: the termination time 2 ... ... with as first up-to-date timestamp in the tabulation. Notice that these two different edge cache devices will never have overlapping interval (because agency 128 once only connects an edge cache device). When increasing new project, can check that just old project is to see whether they are still effective; If they are invalid, then they are abandoned. If
Interval termination time+channel lasting overtime<current time, then the time interval become invalid. If all intervals in the project are invalid the edge cache project become invalid. Note " termination time " be 0 mean the interval current be effective.
The upstream requested: the position of upstream high-speed cache (such as the Cache 546 on the core routing node 548) depends on main body. Each main body has the multicast tree of himself, and therefore this group first order upstream high-speed cache is the function of main body. Whenever the user will order main body, and intelligent router 92 preferably returns the tabulation of the upstream high-speed cache that is associated with main body. Any variation of the upstream requested that causes owing to the reorganization in fault or the multicast tree equally, also preferably is delivered to agency 128 by control channel. These variations are filed to continue storage (file) mode in this locality.
Continue storage device: CACHE_ROOT/ channel _ identifier/main body (not according to level, but by whole main body). The exemplary path of the data of-high-speed cache.
Data optimization is stored by following form:
Upstream high-speed cache number;
Upstream high-speed cache 1: time interval number, the time started 1: the termination time 1, the time started 2: the termination time 2 ...;
Upstream high-speed cache 2: time interval number, the time started 1: the termination time 1, the time started 2: the termination time 2 ... ... first up-to-date timestamp in tabulating with conduct equally. Different from the edge cache interval is, two upstream Caches can have overlapping interval, because for given main body, agency 128 can have several upstreams Cache. The content of upstream high speed buffer storage file also is the rubbish that adopts the algorithm identical with the edge cache device to collect.
High-speed cache validity during the data retrieval:During agency 128 useful life, it is connected to different edge routers and upstream router. Proxy cache API554 preferably with this connection historical storage in local storage. When agency 128 need to be from the last T interval of Cache 546 retrieve data, proxy cache API554 preferably check connect historical, to determine the therefrom high-speed cache of visit data. The following is the algorithm that is preferred for this purpose: 1) the high-speed cache storehouse is surveyed all edge cache intervals and is checked the interval that falls within the T time frame. If the interval falls within this time frame, just then it is added to the tabulation L of efficient frontier high-speed cacheeIn; 2) tabulation LeAdopt the interval time started to classify; 3) for LeIn each interval of not covered by edge cache, it is slow for obtaining covering all high-speed cache intervals, upstream at this interval at a high speed to detect the upstream, and adds the significant interval to tabulation LuIn; With LuAppend to LeOn, and adopt the interval time started to LeClassification, thus L created.
This algorithm provides the tabulation of high-speed cache L and provides time interval in order to retrieve data for each high-speed cache. This high-speed cache L tabulation subsequently 4) is organized into and obtains high-speed cache message and be sent to cache manger 218. At cache manger 218 ends, cache manger 218 preferred 5) from obtain high-speed cache message, marshalling is gone at the high-speed cache interval, and again create the tabulation L by the incremental order classification of time started. For tabulation each interval among the L: cache manger 218 preferred 6) check at last interval with when between the space before whether have the gap, if there is the gap, then to these data of local cache request. If there is no gap, then cache manger 218 preferred 7) with relevant cache session to obtain this data. Cache manger 218 preferred 8) relatively sends to agency 128 from the data of all high-speed caches and with it.
Router high-speed cache API:Router high-speed cache API552 on intelligent router 92 is responsible for activating cache manger 218, to create, destroy, to hang up for special body and the recovery high-speed cache. Router high-speed cache API552 also processes the initial configuration-high-speed cache address is uploaded to the channel manager 150 from intelligent router 92, can in needs, obtain this information so that act on behalf of 128 sides (proxy cache API554), and for the position of other routers retrieval Caches 546 (this uses when intelligent router 92 is wanted the notification agent 128 relevant upstream high-speed caches of given main body, for example after ordering when answering and the main body tree occured to change).
Use for the high-speed cache of pulling out:More than discussing to concentrate on adopts high-speed cache to realize continuing channel and allow to return the subscriber data are pulled out from network. Alternative allows any subscriber (new or return) data of any kind can be pulled out (as comprise that the subscriber may also not order, but because some other people's order and data in Cache 546) from Cache 546. Difference between this embodiment and the last embodiment is, for returning the subscriber, up to the present data are guaranteed, and the position of data is well-known, and for new subscriber, the position of storage data is unknown. A kind of plain mode of realizing this alternative is in this channel issue " FindCache (searching high-speed cache) " request. The Cache 546 of the data of the high-speed cache that 128 searching belts ask is to some extent acted on behalf of in " FindCache " request position of comprising channel id, main body, filter, the time interval and acting on behalf of 128. All Caches 546 are all intercepted " searching high-speed cache " request. When each Cache 546 receives this request, just Cache 546 is checked corresponding data whether in its data storage, if, just in unicast messages, send its position back to. Agency 128 selects a Cache 546 and activates to such an extent that GetCache operates to obtain data thereon.
Latest data is pulled out:Other embodiment comprise that allowing the subscriber to use the latest data that (as using 126) can obtain the latest news of given main body pulls out feature. This is useful to the data such as the stock quotation alarm, for example when the user only wonders that nearest stock price rather than its are historical.
The realization of cache manger:Preferably have three kinds of thread types, for example, in cache manger 218 was realized: data cache thread-data cache thread was preferably from obtaining data to the connection of intelligent router 92, and in memory index and these data of storage; Data storage thread-in case arrived the terminal point in the time interval, data storage thread just preferably with the data mobile stored in the memory in dish, and in this is processed, also stale data is carried out collecting garbage; Data retrieval thread-data retrieval thread preferably be responsible for obtaining to the request of the data of high-speed cache and from Cache 546 retrieve data. This three classes thread can be embodied as single-threaded or thread pool. Preferably, data cache thread and data storage thread with data mobile to the dish in time carry out synchronously. Deletion data when this between data storage thread and the data retrieval thread can prevent in retrieve data synchronously.
Data structure:More than the data structure example that is used for high-speed cache is provided in table 19 and appended description.
Data storage device:Figure 36 is that explanation is used for the figure at the preferred bibliographic structure of Cache 546 storing data files that are called " Aquila high-speed cache ". Notice that each main body level catalogue preferably has the data directory that one group of sub-main body catalogue and storage are distributed on the data on this main body. For example, the data that Fox.Movies on the amusement channel issues will enter into the file of directory A quilaCache/ amusement/Fox/ film/data, and the data of issuing at main body Fox will enter into the file of directory A quilaCache/ amusement/Fox/ data. In order to improve the speed of data storage device, the TOC level of special body preferably creates when intelligent router 92 request Caches 546 begin high-speed cache to given channel and main body.
Data retrieval:Should be efficiently from Cache 546 retrieve data, in order to can not stop data storage device and Cache 546 is paused. Data retrieval is retrieve data from dish and memory. The step that data retrieval is taked is preferably as follows: 1) locator data node; 2) locking data node; 3) location needs the timestamp of the data of retrieval; 3) retrieve data and it is stored in the memory; 4) to the release of data node; 5) before the data of retrieving that will store in memory are released among agency 128 clients, it is filtered and arranges in order.
Although described the present invention in conjunction with example embodiment, will be understood that, for a person skilled in the art, can easily carry out many kinds and revise, and the application is intended to contain its any adaptation or modification. For example, in the case without departing from the scope of the present invention, can adopt the hardware and software of various types of publisher's machines, user or subscriber's machine, channel and their configuration and content-based routing and other functions to realize. The present invention should only be limited by claim and its equivalent.

Claims (112)

1. one kind is used in the network routing packets said method comprising the steps of in order to the method for alerting service to be provided:
Reception has the grouping of stem part and payload portions, and described payload portions comprises the information that relates to from the video clipping of particular camera;
Check that in network core the described payload portions of described grouping is in order to determine how the described grouping of route is to the information of subscriber from described particular camera; With
Based on the optionally described grouping of route of described inspection.
2. the method for claim 1 is characterized in that, described inspection step comprises whether the information of determining in the described payload portions mates content is concluded that information concludes information with the described content in the structure that the map network destination is associated.
3. the method for claim 1 also is included in and carries out described inspection step on the router in the described network core.
4. the method for claim 1 is characterized in that, described inspection step comprises the information in the described payload portions is applied filter.
5. method as claimed in claim 4 also comprises with the router of described filter propagation in the described network, in order to carry out described inspection.
6. the method for claim 1 also comprises the router in the described network is programmed, in order to carry out described reception, inspection and route step.
7. the method for claim 1 is characterized in that, described inspection step comprises the inspection attribute, in order to determine the how described grouping of route.
8. the method for claim 1 is characterized in that, described optionally route step comprises optionally described Packet routing to the digital video surveillance system.
9. the method for claim 1 also is included in and carries out described inspection step in the LAN.
10. the method for claim 1 also is included in the ISP position and carries out described inspection step.
11. the method for claim 1 is characterized in that, described particular camera comprises digital video recorder and charge coupled device.
12. method as claimed in claim 11 also comprises the digital video recorder that generates the described grouping with described stem part and described payload portions, described payload portions comprises the information that relates to from the video clipping of described particular camera.
13. a method that is used for providing at the network route messages alerting service said method comprising the steps of:
Reception has the message of stem part, at least one main body and at least one attribute, and described attribute relates to the video clipping from particular camera;
From the described main body of described message retrieval and described attribute;
Order based on described main body retrieval; And
In order to determine how the described message of route is applied to described order with described attribute to the information of subscriber from described particular camera in network core.
14. method as claimed in claim 13 is characterized in that, the step of the described order of described retrieval comprises that retrieval is corresponding to the filter of described order.
15. method as claimed in claim 13 also comprises the described message of route if described attribute satisfies described order.
16. method as claimed in claim 13 does not also comprise if described attribute does not satisfy described order abandoning described message.
17. method as claimed in claim 13 is further comprising the steps of:
Retrieval is corresponding to a plurality of filters of a plurality of orders;
The a plurality of attributes of retrieval from described message;
Each described attribute is applied on each described filter, whether is met to determine any described corresponding order; And
Whether be met the optionally described message of route based on any described order.
18. method as claimed in claim 13 also is included in and carries out described applying step on the router in the described network core.
19. method as claimed in claim 13 is characterized in that, described particular camera comprises digital video recorder and charge coupled device.
20. method as claimed in claim 19, also comprise described digital video recorder, generation has the described message of described stem part, described at least one main body and described at least one attribute, and described attribute relates to the video clipping from described particular camera.
21. one kind is being used for the network routing packets in order to the method for alerting service to be provided, is said method comprising the steps of:
Reception has the grouping of stem part and payload portions, and described payload portions comprises the information relevant with the event of specific warnings service;
In network core, check the described payload portions of described grouping, in order to determine that the how described grouping of route is to the information of the described alerting service of subscriber; And
Based on the optionally described grouping of route of described inspection.
22. one kind is used in the network routing packets in order to the device of alerting service to be provided, described device comprises:
Receiver module is used for receiving the grouping with stem part and payload portions, and described payload portions comprises the information that relates to from the video clipping of particular camera;
Checking module is used for the described payload portions in the described grouping of network core inspection, in order to determine how the described grouping of route is to the information of subscriber from described particular camera; And
Routing module is used for based on the optionally described grouping of route of described inspection.
23. device as claimed in claim 22, it is characterized in that, described checking module comprises for the information of determining described payload portions whether mating the module that content in a kind of structure is concluded information, and wherein said structure is concluded described content information with the map network destination or instructed the rule of correspondence of processing in the router to be associated.
24. device as claimed in claim 22 also comprises for the module of carrying out described inspection step at the router of described network core.
25. device as claimed in claim 22 is characterized in that, described checking module comprises for the module of filter application on the information of described payload portions.
26. device as claimed in claim 25, also comprise for described filter propagation to the router of described network in order to carry out the module of described inspection.
27. device as claimed in claim 22 also comprises for the router of described network is programmed in order to carry out the module of described reception, inspection and processing.
28. device as claimed in claim 22 is characterized in that, described checking module comprises for checking that attribute is in order to determine the module of the how described grouping of route.
29. device as claimed in claim 22 is characterized in that, described device is located in the network that comprises digital video recorder.
30. device as claimed in claim 22 is characterized in that, described particular camera comprises digital video recorder and charge coupled device.
31. a device that is used for providing at the network route messages alerting service, described device comprises:
Receiver module, it is used for receiving the message with stem part, at least one main body and at least one attribute, and described attribute relates to the video clipping from particular camera;
Be used for the module from the described main body of described message retrieval and described attribute;
Module based on described main body retrieval order;
Application module is used in order to determine how the described message of route is applied to described order with described attribute to the information of subscriber from described particular camera in network core.
32. device as claimed in claim 31 is characterized in that, comprises for the module of retrieval corresponding to the filter of described order for the described module of retrieving described order.
33. device as claimed in claim 31 also comprises in the situation that satisfies described order at described attribute and based on the quality of service guarantee module of the described message of route optionally.
34. device as claimed in claim 31 also is included in the module that is used for abandoning described message in the situation that described attribute do not satisfy all orders.
35. device as claimed in claim 31 also comprises:
Be used for retrieval corresponding to the module of a plurality of filters of a plurality of orders;
Be used for from the module of a plurality of attributes of described message retrieval;
Be used for each described attribute is applied on each described filter to determine any described corresponding module that whether is met of ordering; And
Whether be met the optionally module of the described message of route based on any described order.
36. device as claimed in claim 31 also comprises for one or more modules of carrying out described application at the router of described network core.
37. device as claimed in claim 31 is characterized in that, described device is located in the network that comprises digital video recorder.
38. device as claimed in claim 31 is characterized in that, described particular camera comprises digital video recorder and charge coupled device.
39. one kind in network routing packets comprise in order to the system of alerting service to be provided:
A plurality of digital video camcorders, wherein said digital video camcorder produce digital video output;
LAN (LAN), it connects described digital video camcorder;
The publisher agency, it is connected on the described LAN, issues described digital video output;
Issue-subscribe, it is connected to described publisher agency; And,
Digital video surveillance system (DVSS), it receives the digital video output of described issue via described issue-subscribe.
40. system as claimed in claim 39 also comprises the subscriber agency who is connected to described issue-subscribe, it is ordered described digital video output and pushes the digital video output of described order to described DVSS.
41. system as claimed in claim 39 is characterized in that, described issue-subscribe comprises a plurality of intelligent routers.
42. system as claimed in claim 41 is characterized in that, described intelligent router comprises:
Receiver module is used for receiving the grouping with stem part and payload portions, and described payload portions comprises the information that relates to from the video content of one of described a plurality of particular camera;
Checking module is used for the described payload portions in the described grouping of network core inspection, in order to determine how the described grouping of route is to the information of subscriber from described digital video camcorder; And
Routing module is used for based on the optionally described grouping of route of described inspection.
43. one kind is used for the network of digital content distribution to the subscriber, described network comprises:
A plurality of subscriber computers;
The central distribution device of regular distributed digital loop content;
A plurality of cache servers, the digital content of its reception and the described distribution of high-speed cache, wherein said cache server is asked from the user of subscriber computer reception about the digital content of certain described high-speed cache termly, and the digital content of described request is transmitted to described subscriber computer; And,
The route box, it receives described distributed digital loop content as file and adopts the issue of content-based routing-order that described digital content file is sent to described a plurality of cache server from described central distribution device, wherein, described digital content file is that publication and described user request are to order.
44. network as claimed in claim 43, it is characterized in that, described route box is that the first via is by box, described network also comprises and the secondary route box of the common location of described a plurality of cache servers, the wherein said first via by box with described digital content file be routed to described a plurality of cache servers in described secondary route box of at least one common location.
45. network as claimed in claim 43 is characterized in that, described a plurality of cache servers are located at the Internet Service Provider place.
46. network as claimed in claim 43 is characterized in that, described a plurality of cache servers are first order cache servers, the whole described digital content that its storage is distributed by described central distribution device.
47. network as claimed in claim 46 also comprises second level cache server, the described digital content of a part that its storage is distributed by described central distribution device.
48. network as claimed in claim 47, it is characterized in that, described route box is that the first via is by box, described network also comprises the secondary route box with the common location of described second level cache server, wherein, the described first via adopts the issue of content-based routing-order that digital content file is sent to described second level cache server from described first order cache server by box and described secondary route box.
49. network as claimed in claim 48 is characterized in that, each described route box comprises:
Receiver module is used for receiving the grouping with stem part and payload portions, and described payload portions comprises the information that relates to digital content file;
Checking module is used for checking the described payload portions of described grouping, in order to determine the how described grouping of route; And
Routing module is used for optionally described grouping being routed to described second level cache server from described first order cache server based on described inspection.
50. network as claimed in claim 47 is characterized in that, is based on by the described digital content of a described part of described second level cache server storage that the history of user's request of reception determines.
51. network as claimed in claim 47, it is characterized in that, described second level cache server directly receives described user request, and will be transmitted to described first order cache server about can't help user's request of digital content of described second level cache server storage.
52. network as claimed in claim 43 is characterized in that, described route box comprises:
Receiver module is used for receiving the grouping with stem part and payload portions, and described payload portions comprises the information that relates to digital content file;
Checking module is used for checking the described payload portions of described grouping, in order to determine the how described grouping of route; And
Routing module, it is used for optionally described grouping being routed to described a plurality of cache server from described central distribution device based on described inspection.
53. network as claimed in claim 43 is characterized in that, described central distribution device comprises one or more servers.
54. network as claimed in claim 43 is characterized in that, described digital content comprises video, music and software.
55. one kind is used at network digital content distribution being arrived subscriber's method, said method comprising the steps of:
Distribution is from the digital content of central distribution device;
The described distributed digital loop content of content-based routing is to a plurality of cache servers;
The digital content of the described content-based routing of high-speed cache on described a plurality of cache servers;
Reception is ordered about the user of the digital content of the high-speed cache of asking; And,
User's order based on described reception is sent to the user with the digital content of asking from described a plurality of cache servers.
56. method as claimed in claim 55 is characterized in that, the step of described content-based routing may further comprise the steps:
Reception has the grouping of stem part and payload portions, and described payload portions comprises the information that relates to digital content file;
The described payload portions that checks described grouping is in order to determine the how described grouping of route; And
Based on described inspection optionally with described Packet routing to described a plurality of cache servers.
57. method as claimed in claim 56 is characterized in that, described inspection step comprises that whether the information determined in the described payload portions conclude information matches with content being concluded information with the described content in the structure that corresponding destination is associated.
58. method as claimed in claim 56 is characterized in that, described inspection step comprises the information of filter application in described payload portions.
59. method as claimed in claim 58 also comprises with the route box of described filter propagation in the described network, in order to carry out described inspection.
60. method as claimed in claim 56 also comprises the route box in the described network is programmed, to carry out described reception, inspection and route step.
61. method as claimed in claim 56 is characterized in that, described inspection step comprises the inspection attribute, in order to determine the how described grouping of route.
62. method as claimed in claim 56 also comprises and carries out described inspection step route box.
63. method as claimed in claim 55, it is characterized in that, described a plurality of cache server is first order cache server, and described method also comprises utilizes content-based routing that the digital content of high-speed cache is sent to second level cache server.
64. such as the described method of claim 63, comprise that also the digital content of determining described request is whether on the cache server of the described second level.
65. such as the described method of claim 64, also comprise based on described and determine that user's order that will receive is sent to described first order cache server.
66., it is characterized in that described transfer step utilizes content-based routing that the digital content of high-speed cache is sent to described second level cache server based on the history that the user who receives orders such as the described method of claim 63.
67. one kind is used for said method comprising the steps of at network and the quality of service guarantee together method of routing packets:
Reception has the grouping of stem part and payload portions;
The described payload portions that checks described grouping in network core is in order to determine the how described grouping of route;
Determine the quality of service guarantee of described grouping; And
Based on described inspection and the optionally described grouping of route of described quality of service guarantee.
68., it is characterized in that described inspection step comprises that whether the information of determining described payload portions conclude that with the described content in the structure that the map network destination is associated information is complementary with content being concluded information such as the described method of claim 67.
69. such as the described method of claim 67, also be included in and carry out described inspection step on the router in the described network core.
70., it is characterized in that described inspection step comprises the information matches in filter and the described payload portions such as the described method of claim 67.
71. such as the described method of claim 70, also comprise on the router of described filter propagation in the described network, in order to carry out described inspection.
72. such as the described method of claim 67, also comprise the router in the described network programmed to carry out described reception, inspection and route step.
73., it is characterized in that described inspection step comprises and checks that attribute is in order to determine the how described grouping of route or noly to leave described grouping fully behind such as the described method of claim 67.
74. the method for a route messages in network, described method comprises:
Reception has the message of stem part, at least one main body and at least one attribute;
The described main body of retrieval and described attribute from described message;
Order based on described main body retrieval;
Determine the quality of service guarantee of described message;
For determining how the described message of route is applied to described order in network core with described attribute; And
Based on described application and the described quality of service guarantee described message of route optionally.
75., it is characterized in that the step of the described order of described retrieval comprises that retrieval is corresponding to the filter of described order such as the described method of claim 74.
76. such as the described method of claim 74, also comprise the described message of route if described attribute satisfies described order.
77. such as the described method of claim 74, also do not comprise if described attribute does not satisfy described order abandoning described message.
78. such as the described method of claim 74, further comprising the steps of:
Retrieval is corresponding to a plurality of filters of a plurality of orders;
The a plurality of attributes of retrieval from described message;
Each described attribute and each described filter are mated to determine whether any described corresponding order is met; And
Whether be met the optionally described message of route based on any described order.
79. such as the described method of claim 74, also be included in and carry out described inspection step on the router in the described network core.
80. one kind in network and the quality of service guarantee device of routing packets together, described device comprises:
Be used for receiving the module of the grouping with stem part and payload portions;
At least one described payload portions that is used for checking described grouping in network core is in order to determine the module of the how described grouping of route;
The module that is used for the quality of service guarantee of definite described grouping; And
Come the optionally module of the described grouping of route based on the check result that obtains from the above step with by the definite quality of service guarantee of the above step.
81. such as the described device of claim 80, it is characterized in that, described checking module comprise for the information of determining described payload portions whether with content is concluded information with the map network destination or is instructed the described content in the structure that the rule of correspondence processed in the router is associated to conclude the module that information is complementary.
82. such as the described device of claim 80, also comprise for the module of carrying out described inspection step at the router of described network core.
83., it is characterized in that described checking module comprises for the module with the information matches of filter and described payload portions such as the described device of claim 80.
84. such as the described device of claim 83, also comprise for described filter propagation to the router of described network in order to carry out the module of described inspection.
85. such as the described device of claim 80, also comprise for the module of the router of described network being programmed to carry out described reception, inspection and processing.
86., it is characterized in that described device is router such as the described device of claim 80.
87. a device that is used at the network route messages, described device comprises:
Be used for receiving the module of the message with stem part, at least one main body and at least one attribute;
Be used for from the module of the described message described main body of retrieval and described attribute;
Be used for the module based on described main body retrieval order;
Be used to the module of determining the described message of route how and in network core, described attribute and described order being mated; And
The module that is used for the quality of service guarantee of definite described grouping.
88. such as the described device of claim 87, it is characterized in that, comprise for the module of retrieval corresponding to the filter of described order for the described module of retrieving described order.
89. such as the described device of claim 87, also comprise in the situation that satisfies described order at described attribute and based on the described quality of service guarantee module of the described message of route optionally.
90. such as the described device of claim 87, also comprise for the module that abandons described message in the situation that does not satisfy any described order that described router stores at described attribute.
91. such as the described device of claim 87, also comprise:
Be used for retrieval corresponding to the module of a plurality of filters of a plurality of orders;
Be used for from the module of a plurality of attributes of described message retrieval;
Filtering module is used for each described attribute and each described filter are complementary to determine whether any described corresponding order is met; And
Be used for whether being met the optionally module of the described message of route based on any described order.
92. such as the described device of claim 87, also comprise one or more modules for carry out described filtration step at the router of described network core.
93., it is characterized in that described device is router such as the described device of claim 87.
94. the method for a route and cached data grouping in multicast network said method comprising the steps of:
Reception has the grouping of stem part and payload portions;
Check in network core the described payload portions of described grouping is in order to determine how described Packet routing is arrived the subscriber;
Based on the optionally described grouping of route of described inspection; And
Local cache is from the data of described grouping in described network core.
95. such as the described method of claim 94, also be included in and carry out described inspection step on the router.
96., it is characterized in that described inspection step comprises the information of filter application in described payload portions such as the described method of claim 94.
97. such as the described method of claim 96, also comprise with on the router of described filter propagation in the described network in order to carry out described inspection.
98. such as the described method of claim 94, also comprise the router in described network programmed to carry out described reception, inspection and route step.
99., it is characterized in that described inspection step comprises and checks that attribute is in order to determine the how described grouping of route such as the described method of claim 94.
100. such as the described method of claim 94, also comprise the data of time mark high-speed cache.
101. such as the described method of claim 94, also comprise the data of indexes cached.
102. such as the described method of claim 94, further comprising the steps of:
Reception is to the request of data; And
Whether the data of determining high-speed cache satisfy described request.
103. such as the described method of claim 94, further comprising the steps of:
Local cache is from the data of described grouping on the edge routing node.
104. such as the described method of claim 94, further comprising the steps of: the data that after the expiration of time frame T, remove high-speed cache.
104. a network that is used for route and cached data grouping, described network comprises:
The edge routing node, the grouping that it receives and route has stem part and payload portions, described edge routing node comprises:
Intelligent router, the grouping that its route receives, described intelligent router comprises the instruction for following operation:
Check in network core the described payload portions of described grouping is in order to determine how described Packet routing is arrived the subscriber; And
Based on the optionally described grouping of route of described inspection; And
Cache manger, it is operably connected to described intelligent router, and described cache manger comprises the instruction for following operation:
Local cache is from the data of described grouping in local cache; And
The core routing node of one or more receptions and the described grouping of route.
105. such as the described network of claim 104, also comprise:
Be operably connected to the agency of described edge routing node, it comprises the instruction for following operation:
Determine the position of the data of high-speed cache;
The data of retrieval high-speed cache from described local cache; And
Process the cached data of retrieving.
106., it is characterized in that a core routing node in one or more core routing nodes is positioned at the straight upstream of described edge routing node such as the described network of claim 104, described straight upstream core routing node comprises:
The intelligent router of the grouping that route receives, described intelligent router comprises the instruction for following operation:
Check in network core the described payload portions of described grouping is in order to determine how described Packet routing is arrived the subscriber; And
Based on the optionally described grouping of route of described inspection; And
Cache manger, it is operably connected to described intelligent router, and described cache manger comprises the instruction for following operation:
Local cache is from the data of described grouping in local cache.
107. such as the described network of claim 104, also comprise: a plurality of channel managers that the characteristic of a plurality of channels is provided.
108., it is characterized in that described cache manger also comprises the instruction for the data of time mark high-speed cache such as the described network of claim 104.
109., it is characterized in that described cache manger also comprises the instruction for the data of indexes cached such as the described network of claim 104.
110., it is characterized in that described cache manger also comprises the instruction for following operation such as the described network of claim 104:
Reception is to the request of data; And
Whether the data of determining high-speed cache satisfy described request.
111. the device of a route and cached data grouping in multicast network, described device comprise a plurality of processors and are used for the instruction of following operation:
Reception has the grouping of stem part and payload portions;
Check in network core the described payload portions of described grouping is in order to determine how described Packet routing is arrived the subscriber;
Based on the optionally described grouping of route of described inspection; And
Local cache is from the data of described grouping in described network core.
112. such as the described device of claim 111, it is characterized in that, described a plurality of processor comprises first processor and the second processor, and wherein said first processor is carried out described inspection and route instruction optionally, and described the second processor is carried out the local cache instruction.
CN038212064A 2002-07-08 2003-07-08 System, method and apparatus for inspecting packet routing via payload in a publish-subscribe network Expired - Lifetime CN1701304B (en)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US39456102P 2002-07-08 2002-07-08
US39464102P 2002-07-08 2002-07-08
US39471402P 2002-07-08 2002-07-08
US39463102P 2002-07-08 2002-07-08
US60/394,641 2002-07-08
US60/394,714 2002-07-08
US60/394,561 2002-07-08
US60/394,631 2002-07-08
PCT/US2003/021338 WO2004006486A2 (en) 2002-07-08 2003-07-08 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

Publications (2)

Publication Number Publication Date
CN1701304A true CN1701304A (en) 2005-11-23
CN1701304B CN1701304B (en) 2010-05-05

Family

ID=30119330

Family Applications (1)

Application Number Title Priority Date Filing Date
CN038212064A Expired - Lifetime CN1701304B (en) 2002-07-08 2003-07-08 System, method and apparatus for inspecting packet routing via payload in a publish-subscribe network

Country Status (6)

Country Link
EP (1) EP1535157A4 (en)
JP (2) JP2005532748A (en)
KR (1) KR100985237B1 (en)
CN (1) CN1701304B (en)
AU (1) AU2003256463A1 (en)
WO (1) WO2004006486A2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166851A (en) * 2011-12-16 2013-06-19 中国电信股份有限公司 Internet information transfer processing method and system
CN104811740A (en) * 2015-04-29 2015-07-29 北京奇艺世纪科技有限公司 Video file distribution method, system and device
CN103796342B (en) * 2014-01-24 2017-02-15 北京奇虎科技有限公司 System for displaying attribute information and router

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0629764A (en) * 1991-07-16 1994-02-04 Nec Ic Microcomput Syst Ltd Wind noise reduction microphone amplifier
JP4614128B2 (en) 2004-12-10 2011-01-19 日本電気株式会社 Packet delivery system, PAN registration device, PAN management device, and packet transfer device
JP4787267B2 (en) 2004-12-23 2011-10-05 テレフオンアクチーボラゲット エル エム エリクソン(パブル) How to notify an emergency to multiple mobile terminals
US20070005725A1 (en) * 2005-06-30 2007-01-04 Morris Robert P Method and apparatus for browsing network resources using an asynchronous communications protocol
CN100456753C (en) * 2005-07-13 2009-01-28 华为技术有限公司 Message matching method and system
CN1925482B (en) * 2005-09-01 2013-03-27 中兴通讯股份有限公司 Transforming method and device for human-machine order format
US8055897B2 (en) 2005-12-06 2011-11-08 Lippershy Celestial Llc Digital object title and transmission information
US8194701B2 (en) 2005-12-06 2012-06-05 Lippershy Celestial Llc System and/or method for downstream bidding
US9686183B2 (en) 2005-12-06 2017-06-20 Zarbaña Digital Fund Llc Digital object routing based on a service request
US7894447B2 (en) 2005-12-06 2011-02-22 Lippershy Celestial Llc Digital object routing
US8014389B2 (en) 2005-12-06 2011-09-06 Lippershy Celestial Llc Bidding network
JP4680068B2 (en) * 2006-01-05 2011-05-11 富士通株式会社 Communication control method, network and network device
US9330190B2 (en) 2006-12-11 2016-05-03 Swift Creek Systems, Llc Method and system for providing data handling information for use by a publish/subscribe client
WO2012002726A2 (en) * 2010-06-30 2012-01-05 한국전자통신연구원 Communication node and communication method
KR20120002424A (en) 2010-06-30 2012-01-05 한국전자통신연구원 Communication node and communication method
CN101969469B (en) * 2010-10-25 2013-11-06 华为技术有限公司 Callback processing method and device in telecom capability opening
IN2014KN01349A (en) 2011-11-29 2015-10-16 Ericsson Telefon Ab L M
US9026410B2 (en) * 2012-03-16 2015-05-05 The Boeing Company System and method for rapid management of logic formulas
KR101487859B1 (en) 2014-01-15 2015-02-02 주식회사 이디엄 Method for Collecting UDP Packet When Java Program Is Being Executed
JP6665697B2 (en) 2016-06-09 2020-03-13 富士通株式会社 Past information providing program, past information providing method, and past information providing device
US10824598B2 (en) * 2018-08-07 2020-11-03 Dell Products L.P. Handling file commit and commit-delete operations in an overlay optimizer
JP2020126283A (en) * 2019-01-31 2020-08-20 有二 菱沼 Corporate information transmission/reception system
CN112383582A (en) * 2020-10-09 2021-02-19 爱普(福建)科技有限公司 Management method and system for real-time data of edge layer
WO2022180690A1 (en) * 2021-02-24 2022-09-01 日本電信電話株式会社 Communication system, communication device, data distribution method, and program
JP2022164421A (en) * 2021-04-16 2022-10-27 Jcc株式会社 Broadcast recording apparatus and program therefor
CN114900555A (en) * 2021-12-14 2022-08-12 合肥哈工轩辕智能科技有限公司 Data distribution method and device based on lossless compression algorithm

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997023096A1 (en) * 1995-12-15 1997-06-26 Bell Communications Research, Inc. Systems and methods employing video combining for intelligent transportation applications
US5873084A (en) * 1996-01-18 1999-02-16 Sun Microsystems, Inc. Database network connectivity product
GB2350758A (en) * 1999-06-04 2000-12-06 Ibm Message broker providing a publish/subscribe sevice and method of processing messages in a publish/subscribe environment
JP3685651B2 (en) * 1999-06-04 2005-08-24 沖電気工業株式会社 Interconnect apparatus and active QoS mapping method
US6523068B1 (en) * 1999-08-27 2003-02-18 3Com Corporation Method for encapsulating and transmitting a message includes private and forwarding network addresses with payload to an end of a tunneling association
GB2354349A (en) * 1999-09-16 2001-03-21 Ibm Event notification data processing with command and command notification combined into a single event
US7283502B1 (en) * 2000-09-21 2007-10-16 Lucent Technologies Inc. Enhancement of framing protocol frame format to support quality of service
US7046680B1 (en) * 2000-11-28 2006-05-16 Mci, Inc. Network access system including a programmable access device having distributed service control
US20020087881A1 (en) * 2000-12-29 2002-07-04 Shlomi Harif System, method and program for identifying and binding a process in a heterogeneous network
US7325249B2 (en) 2001-04-30 2008-01-29 Aol Llc Identifying unwanted electronic messages

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166851A (en) * 2011-12-16 2013-06-19 中国电信股份有限公司 Internet information transfer processing method and system
CN103796342B (en) * 2014-01-24 2017-02-15 北京奇虎科技有限公司 System for displaying attribute information and router
CN104811740A (en) * 2015-04-29 2015-07-29 北京奇艺世纪科技有限公司 Video file distribution method, system and device

Also Published As

Publication number Publication date
AU2003256463A8 (en) 2004-01-23
EP1535157A2 (en) 2005-06-01
WO2004006486A3 (en) 2004-05-27
JP2005532748A (en) 2005-10-27
WO2004006486A2 (en) 2004-01-15
KR20050017108A (en) 2005-02-21
CN1701304B (en) 2010-05-05
JP2010148118A (en) 2010-07-01
AU2003256463A1 (en) 2004-01-23
KR100985237B1 (en) 2010-10-04
EP1535157A4 (en) 2010-09-08

Similar Documents

Publication Publication Date Title
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
US7551629B2 (en) Method and apparatus for propagating content filters for a publish-subscribe network
US7672275B2 (en) Caching with selective multicasting in a publish-subscribe network
US7376092B2 (en) Method and apparatus for implementing persistent and reliable message delivery
US20040073701A1 (en) Packet routing via payload inspection for quality of service management
US7627603B2 (en) Method and apparatus for implementing query-response interactions in a publish-subscribe network
US20030195946A1 (en) Method and apparatus for reliable publishing and subscribing in an unreliable network
CN1132377C (en) Communications network management
US20090285123A1 (en) Method and apparatus for content-based routing and filtering at routers using channels
CN1263263C (en) Method for high-performance delivery of web content
CN101809956B (en) Generation and delivery of multimedia content-adaptation notifications
US8364757B2 (en) System and method for electronically managing and routing news content
US6910033B2 (en) Method for storing Boolean functions to enable evaluation, modification, reuse, and delivery over a network
JP5546161B2 (en) Open Cable Application Platform (OCAP) and Set Top Box (STB) based invoice notification and payment application
CN1615612A (en) System for supply chain management of virtual private network services
CN1703048A (en) Web service application protocol and SOAP processing model
CN1328749A (en) Telecommunication services
CN1656749A (en) Digital content delivery system, digital content delivery method, program for executing the method, computer-readable recording medium storing thereon the program, and server and client for it
US8606929B2 (en) Methods, systems, and products for subcontracting segments in communications services
CN1571963A (en) System and method for controlling transmission of data packets over an information network
CN1855847A (en) Public and private network service management systems and methods
CN1488215A (en) Network access system including a programmable access device having distributed service control
KR100971506B1 (en) Method and apparatus for reliable and efficient content-based routing and query and response in a publish-subscribe network
US20100161828A1 (en) Methods and systems for transferring data over electronic networks
JP2009527047A (en) Communication and document management system and method

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

Granted publication date: 20100505