KR101034983B1 - 뷰어 오브젝트 프록시 - Google Patents

뷰어 오브젝트 프록시 Download PDF

Info

Publication number
KR101034983B1
KR101034983B1 KR1020027016436A KR20027016436A KR101034983B1 KR 101034983 B1 KR101034983 B1 KR 101034983B1 KR 1020027016436 A KR1020027016436 A KR 1020027016436A KR 20027016436 A KR20027016436 A KR 20027016436A KR 101034983 B1 KR101034983 B1 KR 101034983B1
Authority
KR
South Korea
Prior art keywords
content
content object
source
server
exchange
Prior art date
Application number
KR1020027016436A
Other languages
English (en)
Other versions
KR20030060777A (ko
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
Application filed by 아에로캐스트, 인크. filed Critical 아에로캐스트, 인크.
Publication of KR20030060777A publication Critical patent/KR20030060777A/ko
Application granted granted Critical
Publication of KR101034983B1 publication Critical patent/KR101034983B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/30Routing of multiclass traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/09Obsolescence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/604Address structures or formats
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/663Transport layer addresses, e.g. aspects of transmission control protocol [TCP] or user datagram protocol [UDP] ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Transition And Organic Metals Composition Catalysts For Addition Polymerization (AREA)
  • Liquid Crystal (AREA)
  • Liquid Crystal Substances (AREA)

Abstract

콘텐트 배포 시스템상의 콘텐트 요청기와 콘텐트 소스 사이의 전송 품질을 향상시키기 위한 방법이 제공된다. 본 방법은 요청기와 다양한 콘텐트 소스들 사이에서 전송 품질을 결정하는 것을 수반한다. 결정은 요청기의 견지로부터 이루어진다. 다양한 콘텐트 소스들을 위한 전송 품질들을 결정한 이후에, 요청기는 콘텐트 배포 시스템상의 선택기에게 전송 품질들을 제공한다. 선택기는 결정된 전송 품질들을 사용하여 요청기에게 공급하기 위한 콘텐트 소스를 선택한다.

Description

뷰어 오브젝트 프록시{Viewer object proxy}
본 출원은 2000년 6월 1일자로 출원된 미국 가출원 제 60/209,007호의 권리를 주장한다.
본 발명은 콘텐트 배포에 관한 것으로, 보다 명확하게는, 인터넷상에서 콘텐트 배포시 서비스 품질(QOS)을 향상시키는 것에 관한 것이다.
인터넷을 통해 대형 콘텐트 파일들을 제공하는 것에 대한 필요성이 존재한다. 이런 대형 콘텐트 파일들을 전송하는 것이 가능하지만, 인터넷은 일정한 최소 전송율을 보증하는 것이 불가능하다. 일정한 최소 전송율을 보장하지 않고서는, 인터넷은 적절한 QOS를 제공할 수 없다. 스트리밍 비디오 및 오디오는 적절한 QOS를 보증하기 위해 일정한 최소 전송율로 전송할 필요가 있는 대형 콘텐트 파일들의 예들이다. 일반적으로, 인터넷은 이들 유형들의 콘텐트 파일들의 전송에 열악한 네트워크이며, 그 이유는 수 회의 잠재적 홉들 각각에서의 데이터 품질 손실, 최대 전송들의 제한된 대역폭, 및 인터넷은 단순히 일정한 데이터 전송율로 긴 시간 기간 동안 데이터를 스트리밍하도록 설계되어 있지 않다는 것 때문이다.
인터넷을 통해 콘텐트 파일들의 전송 동안 적절한 QOS를 제공하기 위해 다양한 방식들이 사용되어 왔다. 일 예는 부하 분산(load balancing)이다. 일반적으로, 부하 분산은 인터넷상의 다양한 노드들이 유사한 레벨들의 전송 활송에 수반되도록 콘텐트 파일 전송들을 안내하는 것을 수반한다. 이러한 방식은 전송 열화나 오버로드된 노드에 관련한 실패조차 경감시키지만, 이는 콘텐트 파일 소스와 요청기 사이에 매우 작은 QOS를 보장한다. 따라서, 콘텐트 파일들의 전송 동안 적절한 QOS를 제공하는 것이 바람직하다.
본 발명의 실시예는 콘텐트 배포 시스템상의 콘텐트 요청기와 콘텐트 소스 사이의 전송 품질을 향상시키기 위한 방법을 제공한다. 본 방법은 콘텐트 배포 시스템상의 요청기와 다양한 콘텐트 교환기들 사이에서 전송 품질을 평가하는 것을 포함한다. 결정은 요청기의 견지에서 이루어진다. 그후, 다양한 콘텐트 교환기들이 이 평가에 기초하여 순위가 매겨지고(rank), 이러한 순위가 선택기에 제공된다. 선택기는 순위가 매겨진 콘텐트 교환기들을 사용하여 요청기에게 공급하기 위한 콘텐트 교환기를 선택한다.
도면들과 청구항들을 포함하는 본 명세서의 나머지 부분들을 참조로, 본 발명의 다른 특징들 및 장점들을 실현할 수 있을 것이다. 본 발명의 다른 특징들 및 장점들과, 본 발명의 다양한 실시예들의 구조 및 동작이 첨부 도면들과 관련하여 이하 상세히 설명된다.
도 1은 콘텐트 배포 시스템의 실시예의 블록도.
도 2는 콘텐트 배포 시스템의 액티브 디렉토리부(active directory portion) 의 실시예의 블록도.
도 3A는 콘텐트 배포 시스템의 원 서버부(origin server portion)의 실시예의 블록도.
도 3B는 콘텐트 배포 시스템의 외부 원 서버부의 실시예의 블록도.
도 4A는 콘텐트 배포 시스템의 콘텐트 교환기부의 실시예의 블록도.
도 4B는 콘텐트 배포 시스템의 콘텐트 교환기부의 다른 실시예의 블록도.
도 4C는 다수의 콘텐트 교환기 서버들을 포함하는 콘텐트 교환 사이트의 실시예의 블록도.
도 5는 콘텐트 배포 시스템의 클라이언트 컴퓨터부의 실시예의 블록도.
도 6은 콘텐트 배포 시스템의 실시예의 블록도.
도 7A는 사용자에게 콘텐트를 배포하기 위한 프로세스의 실시예의 흐름도의 제 1 부분을 도시하는 도면.
도 7B는 도 7A의 흐름도의 제 2 부분을 도시하는 도면.
도 8은 뷰어 오브젝트 프록시의 실시예의 블록도.
도 9는 뷰어 오브젝트 프록시 배경 애플리케이션의 흐름도.
도 10은 뷰어 오브젝트 프록시 요청 서비스의 흐름도.
도 11은 원 서버와 콘텐트 교환기 사이의 콘텐트 추적 방법의 실시예의 흐름도.
도 12는 콘텐트 매니저로부터 서버 매니저로 정보를 통신하기 위한 프로세스의 실시예의 흐름도.
도 13은 콘텐트 매니저에 의해 서버 매니저로 정보를 발행하기 위한 프로세스의 흐름도의 실시예를 도시하는 도면.
도 14는 별개의 포트들을 통해 접속된 다수의 공급자들을 도시하는 콘텐트 교환기의 실시예의 블록도.
도 15는 별개의 어드레스들을 통해 접속된 다수의 공급자들을 도시하는 콘텐트 교환기의 다른 실시예의 블록도.
도 16은 공급자들과, 콘텐트 교환기들의 그룹화의 실시예의 계층도.
도 17은 공급자들과 콘텐트 교환기들의 그룹화의 다른 실시예의 계층도.
본 발명은 인터넷과 같은 네트워크를 가로질러 콘텐트 오브젝트 소스로부터 콘텐트 오브젝트를 전송할 때 서비스 품질(QOS)을 향상시킨다. 일 실시예에서, 클라이언트 컴퓨터는 충분한 QOS를 제공할 수 있는 콘텐트 교환기들을 결정하고, 원 서버에 대해 결정된 콘텐트 교환기들을 식별한다. 차례로, 원 서버는 클라이언트 컴퓨터가 그 콘텐트 오브젝트를 액세스하기 위해 사용할 수 있는, 충분한 QOS가 가능한 콘텐트 교환기를 선택한다.
도면들에서, 유사한 구성요소들 및/또는 특징들은 동일한 참조 부호를 가질 수 있다. 또한, 동일한 유형의 다양한 구성요소들은 그 참조 부호에 이어지는, 유사한 구성요소 들 사이를 구별하는 대시 및 제 2 참조 부호에 의해 구별될 수 있다. 단지 제 1 참조 부호만이 본 명세서에 사용되는 경우에, 그 설명은 제 2 참조 부호에 무관하게 동일 제 1 참조 부호를 가지는 유사한 구성요소들 중 임의의 것에 적용할 수 있다.
도 1을 참조하면, 콘텐트 배포 시스템(100)의 실시예의 블록도가 도시되어 있다. 본 실시예에서, 콘텐트 배포 시스템(100)은 액티브 디렉토리(104), 하나 이상의 원 서버들(108), 하나 이상의 클라이언트 컴퓨터들(112), 하나 이상의 콘텐트 교환기들(116), 하나 이상의 외부 원 서버들(118), 인터넷(120) 및 크롤링 디렉토리(crawling directory; 124)를 포함한다. 특히 클라이언트 컴퓨터(112)는 액티브 디렉토리(104)와 상호 작용하여 다운로드를 위한 콘텐트 오브젝트를 선택한다. 이 오브젝트는 그것이 스트리밍 미디어이면, 다운로드 동안 재생될 수 있고, 또한 추후 재생을 위해 저장될 수 있다. 콘텐트 오브젝트는 오디오, 비디오 또는 데이터와 같은 임의의 유형의 정보일 수 있으며, 이는 네트워크로부터 다운로드를 위해 이용가능하다. 콘텐트 오브젝트에 대한 요청은 클라이언트 컴퓨터(112)로부터의 선호도 정보와 함께 적절한 원 서버(108)에 포워딩된다. 원 서버(108)는 어디로부터 오브젝트가 다운로드되어야 하는지를 결정한다. 충분한 QOS를 제공하기 위해서, 임의의 콘텐트 교환기들(116) 또는 심지어 원 서버(108) 그 자체가 오브젝트를 제공할 수 있다.
액티브 디렉토리(104)는 콘텐트 오브젝트를 선택하기 위해 클라이언트 컴퓨터(112)에 대한 인터페이스가 될 수 있다. 원 서버(108) 및, 선택적으로, 클라이언트 컴퓨터(112) 양자 모두를 위한 소프트웨어가 액티브 디렉토리(104)로부터 다운로드되어 콘텐트 배포 시스템(100)을 가능화할 수 있다. 이 인터페이스들은 원 서버들(108)상의 콘텐트 오브젝트들에 대한 깨진 링크들을 회피하기 위해 액티브 방식으로 관리된다. 콘텐트 오브젝트가 콘텐트 교환기(116)에 의해 원 서버(108)로부터 요구될 때, 액티브 디렉토리(104)는 적절한 원 서버(108)에 대한 복귀 경로를 제공할 수 있다.
다른 실시예들은 다수의 액티브 디렉토리들을 가질 수 있다. 시스템의 사용자들은 부하(loading)를 분산시키기 위해 몇 개의 액티브 디렉토리들 사이에서 분할될 수 있다. 부가적으로, 하나의 액티브 디렉토리가 오프라인인 경우 나머지가 이 부하를 흡수하도록 다른 액티브 디렉토리들이 리던던시(redundancy)로 사용될 수 있다.
일부 실시예들에서, 원 서버(108)는 콘텐트 오브젝트의 소스를 제공하고, 사용자를 그 콘텐트 오브젝트의 선호 소스(preferred source)에 안내하며, 디렉토리 정보를 액티브 디렉토리(104)에 제공한다. 콘텐트 오브젝트들은 원 서버들(108)에 의해 시스템(100)에 도입된다. 도입은 액티브 디렉토리(104)에 대한 가용화를 위해 콘텐트 오브젝트들의 원 서버 관리자에 의한 선택을 수반한다. 관리자는 원 서버(108)를 관리하는 사람 또는 시스템이다. 콘텐트 오브젝트들은 이전에 기존에 저장된 정보나 정보의 스트리밍 공급을 포함한다. 미리 결정된 주기에 따라서, 원 서버(108)는 원 서버(108)상의 콘텐트가 변화될 때 갱신하는 선택된 정보의 목록을 제공한다.
원 서버(108)는 콘텐트 오브젝트를 다운로드하도록 클라이언트 컴퓨터(112)를 안내하기 위해 선호 소스를 결정한다. 클라이언트 컴퓨터(112)의 선호 리스트, 콘텐트 교환기들의 부하 및 콘텐트 오브젝트의 사본들의 위치는 정보의 선호 소스로의 클라이언트 컴퓨터의 재안내시 원 서버(108)의 모든 고려사항들이다. 그 소스는 원 서버(108) 그 자체 또는, 다른 콘텐트 교환기들(116) 중 하나일 수 있다.
사용자는 원하는 콘텐트 오브젝트를 발견하고, 이어서 그 오브젝트를 다운로드하도록 클라이언트 컴퓨터(112)를 안내한다. 액티브 디렉토리(104)로부터 다운로드된 뷰어 오브젝트 프록시 소프트웨어를 사용하여, 클라이언트 컴퓨터(112)는 적절한 QOS로 콘텐트를 전달할 수 있는 콘텐트 교환기들(116)을 결정한다. 적절한 QOS를 가진 콘텐트 교환기(116)를 결정하는 프로세스는 예로서, 선호 리스트 준비에 가장 양호한 결과를 생성하기 쉬운 콘텐트 교환기들로부터 테스트 정보를 수신하는 것을 수반한다. 사용자는 고객 맞춤화된 접근법이 바람직한 경우, 콘텐트 교환기들(116)의 선호 리스트를 변경할 수 있다. 원 서버(108)가 콘텐트 오브젝트의 소스를 결정할 때, 선호도 정보가 적절한 QOS를 제공하기 위해 사용된다.
외부 원 서버들(118)은 클라이언트 컴퓨터(112)에 이용가능한 콘텐트 오브젝트들의 부가적인 소스들이 될 수 있다. 일 실시예에서, 외부 원 서버들(118)은 콘텐트 교환기(116)에 결합된다.
콘텐트 교환기들(116)은 콘텐트 오브젝트들을 위한 캐시들이다. 다수의 이들 콘텐트 교환기들(116)은 콘텐트 오브젝트들을 캐시하도록 인터넷(120)의 상이한 지점들에 배포된다. 정보는, 개선된 QOS를 원하는 사용자들에 대한 서비스로서, 또는 사용자들에게 쉽게 이용가능한 콘텐트를 원하는 원 서버들(108)에 대한 서비스로서, 사용자들에 대한 정보의 양호성과 같은 다수의 고려사항들에 기초하여 캐시될 수 있다. 콘텐트 교환기들(116)의 그룹화는 클러스터들로, 또는, 개별적으로, 콘텐트 오브젝트들을 위한 클라이언트 컴퓨터들(112)의 요구를 서비스하도록 이루어질 수 있다.
요청된 콘텐트 오브젝트 또는 요청된 콘텐트 오브젝트의 일부가 콘텐트 교환기(116)로부터 그것을 요청하는 사용자에 의해 발견되지 않을 때, 콘텐트 교환기(116)에 의한 다른 콘텐트 교환기들에 대한 요청이 상기 콘텐트 교환기를 위해 이루어진다. 어떠한 다른 콘텐트 교환기들(116)도 콘텐트 오브젝트를 갖지 않는 경우에, 액티브 디렉토리(104)는 콘텐트 오브젝트의 소스인 원 서버(108)에 질의하고, 콘텐트 오브젝트가 그곳으로부터 다운로드된다. 콘텐트 교환기(116)가 콘텐트 오브젝트를 수집하는 동안, 클라이언트 컴퓨터(112)는 이용가능한 개시부들(initial portions)을 수신한다. 콘텐트 오브젝트는 몇 개의 콘텐트 교환기들(116)상에 단편들로 저장될 수 있으며, 요청 콘텐트 교환기(116)는 클라이언트 컴퓨터(112)에 의해 요구되는 바와 같은 전체 콘텐트 오브젝트를 재조합하기 위해 이들 단편들을 검색할 것이다.
일부 실시예들에서, 요청된 콘텐트 오브젝트 또는 요청된 콘텐트 오브젝트의 일부가 콘텐트 교환기(116)로부터 이를 요청하는 사용자에 의해 발견되지 않는 경우, 콘텐트 교환기(116)에 의한 외부 원 서버(118)로의 요청이 요청된 콘텐트 오브젝트를 검색하게 할 것이다.
크롤링 디렉토리(124)는 원 서버들(108)에 의해 보고된 목록 정보를 보완하기 위해 사용된다. 사용자를 위한 콘텐트 오브젝트들을 위한 검색시, 액티브 디렉토리(104)는 원 서버들(108)로부터 이용가능한 콘텐트 오브젝트들과 크롤링 디렉토리(124)에 의해 노출된 다른 콘텐트 오브젝트들을 디스플레이할 수 있다. 웹을 트래버싱함으로써, 크롤링 디렉토리들은 콘텐트 오브젝트들과 그들이 마주하는 다른 정보를 목록화한다. 예로서, 목록의 키워드 검색은 사용자를 시스템(100)상의 임의의 원 서버로부터 이용가능하지 않은 콘텐트 오브젝트로 안내할 수 있다. 클라이언트 컴퓨터(112)가 이를 다운로드할 때, 콘텐트 오브젝트를 캐시하기 위해서, 콘텐트 교환기들(116) 중 하나가 액티브 디렉토리(104)에 의해 선택될 수 있다. 비록 단 하나의 크롤링 디렉토리(124)가 본 실시예에서 사용되지만, 다른 실시예들은 부가적인 검색 결과들을 제공하기 위해 다수의 크롤링 디렉토리들을 사용할 수 있다.
인터넷(120)은 라우터들에 의해 함께 링크된 서버들로 구성된다. 데이터는 패킷들로 분할되고, 이 패킷들이 목적지에 도달할 때까지 하나의 라우터로부터 다음으로 홉핑(hopping)함으로써 인터넷(120)을 통해 운반된다. 각 패킷은 인터넷을 통해 상이한 루트를 취할 수 있고, 상이한 시간에 목적지에 도달할 수 있다. 부가적으로, 임의의 라우터의 대역폭이 포화될 때, 인터넷(120)을 통한 운반 동안 일부 패킷들이 손실될 수 있다. 콘텐트 오브젝트의 소스와 목적지 사이에 홉핑 횟수가 증가할 때, 과도한 지연 및 패킷 손실의 가능성도 증가한다.
소스로부터 목적지까지 인터넷(120)을 통한 경로를 콘텐트 오브젝트가 횡단할 때, 경로내의 소정의 두 라우터들 사이의 가장 작은 대역폭이 그 경로의 최대 대역폭을 규정한다. 일반적으로 인터넷(120)으로부터 클라이언트 컴퓨터까지의 대역폭은 최소 대역폭 할당을 가진다. 다른 시간에는, 라우터들 사이의 일부 다른 홉이 가장 작은 대역폭을 가진다. 콘텐트 교환기(116)와 클라이언트 컴퓨터(112) 사이에 최소량의 홉들을 구비한 콘텐트 교환기(116)에 콘텐트 오브젝트를 캐시하는 것은 적절한 QOS의 가능성을 증가시킨다.
클라이언트 컴퓨터의 인터넷(120)에 대한 데이터 전송율을 초과하지 않는 양호한 데이터 전송율로 콘텐트 오브젝트를 다운로딩하는 것이 적절한 QOS이다. 사용자가 기대할 수 있는 최대 QOS는 그 네트워크 접속의 속도, 그 컴퓨터의 처리력 및 다른 인자들에 의해 결정된다. 최소 QOS는 특정 제한들내에서 그들이 원하는 품질에 기초하여 사용자에 의해 주관적으로 규정된다. 예로서, 400Kbps 네트워크 접속과 빠른 컴퓨터를 가지는 사용자는 오디오 클립을 위해 28Kbps, 56Kbps, 또는 128Kbps 스트림의 선택을 가질 수 있으며, 그로부터 사용자는 128Kbps 스트림을 선택한다. 클라이언트 컴퓨터에 의해 제공되는 데이터 전송율이 128 내지 400Kbps인 한, 그 스트림을 위해 적절한 QOS가 가능하다.
비록, 상기 실시예가 다양한 블록들 사이의 접속을 위해 일차적으로 인터넷(120)을 사용하지만, 다른 실시예들은 인터넷(120) 외측의 사설 링크들을 사용할 수 있다. 부가적으로, 시스템(100) 외측의 콘텐트 오브젝트들은 캐싱, 암호화 및 압축이 제공되는 범위로 시스템(100)으로부터 이득을 취할 수 있다.
도 2를 참조하면, 콘텐트 배포 시스템(100)의 액티브 디렉토리부(104)의 실시예의 블록도가 도시되어 있다. 액티브 디렉토리(104)에는 동적 도메인명 서버(DNS)(204), 서버 매니저(208), 디렉토리 페이지(212), 검색 페이지(216), 다운로드 페이지(220), 가입자 데이터베이스(224), 서버 데이터베이스(228), 콘텐트 교환기 데이터베이스(232) 및 라우트 데이터베이스(234)가 포함된다. 콘텐트 배포 시스템(100)은 액티브 디렉토리(104)와 상호 작용하여 사용자에게로 디렉토리 정보를 제공하고, 사용자에게 콘텐트 오브젝트를 다운로딩하는 것을 보조한다.
클라이언트 컴퓨터(112)의 사용자와 원 서버(108)의 관리자 양자 모두는 콘텐트 배포 시스템(100)에 대한 가입자들이다. 소프트웨어는 다운로드 페이지로부터 사용자 및/또는 관리자에게 다운로드된다. 클라이언트 컴퓨터(112)를 위한 소프트웨어는 일부 실시예들에서 선택적이며, QOS를 향상시킨다. 원 서버(108)를 위한 소프트웨어는 액티브 디렉토리(104)가 시스템(100)상에서 이용가능한 콘텐트를 갱신하고, 클라이언트 컴퓨터(112)를 그 콘텐트를 수신하기 위한 선호 소스에 안내한다.
클라이언트 컴퓨터(112)는 액티브 디렉토리(104)의 도메인에 부속시켜 원하는 콘텐트 오브젝트를 검색한다. 선호도에 따라, 사용자는 콘텐트 오브젝트를 찾기 위해 디렉토리 페이지(212) 또는 검색 페이지(216)를 사용할 수 있다. 검색 페이지(216)는 통상적인 부울(boolean) 검색 엔진일 수 있으며, 이는 원 서버들(108)에 의해 제공된 콘텐트 오브젝트들의 목록과 크롤링 디렉토리(124)로부터 수집된 정보를 액세스한다. 다른 실시예들은 원 서버들(108)로부터의 콘텐트의 검색이 실패한 이후에 크롤링 디렉토리(124)로부터의 정보를 디스플레이하거나, 크롤링 디렉토리(124)로부터의 정보를 전적으로 생략한다. 모든 원 서버들(108)을 위한 콘텐트 오브젝트들의 목록은 서버 데이터베이스(228)내에 관리된다.
디렉토리 페이지(212)는 주제에 의해 조직된 카테고리들의 계층 구조로 가능한 콘텐트 오브젝트들을 조직화한다. 예로서, 제 1 페이지는 다수의 일반적인 관심사의 토픽들을 보여주며, 여기서 사용자는 스포츠를 선택한다. 계층 구조의 한 레벨 아래인 다음 페이지에서, 다수의 스포츠들이 디스플레이되고, 여기서, 사용자는 미식축구를 선택한다. 계층 구조의 또 다른 레벨 아래에서, 사용자는 San Diego ChargersTM을 선택하여 관련 콘텐트 오브젝트 링크들의 다른 페이지를 볼 수 있다.
관리자는 원 서버(108)상의 콘텐트를 카테고리화하여, 디렉토리 페이지(212)가 이를 적절히 표현하도록 한다. 사이트, 디렉토리 또는 파일 기반들 상에서, 관리자는 그 콘텐트 오브젝트와 연관된 HTML SSI 태그의 콘텐트 오브젝트를 위한 카테고리를 선택할 수 있다. 이 분류는 콘텐트 오브젝트들을 상이한 카테고리들로 제시할 수 있도록 액티브 디렉토리 상에 수확 및 저장된다. 부가적으로, 매개자가 디렉토리 페이지(212)를 위해 콘텐트 오브젝트들을 카테고리들로 기술 및 배열할 수 있다. 예로서, 매개자는 보다 눈에 띄는 디스플레이를 위해 특정 콘텐트 오브젝트들을 마크하고/또는 콘텐트 오브젝트를 위한 후기를 추가할 수 있다.
서버 매니저(208)는 모든 클라이언트 컴퓨터들(112), 모든 원 서버들(108), 모든 외부 원 서버들(118), 모든 콘텐트 교환기들(116) 및 원 서버들(108)상의 모든 콘텐트 오브젝트들에 대한 정보를 관리한다. 클라이언트 컴퓨터들(112) 및 원 서버들(108)에 관련된 정보는 가입자 데이터베이스(224)에 관리된다. 전체 이름, 로그인 이름, 패스워드, 고유 식별자, 가용 토큰 크레디트들, 및 다른 정보가 클라이언트 컴퓨터(112)와 연관된 각 사용자에 대하여 가입자 데이터베이스(224)에 관리된다. 또한, 이러한 데이터베이스(224)는 원 서버(108)가 검증된 최종 시간, 원 서버(108)를 위한 인터넷 프로토콜(IP) 어드레스, 콘텐트 매니저 서버가 구동되는 포트, 원 서버(108)의 온/오프라인 상태, 배너 광고 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 컴퍼니(XYZ company)와 같은 콘텐트 교환기를 위한 책임을 가진 부류의 식별자이다. 콘텐트명은 도메인명이며, 콘텐트 교환기 위치는 콘텐트 교환기(116)를 위한 지리적 좌표들일 수 있다. 예시적 실시예에서, 콘텐트 교환 데이터베이스(232)는 콘텐트 교환기 식별자, 콘텐트 교환 사이트, 콘텐트 교환기 IP 어드레스, 콘텐트 교환기 공급자, 콘텐트 교환기명, 콘텐트 교환기 위치 및 각 콘텐트 교환기(116)를 위한 아이콘을 콘텐트 교환기 데이터베이스(232)내에 포함한다.
일반적으로, 콘텐트 교환기 데이터베이스(232)는 개선된 QOS 기준들 또는 가입 서비스 기준을 비제한적으로 포함하는 다양한 방법들에 의해 지역화 또는 구획화될 수 있다. 부가적으로, 콘텐트 교환기 데이터베이스(232)는 대안적인 액티브 디렉토리들의 리스팅, 원 서버들(108) 또는 임의의 다른 유용한 또는 필수적인 정보를 포함할 수 있다.
시스템(100)내의 콘텐트 교환기들(116)은 규칙적으로 서버 매니저(208)에 상태를 제공한다. 콘텐트 교환기(116)가 이용가능해지거나 또는 이용가능하지 않을 때, 그 동작 상태는 서버 매니저(208)에 보고되고, 콘텐트 교환기 데이터베이스(232)에 기록된다. 일부 실시예들에서, 콘텐트 교환기 데이터베이스(232)는 콘텐트 교환기(116)의 부하, 용량, 활용도, 및 성능 상태를 포함하는 부가적인 상태 정보를 포함할 수 있다.
라우팅 데이터베이스(234)는 외부 원 서버들(118)의 리스트를 포함한다. 일부 실시예들에서, 라우팅 데이터베이스(234)는 외부 원 서버들(118)에 관련한 신분확인, 상태 및 조직화 정보를 포함한다. 신분확인 정보는 외부 서버(118)를 위한 IP 어드레스 및 도메인명을 포함할 수 있다. 상태 정보는 가용성, 부하 또는 외부 원 서버에 대한 다른 상태를 포함할 수 있다. 조직화 정보는 대안적인 외부 원 서버들(118)의 리스트를 포함한다. 일 실시예에서, 라우팅 데이터베이스(234)는 각 외부 원 서버(118)를 위한 IP 어드레스와 도메인명을 포함한다. 일부 실시예들에서, 라우팅 데이터베이스(234)내의 외부 원 서버(118)를 식별하는 것은 콘텐트 배포 시스템(100)과 외부 원 서버(118)를 연관시키는 메커니즘이다.
라우팅 데이터베이스내의 각 외부 원 서버를 위해, 외부 원 서버(118)상의 정보를 액세스하기 위하여, 콘텐트 교환기(116)를 사용할 수 있도록 허가된 사용자 이름들의 리스트가 존재한다. 사용자 이름은 클라이언트 컴퓨터(112)의 사용자에 대해 고유하다. 클라이언트 컴퓨터가 라우팅될 수 있는 외부 원 서버들(118)의 리스트가 클라이언트 컴퓨터(112)에 제공된다. 클라이언트 컴퓨터(112)는 라우팅 데이터베이스로부터 이 정보를 사용하여 외부 원 서버(118)를 위한 사용자 요청들을 콘텐트 교환기(116)로 재안내한다. 콘텐트 교환기(116)가 외부 원 서버(118)로부터의 콘텐트 오브젝트들로 거주(populate)된 이후에, 대역폭이 외부 원 서버(118)로부터 콘텐트 교환기(116)로 오프로드된다. 사용자는 이 강화된 서비스를 위해 원 서버의 관리자 및 또는 콘텐트 교환기의 소유자에게 돈을 지불할 수 있다.
동적 DNS(204)는 원 서버들(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 또는 해시(hash)와 같은 임의의 고유 코드를 사용할 수 있다.
원 서버(308)의 모든 콘텐트 오브젝트들이 콘텐트 서버(308)상에 저장된다. 관리자는 시스템(100)에 비가용한 콘텐트 서버(308)상에 다른 콘텐트 오브젝트들을 남겨두고, 시스템(100)에 공개하기 위한 콘텐트 오브젝트들의 그룹들 또는 콘텐트 오브젝트를 선택할 수 있다. 일부 다른 오브젝트들은 이산 파일들이지만, 나머지들은 예로서, 라이브 웹 캠들에 의해 생성된 콘텐트의 스트림들이다. 콘텐트 서버(308)를 구동하는 소프트웨어는 콘텐트 매니저(312)의 소프트웨어와 통합될 수 있다.
콘텐트 매니저(312)는 원하는 콘텐트 오브젝트들을 시스템(100)에 공개하고, 콘텐트 매니저(312)와 연관된 콘텐트 오브젝트들을 다운로딩하기 위해 사용자들을 선호 콘텐트 교환기(preferred content exchange)(116)에 안내한다. 관리자의 안내시, 콘텐트 매니저(312)는 콘텐트 오브젝트들 또는 콘텐트 오브젝트들의 그룹들을 파일명, 액티브 디렉토리(104)에 공개하기 위한 디렉토리 또는 드라이브 용적에 의해 선택한다. 콘텐트 서버(308)상의 일부 콘텐트 오브젝트들은 시스템(100)에 이용가능하지 않도록 공개로부터 배제될 수 있다.
시스템에 대한 공개를 위해 선택된 콘텐트 오브젝트들은 로컬 콘텐트 목록(316)내에 관리된다. 로컬 콘텐트 목록(316)내의 엔트리들은 이들 엔트리들에 대응하는 오브젝트들이 가용해지거나 갱신될 수 있을 때, 콘텐트 매니저(312)에 의해 현재 상태가 유지된다. 각 엔트리를 위하여, 콘텐트 오브젝트 파일명과 경로가 카테고리 정보, 간단한 설명 및 키워드들과 함께 저장된다. 시스템(100)에 대한 연결시, 로컬 콘텐트 목록(316)은 콘텐트 매니저(312)에 의해 서버 데이터베이스(228)에 대한 엔트리를 위해 액티브 디렉토리(104)에 보내진다. 주기 적으로, 로컬 콘텐트 목록(316)에 대한 변경들이 서버 데이터베이스(228)에 전송되어 가능한 현재 상태로 디렉토리 정보를 유지한다. 갱신들은 매 2분마다 및/또는 로컬 콘텐트 목록내의 변경이 이루어질 때마다 같이 정규 간격으로 이루어질 수 있다.
또한, 콘텐트 매니저(312)는 그 콘텐트 매니저(312)와 연관된 콘텐트 오브젝트들의 모든 부분들의 위치를 안다. 시스템(100)에 첨부시, 콘텐트 매니저(312)는 상태를 위해 콘텐트 교환기들(116) 각각과 접촉한다. 콘텐트 교환기(116)는 주기적으로 그 콘텐트 오브젝트 또는 콘텐트 오브젝트 부분들에 대하여 연관된 콘텐트 매니저들(312)에게 보고한다. 이 정보로 무장하여, 콘텐트 매니저(312)는 클라이언트 컴퓨터(112)를 다운로드를 위해 이용가능한 일부 또는 모든 원하는 콘텐트 오브젝트를 가질 수 있는 콘텐트 교환기(116)로 안내할 수 있다.
콘텐트 교환기들(108)에 의해 보고된 콘텐트 오브젝트들을 위한 위치 정보는 콘텐트 매니저에 의해 콘텐트 위치 데이터베이스(320)내에 관리된다. 콘텐트 위치 데이터베이스(320)에 질의함으로써, 콘텐트 매니저(312)는 콘텐트 오브젝트 또는 콘텐트 오브젝트의 일부를 포함한 콘텐트 교환기들(116)을 결정할 수 있다. 콘텐트 소스에 대한 클라이언트 컴퓨터(112)의 라우팅 동안, 특정 콘텐트 교환기(112)내의 콘텐트 오브젝트의 존재가 라우팅 결정에 영향을 미칠 수 있다.
콘텐트 교환기 정보 저장부(324)는 모든 액티브 콘텐트 교환기들(116)에 대한 정보를 유지한다. 원 서버(108)의 파워-업시, 액티브 디렉토리(104)내의 콘텐트 교환기 데이터베이스(232)는 콘텐트 교환기 정보 저장부(324)로 다운로드된다. 콘텐트 교환기 정보 저장부(324)내에 리스트된 모든 콘텐트 교환기들(116)은 콘텐트 교환기 정보로서 유지되는 상태 정보를 위해 파워-업 이후 질의된다. 상태 정보는 사용된 동시발생 링크들의 수, 허용된 동시발생 링크들의 총 수, 대역폭 활용도, 및 캐시 이동율(cache churn rate)을 포함한다. 캐시의 이동율은 캐시내에 남아있는 미사용된 데이터의 시간의 양이며, 캐시의 부하를 나타낸다. 예로서, 데이터는 캐시내의 저장부의 양에 대해 분주한 콘텐트 교환기(116)를 위해 일반적으로 캐시 외측으로 급속히 쏟아져 나온다. 그러나, 일부 실시예들은 사용에 무관한 시간 기간 동안 콘텐트 교환기(116)내에 걸려져 남아있는 잘 움직이지 않는 콘텐트 오브젝트들을 가질 수 있다.
콘텐트 매니저(312)는 콘텐트 오브젝트를 원하는 클라이언트 컴퓨터(112)를 그 오브젝트를 위한 선호 소스에 지능적으로 재안내한다. 클라이언트 컴퓨터(112)로부터 제공된 선호도 정보가 사용되어 클라이언트 컴퓨터(112)에 의해 선호되는 콘텐트 오브젝트의 소스들을 결정한다. 콘텐트 오브젝트의 다운로딩을 위해 선호 콘텐트 교환기(116)에 클라이언트 컴퓨터(112)를 안내하기 위해 가능한 콘텐트 교환기들의 부하와 콘텐트 오브젝트의 현재 위치들과 함께 사용된다.
일부 실시예들에서, 콘텐트 매니저(312)는 콘텐트 오브젝트들에 대한 액세스를 규제할 수 있다. 클라이언트 컴퓨터(112)가 콘텐트 매니저(312)와 연관된 콘텐트 오브젝트들 다운로드하기를 시도할 때, 관리자가 콘텐트 오브젝트를 보안화한 경우에, 로그인 대화 창이 제공될 수 있다. 사용자는 사용자 이름 및/또는 패스워드를 이 로그인 대화 창에 입력하여 클라이언트 컴퓨터(112)의 콘텐트 오브젝트를 위한 소스로의 재안내를 가능하게 할 수 있다. 이 사용자 이름 및/또는 패스워드는 액티브 디렉토리(104)를 위해 필요한 것에 부가적이다. 클라이언트 컴퓨터(112)를 그 소스에 재안내하기 이전에, 사용자 이름 및/또는 패스워드나 로그인 정보가 원 서버(108)상에 이전에 저장된 허용 로그인 정보의 리스트에 대하여 검사된다. 전체 원 서버(108) 또는 용적, 디렉토리 또는 원 서버(108)상의 콘텐트 오브젝트에 대한 액세스는 이 방식으로 규제될 수 있다.
일부 실시예들은 콘텐트 교환기(116)상의 콘텐트 오브젝트들을 원 서버(108) 또는 액티브 디렉토리(104)가 프리로드(preload)할 수 있게 한다. 콘텐트 오브젝트들에 대한 요청은 양호도를 결정하기 위해 감시된다. 양호도 정보, 과금 정보 및/또는 다른 고려사항들은 어떤 콘텐트 오브젝트들을 콘텐트 교환기(116)상에서 프리로드할 것인지를 결정하기 위해 사용된다. 원 서버(108) 또는 액티브 디렉토리(104) 중 어느 한쪽은 콘텐트 교환기(116)로부터의 콘텐트 오브젝트들을 그곳에서 프리로드하도록 요청할 수 있다. 주기적으로, 콘텐트 오브젝트들은 비활성화로 인해 그것들이 언로드되지 않도록 콘텐트 교환기상에 그것들을 로딩된 채로 유지할 것을 요청받을 수 있다.
자체 검사(330)는 연관된 원 서버(108)의 동작 특성들을 제공하는 하드웨어 또는 소프트웨어 애플리케이션 중 어느 하나일 수 있다. 일 실시예에서, 자체 검사(330)는 원 서버(108) 상태의 단일 지표를 제공한다. 단일 지표는 원 서버 특징들의 조합을 나타내는 1과 0 사이에서 정규화된 값이다. 예로서, 이는 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) 사이의 인터페이스를 자동화할 수 있다.
라우팅 데이터베이스(234)에 대한 갱신들은 클라이언트 컴퓨터(12)에 의해 다운로드되고 국부적으로 저장된다. 외부 원 서버(118)를 액세스하기 위한 후속 시도들은 그 요청을 서비스하기 위해 콘텐트 교환기(116)에 재안내된다. 이 방식의 재안내는 외부 원 서버(118)가 클라이언트 컴퓨터들(112)을 콘텐트 매니저 소프트웨어로부터의 도움 없이 콘텐트 교환기(116)에 안내하는 것을 가능하게 한다.
외부 원 서버(118)는 외부 원 서버(118)를 위해 콘텐트 오브젝트들을 운반하도록 할당된 하나 이상의 콘텐트 교환기들(116)을 가질 수 있다. 라우팅 데이터베이스(234)는 가입한 클라이언트 컴퓨터들을 이들 콘텐트 교환기들(116) 중 하나 이상에 재안내할 수 있다. 클라이언트 컴퓨터가 이들 콘텐트 교환기들(116) 중 둘 이상을 사용하는 것이 허가되는 경우에, 클라이언트측 라우팅 분석이 둘 이상의 콘텐트 교환기들사에 수행되어 그들 사이의 상대 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 온도, 동시 발생 접속들의 수, 콘텐트 교환기가 조장하는 요청들의 수를 포함하는 콘텐트 교환기 특징들의 조합을 나타내는 0과 1 사이의 정규화된 값일 수 있다. 대안적인 실시예에서, 자체 검사(426)는 다른 콘텐트 교환기(116), 원 서버(108) 또는 위치 상에서 구동하면서, 콘텐트 교환기(116)의 특징들을 감시할 수 있다.
콘텐트 저장부(412)는 그 콘텐트 교환기(116)로부터 클라이언트 컴퓨터들(112)에 대한 다운로드를 위해 가용한 콘텐트 오브젝트들을 유지한다. 경로 정보 및 파일명과 함께 콘텐트 오브젝트를 제공하는 원 서버(108)의 명칭이 콘텐트 저장부(412)내에 콘텐트 오브젝트와 함께 저장된다. 인터넷(120)을 경유하여, 클라이언트 컴퓨터들(112)은 콘텐트 저장부(412)에 접속하고, 데이터 스트림 또는 콘텐트 오브젝트 파일을 다운로드한다. 새로운 콘텐트 오브젝트들이 콘텐트 저장부(412)에 추가될 때, 오래된 콘텐트 오브젝트들은 제거된다. 콘텐트 오브젝트의 연수(age)는 콘텐트 오브젝트가 액세스된 이후 지속 시간에 관련한다. 저장부(412)상의 일부 콘텐트 오브젝트들은 그들이 미리 결정된 시간 동안 저장부(412)내에 머무르도록 절대 오래되지 않는다. 원 서버(108)는 콘텐트 교환기(112)를 미리 결정된 시간의 기간 동안 콘텐트 오브젝트를 저장하도록 구성할 수 있다.
클라이언트 컴퓨터(112)가 콘텐트 저장부(412)로부터 콘텐트 오브젝트를 요청할 때, 콘텐트 오브젝트는 콘텐트 저장부(412)내에 현재 로딩되어 있지 않을 수 있다. 콘텐트 저장부(412)는 콘텐트 오브젝트를 위한 실행되지 않은 요청을 콘텐트 제어기(408)에 통지한다. 콘텐트 제어기(408)는 분실한 콘텐트 오브젝트들 또는 그 부분들을 다른 콘텐트 교환기(116)내에 또는 콘텐트 오브젝트가 발현된 콘텐트 서버(308)로부터 위치시킨다. 분실된 콘텐트 오브젝트들은 클라이언트 컴퓨터(112)가 이 정보를 다운로드할 수 있도록 콘텐트 제어기(408)에 의해 콘텐트 저장부(412)내로 로딩된다.
콘텐트 오브젝트가 콘텐트 저장부(412)로부터 분실되었을 때, 이 콘텐트 제어기(408)는 가장 먼저 그 오브젝트가 가용한지를 결정하기 위해 다른 콘텐트 교환기들(116)을 검사한다. 어떠한 콘텐트 교환기(116)도 원하는 콘텐트 오브젝트를 갖고 있지 않은 경우에, 이 정보가 발현된 콘텐트 서버가 그 콘텐트 오브젝트에 대하여 질의를 받게 된다. 콘텐트 저장부(412)는 발현 콘텐트 서버(308)를 위한 IP 어드레스를 포함하지 않으며, 그래서, 동적 DNS(204)가 그 정보에 대하여 질의를 받게 된다. 원 서버명이 주어지면, 동적 DNS(204)는 IP 어드레스를 제공하여 콘텐트 제어기(408)가 적절한 콘텐트 서버(308)로부터 콘텐트 오브젝트를 요청할 수 있도록 한다.
콘텐트 추적기(404)는 시스템(100)에게 콘텐트 저장부(412)내의 현재 항목들과, 콘텐트 교환기(116)를 위한 상태 정보를 보고한다. 로컬 콘텐트 목록(416)은 각 콘텐트 오브젝트 또는 콘텐트 저장부(412)내의 콘텐트 오브젝트의 일부를 위한 원 서버명, 경로 및 파일명을 기록한다. 새로운 항목들이 추가되고, 오래된 항목들이 콘텐트 저장부(412)로부터 제거될 때, 로컬 콘텐트 목록(416)이 갱신된다. 콘텐트 매니저(312)가 시스템(100)에 접속할 때, 모든 콘텐트 추적기들(404)에 대한 질의가 이루어지고, 콘텐트 오브젝트들의 어떤 부분들이 콘텐트 저장부들(412)상에 저장되어 있는지를 결정한다. 최초 질의는 콘텐트 저장부(412)에 변화들이 이루어질 때, 콘텐트 추적기(404)가 갱신하는 기준선을 제공한다. 이 변화들은 콘텐트 저장부(412)내에 저장된 콘텐트를 가지는 콘텐트 매니저들(312) 각각에 직접 보내진다. 이 프로세스 동안 동적 DNS(204)가 사용되어 각 콘텐트 오브젝트를 위한 원 서버명에 대응하는 IP 어드레스를 결정한다.
또한, 콘텐트 추적기(404)는 콘텐트 교환기(116)를 위한 상태 정보를 콘텐트 매니저들(312)에게 제공한다. 상태 정보는 예로서, 매 5 분마다 및/또는 변화들이 일어날 때마다 방송 또는 멀티캐스트로서 주기적으로 각 콘텐트 매니저들(312)에게 보내진다. 상태 정보는 현재 사용중인 콘텐트 교환기에 대한 동시 발생 링크들의 수, 허용된 동시 발생 링크들의 총 수, 대역폭 활용도 및 캐시 이동율을 포함할 수 있다. 다른 실시예에서, 상태 정보는 콘텐트 오브젝트 다운로드를 위해 클라이언트 컴퓨터(112)를 어디로 보내야 하는지를 결정할 때 콘텐트 매니저(312)가 질의할 수 있는 중앙 위치에 게시된다.
콘텐트 추적기(404)는 시스템(100)내에서 활성상태인 원 서버들(108)을 추적하기 위해 원 서버 데이터베이스(424)를 관리한다. 시스템에 접속된 이후에, 모든 원 서버들(108)은 그 자체를 콘텐트 추적기들(404)에 대해 식별한다. 콘텐트 추적기들(404)은 원 서버명과 IP 어드레스를 원 서버 데이터베이스(424)에 기록한다. 동적 DNS에 대한 질의는 주어진 원 서버명을 위한 IP 어드레스를 제공한다. 원 서버(108)가 급박한 비가용 상태를 콘텐트 추적기(404)에 통지하거나, 콘텐트 추적기(404)가 특정 원 서버와 접촉할 수 없는 경우, 그 원 서버를 위한 엔트리는 원 서버 데이터베이스(424)로부터 삭제된다. 부가적으로, 그 원 서버(108)에 대응하는 콘텐트는 콘텐트 저장부(412)로부터 소거되고, 로컬 콘텐트 목록(416)이 갱신된다. 일부 실시예들에서, 콘텐트 오브젝트 및 콘텐트 오브젝트 부분들은 소거되지 않으며, 단순히 저장 공간이 필요해질 때까지 삭제를 위해 태그가 부착된다.
일부 실시예들에서, 콘텐트 제어기(408)는 미리 결정된 콘텐트 오브젝트들을 취득하여 콘텐트 저장부(412)내에 유지할 것을 시스템(100)에 의해 지시받을 수 있다. 원하는 것으로 예상되는 콘텐트 오브젝트들이 요청을 위한 준비시 프리로딩될 수 있다. 콘텐트 오브젝트의 양호도는 검색 및 디렉토리 페이지들(212, 216)로부터의 그 콘텐트 오브젝트들에 대한 클릭쓰루(clickthrough)를 감시함으로써 결정될 수 있다. 예로서, 유명한 사람에 관련된 콘텐트 오브젝트들은 유명한 사람에 대한 전기 프로그램이 네트워크 텔레비전 상에 상영되기 직전에 콘텐트 저장부들(412)상으로 로딩될 수 있다. 대안적으로, 사용자들은 몇몇 콘텐트 교환기들(116)에 콘텐트 오브젝트들을 로딩하는 서비스에 가입할 수 있다. 예로서, 계획된 네트워크 프로그램은 TV 방송과 동시에 로딩될 수 있으며, 사용자는 TV 방송 대신 인터넷(120)을 통해 시청할 수 있다. 콘텐트는 가입된 사용자에게 지연없이 이용가능할 것이다.
도 4B를 참조하면, 콘텐트 배포 시스템(100)의 콘텐트 교환기부(116)의 다른 실시예의 블록도가 도시되어 있다. 본 실시예는 다수의 콘텐트 노드들(406)이 단일 추적 서버(402)에 결합되는 것을 허용한다. 콘텐트 버스(428)는 콘텐트 노드들(406)로 하여금 분실한 콘텐트 오브젝트들을 위한 콘텐트 저장부들(412)을 서로 검사하도록 허용한다. 콘텐트 버스(428)는 다른 위치들에서 다른 콘텐트 노드들에 결합할 수 있다. 콘텐트 버스(428)는 인터넷(120)을 통해 부분적으로 운반되거나 운반되지 않을 수 있다.
다음에, 도 4C를 참조하면, 다수의 콘텐트 교환기 서버들(116)을 포함하는 콘텐트 교환 사이트(432)의 실시예의 블록도가 도시되어 있다. 콘텐트 교환 사이트(432)가 다수의 콘텐트 교환기 서버들(116)을 포함하는 경우에도, 이는 시스템에게 단일 콘텐트 교환기(116)로 보여진다. 콘텐트 교환 사이트(432)의 부하는 콘텐트 교환기 서버들(116) 사이에서 배포된다. 레이어 포 스위치(layer four switch)와 같은 스위치(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)상의 알려진 지점들에 대한 그 일반적 위치를 결정한다. 충분한 QOS를 제공하기 위한 적당한 후보자들인 콘텐트 교환기들(116)이 필요한 홉들의 수와 각 콘텐트 교환기(116)와 뷰어 오브젝트 프록시(504) 사이의 지연을 결정하기 위해 테스트된다. 홉들의 수, 성취 대역폭과 같은 QOS 인자들의 가중은 선호도 정보(512)로서 기록되고, HTTP 헤더내의 콘텐트 매니저(312)에 메타-데이터로서 전달된다.
다른 실시예들은 HTTP 헤더를 통해서만이 아니라 임의의 종류의 데이터 채널로 메타-데이터를 전할 수 있다. 예로서, 메타-데이터는 전용 포트, IP 어드레스, URL, 헤더, 또는 다른 논리적 채널을 통해 운반될 수 있다.
선호도 정보(512)는 클라이언트 컴퓨터 견지(112)로부터 수행된 네트워크 분석의 결과이다. 콘텐트 오브젝트가 요청될 때, 선호도 정보(512)는 콘텐트 오브젝트 매니저(312)에 통신되고, 이는 다음에 클라이언트 컴퓨터(112)를 위한 적절한 콘텐트 교환기(116)를 선택한다. 매 시간 마다 같은 주기적으로, 선호도 정보(512)가 자동화된 테스트를 사용하여 갱신되거나, 사용자에 의해 수동으로 갱신된다. 후속 테스트들은 양호나 콘텐트 교환기들을 효과적으로 고려하기 위해 이전 결과들을 고려한다. 예로서, 제 1 분석은 100 콘텐트 교환기들일 수 있지만, 후속 분석은 열 악한 성능의 콘텐트 교환기들을 빼고, 단지 50개가 분석될 수 있다.
선호도 정보(512)는 콘텐트 교환기들(116)과 클라이언트측 네트워크 분석으로부터 초래한 그 연관된 QOS값들이 포함된다. 일부 실시예들에서, 외부 원 서버(118)까지 다수의 경로들이 존재하며, 이 다수의 경로들은 포트, IP 어드레스, 서버 신분확인(ID), 및/또는 다른 메커니즘들에 의해 분리된다. 클라이언트측 네트워크 분석이 사용되어, 외부 원 서버(118) 또는 다수의 경로들을 가지는 소정의 콘텐트 오브젝트 소스에 대한 각 경로와 연관된 QOS 값을 결정한다.
클라이언트 컴퓨터(112)의 사용자가 콘텐트 오브젝트를 선택한 이후에, 원 서버명이 뷰어 오브젝트 프록시(504)에 제공된다. 원 서버명은 뷰어 오브젝트 프록시(504)가 원 서버(108)의 IP 어드레스에 대하여 동적 DNS(204)에 질의하기 위해 사용된다. IP 어드레스가 알려지고 나면, 콘텐트 처리 프로그램(508)은 원하는 콘텐트 오브젝트를 위해 콘텐트 매니저(312)에게 재안내된다. 콘텐트 매니저(312)는 선호도 정보(512)를 전달하여 적절한 콘텐트 교환기(116)에 라우팅할 수 있게 한다. 본 실시예에서, 선호도 정보(512)는 선호되는 10개의 콘텐트 교환기들을 포함하지만, 이는 사용자에 의해 조절될 수 있다.
일부 실시예들에서, 뷰어 오브젝트 프록시(504)는 HTTP-지정될 수 있지만, 라우팅 정보는 프로토콜에 무관하다. 따라서, 라우팅 정보는 HTTP에 따라서 전달되지만, 실제 라우팅 정보는 프로토콜 독립적이다. 그러나, 본 기술 분야의 숙련자들은 뷰어 오브젝트 프록시(504)가 필요에 따라 다른 네트워크 프로토콜들과 함께 동작하도록 구성될 수도 있다는 것을 알 수 있을 것이다. 예로서, 뷰어 오브젝트 프록시(504)는 FTP, NNTP, RTP, RTSP, SMTP 또는 SHOUT 등에 따라 동작하도록 구성될 수도 있다.
클라이언트 컴퓨터(112)는 호스트 서버 라우팅(520) 데이터베이스를 포함한다. 이 호스트 서버 라우팅(520)은 클라이언트 컴퓨터(112)에 의해 액세스할 수 있는 외부 원 서버들(118)에 관련된 정보를 포함할 수 있다. 일 실시예에서, 호스트 서버 라우팅(520)은 액티브 디렉토리(104)내에 포함된 라우팅 데이터베이스(234)의 일부이다.
클라이언트 컴퓨터(112)는 뷰어 오브젝트 프록시(504)를 인터넷(120)에 접속시키는 네트워크 인터페이스(516)를 포함한다. 네트워크 인터페이스들(516)의 통상적인 예들은 아날로그 모뎀들, DSL 모뎀들, ISDN, 케이블 모뎀들, 위성 모뎀들, 셀룰러 모뎀들 등을 포함한다.
본 실시예에서, 클라이언트 컴퓨터는 가정 사용자와 연관되어 있다. 다른 실시예들에서, 클라이언트 컴퓨터는 극장에 디지털 영화들을 위한 기능을 하거나, 협동 네트워크 사용자, 호텔 패트런(patron) 또는 아파트 단지에 콘텐트 오브젝트들을 제공할 수 있다.
도 6을 참조하면, 콘텐트 배포 시스템(600)의 실시예의 블록도가 도시되어 있다. 이 도면은 인터넷(120)을 통한 전달은 나타내지 않고 데이터 블록들 사이의 데이터 흐름을 도시한다. 그러나, 인터넷(120)은 일부 실시예들에 사용될 수 있다는 것을 이해하여야 한다. 또한, 이 도면은 도 2 내지 도 5로부터 일부 블록들과 외부 원 서버(들)(118) 및 크롤링 디렉토리(124)가 도 6을 단순화시키기 위해 포함되지 않았다는 점에서, 다소 단순화된 것이다.
네트워크 인터페이스(516)는 클라이언트 컴퓨터(112)를 위한 인터넷(120)에 대한 접속이다. 클라이언트 컴퓨터(112)는 디렉토리 및 검색 페이지들(212, 216)에 접속하여 사용자가 다운로드를 위해 콘텐트 오브젝트들을 선택할 수 있게 한다. 콘텐트 오브젝트가 선택될 때, 액티브 디렉토리(104)로부터 적절한 원 서버(108)에게로의 클라이언트 컴퓨터(112)의 재안내는 동적 DNS(204)를 사용한다. 선호도 정보(512)가 콘텐트 매니저(312)에 전달되어 콘텐트 오브젝트를 위한 소스의 선택을 돕는다. 콘텐트 매니저(312)에 의해 이루어지는 선택에 따라서, 콘텐트 오브젝트는 콘텐트 교환기들(116) 중 하나 또는 콘텐트 서버(308)로부터 다운로드된다.
액티브 디렉토리(104)는 시스템(600)내의 다른 모듈들과 상호 작용한다. 클라이언트 컴퓨터(112)는 디렉토리 및 검색 페이지들(212, 216)을 액세스하여 콘텐트 오브젝트를 선택한다. 콘텐트 추적기(404) 및 콘텐트 매니저(312) 각각은 서버 매니저(208)에 상태 및 목록 정보를 제공한다. 가입자 데이터베이스(224)를 관리하기 위해, 계좌 정보가 원 서버(108)의 관리자에 의해, 그리고, 클라이언트 컴퓨터(112)의 사용자에 의해 서버 관리자(208)에게 제공된다. 원 서버명으로부터 원 서버(108)의 IP 어드레스로의 재안내는 동적 DNS(204)에 의해 뷰어 오브젝트 프록시(504), 콘텐트 추적기(404) 및 콘텐트 제어기(408)에 제공된다.
원 서버(108)는 서버 매니저(208), 클라이언트 컴퓨터(112), 콘텐트 추적기(404), 콘텐트 저장부(412) 및 콘텐트 제어기(408)와 통신한다. 로컬 콘텐트 목록(316)이 현재 상태 콘텐트 정보로 서버 데이터베이스(228)를 관리하기 위해 콘텐트 매니저(312)로부터 서버 매니저(208)에 제공된다. 선호도 정보(512)는 콘텐트 오브젝트의 선택을 용이하게 하기 위해 클라이언트 컴퓨터(112)로부터 콘텐트 매니저(312)에 제공된다. 콘텐트 추적기(404)는 콘텐트 매니저(312)와 상호 작용하여 어떤 콘텐트 오브젝트들이 콘텐트 교환기(116)상에 저장되어 있는지를 알아낸다. 콘텐트 오브젝트들은 콘텐트 저장부(412) 또는 클라이언트 컴퓨터(112) 중 어느 한쪽에 의해 콘텐트 서버(308)로부터 판독된다.
콘텐트 교환기들(116)은 마찬가지로 시스템(600)내의 다른 모듈들과 상호 작용한다. 상태 정보는 액티브 디렉토리(104) 및/또는 콘텐트 매니저(312)에 제공된다. 동적 DNS는 콘텐트 제어기(408)와 콘텐트 추적기(404) 양자 모두에 의해 사용되어 콘텐트 오브젝트를 포함하는 원 서버(108)의 IP 어드레스를 발견한다. 선택된 콘텐트 교환기는 오브젝트가 콘텐트 저장부를 위해 필요할 때, 다른 콘텐트 교환기들과 접촉할 수 있다. 다른 콘텐트 교환기들이 콘텐트 오브젝트를 갖지 않는 경우에, 콘텐트 제어기(408)는 선택된 콘텐트 저장부(412)로의 전달을 위해 콘텐트 서버(308)로부터 오브젝트를 요청한다.
다음에, 도 7A 및 도 7B를 참조하면, 사용자에게 콘텐트를 배포하기 위한 프로세스의 실시예의 흐름도가 도시되어 있다. 도시된 프로세스 이전에, 사용자 및 관리자 각각은 클라이언트 컴퓨터(112) 및 원 서버(108)를 위한 소프트웨어를 다운로드 및 설치한다. 관리자는 시스템(600)에 공개하기 위해 콘텐트 서버상의 콘텐트를 선택한다. 선호도 정보(512)를 결정하기 위해, 뷰어 오브젝트 프록시(504)는 자동으로 적절한 QOS에 대하여 주변 콘텐트 교환기들(116)에 신호를 보낸다.
도시된 프로세스는 사용자가 웹 브라우징 콘텐트 처리 프로그램(508)을 액티브 디렉토리(104)의 디렉토리 또는 검색 페이지(212, 216)에 안내하는 스텝 704에서 시작한다. 본 실시예에서, 사용자는 스텝 708에서 부울 질의를 사용하여 검색 페이지(216)상의 검색 엔진에 콘텐트 오브젝트를 찾을 것을 질의한다. 검색 엔진은 스텝 712에서 조회를 위해 서버 데이터베이스(228)를 검색하고, 또한, 크롤링 디렉토리(124)를 검색할 수 있다. 대안적으로, 사용자는 디렉토리 페이지(212)를 원하는 콘텐트 오브젝트를 찾도록 항해할 수 있다.
검색 또는 디렉토리 페이지(212, 216)는 스텝 716에서 사용자가 선택할 수 있는 콘텐트 오브젝트들 각각에 대한 링크를 제시한다. 각 링크는 원 서버명(108), 포트, 경로 및 콘텐트 오브젝트명을 포함한다. 가용한 선택들이 주어지면, 사용자는 스텝 720에서 원하는 콘텐트 오브젝트에 대응하는 링크들 중 하나를 선택할 수 있다. 동적 DNS(204)는 뷰어 오브젝트 프록시(504)에 의해 링크로부터 원 서버명의 IP 어드레스를 결정해줄 것을 질의받는다. IP 어드레스가 알려지고 나면, 콘텐트 처리 프로그램은 동적 DNS(204)로부터 구해진 IP 어드레스와 링크로부터의 경로 및 파일명에 재안내된다.
클라이언트 컴퓨터(112)가 콘텐트 매니저(312)에 접속되고 나면, 선호도 정보(512)가 스텝 724에서 콘텐트 매니저(312)에게 포워딩된다. 콘텐트 매니저(312)는 스텝 728 및 732에서 콘텐트 위치 데이터베이스(320), 선호도 정보(512) 및 상태 정보를 분석하여 클라이언트 컴퓨터(112)를 재안내하기 위한 콘텐트 오브젝트의 소스를 결정한다.
소스가 콘텐트 교환기(116)인지 콘텐트 서버(308)인지에 대하여 스텝 736에서 결정이 이루어진다. 콘텐트 서버(308)는 콘텐트 매니저(312)가 그것이 적절한 QOS 또는 우월한 QOS를 제공할 수 있다고 결정한 경우에 선택될 수 있다. 일부 실시예들에서, 콘텐트 서버(308)는 적절한 QOS를 제공할 수 있은 어떠한 콘텐트 교환기들(116)도 갖지 않은 경우의 소스로서 간주된다. 콘텐트 서버(308)가 선택되는 경우에, 원 서버(108)는 콘텐트 오브젝트를 스텝 740에서 클라이언트 컴퓨터(112)에게 제공한다.
콘텐트 오브젝트 요청을 호스트하기 위해 콘텐트 매니저(312)가 콘텐트 교환기(116)를 선택하는 경우에, 콘텐트 처리 프로그램(508)은 선택된 콘텐트 저장부(412)로 재안내되고, 도 7B의 스텝 744에서 처리가 지속된다. 콘텐트 처리 프로그램(508)은 스텝 744에서 콘텐트 저장부(412)로부터 링크내의 콘텐트 오브젝트를 요청한다. 전체 콘텐트 오브젝트가 콘텐트 저장부(412)에 존재하는 경우에, 스텝 748 및 752에서 오브젝트는 그 콘텐트 저장부(412)로부터 클라이언트 컴퓨터에 다운로드된다.
대안적으로, 콘텐트 오브젝트의 임의의 부분이 손실된 경우에, 콘텐트 오브젝트의 전체 사본이 콘텐트 저장부(412)내에서 조합된다. 전체 콘텐트 오브젝트의 축조는 사용자에 대해 투명하게 이루어진다. 스텝 756 및 760에서, 콘텐트 제어기(408)는 다른 콘텐트 교환기들(116)에게 어느 것이 콘텐트 오브젝트의 손실 부분을 갖는지를 결정하기 위해 질의한다. 콘텐트 오브젝트는 클라이언트 컴퓨터(112)에 의한 다운로드를 위해 가능한 빨리 시작이 가능하도록 처음부터 끝까지 콘텐트 저장부(412)내에서 재조합된다.
반복적으로, 스텝 764에서, 전체 콘텐트 오브젝트가 콘텐트 저장부(412)내에 존재할 때까지, 손실된 부분들이 각 콘텐트 교환기(116)로부터 구해진다. 어떠한 다른 콘텐트 교환기(116)도 콘텐트 오브젝트의 손실부를 가지지 않는 경우에, 스텝 768에서 원 서버(108)에 대하여 손실부에 대한 질의가 이루어진다. 동적 DNS(204)는 콘텐트 오브젝트를 위한 원 서버명의 IP 어드레스를 결정하기 위해 질의를 받는다. 콘텐트 제어기(408)는 동적 DNS(204)에 의해 스텝 772에서 콘텐트 오브젝트와 함께 원 서버(108)에 안내된다. 손실부는 스텝 776에서 그 원 서버(108)의 콘텐트 서버(308)로부터 다운로드된다. 처리 루프들은 스텝 748로 복귀하여 임의의 다른 손실부들을 회수한다.
부분들을 위한 이러한 검색 프로세스는 반복적으로 모든 손실부들이 콘텐트 저장부(412)내에 복사될 때까지 계속된다. 비록 본 실시예가 손실부들을 순차적으로 회수하지만, 다른 실시예들은 병렬적으로 임의의 순서로 또는 발견된 순서로 손실부들의 위치를 결정하고, 그것들을 회수할 수 있다.
이제, 도 8을 참조하면, 뷰어 오브젝트 프록시(504)의 실시예의 블록도가 도시되어 있다. 뷰어 오브젝트 프록시(504)는 하기의 함수들을 포함한다 : 경로 평가기(850), 가중 함수(852), 디스플레이 함수 또는 루틴(854), 예측 논리 함수(856), 표준 웹 액세스 함수(858), 압축해제 함수(860), 복호화 함수(862), 전자 상거래 함수(866), 보안 함수(864) 및 뷰어 오브젝트 프록시(504)내의 다양한 다른 함수들과 인터페이스 연결하는 주 함수(868)를 포함한다. 상술한 뷰어 오브젝트 프록시(504)내에 포함되는 가능한 함수들의 리스트는 단지 예시일 뿐이며, 본 기술분야의 숙련자들은 뷰어 오브젝트 프록시(504)에 관련한 다른 함수들을 인지할 수 있을 것이다.
뷰어 오브젝트 프록시(504)가 그를 통해 흐르는 모든 뷰어 요청 콘텐트 오브젝트들을 가진 프록시이기 때문에, 예측 논리 함수(856)가 구현될 수 있다. 일 실시예에서, 예측 논리 함수(856)는 사용자의 다음 브라우즈 또는 이동을 예상하고, 실제 사용자의 요청 이전에 클라이언트 컴퓨터(112)상의 저장부를 위해 관련 브라우즈 정보를 패치한다. 이 프리패치 정보는 이 정보가 사용자에 의해 실제 요청될 때까지 보유된다. 예측 논리 함수(856)가 사용자의 다음 브라우즈를 부정확하게 예측한 경우에, 이 프리패치 데이터는 버려진다. 예로서, 예측 논리 함수(856)는 디렉토리 페이지(212)의 계층 조직내의 보다 하부의 공통적으로 액세스된 페이지의 프리패치를 수행한다(도 2를 참조로 설명된 바와 같이). 정보를 프리패치함으로써, 예측 논리 함수(856)는 액세스 지연을 감소시킬 수 있다.
일부 실시예들에서, 압축해제 함수(860)와 복호화 함수(862)가 제공된다. 이들 함수들(860, 862)은 원 서버(108), 콘텐트 교환기(116), 외부 원 서버(118) 또는 인터넷(120)상의 임의의 다른 서버로부터 수신된 압축해제 및 복호화하는 기능을 제공한다.
임의의 사용자 요청에 대해서, 압축 해제(860) 및 복호화(862) 함수들의 가용성에 기초한 소정의 사용자 요청에 대하여, 뷰어 오브젝트 프록시(504)는 인터넷(120)상의 서버와의 콘텐트 오브젝트 전달 동안 사용되는 압축 및 암호화 형태를 협상할 수 있다. 따라서, 사용자가 인터넷(120)을 서핑하는 어떤 시기에라도, 뷰어 오브젝트 프록시(504)는 압축 및 암호화가 지원되는 임의의 접촉된 서버와 대화할 수 있다. 이는 접촉된 서버가 특수한 소프트웨어를 가질 필요가 없으며, 접촉된 서버가 동일 압축, 암호화 및 보안 함수를 뷰어 오브젝트 프록시(504)에 의해 지원하는 경우에, QOS를 향상시킬 수 있다. 다수의 통신 메커니즘들이 압축해제 및 복호화을 위해 사용될 수 있다는 것을 인지하여야만 한다. 예로서, FTP, NNTP, RTP, RTSP 또는 SMTP가 사용될 수 있다.
일 실시예에서, 복호화 및 압축해제 협상은 HTTP에 의해 달성된다. 보다 명확하게, 협상은 확장된 HTTP 헤더를 경유하여 달성된다.
또한, 일부 실시예들에서, 사용자가 압축해제 함수(860) 및 복호화 함수(862) 중 어느 한쪽 또는 양자 모두를 불능화시키는 것이 가능하다. 각 함수들(860, 862)이 사용자에 의해 불능화되면, 뷰어 오브젝트 프록시(504)는 이 불능화된 함수를 사용하여 협상하지 않는다.
일부 실시예들에서, 뷰어 오브젝트 프록시(504)는 보안 함수(864)를 포함한다. 보안 함수(864)는 필요시 액세스를 허용 또는 불허하도록 동작한다. 보다 명확하게, 보안 함수(864)는 콘텐트 오브젝트들이 신뢰 시스템에 의해 허가가 주어지는 경우에만 복호화되도록 제어를 제공한다. 예로서, 신뢰 시스템은 특정 동글형(dongle type) 하드웨어 장치가 클라이언트 컴퓨터(112)에 부착되고 부착 조건이 뷰어 오브젝트 프록시(504)를 경유하여 보안 함수(864)에 의해 보고되는 경우에만 데이터를 수용 및/또는 복호화하기 위한 허가를 제공할 수 있다.
일부 실시예들에서, 뷰어 오브젝트 프록시(504)는 전자 상거래 함수(866)를 포함한다. 전자 상거래 함수(866)는 인터넷(120)상에 거주하는 전자 상거래 엔진과 긴밀하게 통합될 수 있다. 전자 상거래 함수(866)에 의해, 사용자들은 콘텐트 오브젝트들을 구매하기 위한 메커니즘을 제공받을 수 있다. 예로서, 가입자 데이터베이스(224)에 저장된 토큰 크레디트들이 콘텐트 오브젝트들을 다운로드하기 위해 원 서버들(108)에게 신용 지불될 수 있다.
게다가, 뷰어 오브젝트 프록시(504)는 콘텐트 배포 시스템(100)의 외부에 거주하는 인터넷 도메인들로의 액세스를 제공하는 표준 웹 액세스 함수(858)를 포함할 수 있다. 일 실시예에서, 뷰어 오브젝트 프록시(504)가 콘텐트 배포 시스템(100)의 외부의 도메인에 의해 소싱된 콘텐트 오브젝트를 위한 콘텐트 프로세싱 프로그램(508)으로부터 사용자 요청을 수신할 때, 표준 웹 액세스 함수(858)는 콘텐트 오브젝트가 클라이언트 컴퓨터(112) 상에 미리 세이브되었는지를 결정한다. 요청된 콘텐트 오브젝트가 미리 세이브되어 있으면, 세이브된 콘텐트 오브젝트는 사용자 요청을 만족시키기 위해 표준 웹 액세스 함수(858)에 의해 복귀된다. 요청된 콘텐트 오브젝트가 미리 세이브되어 있지 않으면, 사용자 요청은 표준 웹 액세스 함수(858)에 의해 전달되며 콘텐트 오브젝트는 콘텐트 프로세싱 프로그램(508)이 인터넷(120)에 직접 액세스되어 있는 것처럼 검색된다.
경로 평가기(850), 가중 함수(852) 및 디스플레이 함수 또는 루틴(854)을 도 9에 도시한 바와 같은 뷰어 오브젝트 프록시 백그라운드 애플리케이션(900)의 흐름도와 관련하여 설명한다. 백그라운드 애플리케이션(900)은 클라이언트 컴퓨터(112)로 충분한 QOS를 제공할 수 있는 바람직한 콘텐트 교환기(116)를 결정하도록 다양한 뷰어 오브젝트 프록시(504) 함수들을 사용한다. 바람직한 콘텐트 교환들(116)은 선호도 정보(512)로서 메모리에 저장되며 그 후 콘텐트 오브젝트 매니저(312)와 통신한다.
도 9를 참조하면, 셋업(982)은 개시(980)시에 수행되며, 디스플레이 루틴(854)이 론칭된다. 셋업(982)은 클라이언트 컴퓨터(112) 내의 그래픽들 메모리를 요청 및 초기화하고, 프록시를 초기화하고, 디스플레이 루틴(854)을 론칭하는 것을 포함할 수 있다. 또한, 셋업(982)은 그래픽들 디스플레이 또는 프록시를 초기화하기 위한 임의의 프로세스들을 포함할 수 있다.
셋업(982) 후에, 정보 요청 및 수신(984)이 수행된다. 정보 요청 및 수신(984) 동안에, 액티브 디렉토리(104)로부터의 콘텐트 교환기 데이터베이스(232)가 클라이언트 컴퓨터(112)에 다운로드된다. 상술한 바와 같이, 콘텐트 교환기 데이터베이스들(232)은 개선된 QOS 기준들 또는 가입자 서비스 기준들을 포함하지만, 이에 한정되는 것은 아닌 다양한 방법들에 의해 지역화되거나 구획화될 수 있다. 따라서, 몇몇 실시예들에서, 정보 요청 및 수신(984)은 클라이언트 컴퓨터(112)에 지리학적으로 근접한 콘텐트 교환기들(116)만을 포함하는 콘텐트 교환기 데이터베이스(232)의 검색을 야기한다. 예로서, 검색된 콘텐트 교환기 데이터베이스(232)는 북미에 위치하는 콘텐트 교환기들(116)만을 포함할 수 있다. 다른 실시예들에서, 정보 요청 및 수신(984)은, 특정 가입자 서비스를 지원하거나 특정 공급자에 부속되어 있는 콘텐트 교환기들(116)만을 포함하는 콘텐트 교환기 데이터베이스(232)의 검색을 야기한다. 대안적으로, 콘텐트 교환기 데이터베이스(232)는, 특정 인터넷 서비스 공급자에 부속되어 있거나, 특정 프로토콜을 지원하거나, 또는 특정 언어의 콘텐트 오브젝트들을 제공하는 콘텐트 교환기들에 한정될 수 있다. 또 다른 실시예들에서, 정보 요청 및 수신(984)은 모든 가능한 콘텐트 교환기들(116)을 포함하는 콘텐트 교환 데이터베이스(232)의 검색을 야기한다.
일부 실시예들에서, 정보 요청 및 수신(984)은 외부 원 서버들(118)에 대한 정보를 라우팅하는 것을 포함하는 라우팅 데이터베이스(234)의 소정 부분의 요청 및 수신을 또한 포함한다. 라우팅 데이터베이스(234)의 수신부는 호스트 서버 라우팅(520)으로서 클라이언트 컴퓨터(112)의 메모리에 저장된다.
다른 용도들 중에서, 정보 요청 및 수신(984)을 통해 제공된 정보는 사용자를 위한 디스플레이를 생성하는데 사용될 수 있다. 예컨대, 몇몇 실시예들에서, 콘텐트 교환 데이터베이스(232)의 부분으로서 제공된 위치 좌표들 및 아이콘 정보는 디스플레이 함수 또는 루틴(854)을 통해 사용자에게 제공된 그래프적 표현의 부분으로서 사용될 수 있다. 그래프적 표현은 콘텐트 배포 시스템(100) 또는 인터넷(120) 상의 다른 위치에서 무엇이 가용한지를 사용자에게 제공할 수 있다. 또한, 그래프적 표현은 클라이언트 컴퓨터(112)로부터 다수의 콘텐트 교환기들(116)로의 다양한 경로들을 제시할 수 있다. 특정 실시예에서, 콘텐트 교환기들(116) 및 원 서버들(108)의 물리적인 위치들은 사용자에게 디스플레이되는 월드 맵 상에 중첩된다.
디스플레이 함수(854)에 의한 콘텐트 교환기 데이터베이스(232)의 사용 이외에, 콘텐트 교환기 데이터베이스(232)로부터의 정보는 경로 QOS 평가(986)를 수행하는데 사용될 수 있다. 보다 구체적으로는, 클라이언트 컴퓨터(112)와 각각의 콘텐트 교환기(116) 또는 콘텐트 교환기 데이터베이스(232)에 특정화된 노드 사이의 경로들을 위한 QOS가 결정되어 클라이언트 컴퓨터(112)의 메모리에 저장될 수 있다.
정보 요청 및 수신(984)을 통한 콘텐트 교환기들(116)의 리스트를 수신하는 것은 잠재적인 콘텐트 교환기들(116)을 결정하기 위한 방법의 예시라는 것을 인식해야 한다. 대안적인 실시예들에서, 콘텐트 교환기들(116), 외부 원 서버들(118) 및 원 서버들(108)과 같은 가능한 콘텐트 오브젝트 소스들의 리스트, 또는 뷰어 오브젝트 프록시(504)에 따르는 리스트를 사용함으로써 리스트를 얻을 수 있다. 리스트는 콘텐트 배포 시스템(100)의 내부 또는 외부로의 초기 콘텐트 오브젝트 전송들 중에 얻어진 뷰어 오브젝트 프록시(504)의 인지에 기초할 수 있다.
일 실시예에서, 경로 QOS 평가(986)는 콘텐트 교환기 데이터베이스(232)에 리스트된 모든 콘텐트 교환기들(116)과 관련된 경로들에 대해서 수행된다. 개시를 위해, 콘텐트 교환 데이터베이스(232) 내에 리스트된 제 1 콘텐트 교환기(116)와 관련된 경로가 분석된다. 다음으로, 스텝 988에서, 다른 콘텐트 교환기(116)가 콘텐트 교환기 데이터베이스(232)에 제공되어 있는지에 대한 결정이 이루어진다. 또 다른 콘텐트 교환기(116)가 제공되어 있으면, 콘텐트 교환기(116)로의 경로가 평가된다. 이 프로세스는 경로 QOS 평가(986)가 콘텐트 교환기 데이터베이스(232)에 리스트된 모든 콘텐트 교환기들(116)에 대해 수행될 때까지 계속된다. 경로 QOS 평가는 임의의 콘텐트 오브젝트 소스 또는 전송 노드 상에서 수행될 수 있으며 콘텐트 교환기들(116) 및 원 서버들(108)을 평가하는 것에만 반드시 한정되는 것은 아니라는 것을 인식해야 한다. 전송 노드는 콘텐트 교환기(116) 또는 콘텐트 오브젝트들을 저장 및 전송할 수 있는 다른 서버일 수 있다는 것을 이해해야 한다. 경로 QOS 평가와 관련하여 사용될 때 용어 경로는 라우팅을 통합한다는 것을 인식해야 한다.
다른 실시예들에서, 콘텐트 교환기 데이터베이스(232)에 리스트된 콘텐트 교환기들(116)의 서브세트만이 평가된다. 콘텐트 교환기 데이터베이스(232)로부터의 콘텐트 교환기들(116)의 서브세트만을 평가하는 것은 보다 효율적인 경로 QOS 평가(986)를 제공한다. 이러한 증가된 효율은 특정 콘텐트 교환기들(116)이 충분한 QOS를 제공할 가능성이 없으며 따라서 평가할 가치가 없다는 것을 인지하는 경우에 성취될 수 있다. 따라서, 예컨대, 클라이언트 컴퓨터(112)가 북미이고 북미 외부의 콘텐트 교환기들은 충분한 QOS를 제공할 가능성이 없다는 것을 파악하는 경우, 경로 QOS 평가(986)는 북미에 위치된 콘텐트 교환기들(116)에 대해서만 수행된다.
대안적으로, 상이한 유형들의 콘텐트 교환기들(116)이 유사한 서비스를 제공할 가능성이 있다고 파악되는 경우에는 사이트 기반 경로 QOS 평가(986)가 수행될 수 있다. 보다 구체적으로는, 콘텐트 교환기 데이터베이스(232)에 표시된 각각의 콘텐트 교환 사이트(432)와 관련된 한 콘텐트 교환기(116)가 평가된다. 이로부터, 콘텐트 교환 사이트들(432)이 충분한 QOS를 제공할 가능성이 있는지를 결정할 수 있다. 그 후, 충분한 QOS를 제공할 가능성이 있다고 결정된 콘텐트 교환 사이트들(432)과 관련된 콘텐트 교환기(116)가 개별적으로 분석된다. 이러한 방식으로, QOS를 제공할 가능성이 없는 콘텐트 교환 사이트들(432)과 관련된 콘텐트 교환기들(116)은 평가되지 않는다.
또 다른 실시예에서, 특정 프로토콜들을 지지하는 콘텐트 교환기들(116)에 대한 경로 QOS 평가(986)만이 수행된다. 또는, 대안적으로, 경로 QOS 평가(986)는 특정 프로토콜이 사이트(432)에서 적어도 하나의 콘텐트 교환기(116)에 의해 지지되는 콘텐트 교환 사이트(432)에서의 콘텐트 교환기들(116)에 대해서만 수행될 수 있다.
또한, 일부 실시예들에서, 경로 QOS 평가(986)는 특정 콘텐트 교환기(116)에 대해서 1회만 수행된다. 따라서, 특정 콘텐트 교환기(116)가 다수의 IP 어드레스들, 포트들 또는 명칭들을 갖는 경우, 경로 QOS 평가(986)는 하나의 IP 어드레스, 포트 또는 명칭에 대해서만 수행된다. 이는 QOS 평가(986) 동안 중복되는 평가(redundant evaluation)를 제거한다. 그러나, 경로 QOS 평가(986)는, 상이한 QOS가 가능하다고 파악되는 경우에는 동일한 콘텐트 교환기(116)에 대해 다수의 IP 어드레스들, 포트들 또는 명칭들에 대해 수행될 수 있다는 것을 인식해야 한다.
평가될 콘텐트 교환기 데이터베이스(232)의 콘텐트 교환기들(116)의 서브세트의 선택은, 클라이언트 컴퓨터(112)에 의해 공급되는 기준들 및 클라이언트 컴퓨터 경험에 기초하여, 액티브 디렉토리(104)에 의해, 콘텐트 교환기(116), 원 서버(108) 및/또는 사용자에 의해 이루어질 수 있다.
일 실시예에서, 경로 QOS 평가(986)는, 트레이스라우트(traceroute), 파일 전송을 통한 대역폭 테스트, 서버 성능 체크, 서버 로드/리소스 체크, 핑, 경로차, 보더 게이트 프로토콜(BGP) 라우팅 정보, 및 포트 응답 시간을 포함하지만, 이에 한정되는 것은 아닌 네트워크 분석 방법론들의 조합을 사용하여 성취된다.
트레이스라우트는 특정 콘텐트 교환기(116)와 클라이언트 컴퓨터(112) 사이에서 패킷들이 취하는 라우트를 복귀시키는 임의의 분석을 포함한다. 통상적으로, 트레이스라우트는, 횡단된 홉들의 수, 횡단된 홉들의 IP 어드레스들, 및 클라이언트 컴퓨터(112)와 콘텐트 교환기(116) 사이의 횡단에 의해 요구되는 시간을 복귀시킨다.
파일 전송을 통한 밴드폭 테스트는 벌크 정보 전송이 콘텐트 교환기(116)와 클라이언트 컴퓨터(112) 사이에 수행되는 경우의 임의의 분석을 포함한다. 벌크 전송 중에, 벌크 전송을 수행하는데 필요한 시간을 포함하지만 이에 한정되는 것은 아닌 다양한 성능 지표들이 유도된다. 통상적으로, 콘텐트 교환기(116)와 클라이언트 컴퓨터(112) 사이에 전송된 데이터는 매우 랜덤하다. 데이터의 랜덤 특징은 클라이언트 컴퓨터(112)와 콘텐트 교환기(116) 사이에 발생하는 임의의 압축의 영향을 감소시킨다.
핑은 클라이언트 컴퓨터(112)에 의해 특정 콘텐트 교환기(116)로 정보가 전송되고 클라이언트 컴퓨터(112)가 콘텐트 교환기(116)로부터 응답을 대기하는 임의의 분석을 포함한다. 통상적으로, 핑은 UDP 또는 임의의 다른 손실 프로토콜(즉, 응답을 보장하지 않는 프로토콜)을 통해 수행된다. 핑은 콘텐트 교환기가 동작 가능한지의 여부를 확인하는데 유용하다. 대안적으로, 응답을 수신하는데 필요한 시간이 QOS의 지시로서 사용될 수 있다.
서버 자체 검사 및 서버 로드/리소스 검사는 콘텐트 교환기(116), 원 서버, 또는 다른 전송 노드의 성능, 부하 및 가용 리소스들에 관한 다양한 경험적 정보(heuristics)를 결정하는 임의의 분석을 포함할 수 있다. 일반적으로, 콘텐트 교환기(116)는, 평균 및 최대 CPU 로드, CPU 온도, 캐시 소실들을 해결하기 위해 하드 드라이브와 RAM 사이에 전송된 페이지들의 수, 콘텐트 교환기(116)가 하드 드라이브에 판독 및 기록 동작들을 발령하는 전송율, 콘텐트 교환기(116)가 서비스하고 있는 요청들의 수, 콘텐트 교환기에 액세스하는 사용자들의 평균 수, 동시 접속들의 수, 콘텐트 교환기(116)로의 입력들 및 출력들의 전송율, 콘텐트 교환기(116)로부터 요청된 콘텐트 오브젝트의 평균 크기, 콘텐트 교환기(116)와 관련된 RAM 및 하드 드라이브 메모리를 포함하는 로컬 메모리의 크기, 로컬 메모리에 포함되는 평균 콘텐트 오브젝트 크기, 로컬 메모리에 포함되는 콘텐트 오브젝트들의 수, 로컬 메모리 내의 평균 콘텐트 오브젝트 잔류 시간, 콘텐트 오브젝트가 로컬 메모리 내에서 발견되지 않는 경우들의 전송율, 및 임의의 다른 에러 지시들 및/또는 상태 정보를 포함하지만, 이에 한정되는 것은 아닌 다양한 동작 특성들을 결정하도록 질의된다.
상술한 경험적 정보는 특정 콘텐트 교환기(116) 또는 원 서버(108)와 관련된 자체 검사(330, 426)를 사용하여 결정될 수 있다. 일 실시예에서, 자체 검사(330, 426)는 콘텐트 교환기(116) 및 원 서버(108) 상에서 각각 서비스되는 소프트웨어 응용들이다. 뷰어 오브젝트 프록시(504)에 의해 질의될 때, 자체 검사(330, 426)는 CPU 로드, CPU 온도, 동시 접속들의 수, 및 콘텐트 교환기(116) 또는 원 서버(108)가 현재 서비스하고 있는 요청들의 수를 제공할 수 있다. 몇몇 실시예들에서, 뷰어 오브젝트 프록시(504)는 서버 자체 검사 경험적 정보를 검색하기 위해 HTTP를 통해 콘텐트 오브젝트 교환기(116)를 질의한다. 그러나, 당업자는 FTP, NNTP, RTP, RTSP, SHOUT, SMTP, 또는 지정 포트를 통한 노드로의 접속을 포함하지만, 이에 한정되는 것은 아닌, 서버 성능 경험적 정보를 액세스하기 위한 다수의 메커니즘들을 인식할 수 있다는 것을 주목해야 한다.
다른 실시예들에서, 자체 검사(330, 426)에 대한 뷰어 오브젝트 프록시(504)에 의한 상태 요청은 복귀되는 단일 상태 지표들을 발생시킨다. 단일 상태 지표는, 1은 열악 특성들을 지시하고 0은 양호 특성들을 지시하는 1과 0 사이에 있다. 양호 및 열악 특성들은 콘텐트 교환기(116) 또는 콘텐트 오브젝트 캐시로서 작용하는 다른 전송 노드를 위한 능력 또는 성능에 기초하여 결정된다. 따라서, 일 실시예에서, 0.9의 지표는 연장 시간 동안 콘텐트 교환기(116)에 대한 콘텐트 오브젝트의 접속 상태를 유지시키는데 대한 무능력을 나타낸다. 대안적으로, 0.2의 지표는 연장 시간 동안 콘텐트 오브젝트를 유지하는 능력을 나타낸다.
단일 상태 지표를 결정하기 위해, 다수의 기계 특성들이 모니터링되고 조합될 수 있다. 일 실시예에서, 단일 상태 지표는 하기의 특성들: 평균 CPU 로드, 콘텐트 교환기(116)와 관련된 로컬 메모리의 크기, 로컬 메모리에 포함된 평균 콘텐트 오브젝트 크기 및 로컬 메모리에서의 평균 콘텐트 오브젝트 잔류 시간의 조합을 포함한다. 상기 개별 특성들의 조합은 콘텐트 오브젝트 캐시로서 작용하도록 콘텐트 교환기의 능력을 평가하는 기능을 한다. 상기 특성들을 단일 지표로 조합하기 위해, 각각의 특성들은 미리 결정된 사용 레벨의 비율로 먼저 표준화된다. 표준화는 100%가 가장 양호한 가능 특성 값을 지시하고, 0이 가장 열악한 특성 값을 지시하도록 수행된다. 다음, 표준화 값들은 전체 상태 지표의 미리 결정된 비율로 승산되고, 승산 값들은 1과 0 사이의 단일 표준을 생성하도록 합산된다. 특성들의 대안적인 집합들의 수가 단일 지표를 형성하는데 사용될 수 있다는 것을 인식해야 한다. 예컨대, 실시예는 평균 CPU 로드, CPU 온도, 소스에 접속된 사용자들의 평균 수, 및 콘텐트 교환기로의 입력들 및 출력들의 전송율을 조합하여 단일 지표를 형성할 수 있다.
하기에는, 최대 90%의 CPU 로드, 20%로 표준화된 콘텐트 오브젝트의 평균 크기, 로컬 메모리에 포함된, 30%로 표준화된 로컬 메모리의 크기, 80%로 표준화된 로컬 메모리에 포함된 평균 콘텐트 오브젝트 크기, 및 50%로 표준화된 로컬 메모리에서의 평균 콘텐트 오브젝트 잔류 시간이 발견되는 단일 지표를 형성하는 예를 제공한다. 이들 표준화된 값들은 특성들 각각이 단일 표준에서 동등한 역할을 수행하도록 합산된다. 따라서, 표준화 값들 각각은 20%만큼 승산되고, 그 후 단일 지표를 생성하도록 합산된다. 따라서, 본 예에서의 단일 지표는 54% 또는 0.54이다. 본 예 및 실시예는 단지 예시적인 것이며 다수의 특성들을 단일 지표로서 조합하는 다수의 대안적인 방법들이 가능하다는 것을 인식해야 한다.
BGP 라우팅 정보는 보더 그룹 프로토콜(Border Group Protocol) 분석의 결과로서 복귀된 임의의 정보를 포함한다. 일반적으로, 상기 정보는 경로 토폴로지(path topology)에 관한 것이며 자율 시스템(AS) 경로 속성(Autonomous System Path Attribute), 및 AS 넥스트 홉(Next Hop)를 포함하지만, 이에 한정되는 것은 아니다.
경로차는 콘텐트 교환기(116)와 클라이언트 컴퓨터(112)를 접속하는 대안적인 경로들 사이의 대역폭 또는 지연을 결정하는 임의의 분석을 포함한다.
포트 응답 시간은 포트 응답의 지시를 제공하는 임의의 분석을 포함한다. 일반적으로, 테스트는 콘텐트 교환기(116) 포트의 응답 시간과 관련된 정보를 제공한다. 예컨대, 포트 시간은 제로 길이 메시지를 전송하는데 필요한 시간이 결정되는 경우의 임의의 분석을 포함할 수 있다. 통상적으로, 제로 길이 전송의 결과는 초당 교환 메시지들의 수로서 보고된다. 초당 교환기들의 수는 콘텐트 교환기(116) 지연을 추측하는데 사용될 수 있다.
상술한 방법론들 중 임의의 것은 콘텐트 교환기(116)와 클라이언트 컴퓨터(112)를 접속하는 경로를 위한 QOS의 지시자 또는 전송 품질을 제공하도록 조합될 수 있다는 것을 인식해야 한다. 대안적으로, 상술한 방법론들 중 임의의 것은 QOS 평가(986)를 제공하도록 다른 네트워크 분석 방법론들과 조합될 수 있다. 예컨대, 일 실시예에서, 핑, 트레이스라우트 및 성능 분석이 QOS 평가를 제공하도록 조합되어 사용된다.
또 다른 실시예에서, 상술한 방법론들 모두는 QOS를 결정하도록 조합된다. QOS를 결정하기 위해, 방법론들 각각이 수행되며 각각의 방법론에 대한 QOS 인자가 복귀된다. 다음, 방법론들 각각으로부터의 QOS 인자들은 표준화되며 각각의 분석 경로에 대한 단일 QOS 인자를 형성하도록 합산된다. QOS 인자들의 표준화는 방법론들 각각을 동일하게 가중함으로써 수행될 수 있다.
예컨대, 일 실시예에서, 하기의 표준화 및 합산이 수행된다. (1) 트레이스라우트가 9 홉들을 복귀시킨다. (2) 파일 전송을 통한 대역폭 테스트가 300msec를 복귀시킨다, (3) 서버 자체 검사가 성능 양호에 대해 1을 복귀시킨다. (4) 서버 로드/리소스 체크가 65% 평균 CPU 로드를 복귀시킨다. (5) BGP 라우팅 정보가 4 홉들을 복귀시킨다. (6) 포트 응답 시간이 45msec를 복귀시킨다. 또한, 복귀 값들 각각은, (1) 트레이스라우트에 대한 30 홉들, (2) 파일 전송을 통한 대역폭 테스트에 대한 500msec, (3) 서버 자체 검사에 대한 1, (4) 서버 로드/리소스 검사에 대한 100%, (5) BGP 라우팅 정보에 대한 6 홉들, 및 (6) 포트 응답 시간에 대한 100msec와 같은 각각의 미리 결정된 최대 값에 비교된다.
표준화 및 합산을 위해, 복귀 값들의 각각은 그들의 각각의 미리 결정된 최대 값으로 나누어진다. 따라서, 트레이스라우트는 0.33을 산출(yield)하고, 파일 전송을 통한 대역폭 테스트는 0.6을 산출하고, 서버 자체 검사는 1을 산출하고, 서버 로드/리소스 검사는 0.65를 산출하고, BGP 라우팅 정보는 0.75를 산출하며, 포트 응답 시간은 0.45를 산출한다. 다음, 표준화 값들 모두는 전체 QOS 인자로서 3.78을 제공하도록 합산된다. 그 후, 이 QOS 인자는 다양한 콘텐트 교환기들(116)간을 비교하는데 사용된다.
다른 실시예들에서, 방법론들의 각각으로부터 복귀된 값들은 합산 이전에 상이하게 가중된다. 가중 인자들은 복귀된 QOS 인자에 영향을 주도록 사용자에 의해 제공될 수 있다. 이러한 실시예는 이전의 예로부터 값들을 사용하여 설명되며, 여기서 다양한 방법론들로부터 복귀된 표준화 값들은, (1) 트레이스라우트에 대해 0.33, (2) 파일 전송을 통한 대역폭 테스트에 대해서 0.6, (3) 서버 자체 검사에 대해서 1, (4) 서버 로드/리소스 검사에 대해서 0.65, (5) BGP 라우팅 정보에 대해서 0.75, 및 (6) 포트 응답 시간에 대해서 0.45이다. 예시를 계속하면 하기의 가중 인자들이 사용된다: 트레이스 라우터에 대해 1, 파일 전송을 통한 대역폭에 대해 3, 서버 자체 검사에 대해서 1, 서버 로드/리소스 검사에 대해서 4, BGP 라우팅 정보에 대해서 1, 및 포트 응답 시간에 대해서 3이 사용된다. 표준화 값들의 각각은 그들의 각각의 가중 인자에 의해 나누어져, (1) 트레이스라우트에 대해 0.33, (2) 파일 전송을 통한 대역폭 테스트에 대해서 1.8, (3) 서버 자체 검사에 대해서 1, (4) 서버 로드/리소스 검사에 대해서 2.6, (5) BGP 라우팅 정보에 대해서 0.75, 및 (6) 포트 응답 시간에 대해서 1.35를 산출한다. 다음, 가중된 표준화 값들은 전체 QOS 인자로서 7.83을 제공하도록 합산된다. 또한, 이 QOS 인자는 다양한 콘텐트 교환기들(116)간의 비교에 사용된다.
가중 인자들을 제공하는 것에 부가하여, 사용자는 콘텐트 교환기들(116)의 미리 설정된 순서를 수동적으로 선택할 수 있으며, 또는 단일의 수용 가능한 콘텐트 교환기(116)를 제공하는데, 이들 중 하나는 경로 QOS 평가(986)의 자동 분석을 효과적으로 무효화시킨다. 따라서, 사용자는, 콘텐트 교환기들(116)에 대한 QOS 인자들의 완전 자동 생성함으로써, 콘텐트 교환기들(116)에 대해 복귀된 QOS 인자들을 서비스하도록 경로 QOS 평가(986)를 수동으로 가중함으로써, 또는 자동 분석을 무효화하며 소정의 콘텐트 교환기들(116)의 리스트를 제공함으로써 임의의 소정의 결과를 성취할 수 있다.
일부 실시예들에서, 대략적인 QOS 분석을 수행한 후 제한된 수의 콘텐트 교환기들(116) 상의 세밀 QOS 분석을 수행하도록 상술한 방법론들의 서브세트를 사용함으로써 다단 경로 QOS 평가(986)가 수행될 수 있다. 이 다단 분석은 충분한 QOS를 제공할 수 없는 콘텐트 교환기들의 세밀 QOS 분석을 방지함으로써 경로 QOS 평가(986)의 효율을 증가시킨다. 따라서, 예시적인 실시예에서, 핑 및 트레이스라우트 모두는 콘텐트 교환기 데이터베이스(232)에 포함된 모든 콘텐트 교환기들(116)에 대한 대략적인 QOS 분석을 수행하도록 적용된다. 그 후, 대략적인 QOS에 따라 충분한 QOS를 제공하는, 바람직하게는 25 미만의 미리 결정된 수의 콘텐트 교환기들(116)이 세밀 QOS 분석으로서 서버 자체 검사를 사용하여 평가된다. 세밀 QOS 분석의 결과들은 충분한 QOS를 제공하는 콘텐트 교환기들(116)을 규정한다. 상기 방법론들의 임의의 조합은 세밀 또는 대략적인 QOS 분석을 수행하도록 적용될 수 있다. 대안적으로, 세밀 또는 대략적인 QOS 분석 자체는 다단 분석을 수반할 수 있다는 것을 인식해야 한다.
경로 QOS 평가(986)가 잠재적인 경로들에 대해 수행되고 각각의 평가된 경로에 대한 QOS 인자가 클라이언트 컴퓨터(112)의 메모리에 저장된 후, 평가된 경로들과 관련된 콘텐트 교환기들(116)이 우선화된다(990). 콘텐트 교환기들(116)은 경로 QOS 평가(986)에서 결정된 QOS 인자에 기초하여 우선화된다. QOS 인자에 기초하여, 미리 결정된 수의 콘텐트 교환기들이 선택되고, 순위 매김되어, 선호도 정보(512)로서 저장된다. 일 실시예에서, 선호도 정보(512)는 선호된 10개의 콘텐트 교환기들(116)을 포함한다.
상술한 바와 같이, 대안적인 실시예들에서는, 단지 콘텐트 교환기들(116) 및 원 서버들(108)만 필수적인 것이 아니라 임의의 콘텐트 오브젝트 소스 상에서 경로 QOS 평가를 수행할 수 있다. 이 경우, 선호도 정보(512)는 콘텐트 오브젝트 소스들, 원 서버들(108), 뿐만 아니라 콘텐트 교환기들(116)을 포함할 수 있다.
선호도 정보(512)는 클라이언트 컴퓨터(112) 견지로부터 수행된 네트워크 분석에 의해 결정되는 바와 같이 충분한 QOS를 제공하는 콘텐트 교환기들(116)의 리스트를 포함한다. 클라이언트 컴퓨터(112)의 견지로부터 QOS를 분석함으로써, QOS는 개선될 수 있다.
일부 실시예들에서, 선호도 정보(512)는 경로 QOS 평가(986)에 의해 분석될 콘텐트 교환기들(116)의 서브세트를 형성하는데 사용된다. 예컨대, 콘텐트 교환기들(116)은 동일한 사이트에 존재함이 테스트될 수 있으며, 또는 선호도 정보(512)에 포함된 콘텐트 교환기들(116)과 동일한 공급자와 관련된다. 따라서, 충분한 QOS를 제공할 수 있는 가능성이 가장 큰 콘텐트 교환기들(116)만이 차후 경로 QOS 평가(986)에서 재평가된다. 대안적으로, 선호도 정보(512) 내에 포함된 콘텐트 교환기들(116)은, 콘텐트 교환기 데이터베이스(232)에 추가되어 있는 다른 콘텐트 교환기들(116)과 함께 경로 QOS 평가(986)에 의해 분석될 수 있는데, 이는 선호도 정보(512)의 최종 생성이기 때문이다. 이러한 방식들로, 뷰어 오브젝트 프록시(504)의 경험은 가장 효율적인 경로 QOS 평가(986)를 유효하게 하는데 사용될 수 있다. 상기 실시예들은 단지 예시적인 것이며 경로 QOS 평가(986)의 효율을 증가시키기 위한 콘텐트 교환기들(116)을 선택하기 위한 다수의 알고리즘들이 존재한다는 것을 인식해야 한다. 예컨대, 경로 QOS 평가(986)의 선행 동작은 추정에 의해 거절되기보다는 결코 재차 분석되지 않는 특정 콘텐트 교환기(116)에 대한 열악한 결과들을 충분히 복귀시킬 수 있다. 몇몇 실시예들에서, 이러한 추정에 의한 거절은 사용자에 의해 수동으로 무효화될 수 있다.
경로 QOS 평가(986)의 결과들은 사용자를 위해 디스플레이(992)될 수 있다. 몇몇 실시예들에서, 결과들은 사용자가 클라이언트 컴퓨터(112)의 데스크탑 상에서 뷰어 오브젝트 프록시(504)가 계속해서 구동하도록 유인하며, 사용자가 콘텐트 교환기(116) 선택을 수동으로 제어하도록 가중 함수(852)를 변형시키는 것을 지원하도록 디스플레이된다. 일 실시예에서, 디스플레이 함수(854)는, 무엇보다도, 통계 기술 동작 특성들과 함께 선택 콘텐트 교환기(116)와 클라이언트 컴퓨터(112) 사이의 홉들을 도시하는 영역 맵을 제공한다.
개시(980)시에 선호도 정보(512)를 갱신하는 것에 부가하여, 선호도 정보(512)는 사용자들 요청(994) 또는 시간 간격(996)에 기초하여 갱신될 수 있다. 일 실시예에서, 선호도 정보는 3600초로 설정된 시간 간격(996)으로 갱신된다.
도 9와 관련하여 설명한 백그라운드 애플리케이션에 부가하여, 뷰어 오브젝트 프록시(504)는 콘텐트 배포 시스템(100)으로부터의 콘텐트 오브젝트들에 대한 사용자 요청들의 서비스, 외부 원 서버들(118), 및 전자 상거래 요청들의 서비스와 함께 인터넷(120)을 포함하지만, 이에 한정되지는 않는 포어그라운드 동작들을 제공할 수 있다. 더욱 구체적으로, 뷰어 오브젝트 프록시(504)는 전자 상거래 기능(866)과 관련하여 상술한 바와 같은 전자 상거래 요청들을 취급할 수 있다.
콘텐트 배포 시스템(100), 외부 원 서버들(118) 및 인터넷(12)으로부터의 콘텐트 오브젝트들의 액세스는 도 10에서와 같이 포함된 뷰어 오브젝트 프록시 요청 서비스(1000)의 실시예의 흐름도와 관련하여 설명한다. 도 10을 참조하면, 콘텐트 오브젝트에 대한 사용자 요청(1010)은 뷰어 오브젝트 프록시(504)에 의해 수신된다. 일 실시예에서, 콘텐트 배포 시스템(100)은 콘텐트 처리 프로그램(508)을 통해 액세스된다. 보다 구체적으로는, 사용자 명령에 반응하는 콘텐트 처리 프로그램(508)은 콘텐트 오브젝트에 대한 요청을 발령한다. 콘텐트 오브젝트에 대한 요청은 사용자 요청(1010)과 같이 뷰어 오브젝트 프록시(504)로 전달된다.
사용자 요청(1010)을 수신할 때, 뷰어 오브젝트 프록시(504)는 수신된 사용자 요청(1010)이 콘텐트 배포 시스템 액세스(1020)에 의해 충족될 수 있는지의 여부를 결정한다. 일 실시예에서, 이 결정은 콘텐트 배포 시스템(100)과 관련된 소스 위치들의 알려진 리스트와 사용자 요청(1010)의 소스 위치를 비교함으로써 수행된다. 사용자 요청(1010)의 소스 위치가 콘텐트 배포 시스템(100)과 관련된 소스 위치와 매칭하는 경우, 요청은 콘텐트 배포 시스템 액세스(1020)에 의해 충족될 수 있다. 따라서, 콘텐트 배포 시스템 서비스(1030)는 사용자 요청(1010)을 충족시키도록 수행된다.
일부 실시예들에서, 뷰어 오브젝트 프록시(504)는 원 서버(108)에 선호도 정보(512)를 전달함으로써 콘텐트 배포 시스템 서비스(103)를 수행한다. 선호도 정보(512)를 사용하여, 원 서버(108)는 사용자 요청(1010)에 대한 충분한 QOS를 제공할 수 있는 콘텐트 교환기(116) 또는 원 서버(108)를 선택한다. 다음, 원 서버(108)는 선택된 콘텐트 교환기(116) 또는 원 서버(108)의 어드레스를 뷰어 오브젝트 프록시(504)에 전달한다. 일 실시예에서, 원 서버(108)는 선택된 콘텐트 교환기(116) 또는 원 서버(108)의 어드레스를 뷰어 오브젝트 프록시(504)에 제공하도록 동적으로 HTML을 기록한다. 다음, 뷰어 오브젝트 프록시(504)는 선택된 콘텐트 교환기(116) 또는 원 서버(108)와 호환성의 압축, 암호화 및 보안을 협상한다. 대안적인 실시예에서, 뷰어 오브젝트 프록시(504)는 선호도 정보(512)를 사용하여 요청된 콘텐트 오브젝트를 제공하도록 콘텐트 교환기(116)를 자체적으로 선택할 수 있다.
뷰어 오브젝트 프록시(504)는 선택된 콘텐트 교환기(116) 또는 원 서버(108)로부터의 콘텐트 오브젝트들의 요청에 의해 사용자 요청(1010)을 충족시킨다. 요청된 콘텐트 오브젝트가 검색될 때, 협상된 포맷에 따라 압축 해제, 복호화 및 보안이 뷰어 오브젝트 프록시(504)에 의해 제공된다. 따라서, 클라이언트 컴퓨터(112) 특정 정보를 원 서버(108)로 전달함으로써, 원 서버(108)는 충분한 QOS를 제공할 수 있는 콘텐트 교환기(116)를 선택할 수 있다. 클라이언트 컴퓨터(112) 견지로부터 분석 및 콘텐트 교환기 선택을 제공함으로써, 보다 정확한 QOS 분석이 성취되어 양호한 QOS를 발생시킨다.
사용자 요청(1010)이 콘텐트 배포 시스템 액세스(1020)에 의해 충족될 수 없는 경우, 다음, 뷰어 오브젝트 프록시(504)는 사용자 요청(1010)이 외부 원 서버 액세스(1040)에 의해 충족될 수 있는지를 결정한다. 일 실시예에서, 이 결정은 호스트 서버 라우팅(520)에 제공된 외부 원 서버들(118)에 대한 도메인명들과 사용자 요청(1010)에 지시된 도메인명을 비교함으로써 수행된다. 사용자 요청(1010)에 지시된 도메인명이 외부 원 서버(118)의 도메인명과 매칭하는 경우, 사용자 요청(1010)은 외부 원 서버 서비스(1050)를 수행함으로써 매칭된 외부 원 서버(118)로부터 충족될 수 있다. 따라서, 외부 원 서버 서비스(1050)는 사용자 요청(1010)을 충족시키도록 수행된다. 다른 실시예들에서, 사용자 요청(1010)은 디렉토리명, 기계명, IP 어드레스, 또는 호스트 서버 라우팅(520)에 포함된 외부 원 서버들에 대한 대응 다른 식별자와 비교되는 다른 식별자를 포함할 수 있다.
일 실시예에서, 뷰어 오브젝트 프록시(504)는 매칭된 외부 원 서버(118)로부터 소싱된 콘텐트 오브젝트들을 제공하기 위해 알려진 콘텐트 교환기(116)를 액세스함으로써 외부 원 서버 서비스(1050)를 수행한다. 따라서, 뷰어 오브젝트 프록시(504)는 매칭된 외부 원 서버(118)로부터 콘텐트 교환기(116)로 사용자 요청(1010)을 재안내한다. 이 재안내는 매칭된 외부 원 서버(118)로 및 콘텐트 프로세싱 프로그램(508)으로 모두에 대해 투과적이다. 몇몇 실시예들에서, 뷰어 오브젝트 프록시(504)는 선택된 콘텐트 교환기(116)와 호환성의 압축, 암호화 및 보안을 협상한다. 또한, 콘텐트 교환기(116)는 협상된 압축, 암호화 및 보안에 따라 사용자 요청(1010)을 충족시킨다. 콘텐트 교환기(116)가 요청된 콘텐트 오브젝트를 갖지 않을 경우에는, 콘텐트 교환기(116)는 매칭된 외부 원 서버(118)로부터 원하는 콘텐트 오브젝트를 요청한다. 어느 경우든, 요청된 콘텐트 오브젝트는 콘텐트 교환기(116)에 의해 클라이언트 컴퓨터(112)에 제공된다. 요청된 콘텐트 오브젝트가 수신될 때, 협상된 포맷에 따라 뷰어 압축 해제, 복호화 및 보안이 뷰어 오브젝트 프록시(504)에 의해 제공된다. 따라서, 콘텐트 교환기(116)로부터의 사용자 요청들(1010)을 서비스함으로써, 외부 원 서버(118)를 관리하는 콘텐트 오브젝트 공급자는 콘텐트 오브젝트들을 배포하는데 부담을 갖지 않는다.
대안적인 실시예에서, 뷰어 오브젝트 프록시(504)는 원 서버(108)에 선호도 정보(512)를 전달함으로써 외부 원 서버 서비스(1050)를 수행할 수 있다. 선호도 정보(512)를 사용하여, 원 서버(108)는 사용자 요청(1010)에 대한 충분한 QOS를 제공할 수 있는 콘텐트 교환기(116) 또는 원 서버(108)를 선택한다. 원 서버(108)는 뷰어 오브젝트 프록시(504)에 대한 원 서버(108) 또는 선택된 콘텐트 교환기(116)로 어드레스를 전달한다.
다음, 뷰어 오브젝트 프록시(504)는 선택된 콘텐트 교환기(116) 또는 원 서버(108)로부터 콘텐트 오브젝트들을 요청함으로써 사용자 요청(1010)을 충족시킨다. 선택된 콘텐트 교환기(116) 또는 원 서버(108)는 매칭된 외부 원 서버(118)로부터 원하는 콘텐트 오브젝트를 요청하고, 그 후 요청된 콘텐트 오브젝트를 뷰어 오브젝트 프록시(504)에 제공함으로써 사용자 요청(1010)을 충족시킨다. 따라서, 클라이언트 컴퓨터(112)에 적합된 서비스를 위해 제공함으로써 양호한 QOS가 성취된다. 게다가, 콘텐트 교환기(116)로부터 사용자 요청들(1010)을 서비스함으로써, 외부 원 서버(118)를 유지하는 콘텐트 오브젝트 공급자는 콘텐트 오브젝트들을 배포하는데 부담을 갖지 않는다.
사용자 요청(1010)이 외부 원 서버 액세스(1040) 또는 콘텐트 배포 시스템 액세스(1020)에 의해 충족될 수 없는 경우, 사용자 요청(1010)은 인터넷(120)을 통해 전달된다. 일 실시예에서, 인터넷(120)으로 전달된 사용자 요청(1010)은 표준 웹 액세스 함수(858)에 관해 설명한 바와 같이 취급된다.
도 11을 참조하면, 원 서버(108)와 콘텐트 교환기(116) 사이의 콘텐트를 추적하는 방법의 실시예가 도시되어 있다. 상기 도면은 단일의 원 서버와 단일의 콘텐트 교환기 사이의 상호 작용을 주로 도시하고 있지만, 각각의 원 서버는 다수의 콘텐트 교환기들과 접촉하고 각각의 콘텐트 교환기는 다수의 원 서버들과 접촉한다는 것을 이해해야 한다. 모든 원 서버들(108)과 모든 콘텐트 교환기들(116) 사이의 상호 작용은 시스템(600)이 콘텐트 오브젝트 부분들을 추적할 수 있게 한다.
프로세스는 오프라인 또는 비가용 상태의 콘텐트 교환기 및 원 서버에서 개시된다. 스텝 1104에서, 콘텐트 교환기(116)는 동작을 개시한 후 이용가능해진다. 처음 가용 상태로 될 때, 콘텐트 교환기(116)는 비워있고 콘텐트를 요청하기 위해 클라이언트 컴퓨터들(112)을 대기한다. 클라이언트 컴퓨터들(112)에 의한 요청이 충족될 때, 클라이언트 저장부(412)에는 콘텐트 오브젝트들 및 콘텐트 오브젝트들의 일부들로 채워진다.
스텝 1108에서, 본 실시예의 원 서버(108)는 동작을 시작하여 가용될 수 있다. 원 서버(108)는 그 로컬 콘텐트 목록을 액티브 디렉토리(104)에 발행하며 시스템(600) 내의 모든 콘텐트 추적기들(404)에 그 자신을 식별시킨다. 동작 콘텐트 교환기(116)의 콘텐트 교환기 데이터 베이스는 콘텐트 매니저(312)가 콘텐트 추적기들(404)의 어드레스들을 인지하도록 질의를 가용화한다.
각각의 콘텐트 교환기(116)는 그와 접촉하고 있는 원 서버들(108)의 원 서버 데이터베이스(424)를 유지한다. 원 서버(108)가 오프라인이 되기 전에, 원 서버(108)는 이 상태 변화를 모든 콘텐트 교환기들(116)에게 공지하기 위해 모든 콘텐트 교환기들(116)과의 접촉을 시도할 수 있다. 오프라인 원 서버들(108)은 원 서버 데이터베이스(424)로부터 제거된다. 원 서버(108)가 상태를 전송하는 콘텐트 교환기(116)에 대한 응답에 실패할 때마다, 원 서버(108)는 오프라인으로 가정되며 원 서버 데이터베이스(424)로부터 제거된다.
콘택트 교환기(116)가 오프라인 상태가 되려고 할 때마다, 이는 시스템(600)에 공지를 시도한다. 콘텐트 오브젝트들 또는 콘텐트 오브젝트들의 부분들을 갖는 원 서버들(108)은, 각각의 원 서버(108) 내의 콘텐트 교환기 정보(324) 및 콘텐트 위치 데이터베이스(320)가 현재 상태가 유지될 수 있도록 공지된다. 부가적으로, 액티브 디렉토리(104)는, 콘텐트 교환기 데이터베이스(232)가 시스템(600)에 대해 가용한 콘텐트 교환기(116)를 정확하게 반영할 수 있도록 공지된다.
스텝 1108에서 접촉되어 있는 각각의 콘텐트 추적기(404)는, 스텝 1112에서 상태 정보(420) 및 그 콘텐트 매니저(312)와 관련된 임의의 콘텐트 오브젝트들로 콘텐트 매니저(312)에 응답한다. 콘텐트 매니저(312)는 온라인이 되고 있는 상태이기 때문에, 그 콘텐트 매니저(312)와 관련된 콘텐트 서버(308)로부터 기원하는 콘텐트 스토어(412) 상에 임의의 콘텐트 오브젝트들이 존재할 가능성이 없다. 응답하는 각각의 콘텐트 교환기(116)로부터의 상태 정보(420)는 콘텐트 교환기 정보(324)로서 콘텐트 매니저(312)에 의해 저장된다. 다양한 실시예들에서, 상태 정보(420)는 콘텐트 목록 정보(416)를 갖거나 갖지 않고 보고될 수 있다. 클라이언트 컴퓨터(112)를 콘텐트 오브젝트의 소스에 라우팅할 때, 콘텐트 교환기 정보(324)는 고려중인 콘텐트 교환기들에 대한 부하를 결정하는데 사용된다. 주기적으로, 각각의 콘텐트 추적기(400)는, 콘텐트 교환기 정보(324)가 현재 상태가 되도록 상태 정보로 모든 액티브 콘텐트 매니저들(312)을 갱신한다. 대안적인 실시예의 콘텐트 추적기들(404)은 주기적으로보다는 중요한 상태 변화들이 발생할 때 갱신된 상태 정보(420)를 제공할 수 있다.
스텝 1116에서, 콘텐트 매니저(312)는 콘텐트 오브젝트에 대한 요청을 충족시키기 위해 콘텐트 교환기(116)에 클라이언트 컴퓨터(112)를 전송한다. 클라이언트 컴퓨터(112)를 재안내하기 이전에, 콘텐트 매니저(312)는 특정 콘텐트 교환기가 그 콘텐트 오브젝트에 대한 선호 소스라고 결정을 한다. 전체 콘텐트 오브젝트가 선호도 콘텐트 교환기(116)에 존재하지 않으면, 콘텐트 컨트롤러(408)는 스텝 1120에서 분실한 콘텐트 오브젝트 부분들을 검색한다. 클라이언트 컴퓨터(112)는, 콘텐트 오브젝트의 개시가 콘텐트 교환기(116)로부터 가용하면 콘텐트 오브젝트의 다운로딩을 개시한다.
미리 결정된 간격으로 또는 변화들이 발생할 때, 콘텐트 추적기(404)는 콘텐트 스토어(412)에 저장된 콘텐트 오브젝트들 및/또는 콘텐트 오브젝트 부분들을 모든 콘텐트 매니저들(312)에게 보고한다. 로컬 콘텐트 목록(416)은 콘텐트 스토어(412)에 보유된 콘텐트 오브젝트 및/또는 콘텐트 오브젝트 부분들의 리스트를 저장한다. 스텝 1124에서, 스텝 1120에서 부가되었을 가능성이 있는 콘텐트 오브젝트가 콘텐트 오브젝트가 원래 제공된 원 서버(108)로 보고된다. 콘텐트 스토어(412)에 대한 정보를 갖는 각각의 원 서버(108)는 콘텐트 추적기(404)로부터 보고를 수신한다.
몇몇 이후 지점에서, 로컬 콘텐트 목록(416)으로부터의 부가의 정보가 스텝 1128에서 콘텐트 추적기(404)로부터 콘텐트 매니저(312)로 전송된다. 시간의 만료가 단계 1132에서 이 보고를 트리거하지만, 다른 실시예들에서는 변화들이 발생할 때 이 정보를 보고할 수 있다. 모든 콘텐트 교환기들(116)로부터의 보고들에 의해, 콘텐트 매니저(312)는 콘텐트 위치 데이터베이스(320)에 위치 정보를 저장한다. 콘텐트 매니저에 의한 콘텐트 위치 데이터베이스(320)에 대한 미래의 질의들은 어느 콘텐트 교환기들(116)이 현재 임의의 콘텐트 오브젝트를 유지하고 있는지를 인지하게 하며 콘텐트 매니저(312)는 클라이언트 컴퓨터(112)를 그에 재안내하기를 원할 수 있다.
상태 정보(420) 및/또는 콘텐트 목록 정보(416)의 보고들이 특정 콘텐트 매니저(312)에 수행될 때, 콘텐트 추적기(404)는 콘텐트 매니저(312)가 정보를 수용하는지를 결정한다. 콘텐트 매니저가 정보를 수용하면, 프로세싱 루프들은 다른 콘텐트 오브젝트가 요청되는 단계 1116으로 복귀된다.
콘텐트 매니저(312)가 오프라인이면, 예컨대 콘텐트 추적기(404)로부터 보고된 정보는 수용되지 않는다. 콘텐트 추적기(404)가, 콘텐트 매니저(312)가 비가용하다고 결정하기 이전의 접촉시에 다수의 비성공적인 시도들이 수행될 수 있다. 비응답성 콘텐트 매니저(312)는 스텝 1136에서 검출된다. 비가용 콘텐트 매니저(312)와 관련된 임의의 오브젝트들은 로컬 콘텐트 목록(416)에 대한 질의에 의해 결정된다. 관련된 콘텐트 오브젝트들은 새로운 콘텐트 오브젝트들을 위한 여유 공간(room)을 남겨두도록 콘텐트 스토어(412)로부터 제거되거나, 저장 공간이 요구될 때 삭제를 위해 태그 부착된다. 콘텐트 추적기는 원 서버명을 IP 어드레스로 해석하도록 상기 프로세스 중에 동적 DNS 204를 질의한다는 것을 주목하라.
다음 도 12를 참조하면, 콘텐트 매니저로부터 서버 매니저로 정보를 통신하기 위한 프로세스의 실시예의 흐름도가 도시되어 있다. 도시한 흐름도는 액티브 디렉토리(104)와 단일 원 서버(108) 사이의 상호 작용을 도시한다. 그러나, 액티브 디렉토리(104)는 서버 데이터베이스(228)에서의 원 서버들의 수를 목록화하는 전자 디렉토리를 발현하는 것과 유사한 방식으로 다수의 원 서버들과 상호 작용한다는 것을 이해해야 한다. 사용자는 검색 페이지 또는 디렉토리 페이지 패러다임으로 서버 데이터베이스(228)에 질의한다.
프로세스는 스텝 1204에서 개시되며, 여기서 콘텐트 매니저(312)는 서버 매니저(208)에 상태 정보를 제공한다. 상태 정보는 단계 1208에서 서버 매니저(208)에 의해 수신되며 가입자 데이터베이스(224)에 저장된다. 가입자 데이터베이스(224)는 시스템(600) 내의 현재 액티브한 모든 원 서버들(108)에 대한 정보를 유지한다.
서버 매니저(208)는, 각각의 원 서버(108)가 로컬 콘텐트 목록(316)으로부터 정보를 얼마나 빈번히 보고하는지를 통제한다. 각각의 원 서버가 로컬 콘텐트 목록(316)을 보고하는 빈도는 서버 매니저(208)에 의해 제어되어 스텝 1210에서 콘텐트 매니저(312)로의 시간 간격을 제공한다. 액티브 디렉토리(104)의 부하 또는 이용은 서버 데이터베이스(228)의 정보를 갱신 가용하도록 형성된 대역폭의 양을 결정하기 위해 분석된다. 이 부하 결정에 기초하여, 보고 시간 간격(report-back time interval)이 선택되며 콘텐트 매니저(312)에 전달된다. 일 실시예에서, 보고 시간 간격은 일반적으로 2분으로 설정되지만, 액티브 디렉토리가 오버로드되는 경우에는 증가할 수 있다.
각각의 원 서버(108)는 시스템(600)을 발행하기 위한 관리자에 의해 선택된 모든 콘텐트 정보들의 로컬 콘텐트 목록(316)을 유지한다. 콘텐트 매니저(312)가 서버 매니저(208)와 접촉하여 로컬 콘텐트 목록(316)을 최초 보고할 때, 목록(316)으로부터의 모든 엔트리들이 전송된다. 차후 접속시에, 로컬 콘텐트 목록(316)에 대한 변화들만이 보고되어 대역폭을 세이브할 수 있다. 대안적인 실시예에서, 전체 로컬 콘텐트 목록은 각각의 접촉에 의해 보고될 수 있다. 서버 매니저(208)는, 단계 1216에서, 로컬 콘텐트 목록(316)을 수신하거나 로컬 콘텐트 목록을 변화시키며 서버 데이터베이스(228)에 정보를 저장한다. 보고 시간 간격 중에 로컬 콘텐트 목록(316)에 변화가 없을지라도, 원 서버(108)는, 원 서버(108)가 여전히 가용하다는 것을 인지하도록 서버 매니저(208)와 접촉한다.
서버 매니저(208)는, 원 서버(108)가 오프라인이거나 비가용적이기 때문에 임의의 원 서버(108)가 접촉을 중단하였는지를 검출한다. 스텝 1220에서, 서버 매니저(208)는 원 서버(108)에 대한 타임아웃 값을 설정한다. 타임아웃 값은 본 실시예에서 보고 시간 간격의 3배로 설정되지만, 다른 배수가 사용될 수도 있다. 카운터는 타임아웃 값을 설정하며 카운터가 타임아웃 값에 도달하였을 때를 결정한다.
단계 1224에서 카운터가 타임아웃 값에 도달하면, 단계 1236에서 액티브 디렉토리(104)는 원 서버(108)에 대한 모든 레퍼런스들을 제거하거나 공간이 필요할 때 삭제하기 위해 레퍼런스들에 태그 부착한다. 카운터가 타임아웃 값에 도달하기 전에 원 서버가 접촉을 초기화하지 않으면 원 서버(108)는 비가용적인 것으로 가정한다. 원 서버(108)에 대한 로컬 콘텐트 목록(316)에 대응하는 엔트리들은 서버 데이터베이스(228)로부터 제거되며 원 서버(108)에 대한 엔트리는 가입자 데이터베이스(224)로부터 제거된다. 데이터베이스들(224, 228)로부터 엔트리들을 제거함으로써, 디렉토리 또는 검색 페이지들(212, 216)과 인터페이싱하는 임의의 사용자는 원 서버(108)와 관련된 콘텐트 오브젝트들로의 링크들을 제공하지 않는다. 대안적으로, 로컬 콘텐트 목록(316)에 대응하는 엔트리들은 카운터가 타임아웃 값에 도달한 후 삭제하기 위해 태그 부착될 수 있다. 삭제를 위해 태그 부착된 콘텐트 오브젝트들은 다른 콘텐트 오브젝트들을 위한 공간이 요구될 때 덮어쓰기된다.
스텝 1228에서 결정된 바와 같은 원 서버(108)에 의한 접촉이 존재할 때, 액티브 디렉토리(104)는 원 서버(108)가 적절하게 가동하고 있다는 것을 인지한다. 접촉은 타임아웃 값을 저장하는 카운터의 재설정을 초래한다. 서버 데이터베이스(228)가 갱신되고 새로운 보고 시간 간격이 결정되는 경우 프로세싱 루프들은 스텝 1210으로 복귀된다. 타임아웃 값을 저장하는 카운터가 만료되기 전에 원 서버(108)가 보고하는 것을 실패할 때까지 프로세스가 루프 내에서 계속된다.
도 13을 참조하면, 콘텐트 매니저(312)에 의해 서버 매니저(208)로 정보를 발행하기 위한 프로세스의 흐름도의 실시예가 도시되어 있다. 원 서버의 관리자는 액티브 디렉토리(104)의 다운로드 페이지(220)로부터 소프트웨어를 다운로드한다. 소프트웨어는 원 서버(108) 상에 설치된다. 이 시점에서, 콘텐트 오브젝트들은 콘텐트 서버(308) 상에서 정적 또는 스트리밍 형태로 가용하다. 도시한 프로세스는 준비된 콘텐트 오브젝트들 및 설치된 소프트웨어에 의해 원 서버가 동작을 시작하는 스텝 1304에서 시작된다.
관리자는 단계 1308에서 수동 선택 프로세스를 수행하여 콘텐트 오브젝트들을 선택한다. 콘텐트 서버(308) 상의 콘텐트 오브젝트들의 서브세트만이 이 프로세스 중에 시스템(600)에 가용화된다. 선택된 콘텐트 오브젝트들은 로컬 콘텐트 목록(316)으로 입력된다.
액티브 디렉토리(104)와 최초 접촉할 때, 콘텐트 매니저(312)는 스텝들 1308 및 1312에서 가입자 데이터베이스(224) 내로의 엔트리를 위해 원 서버(108)에 대한 정보를 서버 매니저(208)에 전달한다. 이것이 콘텐트 매니저(312)가 액티브 디렉토리(104)와의 최초 접촉인 경우, 관리자는 소정의 전달된 정보를 제공할 수 있다. 관리자에 의해 부가된 정보는 저장되며 가입자 데이터베이스(224)에 의해 차후 접촉된다.
스텝 1316에서, 콘텐트 매니저(312)는 서버 매니저(208)와 접촉하여 로컬 콘텐트 목록(316)에 정보를 발행한다. 서버 매니저(208)는 로컬 콘텐트 목록(316)을 취하며 스텝 1320에서 각각의 콘텐트 오브젝트에 대한 서버 데이터베이스(228)의 엔트리를 생성한다. 서버 데이터베이스(228)의 콘텐트들은 콘텐트를 검색하는 사용자로 제공된 디렉토리 및 검색 페이지들(212, 216)을 공식화할 때 사용된다.
서버 매니저(208)는 모든 원 서버들(108)이 그들의 로컬 콘텐트 목록들(316)을 보고하는 빈도를 제어한다. 서버 매니저(208)가 오버로드되면, 콘텐트 매니저들(312)에 제공된 보고 주기가 증가된다. 서버 매니저(208)는 또한 로컬 콘텐트 목록의 변화들이 검출될 때 보고를 위해 콘텐트 매니저(312)를 또한 요청할 수 있다. 본 실시예에서, 보고 주기 또는 시간 간격은 2분이며 스텝 1324에서 콘텐트 매니저(312)에게 제공된다.
서버 매니저(208)로 보고하기 전에, 콘텐트 매니저(312)는 스텝 1328에서 간격 시간이 만료되기를 대기한다. 타이머가 만료되면, 콘텐트 서버(308) 상의 콘텐트 오브젝트들은 로컬 콘텐트 목록(316)의 변화들이 있는지를 결정하도록 스캔된다. 스텝 1332에서 변화들이 수행되면, 처리 루프들은 로컬 콘텐트 목록(316)이 서버 데이터베이스(228)를 재차 발행하는 스텝 1316으로 복귀된다. 전체 로컬 콘텐트 목록은 최초 접촉을 위해 스텝 1316에서 제공될 수 있지만, 정보의 크기를 감소시키기 위해 차후의 접촉들의 정보를 갱신하도록 변화들만이 제공될 수 있다.
다음, 도 14를 참조하면, 별개의 포트들(1408)을 통해 접속된 다수의 공급자들을 도시하는 콘텐트 교환기(116)의 실시예의 블록도가 도시되어 있다. 3개의 데이터 경로들(1404)이 콘텐트 교환기(116)를 위한 인터넷 프로토콜 포트들(1408)에 의해 논리적으로 분리되어 있다. 포트들(1408)은 공유 콘듀잇(conduit)을 물리적으로 공유할 수 있지만 논리적 데이터 경로들(1404)을 디멀티플렉싱하는데 사용된다. 다수의 포트들(1408)을 가짐으로써, 상기 포트들(1408)과 관련된 트래픽이 통제될 수 있다.
예컨대, 콘텐트 교환기(116)는 외부 원 서버(118)로부터 콘텐트 오브젝트들을 제공하는데 사용될 수 있다. 외부 원 서버의 관리자는 대역폭 공급자들간의 트래픽을 분할하기를 원할 수도 있다. 포트 A(1408-A)가 공급자 A와 관련될 수 있으며, 포트 B(1408-B)는 공급자 B와 관련될 수 있으며 포트 C(1408-C)는 공급자 C와 관련될 수 있다. 콘텐트 교환기는, 대역폭을 적절하게 전달하기 위해 외부 원 서버(118)에 과금할 수 있도록 임의의 상기 포트들 상의 활동을 모니터하고 그 정보를 공급자들에게 보고할 수 있다.
클라이언트 컴퓨터들(112)로부터의 요청들은 공급자들간의 대역폭을 할당하기 위해 외부 원 서버(118)에 의해 결정된 구조에 따라 포트들(1408) 간에 분할될 수 있다. 일 실시예에서, 각각의 클라이언트 컴퓨터(112)는 가중 함수에 따라 3개의 포트들(1408)을 통해 순환된다. 다른 실시예에서, 각각의 클라이언트는 사용을 위해 상이한 포트(1408)를 할당받는다. 또 다른 실시예에서, 각각의 포트(1408)에 대한 QOS의 결정은 클라이언트 컴퓨터(112)가 사용하는 포트(1408)의 선택에 영향을 준다. 이러한 기술을 사용함으로써, 시스템(600)의 클라이언트 컴퓨터들(112)은 각각의 공급자로부터 구매되는 대역폭의 양에 영향을 줄 수 있다.
도 15를 참조하면, 별개의 어드레스들(1508)을 통해 접속된 다수의 공급자들을 도시하는 콘텐트 교환기(116)의 다른 실시예의 블록도가 도시되어 있다. 본 실시예에서, 3개의 서로로부터 3개의 데이터 경로들(1504)을 논리적으로 분리하도록 IP 어드레스들(1508)이 사용된다. 논리적 데이터 경로들은 주로 공급자에 의해 대역폭을 분리하도록 계획되지만, 논리적 데이터 경로들은 보안 레벨들, 콘텐트 오브젝트들의 서브세트들 등을 분리할 수 있다.
다음, 도 16을 참조하면, 공급자들(1604)과 콘텐트 교환기들(116)의 그룹화의 실시예의 계층도가 도시되어 있다. 본 실시예에서, 두 개의 대역폭 공급자들(1604)이 제공된다. 각각의 공급자(1604)는 그들 고유의 사이트(1608-1, 1608-3)와 공유되는 사이트(1608-2)를 가진다. 사이트들(1608)은 하나 이상의 서버들(1612)을 수용하며 다수의 서버들(1612)을 포함할 수 있는 단일 콘텐트 교환기(116)에 대응하는 물리적 위치들이다.
공유 사이트(1608-2)의 각각의 서버(1612-3)는 상기 사이트(1609-2)를 공유하는 각각의 공급자(1604)를 위한 별개의 IP 어드레스들(1616-3)을 가진다. 두 개의 IP 어드레스들(1616-3, 1616-4)은 소정의 공유 사이트(1602-2)로의 트래픽의 논리적인 분리를 허용한다. 논리적인 분리는, 모든 트래픽이 동시에 동일한 물리적 콘딧을 공유할 수 있을지라도 개별 공급자들(1604)로의 이러한 요청들을 서비스하도록 콘텐트 오브젝트 요청들 및 대역폭을 속성화 하는 것을 허용한다. 몇몇 실시예들은 IP 어드레스들(1616) 상의 필터링에 의해 각각의 공급자와 관련된 트래픽의 물리적인 분리를 유지할 수 있다. 이러한 방식으로, 대역폭은 공급자들(1604) 간에 할당될 수 있다.
다음, 공급자들과 콘텐트 교환기들의 그룹화의 다른 실시예의 계층도인 도 17을 참조한다. 본 실시예에서, 포트들(1716)은 서버들(1612)에 대한 논리적 데이터 경로들을 차별화하는데 사용된다. 다수의 공급자들(1604)을 서비스하는 사이트들(1608-2)에서 포트 1(1716-3)은 공급자 1(1604-1)과 관련되며 포트 2(1716-4)는 공급자 2(1604-2)와 관련된다. 몇몇 실시예들에서, 각각의 공급자는 모든 서버들 상의 단일의 유니버설 포트보다는 그들과 관련된 포트들의 범위를 가질 수 있다.
상기 설명의 관점에서, 본 발명의 다수의 장점들이 쉽게 명백해진다. 클라이언트의 견지로부터 콘텐트 교환기들을 분석하고, 이 분석을 사용하여 콘텐트 교환기를 선택하여 콘텐트 오브젝트들을 클라이언트에게 제공함으로써, 클라이언트는 충분한 QOS를 제공받을 수 있다. 이 충분한 QOS는 대역폭 및 지연 양자 모두를 포함하는 임의의 전송 양상들을 포함할 수 있는 전송 품질을 포괄한다. 클라이언트 컴퓨터가 네트워크 서버와는 달리, 클라이언트 컴퓨터로의 라우팅에 대한 완전한 정보를 가지는 경우에, 클라이언트 컴퓨터는 충분한 QOS를 가능하게 하기 위한 정보를 제공하도록 고유하게 위치될 수 있다.
본 발명의 다수의 변형들 및 변경들도 사용될 수 있다. 예로서, 일부 실시예들은 콘텐트 교환기들과 마찬가지로 외부 원 서버들을 분석할 수 있다.
비록, 그 특정 실시예들을 참조로 본 발명을 설명하였지만, 이 실시예들은 본 발명을 단지 예시하며, 본 발명을 제한하는 것이 아니며, 본 발명의 범주는 첨부된 청구범위에 의해서만 결정된다.

Claims (24)

  1. 요청기(requestor)와 선택기(selector)를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법에 있어서,
    제 1 식별자에 의해 식별되는 제 1 소스 및 상기 요청기를 연관시키는 제 1 전송 품질 인자를 결정하는 단계로서, 상기 제 1 전송 품질 인자는 콘텐트 오브젝트가 상기 제 1 소스에 잔류하는 평균 시간을 포함하는, 상기 제 1 전송 품질 인자 결정 단계;
    제 2 식별자에 의해 식별되는 제 2 소스 및 상기 요청기를 연관시키는 제 2 전송 품질 인자를 결정하는 단계;
    상기 선택기에 선호도를 제공하는 단계로서, 상기 선호도는 상기 제 1 및 제 2 전송 품질 인자들에 기초하고, 상기 선호도는 상기 제 1 및 제 2 식별자들 중 적어도 하나를 포함하는, 상기 선호도 제공 단계; 및
    상기 선택기가 상기 선호도에 기초하여 상기 요청기에 대한 소스를 선택하는 단계를 포함하는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 및 제 2 소스들을 식별하는 단계를 더 포함하는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  3. 제 1 항에 있어서,
    상기 제 1 및 제 2 식별자들을 상기 요청기에게 제공하는 단계를 더 포함하는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 전송 품질 인자를 결정하는 단계는 복수의 테스트들을 수행하는 단계를 포함하는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  5. 제 4 항에 있어서,
    제 1 전송 품질 인자를 결정하기 위해 상기 복수의 테스트들을 가중하도록 가중 함수를 사용하는 단계를 더 포함하는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  6. 제 5 항에 있어서,
    상기 가중 함수는 사용자에 의해 규정되는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  7. 제 1 항에 있어서,
    상기 선택된 소스는 전송 노드이고,
    상기 전송 노드는 원 소스(originating source)로부터 전송되어 상기 요청기에게 가용화되는 콘텐트 오브젝트를 포함하는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  8. 제 1 항에 있어서,
    상기 선호도를 사용자에게 디스플레이하는 단계를 더 포함하는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  9. 요청기가 콘텐트 오브젝트 소스의 선택을 안내하도록 하는 방법에 있어서,
    제 1 및 제 2 소스를 식별하는 단계로서, 상기 제 1 소스는 클라이언트의 콘텐트 오브젝트를 위한 초기 요구에 응답하여 원 소스로부터 상기 콘텐트 오브젝트를 요청할 수 있는, 상기 식별 단계;
    상기 요청기와 상기 제 1 소스 사이, 및 상기 요청기와 상기 제 2 소스 사이의 전송 품질을 분석하는 단계;
    상기 분석된 전송 품질들에 기초하여 상기 제 1 및 상기 제 2 소스들을 순위 매기는 단계; 및
    상기 콘텐트 오브젝트 소스의 선택을 안내하기 위해 상기 순위를 사용하는 단계를 포함하고,
    상기 선택된 콘텐트 오브젝트 소스는 상기 제 1 소스, 상기 제 2 소스, 또는 제 3 소스 중 하나인, 요청기가 콘텐트 오브젝트 소스의 선택을 안내하도록 하는 방법.
  10. 제 9 항에 있어서,
    상기 순위를 사용하는 단계는,
    상기 순위를 선택기에게 전송하고, 상기 선택기가 상기 순위에 부분적으로 기초하여 상기 콘텐트 오브젝트 소스를 선택하며, 상기 선택기가 상기 선택된 콘텐트 오브젝트 소스를 상기 요청기에게 지시하는 단계를 포함하는, 요청기가 콘텐트 오브젝트 소스의 선택을 안내하도록 하는 방법.
  11. 제 9 항에 있어서,
    상기 전송 품질을 분석하는 단계는 복수의 테스트들을 수행하는 것을 포함하는, 요청기가 콘텐트 오브젝트 소스의 선택을 안내하도록 하는 방법.
  12. 제 9 항에 있어서,
    상기 전송 품질을 분석하는 단계는 트레이스라우트(traceroute), 파일 전송을 통한 테스트, 서버 자체 검사, 서버 부하 검사, 핑(ping), 경로차(path difference), BGP 라우팅 정보, 이동율(churn rate) 또는 포트 응답 시간 중 적어도 하나를 수행하는 것을 포함하는, 요청기가 콘텐트 오브젝트 소스의 선택을 안내하도록 하는 방법.
  13. 제 9 항에 있어서,
    상기 선택된 콘텐트 오브젝트 소스로부터 콘텐트 오브젝트를 요청하는 단계; 및
    상기 콘텐트 오브젝트를 수신하는 단계를 더 포함하는, 요청기가 콘텐트 오브젝트 소스의 선택을 안내하도록 하는 방법.
  14. 제 13 항에 있어서,
    상기 콘텐트 오브젝트를 수신하는 단계는 상기 콘텐트 오브젝트의 일부를 프리패치(pre-fetching)하는 단계를 포함하는, 요청기가 콘텐트 오브젝트 소스의 선택을 안내하도록 하는 방법.
  15. 제 13 항에 있어서,
    상기 콘텐트 오브젝트를 수신하는 단계는 상기 콘텐트 오브젝트의 압축해제, 상기 콘텐트 오브젝트의 복호화, 또는 상기 콘텐트 오브젝트의 보안 검사 수행 중 적어도 하나를 포함하는, 요청기가 콘텐트 오브젝트 소스의 선택을 안내하도록 하는 방법.
  16. 전송 노드를 통해 콘텐트 오브젝트 소스로부터 클라이언트로 콘텐트 오브젝트를 공급하는 방법으로서, 상기 전송 노드의 선택이 클라이언트 선호도에 의해 영향을 받는, 상기 방법에 있어서,
    상기 클라이언트에 대해 제 1 및 제 2 전송 노드를 식별하는 단계;
    상기 클라이언트에 의해 상기 제 1 및 제 2 전송 노드들을 순위 매기는 단계로서, 상기 순위는 클라이언트 선호도를 형성하고 상기 제 1 및 제 2 전송 노드들의 이동률(churn rate)에 적어도 부분적으로 기초하는, 상기 순위 매김 단계;
    상기 클라이언트 선호도에 기초하여 상기 제 1 또는 제 2 전송 노드들 중 하나를 선택하는 단계; 및
    상기 선택된 전송 노드로부터 콘텐트 오브젝트의 전송을 요청하는 단계를 포함하는, 전송 노드를 통해 콘텐트 오브젝트 소스로부터 클라이언트로 콘텐트 오브젝트를 공급하는 방법.
  17. 제 16 항에 있어서,
    상기 클라이언트 선호도는 상기 클라이언트와 상기 제 1 전송 노드 사이, 및 상기 클라이언트와 상기 제 2 전송 노드 사이의 전송 품질 분석에 의해 생성되는, 전송 노드를 통해 콘텐트 오브젝트 소스로부터 클라이언트로 콘텐트 오브젝트를 공급하는 방법.
  18. 제 17 항에 있어서,
    상기 전송 품질 분석은 적어도 두 개의 테스트들을 수행하는 것을 포함하는, 전송 노드를 통해 콘텐트 오브젝트 소스로부터 클라이언트로 콘텐트 오브젝트를 공급하는 방법.
  19. 제 16 항에 있어서,
    상기 선택된 전송 노드는 상기 콘텐트 오브젝트 소스인, 전송 노드를 통해 콘텐트 오브젝트 소스로부터 클라이언트로 콘텐트 오브젝트를 공급하는 방법.
  20. 제 16 항에 있어서,
    상기 제 1 또는 제 2 전송 노드들 중 하나를 선택하는 단계는 제 3 전송 노드에 의해 이루어지는, 전송 노드를 통해 콘텐트 오브젝트 소스로부터 클라이언트로 콘텐트 오브젝트를 공급하는 방법.
  21. 제 1 항에 있어서,
    상기 제 1 전송 품질 인자는 발신자(originator)로부터 콘텐트 오브젝트를 수신하기 위한 상기 제 1 소스의 능력을 포함하는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  22. 제 1 항에 있어서,
    상기 제 1 전송 품질 인자는 콘텐트 오브젝트가 상기 제 1 소스에 잔류하는 평균 시간을 포함하는, 요청기와 선택기를 포함하는 콘텐트 배포 시스템상에서 전송 품질을 향상시키는 방법.
  23. 제 9 항에 있어서,
    상기 전송 품질의 분석 단계는, 이동율(churn rate)을 분석하고 트레이스라우트, 파일 전송을 통한 테스트, 서버 자체 검사, 서버 부하 검사, 핑, 경로차, BGP 라우팅 정보, 또는 포트 응답 시간 중 적어도 하나를 수행하는 것을 포함하는, 요청기가 콘텐트 오브젝트 소스의 선택을 안내하도록 하는 방법.
  24. 삭제
KR1020027016436A 2000-06-01 2001-06-01 뷰어 오브젝트 프록시 KR101034983B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US20900700P 2000-06-01 2000-06-01
US60/209,007 2000-06-01
US09/664,148 2000-09-18
US09/664,148 US6879998B1 (en) 2000-06-01 2000-09-18 Viewer object proxy
PCT/US2001/017801 WO2001093109A2 (en) 2000-06-01 2001-06-01 Viewer object proxy

Publications (2)

Publication Number Publication Date
KR20030060777A KR20030060777A (ko) 2003-07-16
KR101034983B1 true KR101034983B1 (ko) 2011-05-17

Family

ID=26903731

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027016436A KR101034983B1 (ko) 2000-06-01 2001-06-01 뷰어 오브젝트 프록시

Country Status (9)

Country Link
US (2) US6879998B1 (ko)
EP (1) EP1287661A2 (ko)
JP (1) JP2004501559A (ko)
KR (1) KR101034983B1 (ko)
CN (1) CN1444817A (ko)
AR (1) AR028125A1 (ko)
AU (1) AU2001268140A1 (ko)
CA (1) CA2413943C (ko)
WO (1) WO2001093109A2 (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721780B1 (en) * 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
US6879998B1 (en) * 2000-06-01 2005-04-12 Aerocast.Com, Inc. Viewer object proxy
US6742020B1 (en) * 2000-06-08 2004-05-25 Hewlett-Packard Development Company, L.P. System and method for managing data flow and measuring service in a storage network
US7111057B1 (en) * 2000-10-31 2006-09-19 Akamai Technologies, Inc. Method and system for purging content from a content delivery network
US7185063B1 (en) * 2001-06-22 2007-02-27 Digital River, Inc. Content delivery network using differential caching
US7092997B1 (en) * 2001-08-06 2006-08-15 Digital River, Inc. Template identification with differential caching
US8122118B2 (en) * 2001-12-14 2012-02-21 International Business Machines Corporation Selection of communication protocol for message transfer based on quality of service requirements
US7764617B2 (en) * 2002-04-29 2010-07-27 Harris Corporation Mobile ad-hoc network and methods for performing functions therein based upon weighted quality of service metrics
US20030208610A1 (en) * 2002-05-01 2003-11-06 Rochetti Robert J. Method and apparatus for facilitating content distribution across a network
US7490148B1 (en) 2002-05-30 2009-02-10 At&T Intellectual Property I, L.P. Completion performance analysis for internet services
US8266270B1 (en) 2002-07-16 2012-09-11 At&T Intellectual Property I, L.P. Delivery performance analysis for internet services
US7028053B2 (en) * 2003-01-16 2006-04-11 Xerox Corporation Apparatus and methods for accessing a collection of content portions
KR20050026673A (ko) * 2003-09-09 2005-03-15 삼성전자주식회사 네트워크를 통한 컨텐츠 다운로드 시스템
US7650593B2 (en) * 2004-03-25 2010-01-19 Microsoft Corporation Proxy objects for display
US7584220B2 (en) 2004-10-01 2009-09-01 Microsoft Corporation System and method for determining target failback and target priority for a distributed file system
EP1686738A1 (en) * 2005-01-31 2006-08-02 Siemens S.p.A. Method and system for QoS management in multicast multimedia services, related network, terminal for use in that network and computer program product therefor
US20060282884A1 (en) * 2005-06-09 2006-12-14 Ori Pomerantz Method and apparatus for using a proxy to manage confidential information
WO2007002196A2 (en) * 2005-06-21 2007-01-04 Corestreet, Ltd. Preventing identity theft
WO2007022327A2 (en) * 2005-08-15 2007-02-22 Alcatel Lucent Bandwidth rate controlled content download functionality
US8396938B2 (en) * 2005-09-15 2013-03-12 Emc Corporation Providing direct access to distributed managed content
US8082334B1 (en) 2005-09-15 2011-12-20 Emc Corporation Providing direct access to managed content
US8447827B2 (en) * 2005-09-15 2013-05-21 Emc Corporation Providing local access to managed content
US8103282B2 (en) 2005-09-28 2012-01-24 Avaya Inc. Methods and apparatus for allocating resources in a distributed environment based on network assessment
US20070112938A1 (en) * 2005-11-17 2007-05-17 Nokia Corporation Intermediary, source and methods for sharing content
US20090125958A1 (en) 2005-11-23 2009-05-14 Pak Siripunkaw Method of upgrading a platform in a subscriber gateway device
WO2007092245A2 (en) * 2006-02-03 2007-08-16 Interdigital Technology Corporation Quality of service based resource determination and allocation apparatus and procedure in high speed packet access evolution and long term evolution systems
JP2007280303A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
US8676882B2 (en) * 2007-02-27 2014-03-18 Sony Corporation System and method for preloading content segments to client devices in an electronic network
US8392594B2 (en) * 2007-01-30 2013-03-05 Sony Corporation System and method for effectively providing content to client devices in an electronic network
US8216221B2 (en) 2007-05-21 2012-07-10 Estech, Inc. Cardiac ablation systems and methods
US8307114B2 (en) 2007-05-22 2012-11-06 International Business Machines Corporation High availability message transmission
US8543700B1 (en) 2007-06-28 2013-09-24 Emc Corporation Asynchronous content transfer
KR101512321B1 (ko) * 2007-08-22 2015-04-16 삼성전자주식회사 복수의 서비스 제공자의 서비스를 제공/수신하기 위한 방법및 장치
US20090063978A1 (en) * 2007-09-05 2009-03-05 Sony Corporation Network status icon in navigable toolbar
US8108911B2 (en) 2007-11-01 2012-01-31 Comcast Cable Holdings, Llc Method and system for directing user between captive and open domains
US9313108B2 (en) * 2007-12-14 2016-04-12 Ericsson Ab Flexible and scalable method and apparatus for dynamic subscriber services configuration and management
US8275859B2 (en) * 2009-03-31 2012-09-25 International Business Machines Corporation Selective partial updates of web content
JPWO2011024930A1 (ja) * 2009-08-24 2013-01-31 日本電気株式会社 コンテンツ配信システム、コンテンツ配信方法及びコンテンツ配信用プログラム
US9420250B2 (en) 2009-10-07 2016-08-16 Robert Laganiere Video analytics method and system
US20110109742A1 (en) * 2009-10-07 2011-05-12 Robert Laganiere Broker mediated video analytics method and system
WO2011041903A1 (en) 2009-10-07 2011-04-14 Telewatch Inc. Video analytics with pre-processing at the source end
CN102075338B (zh) * 2009-11-25 2015-05-13 突触计算机系统(上海)有限公司 基于分布式网络的直播方法和装置
US9143739B2 (en) 2010-05-07 2015-09-22 Iwatchlife, Inc. Video analytics with burst-like transmission of video data
CA2748059A1 (en) 2010-08-04 2012-02-04 Iwatchlife Inc. Method and system for initiating communication via a communication network
US8780162B2 (en) 2010-08-04 2014-07-15 Iwatchlife Inc. Method and system for locating an individual
US8860771B2 (en) 2010-08-04 2014-10-14 Iwatchlife, Inc. Method and system for making video calls
US20120036262A1 (en) * 2010-08-05 2012-02-09 Murphy William A System and method of resource replication delivery to multiple local destinations
US9015343B2 (en) 2010-11-23 2015-04-21 Centurylink Intellectual Property Llc User control over content delivery
US9712891B2 (en) 2011-11-01 2017-07-18 Nokia Technologies Oy Method and apparatus for selecting an access method for delivery of media
US9013996B2 (en) 2012-05-16 2015-04-21 Centurylink Intellectual Property Llc Customer configuration of broadband services
CA2822217A1 (en) 2012-08-02 2014-02-02 Iwatchlife Inc. Method and system for anonymous video analytics processing
US20150112961A1 (en) * 2012-09-18 2015-04-23 Google Inc. User Submission of Search Related Structured Data
US20150271072A1 (en) * 2014-03-24 2015-09-24 Cisco Technology, Inc. Method and apparatus for rate controlled content streaming from cache

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060006264A1 (en) * 2004-07-08 2006-01-12 Sabourin Marc J Energy efficient TMP refining of destructured chips

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5862335A (en) 1993-04-01 1999-01-19 Intel Corp. Method and apparatus for monitoring file transfers and logical connections in a computer network
US5977966A (en) 1993-04-28 1999-11-02 Microsoft Corporation System-provided window elements having adjustable dimensions
US6185619B1 (en) 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
WO1996017306A2 (en) 1994-11-21 1996-06-06 Oracle Corporation Media server
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
EP0830774B1 (en) 1995-06-07 2004-10-06 divine technology ventures Internet server access control and monitoring systems
US5991811A (en) * 1995-09-04 1999-11-23 Kabushiki Kaisha Toshiba Information transmission system utilizing both real-time data transmitted in a normal-in-time direction and in a retrospective-in-time direction
US6029175A (en) * 1995-10-26 2000-02-22 Teknowledge Corporation Automatic retrieval of changed files by a network software agent
JP3612125B2 (ja) * 1995-12-14 2005-01-19 株式会社東芝 情報フィルタリング方法および情報フィルタリング装置
US6098078A (en) * 1995-12-29 2000-08-01 Lucent Technologies Inc. Maintaining consistency of database replicas
US5855020A (en) * 1996-02-21 1998-12-29 Infoseek Corporation Web scan process
US5995099A (en) * 1996-06-10 1999-11-30 Horstmann; Jens U. Method for creating and maintaining page links
US5761436A (en) * 1996-07-01 1998-06-02 Sun Microsystems, Inc. Method and apparatus for combining truncated hyperlinks to form a hyperlink aggregate
US5870557A (en) 1996-07-15 1999-02-09 At&T Corp Method for determining and reporting a level of network activity on a communications network using a routing analyzer and advisor
US5751283A (en) * 1996-07-17 1998-05-12 Microsoft Corporation Resizing a window and an object on a display screen
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
AU714865B2 (en) * 1996-10-18 2000-01-13 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
US5787470A (en) 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance
US6101180A (en) 1996-11-12 2000-08-08 Starguide Digital Networks, Inc. High bandwidth broadcast system having localized multicast access to broadcast content
US6023698A (en) * 1996-12-05 2000-02-08 International Business Machines Corporation System and method for transparently registering and updating information over the internet
US6098096A (en) 1996-12-09 2000-08-01 Sun Microsystems, Inc. Method and apparatus for dynamic cache preloading across a network
US6052718A (en) * 1997-01-07 2000-04-18 Sightpath, Inc Replica routing
US6021118A (en) * 1997-02-10 2000-02-01 Lucent Techologies Inc. Synchronization methods for distributed processing systems having replicated data
SE9700622D0 (sv) 1997-02-21 1997-02-21 Ericsson Telefon Ab L M Anordning och metod vid datanät
US6345303B1 (en) * 1997-03-25 2002-02-05 Intel Corporation Network proxy capable of dynamically selecting a destination device for servicing a client request
US6055570A (en) 1997-04-03 2000-04-25 Sun Microsystems, Inc. Subscribed update monitors
US6038599A (en) 1997-04-23 2000-03-14 Mpath Interactive, Inc. Latency server and matchmaker
US5944780A (en) * 1997-05-05 1999-08-31 At&T Corp Network with shared caching
US6167438A (en) 1997-05-22 2000-12-26 Trustees Of Boston University Method and system for distributed caching, prefetching and replication
US6209036B1 (en) * 1997-06-06 2001-03-27 International Business Machines Corporation Management of and access to information and other material via the world wide web in an LDAP environment
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
US6061686A (en) * 1997-06-26 2000-05-09 Digital Equipment Corporation Updating a copy of a remote document stored in a local computer system
WO1999003047A1 (en) 1997-07-11 1999-01-21 Earle Machardy Content hosting environment system and cache mechanism
US5886694A (en) * 1997-07-14 1999-03-23 Microsoft Corporation Method for automatically laying out controls in a dialog window
SE510048C3 (sv) 1997-07-24 1999-05-03 Mirror Image Internet Ab Internet caching system
US5944783A (en) * 1997-07-29 1999-08-31 Lincom Corporation Apparatus and method for data transfers through software agents using client-to-server and peer-to-peer transfers
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6003045A (en) 1997-09-17 1999-12-14 International Business Machines Corporation Accessing stored files from multiple storage devices
US6134588A (en) 1997-11-12 2000-10-17 International Business Machines Corporation High availability web browser access to servers
US6108710A (en) 1997-11-26 2000-08-22 International Business Machine Corp. Method and apparatus for optimizing route generation in a connection oriented network
US6157950A (en) 1997-12-05 2000-12-05 Encanto Networks, Inc. Methods and apparatus for interfacing a computer or small network to a wide area network such as the internet
JP3983976B2 (ja) 1997-12-17 2007-09-26 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 移動可能なデータのルート設定
US6065017A (en) * 1997-12-31 2000-05-16 Novell, Inc. Apparatus and method for identifying and recovering from database errors
US6321242B1 (en) * 1998-02-06 2001-11-20 Sun Microsystems, Inc. Re-linking technology for a moving web site
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6065012A (en) * 1998-02-27 2000-05-16 Microsoft Corporation System and method for displaying and manipulating user-relevant data
US6029200A (en) * 1998-03-09 2000-02-22 Microsoft Corporation Automatic protocol rollover in streaming multimedia data delivery system
US6175869B1 (en) * 1998-04-08 2001-01-16 Lucent Technologies Inc. Client-side techniques for web server allocation
US6311216B1 (en) 1998-05-29 2001-10-30 Microsoft Corporation Method, computer program product, and system for client-side deterministic routing and URL lookup into a distributed cache of URLS
US6216123B1 (en) * 1998-06-24 2001-04-10 Novell, Inc. Method and system for rapid retrieval in a full text indexing system
US6178460B1 (en) 1998-06-30 2001-01-23 International Business Machines Corporation Method of efficiently retrieving data on a computer network by monitoring performance of mirrored network locations
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6335743B1 (en) * 1998-08-11 2002-01-01 International Business Machines Corporation Method and system for providing a resize layout allowing flexible placement and sizing of controls
JP2002524945A (ja) 1998-08-31 2002-08-06 アデロ, インコーポレイテッド コンピュータネットワークにおける負荷管理の方法と装置
SE514376C2 (sv) 1998-09-24 2001-02-19 Mirror Image Internet Inc Ett internet-cachningssystem samt ett förfarande och anordning i ett sådant system
US6236999B1 (en) 1998-11-05 2001-05-22 Bea Systems, Inc. Duplicated naming service in a distributed processing system
US6330605B1 (en) 1998-11-19 2001-12-11 Volera, Inc. Proxy cache cluster
US6389462B1 (en) 1998-12-16 2002-05-14 Lucent Technologies Inc. Method and apparatus for transparently directing requests for web objects to proxy caches
US6304909B1 (en) * 1998-12-18 2001-10-16 International Business Machines Corporation Client-controlled link processing in computer network
US6393458B1 (en) * 1999-01-28 2002-05-21 Genrad, Inc. Method and apparatus for load balancing in a distributed object architecture
US6539381B1 (en) * 1999-04-21 2003-03-25 Novell, Inc. System and method for synchronizing database information
US6286006B1 (en) * 1999-05-07 2001-09-04 Alta Vista Company Method and apparatus for finding mirrored hosts by analyzing urls
WO2000073922A2 (en) 1999-06-01 2000-12-07 Cacheflow, Inc. Content delivery system
US6542964B1 (en) 1999-06-02 2003-04-01 Blue Coat Systems Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server
US6477522B1 (en) 1999-06-10 2002-11-05 Gateway, Inc. Dynamic performance based server selection
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US6606657B1 (en) * 1999-06-22 2003-08-12 Comverse, Ltd. System and method for processing and presenting internet usage information
US6546421B1 (en) * 1999-06-30 2003-04-08 Siemens Corporate Research, Inc. System and method for automatic selection of internet data streams
US7159183B1 (en) * 1999-08-19 2007-01-02 National Instruments Corporation System and method for programmatically creating a graphical program
US6370541B1 (en) 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US6516337B1 (en) * 1999-10-14 2003-02-04 Arcessa, Inc. Sending to a central indexing site meta data or signatures from objects on a computer network
US6418452B1 (en) * 1999-11-03 2002-07-09 International Business Machines Corporation Network repository service directory for efficient web crawling
US6546387B1 (en) * 1999-11-15 2003-04-08 Transcom Software Inc. Computer network information management system and method using intelligent software agents
US6366907B1 (en) * 1999-12-15 2002-04-02 Napster, Inc. Real-time search engine
US6473749B1 (en) * 2000-02-22 2002-10-29 Robert Scott Smith System and method for managing file content
US7386614B2 (en) * 2000-05-19 2008-06-10 Treetop Ventures Llc Method allowing persistent links to web-pages
US6879998B1 (en) * 2000-06-01 2005-04-12 Aerocast.Com, Inc. Viewer object proxy
US6850982B1 (en) * 2000-12-19 2005-02-01 Cisco Technology, Inc. Methods and apparatus for directing a flow of data between a client and multiple servers
US8121071B2 (en) * 2005-11-10 2012-02-21 Sierra Wireless America, Inc. Gateway network multiplexing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060006264A1 (en) * 2004-07-08 2006-01-12 Sabourin Marc J Energy efficient TMP refining of destructured chips

Also Published As

Publication number Publication date
AU2001268140A1 (en) 2001-12-11
US7747772B2 (en) 2010-06-29
US20050160154A1 (en) 2005-07-21
US6879998B1 (en) 2005-04-12
WO2001093109A2 (en) 2001-12-06
CN1444817A (zh) 2003-09-24
WO2001093109B1 (en) 2002-05-23
WO2001093109A3 (en) 2002-04-18
JP2004501559A (ja) 2004-01-15
AR028125A1 (es) 2003-04-23
CA2413943C (en) 2011-11-01
EP1287661A2 (en) 2003-03-05
CA2413943A1 (en) 2001-12-06
KR20030060777A (ko) 2003-07-16

Similar Documents

Publication Publication Date Title
KR101034983B1 (ko) 뷰어 오브젝트 프록시
US6658000B1 (en) Selective routing
CA2413956C (en) Active directory for content objects
KR20030022810A (ko) 리버스 콘텐트 하비스터
KR20030026932A (ko) Qos 기반 콘텐트 배포 네트워크
KR20030022809A (ko) 자기-공개 네트워크 디렉토리
KR20030022805A (ko) 콘텐트 추적
KR20030076224A (ko) 클라이언트측의 전체적인 상태 체크
KR20030022807A (ko) 콘텐트 오브젝트들을 위한 액티브 디렉토리
KR20030022804A (ko) 콘텐트 매니저
KR20030051431A (ko) 클라이언트측 어드레스 라우팅 분석 방법
KR20030022808A (ko) 클라이언트측 결정 라우팅 및 투명한 재안내

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
S901 Examination by remand of revocation
E902 Notification of reason for refusal
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150427

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160426

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170426

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee