KR20040008258A - 콘텐트 교환기들 상에 콘텐트 오브젝트들을 프리로딩하는방법 - Google Patents
콘텐트 교환기들 상에 콘텐트 오브젝트들을 프리로딩하는방법 Download PDFInfo
- Publication number
- KR20040008258A KR20040008258A KR1020027016449A KR20027016449A KR20040008258A KR 20040008258 A KR20040008258 A KR 20040008258A KR 1020027016449 A KR1020027016449 A KR 1020027016449A KR 20027016449 A KR20027016449 A KR 20027016449A KR 20040008258 A KR20040008258 A KR 20040008258A
- Authority
- KR
- South Korea
- Prior art keywords
- content
- origin server
- waiting
- exchange
- objects
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/30—Routing of multiclass traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4552—Lookup mechanisms between a plurality of directories; Synchronisation of directories, e.g. metadirectories
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5069—Address allocation for group communication, multicast communication or broadcast communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2216/00—Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
- G06F2216/09—Obsolescence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/604—Address structures or formats
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
- H04L2101/618—Details of network addresses
- H04L2101/663—Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/288—Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/24—Negotiation of communication capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
Abstract
본 발명에 따라, 네트워크 위의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법이 설명된다. 1 단계에서, 과정은 시작하는 사건을 기다린다. 제 1 원 서버가 콘텐트 저장부에 콘텐트를 저장할 수 있도록 허용되는지를 결정한다. 제 1 콘텐트 오브젝트는 제 1 콘텐트 오브젝트에 대한 요청 없이, 콘텐트 저장부 상에 제 1 원 서버로부터 로딩된다. 제 2 원 서버가 콘텐트 저장부에 콘텐트를 저장할 수 있도록 허용되는지를 결정한다. 제 2 콘텐트 오브젝트는 제 2 콘텐트 오브젝트에 대한 요청 없이도 콘텐트 저장부 상에 제 2 원 서버로부터 로딩된다.
Description
본 발명은 일반적으로는 정보를 저장하는 것에 관한 것이며, 더욱 상세하게는 네트워크 상에 정보를 저장하는 것에 관한 것이다.
콘텐트의 스트리밍을 위하여 서비스의 품질(QOS ; quality of service)을 향상시키기 위해 광대역 산업 분야에서 노력이 진행중이다. 장기간 동안 지속적인 데이터 속도로 데이터의 스트림들을 제공하기에는, 오늘날 인터넷 하부구조가 장비 불충분이다. 일각에서 시도해 온 한가지 해결책은 데이터를 요청하는 사용자와 데이터를 제공하는 원 서버(origin server) 사이의 일정 지점에서 정보를 캐시(cache)하는 것이다.
QOS에 영향을 주는 인터넷 하부구조에는 그밖에 다른 많은 제한들이 있다. QOS에 영향을 주는 현재 제한의 예로, 업스트림(upstream) 대역폭 상에 인터넷 서비스 제공자(ISP)들에 의해 강요된 제한들이 있다. 전형적으로, 업스트림 대역폭은 인터넷 서비스 제공자에 의해 다운스트림 대역폭의 단편에 제한된다.
제한된 업스트림 대역폭은 과대 가입된 대역폭 상황에서 최대 부하(loading) 조건에 의해 더 억제된다. 예를 들어, e-메일을 점검하고 웹을 검색하는 수많은 사람들에게 일반적으로 기여하는 근무일과 직후 인터넷 시스템에 대한 수요가 증가되고 있다. 이러한 증가된 수요는 모든 사용자들에게 부담을 주어, 그들의 네트워크 연결들이 각각 느리게 한다. 그러한 최대 사용 기간 동안 요청되는 대역폭을 감소시킬 수 있는 것이 크게 요망된다.
본 출원은 2000년 1월 1일 출원된 미국 임시 출원 제 60/209,007 호 및 2000년 9월 출원된 미국 출원 제 09/665,204 호의 권리를 청구한다.
첨부된 도면들과 관련해서 본 발명을 설명한다.
도 1은 콘텐트 배포 시스템(content distribution system)의 실시예의 블록도이고,
도 2는 콘텐트 배포 시스템의 액티브 디렉토리부의 실시예의 블록도이며,
도 3A는 콘텐트 배포 시스템의 원 서버부의 실시예의 블록도이고,
도 3B는 콘텐트 배포 시스템의 외부 원 서버부의 실시예의 블록도이며,
도 4A는 콘텐트 배포 시스템의 콘텐트 교환부의 실시예의 블록도이고,
도 4B는 콘텐트 배포 시스템의 콘텐트 교환부의 다른 실시예의 블록도이며,
도 4C는 다중 콘텐트 교환 서버들을 포함하는 콘텐트 교환 사이트의 실시예의 블록도이고,
도 5는 콘텐트 배포 시스템의 클라이언트 컴퓨터 부분의 실시예의 블록도이며,
도 6은 콘텐트 배포 시스템의 실시예의 블록도이고,
도 7은 두 가지 유형의 콘텐트 교환기들을 갖는 콘텐트 배포 시스템의 또 다른 실시예의 블록도이며,
도 8은 콘텐트 배포 시스템의 또 다른 실시예의 블록도이고,
도 9는 유효 저장 용량을 갖는 전용 콘텐트 교환기(captive content exchange)를 대중화시키는 과정의 실시예의 흐름도이며,
도 10은 전용 콘텐트 교환기를 대중화시키는 과정의 다른 실시예의 흐름도이고,
도 11은 전용 콘텐트 교환기를 대중화시키는 과정의 또 다른 실시예의 흐름도이며,
도 12는 원 서버로부터 온 콘텐트를 가지고 배포된 저장 시스템을 대중화시키는 과정의 실시예의 흐름도이며,
도 13은 클라이언트 컴퓨터에 콘텐트 교환의 목록을 제공하는 과정의 실시예의 흐름도이다.
첨부된 도면들에서, 유사한 구성요소들 및/또는 부분들은 동일한 도면 부호를 가진다. 또한, 동일한 종류의 다양한 구성요소들은 유사한 구성 요소들 사이를 구별하는 제 2 부호와 대시로 도면부호를 따르도록 함으로써 구별할 수 있다. 이 명세서에서는 제 1 부호만을 사용하면, 제 2 부호와 무관한 동일한 제 1 부호를 갖는 유사한 구성요소들 중의 어느 하나에 적용할 수 있다.
다음의 설명은 본 발명의 바람직한 실시예(들)를 단지 예시한 것이며, 본 발명의 범위, 작용효과 또는 구성을 한정하려는 의도는 아니다. 본 발명의 바람직한 실시예(들)에 대한 아래 설명은 본 발명의 바람직한 실시예를 구현하기 위한 유용한 설명을 당업자들에게 제공할 것이다. 첨부된 청구범위에 기재된 본 발명의 사상과 범위로부터 벗어나지 않고도 구성요소들의 기능과 배열에 있어서 다양한 변화를 시킬 수 있다는 것은 자명하다.
본 발명은 콘텐트 오브젝트들(content objects)을 가지고 콘텐트 교환기에 프리로딩하는 기술을 포함한다. 일반적으로, 프리로딩되는 콘텐트 교환기들은 클라이언트 컴퓨터들 및 원 서버들과 연관되어 있다. 원 서버들의 콘텐트 오브젝트들의 일부 또는 전부는 그러한 연관된 콘텐트 교환기들 상에 로딩된다. 콘텐트 교환기에 낮은 대역폭 이용을 하는 것과 같은 트리거 사건에 의해서, 콘텐트 교환기가 콘텐트 오브젝트들을 로링하게 된다.
도 1을 참조하면, 콘텐트 배포 시스템의 실시예의 블록도가 도시되어 있다. 본 실시예에서, 콘텐트 배포 시스템(100)은 액티브 디렉토리(104)와, 하나 또는 그 이상의 원 서버들(108)과, 하나 또는 그 이상의 클라이언트 컴퓨터들(112)과, 하나 또는 그 이상의 콘텐트 교환기들(116)과, 하나 또는 그 이상의 외부 원 서버들(118)과, 하나 또는 그 이상의 연관되지 않은(unassociated) 원 서버들(106)과, 인터넷(120), 및 크로울링(crawling) 디렉토리(124)를 포함한다. 특정 클라이언트 컴퓨터(112)는 다운로드하기 위한 콘텐트 오브젝트를 선택하도록, 액티브 디렉토리(104)와 상호 작용한다. 스트리밍 미디어이면, 다운로드 동안 재생될 수 있고, 또한, 추후 재생을 위해 저장될 수 있다. 콘텐트 오브젝트가 수행되거나, 저장되었다가 나중에 재생될 수도 있다. 콘텐트 오브젝트는 네트워크로부터 다운로드할 수 있는 오디오, 비디오 또는 데이터와 같은 어떠한 종류의 정보라도 될 수 있다. 콘텐트 오브젝트의 요청은 클라이언트 컴퓨터(112)로부터, 선호도 정보와 함께 적절한 원 서버(108)로 지시한다. 원 서버(108)는 어디로부터 그 오브젝트가 다운로드되어야 하는지를 결정한다. 충분한 QOS를 제공하기 위해서, 소정의 콘텐트 교환기들(116) 심지어 원 서버(108) 그 자체가 오브젝트를 제공할 수 있다.
액티브 디렉토리(104)는 콘텐트 오브젝트를 선택하기 위해 클라이언트 컴퓨터(112)에 대한 인터페이스가 될 수 있다. 원 서버(108) 및 선택적으로, 클라이언트 컴퓨터(112) 양자 모두를 위한 소프트웨어가 액티브 디렉토리(104)로부터 다운로드되어 콘텐트 배포 시스템(100)을 사용 가능하게 할 수 있다. 다운로드를 위해 요청되는 콘텐트 오브젝트를 결정하기 위해, 액티브 디렉토리(104) 안에 있는 검색 인터페이스 페이지 또는 디렉토리 인터페이스 페이지 중의 어느 것을 사용해도 된다. 원 서버(108) 상의 콘텐트 오브젝트들과의 링크가 단절되는 것을 피하기 위해서, 인터페이스들은 액티브 방식으로 관리한다. 콘텐트 오브젝트가 콘텐트 교환기(116)에 의해 원 서버(108)로부터 필요해 질 때, 액티브 디렉토리(104)는 콘텐트 오브젝트를 발생시켰던 적절한 원 서버(108)에 대한 복귀 경로를 제공할 수 있다.
본 발명의 다른 실시예들은 다중의 액티브 디렉토리들을 가질 수 있다. 시스템의 사용자들은 부하(loading)를 분산시키기 위해 몇 개의 액티브 디렉토리들 사이에서 분할될 수 있다. 또한, 하나의 액티브 디렉토리가 오프라인인 경우 나머지가 부하를 흡수하도록, 다른 액티브 디렉토리들이 러던던시(redundancy)로 사용될 수 있다.
본 발명의 일부 실시예에서, 원 서버(108)는 콘텐트 오브젝트의 소스를 제공하고, 사용자를 그 콘텐트 오브젝트의 선호 소스에 안내하며, 액티브 디렉토리(104)에 디렉토리 정보를 제공한다. 콘텐트 오브젝트들은 원 서버들(108)에 의해 시스템(108)으로 유도된다. 액티브 디렉토리(104)에서 이용 가능하게 하도록, 콘텐트 오브젝트들의 원 서버 관리자에 의한 선택을 포함하여 유도한다. 콘텐트 오브젝트들은 이미 저장된 정보 또는 정보의 스트리밍 공급을 포함한다. 미리 결정된 주기에 따라, 원 서버(108) 상의 콘텐트가 변함에 따라, 원 서버(108)는 갱신된 선택된 정보의 목록을 제공한다.
콘텐트 오브젝트를 다운로드하기 위해서, 원 서버(108)는 선호 소스가 클라이언트 컴퓨터(112)를 지시하도록 결정한다. 클라이언트 컴퓨터(112)의 선호 리스트와, 콘텐트 교환기의 부하 및 콘텐트 오브젝트의 사본의 위치는, 정보의 선호 소스로 클라이언트 컴퓨터로 안내시 원 서버(108)의 모든 고려사항들이다. 그러한 소스는 원 서버(108) 자체일 수도 있고, 또는 콘텐트 교환기들(116) 중의 하나일 수 있다.
사용자는 원하는 오브젝트 콘텐트를 찾기 위한 위치로 클라이언트 컴퓨터(112)를 지시하고, 후속해서 그 오브젝트 콘텐트를 다운로드한다. 액티브 디렉토리(104)로부터 다운로드된 뷰어 오브젝트 프록시 소프트웨어를 사용하여, 클라이언트 컴퓨터(112)는, 적절한 QOS를 갖는 콘텐트를 전달할 수 있는 콘텐트 교환기들(116)을 결정한다. 적절한 QOS를 갖는 콘텐트 교환기(116)를 결정하는 과정은, 예컨대 최상의 결과를 얻기 용이한 콘텐트 교환기들(116)로부터 테스트 정보를 수신하는 단계와, 그러한 테스트 결과들에 기초해서 선호 리스트를 준비하는 단계를 포함한다. 사용자는 기성화된 접근법이 바람직한 경우, 콘텐트 교환기(116)의 선호 리스트를 변경할 수 있다. 원 서버(108)가 콘텐트 오브젝트의 소스를 결정할 때, 적절한 QOS를 제공하기 위해 선호 정보가 사용된다.
연관되지 않은 콘텐트 서버들(106)은 시스템(100)과 정식으로 연관되지 않은 인터넷상의 서버들이다. 본 실시예에서도, 콘텐트 교환기(116)는 연관되지 않은 콘텐트 서버들(106)로부터 콘텐트 오브젝트들을 캐시하여, 개선된 QOS를 클라이언트 컴퓨터(112)에 제공할 것이다. 일부 실시예들에서는, 클라이언트 컴퓨터(112)의 사용자들은 콘텐트 교환기 소유자들에게 개선된 QOS를 보상할 것이다.
외부 원 서버들(118)은 클라이언트 컴퓨터(112)에 유효 콘텐트 오브젝트들을 부가적인 소스들일 수 있다. 한 실시예에서, 외부 원 서버들(118)은 콘텐트 교환기(들)(116)에 연결된다. 외부 원 서버들 상의 콘텐트 오브젝트들은, 배포된 콘텐트 교환기들 상에 반영되어 외부 원 서버에 부담을 주지 않으면서 배포를 증강시킨다. 외부 원 서버(118)로부터 콘텐트 오브젝트들을 요청하는 클라이언트 컴퓨터들(112)은 콘텐트 오브젝트의 요청 사항을 실행하도록 콘텐트 교환기(116)로 투명하게 방향 지정된다.
콘텐트 교환기들(116)은 콘텐트 오브젝트들을 캐시하는 저장부이다. 수많은이들 콘텐트 교환기들(116)은 콘텐트 오브젝트들을 캐시하기 위해 인터넷(120)의 상이한 지점들로 배포된다. 이러한 방법으로, 임의의 클라이언트 컴퓨터(112)는 인터넷(120) 상에 그에 가까운 캐시를 적당히 갖는다. 정보는, 사용자들에게 선호도 정보, 사용자들에게 용이하게 이용 가능한 콘텐트를 원하는 원 서버들(108)에게 서비스, 향상된 QOS를 원하는 사용자들에게 서비스와 같이, 수많은 콘텐트 오브젝트들에 기초해서 캐시되어, 업스트림 대역폭을 오프로딩(offload)한다.
상기 언급한 바와 같이, 원 서버(108)는, 콘텐트 오브젝트에 대한 클라이언트 컴퓨터(112) 요청을, 그 요청의 실행을 위한 콘텐트 교환기(116)에 위탁할 수도 있다. 요청된 콘텐트 오브젝트 또는 요청된 콘텐트 오브젝트의 일부가, 콘텐트 교환기(116)로부터 그것을 요청하는 사용자에 의해 발견되지 않으면, 그러한 콘텐트 오브젝트를 위해, 하나의 콘텐트 교환기(116)에 의해 그밖에 다른 콘텐트 교환기로 요청한다. 콘텐트 오브젝트를 갖는 다른 콘텐트 교환기들(116)이 없으면, 액티브 디렉토리(104)는 원 서버(108), 연관되지 않은 원 서버(106), 또는 콘텐트 오브젝트의 소스인 외부 원 서버(188)에 대해 질의를 받고, 콘텐트 오브젝트는 거기로부터 콘텐트 교환기(116)로 다운로드된다. 콘텐트 교환기(116)가 콘텐트 오브젝트를 수집하고 있는 동안, 클라이언트 컴퓨터(112)는, 유효 콘텐트 오브젝트의 임의의 초기 부분들을 수신하고 있다. 콘텐트 오브젝트는 수 개의 콘텐트 교환기(116) 상에 단편들로 저장되며, 이러한 환경 하에서, 요청하는 콘텐트 교환기(116)는, 클라이언트 컴퓨터(112)에 의해 요청됨에 따라 전체 콘텐트 오브젝트를 재구성하도록 이들 단편들을 검색할 것이다.
크로울링 디렉토리(124)는 모든 원 서버들(108)에 의해 보고된 목록 정보를 보충하기 위해 사용된다. 사용자를 위한 콘텐트 오브젝트들을 탐색할 때, 액티브 디렉토리(104)는 원 서버들(108)로부터 유효 콘텐트 오브젝트들을 표시할 수 있을 뿐만 아니라, 연관되지 않은 원 서버들(106) 또는 외부 원 서버들(118) 상에 상주하는 크로울링 디렉토리(124)에 의해 노출된 그밖에 다른 콘텐트 오브젝트들을 표시할 수 있다. 웹을 순회함으로써, 크로울링 디렉토리들(124)은 콘텐트 오브젝트들 및 그밖에 다른 그들이 만나는 정보를 목록화한다. 예를 들어, 액티브 디렉토리(104)에 의한 크로울링 디렉토리(124)의 키워드 탐색은, 사용자가, 임의의 원 서버들(108)로부터 이용할 수 없는 연관되지 않은 원 서버(106) 또는 외부 원 서버들(118) 상의 콘텐트 오브젝트를 지시하게 한다. 콘텐트 교환기들(116) 중의 하나는, 클라이언트 컴퓨터(112)가 다운로드함에 따라 콘텐트 오브젝트를 캐시하도록 액티브 디렉토리(104)에 의해 선택될 수 있다. 본 실시예에서 하나의 크로울링 디렉토리(124) 만을 사용하였지만, 다른 실시예들은 여러 개의 크로울링 디렉토리들을 사용하여 부가적인 탐색 결과들을 얻을 수 있다.
인터넷(120)은 노드들에 의해 함께 연결된 서버들로 이루어진다. 데이터는, 목적지에 도착될 때까지, 하나의 노드로부터 다음 노드로 호핑(hoping)함으로써 인터넷(120)을 통해 순회하는 패킷들로 나누어진다. 각 패킷은 인터넷을 통해서 상이한 경로를 취할 수 있으며, 서로 다른 시간에 목적지에 도착할 수도 있다. 또한, 일부 패킷들은 임의의 노드의 대역폭이 포화될 때 인터넷(120)을 통해 순회하는 동안 분실될 수 있다. 콘텐트 오브젝트의 소스와 목적지 사이의 선회의 횟수가 증가함에 따라, 과도한 지체 및 패킷 분실과 같은 현상이 증가한다.
콘텐트 오브젝트가 인터넷(120)을 통해 소스로부터 목적지로 가는 경로를 순회할 때, 그 경로의 임의의 두 노드들 사이의 가장 작은 대역폭을 그 경로의 최대 대역폭이라고 정의한다. 일반적으로, 인터넷(120)으로부터 클라이언트 컴퓨터(즉, 마지막 경로)까지의 대역폭은 가장 적은 대역폭 할당을 갖는다. 그러나, 다른 때에는 노드들 사이의 일부 다른 호프는 가장 작은 대역폭을 가진다. 콘텐트 교환기(116)와 클라이언트 컴퓨터(112) 사이의 최소량의 호핑으로 콘텐트 교환기(116)의 콘텐트 오브젝트를 캐시하면 적절한 또는 충분한 QOS로 개선시킨다.
인터넷(120)에 대한 클라이언트 컴퓨터의 데이터 속도를 초과하지 않는 바람직한 데이터 속도로 콘텐트 오브젝트를 다운로드시키면 적절한 QOS를 얻는다. 사용자가 기대하는 최대 QOS는 그들의 네트워크 연결의 속도, 그들의 컴퓨터의 처리력 및 그밖에 다른 요인들에 의해 정해진다. 예를 들어, 400Kbps 의 네트워크 연결과 빠른 컴퓨터를 갖는 사용자는, 사용자가 128Kbps 흐름을 선택하는 오디오 클립용으로 28Kbps, 56Kbps, 또는 128Kbps 의 선택을 할 수 있다. 클라이언트 컴퓨터에 의해 제공된 데이터 속도가 128Kbps 내지 400Kbps의 범위에 있기만 하면, 그러한 흐름을 위한 적절한 QOS를 얻을 수 있다.
상기 실시예는 여러 블록들 사이의 연결로서 일차적으로 인터넷(120)을 사용하지만, 다른 실시예들은 인터넷(120) 외부 또는 인터넷과 평행한 개인적인 링크들을 사용할 수 있었다. 개인적인 링크들은 QOS를 향상시키기에 충분한 대역폭을 할당하거나, QOS를 향상시키는 다른 기술을 사용할 수 있다. 추가로, 외부 원서버들(118)과 연관되지 않은 원 서버들(106) 상의 콘텐트 오브젝트들은, 시스템(100)으로부터 캐싱, 암호화 및 압축이 제공되는 정도까지 유익할 수 있다.
도 2를 참조해서, 콘텐트 배포 시스템(100)의 액티브 디렉토리부(104)의 실시예의 블록을 도시하였다. 액티브 디렉토리(104)는, 동적 도메인명 서버(DNS)(204), 서버 관리자(208), 디렉토리 페이지(212), 탐색 페이지(216), 다운로드 페이지(220), 가입자 데이터베이스(224), 서버 데이터베이스(228), 콘텐트 교환 데이터베이스(232), 및 라우팅(routing) 데이터베이스(234)를 포함한다. 콘텐트 배포 시스템(100)은 액티브 디렉토리(104)와 상호 작용하여, 사용자에게 디렉토리 정보를 제공하는 사용자에게 콘텐트 오브젝트를 다운로드시키는 것을 도와준다.
클라이언트 컴퓨터(112)의 사용자와 원 서버(108)의 관리자는 둘 다 콘텐트 배포 시스템(100)의 가입자들이다. 소프트웨어는 다운로드 페이지(220)로부터 사용자 및/또는 관리자에게 다운로드된다. 클라이언트 컴퓨터(112)용 소프트웨어는 일부 실시예에서는 선택적이며, 설치할 경우 QOS를 향상시킨다. 원 서버(108)용 소프트웨어는 액티브 디렉토리(104)가 시스템(100) 상에서 이용 가능한 콘텐트를 갱신할 수 있도록 해주며, 클라이언트 컴퓨터(112)가, 그러한 콘텐트를 수신하기 위한 선호 소스로 지시하도록 해준다.
클라이언트 컴퓨터(112)는 액티브 디렉토리(104)의 도메인에 연결하여, 원하는 콘텐트 오브젝트를 찾도록 한다. 선호도에 따라, 사용자는 콘텐트 오브젝트를 찾기위해, 디렉토리 페이지(212) 또는 탐색 페이지(216)를 사용할 수 있다. 탐색 페이지(216)는 크로울링 디렉토리(124)로부터 수집된 정보뿐만 아니라 모든 원 서버들(108)에 의해 공급받은 콘텐트 오브젝트들의 목록을 액세스하는 전통적인 부린 탐색 엔진일 수 있다. 또 다른 실시예들은 원 서버들(108)로부터 콘텐트의 탐색이 이루어지지 않거나 크로울링 디렉토리(124)로부터의 정보를 모두 누락한 후, 크로울링 디렉토리(124)로부터 수집된 정보를 표시하기만 할 수 있다. 모든 원 서버들(108)을 위한 콘텐트 오브젝트들의 목록은 서버 데이터베이스(228)에 관리된다.
본 실시예에서, 디렉토리 페이지(212)는 주제별로 조직된 분류들의 계층에서 가능한 콘텐트 오브젝트들을 조직한다. 예를 들어, 제 1 페이지는, 일반적인 관심의 수많은 주제들 중에서 사용자가 스포츠를 선택하는 것을 보여준다. 계층에서 한 단계 내려간 다음 페이지에서는, 수많은 스포츠들 중에서 사용자가 축구를 선택하는 것이 표시된다. 계층에서 한 단계 더 내려가면, 사용자는 San Diego ChargersTM를 선택하여, 관련된 콘텐트 오브젝트 링크들의 또 다른 페이지를 볼 수 있다. 각 링크는 콘텐트 오브젝트를 발생시켰던 원 서버들(108)로 지적한다.
관리자는 원 서버들(108) 상의 콘텐트를 분류하여, 디렉토리 페이지(212)가 그것을 적절하게 나타내도록 한다. 사이트나, 디렉토리 또는 파일에 기초해서, 관리자는 콘텐트 오브젝트와 연관된 HTML SSI 꼬리표의 콘텐트 오브젝트들을 위한 분류를 선택할 수 있다. 이러한 분류가 얻어지면, 서로 다른 분류들의 콘텐트 오브젝트들을 줄 수 있도록 액티브 디렉토리 상에 저장된다. 추가로, 조절자(moderator)는 디렉토리 페이지(212)의 분류에서 콘텐트 오브젝트들을 설명하고 배열시킨다.예를 들어, 조절자는 더욱 뛰어난 표시를 위해 특정 콘텐트 오브젝트들을 표시하고/하거나 그러한 콘텐트 오브젝트들의 위한 비평 및/또는 일람표를 추가할 수 있다.
서버 관리자(208)는, 모든 클라이언트 컴퓨터들(112)과, 모든 원 서버들(108)과, 모든 외부 원 서버들(118)과, 모든 콘텐트 교환기들(116), 및 원 서버들(108) 상의 모든 콘텐트 오브젝트들을 유지한다. 클라이언트 컴퓨터들(112)과 원 서버들(108)에 관련된 정보는 가입자 데이터베이스(224)에서 유지된다. 완전한 명, 로그인명, 암호, 유일한 ID, 유효 토큰 크레디트, 및 그밖에 다른 정보는, 클라이언트 컴퓨터(112)와 연관된 각 사용자를 위한 가입자 데이터베이스(224)에서 유지된다. 마지막에 원 서버(108)가 검증되었던 가입자 데이터베이스(224)는 또한, 원 서버(108)를 위한 인터넷 프로토콜(IP) 어드레스, 콘텐트 관리자 서버가 계속되는 부분, 원 서버(108)의 on/off-선 상태, URL의 표상, 원 서버(108)명, 원 서버(108)의 설명, 원 서버(108)를 사용하기 위해 필요한 크레디트 또는 토큰 또는 기타 청구방식, 및 한번에 허용된 연결들이나 뷰어들의 수를 가진다.
원 서버(108)의 콘텐트 오브젝트들에 대한 정보는 서버 데이터베이스(228)에서 유지된다. 각 콘텐트 오브젝트, 원 서버명, 콘텐트 오브젝트 파일명 및 경로는 분류 정보와, 간단한 설명과 키워드들과 함께 저장된다. 서버 데이터베이스(228)는 탐색 페이지들(212, 216)과 디렉토리의 항해동안 사용자에게 콘텐트 선택들을 제공하는 것에 대해 질의를 받는다. 서버 데이터베이스(228)에 있는 현재 정보를 유지하기 위해서, 서버 관리자(208)는 원 서버(108)와 주기적으로 상호 작용하여콘텐트 오브젝트들의 목록으로의 가장 최근 변화들을 얻고 원 서버(108)가 오프라인으로 갔는지를 결정한다. 원 서버(108)가 오프라인으로 갈 때마다, 원 서버(108)에 대응하는 서버 데이터베이스(228)의 엔트리들은 제거되고, 가입자 데이터베이스(224)의 상태 정보는 갱신된다.
일부 실시예에서는, 서버 데이터베이스(228)에 있는 엔트리들은 원 서버(108)가 오프라인으로 간 후에도 남아있다. 그 상태가 갱신되어, 원 서버와 연관된 콘텐트가 유효하지 않지만, 서버 데이터베이스(228)에 저장된 정보는 남아있는지를 반영한다. 그 상태가 온라인으로 갱신되면, 정보는, 콘텐트 오브젝트들을 탐색하고 있는 사용자들에게 다시 한번 제공된다. 어떤 상황에서는, 원 서버(108)는 한 주기의 시간동안 오프라인으로 가고 있는 액티브 디렉토리(104)로 지정할 수 있다. 시간 주기가 짧다고 가정하면, 액티브 디렉토리는 그것을 사용자들에게 제공하지 않고 서버 데이터베이스(228)에 정보를 유지할 수 있다.
시스템(100)에 이용할 수 있는 콘텐트 교환기들(116)의 리스트는 콘텐트 교환 데이터베이스(232)에서 서버 관리자(208)에 의해 유지된다. 일부 실시예들에서는, 콘텐트 교환 데이터베이스(232)는 콘텐트 배포 시스템(100) 내에서 모든 가능한 콘텐트 교환기(116)에 대한 IP 어드레스들의 목록을 포함할 수 있다. 또한, 콘텐트 교환 데이터베이스(232)는 각 콘텐트 교환기들(116)과 연관된 여러 개의 콘텐트 교환 필드들을 포함할 수 있다. 예를 들어, 콘텐트 교환 데이터베이스(232)에서 각 콘텐트 교환기들(116)과 연관된 필드들은 콘텐트 교환 식별자, 콘텐트 교환 사이트, 콘텐트 교환 제공자, 콘텐트 교환기명, 콘텐트 교환 위치, 콘텐트 교환 상태, 아이콘, 또는 그밖에 다른 선호도 정보를 포함할 수 있다.
또한, 콘텐트 교환 식별자와 콘텐트 교환 사이트는 특정 콘텐트 교환 사이트에서 독특한 콘텐트 교환기들(116)을 식별한다. 콘텐트 교환 제공자는 XYZ 회사와 같은 콘텐트 교환의 책임이 있는 쪽의 지시기(indicator)이다. 콘텐트명은 도메인명이고, 콘텐트 교환 위치는 콘텐트 교환기들(116)을 위한 지리적 좌표가 될 수 있다. 예시한 실시예에서, 콘텐트 교환 데이터베이스(232)는 콘텐트 교환 식별자, 콘텐트 교환 사이트, 콘텐트 교환 IP 어드레스, 콘텐트 교환 제공자, 콘텐트 교환명, 콘텐트 교환 위치, 및 콘텐트 교환 데이터베이스(232)의 각 콘텐트 교환기들(116)을 위한 아이콘을 포함한다.
일반적으로, 콘텐트 교환 데이터베이스(232)는, 여기에 제한되지는 않지만, 개선된 QOS 표준 또는 가입 서비스 표준을 포함한 다양한 방법에 의해서 구역화 또는 분획화될 수 있다. 추가로, 콘텐트 교환 데이터베이스(232)는 또 다른 액티브 디렉토리들(104)이나, 원 서버들(108) 또는 기타 다른 유용한 정보의 목록화를 포함할 수 있다.
콘텐트 배포 시스템(100)의 콘텐트 교환기들(116)은 서버 관리자(208)에 상태를 규칙적으로 제공한다. 콘텐트 교환기들(116)은 사용이 가능하게 되거나 불가능하게 될 때, 그들의 조작 상태는 서버 관리자(208)에 보고되고, 콘텐트 교환 데이터베이스(232)에 기록된다. 일부 실시예들에서는, 콘텐트 교환 데이터베이스(232)가 콘텐트 교환기(116) 부하, 용량, 이용, 성능 상태 등을 포함한 추가의 상태 정보를 포함한다.
라우팅 데이터베이스(234)는 외부 원 서버들(118)의 리스트를 포함한다. 일분 실시예들에 있어서, 라우팅 데이터베이스(234)는 외부 원 서버들(118)에 관련된 식별, 상태 및 구성 정보를 포함한다. 식별 정보는 외부 원 서버(118)에 대한 IP 어드레스 및 도메인명을 포함할 수 있다. 상태 정보는 외부 원 서버에 관한 이용성 , 로딩 또는 다른 상태를 포함할 수 있다. 구성 정보는 대안 외부 원 서버들(118)의 리스트를 포함할 수 있다. 한 실시예에서, 라우팅 데이터베이스(234)는 각각의 외부 원 서버(118)에 대한 IP 어드레스 및 도메인명을 포함할 수 있다. 일부 실시예들에서는, 라우팅 데이터베이스(234)에서 외부 원 서버들(118)을 식별하는 것은 콘텐트 배포 시스템(100)과 외부 원 서버(118)를 연관시키기 위한 과정이다.
라우팅 데이터베이스에서 각 외부 원 서버(118)의 경우, 외부 원 서버(118) 상의 정보를 액세스하도록 콘텐트 교환기(116)를 사용할 수 있게 하는 사용자명들의 목이 있다. 그 사용자명은 클라이언트 컴퓨터(112)의 사용자에 유일하다. 클라이언트 컴퓨터가 콘텐트 교환기(116)를 통해서 라우팅할 수 있는 외부 원 서버(118)의 목록은 클라이언트 컴퓨터(112)에 제공된다. 클라이언트 컴퓨터(112)는 라우팅 데이터베이스로부터 온 정보를 사용하여, 외부 원 서버(118)에 대한 사용자 요청들을 콘텐트 교환기(116)로 방향 지정해준다. 콘텐트 교환기(116)가 외부 원 서버(118)로부터 온 콘텐트 오브젝트들과 함께 대중화시킨 후, 대역폭은 외부 원 서버(118)로부터 콘텐트 교환기(116)로 오프로드(offload)된다. 사용자는 콘텐트 교환기(116)의 소유자 및/또는 원 서버(108)의 관리자에 이러한 증강된 서비스를 보상할 수 있다.
동적 DNS204는 원 서버(108)를 위해 각 IP 어드레스용 원 서버명을 제공한다. 원 서버명은 인터넷(120) 상의 원 서버(108)를 유일하게 식별한다. 이 정보는 가입자 데이터베이스(224)에서 유지된다. 콘텐트 교환기(116)는, 콘텐트 교환기(116)에 콘텐트 오브젝트를 제공했던 원 서버(108)의 IP 어드레스를 알지 못하지만, 원 서버명은 알고있다. 콘텐트 교환기(116)가, 다른 콘텐트 교환기(116)로부터 입수할 수 없는 콘텐트 오브젝트의 일부 또는 콘텐트 오브젝트와 함께 그의 캐시를 대중화시키기 원할 때, 동적 DNS 204는 콘텐트 오브젝트의 소스인 원 서버(108)의 IP 어드레스나 도메인명을 결정할지 질의를 받는다. 동적 DNS 204로부터 도메인명이 검색되면, 그 도메인명에 대응하는 IP 어드레스가 DNS로부터 검색된다.
도 3A는, 콘텐트 배포 시스템(100)의 원 서버부(108)의 실시예의 블록도를 도시한 것이다. 원 서버(108)는 관리자에 의해서 관리되며, 콘텐트 배포 시스템(100)에 한가지 소스의 콘텐트 오브젝트들을 제공한다. QOS는 원하는 콘텐트 오브젝트를 적절하게 전달할 수 있는 콘텐트 교환기(116)에 클라이언트 컴퓨터를 지시하는 원 서버(108)에 의해서 제공된다. 원 서버(108)는 콘텐트 소스(304), 콘텐트 서버(308), 콘텐트 관리자(312), 지역 콘텐트 목록(316), 콘텐트 위치 데이터베이스(320), 콘텐트 교환 정보(324), 및 성능 상태 점검(330)을 포함한다.
콘텐트 소스(304)에 의해서 원 서버(108)에 콘텐트가 공급된다. 콘텐트 소스(304)는 라이브 웹 캠, 비디오 또는 오디오 공급, 데이터 오브젝트, 데이터 흐름, 비디오 테이프 또는 오디오 테이프, 광 디스크 또는 자기 디스크, 또는 기타임의의 콘텐트 전달 기구를 포함할 수 있다. 콘텐트 오브젝트들은 콘텐트 소스(304)에 의해서 시스템(100)으로 가능한 배포를 위한 콘텐트 서버(308)에 전달된다.
시간과 데이터 정보는 안에 유지될 콘텐트 오브젝트들의 부분 또는 콘텐트 오브젝트들을 위해 각 콘텐트 교환기(116)에 유지된다. 시간과 데이터 정보에 의해서 동일한 원 서버명, 경로명 및 파일명을 가질 수 있는 콘텐트 오브젝트들을 구별할 수 있다. 또 다른 실시예들은 체크섬, CRC 또는 해시와 같은 임의의 독특한 코드를 추가로 사용하여 콘텐트 오브젝트를 식별할 수도 있다.
원 서버(308)의 모든 콘텐트 오브젝트들은 콘텐트 서버(308) 상에 저장된다. 시스템(100)을 이용할 수 없도록 콘텐트 서버(308) 상의 다른 콘텐트 오브젝트들을 방치하면 시스템(100)에 공개하기 위한 콘텐트 오브젝트들의 집단 또는 하나의 콘텐트 오브젝트를 관리자가 선택할 수 있다. 일부 콘텐트 오브젝트들은 식별할 수 있는 파일들이지만, 다른 것들은, 예컨대 라이브 웹 캠들에 의해 생성된 콘텐트의 흐름들이다. 일부 실시예들에서는, 콘텐트 서버(308)를 가동시키는 소프트웨어는 콘텐트 관리자(312)의 소프트웨어와 함께 통합시킬 수 있다.
콘텐트 관리자(312)는 원하는 콘텐트 오브젝트들을 시스템(100)에 공개하고, 콘텐트 관리자(312)와 연관된 콘텐트 오브젝트들을 다운로드시키기 위한 바람직한 콘텐트 교환기(116)로 사용자들을 지시한다. 관리자의 지시에서, 콘텐트 관리자(312)는 액티브 디렉토리(104)에 공개하기 위한 드라이브 볼륨 또는 디렉토리 또는 파일이름에 의해 콘텐트 오브젝트들 또는 콘텐트 오브젝트들 집단들을 선택한다. 콘텐트 서버(308) 상의 일부 콘텐트 오브젝트들은 그들이 시스템(100)을 이용할 수 없도록 공개로부터 제외될 수 있다.
시스템에 공개하기 위해 선택된 콘텐트 오브젝트들은 지역 콘텐트 목록(316)에 유지된다. 지역 콘텐트 목록(316)에서의 엔트리들은, 이들 엔트리에 대응하는 오브젝트들이 이용 불가능하게 되거나 갱신됨에 따라 콘텐트 관리자(312)에 의해 현재 유지된다. 각 엔트리를 위해서, 콘텐트 오브젝트 파일명과 경로는 분류 정보와 약술 설명 및 키워드들과 함께 저장된다. 시스템(100)에 접속하면, 지역 콘텐트 목록(316)은, 콘텐트 관리자(312)에 의해, 서버 데이터베이스(228)로 엔트리하기 위한 액티브 디렉토리(104)에 전송된다. 주기적으로, 지역 콘텐트 목록(316)에의 변경은 가능한 현재의 디렉토리 정보를 유지하도록 서버 데이터베이스(228)에 전송된다. 갱신은 예를 들어 매 2분마다 또는/ 및 로컬 콘텐트 목록내의 변화가 일어날 때마다 정규 간격으로 발생할 수 있다.
콘텐트 관리자(312)는 또한, 콘텐트 관리자(312)와 연관된 콘텐트 오브젝트들의 모든 부분의 위치를 알고 있다. 시스템(100)에 접속하면, 콘텐트 관리자(312)는 상태의 각 콘텐트 교환기(116)와 접촉한다. 각 콘텐트 교환기(116)는 발생된 콘텐트 관리자(312)에게, 그의 콘텐트 오브젝트 또는 콘텐트 오브젝트 부분들에 대한 정보를 주기적으로 보고한다. 이러한 정보로 무장되었기 때문에, 콘텐트 관리자(312)는, 다운로드를 할 수 있는 원하는 콘텐트 오브젝트의 일부 또는 전부를 가질 수 있는 콘텐트 교환기(116)에 클라이언트 컴퓨터(112)를 지시할 수 있다.
모든 콘텐트 교환기들(108)에 의해 보고된 콘텐트 오브젝트들을 위한 위치정보는 콘텐트 위치 데이터베이스(320) 내의 콘텐트 관리자에 의해 유지된다. 콘텐트 위치 데이터베이스(320)를 질의를 행함으로써, 콘텐트 관리자(312)는 하나의 콘텐트 오브젝트 또는 콘텐트 오브젝트의 일부를 포함하는 콘텐트 교환기(116)를 결정할 수 있다. 콘텐트 소스로 클라이언트 컴퓨터(112)를 라우팅 하는 동안, 콘텐트 오브젝트 특히 콘텐트 교환기(116)의 존재는 라우팅 결정에 영향을 미칠 수 있다.
콘텐트 교환 정보(324)는 모든 액티브 콘텐트 교환기들(116) 상에 정보를 보유한다. 원 서버(108)의 능력을 높이면, 액티브 디렉토리(104)에 있는 콘텐트 교환 데이터 베이스(232)는 콘텐트 교환 정보 저장부(324)로 다운로드된다. 콘텐트 교환 정보 저장부(324)에 목록화된 모든 콘텐트 교환기들(116)은 콘텐트 교환 정보(324)로서 남아있는 상태 정보를 위해 능력을 높인 후 질의를 받는다. 상태 정보는 사용된 병행 링크들의 수와, 허용된 병행 링크들의 합계, 대역폭 이용 및 캐시 천 속도를 포함한다. 캐시의 천 속도는 사용되지 않은 데이터가 캐시에 남아있는 시간의 양이며, 캐시의 로딩량을 나타낸다. 예를 들어, 캐시에 저장된 양에 비해서 바쁜 콘텐트 교환기(116)를 위해 신속하게 캐시 밖으로 데이터를 분출시킨다. 그러나, 일부 실시예는 사용여부에 무관하게 시간 주기 동안 콘텐트 교환기(116) 내에 쌓인 채로 남아있는 잘 움직이지 않는 콘텐트 오브젝트들을 가질 수도 있다.
콘텐트 관리자(312)는 지능적으로 콘텐트 오브젝트를 원하는 클라이언트 컴퓨터(112)를 콘텐트 오브젝트를 위한 선호 소스에 지시한다. 클라이언트 컴퓨터(112)로부터 공급된 선호 정보는 클라이언트 컴퓨터(112)에 의해 선택된 콘텐트 오브젝트의 소스를 결정하기 위해 사용된다. 이 정보는, 콘텐트 오브젝트의다운로드를 위한 선호하는 콘텐트 교환기(116)로 클라이언트 컴퓨터(112)를 지시하기 위해서, 콘텐트 오브젝트의 현재 위치들과 가능한 콘텐트 교환기들의 부하와 함께 사용된다.
일부 실시예들에서, 콘텐트 관리자(312)는 콘텐트 오브젝트들에의 액세스를 정규화할 수 있다. 클라이언트 컴퓨터(112)가 콘텐트 관리자(312)와 연관된 콘텐트 오브젝트를 다운로드시키려고 시도할 때, 관리자가 콘텐트 오브젝트를 보호해왔는지 로그인 상호 작용이 제안된다. 사용자는 콘텐트 오브젝트를 위한 소스로 클라이언트 컴퓨터(112)의 방향지정을 할 수 있도록 로그인 상호 작용에 사용자명 및/또는 암호를 입력할 수 있다. 이 사용자명 및/또는 암호는 액티브 디렉토리(104)에 필요한 임의의 것에 추가된다. 소스에 에 클라이언트 컴퓨터(112)를 지정하기 전에, 로그인 서버(108) 상에 이미 저장된 허용할 수 있는 로그인 정보의 목록에 대해, 사용자명 및/또는 암호 또는 로그인 정보가 테스트된다. 이러한 방법으로, 원 서버(108) 상의 콘텐트 오브젝트 또는 디렉토리, 전체 원 서버(108) 또는 볼륨으로 액세스가 정규화될 수 있다.
일부 실시예들은 원 서버(108)나 액티브 디렉토리(104)가 콘텐트 교환기(116) 상에 콘텐트 오브젝트들을 프리로딩하는 것을 허용한다. 콘텐트 오브젝트들에 대한 요청들이 모니터되어 타당성 여부를 결정한다. 콘텐트 교환기(116) 상에 콘텐트 오브젝트들이 프리로딩되었는지 결정하기 위해서, 타당성 정보, 청구 정보, 크기 및/또는 기타 고려사항들이 사용된다. 원 서버(108)나 액티브 디렉토리(104) 또는 콘텐트 교환기(116) 중의 어느 하나는 거기에 그들을 프리로딩하도록 콘텐트 교환기(116)으로부터 온 콘텐트 오브젝트들을 요청한다. 주기적으로, 콘텐트 교환기(116) 상에 로딩된 그들을 유지하기 위해 콘텐트 교환기(116)에 콘텐트 오브젝트들이 요청됨으로써, 그들이 비활성 때문에 오프로딩되지 않도록 한다. 본 발명의 또 다른 실시예들은 상기 설명한 바와 같이 잘 움직이지 않는 콘텐트 오브젝트들을 지정할 수 있다.
성능 상태 점검(330)은 연관된 원 서버(108)의 조작 특성들을 제공하는 하드웨어나 소프트웨어 응용프로그램일 수 있다. 한 실시예에서, 성능 상태 점검(330)은 원 서버(108) 상태의 단일 지시를 제공한다. 단일 지시는 원 서버 특성들의 조합을 지시하는 0과 1 사이의 정규화된 값이다. 예를 들어, 그것은 CPU 로드, CPU 온도, 여러 개의 병행 연결 및/또는 원 서버가 설치하고 있는 여러 개의 요청들을 포함할 수 있다. 또 다른 실시예에서, 성능 상태 점검(330)은 또 다른 콘텐트 교환기(116) 또는 원 서버(108)를 가동하는 동안 콘텐트 교환기(116)의 특성들을 모니터할 수 있다.
도 3B를 참조하면, 콘텐트 배포 시스템(100)의 외부 원 서버부(118)의 실시예의 블록도가 도시되어 있다. 외부 원 서버부(118)는, 그 위에 설치된 콘텐트 관리자 소프트웨어를 가지고 있지 않다는 점에서, 외부 원 서버부(118)는 원 서버(108)와 상이하다. 외부 원 서버(118)에는 콘텐트 서버(308)와 콘텐트 소스(304)가 포함된다.
외부 원 서버(118)의 관리자는 콘텐트 교환기(116)를 통해 콘텐트 오브젝트들을 수신하는 권한을 갖는 하나 또는 그 이상의 클라이언트 컴퓨터(112)를 결정한다. 라우팅 데이터베이스(234)는 관리자에 의해 갱신됨으로써, 각각의 클라이언트 컴퓨터들(112)이 콘텐트 교환기(116)를 통해 콘텐트 오브젝트들을 액세스할 수 있도록 해준다. 액티브 디렉토리 상의 웹 페이지는, 클라이언트 컴퓨터들(112) 상의 정보를, 라우팅 데이터베이스(234)에 입력하는 인터페이스를 제공한다. 또 다른 실시예들은, 사용자들이 외부 원 서버(118)와 함께 소리를 더 크게 할 때 라우팅 데이터베이스(234)에 자동적으로 더해질 수 있도록, 외부 원 서버(118)와 라우팅 데이터베이스(234) 사이의 인터페이스를 자동화할 수 있다.
라우팅 데이터베이스(234)로의 갱신들은 다운로드되고 클라이언트 컴퓨터(112)에 의해 지역적으로 저장된다. 외부 원 서버(118)를 액세스하기 위한 후속 시도들은 콘텐트 교환기(116)로 지정되어 그러한 요청을 서비스한다. 이러한 방법으로 방향 지정하면, 콘텐트 관리자 소프트웨어들의 도움 없이도, 외부 원 서버(118)가 클라이언트 컴퓨터(112)를 콘텐트 교환기(116)로 지정할 수 있다.
외부 원 서버(118)는 외부 원 서버(118)를 위한 콘텐트 오브젝트들을 보유하도록 지정된 하나 또는 그 이상의 콘텐트 교환기(116)를 가질 수 있다. 라우팅 데이터베이스(234)는, 가입하는 클라이언트 컴퓨터들(112)을, 하나 또는 그 이상의 이러한 콘텐트 교환기들(116)로 지정할 수 있다. 클라이언트 컴퓨터가 2 이상의 이러한 콘텐트 교환기(116)를 사용할 수 있다면, 클라이언트측 라우팅 분석은 2 이상의 콘텐트 교환기들 상에서 수행되어, 그들 사이의 상대적 QOS의 우열을 가릴 수 있을 것이다.
외부 원 서버(118)의 콘텐트 오브젝트들은, 그러한 콘텐트 오브젝트들을 공급하기 위해 할당된 콘텐트 교환기(들)에 프리로딩될 수 있다. 첫 번째 동안 콘텐트 오브젝트가 요청되는 대기시간을 감소시키기 위해서, 액티브 디렉토리(104)는, 외부 원 서버(118)를 크로울링함으로써, 서버(118)로부터 입수할 수 있는 콘텐트 오브젝트들을 결정할 수 있도록 한다. 입수 가능한 콘텐트 오브젝트들은 크로울링 디렉토리(124)에 추가될 수 있다. 한번 입수가능 콘텐트 오브젝트들이 알려지면, 액티브 디렉토리(104)는, 연관된 콘텐트 교환기(들) 상에 각 콘텐트 오브젝트를 로딩시킬 수 있도록, 연관된 콘텐트 교환기(들)로부터 각 콘텐트 오브젝트를 요청한다. 이러한 방법으로, 콘텐트 오브젝트들은 연관된 콘텐트 교환기들 상에 프리로딩된다.
도 4A를 참조하면, 콘텐트 배포 시스템(100)의 콘텐트 교환기(116)의 실시예의 블록도가 도시되어있다. 콘텐트 교환기(116)는 콘텐트 관리자(312)의 제어 하에, 클라이언트 컴퓨터(112)에 의해 요청된 콘텐트 오브젝트들을 캐시한다. 콘텐트 교환기(116)에는, 추적 시스템(402)과, 콘텐트 노드(406)가 포함되어있다. 추적 시스템은 콘텐트 추적자(404)와, 성능 상태 점검(426)과, 상태 정보(420), 지역 콘텐트 목록(416) 및 원 서버 데이터베이스(424)를 포함하며, 콘텐트 노드(406)는 콘텐트 제어기(408)와 콘텐트 저장부(412)를 포함한다.
성능 상태 점검(426)은 연관된 콘텐트 교환기(116)의 조작 특성들을 제공하는 하드웨어나 소프트웨어 응용프로그램일 수 있다. 한 실시예에서, 성능 상태 점검(426)은 콘텐트 교환기(116)의 단일 지시를 제공한다. 단일 지시는, 예를 들어, 그것은 CPU 로드, CPU 온도, 여러 개의 병행 연결 및/또는 콘텐트 교환기가 설치하고 있는 여러 개의 요청들을 포함하는, 콘텐트 교환기(116)의 특성들의 조합을 지시하는 0과 1 사이의 정규화된 값이다. 또 다른 실시예에서, 성능 상태 점검(426)은 또 다른 콘텐트 교환기(116), 원 서버(108) 또는 다른 위치를 가동하는 동안 콘텐트 교환기(116)의 특성들을 모니터할 수 있다.
콘텐트 저장부(412)는 콘텐트 교환기(116)로부터 클라이언트 컴퓨터(112)로 다운로드하기 위해 입수할 수 있는 콘텐트 오브젝트들을 보유한다. 경로 정보와 파일이름과 함께 콘텐트 오브젝트를 제공하는 원 서버(108)의 명은 콘텐트 저장부(412)에 콘텐트 오브젝트와 함께 저장된다. 인터넷(120)을 통해서, 클라이언트 컴퓨터(112)는 콘텐트 저장부(412)와 연결하고, 콘텐트 오브젝트이나 데이터 흐름을 다운로드한다. 콘텐트 저장부(412)에 신규한 콘텐트 오브젝트들이 추가됨에 따라, 오래된 콘텐트 오브젝트들은 일반적으로 제거된다. 콘텐트 오브젝트의 수명은 콘텐트 오브젝트가 액세스되었던 마지막 시간에 관련이 있다. 콘텐트 저장부(412) 상의 어떤 콘텐트 오브젝트들은 절대 열화되지 않아서, 그들은 미리 결정된 시간 동안 콘텐트 저장부(412) 안에 머무른다. 원 서버(108)는, 미리 결정된 기간 동안 콘텐트 오브젝트를 저장하도록 콘텐트 교환기(112)를 정렬시킬 수 있다.
클라이언트 컴퓨터(112)가 콘텐트 저장부(412)로부터 콘텐트 오브젝트를 요청하면, 콘텐트 오브젝트는 콘텐트 저장부(412)에 쉽게 로딩될 수 없다. 콘텐트 저장부(412)는 콘텐트 오브젝트를 위해 미해결된 요청의 콘텐트 제어기(408)를 지명한다. 콘텐트 제어기(408)는 콘텐트 오브젝트를 발생시켰던 콘텐트 서버(308)로부터 또는 다른 콘텐트 교환기(116)내에서 부재 콘텐트 오브젝트들의 일부 또는 전부의 위치를 정해준다. 부재 콘텐트 오브젝트들은, 클라이언트 컴퓨터(112)가 이 정보를 다운로드할 수 있도록, 콘텐트 제어기(408)에 의해 콘텐트 저장부(412)에 로딩될 수 있다.
콘텐트 오브젝트가 콘텐트 저장부(412)로부터 누락될 때, 콘텐트 제어기(408)는 먼저 다른 콘텐트 교환기(116)와 함께 점검하여, 그 오브젝트가 이용 가능한 것인지를 결정한다. 원하는 콘텐트 오브젝트를 가진 콘텐트 교환기(116)가 없다면, 정보를 발생시켰던 콘텐트 서버(308)는 그 콘텐트 오브젝트에 대해 질의를 받는다. 콘텐트 저장부(412)는 유발 콘텐트 서버(308)를 위한 IP 어드레스를 포함하지 않으므로, 동적 DNS 204가 그 정보에 대해 질의를 받는다. 원 서버명이 주어지면, 동적 DNS 204는 IP 어드레스를 제공함으로써, 콘텐트 제어기(408)가 적당한 콘텐트 서버(308)로부터 콘텐트 오브젝트를 요청할 수 있도록 한다.
콘텐트 추적자(404)는 콘텐트 교환기(116)를 위한 상태 정보와 콘텐트 저장부(412) 내의 현재 항목들을 시스템(100)에 보고한다. 부하 콘텐트 목록(416)은, 콘텐트 저장부(412) 안에 있는 콘텐트 오브젝트의 일부 또는 전부를 위한 원 서버명과, 경로 및 파일명을 기록한다. 새로운 항목들이 추가되고 오래된 항목들이 콘텐트 저장부(412)로부터 제거됨에 따라, 지역 콘텐트 목록(416)이 갱신된다. 콘텐트 관리자(312)가 시스템(100)에 연결되면, 모든 콘텐트 추적자들(404)에게, 콘텐트 오브젝트들의 부분들이 콘텐트 저장부(412) 상에 저장되는지 결정하라는 질의가 이루어진다. 초기 질의는, 다양한 콘텐트 저장부들(412)에 변경이 이루어짐에 따라콘텐트 추적자(404)가 갱신하는 기준선을 제시한다. 그러한 변경은 콘텐트 저장부(412)에 저장된 콘텐트를 갖는 각각의 콘텐트 관리자(312)에게 직접 전송된다. 각 콘텐트 오브젝트의 원 서버명에 대응하는 IP 어드레스를 결정하는 이러한 과정 동안, 동적 DNS204가 사용된다.
콘텐트 추적자(404)는 또한 콘텐트 교환기(116)를 위한 상태 정보(420)를 콘텐트 관리자(312)에 제공한다. 상태정보(412)는, 방송 또는 멀티캐스트로서 콘텐트 관리자(312)에게 콘텐트 교환기(116)를 위한 상태 정보(420)를, 예컨대 매 5분마다 및/또는 변경이 일어날 때마다 제공한다. 상태 정보(420)는 현재 사용중인 콘텐트교환국에 연결된 병행 링크들의 수, 캐시 천 속도 및/또는 기타 정보를 포함할 수 있다. 또 다른 실시예들에서는, 상태 정보는, 콘텐트 오브젝트를 다운로드 하기 위해 클라이언트 컴퓨터(112)를 보낼 곳을 결정할 때, 콘텐트 관리자(312)가 질의할 수 있는 중심 위치에 배치된다.
콘텐트 추적자(404)는 시스템(100)에서 활동하는 원 서버(108)를 추적하기 위해 원 서버 데이터베이스(424)를 유지한다. 상기 시스템에 접속한 후, 모든 원 서버들(108)은 콘텐트 추적자(404)에 그들 자신을 식별한다. 콘텐트 추적자(404)는 원 서버 데이터베이스(424)에 IP 어드레스와 원 서버명을 기록한다. 동적 DNS에 대한 질의는 주어진 원 서버명을 위한 IP 어드레스를 제공한다. 원 서버(108)가, 무효가 임박한 콘텐트 추적자(404)를 지명한다면, 또는 콘텐트 추적자(404)가 특정 원 서버를 접속할 수 없다면, 원 서버의 엔트리는 원 서버 데이터베이스(424)로부터 제거된다. 또한, 원 서버(108)에 대응하는 콘텐트는 콘텐트 저장부(412)로부터퍼지될 수 있으며 지역 콘텐트 목록(416)이 갱신된다. 일부 실시예들에서는, 콘텐트 오브젝트의 일부 또는 전부는 퍼지되지 않지만, 저장 공간이 요청됨에 따라 삭제되도록 간단히 표시된다.
일부 실시예들에서, 콘텐트 제어기(408)는 시스템(100)에 의해 지시를 받아 콘텐트 저장부(412)에 미리 결정된 콘텐트 오브젝트들을 얻어서 유지할 수 있도록 한다. 원하는 것으로 기대되는 콘텐트 오브젝트들은 수요에 대한 준비에서 프리로딩될 수 있다. 콘텐트 오브젝트의 타당성은, 탐색 및 디렉토리 페이지들(212, 216)로부터 그러한 콘텐트 오브젝트들의 클릭을 통해서 모니터함으로써 결정될 수 있다. 예를 들어 유명한 사람에 관련된 콘텐트 오브젝트들은, 그 유명한 사람에 대한 자서전 프로그램이 텔레비전 네트워크에 방송되기 바로 직전에 콘텐트 저장부들(412) 상에 로딩시킬 수 있다. 다른 방법으로는, 일부 콘텐트 교환기들(116)에 콘텐트 오브젝트들을 로딩하는 서비스에, 사용자들이 가입할 수 있다. 예를 들어, 계획된 네트워크 프로그램은 TV 방송에서 인터넷(120) 상에서 사용자가 볼 수 있는 TV 방송과 일치하도록 로딩될 수 있다. 이러한 방법으로, 콘텐트가 지연되지 않고 가입된 사용자들에게 이용될 수 있다.
도 4B를 참조하여, 콘텐트 배포 시스템(100)의 콘텐트 교환부(116)의 또 다른 실시예의 블록도를 도시하였다. 본 실시예는 단일의 추적 서버(402)에 연결된 다중 콘텐트 노드들(406)을 포함한다. 콘텐트 버스(428)는 다른 위치들의 다른 콘텐트 노드들에 연결될 수도 있다. 콘텐트 버스(428)는 인터넷(120) 상의 일부에서 순회할 수도 있기도 하고, 할 수 없기도 하다.
도 4C를 참조하면, 다중 콘텐트 교환 서버들(116)을 포함하는 콘텐트 교환 사이트(432)의 실시예의 블록도를 도시하였다. 콘텐트 교환기(432)는 다중의 콘텐트 교환 서버들(116)을 포함하지만, 그것은 단일의 콘텐트 교환기(116)가 그 시스템에 나타난다. 콘텐트 교환 사이트(432)의 로딩은 구성하는 콘텐트 교환 서버들(116) 사이에 배포된다. 스위치(436)는 콘텐트 오브젝트 요청들을 콘텐트 교환기(116)에 배포하고, 인터넷(120)에 스풀된 응답들을 모은다.
도 5는 콘텐트 배포 시스템(100)의 클라이언트 컴퓨터 부분(112)의 실시예의 블록를 도시한 것이다. 클라이언트 컴퓨터(112)는 인터넷(120)과 통신하여, 사용자에게 콘텐트를 전달한다. 클라이언트 컴퓨터(112)에 포함된 것은 뷰어 오브젝트 프록시(504), 콘텐트 처리 프로그램(508), 선호 정보(512), 네트워크 인터페이스(516), 및 주인 서버 라우팅(520)이다.
콘텐트 처리 프로그램(508)은 일반적으로 인터넷(120)으로부터 다운로드된 콘텐트 오브젝트를 번역하거나 처리한다. 콘텐트 처리 프로그램(508)의 예에는 웹 브라우저들, 파일 전송 규약(FTP) 소프트웨어, 고퍼(gopher) 소프트웨어, 뉴스(NNTP), 메일 프로그램들, 스트리밍 미디어 플레이어들, 비-스트리밍 미이어 플레이어들, 및 기타 소프트웨어를 포함한다. 인터넷에 직접 전송된 콘텐트 처리 프로그램(508)으로부터의 인터넷 통신은 뷰어 오브젝트 프록시(504)에 지정된다.
뷰어 오브젝트 프록시(504)는 인터넷(120)과 콘텐트 처리 프로그램(508) 사이의 중재자로서 일한다. 뷰어 오브젝트 프록시(504)를 설치한 후, 그것은 인터넷(120) 상에 알고있는 지점들에 비교해서 그의 일반적인 위치를 결정한다. 각콘텐트 교환기(116)와 뷰어 오브젝트 프록시(504) 사이의 잠재기 및 각 콘텐트 교환기(116)에 도달하기 위해 필요한 호프의 수를 결정하기 위해, 충분한 QOS를 제공하는 합리적인 후보자인 콘텐트 교환기들(116)이 테스트된다. 호프의 수와, 달성된 대역폭과 같은 QOS 인자들의 무게가 선호 정보(512)로서 기록되며, HTTP 헤더에 콘텐트 관리자(312)에 메타-데이터로서 전송된다.
다른 실시예들은, HTTP만 통하지 않고, 임의의 어떠한 종류의 데이터 채널에서 메타-데이터를 전송할 수 있다. 예를 들어, 메타-데이터는 전용 부분, IP 어드레스, URL, 헤더, 또는 기타 논리 채널을 통해서 순회할 수 있다.
선호도 정보(512)는 클라이언트 컴퓨터(112)로부터 수행된 네트워크 분석의 결과이다. 콘텐트 오브젝트가 요청되면, 선호 정보(512)는 클라이언트 컴퓨터(112)를 위한 적절한 콘텐트 교환기(116)를 차례로 선택하는 콘텐트 오브젝트 관리자(312)와 통신한다. 주기적으로, 예컨대 매 시간마다, 선호 정보(512)는 자동화된 테스트를 사용하여 갱신되고, 또는 사용자에 의해서 수동으로 갱신되기도 한다. 후속 테스트는 이전의 결과들을 고려하여, 효율적으로 선호하는 콘텐트 교환기들을 고려한다. 예를 들어, 첫 번째 분석은 100개의 콘텐트 교환기들을 테스트할 수 있지만, 후속 분석에서는, 열등하게 수행하는 콘텐트 교환기들을 제거하여 50개만이 분석된다.
선호 정보(512)는 클라이언트측 네트워크 분석으로부터 발생하는 관련된 QOS 값과 콘텐트 교환기들(116)의 목록을 포함한다. 일부 실시예들에서는, 외부 원 서버(118)로 통하는 여러 개의 경로가 있다. 여러 개의 경로들은 포트, IP 어드레스,서버 ID, 및/또는 기타 도구들에 의해 분리된다. 클라이언트측 네트워크 분석은, 여러 개의 경로들을 갖는 콘텐트 오브젝트의 소스들 또는 외부 원 서버(118)로의 각 경로와 연관된 QOS값을 결정하기 위해 사용될 수 있다.
클라이언트 컴퓨터(112)의 사용자가 콘텐트 오브젝트를 선택한 후, 원 서버명은 뷰어 오브젝트 프록시(504)에 제공된다. 원 서버(108)의 IP 어드레스에 대해 동적 DNS 204를 질의하기 위해 원 서버명이 사용된다. IP 어드레스를 알게되면, 콘텐트 처리 프로그램(508)은 원하는 콘텐트 오브젝트를 위한 콘텐트 관리자(312)에 지정된다. 콘텐트 관리자(312)는 적절한 콘텐트 교환기(116)로 클라이언트 컴퓨터(112)를 라우팅시킬 수 있도록 선호 정보(512)를 전송한다. 본 실시예에서, 선호 정보(512)는 선호하는 10개의 콘텐트 교환기들을 포함하지만, 선호하는 콘텐트 교환기들의 양은 사용자에 의해 조정될 수 있다.
일부 실시예들에서는, 뷰어 오브젝트 프록시(504)는 HTTP-규격일 수 있지만, 라우팅 정보와 무관한 규약일 수도 있다. 이러한 주인 서버 라우팅 데이터베이스(520)는 클라이언트 컴퓨터(112)에 의해 액세스할 수 있는 외부 원 서버들(118)에 관련된 정보를 포함할 수 있다. 한 실시예에서, 주인 서버 라우팅 데이터베이스(520)는 액티브 디렉토리(104)에서 발견된 라우팅 데이터베이스(234)의 엔트리들의 부분집합이다.
클라이언트 컴퓨터(112)는 호스트 서버 루팅 데이터베이스(520)를 포함한다. 이 호스트 서버 루팅 데이터 베이스(520)는 클라이언트 컴퓨터(112)에 의해 액세스될 수 있는 외부 원 서버들에 관련된 정보를 포함할 수 있다.
클라이언트 컴퓨터(112)는 뷰어 오브젝트 프록시(504)를 인터넷(120)에 연결하는 네트워크 인터페이스(516)를 포함한다. 네트워크 인터페이스(516)의 공통 예는 아날로그 모뎀들, DSL 모뎀들, ISDN, 케이블 모뎀들, 위성 모뎀들, 무선 모뎀들, 전력 선 모뎀들, 가시선 극초단파 모뎀들, 가시선 레이저 모뎀들, 등을 포함한다.
본 실시예에서, 클라이언트 컴퓨터는 가정 사용자와 연관되어있다. 또 다른 실시예에서, 클라이언트 컴퓨터는 극장에 디지털 영화를 제공하거나, 회사 네트워크 사용자, 호텔 클라이언트 또는 아파트 단지에, 콘텐트 오브젝트들을 제공할 수 있다.
도 6을 참조하여, 콘텐트 배포 시스템(600)의 실시예의 블록도를 설명한다. 이 도면은 인터넷(120) 또는 임의의 다른 네트워크를 통한 전송을 나타내지 않는 데이터 블럭들 사이의 데이터 흐름을 도시한다. 그러나, 일부 실시예들에서는, 인터넷(120) 또는 네트워크에 연결된 또 다른 패킷이 사용됨은 이해된다. 또한, 이 도면은, 도 6을 간단하게 하기 위해서, 크로울링 디렉토리(124)와 외부 원 서버(들) 및 도2 내지 도5 에 도시한 몇 개의 블록들은 도시하지 않아서 다소 간단하다.
네트워크 인터페이스(516)는 클라이언트 컴퓨터(112)를 위한 인터넷(120)으로의 연결이다. 클라이언트 컴퓨터(112)는 디렉토리 및 탐색 페이지들(212, 216)에 연결됨으로써, 사용자가 다운로드를 위한 콘텐트 오브젝트들을 선택할 수 있도록 한다. 콘텐트 오브젝트가 선택되면, 클라이언트 컴퓨터(112)를 액티브 디렉토리(104)로부터 적절한 원 서버(108)로 방향 지정하는 것은 동적 DNS 204를사용한다. 선호 정보(512)는 콘텐트 관리자(312)로 전송되어, 콘텐트 오브젝트를 위한 소스의 선택을 돕는다. 콘텐트 관리자(312)에 의한 선택에 따라서, 콘텐트 오브젝트는 콘텐트 교환기들(116) 중의 하나 또는 콘텐트 서버(308)로부터 다운로드된다.
액티브 디렉토리(104)는 시스템(600)의 다른 모듈과 상호 작용한다. 클라이언트 컴퓨터(112)는 콘텐트 오브젝트를 선택하기 위해서 디렉토리 및 탐색 페이지(212, 216)를 액세스한다. 콘텐트 추적자(404)와 콘텐트 관리자(312)는 각각 서버 관리자(208)에게 상태 정보와 목록 정보를 제공한다. 원 서버명으로부터 원 서버(108)의 IP 어드레스로의 방향지정은, 동적 DNS 204에 의해, 콘텐트 제어기(408)와 콘텐트 추적자(404) 및 뷰어 오브젝트 프록시(504)에 제공된다.
원 서버(108)는 서버 관리자(208), 클라이언트 컴퓨터(112), 콘텐트 추적자(404), 콘텐트 저장부(412), 및 콘텐트 제어기(408)와 통신한다. 지역 콘텐트 목록(316)은, 현재 콘텐트 정보와 함께 서버 데이터베이스(228)를 유지할 수 있도록 콘텐트 관리자(312)로부터 서버 관리자(208)로 제공된다. 선호 정보(512)는 콘텐트 오브젝트의 소스의 선택을 설치하기 위해서 클라이언트 컴퓨터(112)로부터 콘텐트 관리자(312)에 공급된다. 콘텐트 추적자(404)는 어떤 콘텐트 오브젝트들이 콘텐트 교환기(116)에 저장되는지를 알기 위해 콘텐트 관리자(312)와 상호 작용한다. 콘텐트 오브젝트들은 콘텐트 저장부(412) 또는 클라이언트 컴퓨터(112)에 의해 콘텐트 서버(308)로부터 읽혀진다.
콘텐트 교환기(116)는 시스템(600)에서 다른 모듈들과 상호 작용한다. 상태정보는 액티브 디렉토리(104) 및/또는 콘텐트 관리자(312)에 공급된다. 동적 DNS는 콘텐트 제어기(408)와 콘텐트 추적자(404) 모두에 의해서 사용되어, 콘텐트 오브젝트를 포함하는 원 서버(108)의 IP 어드레스를 찾는다. 선택된 콘텐트 교환은, 오브젝트가 콘텐트 저장부(412)에 필요할 때 다른 콘텐트 교환기들을 접촉할 수 있다. 다른 콘텐트 교환기들은 콘텐트 오브젝트를 갖지 않는다면, 콘텐트 제어기(408)는 선택된 콘텐트 저장부(412)로 전달하기 위해 콘텐트 서버(308)로부터 오브젝트를 요청한다.
도 7은, 두 가지 종류의 콘텐트 교환기(702, 704)를 갖는 콘텐트 배포 시스템(700)의 또 다른 실시예의 블록도이다. 본 실시예는 공용 콘텐트 교환기들(702)과 전용 콘텐트 교환기들(704)을 포함한다. 하나 또는 그 이상의 연관된 클라이언트 컴퓨터(708)와 하나 또는 그 이상의 연관된 원 서버들(712)은 하나 또는 그 이상의 전용 콘텐트 교환기들(704)과 집단을 이룬다. 공용 콘텐트 교환기들(702)은, 임의의 클라이언트 컴퓨터(112) 또는 임의의 연관된 클라이언트 컴퓨터들(708)에 콘텐트 오브젝트들을 공급시킬 수 있다. 공용 콘텐트 교환기들(702)에 저장된 이들 콘텐트 오브젝트들은 연관되지 않은 원 서버들(106), 원 서버들(108), 외부 원 서버들(118), 또는 연관된 원 서버들(712) 중의 임의의 것으로부터 발생할 수 있다.
그러나, 전용 콘텐트 교환기들(704)은 공용 콘텐트 교환기들(702)과 동일한 방법으로 시스템(700)에 완전히 연결될 수 없다. 전용 콘텐트 교환기들(704)은 연관된 원 서버들(712)로부터 발생되는 콘텐트 오브젝트들을 캐시한다. 이렇게 캐시된 오브젝트들은 연관된 클라이언트 컴퓨터들(708) 또는 클라이언트 컴퓨터들(112)에 제공된다. 연관되지 않은 원 서버들(106), 원 서버들(108) 및 외부 원 서버들(118)로부터 발생되는 콘텐트 오브젝트들은 연관된 클라이언트 컴퓨터(708)를 위해 캐시되지만 클라이언트 컴퓨터(112)를 위해서 캐시되지는 않는다. 클라이언트 컴퓨터(112)는, 연관되지 않은 원 서버들(106), 원 서버들(108) 또는 외부 원 서버들(118)로부터 공급되었던 콘텐트 오브젝트들을 캐시하기 위해 전용 콘텐트 교환기들(704)에 의존할 수 없다. 따라서, 클라이언트 컴퓨터(112)만을 위한 선호 정보(512)는 공용 콘텐트 교환기들(702)을 포함하지만, 전용 콘텐트 교환기들(704)을 포함하지 않는다.
본 실시예에서의 전용 콘텐트 교환기들(704)은, 콘텐트 오브젝트들의 전부 또는 일부의 부재는, 사용자에 의해 요청되었을 때, 콘텐트 교환기들(702, 704) 사이에 전송될 수 있도록, 공용 콘텐트 교환기들(702)에 연결한다. 선호하는 콘텐트 교환기들(702, 704)로부터 콘텐트 오브젝트가 요청되면, 그 콘텐트 오브젝트의 일부 또는 전부를 위해 지역 탐색이 먼저 수행된다. 그러한 탐색이 실패하면, 시스템(700)에 콘텐트 오브젝트를 먼저 공급했던 원 서버(106, 108, 118, 712)로부터 콘텐트 오브젝트를 요청하는 것을 의뢰하기 전에, 다른 콘텐트 교환기들(702, 704)이 탐색된다. 그러나, 또 다른 실시예들은 전용 콘텐트 교환기들(704)과 공용 콘텐트 교환기들(702) 사이에 파일들을 전송하지 않고 갈 수도 있다.
여러 실시예들에서, 전용 콘텐트 교환기들(704)은, 인터넷 대역폭이, 연관된 클라이언트 컴퓨터(708)로 마지막 마일 또는 마지막 다리를 순회하기 시작하는 노드들, 중앙 사무소, 전파 중계소, 또는 ISP 위치에 배치될 수 있다. 가능한 한 가까운 캐시를 목적지에 이동시킴으로써, 잠재하는 병목들을 감소시켜서 QOS를 향상시킨다. 예를 들어, DOCSIS 모뎀들에 의해, 연관된 클라이언트 컴퓨터들(708)에 서비스를 제공하는 케이블 멀티 시스템 조작자(MSO)는 전파 중계소 또는 이웃 노드들에서 전용 콘텐트 교환기들(704)을 가질 수 있다. 이러한 방법으로, 연관된 클라이언트 컴퓨터들(708)과 연관된 원 서버들(712)은 전용 콘텐트 교환기들(704)에 연결되어, 캐싱을 통해서 증강된 QOS를 제공한다.
도 8은 콘텐트 배포 시스템(800)의 또 다른 실시예의 블록도를 보여주는 것이다. 본 실시예는 전용 콘텐트 교환기들(704), 연관된 클라이언트 컴퓨터들(708) 및 연관된 원 서버들(712)이 어떻게 인터넷(120)을 통해 실질적으로 연결될 수 있는지를 보여준다. 이러한 기능성 블록들(704, 708, 712)은 이러한 방법으로 연결될 수 있다. 예를 들어, 전용 콘텐트 교환기들(704)은 섬유/케이블 혼성의 배포 시스템을 통해 연관된 클라이언트 컴퓨터들(708)에 연결될 수 있다. 그러나, 연관된 원 서버들(712)은 인터넷(120)을 통해서 전용 콘텐트 교환기들(704)에 연결될 수 있다.
도9는 이용 가능한 저장 용량을 갖는 전용 콘텐트 교환기들(704)을 대중화시키는 과정(900)의 실시예의 흐름도를 도시한 것이다. 도시된 과정(900)은, 임계치 이하의 대역폭 이용을 테스트하는 단계(904)에서 픽업한다. 이러한 테스트의 대역폭 측정은 본 실시예에서, 모든 연관된 원 서버들(712)로부터, 전용 콘텐트 교환기들(704)까지의 대역폭이 될 수 있으며, 다른 실시예에서는 단일의 연관된 원 서버(712)로부터 전용 콘텐트 교환기(704)까지의 대역폭이 될 수 있다.
단계(908)에서, 원 서버들은 연관된 원 서버들(712)인 결정이 된다. 액티브 디렉토리(104)는 이 정보에 대해 질의를 받거나 이 정보는 전용 콘텐트 교환기(704)에 지역적으로 유지될 수 있다. 연관된 원 서버들(712)이 일단 공지되면, 각 지역 콘텐트 목록(316)은 단계(912)에서 연관된 원 서버들(712)에 대해 이용 가능한 콘텐트 오브젝트들을 결정하도록 질의를 받는다.
단계(916)에서, 모든 연관된 원 서버들(712)로부터 온 콘텐트 오브젝트들을 분석하여 콘텐트 오브젝트들 사이의 서열을 결정한다. 본 실시예에서, 콘텐트 오브젝트들의 대중성은 서열을 조절한다. 마지막날 하루종일동안 콘텐트 오브젝트가 다운로드된 시간은 대중성을 결정하기 위해 사용된 알고리즘 이지만, 다른 실시예들은 다른 실시예들은 다른 시간 기간들을 사용할 수 있다. 본 실시예는 서열을 가리기 위한 대중화를 사용하지만, 다른 실시예들은 서열을 결정할 때, 콘텐트 오브젝트의 규모, 콘텐트 오브젝트의 가격, 및/또는 기타 요소들을 사용할 수 있다.
연관된 원 서버들(712) 또는 전용 콘텐트 교환기(704)는 콘텐트 오브젝트의 히트수 또는 클릭-스루의 수를 각각 결정함으로써 대중성을 모니터할 수 있다. 클라이언트 컴퓨터의 사용자의 클릭-스루는, 연관된 원 서버(712)로 콘텐트 오브젝트 선택으로 다시 지정하는 CGI 각본을 가지고 모니터될 수 있다. 일단 재지정되면, 클릭-스루는 기록되고, 클라이언트 컴퓨터(112, 708)는, 콘텐트 오브젝트의 소스로서 일하는 콘텐트 교환기(702, 704)로 재지정된다.
단계(920)에서, 인기있는 콘텐트 오브젝트들을 저장하기 위해 콘텐트 저장부(412)에 얼마나 많은 캐시 공간이 할당될 것인지 결정한다. 본 실시예는 콘텐트 저장부(412)의 절반을 사용하여, 인기있는 콘텐트를 저장하지만, 다른 실시예는 콘텐트 저장부(412)의 용량의 다른 부분을 사용한다.
임의의 콘텐트 오브젝트들이 이미 콘텐트 저장부(412)에 저장되었는지 여부에 대해 단계(922)에서 결정이 이루어진다. 이미 저장된 것을 결정하기 위해서, 연관된 원 서버(712)를 위한 지역 콘텐트 목록(316)은, 콘텐트 오브젝트들 중의 어느 것이 단계(922)에서 이미 저장되지 않는지를 결정하기 위해 전용 콘텐트 교환기(704)의 지역 콘텐트 목록(416)에 대해 상호 참조된다. 이미 저장된 이러한 콘텐트 오브젝트들은 단계(924)에서의 로딩을 필요로 하지 않는 것으로 표시된다.
할당된 캐시 공간에 적합하고 이미 로딩 되지 않는 최고위 콘텐트 오브젝트들은 단계(928)에서 결정된다. 적합하지 않은 콘텐트 오브젝트들은 목록으로부터 제거된다. 순위가 정해진 목록 상의 가장 인기 없는 것부터 시작하여, 콘텐트 저장부(412)에 이미 저장되지 않은 콘텐트 오브젝트들은, 그들이 콘텐트 저장부(412) 상에 로딩되도록 요청된다. 콘텐트 저장부(412)에 이미 로딩되지 않는 콘텐트 오브젝트들은, 목록을 통해서 순회할 때 그들의 엔트리가 도착할 때 캐시의 앞으로 이동된다. 이러한 방법으로, 적합할 모든 인기있는 콘텐트 오브젝트들은 순위에 따라 캐시에 로딩된다. 하위의 것은 그러한 콘텐트 오브젝트들에 대한 요청 또는 후속 히트가 없다면 먼저 캐시의 뒤로부터 배출된다.
일부 실시예들에서는, 각 연관된 원 서버(712)는, 다른 연관된 원 서버(712)를 얻는 다른 과정들과 나란히 수행하는 개별 과정에서 콘텐트 오브젝트들에 대해 얻어진다. 그 대역폭 이용이 임계치 아래로 떨어졌는지 결정하기 위해, 연관된 원서버(712)와 전용 콘텐트 교환기(704) 사이의 대역폭을 테스트한다. 일단 임계치를 건너면, 콘텐트 오브젝트들은 전용 콘텐트 교환기 상에 로딩된다. 마찬가지로, 연관된 원 서버들(712)은 콘텐트 오브젝트들을 위해서 얻어진다.
도 10은, 전용 콘텐트 교환기(704)를 대중화시키기 위한 과정(1000)의 또 다른 실시예의 흐름도를 도시한 것이다. 본 실시예에서는, 캐시보다는 파일 시스템을 사용한다. 파일 시스템에 로딩된 콘텐트 오브젝트들은 유효기간까지 남아있다. 예를 들어, 콘텐트 오브젝트가 하루의 유효기간을 가지고 하루동안 로딩될 수 있으면, 24시간 후에 덮어쓴다.
프리로딩하기 위해 예비된 파일 시스템 내의 공간이 결정은 단계(1004)에서 시작한 도9의 실시예와 본 실시예간에는 주목할만한 차이점들이 있다. 이 파일 시스템 공간은 캐시하기 위해 사용된 공간으로부터 논리적으로 분리된다. 파일 시스템 상에 저장된 콘텐트 오브젝트들은 과도하게 캐시되면 인된다. 단계(1002 및 924)에서, 캐시에 이미 저장된 파일들의 엔트리들은 표시됨으로써, 그들이 다시 로딩되지 않도록 한다. 파일 시스템에 적합하지 않을 콘텐트 오브젝트들은 단계(1008)에서 목록으로부터 제거된다. 이미 로딩되지 않고 적합하지 않은 콘텐트 오브젝트들은 단계(1012)에서 로딩된다. 파일 시스템 상의 모든 콘텐트 오브젝트들의 유효시간은 하루 또는 다른 기간 동안으로 설정된다.
도 11은, 전용 콘텐트 교환기(704)를 대중화시키기 위한 과정(1100)의 또 다른 실시예의 흐름도를 도시한 것이다. 본 실시예에서, 전용 콘텐트 교환기(704)는, 시스템(700)에 이용 가능하게 된 후 자신을 대중화시킨다. 예를 들어, 전용 콘텐트교환기(704)는 전원을 켠 후에 자신을 대중화시킬 수도 있다. 본 실시예는 콘텐트 오브젝트들이 이미 캐시에 저장되었는지를 결정하지 않는다.
도 9 내지 도 11에 도시된 상기 실시예들은 전용 콘텐트 교환기(704)를 대중화시킨다. 다른 실시예들은 공용 콘텐트 교환기(702)를 대중화시킬 수도 있다. 액티브 디렉토리(104)에서의 과정은, 공용 콘텐트 교환기(702)의 분산 네트워크로부터 콘텐트 오브젝트들을 요청 받을 것 같은 곳과 인터넷상의 인기있는 콘텐트 오브젝트들을 결정한다. 액티브 디렉토리는 공용 콘텐트 교환기(702)에, 증강된 QOS를 얻을 수 있도록 하는 콘텐트를 프리로딩하도록 지시할 수 있다.
도 12는 원 서버(106, 108, 118, 712)로부터 온 콘텐트를 가지고 분산된 저장 시스템을 대중화하기 위한 과정(1100)의 실시예의 흐름도를 도시한 것이다. 본 실시예에서, 원 서버(712)는 호스팅(hosting)이 허용되는지, 시스템(700)에 이용 가능하게 될 때 전용 콘텐트 교환기(704)를 대중화시킨다. 도시된 과정은, 원 서버(106, 108, 118, 712)가 온라인 될 때, 단계(1204)에서 픽업한다. 단계(1208)에서, 원 서버(106, 108, 118, 712)와 연관된 전용 콘텐트 교환기(704)가 있는지에 대해 결정이 이루어진다. 선호하는 콘텐트 교환기(702, 704)에 의해, 콘텐트 오브젝트에 대한 요청이 완성되는 단계(1212, 및 1240)에 계속되는 과정, 및 프리로딩이 일어나지 않는 곳은 전용 콘텐트 교환기(704)가 없는 곳이다.
단계(1220)에서, 원 서버(106, 108, 118, 712)를 위해, 전용 콘텐트 교환기(704) 상의 콘텐트 오브젝트들의 호스팅이 허용되는지에 대해 또 다른 결정이 이루어진다. 전용 콘텐트 교환기(704)는, 그의 콘텐트 오브젝트들을 하적시키기위해서 원 서버(106, 108, 118, 712)의 능력을 보상할 필요가 있다. 호스팅이 허용된다면, 콘텐트 오브젝트들의 대중성은 단계(916)에서 결정된다. 단계(1228)에서, 콘텐트 오브젝트들은, 가장 인기있는 오브젝트들이 캐시의 백으로부터 배출되어 지속되도록 전용 콘텐트 교환기(704) 상에 로딩된다. 다른 실시예들은, 상기 설명된 각 콘텐트 오브젝트에 대해 특정한 수명 정보를 가지고 파일 시스템을 사용할 수 있다.
단계(1220)에서 호스팅이 허용되지 않으면, 콘텐트 오브젝트를 갖는 전용 콘텐트 교환기(704)를 먼저 대중화함으로써, 업스트림 대역폭의 보존이 가능하다. 전용 콘텐트 교환기(704)가 일단 콘텐트 오브젝트를 가지면, 다른 콘텐트 교환기들(702, 704)로 효율적으로 전파될 수 있다. 단계(1224)에서, 클라이언트 컴퓨터(112)는 원 서버(106, 108, 118, 712)로부터 온 콘텐트를 요청한다. 단계(1232)에서의 결정은, 임의의 콘텐트 교환기(702, 704)에 이미 콘텐트가 저장되었는지에 대해서 이루어진다. 콘텐트가 이미 원 서버(106, 108, 118, 712)로부터 콘텐트 교환기(702, 704)에 저장되었다면, 클라이언트 컴퓨터(112)는 선호하는 콘텐트 교환기(702, 704)로 향한다. 필요에 따라, 선호하는 콘텐트 교환기(702, 704)는, 이미 콘텐트 오브젝트를 갖는 임의의 다른 콘텐트 교환기(702, 704)로부터 콘텐트 오브젝트를 얻을 수 있다.
단계(1232)에서 결정된 바와 같이 콘텐트 오브젝트가 콘텐트 교환기들(702, 704)의 분산된 저장 네트워크 상에서 이용 불가능하다면, 클라이언트 컴퓨터(112)는 원 서버(712)와 연관된 전용 콘텐트 교환기(704)에 먼저 향한다. 이러한 방법으로, 전용 콘텐트 교환기(704)는, 연관된 원 서버들(712)로부터 온 콘텐트 오브젝트들을 먼저 저장한다.
도 13은, 클라이언트 컴퓨터(112, 712)에 콘텐트 교환기들(702, 704)의 목록을 제공하기 위한 과정(1300)의 실시예의 흐름도를 도시한 것이다. 본 실시예에서, 전용 콘텐트 교환기(704)의 테스트는, 선호하는 콘텐트 교환기들(702, 704)의 목록을 클라이언트 컴퓨터(708)에 제공하기 전에 수행된다. 이 과정의 도식은, 전용 콘텐트 교환기들(704)이 어떤 연관된 클라이언트 컴퓨터(708)와 연관되는지를 결정하는 단계(1304)에서 픽업한다. 이러한 연관은 액티브 디렉토리(104)와 같은 중심 위치에 기록된다.
단계(1308)에서, 클라이언트 컴퓨터(112, 708)는 액티브 디렉토리(104)로부터 콘텐트 교환기(702, 704) 목록을 요청한다. 단계(1312)에서 어떤 전용 콘텐트 교환기들(704)이 있는지에 대해 결정이 이루어진다. 전용 콘텐트 교환기들(704)이 있다면, 전용 콘텐트 교환기들(704)이 목록에 포함되는 단계(1308)로 계속되는 과정이다. 단계(1312)에서, 충분한 또는 적당한 QOS를 가질 것 같은 다른 공용 콘텐트 교환기들(702)이 목록에 추가된다. 단계(1312)에서 결정된 바와 같이 전용 콘텐트 교환기들(704)이 없다면, 단계(1308)는 거치지 않고, 전용 콘텐트 교환기들(704)을 갖지 않고, 선호하는 콘텐트 교환기(702)의 목록이 어셈블리된다.
선호하는 콘텐트 교환기(702)의 목록이 일단 어셈블리되면, 그것은 단계(1316)에서 클라이언트 컴퓨터(112)로 전송되고, 선호 정보 데이터베이스(512)에 저장된다. 클라이언트 컴퓨터(112)는 목록 상의 각 콘텐트 교환기들(702, 704)을 분석하여 그들의 순위를 매긴다. 일반적으로, 전용 콘텐트 교환기들(704)은, 연관된 클라이언트 컴퓨터들(708)에 최상의 QOS를 제공할 수 있다.
상기 설명에 비추어, 본 발명의 여러 이점들이 있다는 것은 쉽게 드러난다. 예를 들어, 콘텐트 교환기에 콘텐트 오브젝트들을 프리로딩시킴으로써 QOS가 개선된다. 트리거하는 사건에 기초해서 프리로딩함으로써, 콘텐트 오브젝트는, 연관된 원 서버와 전용 콘텐트 교환기 사이의 업스트림 연결을 통해, 제어된 방법으로 통과된다. 콘텐트 오브젝트가 전용 콘텐트 교환기로 일단 하적되면, 연관된 원 서버는 그 콘텐트 오브젝트에 대한 요청들에 의해서 덜 부담된다.
본 발명의 여러 변경들 및 수정들이 사용될 수도 있다. 예를 들어, 상기 실시예들 중의 일부는, 콘텐트 교환기의 프리로딩을 시작하기 위해 낮은 대역폭 이용을 테스트한다. 그러나, 다른 실시예들은, 밤의 중간과 같은 미리 결정된 시간에 프리로딩할 수 있다. 대역폭 이용은 밤의 중간에 최소일 것으로 사료된다.
특정 기구들과 방법들과 관련하여 본 발명의 원리들을 설명하였지만, 이러한 설명은 단지 예시하기 위한 것이지 본 발명의 범위를 한정하려는 것은 아님은 자명하다.
Claims (24)
- 네트워크(network) 상의 콘텐트 저장부(content store)에 콘텐트 오브젝트들(content objects)을 로딩(loading)하는 방법에 있어서,트리거(trigger)하는 사건을 대기(waiting for)하는 단계와;제 1 원 서버(origin server)가, 콘텐트 저장부에 콘텐트를 저장하도록 허용되는지를 결정하는 단계와;제 1 콘텐트 오브젝트에 대한 요청 없이, 상기 제 1 원 서버로부터 제 1 콘텐트 오브젝트를 콘텐트 저장부 상에 로딩하는 단계와;제 2 원 서버가 콘텐트 저장부에 콘텐트를 저장하도록 허용되는지를 결정하는 단계와;제 2 콘텐트 오브젝트에 대한 요청 없이, 상기 제 2 원 서버로부터 제 2 콘텐트 오브젝트를 콘텐트 저장부 상에 로딩하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 콘텐트 오브젝트의 대중성(popularity)을 결정하는 단계를 더 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 로딩 단계들의 수행은 대기하는 단계에서 조절되는,네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는,미리 결정된 임계치 아래로 떨어지도록, 제 1 원 서버와 콘텐트 저장부 사이의 업스트림 대역폭(bandwidth)을 대기하는 단계와;미리 결정된 임계치 아래로 떨어지도록, 제 2 원 서버와 콘텐트 저장부 사이의 업스트림 대역폭을 대기하는 단계 중 적어도 하나를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 미리 결정된 임계치 아래로 떨어지도록, 콘텐트 저장부로 업스트림 대역폭을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 네트워크에의 연결을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1항에 있어서, 상기 대기하는 단계는, 미리 결정된 임계치 아래로 떨어지도록, 클라이언트 컴퓨터로부터 콘텐트 저장부로의 업스트림 대역폭 이용을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 일시적인 사건을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법에 있어서,트리거하는 사건을 대기하는 단계와;콘텐트 오브젝트의 대중성을 결정하는 단계와;제 1 콘텐트 오브젝트에 대한 요청 없이, 콘텐트 저장부 상에 제 1 원 서버로부터 제 1 콘텐트 오브젝트를 로딩하는 단계와;제 2 콘텐트 오브젝트에 대한 요청 없이, 콘텐트 저장부 상에 제 2 원 서버로부터 제 2 콘텐트 오브젝트를 로딩하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 로딩하는 단계들의 수행은 대기하는 단계에서 조절되는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서,제 1 원 서버가, 콘텐트 저장부에 콘텐트를 저장하도록 허용되는지를 결정하는 단계와;제 2 원 서버가, 콘텐트 저장부에 콘텐트를 저장하도록 허용되는지를 결정하는 단계를 더 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는,미리 결정된 임계치 아래로 떨어지도록, 제 1 원 서버와 콘텐트 저장부 사이의 업스트림 대역폭을 대기하는 단계와;미리 결정된 임계치 아래로 떨어지도록, 제 2 원 서버와 콘텐트 저장부 사이의 업스트림 대역폭을 대기하는 단계 중 적어도 하나를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 미리 결정된 임계치 아래로 떨어지도록, 콘텐트 저장부로 업스트림 대역폭을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 네트워크에의 연결을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 미리 결정된 임계치 아래로 떨어지도록, 클라이언트 컴퓨터로부터 콘텐트 저장부로의 업스트림 대역폭 이용을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 일시적인 사건을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법에 있어서,트리거하는 사건을 대기하는 단계와;다수개의 제 1 콘텐트 오브젝트들 중의 어느 하나에 대한 요청 없이, 제 1 원 서버로부터 다수의 제 1 콘텐트 오브젝트들을 콘텐트 저장부 상에 로딩하는 단계와;다수의 제 2 콘텐트 오브젝트들 중 어느 하나에 대한 요청 없이, 제 2 원 서버로부터 다수개의 제 2 콘텐트 오브젝트들을 콘텐트 저장부 상에 로딩하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 콘텐트 오브젝트의 대중성을 결정하는 단계를 더 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서,제 1 원 서버가, 콘텐트 저장부에 콘텐트를 저장하도록 허용되는지를 결정하는 단계와;제 2 원 서버가, 콘텐트 저장부에 콘텐트를 저장하도록 허용되는지를 결정하는 단계를 더 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는,미리 결정된 임계치 아래로 떨어지도록, 제 1 원 서버와 콘텐트 저장부 사이의 업스트림 대역폭을 대기하는 단계와;미리 결정된 임계치 아래로 떨어지도록, 제 2 원 서버와 콘텐트 저장부 사이의 업스트림 대역폭을 대기하는 단계 중 적어도 하나를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 미리 결정된 임계치 아래로 떨어지도록, 콘텐트 저장부의 업스트림 대역폭을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 네트워크으로의 연결을 대기하는단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 미리 결정된 임계치 아래로 떨어지도록, 클라이언트 컴퓨터로부터 콘텐트 저장부로의 업스트림 대역폭 이용을 대기하는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
- 제 1 항에 있어서, 상기 대기하는 단계는, 일시적인 사건을 기다리는 단계를 포함하는, 네트워크 상의 콘텐트 저장부에 콘텐트 오브젝트들을 로딩하는 방법.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20900700P | 2000-06-01 | 2000-06-01 | |
US60/209,007 | 2000-06-01 | ||
US66520400A | 2000-09-18 | 2000-09-18 | |
US09/665,204 | 2000-09-18 | ||
US09/867,868 US20010051980A1 (en) | 2000-06-01 | 2001-05-29 | Preloading content objects on content exchanges |
US09/867,868 | 2001-05-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20040008258A true KR20040008258A (ko) | 2004-01-28 |
Family
ID=26903736
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027016449A KR20040008258A (ko) | 2000-06-01 | 2001-06-01 | 콘텐트 교환기들 상에 콘텐트 오브젝트들을 프리로딩하는방법 |
KR1020027016434A KR20030026932A (ko) | 2000-06-01 | 2001-06-01 | Qos 기반 콘텐트 배포 네트워크 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020027016434A KR20030026932A (ko) | 2000-06-01 | 2001-06-01 | Qos 기반 콘텐트 배포 네트워크 |
Country Status (10)
Country | Link |
---|---|
US (1) | US20010051980A1 (ko) |
EP (1) | EP1287659A2 (ko) |
JP (1) | JP2003535396A (ko) |
KR (2) | KR20040008258A (ko) |
CN (1) | CN1454426A (ko) |
AR (2) | AR029109A1 (ko) |
AU (1) | AU2001266652A1 (ko) |
CA (1) | CA2410850A1 (ko) |
TW (1) | TW510106B (ko) |
WO (1) | WO2001093532A2 (ko) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7216043B2 (en) * | 1997-02-12 | 2007-05-08 | Power Measurement Ltd. | Push communications architecture for intelligent electronic devices |
US7305469B2 (en) * | 2001-12-18 | 2007-12-04 | Ebay Inc. | Prioritization of third party access to an online commerce site |
US9167036B2 (en) | 2002-02-14 | 2015-10-20 | Level 3 Communications, Llc | Managed object replication and delivery |
US7921443B2 (en) | 2003-01-31 | 2011-04-05 | Qwest Communications International, Inc. | Systems and methods for providing video and data services to a customer premises |
US7376386B2 (en) * | 2003-06-02 | 2008-05-20 | Qwest Communications International Inc | Systems and methods for distributing content objects in a telecommunication system |
US7240361B2 (en) * | 2003-01-31 | 2007-07-03 | Qwest Communications International Inc. | Systems and methods for controlled transmittance in a telecommunication system |
DE10320711A1 (de) * | 2003-05-08 | 2004-12-16 | Siemens Ag | Verfahren und Anordnung zur Einrichtung und Aktualisierung einer Benutzeroberfläche zum Zugriff auf Informationsseiten in einem Datennetz |
US7464385B1 (en) * | 2003-05-09 | 2008-12-09 | Vignette Corporation | Method and system for performing bulk operations on transactional items |
US7941453B1 (en) * | 2003-05-09 | 2011-05-10 | Vignette Software Llc | Method and system for deployment of content using proxy objects |
CA2429761A1 (en) * | 2003-05-23 | 2004-11-23 | Ibm Canada Limited - Ibm Canada Limitee | Targeted web page redirection |
CN100461712C (zh) * | 2003-07-24 | 2009-02-11 | 华为技术有限公司 | 一种网络信令测试的方法 |
US8112449B2 (en) | 2003-08-01 | 2012-02-07 | Qwest Communications International Inc. | Systems and methods for implementing a content object access point |
WO2005027439A1 (ja) * | 2003-09-12 | 2005-03-24 | Nec Corporation | メディアストリ−ムのマルチキャスト配信方法及び装置 |
US7703082B2 (en) * | 2004-12-07 | 2010-04-20 | International Business Machines Corporation | Controlling user intervention in a multi-processing computer system |
KR100758281B1 (ko) * | 2004-12-20 | 2007-09-12 | 한국전자통신연구원 | 다중 서비스 타입 관리 기능을 가지는 컨텐츠 분배 관리시스템 및 그 방법 |
US20090125958A1 (en) * | 2005-11-23 | 2009-05-14 | Pak Siripunkaw | Method of upgrading a platform in a subscriber gateway device |
KR100829074B1 (ko) * | 2006-04-06 | 2008-05-16 | 경희대학교 산학협력단 | Promethee 알고리즘에 기초한 웹 서비스 제공자의선택 방법 |
CN101262413B (zh) * | 2007-03-05 | 2011-01-05 | 华为技术有限公司 | 实现媒体缓存的方法、系统和装置 |
US8628522B2 (en) | 2007-05-21 | 2014-01-14 | Estech, Inc. (Endoscopic Technologies, Inc.) | Cardiac ablation systems and methods |
US8108911B2 (en) | 2007-11-01 | 2012-01-31 | Comcast Cable Holdings, Llc | Method and system for directing user between captive and open domains |
US8745507B2 (en) * | 2007-11-30 | 2014-06-03 | At&T Intellectual Property I, L.P. | Preloader employing enhanced messages |
US9313108B2 (en) * | 2007-12-14 | 2016-04-12 | Ericsson Ab | Flexible and scalable method and apparatus for dynamic subscriber services configuration and management |
US9762692B2 (en) | 2008-04-04 | 2017-09-12 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US8930538B2 (en) | 2008-04-04 | 2015-01-06 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US10924573B2 (en) | 2008-04-04 | 2021-02-16 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
AU2010202034B1 (en) | 2010-04-07 | 2010-12-23 | Limelight Networks, Inc. | Partial object distribution in content delivery network |
US20110078017A1 (en) * | 2009-09-29 | 2011-03-31 | Selina Lam | Systems and methods for rating an originator of an online publication |
US8769614B1 (en) * | 2009-12-29 | 2014-07-01 | Akamai Technologies, Inc. | Security framework for HTTP streaming architecture |
CN103109511A (zh) * | 2010-04-07 | 2013-05-15 | 杰出网络公司 | 内容分发网络中的部分对象分配 |
US10097863B2 (en) | 2010-08-22 | 2018-10-09 | Qwilt, Inc. | System and method for live service content handling with content storing servers caching popular content therein |
US11032583B2 (en) | 2010-08-22 | 2021-06-08 | QWLT, Inc. | Method and system for improving high availability for live content |
US10127335B2 (en) | 2010-08-22 | 2018-11-13 | Qwilt, Inc | System and method of performing analytics with respect to content storing servers caching popular content |
US9723073B2 (en) | 2010-08-22 | 2017-08-01 | Qwilt, Inc. | System for detection of content servers and caching popular content therein |
US10097428B2 (en) * | 2010-08-22 | 2018-10-09 | Qwilt, Inc. | System and method for caching popular content respective of a content strong server in an asymmetrical routing topology |
US8943065B2 (en) * | 2012-05-23 | 2015-01-27 | Oracle International Corporation | Catalog performance and integrity analysis |
US9934482B2 (en) | 2013-05-24 | 2018-04-03 | Sap Se | Content maintenance optimization |
US10116752B2 (en) * | 2013-09-17 | 2018-10-30 | Karos Health Incorporated | System and method for bridging divergent information networks |
US11038922B2 (en) | 2013-12-06 | 2021-06-15 | Fastly, Inc. | Secure traffic optimization in an edge network |
US9906618B2 (en) * | 2013-12-06 | 2018-02-27 | Fastly Inc. | Return path selection for content delivery |
US10154110B2 (en) | 2014-04-22 | 2018-12-11 | Qwilt, Inc. | System and methods thereof for delivery of popular content using a multimedia broadcast multicast service |
EP3010195A1 (en) * | 2014-10-14 | 2016-04-20 | Alcatel Lucent | Adapting a network for transmitting data between end devices |
CN104320487B (zh) * | 2014-11-11 | 2018-03-20 | 网宿科技股份有限公司 | 内容分发网络的http调度系统和方法 |
US10796022B2 (en) | 2018-05-16 | 2020-10-06 | Ebay Inc. | Weighted source data secured on blockchains |
CN108804351B (zh) * | 2018-05-30 | 2021-10-29 | 郑州云海信息技术有限公司 | 一种缓存置换方法以及装置 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03192884A (ja) * | 1989-12-21 | 1991-08-22 | Matsushita Electric Ind Co Ltd | 文字図形情報表示装置 |
US6181867B1 (en) * | 1995-06-07 | 2001-01-30 | Intervu, Inc. | Video storage and retrieval system |
US6003030A (en) * | 1995-06-07 | 1999-12-14 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
US6029175A (en) * | 1995-10-26 | 2000-02-22 | Teknowledge Corporation | Automatic retrieval of changed files by a network software agent |
US5991306A (en) * | 1996-08-26 | 1999-11-23 | Microsoft Corporation | Pull based, intelligent caching system and method for delivering data over a network |
SE9603753L (sv) * | 1996-10-14 | 1998-04-06 | Mirror Image Internet Ab | Förfarande och anordning för informationsöverföring på Internet |
US6101180A (en) * | 1996-11-12 | 2000-08-08 | Starguide Digital Networks, Inc. | High bandwidth broadcast system having localized multicast access to broadcast content |
US6714976B1 (en) * | 1997-03-20 | 2004-03-30 | Concord Communications, Inc. | Systems and methods for monitoring distributed applications using diagnostic information |
KR100198476B1 (ko) * | 1997-04-23 | 1999-06-15 | 윤종용 | 노이즈에 견고한 스펙트럼 포락선 양자화기 및 양자화 방법 |
US6038599A (en) * | 1997-04-23 | 2000-03-14 | Mpath Interactive, Inc. | Latency server and matchmaker |
US5978381A (en) * | 1997-06-06 | 1999-11-02 | Webtv Networks, Inc. | Transmitting high bandwidth network content on a low bandwidth communications channel during off peak hours |
US6112239A (en) * | 1997-06-18 | 2000-08-29 | Intervu, Inc | System and method for server-side optimization of data delivery on a distributed computer network |
US6442598B1 (en) * | 1997-10-27 | 2002-08-27 | Microsoft Corporation | System and method for delivering web content over a broadcast medium |
US6591288B1 (en) * | 1998-05-19 | 2003-07-08 | Nortel Networks Limited | Data network accelerated access system |
US6108703A (en) * | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
JP2000057072A (ja) * | 1998-08-04 | 2000-02-25 | Mitsubishi Electric Corp | データ転送方式 |
US6553417B1 (en) * | 1998-08-05 | 2003-04-22 | International Business Machines Corporation | Internet data access acknowledgment applet and method |
US6775828B2 (en) * | 1999-07-19 | 2004-08-10 | Microsoft Corporation | Delayed uploading of user registration data |
US6341304B1 (en) * | 1999-09-23 | 2002-01-22 | International Business Machines Corporation | Data acquisition and distribution processing system |
US6622168B1 (en) * | 2000-04-10 | 2003-09-16 | Chutney Technologies, Inc. | Dynamic page generation acceleration using component-level caching |
-
2001
- 2001-05-29 US US09/867,868 patent/US20010051980A1/en not_active Abandoned
- 2001-05-31 AR ARP010102620A patent/AR029109A1/es unknown
- 2001-05-31 AR ARP010102621A patent/AR029110A1/es unknown
- 2001-06-01 EP EP01944219A patent/EP1287659A2/en not_active Withdrawn
- 2001-06-01 KR KR1020027016449A patent/KR20040008258A/ko not_active Application Discontinuation
- 2001-06-01 JP JP2001588197A patent/JP2003535396A/ja active Pending
- 2001-06-01 CA CA002410850A patent/CA2410850A1/en not_active Abandoned
- 2001-06-01 KR KR1020027016434A patent/KR20030026932A/ko active IP Right Grant
- 2001-06-01 WO PCT/US2001/017779 patent/WO2001093532A2/en not_active Application Discontinuation
- 2001-06-01 CN CN01813213A patent/CN1454426A/zh active Pending
- 2001-06-01 AU AU2001266652A patent/AU2001266652A1/en not_active Abandoned
- 2001-07-24 TW TW090113228A patent/TW510106B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2001093532B1 (en) | 2003-03-20 |
AR029109A1 (es) | 2003-06-04 |
WO2001093532A2 (en) | 2001-12-06 |
TW510106B (en) | 2002-11-11 |
AU2001266652A1 (en) | 2001-12-11 |
EP1287659A2 (en) | 2003-03-05 |
CA2410850A1 (en) | 2001-12-06 |
KR20030026932A (ko) | 2003-04-03 |
JP2003535396A (ja) | 2003-11-25 |
US20010051980A1 (en) | 2001-12-13 |
CN1454426A (zh) | 2003-11-05 |
AR029110A1 (es) | 2003-06-04 |
WO2001093532A3 (en) | 2002-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20040008258A (ko) | 콘텐트 교환기들 상에 콘텐트 오브젝트들을 프리로딩하는방법 | |
US6836806B1 (en) | System for network addressing | |
US6658000B1 (en) | Selective routing | |
US6879998B1 (en) | Viewer object proxy | |
CA2413956C (en) | Active directory for content objects | |
JP2004509485A (ja) | リバースコンテンツハーベスタ | |
JP2004509381A (ja) | 自己発行ネットワークディレクトリ | |
CA2410959A1 (en) | Content tracking | |
AU2001265310A1 (en) | Preloading content objects on content exchanges | |
JP2004507806A (ja) | クライアント側の全体的健康チェック | |
JP2004508614A (ja) | コンテンツマネージャ | |
JP2004511117A (ja) | クライアント側アドレスルーティング解析 | |
JP2004501443A (ja) | クライアントの側の決定論的ルーティングおよびトランスペアレントなあて先変更 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |