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

Info

Publication number
KR20050017108A
KR20050017108A KR20057000385A KR20057000385A KR20050017108A KR 20050017108 A KR20050017108 A KR 20050017108A KR 20057000385 A KR20057000385 A KR 20057000385A KR 20057000385 A KR20057000385 A KR 20057000385A KR 20050017108 A KR20050017108 A KR 20050017108A
Authority
KR
Grant status
Application
Patent type
Prior art keywords
method
routing
packet
network
step
Prior art date
Application number
KR20057000385A
Other languages
Korean (ko)
Other versions
KR100985237B1 (en )
Inventor
엔넌 후앙
알렉스 더블유.피. 펑
데이비드 에스. 로센블럼
살리니 야즈닉
라두 데오도레스쿠
츠-웨이 첸
치-메이 린
청-이 왕
핑-파이 양
로저 씨. 렝
Original Assignee
프리캐시 인크.
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

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L29/00Arrangements, apparatus, circuits or systems, not covered by a single one of groups H04L1/00 - H04L27/00 contains provisionally no documents
    • H04L29/02Communication control; Communication processing contains provisionally no documents
    • H04L29/06Communication control; Communication processing contains provisionally no documents characterised by a protocol
    • 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
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/24Flow control or congestion control depending on the type of traffic, e.g. priority or quality of service [QoS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2842Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/32Network-specific arrangements or communication protocols supporting networked applications for scheduling or organising the servicing of application requests, e.g. requests for application data transmissions involving the analysis and optimisation of the required network resources
    • H04L67/322Network-specific arrangements or communication protocols supporting networked applications for scheduling or organising the servicing of application requests, e.g. requests for application data transmissions involving the analysis and optimisation of the required network resources whereby quality of service [QoS] or priority requirements are taken into account
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/32Network-specific arrangements or communication protocols supporting networked applications for scheduling or organising the servicing of application requests, e.g. requests for application data transmissions involving the analysis and optimisation of the required network resources
    • H04L67/327Network-specific arrangements or communication protocols supporting networked applications for scheduling or organising the servicing of application requests, e.g. requests for application data transmissions involving the analysis and optimisation of the required network resources whereby the routing of a service request to a node providing the service depends on the content or context of the request, e.g. profile, connectivity status, payload or application type
    • 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 contains provisionally no documents
    • H04L12/18Arrangements for providing special services to substations contains provisionally no documents for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations contains provisionally no documents 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 contains provisionally no documents
    • H04L12/18Arrangements for providing special services to substations contains provisionally no documents for broadcast or conference, e.g. multicast
    • H04L12/1895Arrangements for providing special services to substations contains provisionally no documents 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-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2823Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for conversion or adaptation of application content or format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32High level architectural aspects of 7-layer open systems interconnection [OSI] type protocol stacks
    • H04L69/322Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer, i.e. layer seven

Abstract

비디오, 음악 및 소프트웨어 등과 같은 디지털 콘텐트의 분배에 있어서, 경보 서비스의 제공에 있어서, 그리고 서비스 보증의 품질에 따라, 분산 네트워크의 코어 내의 라우터들에서 페이로드 검사를 통해 패킷 라우팅을 이용한다. In the distribution of digital content such as video, music and software, in providing alert services, and depending on the quality of service assurance, it utilizes packet routing through a payload inspection at the inside of a distributed network core routers. 패킷은 라우팅 정보에 부가하여 주제들 및 속성들을 포함한다. Packet includes themes and attributes in addition to the routing information. 주제들은 가입 콘텐트의 특별한 타입에들에 대응하고, 속성들은 데이터 또는 콘텐트를 캡슐화한다. Subjects will correspond to a particular type of subscription content and attributes encapsulate the data or content. 가입은 서비스 보증의 특별한 품질 또는 서비스 레벨과 연관될 수 있다. Sign up it may be associated with a specific quality of service or service level guarantees. 라우터들은 콘텐트에 대한 가입에 대응한 필터들을 저장한다. Routers stores a filter corresponding to the subscription to the content. 패킷을 수신하면, 속성들을 포함하는 패킷의 페이로드 섹션을 검사하여 속성들을 검색하고, 카메라로부터의 콘텐트에 대한 가입들에 대한 필터들에 이들을 적용한다. When receiving a packet, by inspecting the payload section of the packet containing the attributes Search attributes and apply them to the filters for the subscription to content from the cameras. 속성이 필터를 충족시킨다면, 패킷은 그 다음 링크로 라우트된다. Sikindamyeon properties meet your filter, the packet is routed to the next link. 속성들이 필터들을 충족시키지 않는다면, 라우터는 패킷을 무시한다. Properties that do not meet the filter, the router ignores the packet. 이 라우팅 결정은 네트워크 코어 내의 라우터들 중에 분산되어 있다. The routing decisions are distributed among routers in the network core. 라우터는 네트워크 코어 내에 데이터를 국지적으로 캐시한다. The router locally caches the data in the network core.

Description

발행-가입 네트워크에서의 경보 서비스, 디지털 콘텐트 전달, 및 서비스 품질 관리를 위한 페이로드 검사를 통한 패킷 라우팅 및 선택적 멀티캐스팅을 갖는 캐싱{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} Issued alarm services, digital content delivery in the affiliate network, and service caching with a packet routing and selective multicasting via payload inspection for quality control {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}

본 발명은 경보 서비스들(alert services)을 제공하는데 사용되기 위한 패킷 내의 페이로드(payload)의 검사(inspection)에 기초하여 네트워크 코어(network core)에서 패킷들을 라우팅하기 위한 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for routing packets in a network core (network core) on the basis of the inspection (inspection) of a payload (payload) in the packet for use in providing the alarm service (alert services).

[관련 출원의 참조] [REFERENCE TO RELATED APPLICATIONS]

본 출원은 2002년 7월 8일에 출원되고 발명의 명칭이 "Packet Routing Via Payload Inspection for Quality of Service Management"인 미국 가출원 제60/394,631호에 기초한 우선권을 주장하며, 이는 본 명세서에 참조로서 포함된다. The present application is filed and the claims, the name of the present priority based on U.S. Provisional Application No. 60/394 631 No. "Packet Routing Via Payload Inspection for Quality of Service Management" on July 8, 2002, which is incorporated by reference herein, do. 본 출원은 또한, 발명의 명칭이 "Packet Routing Via Payload Inspection"인 미국 특허 출원 제10/199,356호, 발명의 명칭이 "Method and Apparatus For Content-Based Routing And Filtering At Routers Using Channels"인 미국 특허 출원 제10/199,368호, 발명의 명칭이 "Method For Sending And Receiving A Boolean Function Over A Network"인 미국 특허 출원 제10/199,439호, 발명의 명칭이 "Method For Storing Boolean Functions To Enable Evaluation, Modification , Reuse, And Delivery Over A Network"인 미국 특허 출원 제10/199,369호, 및 발명의 명칭이 "Efficient Implementation of Wildcard Matching On Variable-Sized Fields In Connect-Based Routing"인 미국 특허 출원 제10/199,388호의 일부계속출원(Continuation-in-part(CIP))이며, 이들은 모두 2002년 7월 19일에 출원되었고 모두 본 명세서에 참조로서 포함된다. This application is also a title of the invention "Packet Routing Via Payload Inspection" in U.S. Patent the application name of the 10/199 356 Ho, invention "Method and Apparatus For Content-Based Routing And Filtering At Routers Using Channels" in United States Patent Application 10/199 368 number, the title of the invention "Method for Sending And Receiving a Boolean Function Over a Network" U.S. Patent Application No. 10/199 439 number, the title of the invention "Method for Storing Boolean Functions To Enable Evaluation, Modification, Reuse , and Delivery Over a Network "U.S. Patent Application No. 10/199 369 number, and the title of the invention" Efficient Implementation of Wildcard Matching on Variable-Sized Fields in Connect-Based Routing "U.S. Patent Application No. 10/199 388 favors a continuation-in-part Application and (Continuation-in-part (CIP)), all of which were filed on July 19, 2002, are all incorporated herein by reference.

본 출원은 또한, 역시 앞서 참조된 출원들의 일부계속출원들이며 2003년 3월 28일에 출원된 이하의 미국 특허 출원들을 참조로서 포함하는데, 이들은 발명의 명칭이 "Method and Apparatus for Reliable Publishing and Subscribing in an Unreliable Network"인 출원 제10/400,671호, 발명의 명칭이 "Method and Apparatus For Content-Based Routing Using Compact Filter Storage and Off-Line Pre-computation"인 출원 제10/400,465호, 발명의 명칭이 "Method and Apparatus for Implementing Query-Response Interactions in a Publish-Subscribe Network"인 출원 제10/400,453호, 발명의 명칭이 "Method and Apparatus for Implementing Persistent and Reliable Message Delivery"인 출원 제10/400,462호, 및 발명의 명칭이 "Method and Apparatus for Propagating Content Filters for a Publish-Subscribe Network"인 출원 제10/400,444호이다. This application is also well deulyimyeo continuation-in-part application of the above-referenced application includes a reference to US Patent Application under filed on March 28, 2003, which is the title of the invention "Method and Apparatus for Reliable Publishing and Subscribing in an Unreliable Network "in the Application No. 10/400 671 number, title of the invention" Method and Apparatus for Content-Based Routing Using Compact Filter Storage and Off-Line Pre-computation, "in Application No. 10/400 465 number, the title of the invention" Method and Apparatus for Implementing Query-Response Interactions in a Publish-Subscribe Network "in Application No. 10/400 453 number, the title of the invention" Method and Apparatus for Implementing Persistent and Reliable Message Delivery "in Application No. 10/400 462 Ho, and invention the designation of "Method and Apparatus for Propagating Content Filters for a Publish-Subscribe Network" in Application No. 10/400 444 the call.

네트워크 대역폭은 기하급수적으로 증가하고 있다. Network bandwidth is increasing exponentially. 한편, 네트워크 인프라스트럭처(라우터, 서버, 데몬(daemon), 프로토콜 등을 포함)는 여전히 상대적으로 오래된 기술들을 사용하고 있다. On the other hand, the network infrastructure (including routers, servers, daemons (daemon), protocols, etc.) is still using relatively old technologies. 그 결과, 인터넷 애플리케이션들 및 네트워크 라우터들은 대역폭 증가 속도를 따라갈 수가 없다. As a result, Internet applications and network routers can not keep up with the increasing speed of bandwidth. 동시에, 점점 많은 장치들 및 애플리케이션들이 네트워크에서 사용 가능하게(network enabled) 되고 있다. At the same time, more and more devices and applications are becoming (network enabled) available on the network. 이러한 장치들 및 애플리케이션들이 네트워크 노드들 상에 가하는 부하가 엄청나게 증가하게 되었다. Such devices and applications have been to a huge increase in the load applied to the network nodes. 네트워크 부하 및 애플리케이션들의 수가 증가는 또한 네트워크 애플리케이션들의 구현 및 유지를 훨씬 복잡하게 한다. The number of applications increased network load and also makes it much more complex to implement and maintain their network applications. 그 결과, 네트워크 대역폭의 증가 및 네트워크 장치들 및 애플리케이션들의 편재하는(ubiquitous) 사용은, 특히 콘텐트를 가입자들(subscribers)에게 발행(publish)할 때, 오래된 네트워크 인프라스트럭처에서의 데이터의 라우팅 및 전송에 대해 문제를 가져올 수 있다. As a result, the increase in network bandwidth and network devices and when omnipresent (ubiquitous) used, in particular (publish) published content to subscribers (subscribers) for their applications, routing and transmission of data from the old network infrastructure. It can bring about problems.

네트워크로 하여금 서버들로부터 클라이언트들로 정보를 전달하게(push) 하기 위한 모델이 발행-가입 형태(publish-subscribe style)이다. The subscription form (publish-subscribe style) - allows the network issued a model for (push) to pass information to the client from the server. 이러한 모델에서, 어떤 클라이언트들이 서버의 정보에 관심을 가질 수 있는지 또는 그들이 네트워크에서 어디에 위치하는지와 무관하게, 서버는 그 정보의 단순화된 발행자가 된다. Regardless of whether in this model, which is that the client may be interested in the information on the server or on a network location where they, the server becomes a simplified publisher of the information. 클라이언트들은 정보에 대한 가입자들이 되는데, 정보는 그것이 네트워크에서 어디서 발행되었는지에 관한 세부 사항들과 잠재적으로 무관하게, 그것이 이용 가능하게 된 때에 전달된다. There is that clients are subscribers to the information, the information is delivered when and where it makes a potentially irrelevant with details on that issue in the network, as it becomes available. 이어서 네트워크는 발행된 정보를 가입자들에게 효율적으로 라우팅하고, 능동 가입들(active subscriptions)과 정보를 매칭하며, 발행자들 및 가입자들에게 투명한(transparent) 방식으로 이러한 모든 일들을 행하는 것에 대한 책임을 진다. Then the network is responsible for that performs all of these tasks in a transparent (transparent) way to and matching the issued information to their subscribers efficiently routed to and, an active subscription (active subscriptions) and information, the publisher and subscriber .

발행-가입 모델에서 서버의 복잡도(complexity)가 상당히 감소하게 때문에, 큰 부하의(heavyweight) 서버 및 작은 부하의(lightweight) 클라이언트 간의 구별이 사라지기 시작할 수도 있고, 오히려 발행자, 또는 가입자, 또는 양자일 수 있는 피어(peer)의 개념(notion)으로 통합되기 시작할 수도 있다. Issued - subscription because the complexity (complexity) of the server is significantly reduced in the model, it may begin to have (heavyweight) server and the (lightweight) distinguish between clients of a small load of large loads disappear, but rather the publisher or the subscriber, or both days as a concept (notion) of the peer (peer) that can be integrated may begin. 여러 종류의 애플리케이션들은 피어들 간의 발행-가입 형태의 상호작용(interaction)에 대해 자연적 동질성(natural affinity)을 갖는다. Different types of applications are issued between peers - has a natural affinity (natural affinity) for the interaction (interaction) of the subscription form. 이러한 애플리케이션들의 기반에 있는 공통된 주제(theme)는 발행되고 가입되고 있는 정보가 이벤트들의 형태로 되어 있다는 점이다. A common theme (theme) at the base of these applications is that the information is published and to join in the form of events. 예를 들어, 투자자는 주식을 사거나 팔아서 그 주식의 가격에 변동을 초래한다. For example, investors buy or sell stocks leads to fluctuations in the price of its shares. 도로에서 교통 사고가 발생하면 도로 상의 교통량의 정체를 초래한다. When a traffic accident occurs on the road causing traffic congestion on the roads. 소프트웨어 시스템의 보안 구멍(security hole)이 발견되면, 그 소프트웨어의 사용자들을 위해 패치가 개발되도록 한다. When a security hole in the software system (security hole) is found, so that the patch has been developed for users of the software. 인터넷 게임에서 플레이어가 무기를 발사하면, 다른 플레이어의 아바타(avatar)가 죽게 된다. When the player fired a weapon in the Internet game, and die an avatar (avatar) of the other players. 이러한 모든 예시적인 현상은 많은 수의 가입자들에게 잠재적으로 관심의 대상인 이벤트들이며 그러한 가입자들에게 그 이벤트들이 발생했음을 통지하기 위해 네트워크를 거쳐 전파(propagate)될 수 있다. All these phenomena are exemplary across the network can be spread (propagate) to notify deulyimyeo potentially subject to events of interest to a large number of subscribers to such subscribers that the event will occur. 따라서 이벤트는, 네트워크 상의 소정의 장소에서 소정의 시점에서 발생한 잠재적으로 흥미로운 어떤 일에 관한, 자체-완비된(self-contained) 간결한(succinct) 하나의 정보이다. Therefore, the event is at a predetermined location on the network of a potentially interesting what happened at a certain point, the self-fully equipped (self-contained) concise (succinct) is one of information.

통상적으로 서버 또는 발행자는 발행-가입 모델에서 어느 곳으로 발행된 콘텐트를 전송할 것인지를 네트워크에게 지시하기 위해 네트워크에 대해 라우팅 결정들(routing decisions)을 수행한다. Typically the server or publisher issued - performs the routing decision (routing decisions) for the network to indicate to the network that you want to transfer the content published as anywhere else in the subscription model. 발행자는 그가 발행한 콘텐트에 대한 가입들을 저장한다. The publisher stores the subscriptions for content, he issued. 새로운 콘텐트를 수신하거나 생성하는 때에, 발행자는 그 콘텐트를 각각의 가입들과 비교하여 부합(match)하는 것이 있는지 식별한다. When receiving or generating new content, the publisher identifies whether to meet (match) as compared to the content and each of the join. 콘텐트(이벤트)가 임의의 가입들을 충족하는 경우에, 발행자는 네트워크를 통해 그 콘텐트를 대응하는 가입자에게 전달(push)한다. If the content (event) satisfies any of the subscription, the issuer must deliver (push) to a subscriber corresponding to the content through the network. 이러한 전통적인 발행-가입 모델은, 특히 점점 많은 장치들이 네트워크에서 사용 가능하게 되고 가입들의 수가 증가함에 따라, 발행자에게 엄청난 부담(burden)을 지운다. These traditional publish-subscribe model as, in particular, more and more devices are being made available on the network increased the number of subscriptions, to erase the enormous burden on issuers (burden).

인터넷에 걸쳐 있는 막대한 수의 애플리케이션들이 보다 크게 집중(convergence)되면, 이벤트 통지(event notification)의 이용에 대한 가능성들이 무한하게 된다. If greater than that an enormous number of applications over the Internet focusing (convergence), the potential for use of the event notification (event notification) are infinite. 그러나, 그러한 가능성들은, 라우팅 결정들을 행하고 이벤트들이 가입들을 충족하는 시기를 결정하여 발행자들의 부담을 덜어주는 보다 효율적인 방식을 필요로 한다. However, such possibilities performs the routing decisions to determine when to join the event to meet needs for more efficient ways to ease the burden on issuers. 따라서, 널리 보급되며(pervasive), 지속적인(persistent) 이벤트 통지 서비스는 인터넷 애플리케이션들뿐만 아니라 다른 애플리케이션들 및 구현들에 대하여 상당한 부가가치가 있는 이점을 제공할 수 있다. Therefore, it is possible to provide the advantage that a significant added value with respect to the widespread and (pervasive), lasting (persistent) event notification services are other applications and implementations, as well as Internet applications.

도 1은 네트워크 코어에서의 지능형 라우팅을 도시하는 도면. 1 is a diagram illustrating intelligent routing in a network core.

도 2는 발행자들 및 가입자들을 위한 지능형 라우터들을 도시하는 네트워크도(network diagram). Networks (network diagram) of Figure 2 illustrates the intelligent router for the publisher and the subscriber.

도 3은 지능형 라우터들 및 백본 라우터들에 대한 네트워크 인프라스트럭처를 도시하는 도면. Figure 3 is a diagram illustrating a network infrastructure for intelligent routers and backbone routers.

도 4는 지능형 라우터의 하드웨어 컴포넌트들의 도면. Figure 4 is a diagram of the hardware components of an intelligent router.

도 5는 발행자 및 사용자 기기들의 도면. 5 is a diagram of publisher and user equipment.

도 6은 지능형 라우터들의 채널 관리자들을 도시한 도면. Figure 6 is a view showing the channel manager of the intelligent router.

도 7은 사용자 머신을 지능형 라우터들과 인터페이스하기 위한 사용자 머신의 소프트웨어 컴포넌트를 도시한 도면. 7 is a diagram showing the software components in a user machine for interfacing the machine with intelligent routers user.

도 8은 지능형 라우터를 위한 소프트웨어 컴포넌트들을 도시한 도면. Figure 8 is a diagram of software components for an intelligent router.

도 9는 메시지를 위한 패킷 구조를 도시한 도면. Figure 9 is a view showing a packet structure for a message.

도 10은 발행자(publisher) 메소드의 흐름도. 10 is a flow chart of a publisher (publisher) method.

도 11은 가입자(subscriber) 메소드의 흐름도. Figure 11 is a subscriber (subscriber) a flow chart of the method.

도 12는 채널 및 가입자 스크린들을 도시한 도면. 12 is a diagram illustrating channel and subscriber screens.

도 13은 콘텐트 기반 라우팅 메소드(content-based routing method)의 흐름도. 13 is a flow chart of a content-based routing method (content-based routing method).

도 14는 캐싱 메소드(caching method)의 흐름도. 14 is a flow chart of a caching method (caching method).

도 15는 캐시 인덱스(cache index)를 도시하는 도면. 15 is a view illustrating a cache index (cache index).

도 16은 발신 메시지(outgoing message)를 위한 에이전트 메소드(agent method)의 흐름도. Figure 16 is a flow chart of an agent method (agent method) for the outgoing message (outgoing message).

도 17은 착신 메시지(incoming message)를 위한 에이전트 메소드의 흐름도. 17 is a flow chart of an agent method for an incoming message (incoming message).

도 18은 메시지 인코딩의 예를 도시하는 도면. 18 is a view showing an example of an encoded message.

도 19는 가입을 저장하기 위한 데이터베이스 구조를 도시하는 도면. 19 is a diagram showing a database structure for storing subscriptions.

도 20은 와일드카드 메소드(wildcard method)의 흐름도. 20 is a flow chart of a wildcard method (wildcard method).

도 21은 디지털 비디오 감시 시스템(digital video surveillance system)을 도시하는 도면. 21 is a diagram showing a digital video surveillance system (digital video surveillance system).

도 22는 2단계 접근법(two-stage approach)에서 디지털 비디오 감시 시스템을 위한 프락시(proxy)를 도시하는 도면. 22 is a view showing a proxy (proxy) for the digital video surveillance system in a 2-step approach (two-stage approach).

도 23은 디지털 콘텐트 전달을 위한 구조를 도시하는 도면. 23 is a view showing the structure for digital content delivery.

도 24는 디지털 콘텐트 전달을 위한 제1단 구조(phase 1 architecture)를 도시하는 도면. 24 is a view showing a first-stage structure (phase 1 architecture) for digital content delivery.

도 25는 디지털 콘텐트 전달을 위한 제2단 구조(phase 2 archtecture)를 도시하는 도면. 25 is a view showing the second-stage structure (phase 2 archtecture) for digital content delivery.

도 26은 서비스 관리 품질을 위한 다수의 아웃 링크(out-link)들을 도시하는 도면. 26 is a view showing a plurality of link-out (out-link) for the service quality management.

도 27은 서비스 관리 품질을 위한 단일 아웃 링크를 도시하는 도면. 27 is a view showing the single-out link for the service quality management.

도 28은 ISP 외부에서의 필터링 및 동적 캐싱을 도시하는 도면. 28 is a view showing a filtering and dynamic caching outside of the ISP.

도 29는 네트워크에서의 캐시(cache)를 도시하는 도면. 29 is a diagram showing a cache (cache) in the network.

도 30은 업스트림 라우터(upstream router)에서 백업 지속 캐시(backup persistent cache)를 도시하는 도면. 30 is a view showing a backup persistent cache (backup persistent cache) in an upstream router (upstream router).

도 31은 프락시를 갖는 캐시와 라우터의 상호작용을 도시하는 도면. 31 is a diagram showing the interaction of a cache with a router having a proxy.

도 32는 가입자 상에서의 캐시 생성을 도시하는 도면. 32 is a chart showing the generation of a cache on a subscriber.

도 33은 인덱싱 트리(indexing tree)를 도시하는 도면. 33 is a view showing an index tree (tree indexing).

도 34는 다수의 캐시들로부터의 검색(retrieval)을 도시하는 도면. 34 is a diagram showing the search (retrieval) from a plurality of caches.

도 35는 시스템 내의 다른 모듈들과 캐시 관리자의 상호작용을 도시하는 도면. 35 is a view showing the interaction of the other modules and the cache manager in the system.

도 36은 캐시를 위한 파일 디렉토리 구조를 도시하는 도면. 36 is a view showing a file directory structure for the cache.

본 방법 및 장치는 네트워크에서 경보 서비스들을 제공하는데 사용되기 위한 패킷들의 라우팅을 제공한다. The method and apparatus provides the routing of packets for use in providing alert services on the network. 본 방법 및 장치는 종래 기술의 단점들을 극복한다. The present method and apparatus overcome the disadvantages of the prior art. 본 방법 및 장치의 장점은 비디오 클립들의 처리 및 라우팅에 있어서 네트워크의 부담을 상당히 감소시키는 것을 포함한다. An advantage of the present method and apparatus include those that significantly reduce the burden on the network in the processing and routing of the video clip. 다른 장점은 비디오 클립들의 라우팅에 대한 대역폭 요구사항들(bandwidth requirements)을 감소시키는 것을 포함한다. Other benefits include reducing the bandwidth requirements for the routing of video clips (bandwidth requirements). 또 다른 장점은 디지털 비디오 레코더 근거리 네트워크(digital video recorder local area network) 상의 국부적 트래픽(local traffic)을 감소시키는 것을 포함한다. Another advantage includes reducing local traffic (local traffic) on the digital video recorder local area network (digital video recorder local area network).

이들 및 다른 장점들을 달성하기 위한 실시예에서, 헤더 섹션(header section) 및 페이로드 섹션(payload section)을 갖는 패킷이 수신되며, 이는 특정 카메라로부터의 비디오 클립에 관한 정보를 포함한다. These and in embodiments to achieve other advantages, a packet is received having a header section (header section) and a payload section (payload section), which includes information relating to a video clip from a particular camera. 페이로드 섹션은, 패킷을 가입자들에게 특정 카메라로부터의 정보로 어떻게 라우팅하는지를 결정하기 위해, 네트워크 코어에서 검사(inspect)되며, 그 패킷은 검사에 기초하여 선택적으로 라우팅된다. The payload section is, for the packet to determine how to route information from a particular camera to the subscribers, and check (inspect) in the core network, the packet is selectively routed on the basis of the inspection. 이들 및 다른 장점들은 또한, 예를 들어, 이러한 단계들을 수행하기 위한 모듈들을 포함하는 장치에 의해 달성될 수 있다. These and other advantages may also, for example, be achieved by a device comprising a module for performing these steps.

이들 및 다른 장점들을 또한, 예를 들어, 경보 서비스들을 제공하는 네트워크에서 메시지들을 라우팅하기 위한 방법에 의해 달성될 수 있다. These and other advantages also, for example, be achieved by a method for routing messages in a network providing alert services. 그 방법은 헤더 섹션, 적어도 하나의 주제(subject), 특정 카메라로부터의 비디오 클립과 관련된 적어도 하나의 속성(attribute)을 갖는 메시지를 수신하는 단계, 그 주제 및 속성을 메시지로부터 검색하는 단계, 주제에 기초하여 가입을 검색하는 단계, 및 메시지를 가입자에게 특정 카메라로부터의 정보로 어떻게 라우팅할지 결정하기 위해 네트워크 코어에서 속성을 가입에 적용하는 단계를 포함한다. The method includes receiving a message having a header section, at least one property (attribute) associated with the video clip from the at least one subject (subject), a particular camera, retrieving the subject and the attribute from the message, the subject a step, and applying the message attributes from the network core to determine how to route information from a specific camera to its subscribers in the subscription Search subscription basis. 이들 및 다른 장점들은 또한, 예를 들어, 이러한 단계들을 수행하기 위한 모듈들을 포함하는 장치에 의해서 달성될 수 있다. These and other advantages may also, for example, be achieved by an apparatus comprising a module for performing these steps.

이와 유사하게, 이들 및 다른 장점들은, 예를 들어, 네트워크에서 경고 서비스들을 제공하는데 사용되기 위한 패킷들을 라우팅하기 위한 방법에 의해 달성될 수 있다. Similarly, these and other advantages, for example, be achieved by a method for routing packets for use in providing alert services on the network. 이 방법은 특정 경보 서비스에 대한 이벤트에 관한 정보를 포함하는 페이로드 섹션 및 헤더 섹션을 갖는 패킷을 수신하는 단계, 패킷을 가입자들에게 경보 서비스에 대한 정보로 어떻게 라우팅할지 결정하기 위해 네트워크 코어에서 패킷의 페이로드 섹션을 검사하는 단계, 및 그 검사에 기초하여 패킷을 선택적으로 라우팅하는 단계를 포함한다. This is a packet from the network core to determine how to route information on the steps, alarm service packets to the subscriber receives a packet having a payload section containing information about the event for a particular alert service, and the header section the method comprising: inspecting the payload section, and a step of selectively routing the packet based upon the inspection. 이들 및 다른 장점들은 또한, 예를 들어, 이러한 단계들을 수행하기 위한 모듈들을 포함하는 장치에 의해서 달성될 수 있다. These and other advantages may also, for example, be achieved by an apparatus comprising a module for performing these steps.

첨부된 도면들은 본 명세서에 포함되며 그 일부를 구성하고, 실시예와 함께 본 발명의 장점들 및 원리들을 설명한다. The accompanying drawings are included in the present specification describes the advantages and principles of the present invention with the embodiments and form a part, and.

개요 summary

인터넷 규모 또는 다른 분산 네트워크 규모의 이벤트 통지 시스템은 발행-가입(publish-subscribe) 네트워킹을 강력하고 융통성있게 실현한 애플리케이션을 제공한다. Or other Internet-scale distributed network scale of the event notification system is issuance - offers a powerful application to achieve the flexibility to join (publish-subscribe) networking. 이러한 시스템에서, 통지의 발행 및/또는 가입과 네트워크 내에서 발생한 이벤트들에 대한 통지의 수신을 위하여 애플리케이션 프로그램은 이벤트 통지 API(Application Program Interface)들을 사용한다. In such a system, using the application program event notification (Application Program Interface) API in order to receive notifications about the issue and / or join the event occurred within a network of notice.

시스템 내의 통지는, 통지가 캡슐화한(encapsulate) 정보의 종류를 구분하는 문자열 또는 다른 구조인 주제(subject)로서 주어진다. Notification in the system is given as a character string or other structure of the subject (subject) for notifying to distinguish the type of the encapsulation (encapsulate) information. 또한, 통지는, 통지에 특정한 정보를 포함하는 한 세트의 속성들(attributes)로 완성된다. In addition, the notification is completed with a set of properties (attributes), including information specific to the notification. 예컨대, 애플리케이션은 quotes.nyse라는 주제와, 심볼 및 가격 속성을 이용하여 뉴욕 주식 시장에서의 거래에 대한 통지들을 발행할 수 있다. For example, the application is using themes and symbols, and the price of property quotes.nyse may issue a notice of the transaction on the New York Stock Exchange. 애플리케이션은 특정 속성 값들, 예컨대 SNE(Sony에 대한 주식 속보 심볼)에 해당하는 심볼 및 85.25에 해당하는 가격을 갖는 개별 통지를 발행할 수 있다. The application can issue an individual notification having a value that corresponds to the symbols, and 85.25 corresponding to the specific attribute values, for example, SNE (the stock symbol for breaking Sony). 속성들이 동일한 주제 군(family of subject)을 위한 모든 통지들에서 발견된다는 의미에서, 통지의 모두는 아니지만 대부분의 속성들은 사전 정의되어 있다. In the sense that found in any notice, all of the notification, but most of the property for property groups to the same topic (family of subject) it is predefined. 하지만, 발행자들은 부가적인 이벤트에 특정한 정보를 제공하기 위하여 통지당(per-notification) 또는 다른 기반으로 임의의 속성들을 추가할 수 있다. However, publishers can add arbitrary properties to the notification party (per-notification) or other infrastructure to provide additional information specific to the event. 따라서, 모든 또는 임의의 속성들이 사전 정의될 필요가 있는 것은 아니다. Therefore, not all or any of the properties need to be pre-defined.

이러한 시스템에서, 가입자들은 주제들 또는 전체 채널들에 대해서만 가입하도록 제한되지는 않는다. In this system, subscribers are not limited to only subscribe to topics or the entire channel. 채널들에 대해서는 이하에서 추가로 설명하고, 정의될 것이다. For the channels it will be further described below, and will be defined. 그들은 예컨대, 주제 필드 및 하나 이상의 수준의 관련 하위 필드(하위-주제)를 지정하는 계층적 구조(hierarchical structure)를 포함할 수 있다. They are, for example, the subject field and the associated sub-field of the one or more levels (sub-subjects) may comprise a hierarchical structure (hierarchical structure) that specifies. 그러므로, 가입자들은 통지의 속성에 대하여 콘텐트 기반 필터들을 지정함으로써 보다 정교하게 조절된 관심 표현들(expressions of interest)을 제공할 수 있다. Thus, the subscriber can provide the more finely controlled expression of interest by specifying content-based filters (expressions of interest) with respect to the properties of the notice. 예컨대, 가입자는 SNE에 해당하는 심볼 및 (아마도 가입자가 소유한 한 블록의 주식들을 위한 매도 기회를 나타내는)90.00에 해당하는 가격을 갖는 quotes.nyse라는 주제에 대한 모든 통지들에 대해 가입할 수 있다. For example, a subscriber can subscribe to all notifications on the subject of quotes.nyse with a price corresponding to the symbols and (possibly indicating a selling opportunity for the block of shares owned by the subscriber), corresponding to 90.00 SNE . 가입자가 자신의 가입을 등록하는 시점 또는 다른 시점들에서 가입자가 제공한 콜백(callback) 또는 다른 타입의 메소드를 통해 가입자에게 상기 가입과 일치하는 모든 통지들이 전달될 수 있다. All subscribers can be notified that matches the subscription are delivered to subscribers via a callback (callback) or other type of method, the subscriber is provided at time of registration or any other time of their subscription. 하나의 가입은 많은 필터들로 나누어질 수 있다. One of the Affiliate may be divided into a number of filters.

콜백은 단말기에 메시지를 기록하거나 이메일을 송신하는 것과 같은 단순한 일부터 한 블록의 주식의 매도를 초기화하는 복잡한 일 및 (예컨대, 75.00 가격의 매수 기회를 위하여 기존의 가입을 신규 가입으로 대체하거나, 가입자의 포트폴리오가 변경되었다는 신규 통지를 발행하는) 새로운 발행-가입 활동을 초기화하는 훨씬 복잡한 일까지를 포함하는 많은 연산을 수행할 수 있다. Callback replaces an existing subscription to the buying opportunity of a complex one, and (for example, 75.00 price From simple things like write a message to the handset or send an email to initialize the sale of shares in a block to new subscribers or subscribers of issuing a notification that a new portfolio has been changed), a new publication - can perform many operations, including up to a much more complex one that initializes the subscription activity.

애플리케이션들은 자신들의 발행 및 가입 활동에 있어 예컨대, 에이전트들의 도움을 받을 수 있다. Applications, for example in their issuance and subscription activities, can be with the help of agents. 에이전트들은 프락시들을 이용하거나 이들을 이용하여 구현될 수 있다. Agents can be implemented using a proxy or using them. 에이전트가 사용되는 경우, 에이전트들은 발신 통지들 및 가입들을 위한 네트워크 접속과, 가입자들로의 통지와 일치하는 착신의 전달을 제공한다. If the agent is used, the agents provide a delivery of incoming matching notifications to a network connected to the subscriber for outgoing notifications and subscriptions. 통지가 네트워크에 진입하면, 라우터들의 시스템 네트워크는 가입이 통지와 일치하는 모든 가입자들에게 상기 통지들을 전파시킨다. If you notice that enters the network, the network system of the router causes propagation of the notification to all subscribers to sign up is consistent with the notice. 이러한 작업을 수행하는 한 가지 방법은 네트워크의 모든 지점에 통지를 브로드캐스팅(broadcast)하고, 애플리케이션 에이전트들이 해당 통지가 자신의 가입자와 관련된 것인지를 결정하도록 하는 것이 될 것이다. One way to do this would be to broadcast (broadcast) a notice to all points of the network, and application agents to decide whether the notification is related to their subscribers. 하지만, 이는 확장가능한 접근법은 아닌데, 네트워크는 통상 메시지 트래픽의 부하로 금방 뒤덮혀버리고, 특히 많은 수의 활동적이고 다수의 트래픽을 유발시키는 발행자들이 존재하는 경우에 더욱 그러하기 때문이다. However, it's not a scalable approach, the network right away dwideophyeo the load of a conventional message traffic, because more geureohagi especially if the issuer will exist for many activities and caused numerous traffic. 충분한 대역폭이 문제가 아니라 할지라도, 가입자들은 지나치게 많은 통지들을 처리해야 함으로써 압도되어 버릴 것이다. Even if not enough bandwidth issue, subscribers will be discarded by the overwhelming need to deal with too many notifications.

본 시스템의 예시적인 네트워크는 통지들을 라우팅하는 방식에 있어서 훨씬 효율적이다. Exemplary network of the present system is much more efficient for how to route notifications. 첫 번째로, 그것은 통지가 예컨대, 네트워크의 임의의 링크에 대하여 최대 한번만 전파된다는 것을 보장하기 위하여 멀티캐스트 라우팅(multicast routing)을 사용할 수 있다. First, it can be notified that, for example, to use multicast routing (multicast routing), to ensure that the maximum propagation once for any link in the network. 두 번째로, 그것은 가능한한 통지들의 전파를 감소시키기 위하여 필터들에 다수의 정교한 최적화를 사용할 수 있다. Second, it can be used a number of sophisticated optimizations on filters to reduce the spread of the notice as possible.

도 1은 네트워크 핵심부(network core)에서의 이러한 지능형 라우팅을 개념적으로 도시하는 도면이다. 1 is a diagram showing this intelligent routing in a network core (core network) conceptually. 발행자(14)는 에지 라우터(edge router; 16)를 통해 발행-가입 네트워크에서 사용되는 네트워크 핵심부(10)로 메시지 내의 콘텐트를 전송한다. The issuer 14 is the edge router; through (edge ​​router 16) issuing-transmits the content in the message to a network core 10, used in the subscription network. 발행자로부터 가입자들에게 데이터 또는 콘텐트를 라우팅하기 위하여 발행-가입 네트워크는 임의의 타입의 네트워크를 포함한다. To issue from the issuer to the subscriber routing data or content - to join the network includes any type of network. 라우터들과 다른 장치들 사이의 논리적인 접속들을 나타내는 하나 이상의 채널들(18)을 통해 콘텐트가 전송된다. The content is transmitted through one or more channels 18 representing logical connections between routers and other devices. 네트워크 핵심부(10)의 지능형 라우터(12)는 메시지를 라우팅할 것인지 포워딩할 것인지를 결정한다. The intelligent router 12 in network core 10 determines whether or not to forward whether to route the message. 특히, 지능형 라우터(12)는 메시지가 가입자(24)에 의해 가입된 대로의 콘텐트를 포함하는지를 판단할 수 있다. In particular, intelligent router 12 can determine if the content included in the message, as is subscribed to by the subscriber (24).

각각의 가입은 주제 필터 및 속성 필터를 캡슐화할 수 있다. Each subscription can be encapsulated in the theme filters and attribute filters. 라우터들은 주제 필터를 한 세트의 일치하는 주제들로 확장하고, 속성 필터들을 주제당 기반(per-subject basis)으로 병합할 수 있다. Routers are able to merge and expand, attribute filter to filter topics that match a set of topics based (per-subject basis) per subject. 지능형 라우터는 통지의 주제에 대하여 주제 필터를 평가하고, 통지들의 속성 값에 대하여 속성 필터를 평가한다. The intelligent router evaluates the subject filter against the subject of notifications, and evaluates the attribute filter against the attribute values ​​of notifications. 주제 필터들을 위한 문법은 와일드카드들을 사용할 수 있고, 속성 필터들을 위한 문법은 부울 표현식(Boolean expression)을 사용할 수 있는데, 이들 모두에 대하여 이하에서 추가로 설명된다. The syntax for subject filters can use the wildcard syntax for attribute filters will be described further below with respect to there, all of them can use a Boolean expression (Boolean expression). "필터"라는 용어는, 가입자가 발행자들로부터 수신하고자 하는 한 세트의 이벤트들을 기술하기 위하여 사용된다. The term "filter" is used to describe a set of events that a subscriber desires to receive from the issuer. 라우팅 규칙들이 필터들로부터 생성되고, 라우팅 결정을 내리기 위하여 지능형 라우터들에 의해 사용된다. Routing rules are generated from the filters and are used by intelligent routers to make routing decisions.

따라서, 예컨대, 전체 필터 세트가 메시지(26)에 의해 만족되지 않으면, 지능형 라우터(12)는 메시지(26)을 버리는데(폐기하는데), 이는 메시지가 포워딩되지 않음을 의미한다. Thus, for example, if the entire filter set is not satisfied by a message 26, the intelligent router 12 beorineunde the message 26 (for waste), this means that the message is not forwarded. 예컨대, 주제 및 속성 필터의 평가에 의해 전체 세트 중의 임의의 필터가 메시지(20)에 의해 만족되면, 지능형 라우터(12)는 에지 라우터(22) 및 다른 장치들을 통해 메시지(20)를 가입자(24)에게 라우팅(포워딩)하거나, 일치 필터에 대하여 정의된 동작 규칙들 및/또는 모든 라우팅에 따라서 메시지(20)를 이용하여 라우터(12) 내부적으로 다른 메소드들을 수행한다. For example, when any filter of the entire set by the evaluation of the subject and attribute filters satisfied by a message 20, the intelligent router 12 is a subscriber (24 a message 20 via edge router 22 and the other device ) performs the routing (forwarding), or a, defined with respect to match filter operation rules and / or routers (12) internally to another method, therefore using a message 20 to all routes. 이러한 검색은 필터들의 전체 세트가 소모되거나, 모든 규칙들에 대한 결정이 획득될 때까지 계속되는데, 이들 두 가지 중의 임의의 것이 먼저 끝날 수 있다. These searches, or the entire set of filter consumed, continues until acquisition is determined for all of the rules, these can be done two kinds of any of the first to.

네트워크 핵심부에서의 이러한 타입의 지능형 콘텐트 기반 라우팅은 예컨대, 경보 및 업데이트의 실시간 데이터 전달(real-time data delivery)을 제공한다. Intelligent content-based routing in a network of this type of core provides for example, the real-time data delivery for alerts, and updates (real-time data delivery). 경보를 위한 실시간 데이터 전달의 예는 주식 시세, 교통, 뉴스, 여행, 날씨, 사기 적발(fraud detection), 보안, 텔레매틱스(telematics), 공장 자동화, 공급망 관리(supply chain management) 및 네트워크 관리를 포함하지만, 이에 제한되지는 않는다. Examples of real-time data delivery for alerts include stock quotes, traffic, news, travel, weather, fraud detection (fraud detection), security, telematics (telematics), factory automation, supply chain management (supply chain management) and network management, but , it is not limited. 업데이트를 위한 실시간 데이터 전달의 예는 소프트웨어 업데이트, 안티-바이러스 업데이트, 영화 및 음악 전달, 워크플로우(workflow), 저장 관리 및 캐시 일관성(cache consistency)를 포함하지만, 이에 제한되지 않는다. Examples of real-time data delivery for updates, software updates, anti-virus updates, including, movies, and music delivery, workflow (workflow), storage management, and cache coherency (cache consistency), but are not limited to: 가입에 대한 정보 전달에 있어서 많은 다른 애플리케이션들이 가능하다. Many other applications are possible in the information delivery for the subscription.

표 1은 필터링을 위한 주제(subject) 및 술어(predicate)를 포함한 가입의 저장에 관하여 보여주고 있다. Table 1 shows respect for storing subscription, including the theme (subject) and a predicate (predicate) for filtering. 이들은 네트워크상 어느 곳에나, 요청과 필요에 따라, 어떠한 데이터 구조로도 저장될 수 있다. It may also be stored in the network which in accordance with the place or, request and necessary, any data structure. 이하 설명하는 바와 같이, 술어는 가입의 구성 요소이다. As will be described, predicates are components of subscriptions. 가입은 임의의 방식으로도 표현될 수 있으며, 그 예가 다음과 같이 제공된다. Subscription may be represented in any manner, the example is provided as follows.

표 1 Table 1
가입1 Up 1 주제 1 Theme 1 술어 1 1 predicate
... ...
가입 N Up N 주제 N Subjects N 술어 N N predicate

표 2는 인용 서버(quote server)에 대한 가입 및 발행의 예를 제공한다. Table 2 provides an example of registering and issuing citations for servers (quote server). 이 예는 예시적 목적으로만 제공되는 것이며, 가입은 임의의 타입의 데이터나 콘텐트에 관한 어떠한 수의, 그리고 어떠한 타입의 파라미터도 포함할 수 있다. The examples are provided only for illustrative purposes, the subscriber may include any number of and any type of parameters related to any type of data and the content of.

표 2 Table 2
인용 서버 예 Quote server examples
주제 트리Quotes.NYSEQuotes.AMEXQuotes.NASDAQ Subject Tree Quotes.NYSEQuotes.AMEXQuotes.NASDAQ 발행주제 = Quotes.NYSE속성Symbol = SNEPrice = 51Volume = 1000000 Issued subject = Quotes.NYSE property Symbol = SNEPrice = 51Volume = 1000000
속성SymbolPriceVolume Property SymbolPriceVolume 가입주제 = Quotes.NYSE필터(Symbol = SNE) & (Price > 55) Sign up subject = Quotes.NYSE filter (Symbol = SNE) & (Price> 55)

상기 술어는 가입에 관하여 부울 표현식을 제공하고 상기 주제는 가입을 위한 채널 표지를 제공한다. The predicates provide the Boolean expression with respect to the subscription and the topic provides a cover for the channel to join. 가입은 많은 상이한 방식으로 표현될 수 있다. Up it can be expressed in many different ways. 부울 표현식을 사용한 것은 그 한 가지 예이며 콘텐트 기반 라우팅을 위하여 가입을 주제 필터 및 속성 필터로 용이하게 변환할 수 있는 능력을 제공한다. The use Boolean expressions, that one thing is to provide the ability to easily convert your subscription to a content-based routing on the subject filters and attribute filters. 이와 달리, 가입은 주제를 참조하지 않고서 표현될 수도 있다. Alternatively, the subscriber may be expressed without reference to the subject. 그러나, 채널(추후 설명됨)이나 주제의 사용은 속성에 대한 필터의 적용과 해석에 관한 문맥(context)을 제공한다. However, the channel (to be described later) or use of the subject should provide context (context) on the application and interpretation of the filter for the property.

라우팅 결정이 네트워크 코어에서 이루어져 네트워크 전체에 걸쳐 분배되어, 발행자와 가입자 머신 상의 처리 부담을 경감시키며, 네트워크의 효율을 크게 강화시킨다. Sikimyeo routing decisions made in the core network is distributed throughout the network, alleviating processing burdens on publisher and the subscriber machines, thereby greatly enhancing the efficiency of the network. 도 1은 한 명의 발행자, 한 명의 가입자, 그리고 하나의 지능형 라우터를 오로지 예시적 목적으로 도시하고 있으며, 다수의 발행자, 다수의 가입자, 그리고 다수의 지능형 라우터를 포함하여 구현될 수도 있다. Figure 1 may be implemented to include one publisher, one subscriber, and one which shows an intelligent router for illustrative purposes only, a number of the issuer, a number of subscribers, and a plurality of intelligent routers. 지능형 라우터라는 용어는 네트워크 코어 또는 기타 위치에서 패킷이나 메시지의 페이로드를 검사함으로써 라우팅 결정을 내릴 수 있는 능력을 갖춘 라우터나 기타 엔티티를 말한다. The term intelligent router refers to a router or other entity with the ability to make routing decisions by inspecting the payload of a packet or a message from the network core, or any other location.

네트워크 인프라구조 Network infrastructure

도 2는 발행자 및 가입자를 위한 지능형 라우터를 보여주는 네트워크를 도시한 도면이다. 2 is a diagram illustrating a network illustrating intelligent routers for publishers and subscribers. 채널 서비스를 제공하는 라우팅 엔티티(30)는, 예컨대 이하 설명되는 바와 같이, 지능형 라우터들 간에 메시지를 라우팅하도록 네트워크 인프라구조 상에 유효하게 계층화된다. Routing entity 30 providing channel services is, for example, is effectively layered on a network infrastructure to route messages between the intelligent routers, as described below. 개념적으로, 발행자(32)는, 예컨대 발행되는 콘텐트의 표지(예를 들어, 콘텐트 검색을 위한 포인터)를 수신하는 애플리케이션(34)과, 채널 서비스(30)를 통한 네트워크 송신을 위하여 콘텐트를 인코딩하는 에이전트(36)를 포함한다. Conceptually, the publisher 32, for example the cover of the content being published applications 34 for receiving (e.g., a pointer for a content search), and to encode the content for network transmission via channel services 30 It includes an agent (36). 논리적으로 상호 접속된 지능형 라우터들(38,40,42,44,46,48)의 모음은 가입에 관한 주제 필터 및 속성 필터로부터 생성된 라우팅 규칙을 이용해서 발행자로부터의 콘텐트를 라우팅한다. The collection of logically interconnected intelligent routers (38,40,42,44,46,48) is using the routing rules generated from subject filters and attribute filters on sign up and routing content from the publisher. 복수의 링크(39,41,43,45)가 지능형 라우터(38,40,42,44,46,48)들 간에 논리 접속을 제공한다. A plurality of links (39,41,43,45) are provided logical connections between intelligent routers (38,40,42,44,46,48). 또 다른 링크(37,47)는, 각각, 발행자(32)와 지능형 라우터(38) 사이, 그리고 가입자(54)와 지능형 라우터(46) 사이에 논리 접속을 제공한다. Another link (37,47) provides the logical connection between, respectively, the publisher 32 and intelligent router 38, and between a subscriber 54 and intelligent router 46. 가입자(54)는 가입한 콘텐트를 검출하고 수신하는 에이전트(50)와, 콘텐트를 제시하는 애플리케이션(52)을 포함한다. The subscriber unit 54 includes an agent 50 to detect and receive a subscription content, an application 52 to present the content.

채널은, 예컨대, 분산 방식으로 구현된, 관련된 일군의 논리적 멀티캐스트형 접속을 포함할 수 있다. Channel, for example, may comprise, associated logical multicast type connecting a group of implementing a distributed fashion. 본 예시적 실시예에 있어서 채널은 콘텐트를 교환하는 발행자와 가입자 커뮤니티를 지원하는데 이용되는 논리적으로 관련된 네트워크 리소스 모음이다. In the illustrated embodiment the channel is a logical collection of resources associated with the network that is used to support the publisher and the subscriber community to exchange content. 콘텐트는 채널 주제 이름공간에 따라 분류되고, 리소스는 채널 관리자에 의하여 제공되는 채널 서비스를 통해서 관리, 제어 및 공급된다. Subject content channels are sorted according to the name space, resources are managed, controlled and fed through a channel service provided by the channel manager. 다수의 채널이 동일한 리소스를 공유할 수 있다. The number of channels can share the same resources. 채널은 고도로 스케일 가능한 디렉토리 서비스, 예컨대 발행자 및 가입자 정보, 증명 및 인증 정보, 메시지 타입, 관리 정보, 그리고 계정 및 과금 정보를 제공할 수 있으며, 다만 이로써 제한되는 것은 아니다. Channel can provide a highly scalable directory services, such as publisher and subscriber information, proof and authentication information, message types, management information, and account and billing information, it is not just limited thereby. 채널은 또한 예컨대, 캐싱을 통한 지속성(persistence), 고속 데이터 전달 메카니즘, 보안, 그리고 사용자 및 네트워크 관리를 제공할 수 있다. Channel may also provide persistence (persistence), high-speed data delivery mechanism, security, and user and network management through caching, for example. 채널은 임의의 기타 목적을 위해서도 이용될 수 있다. Channel can be used also for any other purpose.

지능형 라우터에 의한 필터링이 네트워크 코어에서 발생하여 라우팅 결정을 분배할 수 있다. The filtering by the intelligent routers can distribute routing decisions to occur in a network core. 또한, 지능형 라우터는 발행자나 가입자 등의 사용자 장치를 네트워크 코어와 연결하는 에지 라우터로도 기능한다. In addition, intelligent routers can also function as edge routers connecting a user device, such as a publisher or subscriber and the core network. 또한, 네트워크에 연결된 동일한 장치가 발행자로서 기능하여 네트워크에서의 라우팅 결정을 통해 콘텐트를 가입자에게 전송하고 아울러 그 수신된 전송 콘텐트에 대한 가입자로 기능할 수 있다. In addition, the same device connected to a network may serve as a subscriber to the functions as a publisher sends the content to subscribers via routing decisions in the network, as well as the received content transmission. 지능형 라우터 및 채널은, 특정 구현을 위하여 요구되고 필요로 되는 바와 같이, 임의의 구성으로 접속될 수 있으며, 도 2에 도시된 구성은 예시적 목적으로 제공된 것이다. The intelligent routers and channels, is required for the specific implementation, as needed, may be connected in any configuration, the configuration shown in Figure 2 is provided for illustrative purposes.

도 3은 지능형 라우터 및 통상적 백본 라우터에 관한 예시적 네트워크 인프라구조를 도시한 도면으로서, 채널에 관한 논리 접속을 보여주고 있다. Figure 3 is a diagram showing an exemplary network infrastructure for intelligent routers and conventional backbone routers, show the logical connections on the channels. 본 실시예에서의 지능형 라우터는 네트워크, 예컨대 인터넷이나 기타 분산형 네트워크에 있어서 기존의 백본 라우터를 이용하며, 따라서 그 지능형 라우터는 백본 라우터 상에 유효하게 계층화된다. The intelligent routers in this embodiment utilizes an existing backbone routers in the network, such as the Internet or other distributed network, so that the intelligent routers are layered effectively on the backbone routers. 본 실시예에서, 인터넷 서비스 제공자(Internet Service Provide;ISP) 네트워크(58,59,60) 각각은 메시지 또는 패킷의 통상적 라우팅을 위한 수 개의 백본 라우터를 포함한다. In this embodiment, the Internet service provider; and (Internet Service Provide ISP) network (58,59,60) each include several backbone routers for conventional routing of messages or packets. 복수의 지능형 라우터(61-70)는 ISP 네트워크(58,59,60)에서의 하나 이상의 백본 라우터와 연결되어 있다. A plurality of intelligent routers 61-70 are connected with one or more backbone routers in ISP networks (58,59,60). 또한, 복수의 지능형 라우터(61-70)는 복수의 링크(73-85)(링크의 예를 나타냄)에 의하여 상호 접속되며, 그러한 링크에 의하여 최종 사용자 장치로도 연결될 수 있다. A plurality of intelligent routers 61-70 are interconnected by a plurality of links (73-85) (representing an example of a link) may be connected by a link such as an end user device. 지능형 라우터(61-70)는 엔티티(71) 등과 같은 하나 이상의 관리자 머신 및 엔티티(72) 등과 같은 하나 이상의 가상 사설 통신망(Vitual Private Network;VPN) 제어기에 의하여 제어될 수 있다. Intelligent routers 61-70 are entities 71, one or more administrator machines and one or more virtual private communication network such as the entity 72 and the like; may be controlled by (Vitual Private Network VPN) controllers. ISP 네트워크(58,59,60)도 또한 발행자 및 가입자 머신으로 연결될 것이다(도 3에는 도시되지 않음). ISP network (58,59,60) is also (not shown in FIG. 3) will be connected to publisher and subscriber machines. ISP(58,59,60) 내의, 그리고 이들 상호 간의 백본 라우터가 기존의 네트워크 인프라구조 내에서 임의의 통상적 방식으로 상호 접속된다. It is, and between these mutually backbone routers in ISP (58,59,60) are interconnected in any conventional way within the existing network infrastructure.

지능형 라우터(61-70) 및 링크(73-85)는, 도시된 바와 같이, 기존의 네트워크 인프라구조를 이용해서 구현될 수 있고, 이는 네트워크 코어에서 콘텐트 기반 라우팅을 제공한다. The intelligent routers 61-70 and links (73-85), as illustrated, may be implemented using existing network infrastructure, which provides content-based routing in a network core. 링크(73-85)는 지능형 라우터(61-70)들 간 논리 접속을 나타내며, 예컨대 기존의 네트워크 인프라구조나 기타 장치를 이용하여 구현될 수 있다. Link (73-85) between the intelligent routers 61-70 represent logical connections, such as may be implemented using existing network infrastructure or other devices. 링크는, 예컨대, 터널이라 불리는 논리 접속을 이용해서 구현될 수 있다. Link, for example, may be implemented using a logical connection called the tunnel. 터널은 링크를 구현하는 네트워크 인프라구조인 하드웨어와, 가능하다면 소프트웨어를 포함할 것이며, 하나의 터널은 복수의 채널의 일구성 부분이 될 수 있다. Tunnel will include software and possibly the network infrastructure to implement a hardware link, and one tunnel can be a part of one configuration of a plurality of channels. 채널은 특정 타입의 콘텐트를 위한 논리 접속을 제공하고 따라서 채널을 통하여 송신된 속성들에 관한 문맥을 제공함으로써 지능형 라우터에서 콘텐트 기반 라우팅을 가능하게 한다. Channel enables the content-based routing in the intelligent routers by providing logical connections for the content of a particular type, and thus provides the context relating to the attributes transmitted over the channel. 지능형 라우터는 채널없이 라우팅 결정을 수행할 수도 있지만, 채널은 네트워크 코어 내에서 지능형 라우터에 의한 콘텐트 기반 라우팅의 효율을 증대시킨다. Although intelligent routers can perform routing decisions without channels, the channels increase the efficiency of content-based routing by the intelligent routers in the network core.

본 예시적 실시예에서는 채널 및 링크의 사용이 포함된다. In the present exemplary embodiment includes the use of channels and links. 링크는 두 개의 라우터(지능형 라우터) 간 접속이다. Link is a connection between two routers (Intelligent Router). 채널은, 일군의 라우터(대개 대규모)를 포함하며, 링크들을 상호 접속시켜 일-대-다(one-to-many) 또는 다-대-다(many-to-many) 논리 접속을 이루도록 정적 또는 동적으로 구성되는 네트워크 엔티티이다. Channel, comprising: a router (usually large) a group, to interconnect the link one-to-many (one-to-many) or many-to-many static or achieve the (many-to-many) logical connection a dynamic network entity is configured. 구체적으로, 채널은 그 채널의 본질적 특성을 나타내는 최상위 레벨 논리 엔티티이다. Specifically, a channel is a top-level logical entity that represents the essential characteristics of the channel. 하나의 채널 하에, 많은 수의 주제가 존재할 수 있다. Under one channel, there may be the subject of a large number. 각각의 주제는 일군의 상호 접속형 라우터들을 포함하는 하나의 서브-네트워크(예컨대, 멀티캐스트 트리)를 형성할 것이다. Each subject is one comprising interconnected routers a group of sub-will form a network (for example, the multicast tree). 이들 주제-기반 서브-네트워크는 서로 상이한 방식으로 할당되고, 적응되며, 구성될 수 있다. These subject-based sub-networks are allocated to each other in a different manner, is adapted, may be configured. 채널은 그 채널 하의 주제들에 대하여 형성된 모든 서브-네트워크의 모음이므로, 예컨대, 네트워크 메시와 유사할 수 있다. All the sub-channels are formed with respect to the channel under the topic - because a collection of network, for example, may be similar to the mesh network.

도 4는 지능형 라우터(92)의 예시적 하드웨어 구성 요소들을 도시한 도면으로서, 이는 기타 참조되는 임의의 지능형 라우터와도 대응할 수 있다. Figure 4 is a diagram illustrating exemplary hardware components of an intelligent router 92, which may also react with any other reference that the intelligent router. 네트워크 노드(90)는 통상적 백본 라우터(95)와 접속된 지능형 라우터(92)를 포함할 수 있다. Network node 90 may include an intelligent router 92 connected with a conventional backbone router (95). 지능형 라우터(92)는 메모리(94)와 보조 저장 장치(97)에 접속된 프로세서(93)를 포함하며, 메모리(94)와 보조 저장 장치(97) 각각은 데이터를 저장할 수 있고 캐싱할 수 있으며, 프로세서(93)에 의해서 실행할 수 있는 애플리케이션을 저장할 수 있다. Intelligent router 92 includes a memory and a processor 93 connected to 94 and the auxiliary storage device 97, a memory 94 and secondary storage devices (97) each of which can store data may be cached, and and it may store an application that can be executed by the processor 93. 보조 저장 장치(97)는 비휘발성 데이터 저장 기능을 제공한다. An auxiliary storage device (97) provides a non-volatile data storage. 소프트웨어 제어 하에서 이하 설명되는 바와 같이, 프로세서(93)는 백본 라우터(95)에 대해 가입에 관한 주제 필터 및 속성 필터로부터 생성된 라우팅 규칙에 따라 그 백본 라우터(95)가 메시지나 패킷을 라우팅(포워드)하거나 라우팅하지 않도록(폐기)하는 명령을 제공한다. As it explained below, under software control, the processor 93 routes the message or packet that the backbone router (95) in accordance with the routing rules generated from subject filters and attribute filters for the subscription to the backbone routers (95) (forward ) or provide a command to prevent routing (discarded). 별도의 프로세서 제어형 장치로 구현된 것으로 도시되어 있지만, 이와 달리 지능형 라우터(92)는 백본 라우터(95) 내의 ASIC(application specific integrated circuit)으로 구현되어 가능하다면 내장형 소프트웨어를 구비한 하드웨어로써 지능형 라우팅 기능을 제공할 수도 있다. Although illustrated as being implemented in a separate processor-controlled device, contrast, intelligent router 92 is the intelligent routing functions as a hardware provided with a built-in software, if possible, be implemented in ASIC (application specific integrated circuit) within backbone router 95 It can also be provided. 이와 달리, 지능형 라우팅 기능은 또한 하나 또는 다수의 라우팅 장치에 있어서의 소프트웨어 및 하드웨어의 조합으로써 구현될 수도 있다. Alternatively, the intelligent routing functions can also be implemented as a combination of one or software and hardware in the plurality of routing devices.

도 5는 예시적 발행자 및 가입자 머신을 도시한 도면이다. 5 is a diagram showing an exemplary publisher and subscriber machines. 발행자 머신(100,118)은, 하나 이상의 발행자 애플리케이션(104) 및 에이전트 애플리케이션(105)을 저장한 메모리(102)와, 비휘발성 데이터 저장 기능을 제공하는 보조 저장 장치(112)와, 정보나 명령을 입력하기 위한 입력 장치(108)와, 메모리(102)에 저장된 애플리케이션이나 기타 저장 장치로부터 수신한 애플리케이션을 실행하는 프로세서(114)와, 정보를 출력하는 출력 장치(110)와, 정보의 비주얼 디스플레이를 제공하는 디스플레이 장치(116)를 포함할 수 있다. Publisher machine (100 118) is input to the one or more publisher applications 104 and a store agent application 105, a memory 102, a secondary storage device 112 that provides non-volatile data storage, information or commands providing an input device 108, an output device 110, a visual display of information to the processor 114 running the application received from the application or other storage device stored in the memory 102, and outputs the information to which may include a display device 116.

가입자 머신(122,140)은, 하나 이상의 애플리케이션(126) 및 에이전트 애플리케이션(128)을 저장한 메모리(124)와, 비휘발성 데이터 저장 기능을 제공하는 보조 저장 장치(130)와, 정보나 명령을 입력하기 위한 입력 장치(132)와, 메모리(124)에 저장된 애플리케이션이나 기타 저장 장치로부터 수신한 애플리케이션을 실행하는 프로세서(134)와, 정보를 출력하는 출력 장치(136)와, 정보의 비주얼 디스플레이를 제공하는 디스플레이 장치(138)를 포함할 수 있다. Subscriber machines (122 140) is to input the one or more applications 126, and the agent application and the memory 124, a storage (128), non-volatile data storage secondary storage device 130 providing the information or the command and for the input device 132, the processor 134 running the application received from the application or other storage device stored in the memory 124, and an output device 136 for outputting information, for providing a visual display of information It may include a display device 138. 이와 달리, 발행자와 가입자 머신은, 임의의 구성으로써, 더 많거나 또는 더 적은 수의 구성 요소를 포함할 수 있고, 또는 상이한 구성 요소들을 포함할 수도 있다. Alternatively, the publisher and subscriber machines, as any configuration, but may include more, or may or may further comprise a small number of components, or different components.

발행자 머신(100,118)은 네트워크(120), 예컨대 앞서 기술한 네트워크 등을 통하여 가입자 머신(122,140)에 접속된다. Publisher machine (100 118) is connected to the subscriber machine (122 140) through a network 120, such as network or the like described above. 네트워크(120)는 패킷이나 메시지에 의하여 네트워크 코어 내에서 콘텐트나 데이터의 분산형 라우팅을 제공하는 지능형 라우터를 포함한다. The network 120 includes a intelligent routers in the network core by the packet or message to provide a distributed routing of data or content. 단지 두 개의 발행자 및 가입자 머신이 도시되어 있지만, 네트워크(120)는 더 많은 발행자 및 가입자 머신을 포함하도록 스케일링될 수 있다. Although only two publisher and subscriber machines are shown, network 120 may be scaled to include more publisher and subscriber machines. 발행자 및 가입자 머신은 임의의 프로세서 제어형 장치, 예컨대 서버, PC, 노트북 컴퓨터, PDA, 전화, 셀룰러 전화, 페이저, 기타 장치 등으로 구현될 수 있으나, 이들로 제한되는 것은 아니다. Publisher and subscriber machines, but can be implemented with any processor-controlled device, such as a server, PC, laptop computer, PDA, phone, cellular phone, pager, or other device such as, but not limited to these. 지능형 라우터를 갖춘 네트워크(120)는, 유선 장치, 무선 장치 또는 양 장치들 모두를 연결하는, 임의의 유선 또는 무선 분산형 네트워크를 포함할 수 있다. Network 120 with intelligent routers can include a wired device, a wireless device, or both devices to connect the both, and any wired or wireless distributed network. 네트워크(120)는 또한 잠재적으로는 기존의 통상적 네트워크 인프라구조를 이용할 수 있다. Network 120 may also potentially may utilize an existing conventional network infrastructure.

도 6은 지능형 라우터를 위한 채널 관리자(150)를 도시한 도면이다. 6 is a diagram showing a channel managers 150 for intelligent routers. 본 실시예에서, 채널 관리자(150)는 다수의 서버(152,154,156)를 포함하도록 구현되어 있다. In this embodiment, the channel manager 150 may be implemented to include a plurality of servers (152 154 156). 각 서버는 그 자신의 로컬 저장 장치(158,160,162)를 갖는다. Each server has its own local storage devices (158 160 162). 지능형 라우터(164,166,168)는 특정 채널에 관한 정보를 위하여 채널 관리자와 접속한다. The intelligent router (164 166 168) is connected to the channel manager for information regarding a particular channel. 채널 관리자는 또한 데이터 지속성, 장애 극복 기능(fail over function), 기타 기능 등에 대해서도 대비할 수 있다. Channel managers can also be prepared even for data persistence, fail-over function (fail over function), and other functions. 그러므로, 채널 관리자는, 예컨대 채널 관련형 정보, 데이터 지속성에 관한 속성, 발행자 및 가입자에 대한 사용자 정보, 및 인프라구조 정보 등을 지정하는 네트워크 내 임의의 위치의 데이터베이스 또는 데이터베이스 세트를 포함하는 채널 서비스를 제공한다. Therefore, the channel manager is, for example, the channel services, including channel-specific type information, the attribute, the publisher and user information, and infrastructure information such as a database or a database set within any location network to specify for the subscriber on the data continuity to provide. 인프라구조 정보에는, 예컨대 지능형 라우터의 식별자 및 지능형 라우터들을 연결하는 대응 터널, 채널에 대한 주제, 및 채널에 대한 속성(각 속성에 관한 이름과 타입) 등이 포함될 수 있다. The infrastructure information, such as attribute (name and type for each attribute) of the corresponding tunnel, subjects for the channels, and a channel connecting the identifier and the intelligent routers in intelligent routers can be included and the like. 패킷이나 메시지가 또한 불변 속성 및 가변 속성들의 식별을 포함한 채널 관련형 정보를 운반할 수도 있다. The packets or messages can also carry channel-related information, including the identification of the type invariant attributes and variable attributes.

온라인시, 사용자는 채널 정보를 다운로드할 수 있다. When online, you can download channel information. 예컨대, 사용자는 사용자 이름과 패스워드를 이용하여 등록할 수 있다. For example, the user can register by using a user name and password. 사용자의 로그온이 확인되면, 사용자는 채널을 개방(호출)하고 채널 관리자로부터 그 채널에 관한 정보를 가져올 수 있다. Once you identify the user logged in, the user can open (invoke) a channel and get information about the channel from the channel manager. 발행자는 발행의 문맥에서 그 정보를 이용할 수 있고, 가입자는 가입의 입력 및 등록과 관련하여 그 정보를 이용할 수 있다. The issuer may use that information in the context of the issue, subscribers can use the information in connection with the entry and registration of affiliates.

채널 관리자(152,154,156)는 바람직하게 지속적이고, 신뢰할 수 있는 채널 디렉토리 서비스를 수행하도록 그룹을 형성한다. Channel Manager (152 154 156) is preferably continuous to form a group to perform a reliable channel directory service. 채널 관리자 중 하나가 1차 채널 관리자가 되고 나머지는 백업 채널 관리자가 될 것이다. One of the channel manager is the primary channel manager remainder will be the backup channel managers. 1차 채널 관리자에 장애가 발생하면, 그 1차 채널 관리자의 이웃 채널 관리자가 이어받아 새로운 1차 채널 관리자가 되어 서비스를 신뢰할 수 있는 상태로 유지한다. If a failure occurs on the primary channel manager, it takes over its neighbors one of the primary channel manager Channel Manager is the new primary channel manager should remain a trusted service. 각각의 지능형 라우터는 이들 채널 관리자의 어드레스를 보유한다. Each intelligent router holds the addresses of these channel managers. 1 채널 관리자가 있고 지능형 라우터가 그 채널 관리자에 접촉할 수 없는 경우라면, 그 지능형 라우터는 정보 검색을 위하여 다른 것을 찾을 것이다. If there is one channel manager when the intelligent router can not be in contact with the channel manager, the intelligent router will find something else to retrieve the information. 네트워크 내의 장치들은, 예컨대 채널 정보를 검색하기 위한 명령을 이용할 수 있고, 그 예들이 표 3에 제공되어 있다. And the device in the network, for example to use a command to retrieve channel information, examples of which are those provided in Table 3 below. 이와 달리, 지능형 라우터는 1차 채널 관리자만을 갖거나 셋 이상의 채널 관리자를 가질 수도 있다. Alternatively, intelligent routers can only have a primary channel manager or may have more than two channel managers.

도 7은 사용자 머신이나, 지능형 라우터를 포함한 네트워크에 그 사용자 머신을 연결하는 장치에 있어서의 스택(180) 내의 예시적 소프트웨어 구성 요소들을 도시한 도면이다. 7 is a diagram showing exemplary software components in a stack 180 in the device for connecting the user machine to the network, including users or machines, the intelligent router. 사용자 머신은 발행자, 가입자, 또는 양자 모두로 이용될 수 있고, 앞서 확인된 예시적 장치들을 포함할 수 있다. User machine can be used as a publisher, subscriber, or both, it may include the exemplary devices identified above. 스택(180)은 하나 이상의 사용자 애플리케이션(182)을 포함할 수 있으며, 그 사용자 애플리케이션(182)들은 사용자로부터의 가입 수신, 발행자로부터의 채널 정보 수신, 또는 발행된 콘텐트나 데이터의 수신에 대비한 것일 수 있다. Stack 180 can include one or more user application 182, the user application 182 may be a preparation for the reception of the subscription is received, the channel information received from the issuer, or the published content or data from the user can. 사용자 애플리케이션(182)에는 또한 사용자 머신이나 장치가 실행할 또 다른 임의의 타입의 애플리케이션이 포함될 수 있다. User application 182 also may comprise a further any type of application the user machine or device to run.

또한, 스택(180)은, 예를 들어 에이전트(184), 이벤트 라이브러리(186), 캐시 라이브러리(cache library; 188), 채널 라이브러리(190), 메시징 라이브러리(192), 및 디스패처 라이브러리(194)를 포함할 수 있다. In addition, the stack 180 may be, for example, agent 184, an event library 186, a cache library; a (cache library 188), a channel library 190, a messaging library 192, and a dispatcher library 194 It can be included. 에이전트(184)는 네트워크 접속(connection) 확립 또는 다른 기능들을 제공하고, 표 3은 프락시 명령어(command) 또는 다른 유형의 명령어들을 사용할 수 있는, 에이전트(184)에 의하여 구현되는 명령어의 예를 제공한다. Agent 184 provides the established network connection (connection) or other functions, and Table 3 provides examples of commands implemented by the available proxies instruction (command) or another type of command, agent 184 . 이벤트 라이브러리(186)는 사용자 머신 또는 다른 이벤트나 정보에 관한 이벤트들을 기록한다. Event library 186 will record the event on the user machine or other events or information. 캐시 라이브러리(188)는 데이터의 로컬 캐싱(local caching)을 제공한다. Cache library 188 provides for local caching (local caching) data. 채널 라이브러리(190)는 채널의 식별 및 그에 대한 정보를 저장한다. Channel library 190 stores the identification information and for that channel. 디스패처 라이브러리(194)는 컨트롤 경로(196), 채널 매니저(198), 및 하나 이상의 지능형 라우터(200)와의 접속을 제공하고, 표 4에 나타낸 예시적인 기능을 포함할 수 있다. Dispatcher library 194 may provide a control path 196, channel managers 198, and contact with one or more intelligent routers 200, and includes an exemplary function shown in Table 4. 메시징 라이브러리(192)는 데이터 경로(204)에의 접속을 제공한다. Messaging library 192 provides a connection to the data path 204.

표 5 내지 9는 C 프로그래밍 언어로 된 메시징 API의 예를 나타낸다. Table 5-9 shows an example of the messaging API in the C programming language. 표 5 및 6은 메시지를 송신 및 추출하는 API의 예를 나타낸다. Tables 5 and 6 shows an example of an API for transmitting and extracting a message. 표 7 및 8은 통지를 송신 및 추출하는 API의 예를 나타낸다. Tables 7 and 8 shows an example of an API for transmitting and extracting a notification. 표 9는 컨트롤 메시지를 송신 및 추출하는 API의 예를 나타낸다. Table 9 shows an example of an API for transmitting and extracting a control message. 본 명세서에서의 이들 API 및 다른 API, 프로그램과 데이터 구조는 특정 기능 또는 특징을 구현하기 위한 예로서 제공되는 것이며, 구현은 임의의 유형의 API 또는 임의의 프로그래밍 언어로 된 다른 소프트웨어 엔티티(entity)를 포함할 수 있다. The API and other API, programs and data structures in this specification is a will be provided as examples for implementing particular functions or features, the implementation of other software entities in any type of API or in any programming language (entity) It can be included.

표 3 TABLE 3
에이전트 명령어의 예 Examples of agents command
명령어 command 기능 function
pc.chn.open pc.chn.open 채널 열기, 채널을 위한 모든 정보 추출, 및 로컬 캐싱 Channel open, extract all the information for the channel, and local caching
pc.chn.close pc.chn.close 채널 닫기 Channel Close
pc.chn.getRouterInfo pc.chn.getRouterInfo 채널상 라우터를 위한 정보 추출 Extracting information for a channel router
pc.chn.getAttributeInfo pc.chn.getAttributeInfo 채널 속성을 위한 정보 추출 Information Extraction for the Channel properties
pc.chn.getProperties pc.chn.getProperties 채널을 위한 특성 추출 Extracting attributes for channels

표 4 TABLE 4
디스패처 기능(dispatcher function) Dispatcher functions (dispatcher function)
서버측 The server-side 접속 청취(수락 대기). Listen up (accept wait). 각각의 접속을 핸들하기 위한 스레드(thread) 생성. Generating a thread (thread) to handle each connection. 스레드는 접속에서 오는 모든 요청을 받고 프로세싱하는 것을 책임진다. The thread is responsible for getting all the requests coming from the connected processing.
클라이언트측 Client-Side 접속을 초기화하고 접속으로 오는 모든 데이터를 받고 프로세싱하는 것을 책임지는 스레드를 생성. Initializing the connection and generates threads that are responsible for receiving the processing of all data coming to the connection.

도 8은 위에서 식별된 것과 도 4에 제시된 지능형 라우터(92)와 같은 지능형 라우터에 대한 예시적인 소프트웨어 컴포넌트(210)의 다이어그램이다. 8 is a diagram of exemplary software components 210 for an intelligent router such as the intelligent router 92 shown in Figure 4 as those identified above. 예를 들어 소프트웨어 컴포넌트(210)는 지능형 라우터(92)에서의 프로세서(93)에 의한 실행을 위한 메모리(94)에 저장될 수 있다. For example, software component 210 may be stored in memory 94 for execution by processor 93 in intelligent router 92. 예를 들어 컴포넌트(210)는 필터링 데몬(filtering daemon; 212), 디스패처(214), 라우팅 데몬(routing daemon; 216), 및 캐시 매니저(218)를 포함한다. For example, component 210 may include a filtering daemon;; (routing daemon 216), and a cache manager (218) (filtering daemon 212), the dispatcher 214, a routing daemon. 필터링 데몬(212)은 콘텐트 기반 라우팅이 아래에서 설명하는 바와 같은 경로배정 규칙에 따른 가입(subscription)을 위한 콘텐트를 처리할 수 있도록 필터링을 제공한다. Filtering daemon 212 provides filtering to process the content for the subscription (subscription) according to routing rules as for content-based routing is described below. 디스패처(214)는 경로(220)를 통하여 필터를 전파하기 위하여 요구되는 것과 같은 컨트롤 메시지의 통신을 제공하며, 또한 네트워크의 보안을 강화하는, 사용자를 위한 하나의 진입점과 채널 매니저와 하나의 보안 소켓을 제공할 수 있다. Dispatcher 214 provides for communication of control message that will be required in order to spread the filter via a line 220, and one of the entry point and the channel manager and a security for the user to enhance the security of the network, It can provide a socket. 다시 말하면, 사용자는 대체 구현일지라도, 이 예에서의 채널 매니저를 직접 접촉하지 않는다. In other words, even if the user is an alternative implementation, it does not contact the channel managers in this example directly. 디스패처(214)는 채널 매니저로부터 속성(이름-값 쌍)을 얻기 위하여 컨트롤 메시지를 이용한다. Dispatcher 214 attributes (name-value pairs) from a channel manager uses the control message to obtain a.

라우팅 데몬(216)은 도 4에서 도시된 관용 백본 라우터 또는 다른 라우팅 장치를 통하여 발생할 수 있는, 데이터 경로(222)와의 통신을 제공한다. Routing daemon 216 provides for communication with a data path 222 that can occur through a tolerance backbone routers or other routing device shown in FIG. 캐시 매니저(218)는 대응하는 지능형 라우터를 포함하는 네트워크 노드에서 데이터의 로컬 캐싱(local caching)을 제공한다. Cache manager 218 provides a local cache (local caching) data from the network node including the corresponding intelligent router. 캐시 매니저(218)의 연산(operation)은 아래에 더 자세히 설명되어 있으며, 네트워크 코어(network core)를 통하여 분산된 데이터 캐싱을 제공한다. Operation (operation) of the cache manager 218 is described in more detail below, and provides a distributed data caching via a core network (core network).

콘텐트 기반 라우팅은 애플리케이션 레벨(application level)에 대한 대체로서, 커널 레벨(kernel level)에 구현될 수 있다. Content-based routing as a replacement for application level (application level), can be implemented in the kernel level (kernel level). 커널에 의해 접근 가능한 메모리는 애플리케이션 레벨에 있는 것과는 분리되어 있다. Access by the kernel memory are separate from those in the application level. 콘텐트 기반 라우팅이 애플리케이션에서 실행되기 위해서는, 예를 들어 메시지 데이터가 커널 메모리 영역에서 애플리케이션 영역으로 복사되는 것, 애플리케이션의 콘텍스트가 커널에서 라우팅 애플리케이션으로 교환되는 것이 요구된다. To be content-based routing running in the application, for example, that message data is copied to the application area from the kernel memory area, it is required that the context of the application that is exchanged in the kernel routing applications. 두 가지 모두 상당한 부하가 야기된다. A substantial load is caused both. 만약 대신에 커널이 콘텐트 기반 라우팅을 지원하도록 수정된다면, 라우팅은 위에서 서술한 부하가 제거되어 더 빠르게 수행될 수 있다. If instead the kernel is modified to support content-based routing, routing can be done is to remove the faster the load as described above.

커널에서의 콘텐트 기반 라우팅의 특징으로, 라우팅 데몬(216)은 구현에 따라 결정되는 데이터 경로(222)를 통하여 데이터를 보내고 받는 것을 직접적으로 할 수 있을 수도 없을 수도 있다. Characterized in content-based routing in the kernel, the routing daemon 216 may send and receive data via the data path 222 is determined depending on the implementation may or may not be able to receive directly. 데몬은 커널에 도입되는 콘텐트 기반 라우팅 표를 미리 계산하는, 애플리케이션 레벨에서 동작하는 프로세스이다. The daemon is a process for pre-calculating a content-based routing table to be introduced into the kernel, the operation at the application level. 그러나 한번 도입되면, 라우팅 표는 라우팅 결정을 내리기 위해서 커널에서 사용될 수 있다. But when once introduced, the routing table can be used by the kernel to make routing decisions. 유사하게, 필터링 데몬은 필터링 표를 미리 계산하고 그것을 커널에 도입한다. Similarly, the filtering daemon pre-computes the filtering table and introduced it into the kernel. 이러한 커널 구현에서, 라우팅 데몬과 필터링 데몬은 모두 데이터 경로와 직접적으로 상호작용하지 않는다. In this kernel implementation, the routing daemon and filtering daemon does not interact directly with all the data path.

도 9는 가입을 위한 콘텐트를 가능한 포함한 메시지를 위한 패킷 구조(230) 예의 다이어그램이다. 9 is a packet structure 230 Example diagram for a message containing the content available for subscription. 콘텐트 기반 라우팅에서 사용하기 위한 패킷 또는 메시지는, 예를 들어 헤더 섹션(header section)과 페이로드 섹션(payload section)을 포함한다. Packet or message for use in content-based routing includes, for example, include a header section (header section) and a payload section (payload section). 헤더 섹션은 라우팅 또는 다른 정보를 명시한다. The header section specifies routing or other information. 페이로드 섹션은 데이터, 콘텐트 또는, 데이터 또는 콘텐트의 표시를 명시한다. The payload section specifies the display of the data, or content, or data content. 패킷 구조(230)는 IP 헤더(232), 사용자 데이터그램 프로토콜(UDP) 전송 제어 프로토콜(TCP) 헤더(234), 길이 값(238), 하나 이상의 주제 필드(subject field; 240), 및 하나 이상의 속성(242)을 포함한다. Packet structure 230 includes an IP header 232, a User Datagram Protocol (UDP) Transmission Control Protocol (TCP) header 234, a length value 238, one or more of the subject field (subject field; 240), and one or more includes the attributes 242. the 패킷 구조(230)는 길이 값, 주제(subject) 및 속성을 위한 기본 구조를 도시한다. The packet structure 230 illustrates a basic structure for a length value, the subject (subject), and properties. 콘텐트 기반 라우팅에 사용되는 패킷은 또한, 아래 설명되어 있는 도 18의 예에 도시된 것과 같은 다른 요소를 포함할 수 있고, 콘텐트 기반 라우팅을 위한 패킷은 어떠한 방식으로도 구성될 수 있다. Packet used in content-based routing is also possible to include other elements as illustrated in the example of FIG. 18 that is described below, the packet for content-based routing can be configured are in any way. 또한, 속성은, 예를 들어 메시지의 끝에 덧붙은 임의의 속성(discretionary attribute)을 포함할 수 있다. Further, the attribute, such as the end of the message is appended may include any attribute (discretionary attribute). 이 임의의 속성은, 채널을 위해 규정된 메시지 포맷을 사용하여 전달될 필요 없이, 예를 들어 발행자(또는 라우터)에 의하여 더해진 애드-혹 정보(ad-hoc information)이다. A lump information (ad-hoc information) - any property, without having to be transmitted using the message format prescribed for the channel, for example a publisher (or a router) by the add-added.

발행자와 가입자 방법론 Publisher and subscriber Methodology

도 10은 발행자가 채널을 설정하고 콘텐트를 발행하는데 사용하기 위한 예시적인 발행자 메소드(publisher method; 250)의 순서도(flow chart)이다. Figure 10 is an issuer setting a channel and an exemplary publisher method to use to issue the content; a flow (flow chart) of (publisher method 250). 예를 들어 메소드(250)는 발행자 머신(100)의 프로세서(114)에 의한 실행을 위한 에이전트(106)를 포함한 소프트웨어 모듈로 구현될 수 있다. For example, method 250 may be implemented in software modules including agent 106 for execution by processor 114 in publisher machine 100. 메소드(150)에서, 발행자 머신의 에이전트(106)는 채널을 위한 프락시의 발행자 생성(publisher creation)을 받는다(단계 252). In method 150, agent 106 in the publisher machine receives a publisher creation of a proxy for a channel (publisher creation) (step 252). 프락시는 네트워크와의 통신을 제공한다. The proxy provides for communication with the network. 에이전트(106)는 인터페이스를 통한 채널을 위한 메시지 포맷을 결정하고(단계 253), 포맷 정보는, 예를 들어 채널 매니저 또는 네트워크의 다른 엔티티로부터 획득할 수 있다. Agent 106 determines a message format for the channel through an interface (step 253), format information is, for example, can be obtained from different entities on the channel or network manager. 에이전트(106)는 받은 채널 정보를 이용하여 채널을 위한 프락시를 설정하는데(단계 254), 이것은 채널을 위한 속성을 받는 것(단계 256)과 채널에 통지(notification)를 생성하는 것(단계 258)을 포함한다. Agent 106 to set up the proxy for the channel using the received channel information (step 254), which is to generate a notification (notification) to be subjected to attributes for the channel (step 256) and channel (step 258) It includes. 통지는 채널의 콘텐트를 "듣는(listening)" 장치를 위한 콘텐트를 제공한다. The notification provides content for the "hearing (listening)" devices the content of the channel. 속성은 통지를 위한 특성 및 파라미터를 정의한다. Attribute defines the characteristics and parameters for the notification.

에이전트(106)는 채널의 식별자(identifier; ID)와 콘텐트 정보를 프로세싱 가입(processing subscription)에의 사용을 위한 것 또는 네트워크 코어의 지능형 라우터에게 전송한다(단계 260). Agent 106 the identifier of the channel, and sends to the intelligent router intended for use by (identifier ID) and join processing (processing subscription) the content information or the core network (step 260). 발행자는 통지 속성을 적절한 값과 실장(populate)하고(단계 261), 그 후 채널 속성에 따른 통지에 콘텐트를 발행할 수 있다(단계 262). The issuer may be an appropriate value and the mounting (populate) the notification attribute (step 261), published after the content to the notification in accordance with the channel attributes (step 262). 이 예에서 단계 260 내지 262는 특정한 구현에 따른 다르거나 추가적인 단계를 수반할 수 있는 통지를 발행하는 것을 완수한다. In this example, steps 260 to 262 are completed to issue a notification, which may involve a different or additional steps according to a particular implementation. 따라서 이 예에서 통지와 관련된 정보는 각각 이름, 통지 내에서의 위치(1에서 시작), 유형(type), 값(value)으로 된, 속성의 순서로 분할된다. Therefore, information related to the notification in this example is divided in the order of each name, a position within the notification (starting at 1), the type (type), the value (value) properties. 택일적으로, 속성은 특정한 구현에 따른 다른 특성을 가질 수 있다. Alternatively, attributes can have different characteristics according to the specific implementation. 예를 들어 속성은 미리 정의된 속성, 임의의 속성, 또는 두 가지 모두를 포함할 수 있다. For example, a property may comprise a predefined attributes, discretionary attributes, or both.

지능형 라우터는 채널을 통하여 전송되는 패킷을 위한 구조 또는 포맷을 결정하는 대응 채널을 위한 속성을 얻기 위해 패킷의 채널 ID를 사용할 수 있다. The intelligent routers can use the channel ID in a packet to obtain the attributes for the corresponding channel, which determines the structure or format for packets transmitted via the channel. 특히, 각각의 패킷은, 예를 들어 발행자 ID, 주제와 같은 다른 헤더 정보 및 채널 ID와 관련된 태그를 함유할 수 있다. In particular, each packet may, for example, the publisher ID, may contain a tag associated with the other header information, and the channel ID as the subject. 태그는 도 18에 보여진 예인, 메시지 포맷의 숫자에 주제를 맵(map)하는데 사용될 수 있다. Tag may be used to map (map) in the subject the number of YES, the message format shown in Fig. 예를 들어 16비트 값과 같은 작은 정수 값은 숫자로 사용될 수 있다. For example, a small constant value, such as 16-bit value may be used with a digit. 택일적으로, 어떠한 다른 유형의 숫자 또는 정보도 주제를 맵하는데 사용될 수 있다. Alternatively, any number, or any other type of information can be used to map the topic. 주제를 숫자에 맵하는 것은 특별한 이점을 제공할 수 있다; It maps a subject to a number can provide special advantages; 예를 들면 메시지 포맷에서 공간을 절약하고 메시지에서 주제의 지시를 지정하는 균일한 또는 표준 방법을 제공하여 빠르게 설정되고 식별되게 할 수 있도록 제공할 수 있다. For example, to save space in the message format and provide a uniform or standard way to specify the instructions in the subject in a message can be provided to be set is identified quickly. 지능형 라우터는 명령어(command)을 통하여 대응하는 주제를 원격으로 얻기 위하여 숫자를 사용하거나 택일적으로 매핑(mapping)을 지역적으로 저장할 수 있다. The intelligent routers can use the number or can locally store the mapping (mapping) in the alternative to obtain the corresponding subject through a command (command) remotely.

표 10은 이 예에서는 정수 값을 사용하여, 숫자를 주제에 매핑하기 위한 구조를 도시한다. Table 10 In this example using integer values, and shows a structure for mapping numbers to subjects. 표에 있는 주제 트리 파라미터(subject tree parameter)는 주제는 계층적 관계로 하나 이상의 주제 필드(subject field)를 포함할 수 있음을 나타낸다; Subject tree parameter (subject tree parameter) in the table indicates that the subject may include at least one subject field (subject field) in a hierarchical relationship; 예를 들면 주제 트리(subject tree)는 특별 기호에 의해 구별된 주제 필드의 문자열(string)을 포함할 수 있다. For example, a topic tree (subject tree) can include a string (string) in the subject field identified by a special symbol. 주제 트리의 예는 표 2에 제공되어 있다. Examples of subject trees are provided in Table 2. 예로서, 주제 트리 quotes.nyse는 다른 네트워크 주소 또는 URL에서 볼 수 있는 "."에 의해서 구별되는 두 용어인 주제 "quotes"와 서브 필드(sub-field) "nyse"를 포함한다. For example, the subject is a tree quotes.nyse comprises two terms of subject "quotes," and the sub-field (sub-field) "nyse" are distinguished by the "," that can be found on the other network address or URL. 마침표를 사용하고 URL-유형(type) 문자열(string)을 지정하는 것과는 별도로, 주제 트리는 구분을 위한 기호 및 어떠한 문자를 사용하는 방법으로도 지정될 수 있다. With a period and can also be specified as a URL- type (type) how to use symbols and any characters apart from specifying the string (string), subject to the classification tree.

표 10 Table 10
숫자 number 주제 트리(subject tree) A topic tree (subject tree)
정수값 1 Integer value 1 주제 트리 1 Subject Tree 1
정수값 2 An integer value of 2 주제 트리 2 Subject Tree 2
...
정수값 N Integer value N 주제 트리 N Subject Tree N

따라서, 특정한 채널을 위한 패킷 포맷 또는 구조를 알고, 지능형 라우터가 콘텐트 기반 라우팅을 위한 패킷에 주제, 속성 또는 다른 정보를 빠르게 지정할 수 있다. Therefore, to know the packet format or structure for a particular channel, the intelligent router can quickly topic, property, or other information in the packets for content-based routing. 예를 들어 채널은 패킷의 카운팅 바이트(counting byte)에 의해 지정하기 쉽게 만들어, 채널을 통해 전송된 주제 및 속성의 바이트 위치를 지정할 수 있다. For example, the channel is made easy to specify by counting bytes in the packet (byte counting), may specify a byte position of the subject and the properties transmitted over a channel. 택일적으로, 지능형 라우터는 주제 및 속성 또는 다른 정보들을 지정하도록 패킷을 분해할 수 있다. Alternatively, intelligent routers can disassemble the packet to specify the subject and attribute, or other information.

표 11은 C++ 프로그래밍 언어로 된 발행자 프로그램의 예를 제공한다. Table 11 provides an example of a publisher program in C ++ programming language. 표 12는 채널을 생성하는 API의 예를 제공한다. Table 12 provides an example of an API to create a channel. 표 13은 도시된 바와 같은 채널 관련 정보를 제공하며 채널 매니저에 의해 유지되는 채널 설정 파일의 예를 제공한다(도 6 참조). Table 13 provides a channel-specific information as shown provides an example of a channel configuration file maintained by a channel manager (see FIG. 6). 시스템은 프로세싱 로드를 분산하기 위한 로컬 채널 매니저로서 기능하는 지리적으로 분산된 서버의 IP 주소를 제공하는 글로벌 채널 매니저를 택일적으로 가질 수 있다. The system may have a global channel manager providing IP addresses of geographically dispersed servers functioning as local channel managers for distributing the processing load in the alternative.

도 11은 수신 및 가입(subscription) 프로세싱에의 사용을 위한 가입자 메소드(subscriber method; 264)의 순서도(flow chart)이다. 11 is received and subscription (subscription) subscriber method for use in processing; a flow (flow chart) of (subscriber method 264). 예를 들어 메소드(266)는 가입자 머신(122)의 프로세서(134)에 의한 실행을 위한 에이전트(128)를 포함한 소프트웨어 모듈로 구현될 수 있다. For example, method 266 may be implemented in software modules including agent 128 for execution by processor 134 in subscriber machine 122. 메소드(264)에서, 예를 들어 그래픽 사용자 인터페이스(GUI)는 애플리케이션(126)에 의해 완수될 수 있는 사용자에게 사용가능한 채널의 지시를 준다(단계 266). In the method 264, such as a graphical user interface (GUI) gives an indication of available channels to the user, which may be accomplished by the application 126 (step 266). 채널을 지시하는 정보는, 예를 들어 채널 관련 정보를 제공하는 채널 매니저로부터 받을 수 있다. Information indicating the channel may, for example, be obtained from the channel managers providing channel-related information. 애플리케이션(126)의 어떠한 유형도 특정한 방법 또는 포맷에 채널의 식별을 주기 위하여 사용될 수 있다. Any type of application 126 may also be used to give the identity of the channel in a particular way or format. 애플리케이션은 사용자의 채널 선택을 받고(단계 268) 선택된 채널을 위하여 API 또는 다른 프로그램을 호출한다(단계 270). Application calls an API or other program for receiving a user's channel selection (step 268) the selected channel (step 270). API는 선택된 옵션에 따른 채널을 위하여 사용자에게 가입 옵션(subscription option)을 준다(단계 272). The API gives the subscription options (subscription option) to the user for the channel according to the selected option (step 272). API는 사용자로부터 가입(subscription)을 위한 값을 받고(단계 274), 아래에 설명된 바와 같이 프로세싱을 위하여 에이전트(128)에게 가입(subscription)을 보낸다(단계 276). The API receives values ​​for the subscription (subscription) from the user (step 274), it sends a subscription (subscription) to agent 128 for processing, as described below (step 276).

가입을 위한 파라미터는, 예를 들어 표 1에 도시된 바와 같은 술어(predicate)를 포함할 수 있다. Parameters for the subscription, for example may include a predicate (predicate) as shown in Table 1. 각각의 채널은, 예를 들어 대응하는 채널을 위한 파라미터 또는 특정 요구에 따른 가입을 프로세스하기 위하여 각자의 API를 사용할 수 있다. Each channel is, for example, can be used for each of the API to process the subscription of the corresponding parameter, or a specific request for a channel. 이 API들은, 예를 들어 가입을 받기 위한 웹기반(web-based) 또는 자바기반(Java-based)의 API를 포함할 수 있고, 가입에 관한 정보를 받고 그것을 에이전트 애플리케이션을 따라 전달하기 위한 프로세싱 및 사용자 인터페이스의 어떠한 유형도 사용할 수 있다. This API can, for example, may include an API for web-based (web-based) or Java based (Java-based) for receiving subscription, processing for passing along to get it the agent application information on the subscription and any type of user interface can also be used.

도 12는 가입을 받기 위한 메소드(method; 264)와의 연결에 사용될 수 있는, GUI 278 및 284 또는 가입자 스크린과 채널을 개념적으로 도시하는 다이어그램이다. 12 is a method for receiving a subscription; a diagram illustrating the, GUI 278, and 284, or the subscriber screen and the channels that can be used in connection with (method 264) conceptually. 스크린(278)은 사용자에 의한 선택을 위한 사용가능한 채널을 식별하는 다수의 섹션(282)을 포함한다. The screen 278 comprises a plurality of sections 282 identifying available channels for selection by the user. 특정 채널의 선택에 따라, 스크린(284)은 섹션(286)에 있는 가입을 위한 사용자의 값을 받기 위하여 디스플레이 될 수 있다. Depending on the selection of a particular channel, screen 284 may be displayed to receive a user values ​​for the subscription in a section (286). 사용자는 가입을 제출하기 위하여 섹션(288)을 선택할 수도 가입을 취소하기 위하여 섹션(290)을 선택할 수도 있다. The user may select the section (290) to cancel the subscription can also select the section (288) in order to submit your subscription. 스크린 278 및 284는, 예를 들어 하이퍼텍스트 생성 언어(HTML) 웹 페이지 또는 어떠한 다른 포맷으로도 포맷될 수 있다. Screen 278 and 284, for example, can also be formatted in hypertext markup language (HTML) web pages, or any other format. 또한, 스크린은 바람직하게 가입자를 위한 사용자 친화적인 또는 시각적으로 끄는 인터페이스를 제공하기 위하여, 텍스트, 그래픽, 사진, 다양한 컬러 또는 멀티미디어 정보를 가능한 한 포함하여 콘텐트 및 섹션의 어떤 구성도 포함할 수 있다. In addition, the screen can be preferably to provide a user-friendly or visually engaging interface for the subscriber, including possible text, graphics, pictures, various color, or multimedia information, including any configuration of the content and sections. 또한 스크린은 예를 들어 관용 브라우저 기능(conventional browser function)을 제공하는 툴바(280)를 포함할 수 있다. Also the screen, for example, can include a toolbar 280 that provides tolerance browser function (conventional browser function).

표 14는 C++ 프로그래밍 언어로 된 가입자 프로그램의 예를 제공한다. Table 14 provides an example of a subscriber programs in the C ++ programming language.

페이로드 검사와 채널을 통한 콘텐트 기반 라우팅 Content-based routing via payload inspection channel

도 13은 페이로드 검사와 채널을 통한 콘텐트 기반 라우팅 메소드(300)의 플로우 차트를 나타낸 것이다. Figure 13 illustrates a flowchart of a content-based routing method 300 through the payload and check channels. 메소드(300)는 예를 들어, 지능형 라우터(92)에서 프로세서 (93)에 의한 실행 소프트웨어 모듈 내에서 구현될 수 있는데, 지능형 라우터(92)는 상주 프로그램(daemon)(212)를 필터링함으로써 표현된다. Method 300 includes, for example, there in intelligent router 92 can be implemented in the running software modules by the processor 93, the intelligent router 92 is expressed by filtering a resident program (daemon) (212) . 이와 다르게, 메소드(300)를 하나의 ASIC으로 또는 하드웨어와 소프트웨어의 결합으로도 구현할 수 있다. Alternatively, it can also be implemented as a combination of the method 300, a ASIC or in hardware and software. 메소드(300)에서 설명한 콘텐트 기반 라우팅은 네트워크의 코어이든 에지 라우터이든 네트워크내 어느 곳에서도 지능형 라우터 내에서 실행될 수 있다. Content-based routing described in the method 300 may be performed in intelligent routers in the core or within any router or edge of the network where the network.

총괄하면, 콘텐트 기반 라우팅이란 패킷을 어떻게 처리할지 결정하기 위해 패킷에서 페이로드 섹션을 검사하는 것을 의미하는 것이다. If a whole, it would mean that inspecting the payload section of the packet to determine how to handle the content-based routing packets Iran. 이러한 콘텐트 기반 라우팅 메소드에서는 예를 들면, 어떤 순서로 가입 목록을 처리하기(예를 들어, 필터를 사용하기), 메시지의 라우팅을 결정하기 위해 라우팅 규칙에 따라 주제별, 속성별로 메시지를 비교하기, 그리고 네트워크 코어에서 처리를 수행하기와 같은 것을 포함할 수 있다. Such content-based routing method, for example, to process the subscription list and in what order to compare the messages by topic, properties, depending on the routing rule to (for example, using a filter) to determine the routing of the message, and It may include such things as performing the processing in a network core. 규칙에는 라우터 내 처리를 조절하는 규칙들이나 필터와 관련된 어떠한 규칙들이라도 포함될 수 있다. Rules can include any of the rules associated with any rules or filters to control my router processing. 이러한 라우팅 결정들은 그 후 네트워크 코어 전체로 배포될 수 있다. Such routing decisions can be deployed as a whole after the network core. 채널로 표현된 주제를 사용하여 메시지 포맷이 결정되면, 지능형 라우터는 메시지 내에서 속성들의 위치를 빠르게 알아낸다. When using the themes expressed in this message format determines the channel, the intelligent router find out quickly the location of the property in the message. 예를 들면, 특정 채널의 메시지 또는 패킷에서 속성들의 바이트 위치가 알려져 있는 것이다. For example, there is a byte positions of the property known in the message or packet for a particular channel.

메소드(300)에서, 지능형 라우터(92)는 메시지에 대한 패킷을 수신한다 (단계 302). In method 300, intelligent router 92 receives a packet for a message (step 302). 패킷에서 대응하는 메시지에 대한 채널 ID를 결정하고 (단계 304) 채널 ID를 이용하여 채널에 대한 속성들을 추출한다 (단계 306). Determines the channel ID for the message corresponding to the packet, and using the channel ID (step 304) to extract the attributes for the channel (step 306). 이 예에서, (채널 ID로 결정된) 채널의 유형은 그 패킷 내 속성들의 위치와 데이타 유형을 결정한다. In this example, (determined as channel ID) for channel type determines the position and the data type of the packet within a property. 채널에 대한 속성들은 국부적으로 저장되거나, 채널 매니저를 통하여 원격적으로 추출될 수 있다. Attributes for the channel can be locally stored or extracted remotely via a channel manager. 지능형 라우터(92)는 하나의 가입에 대응하는 필터를 추출한다 (단계 308). Intelligent router 92 extracts the filter corresponding to one of the subscriber (step 308). 이 필터는 하나 또는 그 이상의 속성 테스트들을 포함하는데, 대개는 가입에 대한 하나의 속성 테스트 그룹을 포함한다. To the filter comprises one or more attribute tests, usually include a test group of properties for the subscription. 지능형 라우터(92)는 패킷내 속성들을 필터 기술내 대응하는 속성 테스트(들)에 적용시킨다 (단계 310). The intelligent router 92 is then applied to the attribute test (s) for the packet within the corresponding property in the filter technology (step 310).

만약, 필터 기술내 모든 속성 테스트(들)의 결과가 긍정적이면 (단계 312), 즉 속성들이 모든 속성 테스트(들)를 만족시키면, 지능형 라우터는 그 필터와 관련된 규칙들이 지시하는 일련의 메소드들을 수행한다. If, if the result of filter technology in all the attribute test (s) positive (step 312), that is, if attributes meet (s) all the attribute tests, the intelligent router executes a set of methods for instructing the rules associated with the filter do. 이 메소드에는 예를 들어, 그 패킷을 다음 링크에 라우팅하기 그리고/또는 규칙에 지시된 대로 로컬 라우터에서 그 패킷의 콘텐트에 어떤 액션이나 계산을 수행하기와 같은 것이 포함될 수 있다. This method includes, for example, could include such a packet to perform a certain action or calculation on the contents of the packet in the following, as indicated in routing links and / or local rules router. 그 액션 또는 다음 링크는 예를 들면, 대응하는 가입을 지정하는 데이터 구조내에서 식별될 수 있다. The action or next link is, for example, can be identified in the data structure specifying the corresponding subscription. 규칙이 하나의 링크이면, 그것은 전형적으로 패킷을 수신할 다음 네트워크의 노드를 식별하는 것인데, 여기에는 지능형 라우터, 백본 라우터, 네트워크 연결된 장비, 또는 다른 장비 등이 포함될 수 있다. If the rule is a link, it would be to identify the next network node typically receives a packet, which may include an intelligent router, backbone router, a network-connected equipment, or other equipment. 이와 다르게, 다른 방식들로 다음 링크를 가입에 지정하거나 관련지을 수도 있다. Alternatively, you could build or specify the following related link to sign up with a different way.

만약 필터 기술내 모든 속성 테스트(들)의 결과가 긍정적인 것이 아니라면 (단계 312), 즉 속성들이 모든 속성 테스트(들)를 만족시키는 것은 아니라면, 그 필터는 불일치라고 선언된다 (단계 315). If you are not the result of the filter technology in all attribute test (s) positive (step 312), i.e., if it is to satisfy all of the property attribute test (s), the filter is declared to be inconsistent (step 315). 지능형 라우터는 필터 기술내 모든 속성 테트스들을 다 써 버리거나 부정적인 결과를 처음 만나는 것중, 어느 것이든 먼저 될 때까지 상기 절차를 반복하여 수행한다. Intelligent routers are carried out by repeating the procedure until discarding the things exhausted all my Properties filter technology Tet's first encounter negative results, either first.

한 차례 필터에 대한 모든 속성 테스트들이 수행되면, 지능형 라우터는 남은 필터가 있는지를 결정한다 (단계 316). If done once all the properties tested for the filter, the intelligent router determines that the remaining filter (step 316). 만약 남은 필터가 있으면, 단계(308)로 되돌아가서 다음 필터에 대한 속성들을 처리하기 위해 그 필터에 대한 속성 테스트(들)를 추출한다. If there is a remaining filter, the process returns to step 308 and extracts the attribute test (s) for the filter to process the attributes for the next filter. 정합 절차는 (단계 308, 310, 312, 314, 315, 그리고 316) 모든 필터 세트들이 다 수행되거나, 모든 액션에 대한 결과 또는 라우팅 규칙들이 결정될 수 있을 때까지 중 어느 것이든 먼저 될 때까지 계속된다. Matching procedure (steps 308, 310, 312, 314, 315, and 316) all the set of filters to be performed is, continues until either the first one until it can be determined that a result or a routing rule for every action . 만약 패킷이 어떤 필터도 만족시키지 않는다면, 그것은 중단되고(버려지고), 전달되지 않을 것이다. If the packet does not meet any filter also, it stops and the (discarded), will not be delivered.

지능형 라우터(92)는 어떤 특정한 순서로 필터를 정렬할 수 있다. Intelligent router 92 can align the filter to any particular order. 예를 들면, 표 15에 나타난 바와 같이 하나의 열 또는 라우팅 표로 가입에 대한 필터를 저장하고, 일직선으로 필터를 훑어가면서 속성들을 필터(속성 테스트들)에 적용시킬 수 있다. For example, store the filter for a single column or a routing table join, as shown in Table 15, and can be applied to a straight line by step through the filter filters the properties (the property test). 이와 다르게, 라우팅 표는 필터에 대한 포인터 또는 링크를 포함할 수도 있다. Alternatively, the routing table may comprise a pointer or link to the filter.

콘텐트 기반 라우팅은 예를 들면 트래픽 상태에 따른 알고리듬 교환과 같은성능-향상 휴리스틱(heuristic)과 애플리케이션에 따라 임의로 하나 이상의 메소드를 동시에 사용할 수 있다. Content-based routing, for example, performance such as the replacement algorithm according to the traffic conditions - can be improved in accordance with heuristics (heuristic) and application optionally use more than one method at the same time. 처리를 위한 필터는 콘텐트 기반 라우팅에 필요한 페이로드 섹션 검사의 수행을 위해 네트워크 내 하나의 라우터에서 임의로 암호화, 번역화, 변환되고, 병합될 수 있다. Filter for the treatment can be converted, optionally encrypted, translation screen, from the network within a router, can be incorporated to carry out the payload section inspected for content-based routing. 예를 들면, 가격 > 3.54122 달러는 끝을 잘라서 가격 > 3.54 달러로 될 것이다. For example, the price> 3.54122 US dollars price cut end> ​​will be at $ 3.54. 왜냐하면, 애플리케이션에서 발행은 소수점이하 두번째보다 작은 자리의 통화 속성을 포함하지 않는다고 알려져 있기 때문이다. Because, issued by the application is known because it does not include a monetary property of a small number of decimal digits than the second. 또한 예를 들어, 외국에서 부친 발행이 미국에 위치한 라우터에 처음 도착할 때, 외국 통화는 미국 통화로 번역될 수 있다. In addition, for example, when the father was issued in a foreign country the first to arrive to the router in the United States, foreign currency can be translated into US currency.

일직선으로 필터를 훑어가는 것에 대한 하나의 대안으로서, 지능형 라우터(92)는 다른 순서 또는 아마도 처리 속도, 효율을 향샹시킬 수 있는 다양한 알고리듬에 따라 처리를 위한 필터를 선택할 수도 있다. As an alternative to a straight line by the thin scan the filter, the intelligent router 92 can select filters for processing in accordance with various algorithms that can hyangsyang a different order, or perhaps the processing speed and efficiency. 표 16은 가입과 그에 대응하는 링크의 예를 나타낸다; Table 16 shows an example of the subscriber and link corresponding thereto; 이 예에서 주제들은 특정 채널과 관련되어 있고, 그 주제에 대한 가입은 필터에 대한 라우팅 규칙으로 표현될 수 있다. Subjects in these examples is associated with a particular channel, subscription on the subject can be represented by the routing rules for the filter. 주제들은 예를 들면, 콘텐트의 출처를 식별하는 Uniform Resource Locators(URLs)와 같은 네트워크 주소를 포함할 수 있다. Subjects are, for example, may include a network address such as Uniform Resource Locators (URLs) to identify the source of the content.

표 15 Table 15
채널 1 Channel 1
가입 join 링크 link
필터 1a 1a filters 링크 1a Link 1a
필터 2a 2a filters 링크 2a Link 2a
... ...
필터 Na Filters Na 링크 na Link na
...
채널 N Channel N
가입 join 링크 link
필터 1N Filter 1N 링크 1a Link 1a
필터 2N 2N filters 링크 1b Link 1b
... ...
필터 NN Filter NN 링크 1n 1n link

네트워크 노드에서 캐싱 Caching in the network node

도 14는 캐싱메소드(320)의 플로우 차트를 나타낸 것이다. Figure 14 illustrates a flowchart of a caching method 320. 메소드(320)는 예를 들어, 지능형 라우터(92)에서 프로세서(93)에 의한 실행 소프트웨어 모듈 내에서 구현될 수 있는데, 지능형 라우터(92)는 캐시 매니저(218)로써 표현된다. Method 320, for example, from the intelligent router 92 may be implemented in a software module executed by a processor (93), the intelligent router 92 is expressed by the cache manager 218. 이와 다르게, 메소드(320)를 하나의 ASIC으로 또는 하드웨어와 소프트웨어의 결합, 대응하는 지능형 라우터와 동일하거나 다른 물리적 장치로도 구현할 수 있다. Alternatively, the same method 320 and an ASIC in hardware or a combination of software, or the corresponding intelligent router can also be implemented in different physical devices. 메소드(320)에서, 지능형 라우터(92)는 데이터 또는 콘텐트와, 하나의 채널 ID, 주제들을 포함한 메시지를 수신한다 (단계 322). In method 320, intelligent router 92 receives a message including the data or content, a channel ID, subject (step 322). 지능형 라우터(92)는 데이타에 시간을 마크하고, (단계 324) 메모리(94)나 2차 저장소(97)에 국부적으로 캐시(저장)한다 (단계 326). The intelligent router 92 time marks the data, (step 324), the memory 94 or secondary storage 97, a local cache (store) (step 326). 지능형 라우터(92)는 캐시 데이터를 예를 들어, 채널 ID, 주제들과 시간 스탬프로 인덱스한다 (단계 328). Intelligent router 92 is the data cache, for example, an index to a channel ID, subjects, and time stamps (step 328).

만약 지능형 라우터(92)가 데이터에 대한 요청을 수신하면 (단계 330), 요청에 따라 인덱스를 이용하여 캐시된 데이터를 복구한다 (단계 332). If intelligent router 92 receives a request for data (step 330), to recover the cached data by using the index in accordance with the request (step 332). 지능형 라우터(92)는 캐시 데이터를 백본 라우터(95), 또는 요청자나 다른이에게 궁극적으로 전송하기 위한 다른 라우팅 장치로 전달한다. Intelligent router 92 transfers the cached data to the other routing device to ultimately sent to the other or backbone routers (95), or on-demand. 메소드(320)를 반복 실행하여 데이터 캐시 및 요청에 대한 캐시 데이터 복구를 지속적으로 할 수 있다. Executing the method 320 may be repeated to recover a cache of data to the data cache and the request to continue.

도 15는 메소드(320)에 사용되는 캐시 인덱스(336)를 설명하는 도해이다. 15 is a diagram illustrating a cache index (336) for use in the method 320. The 캐시 인덱스(336)는 데이터(338)를 수신하고 시간 스탬프(340)와 함께 저장한다. A cache index (336) receives data (338) and stored with the time stamp 340. 데이터가 수집되면, 매 델타 t시간마다 마크된다. Once the data is collected, it is the mark every time delta-t. 여기서 델타 t는 마크 사이의 시간 간격을 표시하는데, 예를 들면, t 2 - t 1 가 된다. Where delta t is a time interval in between marks, for example, t 2 - t 1 is the. 어떤 방식으로 시간을 마크하던지 다른 유형의 인덱스를 대안으로 사용할 수 있다. No matter the hour mark in some way can be used as an alternative to other types of indexes.

표 17은 캐시 데이터의 인덱스를 개념적으로 설명한 것이다. Table 17 sets forth the index of the cache data conceptually. 표 18은 캐시에 대한 연결 히스토리를 저장하는 데이터 구조를 개념적으로 설명한 것이다. Table 18 sets forth a data structure for storing a connection history for caching conceptually. 표 19는 지능형 라우터를 포함한 네트워크 노드에서 국부적으로 데이터를 캐시하는데 사용되는 데이터 구조들의 예를 보여준다. Table 19 shows an example of the data structure used to cache the data locally at network nodes including the intelligent router.

시간 마크의 간격은 길이에 관계없이 고정되거나 변할 수 있다. Interval of time marks can be fixed or vary, regardless of length. 예를 들면, 매 5분마다 데이터를 캐시하고, 인덱스할 수 있다. For example, it can be cached and indexed every five minutes of data. 하나의 시간과 주제를 지정하는 캐시 데이터의 복구 명령(#.getCasche와 같은)이 수신되면, 캐시 매니저(218)는 단계(332)에서 캐시 인덱스를 이용하여 요청에 상응하는 캐시데이터를 복구할 수 있는지 여부를 결정한다. After receiving one (such as # .getCasche) repair instruction cache data specifying the time and subject, the cache manager 218 uses the cache index in step 332 to recover cache data corresponding to the request to determine whether.

각 주제 또는 채널은 예를 들어, 하나의 멀티캐스트 트리와 한 세트의 지능형 라우터 내에서 그 자신의 IP 주소를 포함할 수 있다. Each subject or channel, for example, may include its own IP address in the intelligent routers in a multicast tree and a set. 그러므로, 표 18은 사용자 머신에 국부적으로 저장될 수 있는 라우터들 사이의 연결 히스토리를 표현한 것이다; Therefore, Table 18 is the image of the connection history between the routers that can be locally stored on a user machine; 만약 에지 라우터가 끊어지면, 머신은 에지 라우터가 온-라인 복귀되었을 때 그 채널에 대해서 어떻게 업스트림 라우터를 다시 연결할지 결정하기 위해 연결 히스토리에 액세스할 수 있다. If the ground is broken edge router, an edge router machine is on - you can access the connection history to determine how about the channel when connected to a return line upstream router. 머신은 또한 예를 들면, 연결이 끊긴 시간 동안 가입에 대해 계류중인 어떤 콘텐트를 확보하기 위해 get cashe 명령을 실행할 수도 있다. Machines are also, for example, to get cashe commands also run to ensure any pending content for subscription during the time the connection is lost.

표 17 Table 17
t 1 t 1 채널 ID 1 Channel ID 1 주제 1 - n Topic 1 - n 캐시 데이터에 대한 포인터 1 A pointer to the data cache 1
t 2 t 2 채널 ID 2 Channel ID 2 주제 1 - n Topic 1 - n 캐시 데이터에 대한 포인터 2 A pointer to the data cache 2
t n t n 채널 ID 4 Channel ID 4 주제 1 - n Topic 1 - n 캐시 데이터에 대한 포인터 N A pointer to the cached data N

표 18 Table 18
연결 히스토리 Connection history
시간 time 라우터 router 네트워크 주소 Network Address
t 1 t 1 R2 R2 UR2 UR2 UR3 UR3
t 2 t 2 R2 R2 UR2 UR2 UR3 UR3
...

표 19 Table 19
지능형 라우터를 위한 캐시 데이터 구조의 예 An example of the cache data structure for an intelligent router
채널 노드 Channel node
주제 노드 Subject node
데이터 노드 Data Node
저장된 시간 그레인 노드 Stored time grain node
지난 시간 그레인 노드 The last time grain node

이 대표적인 데이터 구조에는 다음의 정보가 포함되어 있다. The exemplary data structure includes the following information: 하나의 주제 노드에는 하나의 주제 식별자(identifier), 주제 계층(level), 상위(parent) 채널 또는 주제 노드에 대한 포인터, 그 자신의 디렉토리에 대한 파일 기술자(descriptor), 다음 계층(level) 주제 노드를 포함하는 해시(hash) 표에 대한 포인터와 데이터 노드에 대한 포인터 등이 있다. One topic node has one subject identifier (identifier), the subject-tier (level), parent (parent) pointer to the channel, or topic node, file descriptor for its own directory (descriptor), the next tier (level) subject node include a pointer to a pointer to the data node to the hash (hash) table containing. 하나의 데이터 노드에는 그것의 주제 상위(parent) 노드에 대한 포인터, 그 데이터 디렉토리에 대한 파일 기술자(descriptor), 각 저장 장치에 저장된 데이터에 대한 데이타 구조를 포함하는 원형 버퍼, 버퍼의 헤드(head)와 테일(tail), 그리고 복구와 저장기간 동안 데이터 노드를 잠그기 위한 락(lock) 등이 있다. One data node has a pointer to its subject parent (parent) node, file descriptor for the data directory (descriptor), the head (head) of the circular buffer, the buffer containing the data structure of the data stored in each storage device there is the tail (tail), and the like lock (lock) for locking the data node during retrieval and storage. 저장된 시간 그레인(grain) 노드는 현재의 데이터 파일을 표현하는 노드이고, 지난 시간 그레인(grain) 노드는 저장 장치에 아직 저장되지 않고, 메모리에서 유지되고 있는 지난 버퍼를 표현한다. Stored time grain (grain) node is a node that represents the current data file, the last time grain (grain) the node is not yet stored in the storage unit, represents the last buffer that is maintained in memory. 이 예에서 캐시와 데이터 저장 스레드(threads)는 지난 시간 그레인(grain) 노드의 mutex를 사용하여 지난 시간 그레인(grain) 노드를 동시에 액세스(access)하는 것을 방지한다. Storing cache data and the threads in this example (threads) is used to prevent sending the last time grain (grain) using the mutex of the access nodes at the same time (access) the last time grain (grain) node.

에이전트 처리 Agent Processing

도 16은 발신 가입 메시지에 대한 에이전트 메소드(350)의 플로우 차트를 나타낸 것이다. Figure 16 illustrates a flowchart of an agent method 350 for outgoing subscription message. 메소드(350)는 예를 들어, 사용자(가입자) 머신(122)에서 프로세서(134) 실행을 위한 에이전트(128)로 표현되는 소프트웨어 모듈 내에서 구현될 수 있다. Method 350 may, for example, be implemented in the software module represented in the user (subscriber) machine 122 to the agent 128 for executing the processor 134. The 메소드(350)에서, 에이전트(128)은 상기 도 11과 도 12에서 기술된 메소드 등을 통해 하나의 가입을 수신한다 (단계 352). In method 350, agent 128 receives a subscription to the one via, such as the method described in FIG. 12 and FIG. 11 (step 352). 에이전트(128)은 그 가입을 위해 부울(Boolean) 표현식을 지정하는 하나의 문자열을 생성하고 (단계 354), 가입 내 오류여부를 감지하기 위해 문자열을 구문 분석(parse)한다 (단계 356). Agent 128 generates a string that specifies the boolean (Boolean) expressions for the subscription (step 354), parsing (parse) the strings join in order to detect whether or not my fault (step 356). 만약, 오류가 있으면, 에이전트(128)은 사용자에게 오류 메시지를 제출할 수 있는데 (단계 360), 사용자가 오류를 수정하여 가입을 다시 입력하게 하기 위함이다. If, when there is an error, the agent 128 is to be able to enter may submit an error message to the user subscription (step 360), the user modifies the error. 만약, 가입에 오류가 없으면 (단계 358), 에이전트(128)은 후술하는 예와 같은 하나의 데이터 구조에 그 표현식을 저장한다 (단계 362). If no errors in the subscription (step 358), the agent 128 stores the expression in a data structure such as that described hereinafter (step 362). 에이전트(128)은 데이터 구조내 같지 않다는 표현식을 긍정 형식으로 변환하고 (단계 364), 데이터 구조를 상응하는 선언 표준형(disjunctive normal form, DNF) 구조로 변환한다 (단계 366). Agent 128 converts the data structure conversion is not the same for expression in a positive form (step 364), declaring the corresponding data structure standard (disjunctive normal form, DNF) structure (step 366). 에이전트(128)는 또한 DNF 구조의 AND 표현식들을 단순화하여 오직 범위 필터들(range filters)과 자격(membership) 테스트들만을 포함하도록 한다 (단계 368). Agent shall be 128 also simplifies AND expressions of the DNF structure to contain only range filters only (range filters) and qualification (membership) test (step 368).

DNF는 기본적인 형식으로 잘 알려져 있는데, 이 형식에서는 부울(Boolean) 표현식이 하나 또는 그 이상의 선언(disjunct)이라 불리는 부-표현식들을 하나의 OR로 표현한 것으로, 각 부-표현식은 하나 또는 그 이상의 속성 테스트들을 하나의 AND로 표현한 것이다. DNF is there known as the basic format, this format Boolean (Boolean) declared the expression of one or more (disjunct) unit called - to express the expression as one of the OR, each sub-expression of one or more attribute tests a graphical representation of a single AND. 예를 들면, 부울(Boolean) 표현식(가격 >=10 AND ((심볼=="LU" OR 심볼=="T"))은 다음과 같은 등가의 DNF 표현식을 갖는다 ((가격 >=10 AND 심볼=="LU") OR (가격 >=10 AND 심볼=="T")). For example, the Boolean (Boolean) expression (price> = 10 AND ((symbol == "LU" OR symbol == "T")) has the following expression in the same equivalent DNF ((price> = 10 AND symbol == "LU") OR (price> = 10 AND symbol == "T")).

단계(364)에서 변환은 "같지 않다" 연산자 (대표적으로 기호 !=으로 표현되는)를 등가의 "긍정" 형식, 즉 하나의 불허된 값보다는 모든 허가된 값을 지정하는형식으로 변환하는 것을 의미하는 것이다. Converted in step 364 are meant to be converted to a form that specifies all the authorized value, rather than a "positive" type, i.e. a value not allow the equivalent to "not equal" operator (which is typically a sign! = It expressed in) to. 이 변환은 DNF의 생성 전에 먼저 수행되는데, 이렇게 해야하는 이유는 이 예에서 라우터가 긍정 형식의 방정식을 요구하기 때문이다. This conversion is performed before there is first produced the DNF, The reason is that the router need in this example requires the equation of positive type. 예를 들면, 표현식(가격 !=80)은 등가의 긍정 표현식 (가격 <=79 OR 가격 >=81)로 변환될 수 있다. For example, the expression (price! = 80) can be converted to the equivalent positive expression (price <= 79 OR price> = 81).

단계(368)에서 변환은 DNF가 생성된 후 수행되며, 결과적인 AND 표현식에 대해 가외로 단순화를 시키는 것이다. In step 368 conversion is performed after the DNF is created, which is a simplified extra for the resulting AND expressions. 이것 또한 이 예에서 라우터 작업을 단순화하기 위해 수행된다. It is also performed to simplify the work routers in this example. 특별히, 동일한 속성에 대한 다수의 속성 테스트들을 하나의 AND로 표현한 것은 하나의 기본적인 "범위 필터"로 단순화될 수 있는데, 이 범위 필터는 하나의 하한 또는 상한만 있거나 상, 하한 모두 있거나 또는 동일성 테스트의 경우에는 하나의 값이 된다. In particular, there a plurality of attribute tests for the same attribute can be simplified into one is a basic "range filter" of the image by AND, the range filter, or only one of the lower or upper phase, the lower limit of all, or equivalence test If there is a single value. 특별 유형의 범위 필터는 그 후 표 22에 따라 암호화된다. The special type of range filter is then encrypted according to Table 22.

예를 들면, 표현식 (가격 >= 10 AND 가격 <= 80 AND 가격 >= 20 AND 가격 <= 100)은 표현식 (가격 >= 20 AND 가격 <= 80)으로 단순화될 수 있는데, 이것은 상, 하한 모두 있는 범위 필터의 한 예이다. For example, there expression (price> = 10 AND price <= 80 AND price> = 20 AND price <= 100) can be simplified to an expression (price> = 20 AND price <= 80), this phase, both the lower limit which is an example of a range filter. 단순화후 다른 유형의 예는 다음과 같다: (가격 >=20) (하한만); After the simplified example of the other type are the following: (price> = 20) (lower bound only); (가격<=80) (상한만); (Price <= 80) (upper only); 그리고 (가격==50) (하나의 값). And (price == 50) (one value). 이러한 범위 필터를 생성하면서 어떤 부 표현식은 진실 또는 거짓으로 단순화시킬 가능성이 있는데, 이 경우 부 표현식은 부울(Boolean) 대수 법칙에 따라 제거될 수 있고, 따라서 메시지 내 표현식의 암호화가 한층 더 최적화된다. Any subexpressions, creating these range filters, there is a possibility to simplify the true or false, in which case the sub-expressions may be removed in accordance with the boolean (Boolean) laws of large numbers, so that the encryption of the expression in a message is further optimized more. 예를 들면, 표현식 (가격 >= 50 AND 가격 <= 20)은 거짓으로 단순화되는데, 왜냐하면 "가격"에 대해 어떤 값도 이 표현식을 만족시킬 수 없기 때문이다. For example, the expression (price> = 50 AND price <= 20) simplifies to false, there is, it is because since any value to satisfy the expression for the "price." 전체 필터 표현식이 거짓으로 단순화 되는 특별한 경우에는 에이전트는 메시지 전부를 생성할 필요가 없으며, 따라서 라우터의 불필요한 작업이 경감된다. Special cases the whole filter expression simplifies to false, the agent that it is not necessary to create a whole message, and thus alleviate the unnecessary operation of the router.

만약 주제 필터(subject filter)가 와일드카드를 포함하고 있으면, 에이전트(128)는 그것을 임의로 아래(단계 370)와 같이 바꿀 수 있다. If the subject filter (subject filter) that contains wildcard, agent 128 can be changed as follows (step 370), it arbitrarily. 반면, 와일드카드는 사용자의 컴퓨터나 다른 장치에서 보다 네트워크에서 바뀔 수 있다. On the other hand, wildcards can be changed in the network rather than on the user's computer or other device. 그 대표적인 예로, 주제 필터의 신택스는 와일드카드를 사용하는 유일한 신택스이고 속성 필터는 부울 연산식을 사용하는 유일한 신택스이다. As a representative example, the syntax for subject filters is the only syntax and attribute filters is the only syntax that uses wildcards to a Boolean expression. 대신에, 구현에 있어서는 주제 필터나 속성 필터에서 다르거나 다양한 형태의 신택스의 사용이 가능하다. Instead, different or it is possible to use various types of syntax from subject filters and attribute filters In the implementation.

에이전트(128)은 결과물인 DNF 표현을 메시지(단계 372)로 암호화하고, 그 메시지를 지능형 라우터 라우터(단계 374)로 옮긴다. Agent 128 encrypts the resulting DNF expression into a message (step 372), and transfers the message to the intelligent router, the router (step 374). 암호화 과정은 가입(subscription)을 플랫(flat) 메시지 형태로 전환하는 것을 포함하며, 이것은 데이터의 문자열을 구성한다는 것을 의미힌다. The encryption process includes the conversion of the subscription (subscription) to a flat (flat) message format, which means that hinda configure a string of data. 이 전달과정은 하나나 그 이상의 지능형 라우터나 네트워크상의 다른 라우팅 기기에 가입(subscriontion)하기 위한 주제 필터와 속성 필터로부터 생긴 전달된 라우팅 규칙을 포함한다. The delivery process includes looking passed routing rule from subject filters and attribute filters for the subscription (subscriontion) to one or more intelligent routers or other routing devices in the network. 예를 들어서 전달을 위해서는 가입(subscription) 표현은 전형적인 패킷 구조로 맵핑될 수 있다. For subscription (subscription) to represent the delivery lift can be mapped to typical packet structure.

한 채널을 통해 전달을 하기 위해서 단계 372의 암화화과정은 한 채널을 메시징 API 포맷으로 가입(subscription)하는 것을 정렬하는 것을 포함한다. Carcinogenesis development process of step 372 to the delivery through a channel involves alignment to join (subscription) to a channel in the messaging API format. 가입(subscription)은 예를 들어 내부적으로는 #.SUBSCRIPTION으로 통신된다. Up (subscription), for example internally, is communicated to # .SUBSCRIPTION. 왜냐하면, 중요한 주제 필터 필드와 중요한 속성 테스트 양쪽 모두가 존재하기 때문이며, 한쌍의 바이트(one pair of bytes)는 주제 필터 필드의 수를 저장하기 위해서 사용되고 다른 쌍의 바이트는 이 예에서의 속성테스트수를 저장하기 위해서 사용되기 때문이다. Because, due to the important attributes tested both as an important subject filter field is present, a pair of bytes (one pair of bytes) is the number of test attributes in being used to store the number of subject filter fields other pair of bytes in this example because it is used to store. 예를 들어서 각각의 주제 필터의 필드는 본래의 가입에서 구체화 된 순서에 있어서 연속적으로 정렬되며, 메시지의 2바이트 부분으로 각각 정렬된다. For example, fields of each of the subject filter are successively arranged in order according to the specified in the original subscription, are respectively arranged in a two-byte portion of the message. 와일드카드 필드는 아래에 설명하는 것과 같이 정렬될 수 있다. Wildcard fields can be arranged as described below.

속성테스트를 정렬함에 있어서, 테스트의 피 연산자는 통지의 속성 값을 정렬하는 것과 같은 이치로 메시지의 끝에서 정렬이 된다. As in the alignment properties tests, the operands of the tests are arranged in the end of the message, such as Suzuki sort attribute values ​​of notifications. 속성 테스트와 피연산자를 정렬하기에 앞서서 각각 분리된 DNF하에서 위치 순서에 따른 미리 설정된 속성들에 대한 테스트를 통해 속성 순서로 분류되고, 이름 순으로 임의의 속성에 따라 테스트를 거친다. By testing for the preset attribute according to the position sequence under each discrete DNF prior to aligning the attribute tests and operands are classified into property order, subjected to a test in accordance with any of the properties in the name order. 더욱이 각각의 선언 하에서 관련된 일련의 스칼라 값의 속성들에 대한 테스트는 하나의 한계(왼쪽 -또는 오른쪽- 개방 범위 또는 균등 테스트)나 두개의 한계(분리된 경계 사이의 닫힌 범위)를 가진 레인지(range) 필터의 정규형으로 단순화 된다. Further tests on a set of properties of a scalar value associated under each declaration is one limit of the range with the (closed ranges between discrete boundary) (on the left-or right-open ranges or equality tests) or two limits (range ) it is simplified as the canonical form of the filter. 테스트의 다른 정보들은 예를 들어서 피연산자와 같은 순서의 2바이트 쌍으로 암호화 된다. More information about this test are picked up for example are encoded into 2-byte pairs in the same order as the operands. 이 2바이트 쌍의 연속은 즉시 주제 필터 필드의 2바이트 암호 연속 다음의 메시지 내에서 자리잡게 된다. The second series of bytes catch pair is located within a 2-byte password, the following message immediately and continuously subject filter fields. 2바이트 쌍은 속성 테스트의 비트(bit)-문자열 암호화 연속의 한 형태를 구성하며, 이것은 또한 2바이트 쌍은 별 문제로하고 다른 암호화 형태를 대표하는 것으로 사용될 수 있다. A two-byte pairs bits (bit) of the property test - constitute a form of a continuous string encryption, this is also a two-byte pairs can be used as a specific problem and represents a different encryption type. 속성테스트의 예는 아래와 같이 제공된다. Examples of attribute tests are provided below.

속성 테스트의 암호화하는 과정의 개요는 표20에 서술한다. Summary of the encoding process of the property tests are described in Table 20. 표21은 2바이트 쌍을 암호화하는 방법을 서술하며, 표 22는 2바이트 쌍의 연산자 아이디(ID)를 암호화하는 방법을 서술한다. Table 21 describes the method of encrypting the two-byte pairs, and Table 22 describes a method for encrypting an operator ID (ID) of two bytes pair.

표20 Table 20
암호화 규칙 Encryption rules
1 One 디비트(D bit)의 0은 DNF의 새로운 선언의 시작을 가리키며, 디비트(D bit)의 1은 현재 선언에서 추가적인 선언을 가리킨다. D bit 0 of the (D bit) refers to the beginning of the new declaration of the DNF, 1 bit of di (D bit) indicates an additional declarations in the current claim.
2 2 통지 속성 위치의 모두 1인 값은 테스트가 적용되는 미리 정의된 속성(채널의 통지 태양에 따라 정의된)의 위치를 가리킨다. Notice first of all values ​​of the attribute position indicates the position of the pre-attribute (as defined in accordance with aspects of the notification channel) defining the test is applied. ; .; 테스트의 연산자는 도 18에서 묘사된 예와 같이 정렬된다. The test operator are arranged as in the example depicted in FIG. 18.
3 3 통지 속성 위치의 모두 1인 값은 테스트가 임의의 속성에 적용되는 것을 가리킨다. Notice first of all values ​​of the attribute position indicates that the test is applicable to any property. 이 경우에 이름의 길이와 테스트가 적용되는 속성의 이름은 연산자로 정리된다. The name of the property that the length of the test and the name applied to this case will be organized by the operator.
4 4 연산자 형태 아이디(ID)의 비트는 속성의 미리 정의된 형태 중의 하나로 암호화 된다. Bits in the form of operator ID (ID) is encrypted into one of a predefined type of the attribute.
5 5 연산자 아이디(ID)의 비트는 표 22에서 정의된 것과 같이 테스트에서 사용된 연산자로 암호화된다. Bit of the operator ID (ID) is encrypted with the operator in the test as defined in Table 22.

표21 Table 21
첫 번째 바이트 The first byte
0 0 1 One 2 2 3 3 4 4 5 5 6 6 7 7
D D 통지 속성 위치 Notification Property Location
두 번째 바이트 The second byte
0 0 1 One 2 2 3 3 4 4 5 5 6 6 7 7
연산자 유형 ID Operator Type ID 연산자 아이디 Operator ID

표 22 Table 22
연산자 Operator 연산자 아이디 Operator ID
좌 개방 범위 Left open range 000 000
우 개방 범위 Wu opening range 001 001
닫힌 범위 Closed range 010 010
동일성 테스트 Equivalency Test 011 011
긍정적 고객 테스트 Positive customer testing 100 100
부정적 고객 테스트 Negative customer testing 101 101

테스트를 위한 2바이트 쌍은 이미 테스트의 연산자 형태와 미리 정의되거나 임의의 속성에 적용되는 테스트인지 여부를 불문한 양쪽을 모두 가리키기 때문에 임의의 속성이나 그 태양에 대해 수행된 테스트의 수를 분리하여 정렬할 필요가 없다. 2 bytes for a test pair has already been pre-defined with the operator in the form of test or due to indicate both sides, regardless whether the test to be applied to any attribute separate the number of tests performed on discretionary attributes or their sun there is no need to be sorted. 이런 설계는 통지에 있어서 미리 정의된 속성이 127개 이상이 없다는 것을 가정하고 있다. This design assumes that the pre-defined attributes in the notification no more than 127. 대신에 이런 설계는 속성 테스트를 암호화하는데 더 많은 비트를 사용을 할 수 있다. This design instead can use more bits to encode attribute tests.

이와 같은 속성 필터의 정렬 관습은 DNF에 따른 속성 테스트를 순서화하고 그룹화했지만, 모든 속성 필터의 발전을 더욱 효과적으로 하기 위해서 하부조직 요소(라우터와 같은)가 다른 어떤 순서(아마도 다른 테스트의 성공이나 실패의 확률에 대한 다이내믹하게 얻어진 국부적 데이터에 따른)에 따라 테스트를 발전시키기 위한 선택을 한 것이다. This sort customs of such property filters, but the ordering and grouping attribute tests according to the DNF, infrastructure elements are any other sequence (such as a router) (possibly of another test success or failure to the development of all attribute filters more effectively according to according to the local data dynamically obtained for the probability) is the one selected for the development of the test. 메시지의 가입(subscription) 아이디(ID) 필드는 에이전트의 에지(edge) 라우터와 가입(subscription)을 완전히 일치시키기 위해서 계속되는 요구하에서 가입(subscription)을 변경하거나 unsubscribe하기 위해서 에이전트에 의해 생성되는 값이다. Join message (subscription) identity (ID) field is the value generated by the agent to change the subscription (subscription) under the subsequent request, in order to fully match an edge (edge) router as Up (subscription) of the agent or unsubscribe. 특히, 가입의 속성 필터에 대한 동적인 변경은 주제가 #.RESUBSCRIPTION인 경우를 제외하고 도 18의 예에서 보여지는 메시지 형태를 사용하여 전달되고, 가입 아이디는 미리 등록된 변경되어진 가입의 가입 아이디이다. In particular, a dynamic change to the attribute filter of a subscription is transmitted using the message format shown in the example of Figure 18, and except for the case of subject # .RESUBSCRIPTION, subscription ID is an ID of the subscriber to join the preregistered been changed. 그리고 unsubscription은 예를 들어서 주제가 #.UNSUBSCRIPTION이고 가입 아이디 필드를 통해서 도 18의 메시지 형태를 사용하여 전달된 것이며, 가입 아이디는 미리 등록된 unsubscribe되어진 가입의 가입 아이디이다. And unsubscription is for example the subject # .UNSUBSCRIPTION and will pass the message by using the configuration of Figure 18 through a subscription ID field, the subscriber ID is an ID of the subscriber subscription been registered beforehand unsubscribe.

이하 상기에서 설명된 에이전트에 의한 변환과 암호화를 설명하는 예를 든다. Give an example for explaining the conversion and encryption of the agents described in the following. 아래와 같은 속성필터 표현의 예에 대해서 생각해보자. Think about the following example of the attribute filter expression. 가격 >=10 and (부호 ="LU" 또는 (부피>= 1000 and 부피<=10000)). Price> = 10 and (code = "LU" or (volume> = 1000 and a volume <= 10000)). 도 19는 이 표현을 저장하기 위한 단계 362의 에이전트에 의해 사용된 객체를 설명하는 통합된 모델링 언어(UML) 도식 390을 나타낸다. 19 illustrates a Unified Modeling Language (UML) diagram 390 to describe the objects used by the agent in step 362 to store the expression. 이 도식은 변수, 상수 또는 양쪽 모두를 포함하는 가입을 구체화하기 위한 계층적 관계를 설명하는 것이다. This diagram is to describe the hierarchical relationship to materialize a subscription that contains a variable, constant, or both. 도식의 객체는 특정 구현에 따른 필터 종류의 예가 될 수 있다. Object of the scheme may be an example of a filter type according to certain embodiments. 각각의 단순필터(SimpleFilter) 객체는 부합하는 필터 표현의 속성 테스트에 대한 정보를 저장하기 위해 사용된 속성의 값을 표현한다. Each of the simple filter (SimpleFilter) object represents the value of the attributes used to store information about the attribute test of the filter expression that meets. 도 19의 표현에 의하면, 하나의 OR 필터396이 2개의 앤드필터 392와 400과 연결된다. According to the representation of Figure 19, it is one of the OR filter 396 is connected to the two-and-filter 392 and 400. 앤드필터392는 가입을 위한 속성을 가진 단순 필터 394를 포함한다. And filter 392 comprises a simple filter 394 with attributes for the subscription. 같은 방식으로 OR 필터 396은 단순필터 398을 포함하고 앤드필터 400은 단순 필터 402와 404를 포함한다. In the same way OR filter 396 contains a simple filter 398, and filter 400 contains a simple-and-filter 402 and 404.

이 예의 사용을 위해서는 속성 가격, 부호와 부피는 연결된 채널의 미리 정의된 속성으로 가정되고, 각각 위치 0,1,2로 정의된 것으로 가정된다. In this example, in order to use the property value, and the code volume is assumed to be predefined attributes of the associated channel, is assumed to be respectively defined as a position 0,1,2. 더욱이 속성의 태양은 각각 언사인드 인티저(unsigned integer)(타이프코드 6), 캐릭터 어레이(타이프코드 12)와 언사인드 인티저(타이프코드6)로 가정된다. Furthermore, the solar properties are assumed to be respectively unsigned integer (unsigned integer) (Type Code 6), character array (type code 12), and unsigned integer (Type Code 6).

다음으로 속성 필터로서의 속성필터표현의 예를 포함하는 가입을 생각해보자. Next, consider a subscription that includes an example of an attribute filter expression as the Filter property. 도 18은 가입을 메시지로 정렬하는 것을 나타낸다. Figure 18 shows that the alignment accession to the message. 도 18의 왼쪽에 나타난 도식 386은 실제 메시지의 내용을 나태내고, 오른쪽의 도식 388은 메시지의 다른 부분에 대한 부호를 제공한다. FIG out scheme 386 shown in the left side of the 18 indolent the content of the actual message, schematic 388 on the right provides the code for the different parts of the message. 이 예의 각 도식의 넓이는 4바이트이다. The width of each schematic in this example is 4 bytes. 정렬을 하기에 앞서서 필터는 동등한 DNF로 변형된다. Prior to sorting filter is transformed into an equivalent DNF. (가격 >=10 and 부호 ="LU")또는(가격 >= 10 and 부피>=1000 and 부피 <= 10000). (Price> = 10 and code = "LU") or (price> = 10 and volume> = 1000 and a volume <= 10000).

16비트 속성 테스트 암호화는 비트의 연속으로 나타내며, 간격은 다른 부분으로 분리하는 것을 나타낸다. 16-bit encryption attribute tests is expressed by a series of bits, the interval represents the separation of the different parts. 이 예에서의 가격에 대한 2개의 테스트는 분리된 영역에 있으므로 결합될 수 없다는 것을 주의하여야 하며, 따라서 오른쪽 경계가 없는 범위(우 개방 영역)에서 분리되어 정렬된다. Two tests on price in this example are arranged separately from and be aware that you can not be combined, so in a separate area, and therefore does not have the right range boundary (right open area). 한편, 부피에 대한 2개의 테스트는 같은 영역에 있기 때문에 결합될 수 있으며, 한 개의 닫힌 영역 테스트에서 함께 정렬될 수 있다. On the other hand, the two tests on volume can be combined since they are in the same area, it may be arranged together in a single enclosed area test.

끝으로, 어떠한 영역은 "가정된"것으로 특징지어질 수 있다는 것을 알아야 한다. Finally, it should be understood that any area can be characterized as "assumptions". 이것은 이 영역들에서의 값은 예를 들기 위해서 임의로 선택되어 진 것이고, 정렬된 가입으로부터 일반적으로 독립된 것이다. This value in these areas will camp optionally selected in order by way of example, it will generally separate from the ordered subscription. 부가한다면, 가입의 주제 필터는 임의로 ">"로 선택되고, 이것은 연결된 채널에 의해 정의된 어떤 주제와도 합치한다. If added, the subject of the subscription filter is selected randomly by ">", which is also matched with a subject defined by the associated channel. 상기에서 서술되고 도 18과 19에서 보여진 예는 설명을 하기위한 목적을 위해서만 제공된 것이고, 정렬은 가입의 다른 어떤 태양에 대해서도 사용될 수 있다. Examples are shown in Fig. 18 and 19 described above will provided solely for the purpose of explanation, the alignment can be used for any other aspect of the join. 또한, 방법 350은 가입을 정렬하는 단 하나의 예를 보여준 것이고, 그것들은 다른 어떤 방식으로도 정렬될 수 있다. In addition, the method 350 will claimed to be only one example arranged to join, and they may also be arranged in some other manner.

도 17은 들어온 메시지에 대한 에이전트 방법 376의 프로우 차트이다. 17 is a chart of an agent method 376 for professionals Wu came to the message. 방법 376은 예를 들어서 사용자 컴퓨터 122에서 에이전트 128과 어플리케이션 126에 따라 고안될 수 있다. How it can lift 376 can be designed according to the agent 128 and the application 126 on the user's computer 122, for example. 방법 376에서 에이전트 128은 가입에 부합하는 지능형라우터로부터 메시지를 전달 받는다(단계 378). In the method 376 the agent 128 receives messages from an intelligent router that meet the subscription (step 378). 에이전트 128은 가입에 따라 채널을 선택을 하고(단계 380), 메시지의 채널 아이디에 따른 예에서 채널의 API를 호출한다(단계 382). The agent 128 calls the API of the channel in the example according to the selected channel in accordance with the subscription and on (step 380), channel ID of the message (step 382). API는 GUI나 사용자 컴퓨터의 다른 태양의 가입에 대한 데이터를 나타낸다(단계 384). API represents data for the subscription of another aspect of the GUI or the user's computer (step 384). 들어온 메시지에 대한 처리 절차는 상기에 서술된 암호화 과정을 역으로 하는 해독과정을 사용하며, 이 해독(암호화의 반대)는 라우터나 다른 네트워크 기기에서 수행되어 질 수 있다. Procedure for the incoming message and using the decrypting process of the encryption process described in the above in reverse, the decryption (inverse of the encryption) may be performed in a router or other network device.

와일드카드 절차 Wildcard Procedures

도 20은 와일드카드 방법 410의 플로우 차트이다. 20 is a flowchart of a method 410 wildcard. 이 방법은 가입을 위한 표현으로 와일드카드를 바꾸는데 사용되는 필터에 대한 일련의 라우팅 규칙을 적용하는 예를 설명한다. This method is an example of applying a series of filters that are used to change routing rules for wildcards in expressions for subscriptions. 방법 410은 예를 들어서 사용자 컴퓨터 122의 프로세서 134에 의해 실행하기 위해서 에이전트 128로 나타내어진 소프트웨어 모듈에서 구현될 수 있다. Method 410 may be implemented in a software module represented by the agent 128 in order to lift executed by the processor 134 of the user computer 122, for example. 대신에, 와일드카드는 지능형 라우터 92나 ASIC 91에 포함된 부합하는 기능의 소프트웨어 통제 하에서 프로세서 93에 의해 네트워크에서 수행될 수 있다. Alternatively, the wild card may be performed in the network by processor 93 under software control of the functions to meet with the intelligent router 92 or the ASIC 91. 와일드카드는 열린 영역이나 변수 길이 영역을 포함하며, 그 예는 표 21에 제공된다. Wildcards include open fields or variable length region, the following examples are provided in Table 21.

방법 410에서 에이전트 128이나 다른 기기는 와일드카드를 가진 가입을 제공받는다(단계 412). In the method 410, agent 128 or other device is provided with a subscription with a wildcard (step 412). 가입의 주제 길이는 출판하는 것이 만족된다면, 출판하는 사람에 의해 구체화 될 수 있다. The length of the subscription is subject to satisfaction if published, may be embodied by a person publishing. 그리고 예를 들어서 주제의 영역을 세고, 그것의 필드계산(길이)를 얻기 위해서 영역 주제는 출판하는 자의 컴퓨터에서 먼저 수행될 수 있다. For example, counting and the area of ​​the subject, the subject area in order to obtain its calculation of the field (the length) may be performed first in the computer's published.

에이전트 128은 필터 연산자에서 필드의 수를 세고(단계 414) 필드 길이=N의 새 규칙(필터)을 초기화한다(단계 416). Agent 128 is counting the number of fields in the filter operand (step 414) and a field length = initializes a new rule (filter) of N (step 416). 에이전트 128은 가입의 하위 필드를 가져오며, 필터 연산자 하위 필드 O[i]가 와일드카드인지를 결정한다(단계 420). The agent 128 is imported subfields of a sign-up, the filter operand sub-field O [i] determines whether a wildcard (step 420). 만약 필터 연산자 하위 필드가 와일드 카드가 아니면 에이전트 128은 영역[i]=O[i]인 연결조항을 규칙에 삽입한다(단계 422). If the filter operand sub-field is a wildcard, or the agent 128 is inserted into the connection provision area [i] = O [i] to the rule (step 422). 마약 필터 연산자에 더 많은 하위 영역이 있는 경우 (단계 424). If you have more sub-area drug filter operator (step 424). 에이전트 128은 단계 418로 돌아가서 추가적인 하위 필드를 수행한다. Agent 128 returns to step 418 and performs the additional sub-field. 매개변수 i는 이 예에서 영역 번호를 나타내는 정수이고 "i"는 필드를 나타낸다. Parameters, i is an integer that represents the zone number in this example is the "i" represents the field.

하위 필드를 수행하고 나서, 에이전트 128은 마지막 필터 연산자 하위 필드가 ">"인지 여부를 결정하고(단계 426), 만약 그렇다면, 영역의 길이>N-1로 제한된 길이를 변경한다(단계428). And then performing the sub-fields, agent 128 determines if the last filter operand sub-field ">" (step 426), and if so, change the limited length to a length> N-1 of the area (step 428). 와일드 카드 절차는 어떤 형태의 부호도 사용할 수 있고, ">"는 단지 그 예일 뿐이다. Wildcard procedure may also be the sign of some type, ">" that is merely an example. 이 예에서 "a.>"는 ab, acad 및 기타와 모든 수준에서 모든 하부 주제를 의미한다(예를 들어 abx, acx, abxy, 기타). In this example, "a.>" Refers to any subject in the lower ab, acad and other and all levels (e.g. abx, acx, abxy, etc). 다른 부호는 와일드카드의 다른 구현에 사용될 수 있다. Other marks may be used in different implementations of wildcards.

만일 필요하다면 에이전트 128은 전달된 규칙을 지능형 라우터나 다른 네트워크상의 기기로 전달한다(단계 430). Ten thousand and one is necessary, the agent 128 is delivered to the forwarding rule to intelligent routers or other devices on the network (step 430). 따라서 그 방법은 와일드카드를 포함하지 않으려는 규칙을 의미하는 와일드카드를 와일드카드가 아닌 것으로 바꾸려는 규칙에 따라 수행하기 위해서 하부 영역에서 반복된다. Therefore, the method is repeated in a lower region in order to perform in accordance with the rules to change a wildcard, which means that you do not want the rule including a wildcard that is not a wild card. 와일드카드의 변환은 네트워크상의 어디에서나 일어날 수 있으며, 예를 들어 가입자의 기계나 지능형 라우터에서도 일어날 수 있다. Conversion of wildcards can occur anywhere on the network, for example, it can occur at the subscriber's machine or an intelligent router. 변환은 전달된 규칙이 다른 기기로 전달된 하나의 기기에서 일어 날 수 있고, 다이내믹하게 일어날 수 있다. Transformation can happen in one day, the device is passed rules that are passed to other devices can occur dynamically.

표 23은 와일드카드를 처리하는 것에 대한 라우팅 방법의 표본들에 대해서 예와 함께 요약한 것이다. Table 23 is a summary in the examples with respect to the sample of the routing method of for processing wildcards. 이런 라우팅 방법은 예를 들어서 지능형 라우터나 다른 기기에서도 일어날 수 있고, 지능형 라우터로 전해진다. This routing method is picked up can take place for example in intelligent routers or other equipment, passed to an intelligent router. 부가하자면, 표 23의 라우팅 방법은 설명에 도움이 되기 위한 목적이고 와일드카드를 바꾸는 다른 라우팅 방법도 가능하다. Gritty addition, the method of routing table 23 can be other ways to change the route object and the wild card to be helpful in the description.

표 23 Table 23

경보 서비스 Alert Service

상기에 서술한 지능형 콘텐트 기반의 라우팅은 다른 장치에도 사용될 수 있으며, 그 중에 하나는 디지털 비디오 감시 시스템(DVSS)이 있다. One of the intelligent content-based routing described above can be used for other devices, one has a digital video surveillance system (DVSS) therein. 예컨대, 법 집행자 또는 보안 에이전시와 같은 사용자는 특정 로케이션에서 카메라로부터 비디오 클립을 가입한다. For example, users such as law enforcement or security agencies should join video clips from the camera at a specific location. 카메라는 디지털 비디오 칩을 캡쳐할 수 있으며, 네트워크 코어에서 가입에 따라 비디오 칩을 처리하고 컨텐츠 기반 라우팅을 구비한 인터넷과 같은 네트워크를 통해 이들 칩을 송신한다. The camera can be a digital video capture chip, the video processing chip according to the subscription in a network core, and transmits the chips through a network such as the Internet includes a content-based routing. 따라서, 사용자는 해당 비디오 칩을 수신하고, 이들의 필터링은 네트워크를 통해 분배된다. Thus, the user receives the video chip, and these filters are distributed over the network. 비디오 칩뿐만 아니라, 임의의 다른 타입의 컨텐츠는 예컨대 보안 침범, 화재 및 사기 검거를 포함하는 임의의 타입의 경고에 제공되도록 분배될 수 있다. As well as a video chip, any other type of content may be distributed such that for example provided to alert of any type including a security breaches, fire, and fraud arrested.

다른 예로서, 특정 카메라는 연관된 움직임 센서를 포함할 수 있다. As another example, particular cameras can include associated motion sensors. 움직임 검출시, 움직임 센서는 카메라를 트리거하여 네트워크에 동시에 취해진 비디오 칩을 송신하고, 비디오 칩을 가입자에게 라우팅하기 위해 컨텐츠 기반 라우팅을 이용한다. When the motion estimation, the motion sensor triggers the camera to transmit a video chip, taken at the same time to the network, and uses the content-based routing to route the video chip to the subscriber.

따라서, 상술한 컨텐츠 기반 라우팅은 비디오 칩의 처리 및 라우팅시 네트워크 부담을 크기 감소시킬 수 있다. Therefore, the above content-based routing can reduce the burden on the network size during processing and routing of the video chip. 예컨대, 모든 CCD(Charge Coupled Device)에 의해 생성된 비디오 신호는 DVR(Digital Video Recorder)에 의해 4개의 다른 목적지와, DVR에 의해 관리되는 로컬 스토리지와, 네트워크에 부착된 글로벌 스토리지와, DVSS 시스템과, iDSS 관리 서버에 기록을 요구한다. For example, any CCD (Charge Coupled Device) and a video signal DVR (Digital Video Recorder) management of local storage, and a global storage attached to the network by the four different destinations and a DVR by produced by, DVSS system, and , it requires records to iDSS management server. 이런 대형 데이터 볼륨을 운반하는데 필요한 네트워크 대역폭을 고려하면, iDSS에 의해 관리되는 CCD 또는 DVR의 전체량은 소비자의 용량 요건을 만족하지 않는다. Considering the network bandwidth necessary to carry such a large data volume, the total amount of the CCD or DVR managed by iDSS does not meet the capacity requirements of the consumer. 결국, 필요한 대역폭은 예컨대 매체 또는 큰 소비자에 대한 기술을 이용하여 제한된다. As a result, the required bandwidth is limited to, for example using a technique for medium or large customers. 도 21은 각 DVR이 4개 또는 16개의 CCD를 관리하는 하나의 감시 시스템의 전체 아키텍쳐도를 나타낸다. 21 shows the overall architecture diagram of a monitoring system for each DVR to manage four or sixteen CCD.

아키텍쳐 개요 : Architecture Overview:

도 22는 도 21에 도시된 감시 시스템의 용량을 개선하기 위해, 상술한 기술에 주로 기반을 둔 2개의 인헨스먼트를 도시한다. Figure 22 shows the two enhancement mainly based on the above-described technology to improve the capacity of the surveillance system shown in Figure 21. 도 22에 도시된 바와 같이, 제1 인헨스먼트는 DVR 백본 트래픽을 감소시키는 방법에 집중되고, 제2 인헨스먼트는 데이터 전달 효율을 증가시키기 위해 상술한 기능과 같은 컨텐츠 기반 라우팅 기능을 제공하는 z-박스로 언급되는 디바이스를 이용한다. As shown in Figure 22, the first enhancement is focused on how to reduce the DVR backbone traffic, second enhancement is to provide a content-based routing functions such as the functions described above to increase the data transmission efficiency use a device referred to as z- box.

DVR 백본에 대한 로컬 트래픽 감소 : Reduce local traffic on the DVR backbone:

데이터 분배 스킴에서의 비효율은 심각한 스캘러빌리티(scalability) 문제를 야기한다. Inefficiency in a data distributing scheme can cause serious scalability's kaelreo (scalability) problem. 즉, DVR에 의해 발생된 이미지 파일이 TCP 기반 프로토콜을 이용하여 다른 박스에 전달되기 때문에, 대역폭 소비는 LAN(Local Area Network)에 부착된 디바이스의 수에 따라 선형적으로 증가한다. That is, since the image files generated by the DVR is delivered to other boxes using TCP-based protocol, the bandwidth consumption increases linearly with the number of devices attached to the LAN (Local Area Network). iDSS의 일 양상에서, 동일한 스트리밍 비디오 데이터는 네트워킹된 스토리지(SAN 또는 NAS), iDSS 모니터, 및 원격 모니터링 소프트웨어인 각각의 DVSS에 전송될 필요가 있다. In one aspect of the iDSS, and the same streaming video data needs to be sent to a networked storage (SAN or NAS), iDSS monitor, and each DVSS is remote monitoring software.

이런 문제를 해결하기 위한 한 접근법은 각 DVR이 LAN상에 단지 하나의 데이터 스트림을 발행하며, 다른 네트워크 부착 디바이스가 가입의 결과로서 동일한 데이터 스트림을 수신하게 하는 것이다. One approach to solve this problem is to make each DVR is issued, and only a single data stream on a LAN, receives the same data stream as a result of other network attached device subscription. 따라서, DVR의 출력 레이트가 10 메가비트/초(Mbps)이라면, 동일 네트워크상에서 3개의 가입 디바이스를 가지려면 30Mbps 보다는 네트워크로부터 10Mbps만을 요구해야 한다. Therefore, if the output rate of the DVR 10 megabits / second (Mbps), to have three subscription device on the same network should require only a network from 10Mbps rather than 30Mbps.

이런 목적을 달성하기 위하여, 전술한 발행-가입, 이벤트 통신 API는 DVR 박스 및 DVR 데이터를 이용하는 임의의 디바이스(예컨대, iDSS, 글로벌 스토리지)상에서 이용될 수 있다. In order to achieve this purpose, the above-mentioned publication-subscription, the event communication API may be used on any device (e.g., iDSS, global storage) using the DVR boxes and DVR data. API는 단순하지만 효율적이고, 이는 IP 멀티캐스팅 및 회복 프로토콜을 이용할 수 있다. API is a simple, but effective, which can be used for IP multicasting and recovery protocols. API는 상술한 발행-가입 모델에 후행하여, 다른 구현이 코드를 변경시킬 필요는 없으나, API를 제공하는 라이브러리의 풀버전과 단순히 재링크될 수 있게 한다. API is above issue - the trailing subscription model, allowing other implementations do not need to change the code, and can be simply re-link to the full version of the library that provides an API.

DVSS에 대한 프락시 : Proxies for DVSS:

각각의 DVSS는 스트리밍 비디오 데이터를 수신하기 위하여 DVR 박스와의 일 접속(TCP-기반)을 행할 수 있다. Each DVSS can be performed for the one connection (TCP- based) of the DVR box to receive streaming video data. 스캘러빌리티는 전술한 바와 같은 동일한 이슈를 제공한다. 's kaelreo Stability provides the same issues as described above.

도 22를 참조하면, 이런 접근법은 예컨대 2 스테이지로서 기술될 수 있다. Referring to Figure 22, this approach can be described as an example second stage. 제1 스테이지, LAN측의 스테이지 1에서, 프락시 서버(예컨대, z-박스 1)는 모든 DVSS 아웃고잉 데이터(즉, DVR로부터 DVSS로 나가는 데이터)를 조작하는데 제공될 수 있다. The first stage may be provided to operate the first stage at the LAN side, a proxy server (e.g., z- box 1) are all DVSS outgoing data (i. E., A DVSS outgoing data from DVR). 이런 프락시 서버는 LAN에 대한 모든 DVR 데이터에 가입하고, 이 데이터를 외부 네트워크(예컨대, 인터넷)상에 발행한다. These proxy servers and join all DVR data of the LAN, to publish this data on an external network (eg, the Internet). DVSS는 이런 데이터에 가입한다. DVSS is affiliated with this data. 따라서, 프락시 서버, z-박스 1은 DVR로부터 데이터를 수집하는 가입자 에이전트(예컨대, 에이전트(128))와, 전술한 발행-가입 네트워크와 같은 발행-가입 네트워크를 통해 이런 데이터를 발행하는 발행자 에이전트(예컨대, 에이전트(36))를 제공한다. Thus, a proxy server, z- box 1 is a subscriber to acquire data from the DVR agent (e.g., agent 128), and the above-mentioned publication - publisher agent to issue this data over the network subscription (- published as subscription network for example, there is provided an agent 36).

비록 스테이지 1에서 트래픽이 LAN측에서 크게 감소될 수 있을지라도, 트래픽은 전형적인 비대칭 디지털 가입자 라인(ADSL)이 단지 64 킬로비트/초(kbps) 업링크 속도를 가질 때, 임의의 국가에서 특히 아웃고잉 링크를 계속해서 잼(jam)한다. Although be though to be the traffic on the Stage 1 greatly reduced at the LAN side, the traffic is a typical asymmetric digital subscriber line (ADSL) is only 64 kilobits / second (kbps) when it has an uplink rate, particularly outgoing from any country continue to be linked to jam (jam).

계속해서 도 22를 참조하면, 스테이지 2는 바람직하게 서비스 제공자의 머신 룸에서의 접속을 리스 아니면 획득하고, z-박스 2와 같은 제2 z-박스 디바이스의 로케이팅하는 것과 관련된다. Next referring to Figure 22, stage 2 preferably involves leasing, or obtain a connection in the machine room of the service provider, and the locating of the device, such as a box 2 z- z- box 2. 예컨대, z-박스 디바이스는 Hi-Net 백본상에 둘 수 있다. E.g., z- box device may be left on the Hi-Net backbone. 이런 디바이스로부터 z-박스 2로의 단일 접속(터널)은 소비자와의 약속에서 설정될 수 있다. A single connection to the z- box 2 from this device (tunnel) can be set in the appointment of the consumer.

이 경우, 소비자 프레미스에서의 z 박스 2는 가입자 에이전트(예컨대, 에이전트(128))로서 작용한다. In this case, z-box 2 at the customer premises serves as a subscriber agent (e. G., Agent 128). Z-박스 2는 또한 라우팅 데몬(예컨대, 라우팅 데몬(216))으로서 작용한다. Z- box 2 also acts as a routing daemon (e. G., Routing daemon 216). 가입자 에이전트로서, z-박스 2(예컨대, Hi-Net 머신 룸에서)는 바람직하게 DVR이 z-박스 1을 통해 발행하는 것에 가입한다. As the subscriber agent, z--box 2 (e. G., In the Hi-Net machine room) preferably Up to that DVR is issued through the z- box 1. z-박스 1과 z-박스 2사이에는 전술한 바와 같은 발행-가입 네트워크가 있다. Z- between box 1 and box 2, z- issued as described above - it can join the network. 이에 따라, z-박스 1은 DVR로부터 비디오를 발행하며, DVSS에 의해 요구되는 비디오를 가입한다. Accordingly, z- box 1 and issues a video from the DVR, joins the video required by the DVSS. 이런 방식으로, 경고 서비스의 데이터 전달 효율은 본 명세서에 기재된 이벤트 통지 시스템을 이용하여 증가된다. In this manner, the data delivery efficiency of the alert services is increased using the event notification system described herein. z-박스(예컨대, z-박스 1 및 z-박스 2)는 바람직하게 전술한 바와 같이 이런 발행-가입 네트워크를 통해 발행 및 가입하기 위한 모듈을 포함한다. Includes a publication, and a module for subscription through subscription network - z- box (e.g., z- z- box 1 and box 2), this is issued as described above preferably.

디지털 컨텐츠 전달 Delivery of digital content

전술한 지능형 컨텐츠-기반 라우팅은 비디오, 음악 및 소프트웨어 업데이트를 가입을 통해 라우팅하는 것을 포함하는 많은 수의 구현에서 사용될 수 있다. The aforementioned intelligent content-based routing can be used in many implementations, including those that are routed through a subscription to video, music, and software updates. 예컨대, 사용자는 안티-바이러스 소프트웨어와 같은 소프트웨어 업데이트를 가입할 수 있으며, 사용자에게 자동적으로 라우팅되는 업데이트를 가진다. For example, a user Anti-can sign up for software updates, such as virus software, has updated the user is automatically routed. 다른 예로서, 사용자는 특정 비디오 및 음악 컨텐츠를 가입할 수 있으며, 또한 사용자에 자동적으로 라우팅된 그런 가입 컨텐츠를 가진다. As another example, the user can subscribe to a specific video and music content, also have such subscription content that is automatically routed to the user. 비디오 및 음악은 예컨대 디지털 컨텐츠를 스트리밍할 때 수신될 수 있다. Videos and music can be received, for example when streaming digital content. 또한, 네트워크 코어에서 분배 처리는 실질적으로 소프트웨어, 비디오 및 음악 컨텐츠를 제공하는 서버에 대한 처리 부담을 경감시킨다. Further, the distribution processing in the network core, thereby substantially reducing the processing burden on servers providing the software, video, and music content. 따라서, 네트워크 대역폭은 다른 이점들중에서도 컨텐츠를 제공하기 위해 동일한 네트워크 하부구조를 이용하여 효율적으로 증가될 수 있다. Therefore, network bandwidth can be increased by effectively using the same network infrastructure to provide the content, among other advantages.

이런 라우팅을 구현하는 한 특정 아키텍쳐는 도 23에 도시된다. One particular architecture for implementing this routing is shown in Figure 23. 이 아키텍쳐가 바람직하게 네트워크 서비스 제공자의 공동-로케이션 오피스에 상주하는 캐시 서버들, C1 및 C2의 2 레벨을 가정함에 유의해야 한다. This architecture is preferably common for the network service provider - should be noted that the cache server that resides in the office location, assuming a second level of the C1 and C2. 그러나, 단지 C1 캐시 서버가 이용가능할 때만 이점이 달성될 수 있다. However, these benefits can only be achieved only when a cache server C1 used. 용어 C1 및 C2 캐시 서버는 전술한 바와 같이 분배된 네트워크 캐싱을 제공하는 서버를 언급한다(도 14-15 및 관련된 설명을 참조). The term C1 and C2 cache servers refer to providing a distributed network caching as described above, the server (see Fig. 14-15 and associated description). 아키텍쳐는 예컨대 2개의 상태로 전개된다. Architecture is for example deployed in the two states. C2 캐시 서버가 존재하지 않는다고 가정하는 제1 상태는 중앙 분배기(450)와 C1 캐시 서버간의 급속 파일 전송 메카니즘을 이용하여 대형 미디어 파일을 전송하는데 요구되는 시간 및 서버 로드를 감소시키는 것이다. First state to assume the C2 cache servers do not exist, is to reduce the server load and the time required to transmit the large media files using a rapid file transfer mechanism between the central distributor 450 and the C1 cache server. 이런 급속 파일 전송 메카니즘은 중앙 분배기(450)와 C1 캐시 서버 사이에 라우팅 박스(도 23에서 470)를 부가함에 의해 바람직하게 달성된다. This rapid file transfer mechanism is preferably achieved by (470 in FIG. 23), the center divider 450 and the C1 cache server to the routing box between the addition. 제2 상태는 사용자(예컨대, 사용자 머신(460))와 C2 캐시 서버 사이에 C2 캐시 서버에서의 라우팅 박스와, 전술한 가입 메카니즘을 부가하는 것이다. The second condition is to add a routing box and the above-described subscription mechanism in the C2 cache server between user (e. G., User machines 460) and C2 cache servers.

라우팅 박스를 이용하는 이점 : An advantage of using a routing box:

라우팅 박스(470)는 바람직하게 전술한 컨텐츠 기반 라우팅(예컨대, 전술한 지능형 라우터(92))를 구현하기 위한 모듈을 포함한다. The routing box 470 preferably include modules for implementing the content-based routing described above (e. G., The above-described intelligent router 92). 전술한 컨텐츠 기반 라우팅을 구현하는 라우팅 박스(470)를 이용하는 데에는 2개의 주요 이점이 있다. There using routing boxes 470 implementing the content-based routing described above has two main advantages. 이들 라우팅 박스(470)를 이용하는 급속 라우팅 및 파일 전송 솔루션은 FTP 또는 RCP와 같은 종래의 파일 전송 프로토콜을 통해 파일 전송을 5번까지 가속한다. Rapid using these routing boxes 470. The routing and file transfer solution will speed up the file transfer over a conventional file transfer protocol such as FTP or RCP up to 5 times. WAN을 통한 효율적인 멀티캐스트가 또한 달성될 수 있다. Efficient multicast across the WAN can also be achieved. 데이터가 중앙 로케이션에서 수신기의 그룹으로 전송될 때, 라우팅 솔루션은 네트워크 멀티캐스트 토폴로지를 이용하고 WAN을 통해 멀티캐스트 터널을 구성함에 의해 컨텐츠 전달을 가속하여 서버 로드 및 네트워크 대역폭 요건을 감소시킨다. When data is sent to a group of receivers in a central location, the routing solution reduces server load and network bandwidth requirements to accelerate content delivery By configuring a multicast tunnel through the WAN using a multicast network topology.

아키텍쳐 Architecture

미디어 컨텐츠는 중앙 분배기로부터 C1 캐시 서버로 전달된다. Media content is delivered to the C1 cache server from the central distributor. C1 캐시는 모든 컨텐츠 파일을 저장한다. The C1 cache stores all the content files. 각각의 C1 캐시 서버는 예컨대, 모든 컨텐츠를 저장하기 위한 테라 바이트의 디스크 공간을 요구한다. Each of the C1 cache server is, for example, requires disk space for TB for storing all the contents. 사용자(예컨대, 가입자 머신(122)과 같은 사용자 머신(460)을 이용하는)는 컨텐츠의 일부만을 저장하는 C2 캐시 서버로부터 컨텐츠를 요구한다. User (e. G., Using user machines 460 such as subscriber machine 122) requests the contents from the C2 cache servers, which store only part of the content. C2 캐시 서버는 예컨대 수백의 기가 바이트의 디스크 공간을 요구한다. C2 cache servers require for example, hundreds of gigabytes of disk space in bytes.

사용자와 C2 캐시간의 파일 전송 : Transfer files between the user and the C2 cache:

사용자(460)가 가입을 발행함에 의해 미디어 파일을 요구할 때, 이 요구는 C2 캐시 서버들중 하나에 의해 처리된다. When the user 460 requests a media file as issued by an affiliate, the request is processed by one of the C2 cache servers. 요구된 미디어 파일이 이미 C2 서버에 캐시되어 있다면, 파일은 바로 전달된다. If the requested media file is already cached in the C2 server, the file is transmitted immediately. 그렇지 않다면, 가입은 C1 캐시 서버로 전송되고, C1 캐시 서버로부터 C2 캐시 서버로 전송된다. If not, the subscriber is transferred to the C1 cache server, the cache server is sent from C1 to C2 cache servers.

C1 캐시에서 C2 캐시로의 프리캐싱 미디어 데이터 : Pre-caching media data from the C1 cache to cache C2:

사용자 가입 또는 가입의 패턴에 기초하여, 미디어 파일은 C1 캐시 서버로부터 C2 캐시 서버로 프리캐싱된다. Based on the pattern of the user's subscription or the subscription, the media file is pre-cached from the C1 cache server to the C2 cache server. 예컨대, C2 캐시 서버와 연결되는 사용자(460)가 주로 팝송에 관심이 있다면, C1 캐시 서버는 심지어 C2 캐시 서버상의 임의의 사용자(460)가 노래를 요구하기 전에 새로운 팝송을 C2 캐시 서버에 푸시할 수 있다. E.g., C2, if the user 460 is connected to the cache server of interest, mainly pop, C1 cache server even any user 460 on the C2 cache server can push a new pop song before requesting the song to the C2 cache server can.

구현 상태 : Implementation Status:

제1 상태는 예컨대 분배기(450)와 C1 캐시 서버간의 컨텐츠 라우팅을 갖는 급속 파일 전송 메카니즘을 설치하는 것과 관련된다. The first condition is for example associated with a rapid installation file transfer mechanism with content routing between the distributor 450 and the C1 cache server. C2 캐시 서버는 필요치 않다. C2 cache servers is not required. 이 경우, 모든 사용자(460)는 C1 캐시에 직접 연결된다. In this case, all users 460 is directly connected to the C1 cache. C1 캐시 서버는 분배기(450)로부터 규칙적으로 새로운 미디어 파일을 수신한다. C1 cache server receives a regular new media files from the distributor 450. 상태-1 아키텍쳐는 도 24에 도시된다. State -1 architecture is shown in Fig.

도 24에서 분배기(450)가 전술한 지능형 컨텐츠 기반 라우팅 기술에 의해 전력이 공급되는 라이팅 박스(470)에 새로운 미디어 파일을 단지 한번 전송한다. The new media files in the lighting box 470, which distributor (450) is powered by the intelligent content-based routing technology described above in Figure 24 is only transmitted once. 따라서, 분배기(450)의 로드는 감소된다. Therefore, the load of the distributor 450 is reduced. 라우팅 박스(470)는 급속 파일 전송 메카니즘을 이용하여 파일을 각각의 C1 캐시 서버에 전송한다. Routing box 470 sends the file by using a file transfer mechanism for rapid respective C1 cache server. 이 경우, 부가의 라우팅 박스가 수신기(460) 단에 요구되지 않는다. In this case, a routing box in addition is not required at the receiver 460 end. 대안적으로, 다른 타입의 서버는 C1 캐시 서버에 사용될 수 있다. Alternatively, other types of servers can be used in the C1 cache server.

도 25를 참조하면, 상태 2를 구현하는 일 실시예의 아키텍쳐가 도시된다. Referring to Figure 25, the architecture of one embodiment that implements the state 2 is shown. 본 예에서 상태 2는 바람직하게 데이터를 라우팅 및 전송하기 위한 커널(kernel) 구현 라우팅 박스(470)를 사용한다. State in the example 2 uses preferably kernel (kernel) implemented routing box 470 to route and send data. 커널층 솔루션은 버퍼 사본 및 컨텍스트 스위칭 시간을 덜 요구하기 때문에 파일 전송시 오버헤드를 더욱 감소시킨다. The kernel layer solution further reduces the overhead for file transfers, because requires less buffer copy and context switching times. 또한, 상태 2 솔루션은 C2 캐시 서버를 도 25에 도시된 바와 같이 아키텍쳐에 부가한다. Moreover, state 2 solution is added to the architecture as shown in Figure 25, the C2 cache servers. 이와 같이, 도시된대로, 라우팅 박스(470)는 바람직하게 서비스 제공자 네트워크에서 공동 로케이션을 이용하는 C2 사이트에 부가된다. Thus, as shown, routing boxes 470 are preferably added to the C2 sites using co-location in a service provider network. 이는 잠재적으로 수백배의 대역폭 감소를 갖는 대역폭 요건을 크게 감소시킨다. This greatly reduces the bandwidth requirements has the potential to be a hundred times bandwidth reduction.

도 25에 도시된 바와 같이, C1 캐시 서버와 C2 캐시 서버간에 전달된 파일은 C1 캐시 서버와 연관된 라우팅 박스(470)와 C2 캐시 서버와 연관된 라우팅 박스(470)와 연관된 라우팅 박스들을 통해 전달된다. As shown in Figure 25, the file transfer between the C1 cache servers and C2 cache servers are transferred via the routing boxes associated with the routing box 470, and the routing box 470 associated with the C2 cache servers associated with the C1 cache server. 이런 방식으로, C1과 C2 캐시 서버들간의 급속 라우팅 및 파일 전송 솔루션은 이들 라우팅 박스들(470)을 이용하여 달성된다. In this way, rapid routing and file transfer solution between the C1 and C2 cache servers is achieved using these routing boxes 470.

서비스 관리의 품질 Quality of Service Management

전술한 지능형 컨텐츠 기반 라우팅은 예컨대 특정 전달 보증을 갖는 컨텐츠를 라우팅하는데 사용될 수 있다. The above-described intelligent content-based routing may be used for example to route content with particular delivery guarantees. 예컨대, SLA(Service Level Agreement)에 기초하여, ISP 또는 컨텐츠 제공자는 QoS(Quality of Service)를 보증하기 위한 대역폭을 보유할 수 있다. For example, based on SLA (Service Level Agreement), ISP or content provider may have a bandwidth to guarantee QoS (Quality of Service). 이는 전술한 컨텐츠 기반 지능형 라우팅에 의해 효율적으로 달성될 수 있다. This may be accomplished efficiently by the content-based intelligent routing described above.

아키텍쳐 : Architecture:

컨텐츠 전달에서 QoSㅇ를 보증하기 위한 적어도 2개의 가능한 구성이 있다. There are at least two possible configurations for guaranteed QoS o in content delivery. 제1 구성은 많은 수의 링크를 하나 이상의 전화 회사(TELCO) 네트워크에 연결한다. A first arrangement connected to a large number of links to one or more telephone company (TELCO) networks. 제2 구성은 TELCO 네트워크에 대한 단지 하나의 링크를 사용한다. The second configuration uses only one link to a TELCO network. 도 26에 도시된 일 예에서는 라우팅 박스(R-박스)의 2 층이 있다. In the example shown in Figure 26 there are two layers of routing boxes (R- Boxes). R-박스 1은 데이터 패킷의 컨텐츠에 기초하여 R-박스 1 및 R-박스 2에 패킷을 라우팅한다. R- box 1 routes the packet to the box 1 and R- R- box 2 on the basis of the contents of the data packet. R-박스 2 및 R-박스 3은 데이터 패킷을 다른 네트워크 링크(예컨대, L1-L4)로 라우팅하며, 각각의 링크는 TELCO 네트워크로 연결된다. R- R- box 2 and box 3, and routes the data packets to other network link (e.g., L1-L4), each link is connected to a TELCO network. 프리미엄 소비자용 대역폭을 보유하기 위해, 최상위 SLA 소비자에 대해 발생된 데이터 패킷은 최상위 대역폭(최상위 우선순위)과의 링크로 라우팅되어, 이들 소비자에 대한 특정 QoS를 보장한다. In order to retain consumers for premium bandwidth, data packets generated for the top-level SLA customers are routed to the link with the highest bandwidth (highest priority) to ensure a certain QoS for these consumers.

도 27에 도시된 일 예로서, R-박스 1은 R-박스 2 및 R-박스 3으로 데이터 패킷을 라우팅한다. As one example shown in Figure 27, R- box 1 routes data packets to the R- and R- Box 2 Box 3. R-박스 2 및 R-박스 3은 데이터 패킷을 다른 통신 링크로 라우팅하여, R-박스 4에 연결한다. R- R- box 2 and box 3 is to route data packets to another communication link, and connected to the box 4 R-. R-박스 4는 각각의 링크의 QoS 레벨에 기초하여 4개의 링크로부터 데이터 패킷을 픽업한다. R- Box 4 picks up data packets from the four links based on the QoS level of each link. 그 후, R-박스 4는 네트워크 링크(예컨대, L5)를 통해 데이터 패킷을 인터넷 ISP로 전송한다. Then, R- box 4 sends a data packet to the ISP Internet via network link (e. G., L5). 각 링크에서 데이터를 픽업하기 위한 여러 알고리즘을 구현함에 의해, 시스템은 다수의 링크 구성 보다 양호한 QoS 관리를 위해 각 링크용 대역폭을 동적으로 할당할 수 있다. By implementing various algorithms for picking up data in each link, the system can dynamically allocate bandwidth for each link for good QoS management than the multiple link configuration.

기술 : Technology:

QoS 보증인은 전술한 지능형의 분배 컨텐츠 기반 라우팅 기술을 레버리지할 수 있다. QoS insurers can leverage the distributed content-based routing technology of the above-mentioned intelligent. 라우팅될 각 패킷은 컨텐츠 기반 라우팅에 태그된다. Each packet is routed is tagged in content-based routing. 솔루션은 다른 가능한 이점들 중에서도, 경제적으로 적당한 ASP/컨텐츠 제공자에 대한 QoS의 개발을 행한다. Solutions will be made in the development of QoS for, among other possible benefits, economically reasonable ASP / content providers.

이점 : Benefits:

솔루션은 인터넷 서비스 제공자(예컨대, IDCs) 또는 컨텐츠 제공자(예컨대, MOD(media on demand)에 제공될 수 있어, 이들의 SLA에 기초하여 다른 소비자에 대한 대역폭을 보유한다. Solution can be provided to Internet service providers (e. G., IDCs) or a content provider (for example, MOD (media on demand), based on their SLA reserves a bandwidth for the other consumer.

실시간 경고 : Real-time alerts:

경고는 다른 우선순위를 가질 수 있다. Warnings may have different priorities. 예컨대, 보안 및 화재 경고는 최상위 우선순위로 주어질 수 있으며, 새로운 경고는 하위 우선순위로 주어진다. For example, security and fire alarm can be given the highest priority, a new warning is given to a lower priority. QoS 라우팅이 없으면, 최상위 우선순위 경고는 ASP의 네트워크 대역폭이 하위 우선순위 경고 및 통신에 의해 점유될 수 있기 때문에, 실시간으로 그 가입자에 도달할 수 없게 된다. If there is no QoS routing, the highest priority alert, because the network bandwidth of ASP can be occupied by lower-priority alerts, and communications, it is unable to reach their subscribers in real time. 이런 솔루션은 이런 문제가 일어나는 것을 방지한다. This solution prevents such problems occurring. 또한, 경고는 SLA에 기초를 두고 각 소비자에 전송될 수 있다. In addition, the warning may be based on the SLA sent to each consumer. 프리미엄 소비자는 더 많이 비용을 지불하며, 이들에 대해 더 많은 대역폭이 할당된다. Premium consumers pay for more and more bandwidth is allocated for them.

실시간 데이터 전달 : Real-time data delivery:

VOD(voice on demand), MOD 또는 VoIP(voice over IP)와 같은 몇몇 어플리케이션에서, 대역폭 이용가능성은 어플리케이션의 품질에 영향을 미친다. In some applications, such as VOD (voice on demand), MOD, or VoIP (voice over IP), bandwidth availability affect the quality of the application. 이런 솔루션은 전술한 바와 같이 패킷의 컨텐츠를 조사함에 의해 메시지 타입에 기초하여 데이터 패킷을 라우팅할 수 있다. This solution can route data packets based on the message types by examining the contents of the packet, as described above. 대역폭이 민감한 어플리케이션에서, 이들 데이터 패킷은 상위 우선순위 링크로 라우팅될 수 있다. In the bandwidth-sensitive applications, these data packets can be routed to higher priority links. 메시지 타입뿐만 아니라, 데이터 패킷도 그들의 SLA 레벨에 기초하여 여러 가입자에 라우팅될 수 있다. As well as the message type, the data packet can also be routed to various subscribers based on their SLA levels. 상위 SLA 소비자용 패킷은 이런 솔루션을 이용하여 상위 우선순위 링크에 라우팅될 수 있다. Higher packet for SLA customers can be routed to higher priority links using these solutions.

소프트웨어 또는 안티 바이러스 업데이트는 이런 솔루션을 활용할 수 있다. Software or anti-virus updates can take advantage of these solutions. 예컨대, 안티 바이러스 파일은 최상위 우선순위 링크로 라우팅되어 안티 바이러스 업데이트를 보장하고, 오디오 드라이버 파일은 하위 우선순위 링크로 라우팅된다. For example, anti-virus file is the top priority is routed to the rank links ensure anti-virus updates and the audio driver file is routed to the low-priority link.

컨텐츠 기반 필터링 : Content-based filtering:

공동 로케이션 서비스를 이용하고 R-박스를 TELCO 네트워크내에 두면, 시스템은 도 28에 도시된 바와 같이 ISP 외부에서 필터링 및 동적 캐싱을 수행할 수 있다. Using the co-location service and leave the box in the R- TELCO network, the system can perform filtering and dynamic caching outside the ISP, as shown in Fig. TELCO내의 R-박스는 전술한 컨텐츠 필터링 기술에 기초하여 데이터를 필터링하는데 사용될 수 있어 IDC/ISP 네트워크로 가는 트래픽을 감소시킨다. R- box in the TELCO is can be used to filter data based on the content filtering technology described above to reduce the traffic going to the IDC / ISP network. 이는 DOS 공격 또는 비인가 데이터 액세스와 같은 해커 공격을 차단하는데 사용될 수 있다. This can be used to cut off the hacker attacks such as DOS attacks or unauthorized data access. 요구되는 컨텐츠를 조사할 수 있음으로, R-박스는 정적 및 동적 웹 데이터에 대한 캐시 박스일 수 있다. In May to investigate the content is required, R- box may be a cache box for static and dynamic web data. 이런 솔루션의 이점은 예컨대 보안, TELCO와 ISP간의 네트워크 대역폭의 절감, 및 ISP 서버의 로드의 절감을 포함한다. Advantages of this solution include, for example, a reduction in the security, reduce network bandwidth between the TELCO and ISP, and the ISP's server load.

선택적인 멀티캐스팅의 캐싱 Optional caching of multicasting

메시지 영속성은 메시지를 저장하고 차후에 이를 검색하는 능력이다. Message persistence is the ability to store messages and retrieve them at a later date. 많은 수의 특정 어플리케이션, 예컨대, 이메일은 일반적으로 네트워크를 통해 가는 메시지에 대한 메시지 영속성을 크게 요구한다. Number of specific applications, such as email messages is greatly required for the persistence usually go through a network message. 실제 조건에서, 네트워크의 고장이 없다면, 항상-연결된 가입자는 이들 특정 어플리케이션에 대해 요구되는 임의의 영속성을 초과해서 요구해서는 안된다. In real terms, if there is a network failure, always-connected subscriber should not be required to exceed any of the persistence required for these specific applications. 그러나, 실제로 메시지는, 여러 이유, 즉 (1) 네트워크내 또는 사용자측에서 일어나는 고장 또는 버퍼 오버플로우, 또는 (2) 사용자가 네트워크로부터 암시적인 단절을 행하고 일정 시간 주기 후에 다시 연결하는 등의 이유에 기인하여, 네트워크를 통해 주행하는 동안 "상실"될 수 있다. In practice, however, the message is due to several reasons, namely (1) network or a fault occurs in the user side or buffer overflow, or (2) reasons such as the user reconnects performs implicit disconnected from the network after a period predetermined period of time and it may be "lost" during the traveling through the network.

전술한 이벤트 통지 시스템의 영속성 모델은 2 레벨로 분할된다: 단기 영속성 및 장기 영속성. Persistence model of the above-mentioned event notification system is divided into two levels: short-term and long-term persistence persistence. 단기 영속성은 네트워크 혼잡 또는 단기 링크 실패에 기인하여 상실된 패킷으로부터 회복하도록 설계된다. Short-term persistence is designed for recovering from packet lost due to network congestion or short-term link failure. 장기 영속성은 예컨대, 사용자 접속의 상실 또는 ISP 네트워크 고장, 사용자 머신의 고장, 장기 네트워크 고장, 및/또는 다른 고장을 포함하는 다른 고장을 회복하도록 설계된다. Long-term persistence is designed to recover the other failure, including for example, the loss of user connections or ISP network failure, failure of user machines, long-term network failure, and / or other trouble. 이들 2개의 스킴의 예는 이하 후술된다. Examples of these two schemes are described below.

단기 지속성: 데이터 재송신 및 플로우 제어 Short-term persistence: Data retransmission and flow control

데이터 네트워크에서, 데이터 손실의 원인은 단순하게 링크 장애(failure) 및 버퍼 오버플로우로서 분류될 수 있다. In the data network, a cause of data loss can be simply classified as link failure (failure), and buffer overflow. 이벤트 통지 시스템에 대한 신뢰성있는 채널을 제공하기 위하여, 이들 이슈는 어드레스 지정될 필요가 있다. To provide reliable channels for the event notification system, these issues need to be specified address. 링크 장애에 대하여, 순방향 오류 정정(FEC) 스킴으로 링크 장애에 의해 야기되는 몇몇 오류를 정정하도록 하는 것이 가능하다. With respect to the link failure, it is possible to forward error correction (FEC) scheme to correct some errors caused by link failures. 그러나, 오류가 심각해서 FEC 스킴이 이를 정정할 수 없는 경우에 패킷을 복구할 스킴을 제공하는 것이 여전히 필요하다. However, it is still necessary that the error seriously by FEC schemes provide a scheme to recover the packet if you can not correct it. 버퍼 오버플로우에 대하여, 버퍼 플로우가 발생하는 것을 방지하는 것이 필요하다. With respect to the buffer overflow, it is necessary to prevent the buffer flow occurs. 이러한 문제를 피하기 위하여 데이터 네트워크에서 플로우 제어 스킴이 전형적으로 사용된다. In order to avoid this problem, a flow control scheme in a data network is typically used.

단기 지속성 스킴에서, 송신 제어 프로토콜(TCP) 터널은 바람직하게 홉-대-홉으로(hop-by-hop) 이벤트 라우터(예를 들어, 지능형 라우터 라우터(12))를 연결하는데 사용된다. In the short-term persistence scheme, Transmission Control Protocol (TCP) tunnels are preferably hop-to (e. G., Intelligent router, router 12) as hops (hop-by-hop) event router is used to connect. 신뢰성있는 전송 프로토콜(예를 들어, RMTP)을 이용하는 대신에 신뢰성있는 층-2 터널에 의존하는 이유는 다양하다. Reliable transport protocol (e. G., RMTP) reasons to rely on the layer-2 tunnel instead of using a reliable, which can vary. 이벤트 통지 시스템의 단기 지속성 스킴에서, 메시지가 필터 규칙을 만족하지 않으면, 메시지는 라우터에 의해 바람직하게 필터링될 수 있다. In the short-term persistence scheme in the event notification system, if the message does not satisfy the filter rule, the message may be preferably filtered by the router. 결과적으로, 수신 라우터는 소스 시퀀스 번호와 같은 스킴을 이용하여 일반적으로 패킷의 손실을 검출할 수 없다. As a result, the receiving router can not detect the loss of the general packet using a scheme such as source sequence number. 유사하게, 이러한 것은 확인(acknowledgement)의 과부하(즉, 확인-급증(ACK-explosion))를 야기할 것이기 때문에 이들이 수신하는 각 패킷을 확인하는 모든 수신 라우터에 대하여 바람직하지 못하다. Similarly, such a check is overloaded (acknowledgement) - is not desirable for all receiving routers to check each packet they receive because they give rise to (i. E., Determine surge (ACK-explosion)). 게다가, 버퍼 오버플로우를 피하기 위하여, 버퍼 공간의 라우터가 다하기 전에 라우터가 인접 라우터 전달 메시지를 늦추도록 요청할 수 있도록 단기 지속성 모델이 플로우 제어 스킴을 구현한다. In addition, to avoid the buffer overflow, short-term persistence model implements a flow control scheme to be requested so as to slow down the delivery message router is a router close before the buffer space of the router. 이들 스킴은 TCP에 의해 커버된다. These schemes are covered by TCP.

TCP 송신 정책 : 단기 지속성 스킴에 사용되는 TCP에서, 송신 윈도우는 바람직하게 재송신된 데이터의 트랙을 유지하도록 데이터 송신기에 대하여 위치상으로 바람직하게 사용된다. TCP transmission policy: In TCP used for the short-term persistence scheme, a transmission window is preferably used, preferably in a position with respect to the data transmitter to keep track of the re-transmission data. 송신 윈도우의 사용의 목적은 2가지이다. The purpose of use of the transmission window is two. 우선, 송신 윈도우는 데이터가 수신기에 의해 올바르게 수신된 것을 송신기가 명확하게 알도록 보장하고, 둘째로, 송신 윈도우가 채널 용량을 더 낫게 사용하도록 한다. First, the transmission window is that data is used to ensure, and to the second transmitter is clearly seen that the correctly received by the receiver, the transmission window, more preferably the channel capacity. TCP에서, 송신된 각각의 바이트 송신기는 무조건적으로 또는 명확하게(implicitly or explicitly) 확인될 것이 요구된다. In TCP, each byte sender sent is required to be sure to unconditionally or clear (implicitly or explicitly). 송신 윈도우는 송신기가 송신되고 확인된 데이터의 트랙을 유지하도록 돕는다. Transmission window helps to keep track of the transmitter is transmitted and confirmed data. 또한 송신기가 정지하고 확인된 이전 패킷을 대기하기 보다는 송신기가 송신 윈도우에서 데이터를 송신하도록 하므로 송신 윈도우는 채널 활용을 향상시킨다. Also, since the transmitter is a transmitter, rather than stop and wait for the previous packet to determine the transmission data from the transmission window transmitting window it improves channel utilization. 일단 이전 데이터가 확인되면, 윈도우가 자동적으로 진척된다. Once previous data is identified, a window is automatically progress to.

또한 수신기 윈도우는 TCP에서 관리된다. The receiver window is managed by TCP. 수신기 윈도우는 바람직하게 데이터 수신기단에서 이용가능한 버퍼 공간을 나타내는데 사용된다. The receiver window is preferably used to indicate the available buffer space used in the data receiver end. 그 이용가능한 버퍼 공간값은 송신기에 송신되어 어떻게 수신기측에서 버퍼의 오버플로우를 피하는지를 송신기가 알게 된다. The available buffer space value is found, the transmitter is transmitted to the transmitter how to avoid overflow the buffer at the receiver side.

TCP 정체 제어 : TCP는 단-대-단(end-to-end) 전송 프로토콜으로서 설계되었기 때문에, 단기 지속성 스킴에서 이용되는 TCP는 발행-인용(publish-subscribe) 네트워크 내측의 버퍼 오버플로우를 어드레스 지정한다. TCP congestion control: TCP is end-to-end (end-to-end) because it is designed as a transport protocol, TCP utilized in the short-term persistence scheme is issued - Disabled (publish-subscribe) specifies a buffer overflow in the network inside an address do. 이를 어드레스 지정하기 위하여, 단기 지속성 모델에 이용되는 TCP는, 바람직하게 제3 윈도우, 즉, 정체 윈도우를 사용한다. In order to assign it an address, TCP used for the short-term persistence model, preferably using a third-window, i.e., the congestion window. 정체 윈도우는 송신기가 경로를 따라 라우터 상의 최대 버퍼 공간을 추정하는데 사용된다. The congestion window is used to estimate the maximum buffer space on the routers along the path to the transmitter. 즉, 송신기가 패킷의 손실을 검출하거나 또는 역으로하는 경우에 정체 윈도우 크기는 감소된다. That is, when the transmitter is that a loss of a packet is detected or reverse the congestion window size is reduced to.

장기 지속성: 지속 채널에 대한 캐시 Cache for persistent channels: long-term sustainability

채널(예를 들어, 상술됨)은 지속적이거나 또는 실시간일 수 있다. Channel (for example, a described above) or may be a persistent or real-time. 실제 시간 채널은 일반적으로 실시간에만 유용하고 어떤 애플리케이션-특정 지속성 요건을 갖지 않는 데이터를 송신한다. Real time channel is normally only useful in real-time to any application - and send the data does not have a specific sustainability requirements. 지속 채널은 지속 시간 프레임 T 동안 네트워크를 통해 가로지르는 데이터를 저장한다. Persistent channel stores data traversing through network for the duration of the frame T. 다시 말해, 지속 채널 동안 지속성은 시간 프레임 T 동안 보장된다. In other words, persistence for a persistent channel is guaranteed for a time frame T. 데이터의 이 지속성은 다음을 통해 달성된다. This persistence of data is achieved through: 예를 들어, 채널의 지속 기간 동안 각 에지 노드에서 데이터의 캐시, 장애 조건하에서 사용자에게 투과성의 캐시로부터 데이터의 검색, 사용자가 캐시로부터 데이터를 명확하게 검색하도록 함, 라우터 장애에 대하여 보호하고 라우터간의 신회성있는 터널을 설정함으로써 네트워크 지속으로 통해 데이터의 플로우를 만듦, 및 복제를 통해 장애에 대한 채널 구성요소를 보호함이다. For example, for the duration of the channel, each edge of the data at the node cache, retrieve the user data from the transmitting cache, under fault conditions, should the user to explicitly retrieve data from the cache, between the protection and the router with respect to the router failure by setting the new tunnel-off in making the flow of data through the network, duration, and the protection of the channel components for a disorder also through replication.

그러므로, 이하에 설명될 바와 같이, 장기 지속성 스킴은 바람직하게 가입자가 충돌하고 지속 채널 동안 시간 프레임 T 내에 다시 되돌아올 때, 지속 채널로 등록된 가입자가 최종 "X" 시간 프레임 (X<T) 동안 네트워크에서 캐시된 구 데이터를 검색하는 것을 가능하게 한다. Thus, as will be described below, the long-term persistence scheme preferably when the subscriber crashes and comes back again within the time frame T for the persistent channel, for a registered subscriber to continue channel final "X" time frames (X <T) It makes it possible to retrieve the old data cached in the network.

장기 지속성 스킴에서, 가입자 애플리케이션(예를 들어, 애플리케이션(126))은 바람직하게 관련 가입자 에이전트(예를 들어, 에이전트(128))로부터 데이터(예를 들어, 메지시)를 명확하게 접속(pull)할 수 있다. In the long-term persistence scheme, access to the subscriber application (e.g., application 126) is preferably associated subscriber agent (e. G., Agent 128) data from (e. G., Champignon City) clear (pull) can do. 상술된 바와 같이, 에이전트는 프락시를 이용하거나 프락시로 구현될 수 있다. As described above, the agent may be used or implemented as a proxy, the proxy. 에이전트 또는 프락시가 네트워크 장애로부터 복구된 후에, 에이전트는 바람직하게 에지 라우터로부터 단절된 기간동안 캐시로부터 데이터를 투과성으로 검색한다. After the agent, or proxy, the recovery from a network failure, the agent retrieves the data from the cache for transmitting preferably disconnected period from the edge router. 또한, 가입자는 장기 퍼시스턴스 스킴에서 최종 T 타임프레임까지의 데이터만을 액세스할 수 있도록 허용되는 것이 바람직하다. In addition, the subscriber is preferably allowed to access only data up to the final time T in the long-term persistence scheme frame. 이를 위해 에이전트(또는 프락시)가 접속되는 에지 라우터에 관한 시간이 결정되는 것이 바람직하다. To this end, it is preferred that the agent (or proxy) is connected to two hours on the edge router is determined. 바람직하기로는 검색된 캐시 데이터는 대역외 송출되며 실시간을 보증할 필요는 없다. Preferably the retrieved cache data is not required to guarantee the real-time and sent out of band. 장기 퍼시스턴스 스킴의 실시예는 에지 라우터(예컨대 에지 라우터 16)와의 접속이 중단된 후 접속이 복구(crashes and comes back up again)된 또는 에지 라우터와의 접속을 잃은 기존의 가입자를 대상으로 한다. Embodiment of the long-term persistence scheme, for example, is an existing subscriber who lost the connection to the edge router (e.g., edge router 16) is connected with the recovery after the connection is interrupted (crashes and comes back up again), or the edge router to the destination. 신규 가입자는 캐시된 정보를 획득하지 못할 수도 있다. New subscribers may not be able to obtain the cached information.

퍼시스턴스의 정의 : 가입자에 대한 타임드(timed) 퍼시스턴스(타임프레임 T)는 발행-가입 네트워크로부터의 최종 타임프레임 T의 데이터를 검색할 수 있는 능력으로서 정의된다. The definition of persistence: Timed (timed) persistence of the subscriber (time frame T) is issued - is defined as the ability to retrieve the latest data of the time frame T from the subscription network. 가입자가 네트워크를 떠나면, 가입자의 부재중에 수신된 퍼시스턴트 채널의 데이터는 [데이터의 수신시부터] 타임프레임 T 동안 네트워크에 유지된다. The subscriber leaves the network, the data in the persistent channel reception to the subscriber's absence is held in the time frames T network for [from the time of receipt of the data. 타임프레임 T 중에 가입자가 복귀한다면 데이터를 잃어버리는 경우는 일어나지 않는다. If the subscriber is returned during the time frame T it does not happen if you lose your data. 그러나, 가입자가 T와 2T 타임프레임 사이에 복귀한다면 데이터를 잃어버리게 될 것이다. However, it will be discarded subscriber data loss if the return between T and 2T timeframe. 또한, 가입자가 2T 타임프레임 후에 복귀한다면 이전의 데이터에 대한 액세스를 보증하지 않는 것이 바람직하다. Further, it is preferable if the subscriber is returned after the 2T time frame that does not guarantee access to previous data.

이러한 정의에서는, 가입자가 떠난 후 타임프레임 T 동안 수신된 신규 데이터가 타임프레임 T의 만료 시간에 도달할 때까지는 유지될 수 있도록, 가입자측에 형성된 발행-가입 네트워크 트리가 가입자의 이탈 후 타임프레임 T 동안 유지된 다음에 제거될 수 있도록 하는 것이 요구된다. In this definition, the time frame T received new so that data can be maintained until it reaches the expiration time of the time frame T, issued formed on the subscriber side for after the subscriber has left-subscribe network tree, the time frame after separation of the subscriber T it can be removed to allow the following is required for maintaining.

아키텍처 : 도 29는 캐싱을 통해 퍼시스턴스를 제공하는 발행-가입 네트워크의 일부 구성요소를 도시한 블록도이다. Architecture: 29 is issued to provide persistence through caching is a block diagram illustrating some components of the affiliate network. 상기한 네트워크는 도시된 바와 같이 코어 라우팅 노드(548) 및 에지 라우팅 노드(545)를 포함한다. Wherein the network includes core routing nodes 548 and an edge routing node 545, as shown. 이들 라우팅 노드는 도 4에서 설명한 바와 같이 지능형 라우터 라우터(92; 에지 라우팅 노드와 함께 도시됨)와 통상의 백본 라우터(미도시)를 구비하는 것이 바람직하다. Preferably includes a; (shown with the edge routing node 92) to a conventional backbone router (not shown), these routing nodes intelligent router a router, as described in FIG. 퍼시스턴트 채널에 대한 캐싱을 수행하고자 하는 지능형 라우터 라우터(92)는 도 29에 도시된 바와 같이 같은 장소에 배치된 캐시 매니저(218)를 구비하는 것이 바람직하다. Percy intelligent router router 92 to perform caching on the instant channel preferably includes a cache manager (218) arranged in the same place as shown in Figure 29. 캐시 매니저(218)는 도 8과 관련하여 이미 설명한 바 있다. Cache manager 218 has already described in connection with FIG. 지능형 라우터 라우터(92)는 잃어버린 데이터를 검색하거나 라우터의 장애를 복구하는 단기 퍼시스턴스를 책임지는 것이 바람직하다. Intelligent Routers Routers (92) is preferably responsible for short persistence to retrieve or recover lost data of a router failure. 캐시 매니저(218)는 데이터를 캐시하여 채널의 장기 퍼시스턴스를 제공하는 기능을 수행한다. The cache manager 218 caches the data and performs a function to provide a long-term persistence of the channel. 캐시 매니저(218)는 이 데이터를 캐시(540)에 캐싱하는 것이 바람직하다. The cache manager 218 preferably caches this data in the cache 540. 캐시(540)는 메모리 및 디스크(미도시)를 구비하는 것이 바람직하다. Cache 540 preferably includes a memory and a disk (not shown).

지능형 라우터 라우터(92)에 대신하여, 캐시 매니저(218)로 하여금 장기 퍼시스턴스를 위해 데이터를 캐시하도록 함으로써, 캐시된 데이터를 인덱싱하는 계산 집중적인 동작을 별도의 프로세서에서 수행할 수 있으며, 이로 인해 라우팅 및 필터링 프로세서의 성능이 영향받지 않고, 캐시된 데이터를 정기적으로 디스크에 이동시키는 디스크 I/O 동작을 또다른 프로세서에서 수행할 수 있게 됨으로써, 라우팅과 필터링을 위한 사이클을 빼앗기지 않게 되며 에지 라우터를 규칙적인 I/O 동작을 수행하는데 할애할 필요가 없게 된다. In place of the intelligent router, router 92, allows the cache manager 218 may perform the computation intensive operation that by ensuring that cache data for long-term persistence, indexing the cached data on a separate processor, which causes the routing and a filter processor without the performance impact, the disk I / O operations to periodically go to the disk to the cache data or being able to be performed on a different processor, not taken away from the cycle for the routing and filtering, and the edge router rule carrying out of the I / O operation is not necessary to spend.

도 29에는 에이전트(128)가 도시되어 있으며, 이는 도 5에서 이미 설명한 바와 같이 가입자 머신(122)(도 29에는 미도시됨)에 존재하는 것이 바람직하다. 29, it is preferable that the agent 128 a is shown, which is present on the subscriber machine 122 as described above in Figure 5 (not shown FIG. 29). 에이전트(128)는 캐시 매니저(218)와 통신하여 캐시(540)로부터 데이터를 검색하고, 검색된 데이터를 수신하여 검색된 데이터를 정리(organize)하는 역할을 한다. Agent 128 is responsible for the cache manager 218 and the communication summarized the data retrieved by retrieving data from the cache 540, receiving the retrieved data (organize). 전술한 바와 같이 에이전트(128)는 프락시를 이용하거나 프락시로 구현될 수 있다. As described above, agent 128 may be used to implement a proxy or proxies.

장애가 없는 상황에는 에지 라우터 노드(545)에만 캐시 매니저(218)가 접속된다. The absence of a failure, the cache manager 218, only edge router nodes 545 are connected. 도 29에는 도시되지 않았지만 장기 퍼시스턴스 스킴은 장애를 고려한 것이므로, 에지 라우팅 노드(545)로부터의 제1 순위의 업스트림 코어 라우팅 노드(548)는 각각 데이터를 저장하는 캐시 매니저(218)를 포함하는 것이 바람직하다. Figure 29 is because considering Although not shown long-term persistence scheme is failure, the first upstream core routing node 548 of the order of from the edge routing node 545 is preferred to include a cache manager 218 that stores each data Do. 업스트림은 에이전트(128)(즉, 가입자 머신(122))로부터 멀어지는 방향이다. , Upstream agent 128 (i.e., the subscriber machine 122) is a direction away from. 제1 순위의 업스트림 코어 라우팅 노드는 에지 라우팅 노드(545)의 바로 상류의 라우팅 노드를 지칭한다. Upstream core routing node of the first priority refers to the routing nodes immediately upstream of the edge routing node 545. 발행-가입 네트워크는 복수의 제1 순위의 업스트림 코어 라우팅 노드를 포함하는 경우가 많지만, 도 29에는 하나의 제1 순위의 업스트림 코어 라우팅 노드, 즉 코어 라우팅 노드(548)를 도시하고 있다. Issue-Up Network many cases containing the upstream core routing node of the plurality of the first position, Fig. 29 shows an upstream core routing nodes, i.e., core routing node 548 of one of the first position. 전술한 바와 같이, 캐시 매니저(218)는 자신이 위치한 네트워크 노드에 있는 데이터에 대한 로컬 캐싱을 제공한다. As described above, the cache manager 218 provides for local caching of data at the network node itself is located. 따라서 예컨대 코어 라우팅 노드(548)를 포함한 각종 코어 라우팅 노드에 위치한 캐시 매니저(218)의 동작에 의해 네트워크 코드 전체에 있어서 데이터의 분산 캐싱이 실현된다. Thus, for example, it is realized in distributed caching of data throughout the network code by the operation of cache managers 218 located at various core routing nodes, including the core routing node 548. 이러한 분산 캐싱은 에지 라우팅 노드(545)에서의 캐싱에 대한 백업을 제공한다. This distributed caching provides a backup for the caching at edge routing node 545.

도 30은 업스트림 라우터(예컨대 코어 라우팅 노드 548)에서의 백업 캐싱을 도시한 도면이다. 30 is a diagram illustrating backup caching in an upstream router (e. G. Core routing node 548). 장기 퍼시스턴스 스킴에서, 각각의 캐시는 다음 업스트림 라우터의 캐시에 의해 백업되는 것이 바람직하다. In the long-term persistence scheme, each cache is preferably backed up by the next upstream router cache. 업스트림 캐시는 모든 인커밍 데이터를 저장하며 모든 후위 다운스트림 에지 라우터 캐시에 대한 백업으로서 기능한다. Upstream cache stores all incoming data and acts as a backup for all the succeeding downstream edge router caches. 업스트림 캐시의 데이터는 에지 라우터 캐시와 동일한 메커니즘에 따라 저장되는 것이 바람직하다. Data in upstream caches is preferably stored according to the same mechanism as the edge router cache.

이하, 도 31을 참조하면, 영구적 채널들을 캐시하기 위한 아키텍쳐는 네 개의 다른 모듈들에 걸친 스패닝(spanning) 기능을 제공하는 것이 바람직하다. Referring now to Figure 31, the architecture for caching a permanent channel is preferred to provide the spanning (spanning) functions over the four other modules. 네 개의 다른 모듈들은 이하를 포함한다: Four different modules include the following:

캐시 관리자(218) - 바람직하게는, 지능형 라우터 라우터(92)를 지나는 데이터의 저장을 맡고 있는 서버 프로세스; The cache manager 218-preferably a server in charge of storing the data in by the intelligent router, router 92 process;

라우터 캐시 API(552) - 바람직하게는, 지능형 라우터 라우터(92)로부터 캐시 관리자(218)로의 모든 제어 평면 액세스들(control plane accesses)을 맡고 있는 라이브러리, 예컨대, 캐시를 생성 및 소멸시킴; Router cache API (552) - preferably, all control plane accesses from the intelligent router, router 92 to the cache manager 218 library in charge of the (control plane accesses), for example, the cache Sikkim construction and destruction;

에이전트 (또는 프락시) 캐시 API(554) - 바람직하게는, 에이전트(128)(또는 에이전트(128) 프락시)로부터 캐시 관리자(218)로의 모든 제어 평면 액세스들을 맡고 있는 라이브러리, 예컨대, 데이터를 검색함; Agent (or proxy) cache API (554) - Preferably, the agent 128 (or agent 128 proxy), the library in charge of all control plane accesses to the cache manager 218 from, e. G., Search data; And

에이전트(128)(또는 프락시) - 바람직하게는, 캐시(546)로부터 검색된 데이터의 취합과 이 데이터의 조직화를 맡고 있음. The agent 128 (or proxy) preferably, that the charge of collecting and organizing the data from the data retrieved from cache 546.

도 31은 이들 네 개 모듈들의 상호동작을 나타낸다. 31 illustrates the interaction of these four modules. 에이전트(128) 및 지능형 라우터 라우터(92) 양측은 캐시 API 라이브러리 (552 및 554)를 통해 캐시를 액세스 하는 것이 바람직하다. Agent 128 and the intelligent router, the router 92, the two sides are preferably access the cache through the cache API libraries (552 and 554). 캐시 API 라이브러리(552 및 554)는 캐시(546)로의 초기화, 주제에 대한 캐시들의 생성 및 소멸, 캐시 어드레스의 검색, 및 가장 중요하게는 캐시(546)로부터의 데이터를 검색하기 위한 API를 제공한다. It provides an API for retrieving data from the cache 546, cache API Library (552 and 554) is initialized to the cache (546), the creation of the cache on the subject and destruction, search of the cache address, and the most important . 라우팅 데몬(216)은 캐시 API(552)를 지나지 않는 데이터 경로를 통해 캐시 관리자(218)로 데이터를 보내는 것이 바람직하다. Routing daemon 216 preferably sends data to the cache manager 218 through the data path does not pass the cache API (552). 캐시 API들(552 및 554)은 데이터 검색을 포함하는 모든 제어 메시지들에 대하여 제어 경로를 사용하는 것이 바람직하다. The cache API (552 and 554), it is preferable to use the control path for all control messages including data retrieval.

캐시 관리자 - 캐시 관리: 도 32를 참조하면, 캐시 관리자(218)가 새로운 채널을 만나는 경우, 캐시 관리자(218)는 채널에 대한 채널 관리자(150)를 취득하도록 정보 서버(예컨대, 전술한 서버들(152, 154, 및/또는 156))를 호출(invoke)한다. Cache Manager-Cache Management: the Referring to Figure 32, the cache manager 218 that when meeting new channel, the cache manager 218 is information server (e.g., the above-mentioned server to acquire the channel manager 150 for the channel call (invoke) to (152, 154, and / or 156)). 일단, 캐시 관리자(218)가 채널 관리자(150)의 어드레스를 취득하면, 캐시 관리자(218)는 채널 관리자(150)로부터 채널 특성을 검색하는 것이 바람직하다. Once the cache manager 218 obtains the address of the channel manager 150, the cache manager 218 is preferred to search for a channel characteristic from the channel manager 150. 채널 특성은, 예컨대, 채널 주제 트리(channel subject tree) 및 속성, 채널의 영구적 특성, 채널의 영구적 시간 프레임(T), 캐시의 균일성(grnularity) 등을 포함하는 것이 바람직하다. Channel characteristics, for example, it is preferred to include a channel subject tree (channel subject tree) and attributes, persistent properties of the channel, persistent time frame (T) of the channel, even in the cache sex (grnularity) and the like. 캐시 관리자(218)가 주어진 주제의 채널을 통한 데이터 흐름을 캐시하기 시작할 수 있기 전에, 그 주제의 캐시가 캐시 관리자(218)내에 생성될 필요가 있다. Before the cache manager 218 to start caching the data flow through the channels of a given topic, the topic of the cache needs to be created in the cache manager (218). 캐시 관리자(218)는 캐시 생성 메시지를 대기하다가, 이 메시지에 응답하여 주제 캐시를 생성한다. Cache manager 218 while waiting for the cache, generating a message in response to the message to create a theme cache. 다음, 이 주제 캐시는 요청에 따라 소멸, 중지, 또는 재개될 수 있다. Next, the subject cache can be destroyed, pause, or resume upon request. 도 32는 가입에 따른 캐시 생성을 나타낸다. 32 illustrates the cache generated in accordance with the subscription.

캐시 관리자-캐시 데이터 입력(Cache Manager - Cache Data Input) : Cache Manager - Cache data entry (Cache Manager - Cache Data Input) :

캐시 관리자(218)는 지능형 라우터(92)로 유입되는 데이터를 여러 방식으로 액세스하는 것이 바람직하다. The cache manager 218 preferably has access to the data that is flowing into the intelligent router 92 in a number of ways. 예를 들어, 지능형 라우터(92)의 입중계 링크(incoming link)상의 모든 데이터 또한 캐시 관리자(218)에게로 전달되는 경우의 IP형 솔루션(IP like solution); For example, IP-type solutions, in the case where all data is also forwarded to the cache manager 218 on the incoming links (incoming link) of an intelligent router (92) (IP like solution); (지능형 라우터(92)의 네트워크상에서 이동중인 모든 패킷들에 대해 캐시 관리자(218)이 주의를 기울이게 되는) 스니핑 메카니즘을 이용하며; And using a sniffing mechanism (Intelligent cache for all the packets in transit on the network of the router 92 manager 218 that the tilting attention); 필터링 후, 상기 지능형 라우터(92)는 하나 이상의 링크로의 전파(propagate)가 요구되는 각각의 메시지를 캐시(554)에 전달하며; After filtering, the intelligent router 92 forwards each message that is propagated (propagate) to one or more link request to the cache 554, and; 상기 캐시 관리자(218)는 모든 데이터가 지능형 라우터(92)에 이르도록 하기 위해 가입자(subscriber)처럼 동작하게 된다. The cache manager 218 is to act as a subscriber (subscriber) in order to ensure that all data is in said intelligent router 92.

캐시 관리자 - 캐시 데이터 스토리지 : 도 33을 참조하면, 캐시 관리자(218)는 여러 방식, 예를 들어, 채널 id, 주제, 발행자 id(publisher id), 타임 스탬프, 타임 그레인들(G), 주 캐싱 속성(primary cachingg attribute), (장애(failure)에 대해 캐싱이 수행되는 특수한 경우에서의) 링크 혹은 기타 방식을 이용하여 캐시(546)의 데이터를 색인화한다. Cache Manager-Cache Data Storage: With reference to FIG. 33, the cache manager 218 different ways, for example, channel id, subject, publisher id (publisher id), timestamp, time grains of (G), the main caching using the attributes (primary cachingg attribute), links or other means (in special cases where caching is performed for the failure (failure)) to index the data in the cache (546). 데이터는 파일 시스템 혹은 메모리에 계층적 디렉토리 구조(hierarchical directory structure)로 색인화되어 저장된다. Data is stored is indexed by a hierarchical directory structure (hierarchical directory structure) to a file system or memory. 데이터는 메모리에 캐싱된 후 주기적으로 디스크로 이동된다. The data is periodically moved to disk and then cached in memory. 메모리내의 캐싱은 "G" 타임 그레인이 지속되는 동안에 한해 이루어진다. In-memory caching is done only during the time the grain has sustained "G". 타임 G 가 소멸된 이후에는, 트리내의 특정 브렌치에 관련된 모든 데이터는 그 브렌치가 그 브렌치에 대해 최초(earliest)의 파일을 오버라이트(overwriting)하는 상태에서 파일로 이동되는 것이 바람직하다. In the time since G is destroyed, all data related to a particular branch in the tree it is preferable that the branch is moved to the file in a state in which the overwrite (overwriting) the file of the first (earliest) for that branch. (G는 슬라이딩 윈도우로는 구현되지 않지만, 절대 윈도우(absolute window)로는 구현되는 것이 바람직하며, 이는 각각의 메시지를 디스크에 개별적으로 기록하게 되면 비용 상승을 유발하게 되고, 동작시 디스크에 G 인터벌 전체를 기록하는 것이 보다 효율적이기 때문이다.) 도 3은 전형적인 색인화 트리를 나타내는 도면이다. (G is a sliding window is not implemented, the total absolute window (absolute window) roneun preferably is implemented, which is causing an increase in cost when individually recorded in each of the messages to disk, G interval to the operation during disk it is because it is more efficient for recording.) Figure 3 is a diagram showing an exemplary indexing tree. 지속되는 동안의 데이터를 캐싱하는 경우에는 도 33의 제1 색인화 트리가 사용되는 것이 바람직하다. When caching data for that duration, it is preferred that the first indexing tree in FIG. 33 uses.

도 33을 계속 참조해보면, 주제는 계층으로 저장되는 것이 바람직하며, 여기서 "a"는 "ab", "ac""ad" 등과 같은 주제들의 페어런트(parent)이다, 캐시 관리자(218)는 모든 주제들을 이들의 대응하는 파일 위치들에 맵핑하는 캐시(546)를 위해 해시 테이블(hash table)을 유지하는 것이 바람직하다. FIG haebomyeon still 33, the subject is preferably stored in a hierarchy, where "a" is the parent (parent) of the subject such as "ab", "ac" "ad", the cache manager 218 all subjects for the cache 546 mapping to those of a corresponding file position that the it is desirable to maintain a hash table (hash table). 어느 경우에는, 캐시(546)는 그 링크 중의 하나에서 다운스트림 라우터(예를 들어, 에지 라우팅 노드(545))의 장애를 업스트림 라우터(예를 들어, 코어 라우팅 노드(548))가 탐지했을 경우 장애 상태하에서 데이터를 저장하는 것이 요구될 수도 있다. In either case, if the cache 546 (e. G., Edge routing node 545) downstream router in one of the link (e. G., Core routing node 548), the upstream router the failure of the detection it may be required to store data under failure conditions. 복구(recovery)를 위한 첫번째 접근 방식은 다운스트림 라우터(수분 정도 소요될 수도 있음)를 재시동하는 것이다. The first approach to the recovery (recovery) is to restart the downstream router (it may take several minutes). 다운스트림 라우터가 재시동되고 있을 경우, 업스트림 라우터는 그 링크로 하향 전달되고 있는 데이터를 캐싱할 필요가 있을 것이다. If the downstream router is rebooted, the upstream router will need to cache the data that is being transmitted to the downstream link. 이러한 캐시(예를 들어, 도 33의 소위 FM Cache)는 발신(outgoing) 중인 링크들에서 색인화되는 것이 바람직하다. This cache (e. G., A so-called FM Cache in FIG. 33) is preferably indexed in the origination (outgoing) are linked.

캐시 관리자 - 가비지 수집 : 채널이 지속적이지 않으면, 캐시(546)는 그 데이터를 저장하지 않고 즉시 놓아 버린다. Cache Manager - Garbage Collection: If the channel is not persistent, the cache 546 discards released immediately without saving the data. 채널이 지속적이면, 캐시(546)는 데이터를 저장하게 된다. If the channel is persistent, the cache 546 is to store data. 특정 채널에 대한 지속 시간 프레임 "T"는 각각의 사이즈 G인 N개의 시간 그레인들로 분할된다. The duration for a particular channel frame "T" is divided into N time grains each of size G. 메모리의 캐슁은 G의 기간동안만을 위한 것이다. Memory caching is intended only for the duration of G. 캐쉬 매니저가 시간 간격 G가 지나갔다고 결정한 후에, 데이터를 디스크로 이동시킨다. After the cache manager determines went through a time interval G, and moves the data to the disk. 캐쉬 매니저(218)는 지속적인 시간 프레임 간격 T의 기간 동안 데이터를 디스크에 저장한다. The cache manager 218 stores the data on the disk during the constant time interval T frame period.

시간 간격 G에 대응하는 데이터는, 일단 시간이 채널 + 간격의 상한에 대한 지속적인 타임아웃(T)보다 크게 되면 디스크로부터 삭제된다. Time data corresponding to the gap G is, once the time constant is larger than the timeout (T) for the channel + the upper limit of the interval is deleted from the disk. 이것을 더욱 잘 이해하기 위해서, 채널이 2시간의 T를 갖는다고 가정한다. To understand this better, it is assumed that the channel has a T of 2 hours. 예로서, 캐쉬 매니저(218)는 15분의 시간 단위(time granularity) G를 사용한다. For example, the cache manager 218 uses a 15-minute unit of time (time granularity) G. 디스크로부터 데이터를 삭제하기 위해서, 바람직하게 사용된 정책은 시간 간격 G(15분) 동안 캐쉬된 최종 데이터가 T(2시간) 동안 저장되었던 경우에, 그 15분 간격 중에 캐쉬된 전체 데이터는 폐기될 것이다. In order to delete the data from the disk, the preferably used policy, if the last data cached during a time interval G (15 minutes) has been stored for T (2 hours), the entire data cached during that 15-minute interval will be discarded will be. 본 예에서, 각각의 15분 간격 중에 캐쉬된 데이터는 데이터의 블록이다. In this example, the data cached during each 15-minute interval is a block of data. 지속적인 시간 프레임 T가 N 간격들로 분할되면, 시간의 임의의 포인트에서 각 주제에 대해 캐쉬(546)에 N+1개의 블럭들의 데이터가 있을 것이다(디스크 상의 N개 및 메모리의 1개). When the continuous time frame T is divided into N intervals, it will have the data of N + 1 of the block in the cache 546 for each subject at any point of time (N 1 of the memory on the disk and one dog).

캐쉬 매니저 - 캐쉬 데이터 검색 : 이제 도 34를 참조하면, 에이전트(128)(또는 프락시)는 바람직하게는 GetCache 동작을 호출하여 데이터가 현재 시간으로부터 시간 "T"로 돌아가게 한다. Cache Manager-Cache Data Retrieval: With reference now to Figure 34, is particularly preferred agent 128 (or proxy) to return to the time "T" from the current time data by calling the GetCache operation. GetCache 동작을 호출하기 위해 에이전트(128)가 접속하는 캐쉬 매니저(218)는 도 34에서 포탈 캐쉬(Portal Cache)로 라벨 붙여진다. To invoke the GetCache operation cache manager 218 to the agent 128 is connected to the label is pasted to the portal cache (Portal Cache) in FIG. 34. 라우터 또는 에이전트(128)의 실패/접속해제에 기인하여, 포탈 캐쉬는 에이전트(128)가 요청한 모든 데이터를 가지지 않을 수도 있다. Due to a failed release / connect the routers or the agent 128, the portal cache may not have all the data requested by the agent 128. 이 경우에, 그외의 모든 캐쉬들(예를 들어, 업스트림 캐쉬들)로부터 데이터를 검색하고, 데이터를 대조하여 그것을 에이전트(128)에게 리턴하는 것이 포탈 캐쉬의 역할이다. In this case, all of the other cache, that is the job of the portal cache to retrieve data from (e. G., Upstream caches), and collates the data return it to the agent 128. 도 34는 상이한 시간 스탬프들(TS1, TS2 및 TS3 )에 대해 다수의 캐쉬들(A, B 및 C)로부터의 검색을 도시한다. 34 shows a retrieval from multiple caches for different time stamp (TS1, TS2 and TS3) (A, B and C).

캐쉬 매니저(218)는 바람직하게는 시간 단위 G의 블럭들의 데이터만을 검색할 수 있다. Cache manager 218 may preferably be to search only the data of the blocks of the time unit G. 그래서 에이전트(128)는 그것이 예상하거나 또는 요청하는 것보다 더 많은 데이터를 얻을 수 있다. So, Agent 128 is that it can get more data than expected or requested. 또한, 다수의 캐쉬로부터의 검색 중에, 캐쉬들 사이에서 일부 중첩되는 간격들이 있을 수 있으므로, 에이전트(128)는 데이터의 복사본을 보게될 것이며, 에이전트(128)는 캐쉬에 의해 제공된 데이터 스트림에 대해 복사 억제를 해야만 한다. In addition, during retrieval from multiple caches, there may be that interval of some overlap between the cache, agent 128 will be to see a copy of the data, the agent 128 is copied to the data stream provided by the cache, It must inhibition.

캐쉬 매니저와 그외의 모듈들과의 상호작용 : 캐쉬 매니저(218)는 바람직하게는, 도 35에 도시된 바와 같이, 이벤트 통지 시스템 인프라구조의 몇개의 모듈들과 상호작용한다. Interactions with the cache manager and the other of the modules: the cache manager 218 Preferably, the interaction with some of the modules in the event notification system infrastructure, as shown in Figure 35. 캐쉬 매니저(218)는 새로운 채널(생성 캐쉬 시간에)을 만나게 되는 경우에, 바람직하게는 정보 서버(Information Server)(550)를 호출하여 그 채널에 대한 채널 매니저(150)를 얻는다. The cache manager 218 encounters a new channel when the (generated in the cache time), preferably invokes the Information Server (Information Server) (550) obtains the channel manager 150 for the channel. 일단 캐쉬 매니저(218)가 채널 매니저(150)의 어드레스를 가지면, 캐쉬 매니저(218)는 채널 매니저(150)로부터 바람직하게는 채널 특성들을 얻는다. Once the cache manager 218 is Having an address of a channel manager 150, the cache manager 218 so that a channel characteristic is preferably from the channel manager 150. 관리자 모듈(552)은 바람직하게는 캐슁의 단위와 같은 일부 특성들을 설정/변경하도록 허용된다. Manager module 552 is preferably allowed to set / modify some properties, such as the unit of caching. 관리자 모듈(552)은 바람직하게는 채널 캐쉬를 수동적으로 생성하거나 삭제하는 것이 허용되기도 한다. Manager module 552 is preferably also allowed to manually create or delete channel cache.

에이전트 캐쉬 API - 애플리케이션 - 에이전트 상호작용 : 애플리케이션(예를 들어, 애플리케이션(216))은 바람직하게는 에이전트 캐쉬 API(554)를 호출하여 소정의 주제 및 필터를 가진 캐쉬(546)를 얻는다. Agent Cache API-Application-Agent Interaction: The application (e. G., Application 216) preferably invokes the agent cache API (554) to obtain the cache 546 with a given subject and filter. 바람직하게는, 애플리케이션은 그것이 이미 그 데이타에 가입되었다면, 캐쉬(546)로부터의 데이터만을 검색할 수 있다. Preferably, if the application is that it can already subscribe to its data, it searches only the data from the cache (546). 에이전트 캐쉬 API(554)는 바람직하게는 2개의 API를 실제적으로 제공한다. Agent Cache API (554) preferably provides two API in practice.

제1 API는 비가입된 애플리케이션이 동시에 캐쉬에 가입하고 검색할 수 있게 한다. Article 1 API allows a non-subscription application to join at the same time, the cache is searched. "fifo" 플래그가 설정되면, 가입을 생성하여 경계 라우터 노드(545)로 전송한다. When the "fifo" flag is set, to create a join transmits to the border router node 545. 그러나, 가입은 바람직하게는 즉시 "일시정지" 모드로 들어간다. However, the subscriber is preferably immediately enters the "pause" mode. 에이전트(128)가 모든 캐쉬된 데이터를 수신한 후에, 에이전트(128)는 먼저 모든 캐쉬된 데이터를 전달하고, 데이터의 모든 발행자(publisher)에 대해 보여지지 않는 최종 시퀀스를 기억하고, 그 다음에 각각의 발행자들에 대해 보여지지 않는 최종 시퀀스로부터 일시정지된 데이터를 전달한다. After the agent 128 has received all cached data, the agent 128 first passes all cached data, and stores the last sequence not seen for all issuers (publisher) of data, each to the next of it passes the data temporarily suspended from the last sequence not seen for the issuer.

제2 API에서는, 애플리케이션이 이미 일부 데이터에 가입되었으며 캐쉬 데이터를 요청하고 있다고 가정한다. In the 2 API, it assumes that an application has already been signed up for some of the data and requests the cached data. 이 경우에, 애플리케이션은 캐쉬 데이터에 대해 차례로 나열될 수 없는 일부 데이터가 이미 전달되었다. In this case, the application, some data can not be serialized for cache data has already been delivered. 그러므로, 이 경우의 "fifo" 플래그는 오직, 캐쉬(546)로부터 검색된 데이터가 그 자체내에서 차례로 나열되어야만 하며, 정규의 데이터 스트림에 걸쳐 나열될 필요는 없다는 것을 나타낼 뿐이다. Therefore, in this case the "fifo" flag only, the data retrieved from the cache (546), and must be listed sequentially in itself, only indicate that there is a need to be listed over the regular stream of data.

에이전트(128)는 바람직하게는 데이터의 하나의 큰 블록의 모든 이벤트들을 검색한다. Agent 128 preferably retrieves all the events in one big block of data. 캐쉬 API(554)로부터 데이터를 검색한 후에, 에이전트(128)는 바람직하게는 콜백 동작을 호출하기 전에 데이터 상에서 이하의 동작들을 행할 필요가 있다(위를 참조): 통지 리스트로부터 통지를 작성; After retrieving the data from the Cache API (554), the agent 128 preferably needs before invoking a callback operation performed the following operation on the data (see above): creates a notification from the notification list; 각각의 발행자에 대한 최종 시퀀스 번호를 기억 및 필터링. Storage and filtering the final sequence number for each issuer. 에이전트(128)가 모든 이벤트들을 콜백으로 밀어내기를 행한 경우, 그것은 바람직하게는 콜백에게 DoneCache 이벤트를 전송하여, 모든 캐쉬된 데이터가 전달되었음을 나타낸다. If the agent 128 performs the pushing all the events to the callback, it preferably sends a callback to the DoneCache event, indicating that all cached data has been delivered. 이점에 있어서, 가입이 FIFO이고 정규 데이터가 일시정지되면, 에이전트(128)는 바람직하게는 모든 일시정지된 통지들을 전송한다. In this respect, if the subscription is FIFO and the regular data is paused, the agent 128 preferably transmits a stop notification every date. 에이전트(128)는 오직 시퀀스 번호들이 캐쉬 데이터의 최종 시퀀스 번호보다 큰 통지들만을 전달한다. Agent 128 only must the sequence number are delivered to only the large notice than the last sequence number in the cached data.

에이전트 캐쉬 API 대 캐쉬 상호작용 : 가입자가 캐쉬된 데이터를 요청하는 경우에, 에이전트(128) 종단(554)의 캐쉬 API는 바람직하게는 먼저 에이전트(128)가 접속되었던 경계 라우터들의 히스토리를 찾아보고 GetCache 요청에서 제공된 시간 간격을 사용하여 리스트를 필터링한다. Agent Cache API for Cache Interaction: When the subscriber asks for the cached data, the agent 128 end 554, the cache API is preferably first to browse the history of the border router that was the agent 128 connected GetCache of using the time interval provided by the request to filter the list. API(554)는 그 다음에 GetCache(채널, 주제, 필터, local_pubs, time_period, fifo, 라우터들의 어레이) 메시지를 그것이 접속되어 있는 최종 경계 캐쉬로 전송한다. API (554) transmits the GetCache (the array of channels, subject, filters, local_pubs, time_period, fifo, routers) message to the next to the final boundary cache with which it is connected. 캐쉬 매니저(218)는 바람직하게는 채널 id, 주제 및 타임스탬프에 기초하여 데이터를 꺼내어, 그 데이터를 에이전트(128)로 되돌린다. Cache manager 218 are preferably based on the channel id, subject and timestamp data is taken out, thereby returning the data to the agent 128. 캐쉬 매니저(218)가 데이터를 밀어내는 것을 완료한 경우에, 그것은 DoneCache 이벤트를 Cache-API에 전송하여 데이터 전송이 완료되었음을 나타낸다. When completing the cache manager 218 to push the data, it indicates that the data transfer is completed by sending the event to the Cache-API DoneCache.

캐쉬 매니저(218)가 데이터를 국부적으로 찾지 않으면, 캐쉬 매니저(218)는 에이전트(128)에 의해 제공된 "라우터들의 리스트"를 사용하여, 필요한 데이터를 배치시킨다. If the cache manager 218 to find the data locally, the cache manager 218 uses a "list of routers" provided by the agent 128, thereby placing the necessary data. 일단 캐쉬 매니저(218)가 모든 필요한 데이터를 수집하면, 캐쉬 매니저(218)는 필요한 데이터를 대조하여, 그것을 에이전트(128)에게 전송하기 전에 그것에 대한 복사 억제를 행한다. Once the cache manager 218 has collected all the necessary data, the cache manager 218 performs the copy inhibit on it collates the necessary data, prior to sending it to the agent (128).

캐쉬 접속 히스토리 : 캐쉬(546)로부터의 데이터를 검색할 수 있기 위해, 업스트림 캐쉬뿐 아니라 에지 모두에 대해 캐쉬 접속 히스토리가 에이전트(128)에서 유지되는 것이 바람직하다. Cache connection history: in order to be able to retrieve data from the cache 546, the cache connection history for both the upstream caches, as well as the edge is preferably maintained at the agent 128. 이러한 정보는 에이전트(128) 셧다운(shutdown) 및 충돌(crash)에 걸쳐서 필요하기 때문에, 이러한 정보는 계속해서 파일 내에 유지되어야 한다. This information is required because the agent over a period of 128 Shutdown (shutdown) and collision (crash), this information will continue to be held in the file. 디스크 상의 캐쉬 접속 히스토리는 다음 파일들 및 포맷에 저장되는 것이 바람직하다. Cache connection history on the disk is preferably stored in the following files and format.

에지 캐쉬 위치들: 에지 캐쉬의 위치(예를 들어, 에지 라우팅 노드(546)에 있는 캐쉬(546))는 채널 관리자/채널 라이브러리로부터 얻어지는 것이 바람직하다. The edge cache locations: The location of the edge cache (e.g., cache 546 at the edge routing node 546), it is preferably obtained from the channel manager / channel library. 이것은 부팅 시간에 및 에지 캐쉬가 변하는 임의의 후속 시간, 즉 접속 소실/회복되는 시간, 접속이 이동되는 시간에 발생한다. This occurs in time, a connection is to be moved any subsequent time varying the boot time and the edge cache, that is, connection loss / recovery. 디스패쳐(dispatcher)는 에지 캐쉬 접속시 임의의 변화들을 에이전트(128)에게 통지하고 그 후 이러한 변화들은 에이전트(128) 캐쉬 라이브러리로 전달된다. The dispatcher (dispatcher) is such a change notice any change in the connection to the edge caching agent 128, and then are transmitted to the agent 128 cache library. 변화가 발생할 때마다 변화는 유지된다. Whenever a change occurs changes are maintained.

영구 저장: CACHE_ROOT/channel_id/Channel - 캐쉬된 데이터를 위한 예시적인 경로. An exemplary path for the cached data - CACHE_ROOT / channel_id / Channel: permanent storage.

데이터는 다음 포맷으로 저장되는 것이 바람직하다. Data is preferably stored in the following format.

에지 캐쉬의 수(Number of Edge Cahces); The number of edge cache (Number of Edge Cahces);

Edge Cache1: 시간 간격의 수(Number of time intervals), StartTime1:EndTime1, StartTime:EndTime2,...; Edge Cache1: The number of time intervals (Number of time intervals), StartTime1: EndTime1, StartTime: EndTime2, ...; And

Edge Cache2: Number of time intervals, StartTime1:EndTime1, StartTime:EndTime2,... Edge Cache2: Number of time intervals, StartTime1: EndTime1, StartTime: EndTime2, ...

가장 최근의 타임스탬프(timestamp)는 리스트의 선두에 있다. The most recent time stamp (timestamp) is the head of the list. 2개의 상이한 에지 캐쉬는 중첩되는 간격을 갖지 않는다는 것을 주의하라(그 이유는 에이전트(128)가 한번에 하나의 에지 캐쉬에만 접속되기 때문이다). It is noted that the two different edge caches do not have the space to be superimposed (because the agent 128 is connected to only one edge cache at a time). 새로운 엔트리가 추가될 때마다, 이전 엔트리들은 그들이 아직 유효한지를 알아보기 위해 검사되고; Every time a new entry is added, the previous entries are checked to see if they are still valid; 무효이면 엔트리가 버려진다. If an invalid entry is discarded. 다음과 같은 경우에 시간 간격은 무효하게 된다. The time interval in the following cases will be invalidated.

Interval EndTime + channel's persistent timeout < current time Interval EndTime + channel's persistent timeout <current time

엔트리의 모든 간격이 무효로 되면 에지 캐쉬 엔트리는 무효로 된다. When all the intervals of the entry in the invalid edge cache entry is invalidated. "EndTime"이 0이라는 것은 간격이 현재 활성 상태라는 것을 의미함에 주의하라. Be careful as it means that the interval is currently active named "EndTime" is zero.

업스트림 캐쉬 위치들: 업스트림 캐쉬의 위치(코어 라우팅 노드(548)에 있는 캐쉬(546))은 주제에 의존한다. Upstream cache locations: The (cache (546) in the core routing node 548) located upstream of the cache depends on the subject. 각 주제는 자신의 멀티캐스트 트리(multicast tree)를 갖기 때문에 제1 레벨의 업스트림 캐쉬 세트는 주제의 함수이다. Each subject since it has its own multicast trees (multicast tree) sets the first level upstream caches is a function of the subject. 사용자가 주제를 신청할 때에는, 지능형 라우터 라우터(29)가 그 주제와 관련된 업스트림 캐쉬의 리스트를 반환하는 것이 바람직하다. To the user when applying for a theme, the intelligent router, the router 29 returns a list of upstream caches associated with the subject are preferred. 마찬가지로, 멀티캐스트 트리에서의 고장(failure) 또는 개편(reorganization)으로 인한 업스트림 캐쉬 위치들의 임의의 변경은 제어 채널을 통해 에이전트(128)로 전달되는 것이 바람직하다. Similarly, any changes in the upstream cache locations due to failures (failure) or reform (reorganization) of the multicast tree are preferably delivered to the agent 128 via a control channel. 이러한 변화들은 영구 저장 스토어(파일)에서 국부적으로 문서화된다. These changes are documented locally in a persistent store store (file).

영구 저장: CACHE_ROOT/channel_identifier/subject(계층적이 아닌 전체 주제) - 캐쉬된 데이터를 위한 예시적인 경로. Persistent Storage: CACHE_ROOT / channel_identifier / subject (whole subject, not hierarchical) - an exemplary path for the cached data.

데이터는 다음 포맷으로 저장되는 것이 바람직하다. Data is preferably stored in the following format.

Number of Upstream Cahces; Number of Upstream Cahces;

Upstream Cache1: Number of time intervals, StartTime1:EndTime1, StartTime:EndTime2,...; Upstream Cache1: Number of time intervals, StartTime1: EndTime1, StartTime: EndTime2, ...; And

Upstream Cache2: Number of time intervals, StartTime1:EndTime1, StartTime:EndTime2,... Upstream Cache2: Number of time intervals, StartTime1: EndTime1, StartTime: EndTime2, ...

다시, 가장 최근의 타임스탬프는 리스트의 선두에 있다. Again, the most recent time stamp is the head of the list. 에지 캐쉬 간격과 달리, 2개의 업스트림 캐쉬는 중첩 간격을 가질 수 있는데, 그 이유는 에이전트(128)가 하나의 주어진 주제에 대해 여러개의 업스트림 캐쉬를 가질 수 있기 때문이다. Unlike the edge cache intervals, two upstream caches there may have an overlapping interval, because the agent 128 can have several upstream caches for a given subject. 또한 업스트림 캐쉬 파일의 콘텐트는 에지 캐쉬에서와 동일한 알고리즘을 사용하여 수집된 폐기물이다. In addition, the content of the upstream cache files is a waste collected using the same algorithm as in the edge cache.

데이터 검색 중의 캐쉬 유효성 : 에이전트(128)의 일생동안, 에이전트는 상이한 에지 라우터 및 업스트림 라우터와의 접속을 경험한다. Cache validity during data retrieval: During the lifetime of the agent 128, the agent will experience a connection with a different edge routers and the upstream routers. 에이전트 캐쉬 API(554)는 로컬 스토어 내에 이러한 접속 히스토리를 저장하는 것이 바람직하다. Agent Cache API (554) is preferably stores this connection history in the local store. 에이전트(128)가 캐쉬(546)로부터 최종 T개의 데이터 간격을 검색할 필요가 있는 경우, 에이전트 캐쉬 API(554)는 접속 히스토리를 조사하여 데이터를 액세스하는 캐쉬를 결정하는 것이 바람직하다. When it is necessary to agent 128 searches the last T intervals of data from the cache 546, the agent cache API (554), it is preferable to determine the caches to access the data by irradiating the connection history. 이를 위해 사용되기에 양호한 알고리즘은 다음과 같다: 1) 캐쉬 라이브러리는 모든 에지 캐쉬 간격을 조사하고 T 시간프레임 내에 있는 간격들을 검사한다. A preferred algorithm to be used for this purpose are as follows: 1) the cache library is tested against all the edge cache intervals and checks the interval T in the time frame. 간격이 시간 프레임 내에 있으면, 그것은 유효 에지 캐쉬의 리스트 L e 에 추가된다. Is within the interval of the time frame, it is added to the list L e of valid edge caches. 2) 간격 시작 시간을 사용하여 리스트 L e 가 저장된다. 2) a list L e is stored by using the interval start time. 3)L e 내의 에지 캐쉬들에 의해 포함되지 않는 각 간격에 대해서는, 업스트림 캐쉬를 조사하여 이 간격을 포함할 수 있는 모든 업스트림 캐쉬 간격들을 얻고 유효 간격들을 리스트 L u 에 추가한다. 3) for each interval that is not covered by the edge caches in the L e, by examining the upstream caches to get all upstream cache intervals that may include a distance and add valid intervals to List L u. L u 를 L e 에 추가하고 간격 시작 시간을 사용하여 L e 를 정렬함으로써 L을 생성한다. Adding the L u L e and produces a L by aligning the L e, using the interval start time.

이 알고리즘은 캐쉬들의 리스트 L를 제공하고 각 캐쉬에 대해 데이터를 검색하는 시간 간격을 제공한다. This algorithm provides a list L of the cache and provides the time intervals to retrieve the data for each cache. 그 후 이 캐쉬들의 리스트 L는 4) 획득 캐쉬 메시지(get cache message)로 안내되어 캐쉬 관리자(218)로 전송된다. Then the list L of the cache is guided to 4) obtained cached message (get cache message) is sent to the cache manager 218. 캐쉬 관리자(218)의 말단에서, 캐쉬 관리자(218)는 5) 획득 캐쉬 메시지로부터 캐쉬 간격들을 안내하지 않고 시작 시간의 증가 순서로 정렬된 리스트 L를 재생성하는 것이 바람직하다. At the end of the cache manager 218, the cache manager 218, it is preferable to regenerate 5) obtained from the list L sorted cache message in increasing order of start times rather than guide the cache interval. 리스트 L 내의 각 간격에 대해, 캐쉬 관리자(218)는 6) 이전 간격과 현재 간격 사이에 간격이 존재하는지를 알아보기 위해 검사를 하고, 간격이 있으면, 로컬 캐쉬에게 데이터를 요구하는 것이 바람직하다. For each interval in the list L, the cache manager 218, 6) If the previous interval and to check to see if there is a gap between the current interval, the interval, it is preferable to request the data to the local cache. 간격이 없으면, 캐쉬 관리자(218)는 7) 적절한 캐쉬에게 데이터를 획득하도록 하는 것이 바람직하다. If there is no gap, the cache manager 218. 7), it is preferable that to obtain the data to the appropriate cache. 캐쉬 관리자(218)는 8) 모든 캐쉬로부터의 데이터를 대조하고 그것을 에이전트(128)에 보내는 것이 바람직하다. The cache manager 218 is 8) is the control data from all the caches and preferably it sends to the agent (128).

라우터 캐쉬 API : 지능형 라우터 라우터(92)에 있는 라우터 캐쉬 API(552)는 캐쉬 관리자(218)를 호출하여 특정 주제에 대한 캐싱(caching)을 생성, 파괴, 중지 및 재개시키는 기능을 한다. Router Cache API: Router Cache API, the intelligent router Routers (92) (552) calls the cache manager 218 functions to generate a cache (caching) for a specific topic, destruction, stop, and resume. 라우터 캐쉬 API(552)는 또한 초기 구성을 다룬다 - 지능형 라우터 라우터(92)로부터의 캐쉬 어드레스를 채널 관리자(150)로 업로딩하여, 필요한 경우에 에이전트(128)측(에이전트 캐쉬 API(554))이 이러한 정보를 얻을 수 있도록 하고 - 다른 라우터들에 대한 캐쉬들(546)의 위치를 검색한다(이것은, 예를 들어 신청 회답시 및 주제 트리가 변한 후에, 지능형 라우터 라우터(92)가 주어진 주제에 대한 업스트림 캐쉬를 에이전트(128)에 통지하기를 원할 때 사용된다). Router cache API (552) also deals with initial configuration-by uploading the cache address from the intelligent router, router 92 to the channel manager 150, the agent 128 side (the agent cache API (554)), if necessary, the to get this information - and retrieve the location of a cache of 546 for the other routers (which, for example, apply for answers during and after the topic tree has changed, intelligent router, the router 92 on a given topic It is used when the user needs to notify the upstream caches to agent 128).

획득을 위한 캐쉬의 사용 : 상기 논의는 영구 채널들을 구현하고 회신 신청자들이 네트워크로부터 데이터를 획득할 수 있기 위해 캐쉬를 사용하는 것에 초점을 두고 있다. Use of a cache for the acquisition: The above discussion focused to implementing persistent channels and returns applicants use the cache in order to be able to obtain data from the network. 다른 실시예는 임의의 가입자(신규 또는 리턴)가 (예를 들어, 누군가 다른 사람의 가입때문에, 가입자가 이미 가입된 것은 아니지만 캐시(546)내에 있는 데이터를 포함하는) 임의의 종류의 데이터를 캐시(546)로부터 풀(pull)하도록 한다. Other examples are any subscribers (new or returning) to cache any type of data (for example, someone because others join in, but the subscriber is already subscribed, but the cache (including the data in the 546)) to be full (pull) from 546. 이 실시예와 선행하는 실시예의 차이점은, 리턴 가입자에 대해서는 데이터가 현재로 보증되고 데이터의 위치가 공지되지만 신규 가입자에 대해서는 저장된 데이터의 위치가 공지되지 않는다는 것이다. Embodiment, the difference between the preceding and the present embodiment is, that they do return data for the subscriber is guaranteed as of the known location of the data, but not known the location of the data stored for the new subscriber. 이 다른 실시예를 구현하는 간단한 방법은 채널 상의 "FindCache" 요구를 발행하는 것이다. A simple way of implementing this alternative embodiment is to publish a "FindCache" request on the channel. "FindCache" 요구는 채널 id, 주제, 필터, 시간 간격 및 요구된 캐시 데이터로 캐시(546)를 탐색하는 에이전트(128)의 위치를 포함한다. "FindCache" request includes the location of the agent 128 to search for the cache 546 to the channel id, subject, filters, time interval, and the required cache data. 모든 캐시(546)는 "FindCache" 요구를 수신한다. All cache 546 receives a request "FindCache". 각각의 캐시(546)가 요구를 수신하면, 캐시(546)는 대응하는 데이터가 그 데이터 스토어 내에 있는지를 확인하고, 그러면, 유니캐스트 메시지 내의 그 자신의 위치로 다시 전송한다. When each cache 546 receives the request, the cache 546 is sent back to its own position in check if corresponding data is in its datastore and, then, a unicast message. 에이전트(128)는 캐시(546) 중의 하나를 선택하고 그에 대한 GetCache 동작을 인보크하여 데이터를 획득한다. Agent 128 selects one of the cache 546 configured to obtain the data by invoking an operation GetCache size thereof.

최종 데이터 풀(pull) : 다른 실시예는 가입자 애플리케이션(예를 들어, 애플리케이션(126))이 주어진 주제에 대한 최종 메시지를 획득하도록 하는 특징, 최종 데이터 풀을 포함한다. Final data pool (pull): The alternative embodiment includes a feature, the last data pull, which the subscriber application (e.g., application 126) to obtain the final message for a given subject. 이것은 주식 시세 경보 등의 데이터에 유용하고, 사용자는 히스토리가 아닌 최종 주식 가격을 알기를 원한다. This is useful for data such as stock quote alerts, you want to know the final stock price rather than history.

캐시 매니저의 구현 : 예를 들어 캐시 메니저(218) 구현에는 바람직하게 3가지 유형의 스레드(thread)가 있다. Implementation of the Cache Manager: for example, it is preferable cache manager 218 implementation there are three types of threads (thread). 즉, 데이터 캐싱 스레드 - 데이터 캐싱 스레드는 바람직하게 접속부로부터 지능형 라우터(92)로 데이터를 픽업하고 데이터를 인덱싱하여 메모리에 저장한다 -, 데이터 저장 스레드 - 시간 간격의 끝에 도달하면, 데이터 저장 스레드는 바람직하게 메모리에 저장된 데이터를 디스크로 이동시키고 프로세스에서 또한 만료된 데이터에 대한 폐영역 회수(garbage collection)를 수행한다 -, 데이터 검색 스레드 - 데이터 검색 스레드는 바람직하게 캐시 데이터에 대한 요구를 픽업하고 캐시(546)로부터 데이터를 검색하는 것을 담당한다 - 가 있다. That is, the data caching thread-data caching thread preferably picks up data to the intelligent router 92 from the connecting portion, and to index the data stored in the memory, the data storage thread - when it reaches the end of the time interval, the data storage thread preferably moves the data stored in memory to disk and also closed region number of the expired data from the process (garbage collection) is performed -, data retrieval thread-the data retrieval thread and preferably picks up the request for the cached data cache ( responsible for retrieving data from 546) - a. 이 3가지 유형의 스레드는 단일 스레드 또는 스레드의 풀(pool)로서 구현될 수 있다. The three types of threads may be implemented as a pool (pool) of a single thread or thread. 바람직하게, 데이터 캐싱 스레드 및 데이터 저장 스레드는 데이터가 디스크로 이동되고 있는 동안 동기된다. Preferably, the Data Caching thread and the Data storage thread are synchronized while the data is being moved to disk. 데이터 저장 스레드와 데이터 검색 스레드간의 동기화는 데이터가 검색되는 동안 데이터가 제거되는 것을 방지한다. Synchronization between the data storage thread and the data retrieval thread prevents data from being removed while the data is being retrieved.

데이터 구조 : 캐싱을 위한 데이터 구조의 예는 상기의 표 19 및 첨부된 설명에 제공된다. Data structure: examples of data structures for caching are provided in the description of the table 19 and attached.

데이터 저장 : 도 36은 "아퀼라 캐시(Aquila Cache)"로 명명된 캐시(546)에 데이터 파일을 저장하는데 사용되는 바람직한 디렉토리 구조를 나타내는 도면이다. Data Storage: FIG. 36 is a view showing a preferred directory structure used for storing a data file in a cache 546 named "Aquila Cache (Aquila Cache)". 각각의 주제 레벨 디렉토리는 바람직하게 한 세트의 차일드(child) 주제 디렉토리 뿐만 아니라 그 주제에 대해 발행되는 데이터를 저장하는 데이터 디렉토리를 갖는다. Each subject level directory preferably as well as a child (child) subject directory of a set has a data directory that stores data published on that subject. 예를 들어 엔터테인먼트 채널 상의 Fox.Movies에 대해 발행된 데이터는 디렉토리 AquilaCache/Entertainment/Fox/Movies/Data 내의 파일로 전달되고 주제 Fox에 대해 발행된 데이터는 디렉토리 AquilaCache/Entertainment/Fox/Data 내의 파일로 전달된다. For example, the data published for the entertainment channel on Fox.Movies directory AquilaCache / Entertainment / Fox / Movies / data passed to the file being published on the topic in the Fox Data is passed to the files in the directory AquilaCache / Entertainment / Fox / Data do. 데이터 저장 속도를 증가시키기 위하여, 지능형 라우터(92)가 캐시(546)에게 주어진 채널 및 주제에 대한 캐싱을 시작할 것을 요청할 때 특정 주제를 위한 디렉토리 계층이 바람직하게 생성된다. In order to increase the data recording speed, when the intelligent router 92 to request to start caching for a given channel and subject to the cache 546 is a directory hierarchy for a particular subject is preferably generated.

데이터 검색 : 캐시(546)로부터의 데이터 검색은 데이터 저장 및 캐시(546)를 방해하지 않도록 효율적이어야 한다. Data Retrieval: Data retrieval from the cache 546 should be efficient so as not to interfere with the data storage and the cache 546. 데이터 검색은 디스크 및 메모리 둘다로부터 데이터를 검색한다. Data retrieval retrieves data from both the disk and memory. 데이터 검색을 위해 취해지는 단계는 바람직하게 다음과 같다: 1) 데이터 노드를 위치시키고, 2) 데이터 노드를 록킹하고, 3) 검색될 필요가 있는 데이터의 타임 스탬프를 위치시키고, 3) 데이터를 검색하고 데이터를 메모리에 저장하고, 4) 데이터 노드를 언록킹하고, 5) 에이전트(128) 클라이언트에 발행하기 전에 메모리에 저장된 검색 데이터를 필터링하고 시퀀싱한다. Steps taken for data retrieval preferably are: 1) and the data node location, 2) lock the data node, and 3) by placing the time stamp of that needs to be retrieved data, and 3) to retrieve data and stores the data in memory, 4) locking the data node, and unloading, 5) filtering the search data stored in the memory prior to issuing the agent 128 and the client sequencing.

본 발명은 예시적인 실시예와 결합하여 설명되었지만, 많은 변경이 가능함은 당업자에게 자명한 것이고, 이 애플리케이션은 임의의 적응 또는 변경을 커버하기 위한 것이다. While the invention has been described in conjunction with exemplary embodiments, it will be apparent to those skilled in the art many variations are possible, and this application is intended to cover any adaptations or changes. 예를 들어, 다양한 유형의 발행자 머신, 사용자 또는 가입자 머신, 채널 및 그들의 구성, 및 내용-기반(content-based) 라우팅 및 다른 기능의 하드웨어 및 소프트웨어 구현이 본 발명의 범위를 벗어나지 않고 사용될 수 있다. For example, various types of publisher machines, user or subscriber machines, channels, and their configuration, and information - there are based hardware and software implementation of the (content-based) routing and other functions may be used without departing from the scope of the invention. 본 발명은 청구범위 및 그 동등물에 의해서만 한정된다. The invention is defined only by the claims and their equivalents.

Claims (113)

  1. 경보 서비스의 제공에 사용되는 네트워크 내에서 패킷들을 라우팅하기 위한 방법으로서, A method for routing packets in a network that is used to provide alarm services,
    헤더부와, 특정 카메라로부터의 비디오 클립에 관한 정보를 포함하는 페이로드부를 갖는 패킷을 수신하는 단계와, And the header portion and comprising the steps of: receiving a packet having a payload comprising information relating to a video clip from a particular camera,
    상기 패킷을 상기 특정 카메라로부터의 정보에 관련된 가입자에게 라우팅하는 방법을 결정하는 데 사용하기 위해 네트워크 코어에서 상기 패킷의 상기 페이로드부를 검사하는 단계와, A method for inspecting the payload section of the packet to the packet in a network core for use in determining how to route to the subscriber to information from the particular camera,
    상기 검사에 기초하여 상기 패킷을 선택적으로 라우팅하는 단계 Selectively routing the packet based upon the inspecting
    를 포함하는 패킷 라우팅 방법. Packet routing method comprising a.
  2. 제1항에 있어서, According to claim 1,
    상기 검사 단계는 콘텐트 예측 정보가 대응하는 네트워크 수신처에 연관되어지는 구조에서 상기 페이로드부의 정보가 상기 콘텐트 예측 정보와 일치하는가를 판정하는 단계를 포함하는 패킷 라우팅 방법. It said checking step is in the structure that is associated to a network destination for the content prediction information corresponding to a packet routing method comprising: determining whether the information of the payload section matches the content prediction information.
  3. 제1항에 있어서, According to claim 1,
    상기 네트워크 코어 내의 라우터에서 상기 검사 단계를 수행하는 단계를 더 포함하는 패킷 라우팅 방법. At a router in the network core packet routing method further including performing the inspecting step.
  4. 제1항에 있어서, According to claim 1,
    상기 검사 단계는 상기 페이로드부의 정보에 대해 필터를 적용시키는 단계를 포함하는 패킷 라우팅 방법. It said checking step is a packet routing method, comprising the step of applying a filter to the information payload portion.
  5. 제4항에 있어서, 5. The method of claim 4,
    상기 검사를 행하는 데 사용하기 위해 상기 네트워크 내의 라우터에 상기 필터를 전파시키는 단계를 더 포함하는 패킷 라우팅 방법. Packet routing method further comprising the step of propagating the filter to a router in the network for use in performing the inspecting.
  6. 제1항에 있어서, According to claim 1,
    상기 수신 단계, 상기 검사 단계, 및 상기 라우팅 단계를 수행하기 위해 상기 네트워크 내의 라우터를 프로그래밍하는 단계를 더 포함하는 패킷 라우팅 방법. Packet routing method further comprises the step of programming a router in the network for performing the receiving step, said checking step and said routing step.
  7. 제1항에 있어서, According to claim 1,
    상기 검사 단계는 상기 패킷의 라우팅 방법을 결정하는 데 사용하기 위해 속성을 검사하는 단계를 포함하는 패킷 라우팅 방법. It said checking step is a packet routing method comprises examining the attributes for use in determining how to route the packet.
  8. 제1항에 있어서, According to claim 1,
    선택적으로 라우팅하는 상기 단계는 상기 패킷을 디지탈 비디오 감시 시스템에 선택적으로 라우팅하는 단계를 포함하는 패킷 라우팅 방법. The step of selectively routing the packet routing comprises the step of selectively routing the packet to a digital video surveillance system.
  9. 제1항에 있어서, According to claim 1,
    근거리 통신망에서 상기 검사 단계를 수행하는 단계를 더 포함하는 패킷 라우팅 방법. Packet routing method further including performing the inspecting step in a local area network.
  10. 제1항에 있어서, According to claim 1,
    인터넷 서비스 제공자 위치에서 상기 검사 단계를 수행하는 단계를 더 포함하는 패킷 라우팅 방법. In the Internet service provider location packet routing method further including performing the inspecting step.
  11. 제1항에 있어서, According to claim 1,
    상기 특정 카메라는 디지탈 비디오 레코더 및 전하 결합 소자를 포함하는 패킷 라우팅 방법. Packet routing method for the particular camera comprises a digital video recorder and a charge coupled device.
  12. 제11항에 있어서, 12. The method of claim 11,
    상기 디지탈 비디오 레코더는 상기 헤더부 및 상기 페이로드부를 포함하는 상기 패킷을 생성하며, 상기 페이로드부는 상기 특정 카메라로부터의 상기 비디오 클립에 관한 정보를 포함하는 패킷 라우팅 방법. The digital video recorder is a packet routing method, including the information about the header part and the video clip from the particular camera, and generating the packet, the payload section including a said payload.
  13. 경보 서비스를 제공하는 네트워크 내에서 메시지를 라우팅하기 위한 방법으로서, A method for routing messages in the network to provide alarm services,
    헤더부, 적어도 하나의 주제, 및 특정 카메라로부터의 비디오 클립에 관한 적어도 하나의 속성을 포함하는 메시지를 수신하는 단계와, A header portion, at least one subject, and receiving a message including at least one property relating to a video clip from a particular camera and,
    상기 메시지로부터 상기 주제 및 상기 속성을 검색하는 단계와, And retrieving the subject and the attribute from the message,
    상기 주제에 기초하여 가입을 검색하는 단계와, And retrieving a subscription based upon the subject,
    네트워크 코어에서 상기 가입에 대해 상기 속성을 적용시켜 상기 특정 카메라로부터의 정보에 관련된 가입자에게 상기 메시지를 라우팅하는 방법을 결정하는 단계 Determining how to route the message by applying the attribute to the subscription in a network core to a subscriber to information from the particular camera
    를 포함하는 메시지 라우팅 방법. Message routing method comprising the.
  14. 제13항에 있어서, 14. The method of claim 13,
    상기 가입을 검색하는 단계는 상기 가입에 대응하는 필터를 검색하는 단계를 포함하는 메시지 라우팅 방법. Retrieving the subscription message routing method comprising the step of retrieving a filter corresponding with the subscription.
  15. 제13항에 있어서, 14. The method of claim 13,
    상기 속성이 상기 가입을 만족시키면 상기 메시지를 라우팅하는 단계를 더 포함하는 메시지 라우팅 방법. If the attribute satisfies the subscription message routing method further comprises the step of routing the messages.
  16. 제13항에 있어서, 14. The method of claim 13,
    상기 속성이 상기 가입을 만족시키지 않으면 상기 메시지를 폐기시키는 단계를 더 포함하는 메시지 라우팅 방법. If the attribute not satisfy the subscription message routing method further comprising the step of discarding the message.
  17. 제13항에 있어서, 14. The method of claim 13,
    복수의 가입에 대응하는 복수의 필터를 검색하는 단계와, And retrieving a plurality of filters corresponding to a plurality of subscriber,
    상기 메시지로부터 복수의 속성을 검색하는 단계와, And retrieving a plurality of attributes from the message,
    상기 필터 각각에 대해 상기 속성 각각을 적용시켜 상기 대응하는 가입 중 임의의 것을 만족시키는가를 판정하는 단계와, By applying the attribute for each of the said filters, respectively, and determining Does satisfy any of the subscription to the corresponding,
    상기 가입중 임의의 것을 만족시키는 것에 기초하여 상기 메시지를 선택적으로 라우팅하는 단계 The method comprising selectively routing the message based upon satisfying any of the subscriber
    를 더 포함하는 메시지 라우팅 방법. The message routing method further includes.
  18. 제13항에 있어서, 14. The method of claim 13,
    상기 네트워크 코어 내의 라우터에서 상기 적용 단계를 수행하는 단계를 더 포함하는 메시지 라우팅 방법. At a router in the network core routing message further comprises the step of performing said applying step.
  19. 제13항에 있어서, 14. The method of claim 13,
    상기 특정 카메라는 디지탈 비디오 레코더 및 전하 결합 소자를 포함하는 메시지 라우팅 방법. Message routing method for the particular camera comprises a digital video recorder and a charge coupled device.
  20. 제19항에 있어서, 20. The method of claim 19,
    상기 디지탈 비디오 레코더는 상기 헤더부, 상기 적어도 하나의 주제, 및 특정 카메라로부터의 비디오 클립에 관한 상기 적어도 하나의 속성을 포함하는 상기 메시지를 생성하는 메시지 라우팅 방법. The digital video recorder, a message routing method for generating the message including the header portion, the at least one subject, and the at least one property relating to a video clip from a particular camera.
  21. 경보 서비스를 제공하 데 사용하기 위한 네트워크 내에서 패킷들을 라우팅하기 위한 방법으로서, A method for routing packets in a network for use in providing alert services,
    헤더부와, 특정 경보 서비스에 대한 이벤트에 관한 정보를 포함하는 페이로드부를 갖는 패킷을 수신하는 단계와, And the header portion and comprising the steps of: receiving a packet having a payload comprising information about an event for a particular alert service,
    상기 패킷을 상기 경보 서비스의 정보에 관련된 가입자에게 라우팅하는 방법을 결정하는 데 사용하기 위해 네트워크 코어에서 상기 패킷의 상기 페이로드부를 검사하는 단계와, And checking in a network core parts of the payload of the packet for use in determining how to route the packet to subscribers associated with the information of the alarm service,
    상기 검사에 기초하여 상기 패킷을 선택적으로 라우팅하는 단계 Selectively routing the packet based upon the inspecting
    를 포함하는 패킷 라우팅 방법. Packet routing method comprising a.
  22. 경보 서비스를 제공하는 데 사용하기 위한 네트워크 내에서 패킷들을 라우팅하기 위한 장치로서, An apparatus for routing packets in a network for use in providing alert services,
    헤더부와, 특정 카메라로부터의 비디오 클립에 관한 정보를 포함하는 페이로드부를 갖는 패킷을 수신하기 위한 수신 모듈과, And a header portion, a receiving module for receiving a packet having a payload comprising information relating to a video clip from a particular camera and,
    상기 패킷을 상기 특정 카메라로부터의 정보에 관련된 가입자에게 라우팅하는 방법을 결정하는 데 사용하기 위해 네트워크 코어에서 상기 패킷의 상기 페이로드부를 검사하기 위한 검사 모듈과, In a network core for use in determining how to route to the subscriber associated with the packet on the information from the particular camera and the inspection module for inspecting the payload section of the packet,
    상기 검사에 기초하여 상기 패킷을 선택적으로 라우팅하기 위한 라우팅 모듈 Routing module for selectively routing the packet based upon the inspecting
    을 포함하는 패킷 라우팅 장치. Packet routing device comprising a.
  23. 제22항에 있어서, 23. The method of claim 22,
    상기 검사 모듈은 콘텐트 예측 정보가 대응하는 네트워크 수신처 또는 라우터 내 처리를 통제하는 대응하는 규칙에 연관되어지는 구조에서 상기 페이로드부의 정보가 상기 콘텐트 예측 정보와 일치하는가를 판정하기 위한 모듈을 포함하는 패킷 라우팅 장치. The test module packet includes a module for determining whether the information of the payload portion in a structure which is associated with the corresponding rules governing the network destination or a router within the process of the content prediction information corresponding to match the content forecasts routing devices.
  24. 제22항에 있어서, 23. The method of claim 22,
    상기 네트워크 코어 내의 라우터에서 상기 검사를 수행하기 위한 모듈을 더 포함하는 패킷 라우팅 장치. Packet routing device further comprising: a module for performing the inspection at a router in the network core.
  25. 제22항에 있어서, 23. The method of claim 22,
    상기 검사 모듈은 상기 페이로드부의 정보에 대해 필터를 적용시키기 위한 모듈을 포함하는 패킷 라우팅 장치. The test module packet routing device comprising a module for applying a filter to the information payload portion.
  26. 제25항에 있어서, 26. The method of claim 25,
    상기 검사를 행하는 데 사용하기 위해 상기 네트워크 내의 라우터에 상기 필터를 전파시키기 위한 모듈을 더 포함하는 패킷 라우팅 장치. Packet routing device further including a module for propagating the filter to a router in the network for use in performing the inspecting.
  27. 제22항에 있어서, 상기 수신, 검사 및 처리를 행하기 위해 상기 통신망에서 라우터를 프로그래밍하는 모듈을 더 포함하는 장치. 23. The method of claim 22, further comprising a module for programming a router in the network in order to perform the receiving, processing, and inspection.
  28. 제22항에 있어서, 상기 검사 모듈은 패킷을 어떻게 라우팅할 것인지를 결정하는 데 사용하기 위해 속성들을 검사하는 모듈을 포함하는 장치. The method of claim 22, wherein the test module comprises a module for inspecting attributes for use in determining how to route the packet.
  29. 제22항에 있어서, 상기 장치는 디지탈 비디오 레코더를 포함하는 통신망 내에 위치하는 장치. The method of claim 22, wherein the device located in a communications network in which the device comprises a digital video recorder.
  30. 제22항에 있어서, 상기 특정 카메라는 디지탈 비디오 레코더 및 전하 결합 소자를 포함하는 장치. The method of claim 22, wherein the device for the particular camera comprises a digital video recorder and a charge coupled device.
  31. 경보 서비스를 제공하는 통신망에서 메시지를 라우팅하는 장치로서, An apparatus for routing messages in a communication network for providing alert services,
    헤더부, 적어도 하나의 주제, 및 특정 카메라로부터의 비디오 클립에 관련된 적어도 하나의 속성을 가진 메시지를 수신하는 수신 모듈; A header portion, at least one subject, and a receiving module for receiving a message having at least one property relating to a video clip from a particular camera;
    상기 메시지로부터 상기 주제 및 속성을 검색하는 모듈; Module for retrieving the subject and the attribute from the message;
    상기 주제에 기초하여 가입을 검색하는 모듈; Module to retrieve the subscription based upon the subject; And
    상기 특정 카메라로부터의 정보에 대한 가입자에게 상기 메시지를 어떻게 라우팅할 것인지를 결정하기 위하여 통신망 코어에서 상기 속성을 상기 가입에 적용하는 적용 모듈 Application for applying the attribute to the subscription in a network core in order to determine a subscriber to information from the particular camera how to route the message module
    을 포함하는 장치. Device comprising a.
  32. 제31항에 있어서, 상기 가입을 검색하는 모듈은 상기 가입에 대응하는 필터를 검색하는 모듈을 포함하는 장치. The method of claim 31, wherein the module for retrieving the subscription is a device including a module for retrieving a filter corresponding with the subscription.
  33. 제31항에 있어서, 상기 속성이 상기 가입을 만족시키는 경우에, 그리고 서비스 보증의 품질에 기초하여 상기 메시지를 선택적으로 라우팅하는 모듈을 더 포함하는 장치. 32. The method of claim 31, wherein said attribute is a module for selectively routing the message based on a case that satisfies the subscription, and the quality of service guarantee.
  34. 제31항에 있어서, 상기 속성이 모든 가입을 만족시키지 못하는 경우에 상기 메시지를 폐기하는 모듈을 더 포함하는 장치. The method of claim 31 wherein the apparatus when the properties do not satisfy all subscriptions further comprises a module for discarding the message.
  35. 제31항에 있어서, 32. The method of claim 31,
    복수의 가입에 대응하는 복수의 필터를 검색하는 모듈; Module for retrieving a plurality of filters corresponding to a plurality of subscriber;
    상기 메시지로부터 복수의 속성을 검색하는 모듈; Module for retrieving a plurality of attributes from the message;
    상기 대응하는 가입들 중 임의의 가입이 만족되는지를 결정하기 위하여 상기 속성들의 각각을 상기 필터들의 각각에 적용하는 모듈; Module for applying each of the attributes to each of the filters to determine if the response is satisfactory any subscription of the subscriber to; And
    상기 가입들 중 임의의 가입이 만족되는지의 여부에 기초하여 상기 메시지를 선택적으로 라우팅하는 모듈 Module for selectively routing the message based upon whether any of the subscription of the subscriber is satisfied
    을 더 포함하는 장치. It comprises a no.
  36. 제31항에 있어서, 상기 통신망 코어 내의 라우터에서 상기 적용을 수행하는 하나 이상의 모듈을 더 포함하는 장치. 32. The method of claim 31, further comprising one or more modules for performing the applying at a router in the network core.
  37. 제31항에 있어서, 상기 장치는 디지탈 비디오 레코더를 포함하는 통신망 내에 위치하는 장치. 32. The method of claim 31, apparatus for location in a communications network in which the device comprises a digital video recorder.
  38. 제31항에 있어서, 상기 특정 카메라는 디지탈 비디오 카메라 및 전하 결합 소자를 포함하는 장치. The method of claim 31, wherein the device for the particular camera comprises a digital video camera and a charge coupled device.
  39. 경보 서비스를 제공하는 데 사용되는 통신망에서 패킷을 라우팅하는 시스템으로서, A system for routing packets in a communication network which is used to provide an alarm service,
    디지탈 비디오 출력을 생성하는 복수의 디지탈 비디오 카메라; A plurality of digital video cameras for generating a digital video output;
    상기 디지탈 비디오 카메라들을 접속시키는 근거리 통신망(LAN); A local area network (LAN) for connecting the digital video cameras;
    상기 LAN에 접속되어, 상기 디지탈 비디오 출력을 발행하는 발행자 에이전트; Is connected to the LAN, the publisher agent issuing the digital video output;
    상기 발행자 에이전트에 접속되는 발행-가입 통신망; Issued connected to the publisher agent-Up communication network; And
    상기 발행된 디지탈 비디오 출력을 상기 발행-가입 통신망을 통해 수신하는 디지탈 비디오 감시 시스템(DVSS) The published digital video output the issued-to-digital video surveillance comprising: receiving a subscription communication system (DVSS)
    을 포함하는 시스템. System that includes.
  40. 제39항에 있어서, 상기 발행-가입 통신망에 접속되어, 상기 디지탈 비디오 출력에 가입하고, 상기 가입된 디지탈 비디오 출력을 상기 DVSS로 푸시하는 가입자 에이전트를 더 포함하는 시스템. 40. The method of claim 39, wherein the publish-connected to the subscriber communication network, the system further comprising a subscriber agent, which subscribes to the digital video output and pushes the subscribed digital video output to the DVSS.
  41. 제39항에 있어서, 상기 발행-가입 통신망은 복수의 지능형 라우터를 포함하는 시스템. 40. The method of claim 39, wherein the publish-Up communication network system including a plurality of intelligent routers.
  42. 제41항에 있어서, 상기 지능형 라우터는 The method of claim 41, wherein the intelligent router
    헤더부와, 상기 복수의 디지탈 비디오 카메라 중 하나로부터의 디지탈 비디오 컨텐트에 관련된 정보를 포함하는 페이로드부를 가진 패킷을 수신하는 수신 모듈; And a header portion, a receiving module for receiving a packet having a payload section including information relating to digital video content from one of the plurality of digital video cameras;
    상기 디지탈 비디오 카메라로부터의 정보에 대한 가입자에게 상기 패킷을 어떻게 라우팅할 것인지를 결정하는 데 사용하기 위해 통신망 코어에서 상기 패킷의 페이로드부를 검사하는 검사 모듈; In a communication network core for use in determining how to route the packet to subscribers to information from the digital video camera inspection module for inspecting the payload section of the packet; And
    상기 검사에 기초하여 상기 패킷을 선택적으로 라우팅하는 라우트 모듈 The route module for selectively routing the packet based upon the inspecting
    을 포함하는 시스템. System that includes.
  43. 가입자들에게 디지탈 컨텐트를 분배하는 통신망으로서, A network for distributing digital content to subscribers,
    복수의 사용자 기계; A plurality of user machines;
    디지탈 컨텐트를 규칙적으로 분배하는 중앙 분배기; A central distributor that regularly distributes digital content;
    상기 분배된 디지탈 컨텐트를 수신하여 캐시하는 복수의 캐시 서버-상기 캐시 서버는 상기 캐시된 디지탈 컨텐트의 일부에 대한 사용자 기계로부터의 사용자 요구를 주기적으로 수신하고, 요구된 디지탈 컨텐트를 상기 사용자 기계로 전송함-; A plurality of cache servers to cache receives the distributed digital content, wherein the cache server receives a user request from the user machine to the portion of the cached digital content periodically, and transmits the requested digital content to the user machine box-; And
    상기 중앙 분배기로부터 상기 분배된 디지탈 컨텐트를 파일로서 수신하고, 발행-가입 컨텐트 기반 라우팅을 이용하여 상기 디지탈 컨텐트 파일을 상기 복수의 캐시 서버로 전송하는 라우팅 박스-상기 디지탈 컨텐트 파일은 발행물이며, 상기 사용자 요구는 가입임- Routing box for using the subscription content based routing, sending the digital content file wherein a plurality of cache server - receiving the distributed digital content from the central distributor as a file, issue and the digital content files are publications and the user request to join Lim -
    를 포함하는 통신망. Communication network comprising a.
  44. 제43항에 있어서, 상기 라우팅 박스는 제1 라우팅 박스이고, 상기 통신망은 상기 복수의 캐시 서버와 함께 위치하는 제2 라우팅 박스를 더 포함하며, 상기 제1 라우팅 박스는 상기 디지탈 컨텐트 파일을 상기 복수의 캐시 서버 중 적어도 하나와 함께 위치하는 상기 제2 라우팅 박스로 라우팅하는 통신망. The method of claim 43, wherein the routing box is a first routing box, and wherein the communication network 2 further comprises a routing box, wherein the first routing box co-located with the plurality of cache servers is a plurality of the digital content file, the of the first communications network for routing to the second routing box co-located with at least one of the cache servers.
  45. 제43항에 있어서, 상기 복수의 캐시 서버는 통신망 서비스 제공자에 위치하는 통신망. The method of claim 43, wherein the plurality of cache servers located in the network to the network service provider.
  46. 제43항에 있어서, 상기 복수의 캐시 서버는 상기 중앙 분배기에 의해 분배된 모든 디지탈 컨텐트를 저장하는 제1 레벨의 캐시 서버인 통신망. The method of claim 43, wherein the plurality of cache servers in the network server in the first level cache to store all the digital content distributed by the central distributor.
  47. 제46항에 있어서, 상기 중앙 분배기에 의해 분배된 디지탈 컨텐트의 일부를 저장하는 제2 레벨의 캐시 서버를 더 포함하는 통신망. The method of claim 46, wherein the communication network further comprising a cache server in the second level to store a portion of the digital content distributed by the central distributor.
  48. 제47항에 있어서, 상기 라우팅 박스는 제1 라우팅 박스이고, 상기 통신망은 상기 제2 레벨의 캐시 서버와 함께 위치하는 제2 라우팅 박스를 더 포함하며, 상기 제1 라우팅 박스 및 제2 라우팅 박스는 발행-가입 컨텐트 기반 라우팅을 이용하여 디지탈 컨텐트 파일을 상기 제1 레벨의 캐시 서버에서 상기 제2 레벨의 캐시 서버로 전송하는 통신망. The method of claim 47, wherein the routing box is a first routing box, and wherein the communication network 2 further comprises a routing box, wherein the first routing box and the second routing box co-located with the cache server of the second level, issued - Up network to transmit in the cache server of a digital content file using the content-based routing the first level to the cache server in the second level.
  49. 제48항에 있어서, 상기 라우팅 박스 각각은 The method of claim 48, wherein the routing box each
    헤더부와, 디지탈 컨텐트 파일에 관련된 정보를 포함하는 페이로드부를 가진 패킷을 수신하는 수신 모듈; A receiving module for receiving a packet having a header portion and a payload including information related to the digital content file units;
    상기 패킷을 어떻게 라우팅할 것인지를 결정하는 데 사용하기 위해 상기 패킷의 페이로드부를 검사하는 검사 모듈; Inspection module for inspecting the payload section of the packet to use to decide how to route the packet; And
    상기 검사에 기초하여 상기 패킷을 상기 제1 레벨의 캐시 서버에서 상기 제2 레벨의 캐시 서버로 선택적으로 라우팅하는 라우트 모듈 The route module for selectively routing server to the cache of the second level of the packet on the basis of the test in the cache server in the first level
    을 포함하는 통신망. Communication network comprising a.
  50. 제47항에 있어서, 상기 제2 레벨의 캐시 서버에 저장된 디지탈 컨텐트의 일부는 수신된 사용자 요구의 히스토리에 기초하여 결정되는 통신망. The method of claim 47, wherein the communication network is part of the digital content stored in the cache server of the second level is determined based on a history of received user requests.
  51. 제47항에 있어서, 상기 제2 레벨의 캐시 서버는 상기 사용자 요구를 직접 수신하며, 상기 제2 레벨의 캐시 서버에 의해 저장되지 않은 디지탈 컨텐트에 대한 사용자 요구를 상기 제1 레벨의 캐시 서버로 전송하는 통신망. The method of claim 47, wherein the cache server of the second level receives the user request directly, transmitting the user request for digital content not stored by the cache server in the second level to the cache server in the first level communication network.
  52. 제43항에 있어서, 상기 라우팅 박스는 The method of claim 43, wherein the routing box is
    헤더부와, 디지탈 컨텐트 파일에 관련된 정보를 포함하는 페이로드부를 가진 패킷을 수신하는 수신 모듈; A receiving module for receiving a packet having a header portion and a payload including information related to the digital content file units;
    상기 패킷을 어떻게 라우팅할 것인지를 결정하는 데 사용하기 위해 상기 패킷의 페이로드부를 검사하는 검사 모듈; Inspection module for inspecting the payload section of the packet to use to decide how to route the packet; And
    상기 검사에 기초하여 상기 패킷을 상기 중앙 분배기에서 상기 복수의 캐시 서버로 선택적으로 라우팅하는 라우트 모듈 The route module on the basis of the inspection selectively routing the packet to the plurality of cache servers in the central distributor
    을 포함하는 통신망. Communication network comprising a.
  53. 제43항에 있어서, 상기 중앙 분배기는 하나 이상의 서버를 포함하는 통신망. 44. The method of claim 43, wherein the central distributor comprises one or more network servers.
  54. 제43항에 있어서, 상기 디지탈 컨텐트는 비디오, 음악 및 소프트웨어를 포함하는 통신망. The method of claim 43 wherein the digital content is a communication network that includes video, music and software.
  55. 통신망에서 디지탈 컨텐트를 가입자들에게 분배하는 방법으로서, A method for distributing digital content to subscribers in a communication network,
    중앙 분배기에서 디지탈 컨텐트를 분배하는 단계; The step of distributing the digital content from a central distributor;
    상기 분배된 디지탈 컨텐트를 복수의 캐시 서버로 컨텐트 기반 라우팅하는 단계; Further comprising: content-based routing the distributed digital content to a plurality of cache servers;
    상기 복수의 캐시 서버에서 상기 컨텐트 기반 라우팅된 디지탈 컨텐트를 캐시하는 단계; The step of caching the content-based routed digital content at the plurality of cache servers;
    요구된 캐시 디지탈 컨텐트에 대한 사용자 가입을 수신하는 단계; Receiving a user's subscription to the requested digital content cache; And
    수신된 사용자 가입에 기초하여 요구된 디지탈 컨텐트를 상기 복수의 캐시 서버로부터 사용자들에게 전송하는 단계 Sending the digital content request based on the received user subscription to the user from the plurality of cache servers
    를 포함하는 방법. It comprises a.
  56. 제55항에 있어서, 상기 컨텐트 기반 라우팅 단계는 56. The method of claim 55, wherein the content-based routing step
    헤더부와, 디지탈 컨텐트 파일에 관련된 정보를 포함하는 페이로드부를 가진 패킷을 수신하는 단계; Receiving a packet having a header portion and a payload including information related to the digital content file units;
    상기 패킷을 어떻게 라우팅할 것인지를 결정하는 데 사용하기 위해 상기 패킷의 페이로드부를 검사하는 단계; Checking the payload portion of the packet to use to decide how to route the packet; And
    상기 검사에 기초하여 상기 패킷을 상기 복수의 캐시 서버로 선택적으로 라우팅하는 단계 Determining, based on the inspection selectively routing the packet to the plurality of cache servers
    를 포함하는 방법. It comprises a.
  57. 제56항에 있어서, 상기 검사 단계는 상기 페이로드부의 정보가 컨텐트 술어 정보와 이에 대응하는 수신처를 연관시키는 구조에서 상기 컨텐트 술어 정보와 일치하는지를 결정하는 단계를 포함하는 방법. The method according to claim 56, wherein the inspection step comprises the step of determining whether in a structure in which the payload unit information related to the content predicate information with corresponding destinations that match the content predicate information.
  58. 제56항에 있어서, 상기 검사 단계는 상기 페이로드부의 정보에 필터를 적용하는 단계를 포함하는 방법. The method according to claim 56, wherein the inspection step comprises the step of applying a filter to the information payload portion.
  59. 제58항에 있어서, 상기 검사를 행하는 데 사용하기 위해 상기 통신망에서 라우팅 박스로 상기 필터를 전송하는 단계를 더 포함하는 방법. 59. The method of claim 58, further comprising the step of transferring the filter to a routing box in the network for use in performing the inspecting.
  60. 제56항에 있어서, 상기 수신, 검사 및 라우팅 단계를 행하기 위해 상기 통신망에서 라우팅 박스를 프로그래밍하는 단계를 더 포함하는 방법. The method according to claim 56, further comprising the step of programming a routing box in the network in order to perform the receiving, checking and routing steps.
  61. 제56항에 있어서, 상기 검사 단계는 상기 패킷을 어떻게 라우팅할 것인지를 결정하는 데 사용하기 위해 속성들을 검사하는 단계를 포함하는 방법. 57. The method of claim 56 wherein the inspecting step comprises inspecting attributes for use in determining how to route the packet.
  62. 제56항에 있어서, 라우팅 박스에서 상기 검사 단계를 행하는 단계를 더 포함하는 방법. The method according to claim 56, further comprising the step of performing the inspecting step in a routing box.
  63. 제55항에 있어서, 상기 복수의 캐시 서버는 제1 레벨의 캐시 서버이며, 상기 방법은 컨텐트 기반 라우팅을 이용하여 캐시된 디지탈 컨텐트를 제2 레벨의 캐시 서버로 전송하는 단계를 더 포함하는 방법. 56. The method of claim 55, wherein the plurality of cache server is a cache server in the first level, the method further comprising the step of transmitting the digital content cache using a content-based routing to a cache server in the second level.
  64. 제63항에 있어서, 상기 요구된 디지탈 컨텐트가 상기 제2 레벨의 캐시 서버에 있는지를 결정하는 단계를 더 포함하는 방법. 64. The method of claim 63, further comprising the step of the requested digital content, determines whether the cache server of the second level.
  65. 제64항에 있어서, 상기 결정에 기초하여 수신된 사용자 가입을 상기 제1 레벨의 캐시 서버로 전송하는 단계를 더 포함하는 방법. The method of claim 64, wherein the method further comprises the step of transmitting the received user's subscription based on the determination by the cache server in the first level.
  66. 제63항에 있어서, 64. The method of claim 63,
    상기 전송 단계는, 수신된 사용자 서브스크립션의 히스토리에 기초한 콘텐트 기반 라우팅을 이용하여 캐시된 디지털 콘텐트를 상기 제2 레벨의 캐시 서버로 전송하는 방법. The transmitting step, the method for transmitting the using content-based routing based on a history of received user subscriptions illustration cached digital content to the cache server in the second level.
  67. 서비스 보증의 품질과 관련하여 네트워크에서 패킷을 라우팅하는 방법으로서, A method with regard to quality of service guarantees for routing packets in a network,
    헤더 섹션과 페이로드 섹션을 갖는 패킷을 수신하는 단계와, Receiving a packet having a header section and a payload section,
    상기 패킷을 라우팅하는 방식을 결정하는데 이용하도록 네트워크 코어에서 상기 패킷의 페이로드 섹션을 검사하는 단계와, And inspecting the payload section of the packet in a network core for use in determining how to route the packet,
    상기 패킷에 대한 서비스 보증의 품질을 결정하는 단계와, And determining a quality of service guarantee for the packet,
    상기 검사 단계와 상기 서비스 보증의 품질에 기초하여 상기 패킷을 선택적으로 라우팅하는 단계 Selectively routing the packet based on the quality of the inspection step and the service warranty
    를 포함하는 방법. It comprises a.
  68. 제67항에 있어서, 68. The method of claim 67,
    상기 검사 단계는, 콘텐트 술어 정보가 대응하는 네트워크 목적지와 연관되어 있는 구조에서 상기 콘텐트 술어 정보가 상기 페이로드 섹션에서의 정보와 매칭하는지 여부를 결정하는 단계를 포함하는 방법. It said checking step is, in the structure that is associated with a network destination for the content predicate information response comprises the step of determining whether said content predicate information matches the information in the payload section.
  69. 제67항에 있어서, 68. The method of claim 67,
    상기 네트워크 코어의 라우터에서 상기 검사 단계를 수행하는 단계를 더 포함하는 방법. In the router of the core network, the method further including performing the inspecting step.
  70. 제67항에 있어서, 68. The method of claim 67,
    상기 검사 단계는, 필터를 상기 페이로드 섹션의 정보에 매칭하는 단계를 포함하는 방법. Method for the inspection step, the filter comprising the step of matching the information in the payload section.
  71. 제70항에 있어서, The method of claim 70, wherein
    상기 검사를 수행하는데 이용하도록 상기 필터를 상기 네트워크의 라우터에 전달하는 단계를 더 포함하는 방법. Comprising the step of transferring the filter to a router in the network to further use in performing the inspecting.
  72. 제67항에 있어서, 68. The method of claim 67,
    상기 수신 단계, 검사 단계, 및 라우팅 단계를 수행하도록 상기 네트워크의 라우터를 프로그래밍하는 단계를 더 포함하는 방법. Further comprising the step of programming a router in the network for performing the receiving step, the inspection step, and routing steps.
  73. 제67항에 있어서, 68. The method of claim 67,
    상기 검사 단계는, 상기 패킷을 라우팅하는 방식을 결정하거나 상기 패킷을 모두 드롭할지 여부를 결정하는데 이용하도록 속성을 검사하는 단계를 포함하는 방법. It said checking step comprises the step of determining how to route the packet or check the property to be used to determine whether all of dropping the packet.
  74. 네트워크에서 메시지를 라우팅하는 방법으로서, A method for routing messages in a network,
    헤더 섹션, 적어도 하나의 주제, 및 적어도 하나의 속성을 갖는 메시지를 수신하는 단계와, A header section, at least one subject, and receiving a message having at least one attribute and,
    상기 메시지로부터 상기 주제와 속성을 검색하는 단계와, And retrieving the subject and the attribute from the message,
    상기 주제에 기초하여 서브스크립션을 검색하는 단계와, And retrieving a subscription based upon the subject,
    상기 메시지에 대한 서비스 보증의 품질을 결정하는 단계와, And determining a quality of service guarantee for the message,
    상기 메시지를 라우팅하는 방식을 결정하기 위해 네트워크 코어에서 상기 속성을 상기 서브스크립션에 적용하는 단계와, And applying the attribute in a network core in order to determine how to route the message to the illustration the subscription,
    상기 적용 단계 및 상기 서비스 보증의 품질에 기초하여 상기 메시지를 선택적으로 라우팅하는 단계 The application step and the step of selectively routing the message based on the quality of the service warranty
    를 포함하는 방법. It comprises a.
  75. 제74항에 있어서, The method of claim 74, wherein
    상기 서브스크립션을 검색하는 단계는, 상기 서브스크립션에 대응하는 필터를 검색하는 단계를 포함하는 방법. Retrieving a design the subscription, the method comprising the step of retrieving a filter corresponding to the illustration subscription.
  76. 제74항에 있어서, The method of claim 74, wherein
    상기 속성이 상기 서브스크립션을 만족하면 상기 메시지를 라우팅하는 단계를 더 포함하는 방법. If the attribute satisfies the subscription-design method further comprises the step of routing the message.
  77. 제74항에 있어서, The method of claim 74, wherein
    상기 속성이 상기 서브스크립션을 만족하지 않으면 상기 메시지를 폐기하는 단계를 더 포함하는 방법. If the attributes do not satisfy the design subscription method further comprising the step of discarding the message.
  78. 제74항에 있어서, The method of claim 74, wherein
    복수의 서브스크립션에 대응하는 복수의 필터를 검색하는 단계와, And retrieving a plurality of filters corresponding to a plurality illustration of the subscription,
    상기 메시지로부터 복수의 속성을 검색하는 단계와, And retrieving a plurality of attributes from the message,
    상기 속성의 각각을 상기 필터의 각각에 매칭하여 대응하는 서브스크립션중 임의의 서브스크립션이 만족되는지를 결정하는 단계와, Determining whether any of the subscriptions are satisfied during the subscription corresponding to each of the matching property to each of the filter,
    상기 서브스크립션중 임의의 서브스크립션이 만족되는지 여부에 기초하여 상기 메시지를 선택적으로 라우팅하는 단계 On the basis of whether or not the subscription is satisfied any subscription of illustration the method comprising selectively routing the message
    를 더 포함하는 방법. The method further includes.
  79. 제74항에 있어서, The method of claim 74, wherein
    상기 네트워크 코어의 라우터에서 상기 검사 단계를 수행하는 단계를 더 포함하는 방법. In the router of the core network, the method further including performing the inspecting step.
  80. 서비스 품질 보장과 관련하여 네트워크에서 패킷을 라우팅하는 장치로서, A device in relation to the quality of service guarantees for routing packets in a network,
    헤더 섹션과 페이로드 섹션을 갖는 패킷을 수신하는 모듈과, Module for receiving a packet having a header section and a payload section;
    상기 패킷을 라우팅하는 방식을 결정하는데 이용하도록 네트워크 코어에서 상기 패킷의 페이로드 섹션을 검사하는 적어도 하나의 모듈과, In a network core for use in determining how to route the packet and the at least one module for inspecting the payload section of the packet,
    상기 패킷에 대한 서비스 보증의 품질을 결정하는 모듈과, And a module that determines the quality of service guarantee for the packet,
    선행 단계들에 의해 결정된 서비스 보증의 품질 및 검사 결과에 기초하여 상기 패킷을 선택적으로 라우팅하는 모듈 Module on the basis of the quality and the result of the determined service guaranteed by the preceding stage selectively routing the packet
    을 포함하는 장치. Device comprising a.
  81. 제80항에 있어서, The method of claim 80, wherein
    상기 검사 모듈은, 콘텐트 술어 정보가 대응하는 네트워크 목적지 또는 인-라우터 처리를 관리하는 대응 규칙과 연관되어 있는 구조에서 상기 콘텐트 술어 정보가 상기 페이로드 섹션의 정보와 매칭하는지 여부를 결정하는 모듈을 포함하는 장치. The test module, a network destination or in which the content predicate information corresponding - including a module for determining whether said content predicate information matches the information in the payload section of the structure that is associated with the corresponding rule to manage the router processing apparatus.
  82. 제80항에 있어서, The method of claim 80, wherein
    상기 네트워크 코어의 라우터에서 상기 검사 단계를 수행하는 모듈을 더 포함하는 장치. In the router in the network core device further includes a module for performing the inspecting step.
  83. 제80항에 있어서, The method of claim 80, wherein
    상기 검사 모듈은 The test module
    필터를 상기 페이로드 섹션의 정보에 매칭시키는 모듈을 포함하는 장치. It comprises a module for matching the information of the payload section of the filter.
  84. 제83항에 있어서, According to claim 83,
    상기 필터를, 상기 검사를 수행하는데 이용하도록 상기 네트워크의 라우터에 전달하는 모듈을 더 포함하는 장치. Further comprising a module for forwarding to the router in the network for use in performing the test the filter.
  85. 제80항에 있어서, The method of claim 80, wherein
    상기 수신, 검사, 및 라우팅을 수행하도록 상기 네트워크의 라우터를 프로그래밍하는 모듈을 더 포함하는 장치. Further comprising a module for programming a router in the network for performing the receiving, inspecting, and routing.
  86. 제80항에 있어서, The method of claim 80, wherein
    상기 장치는 라우터인 장치. The apparatus comprises a router device.
  87. 네트워크에서 메시지를 라우팅하는 장치로서, An apparatus for routing a message from a network,
    헤더 섹션, 적어도 하나의 주제, 및 적어도 하나의 속성을 메시지를 수신하는 모듈과, The header section, at least one subject, and a module that receives at least one message property, and
    상기 메시지로부터 상기 주제와 속성을 검색하는 모듈과, And the module to retrieve the property from the subject and the message,
    상기 주제에 기초하여 서브스크립션을 검색하는 모듈과, And a module for retrieving a subscription based upon the subject,
    상기 메시지를 라우팅하는 방식을 결정하기 위해 네트워크 코어에서 상기 속성을 상기 서브스크립션에 적용하는 모듈과, And a module for applying the attribute in a network core in order to determine how to route the message to the illustration the subscription,
    상기 패킷용 서비스 보증의 품질을 결정하는 모듈 Module to determine the quality of service guarantee for the packet
    을 포함하는 장치. Device comprising a.
  88. 제87항에 있어서, The method of claim 87 wherein
    상기 서브스크립션을 검색하는 모듈은, 상기 서브스크립션에 대응하는 필터를 검색하는 모듈을 포함하는 장치. Module for retrieving the subscription is an illustration, the device comprising a module for retrieving a filter corresponding to the illustration subscription.
  89. 제87항에 있어서, The method of claim 87 wherein
    상기 서비스 보증의 품질에 기초하여, 그리고 상기 속성이 상기 서브스크립션을 만족하면 상기 메시지를 선택적으로 라우팅하는 모듈을 더 포함하는 장치. Based on the quality of the service coverage, and if the attribute satisfies the subscription illustration the apparatus further including a module for selectively routing the message.
  90. 제87항에 있어서, The method of claim 87 wherein
    상기 속성이 상기 라우터에 저장된 임의의 서브스크립션을 만족하지 않으면 상기 메시지를 폐기하는 모듈을 더 포함하는 장치. If you do not have the properties satisfy any of the subscription stored in the router apparatus further including a module for discarding the message.
  91. 제87항에 있어서, The method of claim 87 wherein
    복수의 서브스크립션에 대응하는 복수의 필터를 검색하기 위한 모듈; Module for retrieving a plurality of filters corresponding to a plurality illustration of the subscription;
    메시지로부터 복수의 속성을 검색하기 위한 모듈; Module for retrieving a plurality of attributes from the message;
    각각의 속성을 각각의 필터에 매칭시켜 대응 서브스크립션중 만족하는 것이 있는지 판정하는 필터링 모듈; Filtering module for determining whether to satisfy the subscription of the illustration corresponds to matching each of the attributes to each of the filter; And
    서브스크립션중 만족하는 것이 있는지 여부에 기초하여 메시지를 선택적으로 라우팅하기 위한 모듈 Module for selective routing of messages based on whether or not to satisfy one subscription
    을 포함하는 장치. Device comprising a.
  92. 제87항에 있어서, The method of claim 87 wherein
    네트워크 코어의 라우터에서 필터링 단계를 실행하기 위한 하나 이상의 모듈을 더 포함하는 장치. Further comprising one or more modules for performing the filtering step at a router in the network core.
  93. 제87항에 있어서, 상기 장치가 라우터인 장치. The method of claim 87, wherein the device and the device is a router.
  94. 멀티캐스트 네트워크에서 데이터의 패킷을 라우팅하고 캐싱하는 방법으로서, In a multicast network method for routing and caching packets of data,
    헤더 섹션 및 페이로드 섹션을 갖는 패킷을 수신하는 단계; Receiving a packet having a header section and a payload section;
    상기 패킷을 가입자에게 라우팅하는 방식을 결정하는데 사용하기 위해 네트워크 코어에서 패킷의 페이로드 섹션을 검사하는 단계; Inspecting the payload section of the packet in a network core for use in determining how to route the packet to subscribers;
    상기 검사에 기초하여 패킷을 선택적으로 라우팅하는 단계; Selectively routing the packet based upon the inspecting; And
    상기 네트워크 코어의 패킷으로부터 데이터를 국지적으로 캐싱하는 단계 Comprising: locally caching data from the packet in the network core
    를 포함하는 방법. It comprises a.
  95. 제94항에 있어서, 라우터에서 상기 검사 단계를 실시하는 방법. The method of claim 94, wherein the method for performing the inspecting step at a router.
  96. 제94항에 있어서, 상기 검사 단계는 상기 페이로드 섹션의 정보에 필터를 적용하는 것을 포함하는 방법. The method of claim 94 wherein the inspecting step comprises applying a filter to information in the payload section.
  97. 제96항에 있어서, 상기 검사를 실시하는데 사용하기 위해 상기 네트워크의 라우터로 상기 필터를 전달하는 단계를 더 포함하는 방법. The method of claim 96, wherein the method further comprises the step of transferring the filter to a router in the network for use in conducting the test.
  98. 제94항에 있어서, 상기 수신 단계, 검사 단계, 라우팅 단계를 실시하도록 상기 네트워크의 라우터를 프로그래밍하는 단계를 포함하는 방법. The method of claim 94, wherein the method comprises the step of programming a router in the network to carry out the receiving step, the inspection step, the routing step.
  99. 제94항에 있어서, 상기 검사 단계는 상기 패킷을 라우팅하는 방법을 결정하는데 사용하기 위해 속성을 검사하는 것을 포함하는 방법. The method of claim 94 wherein the inspecting step comprises inspecting the attributes for use in determining how to route the packet.
  100. 제94항에 있어서, 캐싱된 데이터를 타임 마킹하는 단계를 더 포함하는 방법. The method of claim 94, wherein the method further comprising: time marking the cached data.
  101. 제94항에 있어서, 캐싱된 데이터를 인덱싱하는 단계를 더 포함하는 방법. According to claim 94, further comprising the step of indexing the cached data.
  102. 제94항에 있어서, The method of claim 94, wherein
    데이터 요청을 수신하는 단계; Receiving a data request; And
    캐싱된 데이터가 상기 요청을 만족하는지 판정하는 단계 Determining whether the cached data satisfies the request
    를 더 포함하는 방법. The method further includes.
  103. 제94항에 있어서, 엣지 라우팅 노드에서 상기 패킷으로부터 데이터를 국지적으로 캐싱하는 단계를 더 포함하는 방법. According to claim 94, further comprising the step of locally caching data from the packet at an edge routing node.
  104. 제94항에 있어서, 타임 프레임 T의 만료후에 캐싱된 데이터를 제거하는 단계를 더 포함하는 방법. According to claim 94, further comprising the step of removing the cached data after the expiration of the time frame T.
  105. 데이터의 패킷을 라우팅하고 캐싱하기 위한 네트워크로서, A network for routing and caching packets of data,
    헤더 섹션 및 페이로드 섹션을 갖는 패킷을 수신하고 라우팅하는 엣지 라우팅 노드; Edge routing node that receives a packet having a header section and a payload section, and routing; And
    상기 패킷을 수신하고 라우팅하는 하나 이상의 코어 라우팅 노드를 포함하고, And it includes one or more core routing nodes that receive and route the packet,
    상기 엣지 라우팅 노드는 The edge routing node,
    수신된 패킷을 라우팅하는 지능형 라우터 라우터; To route the received packet to the intelligent router, the router; And
    상기 지능형 라우터 라우터와 연결된 캐시 메니저를 포함하고, And a cache manager coupled to the intelligent router, the router,
    상기 지능형 라우터 라우터는 The intelligent router router
    상기 패킷을 가입자에게 라우팅하는 방식을 결정하는데 사용하기 위해 네트워크 코어에서 패킷의 페이로드 섹션을 검사하기 위한 명령; Instructions for inspecting the payload section of the packet in a network core for use in determining how to route the packet to subscribers; And
    상기 검사에 기초하여 패킷을 선택적으로 라우팅하기 위한 명령을 포함하고, On the basis of the tests, and including instructions for selectively routing the packet,
    상기 캐시 메니저는 상기 패킷으로부터 데이터를 로컬 캐시에 국지적으로 캐싱하기 위한 명령을 포함하는 네트워크. It said cache manager is a network including instructions for: locally caching data from the packet in the local cache.
  106. 제105항에 있어서, 상기 엣지 라우팅 노드에 연결된 에이전트를 더 포함하고, The method of claim 105, further comprising an agent connected to the edge routing node,
    상기 에이전트는 The agent
    캐싱된 데이터의 위치를 판정하기 위한 명령; Instructions for determining the location of the cached data;
    상기 로컬 캐시로부터 캐싱된 데이터를 검색하기 위한 명령; Instructions for retrieving the cached data from the local cache; And
    검색된 캐시 데이터를 처리하기 위한 명령 Instructions for processing the retrieved data cache
    을 포함하는 네트워크. Network including the.
  107. 제105항에 있어서, 상기 하나 이상의 코어 라우팅 노드중 하나는 상기 엣지 라우팅 노드로부터 직접 업스트림하는 노드이고, According to claim 105, wherein one of the one or more core routing nodes is a node that is directly upstream from the edge routing node,
    상기 직접 업스트림 코어 라우팅 노드는 The directly upstream core routing node,
    수신된 패킷을 라우팅하는 지능형 라우터 라우터; To route the received packet to the intelligent router, the router; And
    상기 지능형 라우터 라우터와 연결된 캐시 메니저를 포함하고, And a cache manager coupled to the intelligent router, the router,
    상기 지능형 라우터 라우터는 The intelligent router router
    상기 패킷을 가입자에게 라우팅하는 방식을 결정하는데 사용하기 위해 네트워크 코어에서 패킷의 페이로드 섹션을 검사하기 위한 명령; Instructions for inspecting the payload section of the packet in a network core for use in determining how to route the packet to subscribers; And
    상기 검사에 기초하여 패킷을 선택적으로 라우팅하기 위한 명령을 포함하고, On the basis of the tests, and including instructions for selectively routing the packet,
    상기 캐시 메니저는 상기 패킷으로부터 데이터를 로컬 캐시에 국지적으로 캐싱하기 위한 명령을 포함하는 네트워크. It said cache manager is a network including instructions for: locally caching data from the packet in the local cache.
  108. 제105항에 있어서, 복수의 채널에 특성을 제공하는 복수의 채널 메니저를 더 포함하는 네트워크. The method of claim 105, wherein the network further comprises a plurality of channel manager that provide properties for a plurality of channels.
  109. 제105항에 있어서, 상기 캐시 메니저는 캐싱된 데이터를 타임 마킹하기 위한 명령을 더 포함하는 네트워크. The method of claim 105, wherein the cache manager is a network further comprises instructions for: time marking the cached data.
  110. 제105항에 있어서, 상기 캐시 메니저는 캐싱된 데이터를 인덱싱하기 위한 명령을 더 포함하는 네트워크. According to claim 105, wherein the cache manager is a network further comprises instructions for: indexing the cached data.
  111. 제105항에 있어서, 상기 캐시 메니저는 The method of claim 105, wherein the cache manager is
    데이터 요청을 수신하기 위한 명령; Instructions for receiving a request for data; And
    캐싱된 데이터가 상기 요청을 만족하는지 판정하기 위한 명령 Instructions for determining whether the cached data satisfies the request
    을 더 포함하는 네트워크. The network further comprising a.
  112. 멀티캐스트 네트워크에서 데이터의 패킷을 라우팅하고 캐싱하는 장치로서, In a multicast network, an apparatus for routing and caching packets of data,
    복수의 프로세서를 포함하고, A plurality of processors,
    헤더 섹션 및 페이로드 섹션을 갖는 패킷을 수신하기 위한 명령; Instructions for receiving a packet having a header section and a payload section;
    상기 패킷을 가입자에게 라우팅하는 방식을 결정하는데 사용하기 위해 네트워크 코어에서 패킷의 페이로드 섹션을 검사하기 위한 명령; Instructions for inspecting the payload section of the packet in a network core for use in determining how to route the packet to subscribers;
    상기 검사에 기초하여 패킷을 선택적으로 라우팅하기 위한 명령; Instructions for selectively routing the packet based upon the inspecting; And
    상기 네트워크 코어의 패킷으로부터 데이터를 국지적으로 캐싱하기 위한 명령을 포함하는 장치. Apparatus including an instruction for local caching of data from the packet in the network core.
  113. 제112항에 있어서, 상기 복수의 프로세서는 제1 프로세서 및 제2 프로세서를 포함하고, 상기 제1 프로세서는 상기 검사 및 선택적 라우팅 명령을 실행하고, 상기 제2 프로세서는 상기 국지적 캐싱 명령을 실행하는 장치. The method of claim 112, wherein the second processor of the plurality of processors comprises a first processor and a second processor, the first processor executes the inspecting and selectively routing instructions, the apparatus for executing the locally caching instruction .
KR20057000385A 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 KR100985237B1 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
US39463102 true 2002-07-08 2002-07-08
US39464102 true 2002-07-08 2002-07-08
US39456102 true 2002-07-08 2002-07-08
US39471402 true 2002-07-08 2002-07-08
US60/394,631 2002-07-08
US60/394,561 2002-07-08
US60/394,714 2002-07-08
US60/394,641 2002-07-08
PCT/US2003/021338 WO2004006486A3 (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
KR20050017108A true true KR20050017108A (en) 2005-02-21
KR100985237B1 KR100985237B1 (en) 2010-10-04

Family

ID=30119330

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20057000385A KR100985237B1 (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

Country Status (5)

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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101026209B1 (en) * 2005-12-06 2011-03-31 립퍼시 셀레스티얼 엘엘씨 Digital object routing
WO2012002726A2 (en) * 2010-06-30 2012-01-05 한국전자통신연구원 Communication node and communication method
KR101116109B1 (en) * 2005-12-06 2012-02-17 립퍼시 셀레스티얼 엘엘씨 Digital object title and transmission information
US9367514B2 (en) 2010-06-30 2016-06-14 Intellectual Discovery Co., Ltd. Communication node and communication method
US9686183B2 (en) 2005-12-06 2017-06-20 Zarbaña Digital Fund Llc Digital object routing based on a service request

Families Citing this family (17)

* 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 distribution system, pan registration device, pan management apparatus and packet transfer device
CN100587746C (en) * 2004-12-23 2010-02-03 艾利森电话股份有限公司 Method for informing emergency event to a plurality of 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
CN1925482B (en) 2005-09-01 2013-03-27 中兴通讯股份有限公司 Transforming method and device for human-machine order format
US8014389B2 (en) 2005-12-06 2011-09-06 Lippershy Celestial Llc Bidding network
US8194701B2 (en) 2005-12-06 2012-06-05 Lippershy Celestial Llc System and/or method for downstream bidding
JP4680068B2 (en) * 2006-01-05 2011-05-11 富士通株式会社 Communication control method, the network and network equipment
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
CN101969469B (en) * 2010-10-25 2013-11-06 华为技术有限公司 Callback processing method and device in telecom capability opening
US9402200B2 (en) 2011-11-29 2016-07-26 Telefonaktiebolaget L M Ericsson (Publ) Flow based packet manipulation congestion control
CN103166851B (en) * 2011-12-16 2016-06-15 中国电信股份有限公司 Internet information transfer processing method and system
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
CN106455140A (en) * 2014-01-24 2017-02-22 北京奇虎科技有限公司 Attribute information display system and router
CN104811740A (en) * 2015-04-29 2015-07-29 北京奇艺世纪科技有限公司 Video file distribution method, system and device
JP2017220132A (en) 2016-06-09 2017-12-14 富士通株式会社 Past information providing program, past information providing method, and past information providing device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0867088A4 (en) * 1995-12-15 2000-04-05 Telcordia Tech 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
GB9912901D0 (en) * 1999-06-04 1999-08-04 Ibm Message broker providing a publish/subscribe service and method of processing messages in a publish/subscribe environment
JP3685651B2 (en) * 1999-06-04 2005-08-24 沖電気工業株式会社 Interconnecting devices 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
GB9921776D0 (en) * 1999-09-16 1999-11-17 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101026209B1 (en) * 2005-12-06 2011-03-31 립퍼시 셀레스티얼 엘엘씨 Digital object routing
KR101116109B1 (en) * 2005-12-06 2012-02-17 립퍼시 셀레스티얼 엘엘씨 Digital object title and transmission information
US9686183B2 (en) 2005-12-06 2017-06-20 Zarbaña Digital Fund Llc Digital object routing based on a service request
WO2012002726A2 (en) * 2010-06-30 2012-01-05 한국전자통신연구원 Communication node and communication method
WO2012002726A3 (en) * 2010-06-30 2012-04-12 한국전자통신연구원 Communication node and communication method
US9367514B2 (en) 2010-06-30 2016-06-14 Intellectual Discovery Co., Ltd. Communication node and communication method

Also Published As

Publication number Publication date Type
CN1701304B (en) 2010-05-05 grant
KR100985237B1 (en) 2010-10-04 grant
CN1701304A (en) 2005-11-23 application
JP2010148118A (en) 2010-07-01 application
EP1535157A2 (en) 2005-06-01 application
EP1535157A4 (en) 2010-09-08 application
WO2004006486A3 (en) 2004-05-27 application
JP2005532748A (en) 2005-10-27 application
WO2004006486A2 (en) 2004-01-15 application

Similar Documents

Publication Publication Date Title
US7970918B2 (en) End-to-end publish/subscribe middleware architecture
US7978631B1 (en) Method and apparatus for encoding and mapping of virtual addresses for clusters
US7127518B2 (en) System and method for implementing application functionality within a network infrastructure
US7653008B2 (en) Dynamically configurable service oriented architecture
US6463447B2 (en) Optimizing bandwidth consumption for document distribution over a multicast enabled wide area network
US20060146991A1 (en) Provisioning and management in a message publish/subscribe system
US7013322B2 (en) System and method for rewriting a media resource request and/or response between origin server and client
US20130060962A1 (en) Generalized Dual-Mode Data Forwarding Plane for Information-Centric Network
US7328345B2 (en) Method and system for end to end securing of content for video on demand
US6581102B1 (en) System and method for integrating arbitrary isochronous processing algorithms in general media processing systems
US6925488B2 (en) Distributed intelligent information technology operations automation
US7277938B2 (en) Method and system for managing performance of data transfers for a data access system
US7761900B2 (en) Distribution of content and advertisement
US20060036679A1 (en) Pub/sub message invoking a subscribers client application program
US20020059451A1 (en) System and method for highly scalable high-speed content-based filtering and load balancing in interconnected fabrics
US20060036463A1 (en) Liquid computing
US7733868B2 (en) Layered multicast and fair bandwidth allocation and packet prioritization
US7181455B2 (en) Bandwidth management for remote services system
US7139844B2 (en) Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
US20030147390A1 (en) Protocol for multicast communication
US20050122979A1 (en) System and method for traversing metadata across multiple network domains at various layers of the protocol stack
Segall et al. Content based routing with elvin4
US20080199155A1 (en) System and Method for Video Recording, Management and Access
Calderon et al. Active network support for multicast applications
Legedza et al. Improving the performance of distributed applications using active networks

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130911

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150909

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160912

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170914

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180907

Year of fee payment: 9