KR20060017798A - 스트리밍 미디어 서비스 관리 방법 - Google Patents

스트리밍 미디어 서비스 관리 방법 Download PDF

Info

Publication number
KR20060017798A
KR20060017798A KR1020057022066A KR20057022066A KR20060017798A KR 20060017798 A KR20060017798 A KR 20060017798A KR 1020057022066 A KR1020057022066 A KR 1020057022066A KR 20057022066 A KR20057022066 A KR 20057022066A KR 20060017798 A KR20060017798 A KR 20060017798A
Authority
KR
South Korea
Prior art keywords
service
service location
location manager
managers
streaming media
Prior art date
Application number
KR1020057022066A
Other languages
English (en)
Other versions
KR100671635B1 (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 KR20060017798A publication Critical patent/KR20060017798A/ko
Application granted granted Critical
Publication of KR100671635B1 publication Critical patent/KR100671635B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5058Service discovery by the service manager
    • 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/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • 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/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • 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/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • 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/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • 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/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/508Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
    • H04L41/509Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to media content delivery, e.g. audio, video or TV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

본 발명의 일 실시예는 스트리밍 미디어 서비스를 관리하는 방법(300)을 포함한다. 이 방법은 클라이언트(150)로부터 스트리밍 미디어 서비스를 위한 요청을 수신하는 단계(302)를 포함한다. 스트리밍 미디어 서비스 요소를 포함한다. 또한, 이 방법은 요청을 제공하는 서비스 위치 관리자(120)를 복수의 서비스 위치 관리자(120, 122)로부터 선택하는 단계(304)를 포함한다. 또한, 이 방법은, 미디어 서비스 요소를 할당하는 서비스 제공자를 네트워크의 복수의 서비스 제공자(130, 132, 134, 136)로부터 선택하는 단계(306)를 포함한다. 또한, 이 방법은, 미디어 서비스 요소를 수행하기 위해, 서비스 제공자(130)에게 할당을 통지하여, 서비스 제공자가 스트리밍 미디어에 대한 스트리밍 미디어 서비스를 수행할 준비를 하게 하는 단계(308)를 포함한다.

Description

스트리밍 미디어 서비스 관리 방법{SERVICE MANAGEMENT USING MULTIPLE SERVICE LOCATION MANAGERS}
관련 미국 출원
본 출원은, 본 출원의 양수인에게 양도되었으며 그 전체가 본 명세서에서 참조로서 인용된 "스트리밍 미디어 서비스의 분배 및 관리를 위한 아키텍처{Architecture for Distributing and Managing Streaming Media Services}"라는 명칭의 계류 중인 임시 특허 출원 번호 제 60/471,851호( 2003년 5월 19일 출원)(대리인 정리 번호 200312253-1.PRO)에 대한 우선권을 주장하고 있다.
본 발명의 실시예는 네트워크를 통한 콘텐츠의 서비싱(servicing) 및 전송에 관한 것이다.
클라이언트 디바이스가 잡음 감소와 같은 소정의 처리가 이루어진 요청된 미디어 파일의 전달을 요청할 수 있는 네트워크가 존재한다. 일단 미디어 전달 및 처리에 대한 요청이 서버에 의해 수신되면, 미디어 파일은 검색되어 요청된 처리가 그 미디어 파일에 대해 서버에 의해 수행된다. 일단 처리가 완전히 행해지면, 서 버는 처리된 미디어 파일의 스트리밍 전달을 클라이언트 디바이스에 제공한다. 그러나, 이러한 타입의 시스템에 관련된 단점이 있다.
예를 들어, 서버가 미디어 파일을 처리하여 상이한 요청 클라이언트 디바이스로 스트리밍하기 위한 많은 개별적인 요청들을 처리하고자 하는 경우, 클라이언트 디바이스의 사용자는 잠시 동안 대기해야 한다는 것은 단점 중의 하나이다. 또한, 스트리밍 미디어 파일은 매우 클 수 있고, 스트리밍 전송의 시작 이전에 콘텐츠에 대한 요청된 처리를 완료하는 데 오랜 시간이 걸릴 수 있다. 이것은, 특히, 클라이언트 디바이스 사용자가 기한 이전에 무엇인가를 완료하고자 할 때, 클라이언트 디바이스 사용자를 실망시킬 수 있다.
이러한 이유 및 그 밖의 이유로, 본 발명이 필요하다.
본 발명의 일 실시예는 스트리밍 미디어 서비스를 관리하는 방법을 포함한다. 이 방법은 클라이언트로부터 스트리밍 미디어 서비스를 위한 요청을 수신하는 단계를 포함한다. 스트리밍 미디어 서비스 요소를 포함한다. 또한, 이 방법은 요청을 제공하는 서비스 위치 관리자를 복수의 서비스 위치 관리자로부터 선택하는 단계를 포함한다. 또한, 이 방법은, 미디어 서비스 요소를 할당하는 서비스 제공자를 네트워크의 복수의 서비스 제공자로부터 선택하는 단계를 포함한다. 또한, 이 방법은, 미디어 서비스 요소를 수행하기 위해, 서비스 제공자에게 할당을 통지하여, 서비스 제공자가 스트리밍 미디어에 대한 스트리밍 미디어 서비스를 수행할 준비를 하게 하는 단계를 포함한다.
도 1은, 본 발명의 하나의 실시예에 따른, 클라이언트 디바이스에 콘텐츠를 서비스하고 전송하는 시스템의 내외부에서의 정보 흐름을 나타내는 블록도이다.
도 2는, 본 발명의 하나의 실시예에 따른, 콘텐츠의 서비스하는 시스템의 블록도이다.
도 3은, 본 발명의 하나의 실시예에 따라 실행되는, 스트리밍 미디어 서비스를 관리하기 위한 동작의 순서도이다.
아래에, 본 발명의 실시예들을 도면을 참조하여 상세하게 설명한다. 본 발명은 그 실시예들과 관련하여 설명할 것이지만, 본 발명을 그 실시예들로 한정하는 것은 아니다. 오히려, 본 발명은 청구범위에 규정되어 있는 바와 같은 본 발명의 정신 및 범위 내에 포함되는 대안, 변형, 및 등가를 포함한다. 또한, 본 발명에 관한 다음의 설명에 있어서, 본 발명에 대하여 충분히 이해할 수 있도록, 많은 세부들을 상세히 설명한다. 그러나, 당업자라면, 이러한 특정 상세 없이도 본 발명이 실시될 수 있음을 알 수 있을 것이다. 다른 예에서는, 본 발명의 양상을 분명히 하기 위해서, 잘 알려져 있는 방법, 절차, 구성요소, 및 회로들을 자세히 설명하지 않았다.
후속하는 상세한 설명 중 일부는, 절차, 논리 블록, 처리, 및 컴퓨팅 시스템이나 디지털 시스템 메모리 내의 데이터 비트들에 대한 동작의 기타 상징적 표현들에 관하여 주어진다. 이들 설명들 및 표현들은 데이터 처리 분야의 당업자들이 동일 분야의 다른 당업자들에게 자신의 업무 내용을 가장 효과적으로 전달하기 위해 사용되는 수단이다. 여기서 절차, 논리 블록, 처리 등은 일반적으로 원하는 결과를 얻기 위한 일관된 일련의 동작 및 명령일 수 있다. 이 일련의 동작은 물리량들의 물리적 조작을 포함할 수 있다. 통상, 필요하지 않더라고, 이러한 물리적 조작은 저장, 전송, 결합, 비교될 수 있는, 또는 컴퓨팅 시스템이나 유사 전자 컴퓨팅 디바이스에서 조작될 수 있는 전기 또는 자기 신호들의 형태를 취한다. 편의상, 통상의 용법을 참조하여, 상기 신호들은, 비트, 값, 소자, 심벌, 문자, 용어, 숫자 등으로서 본 발명에 참조될 수 있다.
그러나, 이러한 모든 용어들은 물리적 조작 및 양을 참조함으로써 해석되고 단지 편의상의 라벨(label)이고, 더욱이 본 기술 분야에서는 공통적으로 사용되는 용어들의 관점에서 해석된다. 다음의 논의로부터 분명해지는 같이 구체적으로 달리 규정되지 않는 한, 본 발명의 전체 논의에서, 수신, 선택, 보고, 통지, 유지, 감독, 실행, 방향 전환, 평가, 업데이트, 송신, 전송, 결정, 적용, 처리, 확인, 제공, 인식, 생성, 이용, 제거, 배제, 삭제, 구현, 저장 등의 용어들은, 데이터를 조작하거나 변형하는 컴퓨팅 시스템이나 유사 전자 컴퓨팅 디바이스의 동작이나 처리를 말한다. 데이터는 컴퓨팅 시스템의 레지스터들 및 메모리들 내에서의 물리량으로서 표현되며, 컴퓨팅 시스템의 메모리나 레지스터, 또는 그와 같은 정보 저장, 전송, 또는 디스플레이 디바이스 내에서의 물리량으로서 유사하게 표현되는 다른 데이터로 변형된다.
도 1은 콘텐츠 소스(110)로부터의 콘텐츠를 서비스하고 그 결과를 클라이언트 디바이스(150)에 전송하는, 본 발명의 하나의 실시예에 따른 시스템(100)의 블록도이다. 구체적으로는, 우선, 클라이언트 디바이스(150)가 서비스 콘텐츠 시스템(예를 들어, 포털(140))을 탐색한다. 그 클라이언트 디바이스(150)는 서비스 공급자(130) 등의 서비스 공급자를 향하게 된다. 그 콘텐츠 디바이스는 그 서비스 공급자를 통해서 콘텐츠 소스(예를 들어, 콘텐츠 소스(110))로부터의 콘텐츠를 수신한다. 따라서, 본 실시예에서는, 시스템(100)은 콘텐츠 소스로부터 클라이언트 디바이스로 스트리밍 미디어(streaming media)를 위한 것이다.
본 애플리케이션을 위해서, 여기서 사용되는 것과 같은 스트리밍 미디어는 네트워크 노드(node)들 사이에서 연속적으로 전달되는 데이터를 의미한다. 스트리밍 미디어의 예로서는, 엄격한 전송 시간 제약이 있을 수 있는 스트리밍 오디오 및 비디오가 있다. 이 예들에서는, 스트림의 일부가 너무 늦게 전송되면, 그 부분은 지연으로 인해 무시될 것이다(그 일부는 너무 지연되었기 때문에 클라이언트 애플리케이션에 의해서 재생되고 있는 것에 영향을 미치지 못하고, 따라서 별 쓸모가 없다). 한편, 스트림의 일부가 너무 일찍 전송되면, 그 서비스 또는 클라이언트 애플리케이션 내에서 버퍼의 제약으로 인하여 그 일부가 손실될 것이다. 연속적으로 전송되는 데이터의 다른 예로서는, 측정 결과들의 스트림이나 실험 결과들의 스트림이 있다. 이러한 스트림들은 원격 센서로부터의 기상 수치들이나 냉각 시스템 으로부터의 온도 수치들을 포함한다. 이 예들에서는, 엄격한 전송 시간 제약은 없지만, 그 데이터 전송이 심리스(seamless)하게 진행 중인 전송에 의해서 가장 잘 서비스되는 일시적 성분을 갖는다.
이와 같이, 스트리밍 미디어를 사용함으로써, 서비스 배치는 네트워크 노드와 서버 노드의 모든 리소스들에 대하여 장시간 영향을 미친다. 예를 들어, 스트리밍 조건 하에서 시청용 영화를 트랜스코딩(transcoding)하는 데 있어서, 데이터는 두 시간 정도의 분량일 것이므로 트랜스코딩 세션은 두 시간 정도의 서버 타임 분량일 것이다. 다른 종류의 스트리밍 미디어(예를 들어, 계기 수치들)에 대해서는, 스트림 및 그 스트림 상에서 행해지고 있는 서비스가 영원히 지속될 수 있다. 서버 노드의 계산 리소스들은 지속 시간이 확정되지 않은 채 긴 기간 동안 영향을 받는다. 마찬가지로, 서버와 콘텐츠 공급자 및 서버와 클라이언트 머신(client machine) 간의 모든 링크들 상에 있는 서버 노드의 네트워크 리소스들도 지속 시간이 확정되지 않은 채 긴 기간 동안 영향을 받는다. 이는, 데이터 전송이 블록 단위로 수초나 수 분 이내에서 종종 행해지고 그 데이터 상에서 실행되는 서비스가 제한된 지속 기간을 갖는 보다 전형적인 네트워크 트랜잭션(transaction)과는 크게 다르다.
스트리밍 미디어를 다루는 하나의 실시예에서는, 고려해야 할 다음 몇 가지 문제들이 있다. 즉, 웹 기반 분배, 웹 기방 비즈니스 트랜잭션 및 다운로드 중 적어도 하나와 비교하여, 스트리밍 미디어는 취급되어야 할 다음의 특징들:
방대한 양의 데이터-데이터의 엔드 포인트(end point)는 알려지지 않을 수 있고 콘텐츠 아이템의 수의 캐싱(cashing)은 주요 메모리 리소스들을 소비할 수 있음;
시순차적(time-ordered) 데이터-데이터가 수신되는 시간적 순서가 중요할 수 있음;
액세스가 끝까지 계속 실행되지 않을 수 있음-예를 들어, 콘텐츠 아이템의 일부(예를 들어, 표준길이의 영화의 최초 몇 분)만이 액세스될 수 있음;
대상 미디어에 대한 어느 정도의 이해 없이는 필요한 대역폭을 결정할 수 없음-예를 들어, 어떤 비디오 파일은 높은 공간 해상도를 가질 수 있고 다른 비디오 파일은 그렇지 않을 수 있는데, 이 두 비디오 파일 모두 동일하게 나타나지만 각각의 대역폭은 서로 상당히 다를 수 있음;
대기 시간에 있어서의 지터(jitter)나 대역폭이 문제가 될 수 있음-고정된 대기시간은 수용 가능하지만, 세션 시 크게 변화하는 대기시간은 버퍼 오버플로(overflow)나 언더플로(underflow)로 인하여 문제가 될 수 있음;
부적절한 연산 또는 대역폭 리소스들은 시간제한으로 인해 쓸모 없어질 수 있음;
통상 데이터가 인코딩(압축)되어 그 데이터 중 일부의 손실이나 지연이 순차적인 데이터 디코딩(압축해제)에 중요성을 가질 수 있음;
통상 손실된 데이터는 시간제한으로 인해서 재전송되지 않음; 및
상태의 기록이 모든 클라이언트 디바이스를 위해 유지되어야 함-스트리밍 미디어에 대하여, 스트리밍 노드(node)는, 데이터를 계속 스트리밍할 필요가 있고 클 라이언트들로부터의 상태 정보를 수신하기 위해 대기하지 않을 수 있음.
이러한 차이점들은 스트리밍 미디어에 대하여 실행되는 서비스들의 관리 및 감시에 대한 요구를 크게 증가시킨다.
시스템(100)은 서비스 위치 관리자(120, 122) 등의 복수의 서비스 위치 관리자와, 서비스 포털(140, 142) 등의 복수의 서비스 포털과, 서비스 공급자(130, 132, 134, 136) 등의 복수의 서비스 공급자를 포함한다. 서비스 위치 관리자(120, 122), 포털(140, 142) 및 서비스 공급자(130, 132, 134, 136)는 하나의 디바이스 상에 구현되거나 복수의 디바이스를 사용하여 구현될 수 있는 논리 엔티티(entity)들이다. 따라서, 시스템(100)은 서비스 위치 관리자(120 및 122), 포털(140, 142) 및 서비스 공급자(130, 132, 134, 136)의 기능을 구현하는 단일 컴퓨터 시스템 등을 대표할 수 있다. 또, 시스템(100)은 컴퓨터 시스템 네트워크 내에 있는 상이한 노드들이나 디바이스들을 포함할 수 있다. 이 노드들은, 여기서 설명할 다양한 기능들을 수행하기에 충분한 처리 능력 및 메모리 용량을 갖는 서버 컴퓨터 시스템들, 스위치들, 라우터들 등일 수 있다. 일반적으로 말하면, 시스템(100)에 의해 제공되는 기능은 한 대 이상의 장치들을 이용해서 구현할 수 있다. 또한, 비록 시스템(100)이 포털(140) 및 포털(142)을 구비하는 경우에 대하여 설명하지만, 두 개 이상 또는 이하의 포털을 구비할 수 있다. 또, 시스템(100) 이 서비스 공급자들(130, 132, 134, 136)을 구비하지만, 네 개 이상 또는 이하의 서비스 공급자를 구비할 수 있다. 게다가, 시스템(100)이 서비스 위치 관리자들(120, 122) 이외의 서비스 위치 관리자를 추가로 구비할 수도 있다.
서비스 위치 관리자(120, 122), 포털(140, 142) 및 서비스 공급자(130, 132, 134, 136) 중 적어도 하나의 기능을 기존 컴퓨터 시스템 네트워크상에 부가하여 시스템(100)을 기존 컴퓨터 시스템 네트워크 내에 구현할 수 있다. 즉, 시스템(100)에 의해서 제공되는 기능의 일부 또는 전부를 기존 네트워크 노드들에 추가할 수 있다. 또한, 기존 네트워크에 노드들을 추가함으로써 시스템(100)의 일부 또는 전부를 구현할 수 있다. 예를 들어, 콘텐츠를 서비스하거나 서비스 공급자들을 관리하기 위해서 추가된 노드들을 가지고 기존 콘텐츠 소스들이나 포털들을 사용할 수 있다.
도 1에서는, 시스템(100)이 콘텐츠 소스(110) 및 클라이언트 디바이스(150)와 통신할 수 있다. 비록 콘텐츠 소스(110) 및 클라이언트 디바이스(150)가 각각 하나인 경우에 대하여 설명하지만 이들 요소들은 하나 이상일 수 있다. 시스템(100) 내에서의 통신뿐만 아니라 시스템(100), 콘텐츠 소스(110), 클라이언트 디바이스(150) 간의 통신은 유선 및 무선 통신 중 적어도 하나를 포함할 수 있다.
포털(140) 및 포털(412)은 클라이언트 디바이스(150)와 시스템(100) 간의 제1 접촉점으로서 기능하는 잘 알려진 포털 사이트이다. 포털(140)은 클라이언트 디바이스(예를 들어, 클라이언트 디바이스(150))가 얼마나 오랫동안 시스템(100)에 연결되어 있었는지와 어떤 콘텐츠들이 수신되었는지를 나타낼 목적으로 부가적인 감시 기능을 실행할 수 있다. 콘텐츠 소스(110)는 하나 이상의 콘텐츠 아이템을 저장하고 그 콘텐츠 아이템에 대한 액세스를 제공한다.
클라이언트 디바이스(150)는 사실상 데스크톱 혹은 랩톱 컴퓨터 시스템이나, 비디오가 강화된 포켓용 컴퓨터 시스템(예를 들어, 개인 휴대 정보 단말), 휴대전화, 또는 다른 타입의 컴퓨팅 시스템 등의 사용자 디바이스라면 어떠한 것이라도 상관없지만, 이러한 시스템들로 제한되지는 않는다. 클라이언트 디바이스(150)는 콘텐츠 아이템을 요청하고 순차적으로 그 아이템들을 수신하는데 사용될 수 있다. 또, 클라이언트 디바이스(150)는 시스템(100)에 하나 이상의 콘텐츠 아이템을 제공하는데 사용될 수 있다. 예를 들어, 클라이언트 디바이스(150)는, 콘텐츠에 대하여 실행될 서비스(예를 들어, 비디오 배경 제거)를 위한 콘텐츠를, 그 콘텐츠가 콘텐츠 소스(예를 들어, 콘텐츠 소스(110)에 의해 이후 저장되거나 다른 클라이언트 디바이스(도시하지 않음)에 전송되기 전에, 서비스 공급자(예를 들어, 서비스 공급자(130))로 전송할 수 있다.
도 1에서, 콘텐츠 아이템은 실연할 수 있거나 기록될 수 있는 미디어 데이터나 미디어와 무관한 데이터를 가리킨다. 예를 들어, 콘텐츠 아이템은 비디오 기반 데이터, 오디오 기반 데이터, 이미지 기반 데이터, 웹 페이지 기반 데이터, 그래픽 데이터, 텍스트 기반 데이터, 혹은 이들의 조합을 포함할 수 있지만 이것들로 제한되지는 않는다. 예를 들어, 콘텐츠 아이템은 디지털 비디오 디스크 (DVD) 품질의 영화일 수 있다.
콘텐츠가 클라이언트 디바이스(150)에 공급되기 전에 콘텐츠 아이템에 대하여 서비스의 타입이 실행될 수 있다. 또, 클라이언트 디바이스(150)로부터 서비스 공급자(예를 들어, 서비스 공급자(130))로의 콘텐츠 전송이 시작된 후에, 서비스 타입이 콘텐츠 아이템에 대하여 실행될 수도 있다. 서비스의 타입에는 콘텐츠 아 이템의 처리 및 분석 중 적어도 하나가 포함된다. 예를 들어, 서비스 타입은, 트랜스코딩, 비디오 사이즈 조정, 지터 제거, 안면 검출로부터 결정된 공간적 경계에 의거한 비디오 스트림의 다이내믹 클리핑(clipping) 및 사이즈 조정, 비디오로부터 판독된 광학 특성, 비디오 배경 제거 등의 비디오 처리를 포함하지만, 이들로 제한되지는 않는다. 또한, 서비스의 다른 타입은 오디오 배경 제거, 오디오 중지 검출, 오디오 가속 또는 감속, 오디오 강화, 잡음 감소, 음성 인식, 화자 식별, 음성/음악 판정, 웃음소리 검출, 음악 분석 등의 오디오 처리를 포함하지만, 이들로 제한되지는 않는다.
콘텐츠 아이템의 분석에는, 예를 들어, 텍스트 복사물을 만드는 음성 인식이나, 텍스트 출력을 생성하기 위해서 비디오 스트림에 있는 하나 이상의 이미지에 적용되는 광학 특성이 포함된다. 개인 위치나 시간들에 대한 기록의 스트림을 출력하는 비디오 기반 개인 트래킹 서비스는 콘텐츠 아이템의 분석을 설명하기 위해 사용할 수 있는 또 다른 예이다. 위치는 이미지 좌표로 표현할 수도 있지만, 물리계 좌표(예를 들어, 방바닥을 참조로 한 "x, y"좌표)로 표현하면 좀 더 사용가능할 수 있다. 콘텐츠 아이템의 분석을 설명하는 데 사용할 수 있는 또 다른 예는, 비디오 스트림으로부터 추출된 안면 스냅 사진, 그 스냅 사진이 검출된 시간 및 위치, 그 안면에 대한 아이덴티티, 안면의 분류 중 적어도 하나를 출력하는 안면 검출기 서비스에 관한 것이다. 이러한 정보 중 일부는 텍스트 데이터로 표현될 수 있다.
여기서 사용하는 바와 같이, 콘텐츠 아이템은 서비스되었을 수도 있고, 서비 스되고 있는 중일 수도 있고, 서비스되고 있지 않을 수도 있고, 아직 서비스되지 않았을 수도 있다. 즉, 서비스되는지 여부에 관계없이 콘텐츠 아이템은 여전히 콘텐츠 아이템으로 간주될 수 있다. 콘텐츠 아이템의 서비싱은 콘텐츠 아이템의 분석 또는 처리를 포함할 수 있다. 논의의 명확성을 위해서, 콘텐츠 아이템의 서비스 결과를 "서비스 결과"나 "서비스 결과 콘텐츠" 혹은 "서비스 결과 데이터"등의 용어로서 여기에 참조된다. 서비스 결과 콘텐츠는, 서비스된 콘텐츠의 본래 아이템의 변형된 버전(예를 들어, 배경 제거가 비디오 스트림에 적용된 경우), 콘텐츠의 본래 아이템으로부터 도출된 콘텐츠 아이템(예를 들어 광학 문자 인식이 텍스트 출력을 생성하는데 사용되는 경우), 서비스 공급자를 통해서 변형 없이 그대로 전달된 콘텐츠 아이템(예를 들어, 트랜스코딩 서비스 공급자에 의해서 수신될 때 트랜스코딩을 필요로 하지 않는 콘텐츠), 혹은 요구자들에게 제공될 수 있으며, 서비스 공급자에게 미리 전송되어 현재에는 서비스 공급자 상에 캐싱(cashing)(저장)되어 있는 콘텐츠의 아이템(예를 들어, 미리 서비스되어 현재에는 서비스 공급자에 있는 메모리에 저장되어 있는 콘텐츠의 아이템)으로 구성될 수 있다. 또한, 서비스 결과 콘텐츠는 상기 예들의 조합들 중 어떤 것에 의해서도 구성될 수 있다.
도 1을 계속 참조하면, 상기한 바와 같은 서비스들은 서비스 공급자들(130, 132, 134, 136)에 의해 실행될 수 있다. 서비스 공급자들(130, 132, 134, 136) 각각은 하나 이상의 타입의 서비스를 제공하는 기능을 한다. 즉, 서비스 공급자들(130, 132, 134, 136)은 상이한 타입의 서비스들을 제공할 수 있다. 예를 들어, 서비스 공급자(130)는 콘텐츠의 하나의 아이템을 트랜스코딩하기 위해 사용될 수도 있고 콘텐츠의 다른 하나의 아이템의 배경 제거를 위해 사용될 수도 있다. 상이한 타입의 서비스들이 콘텐츠의 상이한 아이템들에 대한 병렬로 실행될 수 있다. 즉, 서비스 공급자들(130, 132, 134, 136)은 캐싱 서비스들을 제공할 수도 있다. 서비스 제공자들(130, 132, 134 또는 136)은 또한 캐싱 서비스를 제공할 수 있다. 예를 들어, 서비스 공급자(130, 132, 134 또는 136)는 콘텐츠의 아이템의 전부 또는 일부를 그 콘텐츠 아이템을 서비스하기 전에 캐싱할 수 있다. 마찬가지로, 서비스 공급자(130, 132, 134 또는 136)는 그 서비스 결과의 전부 또는 일부를 클라이언트 디바이스(150)에 전달하기 전에 캐싱할 수 있다.
서비스 위치 관리자(120, 122)는, 콘텐츠 아이템에 대한 요구된 타입의 서비스를 실행하여 클라이언트 디바이스(150)에 제공되는 서비스 결과를 생성할 수 있는 서비스 공급자(예를 들어, 서비스 공급자(130, 132, 134 또는 136))를 선택하는 기능을 한다. 하나 이상의 서비스 공급자가 각 서비스 위치 관리자에 알려지고, 각 서비스 위치 관리자는, 요구된 서비스를 실행할 서비스 공급자를 할당하기 위해서 그 서비스 위치 관리자에 알려진 서비스 공급자들 중에서 적절한 서비스 공급자를 선택한다. 서비스 위치 관리자는, 요구된 서비스를 실행할 서비스 공급자가 선택되는 서비스 공급자의 집합 중에 있는 어떤 서비스 공급자를 감독하거나 그 서비스 공급자의 감독자일 수 있다. 본 발명의 다양한 실시예에서는, 두 개의 상이한 서비스 위치 관리자들에 의해 감독되는 서비스 공급자들의 집합들은 서로 소(예를 들어, 공통된 서비스 공급자를 포함하지 않는 집합들)일 수 있고, 정확하게는 서로 같거나 혹은 부분적으로 중첩(예를 들어, 서비스 공급자들 중의 일부는 두 집합에 모두 있지만 어떤 부분은 두 집합 중 하나에만 있는 경우)될 수도 있다. 예를 들어, 도 1을 참조하면, 서비스 공급자들(130, 132, 134, 136) 및 기타 사용가능한 서비스 공급자들은 모두 서비스 위치 관리자들(120, 122)에 의해서 감독될 수 있다. 또, 서비스 공급자들(130, 132)은 서비스 위치 관리자(120)에 의해서만 감독되고 서비스 공급자들(134, 136)은 서비스 위치 관리자(122)에 의해서만 감독될 수도 있다. 다른 실시예에서는, 서비스 공급자들(130, 132, 134)이 서비스 위치 관리자(120)에 의해서만 감독되고 서비스 공급자(136)가 서비스 위치 관리자(122)에 의해서만 감독될 수도 있다.
몇몇 실시예에서는, 각 서비스 위치 관리자(예를 들어, 도 1의 서비스 위치 관리자들(120, 122))는 각자가 감독하는 서비스 공급자들의 기록 또는 리스트를 보유한다. 몇몇 실시예에서는, 각각의 서비스 공급자(예를 들어, 도 1의 서비스 공급자들(130, 132, 134, 136)에 대하여, 각 서비스 공급자가 실행할 수 있거나 각 서비스 공급자가 실행하도록 되어 있을 수 있는 서비스 타입들이 그 서비스 공급자를 감독하는 서비스 위치 관리자에게 알려져 서비스 위치 관리자에 의해 기록되기도 한다. 또, 몇몇 실시예에서는, 각각의 서비스 공급자에 대하여, 그 서비스 공급자에 관련된 사용가능한 리소스들이 그 서비스 공급자를 감독하는 서비스 위치 관리자에게 알려져 서비스 위치 관리자에 의해 기록되기도 한다. 서비스 공급자의 "사용가능한 리소스들"은, 그 서비스 공급자에 의해서 관리되고 요구된 서비스를 실행하는 쪽에 배치될 수 있는, 컴퓨터의 메모리, 네트워크 대역폭, 하드웨어, 및 기타 타입의 리소스들을 나타낼 수 있다. 일반적으로, 서비스 공급자의 사용가능 한 리소스들은 그 서비스 공급자의 총 리소스들보다 적을 수 있다. 도 1에서, 예를 들어, 서비스 위치 관리자(120)가 서비스 공급자들(130, 132)을 감독하면, 그 서비스 공급자들(130, 132)과 관련된 사용가능한 리소스들이 서비스 위치 관리자(120)에 알려져서 서비스 위치 관리자(120)에 의해 기록된다. 서비스 공급자들(130, 132, 134, 136)에 관련된 리소스들은, 프로세서 속도, 메모리 총 용량, 그 서비스 공급자들 각각에 관련된 전용 프로세서 등의 컴퓨터 리소스들이나 하드웨어 리소스들을 포함하지만, 이것들로 한정되지는 않는다. 서비스 공급자들(130, 132, 134, 136)에 관련된 리소스들은, 콘텐츠를 수신하고 송신하기 위한 서비스 공급자들 각각에 사용가능한 총 대역폭 등의 네트워크 리소스들도 포함하지만, 이것들로 한정되지는 않는다. 일반적으로, 서비스 위치 관리자(120)는, 서비스 위치 관리자(120)가 감독하는 서비스 공급자들(예를 들어, 서비스 공급자들(130, 132))의 사용가능한 리소스들에 대한 지식을 가지고, 서비스 위치 관리자(122)는, 서비스 위치 관리자(122)가 감독하는 서비스 공급자들(예를 들어, 서비스 공급자들(134, 136))의 사용가능한 리소스들에 대한 지식을 갖는다.
도 1을 참조하면, 몇몇 실시예에서는, 서비스 위치 관리자들(120, 122)에 의해서 보유된 서비스 공급자들(예를 들어, 서비스 공급자들(130, 132, 134, 136))의 사용가능한 리소스들에 대한 지식 및 기록들이, 서비스 위치 관리자가 클라이언트 디바이스(예를 들어, 클라이언트 디바이스(150)로부터 서비스에 대한 소정의 요구를 수신하기에 앞서 획득된 정보에 부분적으로 의거할 수 있다. 이 정보는 "스태틱(static)" 리소스 정보라고 지칭될 수 있다. 몇몇 실시예에서, 서비스 위치 관 리자들(120, 122)에 의해서 보유된 서비스 공급자들(예를 들어, 서비스 공급자들(130, 132, 134, 136))의 사용가능한 리소스들에 대한 지식 및 기록들은, 그 서비스 위치 관리자들에 의해 수신되어 할당된 서비스에 대한 요구 이후에, 서비스 공급자로부터의 정보에 의거해서 시간이 경과함에 따라 업데이트될 수 있다. 이 정보는 여기서 "다이내믹" 리소스 정보로 나타내어질 수 있다. 서비스 위치 관리자는 폴 방식 데이터(poll-based data) 및 푸시 방식 데이터(push-based data)의 수집을 사용하여 그 기록들을 다이내믹 리소스 정보로 업데이트할 수 있다. 폴 방식 리소스 정보 집합은, 리소스 이용성에 관한 정보를 서비스 공급자들로부터 유도하는 수단으로서, 감독하는 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))에 의해서 서비스 공급자들(예를 들어, 서비스 공급자들(130, 132))에 대한 요구의 전송을 포함할 수 있다. 푸시 방식 정보 집합은, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))가 감독하는 서비스 공급자들(예를 들어, 서비스 공급자들(130, 132))에 의한 리소스 사용가능성에 관한 정보의 상기 서비스 위치 관리자로의 주기적인 "푸시" 또는 전송을 포함할 수 있다. 어떤 실시예에서는, 폴 방식 및 푸시 방식 정보 집합들의 조합이 사용될 수 있다. 몇몇 실시예에서는, 서비스 위치 관리자에 의해 보유된 서비스 공급자의 사용가능한 리소스들에 대한 지식 및 기록은 스태틱(static) 및 다이내믹 리소스 정보 모두에 부분적으로 의거할 수 있다.
몇몇 실시예에서는, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))가 콘텐츠 아이템에 대한 서비스의 실행을 수반하는 콘텐츠 아이템에 대 한 요구를 수신하면, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))는 그 서비스를 실행하는데 필요한 리소스들을 예견 또는 추정할 수 있다. 새로 요구된 서비스를 실행하기 위한 서비스 공급자가 선택되면, 그 서비스 공급자의 사용가능한 리소스들의 추정에 대한 서비스 위치 관리자의 기록이, 그 리소스들이 새로 요구된 서비스를 실행하기 위해 적어도 부분적으로 할당됨을 나타내도록 변경될 수 있다. 예를 들어, 요구된 서비스가 서비스 공급자(130) 내의 메모리 중 N 메가바이트를 필요로 할 것으로 예상되면, 서비스 공급자(130)의 사용가능한 메모리 리소스들에 대한 서비스 위치 관리자의 기록은 N 기가바이트의 메모리가 할당되었음을 나타내도록 업데이트된다. 또, 서비스 공급자(130)에 대하여 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))에 의해서 기록된 사용가능한 메모리 리소스들의 양이 N 메가바이트만큼 감소될 수 있다. 이상의 설명으로부터 알 수 있는 바와 같이, 서비스 공급자에 관련된 사용가능한 리소스들에 대한 기록은, 예를 들어, 서비스가 서비스 공급자에 의해서 종료될 때와 유사하게 조정(예를 들어, 증가)될 수 있다.
앞에서 설명한 바와 같이, 다수의 클라이언트 디바이스 각각은 콘텐츠 아이템에 대하여 실행될 서비스의 요구를 포함할 수 있는 세션에 관여할 수 있다. 콘텐츠 아이템이 서비스되는, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))에 의해서 취급되는 각각의 세션에 대하여, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))는 서비스를 실행할 서비스 공급자를 선택할 것이다. 상술한 방법론들의 다양한 실시예들은 실행 중인 각 세션에 적용 되어, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))가, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))에 의해서 할당된 리소스들에 대한 업데이트된 기록 및 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))에 의해서 감독되는 각 서비스 공급자에게 사용가능한 리소스들에 대한 업데이트된 기록 중 적어도 하나를 포함한다.
본질적으로, 하나의 실시예에 따르면, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))는 서비스들을 실행하는데 사용가능한 리소스들의 집합을 포함한다. 구체적으로는, 서비스 위치 관리자(120)는 각 서비스 공급자에게 사용가능한 리소스들의 집합을 포함한다. 서비스가 실행될 것을 요구하는 각 세션에 대하여, 그 서비스를 위해 포함된 리소스들은 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))에 의해서 추정될 수 있다. 서비스 공급자로 발송된 각 세션에 대하여, 그 서비스 공급자에 대한 사용가능한 리소스들의 집합은 추정에 의해서 감소될 수 있다. 세션들이 종료되거나 서비스가 완료되면, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))의 사용가능한 리소스들의 집합은, 리소스들이 다시 사용가능한 상태가 되었음을 나타내도록 증가될 수 있다. 사용가능한 리소스들의 집합의 업데이트는, 하나 이상의 서비스가 서비스 공급자에서 실행되는 동안에, 서비스 위치 관리자와 그 서비스 위치 관리자가 감독하는 서비스 공급자들 간의 폴 방식 또는 푸시 방식 데이터 집합을 통해서 동적으로 얻어질 수 있다. 따라서, 리소스 집합의 사이즈 및 분배의 추정은 항상 상대적으로 실행되고, 각각의 새로운 세션을 위한 서비스 공급자를 선택하기 위해서 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))에 의해서 기초로서 사용될 수 있다.
다른 실시예들에서는, 서비스 공급자는, 서비스를 실행하는데 필요한 리소스들의 추정에 관계없이, 각 서비스 공급자에 사용가능한 리소스들 또는 이미 할당된 리소스들에 의거해서 서비스를 실행하도록, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))에 의해서 선택되거나, 또는, 각 서비스 공급자에 사용가능한 또는 사전 할당된 리소스들에 관계없이, 서비스를 실행하는데 필요한 리소스들의 추정에 의거해서 서비스를 실행하도록, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120) 또는 (122))에 의해서 선택될 수 있음은 물론이다.
네트워크에 접속된 두 대의 컴퓨팅 디바이스는, 그들 사이의 네트워크 "홉(hop)"의 대기 시간 및 횟수 중 적어도 하나가 작고/작거나 그들 사이의 대역폭이 크면 네트워크 관점에서는 "닫힌 상태"로 간주될 수 있다. 도 1에서, 본 발명의 하나의 실시예는, 어떤 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))가 네트워크 관점에서 "닫힘 상태"에 있는 서비스 공급자들의 "영역"을 관리할 것이라고 하는 기능을 포함할 수 있다. 이 때, 클라이언트 디바이스(예를 들어, 클라이언트 디바이스(150))가 접속하는 포털(예를 들어, 140 또는 142)은, 요구하는 클라이언트 및 콘텐츠 소스 중 적어도 하나에 가까운 선택된 서비스 위치 관리자에 서비스 요구를 보낼 수 있다. 예를 들어, 서비스 위치 관리자는, 콘텐츠 소스 어드레스나, 콘텐츠 네트워크 어드레스 및 클라이언트 네트워크 어드레스 중 적어도 하나에 대한 그 서비스 위치 관리자의 측정된 근접도에 의거해서 선택될 수 있다. 서비스 위치 관리자 영역들은 중첩된다. 예를 들어, 각 서비스 위치 관리자는, 다른 서비스 위치 관리자들보다 그 서비스 위치 관리자에 거의 가까운 하나 이상의 동일 "경계(border)" 서비스 공급자들을 감독할 수 있다. 이러한 경우들에 있어서는, 각 서비스 위치 관리자가 적어도 하나의 서비스 공급자를 공통으로 감독하는 "인접(neighbor)" 서비스 위치 관리자들에 서비스 할당에 대한 기록을 전달하여, 이들 서비스 위치 관리자들이 "경계" 서비스 공급자들에게 너무 많은 서비스를 독립적으로 할당하지 않게 할 수 있다.
또한, 하나의 서비스 위치 관리자가 적어도 하나의 다른 서비스 위치 관리자에 서비스 할당에 대한 모든 기록을 전달하면, 서비스 관리 기능은 내고장성(fault tolerance)을 가질 수 있다. 예를 들어, 포털(예를 들어, 포털(140 또는 142))은, 소정의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))에 접속할 수 없는 경우에는, 그 소정의(제 1의) 서비스 위치 관리자에는 사용가능하지 않은 정보를 포함하는 요구를 인접 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(122))에 전달할 수 있다. 이것은, 사용가능한 인접 서비스 위치 관리자가 "경계" 서비스 공급자들, 및 접속 실패한 서비스 위치 관리자의 영역 내에 있는 서비스 공급자들의 일부 또는 전부에 대한 관리를 맡도록 촉구한다.
몇몇 실시예에서는, 서비스 위치 관리자들이 하나 이상의 서비스 위치 관리자에 대한 정보를 사용하여 서비스 위치 관리자들 간의 업무 부하 분배에 있어서의 보다 나은 균형을 는다. 예를 들어, 지나치게 과부하된 서비스 공급자를 포함하거나, 포털로부터의 서비스 요구를 아주 빠른 속도로 수신하는 서비스 위치 관리자 는, 수신한 서비스 요구들 중의 일부를 인접 서비스 위치 관리자들로 "오프로드(off-load)"하기 시작할 수 있다. 보다 구체적으로는, 소정의 서비스 위치 관리자가 포털로부터 서비스 요구를 수신하는 속도가 어떤 임계치를 초과하거나, 서비스 위치 관리자에 의한 동작을 위해 계류 중인 그와 같은 요구들의 큐(queue)가 임계 길이를 초과하거나, 혹은, 서비스 위치 관리자에 의해서 관리되는 서비스 공급자들에게 사용가능한 리소스들에 대한 기록들이, 소정 카테고리 내에 있는 사용가능한 리소스들의 총수가 임계치 이하로 떨어짐을 나타내면, 그 서비스 위치 관리자는 트리거링(triggering) 조건이 더 이상 만족되지 않을 때까지 미래의 서비스 요구 및 계류 중인 서비스 요구 중 적어도 하나를 전달할 제2의 서비스 위치 관리자를 선택할 수 있다.
몇몇 실시예들에서는, 서비스 위치 관리자들이 그것들이 감독하는 서비스 공급자 집합들을 개조할 수 있다. 개조 과정은, 소정의 서비스 위치 관리자에 의해 감독되는 집합에 새로운 서비스 공급자들을 추가하는 것과 그 집합으로부터 서비스 공급자들을 제거하는 중 적어도 하나로 이루어질 수 있다. 이 개조에 의해서, 경우에 따라, 소정의 서비스 위치 관리자에 의해 감독되는 서비스 공급자의 수가 증가 또는 감소하거나 그대로 유지될 수도 있다.
몇몇 실시예에 있어서, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))에 의해 감독되는 서비스 공급자들의 집합의 개조는, 그 서비스 위치 관리자의 컴퓨터 부하가 임계치를 초과하는 경우에 유발될 수 있다. 따라서, 서비스 위치 관리자는 제2의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(122))에 서 비스 위치 관리자(120)에 의해서 현재 감독되고 있는 서비스 공급자들의 일부 부분 집합의 감독을 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(122))가 맡아야 한다는 것을 통지한다. 하나의 실시예에서, 감독의 이전은, 서비스 위치 관리자(120)로부터 서비스 위치 관리자(122)로의, 사용가능한 리소스들, 서비스 할당 상태, 및 이전되어 감독될 서비스 공급자들에 대한 기타 정보에 관한 기록의 전송에 의해 용이해진다. 다른 실시예들에서, 서비스 위치 관리자 간의 서비스 공급자 기록의 이전은 생략된다. 또 다른 실시예들에서는, 서비스 위치 관리자(120)가, 서비스 공급자들에게, 서비스 위치 관리자(120)가 감독하는 것을 그만둘 것이며 그 서비스 공급자들이 새로운 서비스 위치 관리자(122)로 리소스 상태 정보를 보내기 시작해야 함을 통지한다. 다른 실시예들에서는, 서비스 위치 관리자(122)가, 서비스 위치 관리자(120)로부터 서비스 위치 관리자(122)에 송신된 리스트에 있는 새로 감독될 서비스 공급자들 각각에 대하여 푸시 방식 또는 폴 방식 정보 수집을 시작한다.
몇몇 실시예에서는, 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))에 의해 감독되는 서비스 공급자들의 집합의 개조가, 감독되는 모든 서비스 공급자에 걸쳐서 일부 카테고리 내에 있는 리소스들의 총 사용가능성이 임계치 이하로 떨어지는 경우에 유발된다. 따라서, 서비스 위치 관리자는, 제2의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(122))에게, 서비스 위치 관리자(120)에 의해서 현재 감독되고 있는 서비스 공급자들 중의 몇몇 부분 집합의 감독을 맡을 것을 승인하도록 요구한다. 그 승인이 거부되거나, 서비스 위치 관리자(122)에 의 해 주어진 서비스 공급자들의 수나 서비스 공급자들의 사용가능한 리소스들이 불충분하면, 서비스 위치 관리자(120)는, 새로운 서비스 공급자들의 충분한 수 및 서비스 공급자 리소스들의 충분한 수 중 적어도 하나를 감독하는 것이 승인될 때까지, 제3의 서비스 위치 관리자(도시하지 않음), 제4의 서비스 위치 관리자(도시하지 않음) 등에 유사한 요구를 한다. 서비스 위치 관리자(120)에 의해 요구되는 새로운 서비스 공급자들의 "충분한" 수 및 새로운 서비스 공급자 리소스들의 충분한 수 중 적어도 하나가 결정된다. 하나의 실시예에서는, 서비스 위치 관리자(120)에 의해서 수신된 현재 속도의 서비스 요구들, 및 서비스 위치 관리자(120)에 의해서 주목되는 계류 중인 서비스 요구들의 현재 큐 중 적어도 하나의 적어도 일부에 의거해서, 서비스 위치 관리자들(120, 122) 간의 서비스 공급자들의 감독의 이전이, 서비스 위치 관리자(120)가 감독하는 서비스 공급자들의 수를 줄이기 원하는 경우에 상술한 수단들 중 어떤 것에 의해서도 성취될 수 있다.
본 발명에 따른 하나의 실시예에 있어서는, 각 서비스 위치 관리자의 처리 부하가 감시된다. 감시는, 각 서비스 위치 관리자의 프로세서 부하, 계류 중인 서비스 요구 큐의 길이, 및 처리 부하에 관한 기타 정보 중 적어도 하나에 대한 다른 감시 엔티티(entity)로의 부정기적 또는 주기적 보고를 통해서 이루어질 수 있지만 그것으로 제한되지는 않는다. 그 보고는, (감시 엔티티의 요구에서는) 폴 방식 보고이거나 (보고의 선택 시 서비스 위치 관리자에 의해서 송신되는) 풀 방식 보고일 수 있다. 몇몇 실시예들에서는, 감시 엔티티가 하나 이상의 포털(예를 들어, 포털(140, 142))을 포함할 수 있다. 다른 실시예들에서는, 감시 엔티티가 하나 이상의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120, 122))를 포함할 수 있다. 또 다른 실시예들에서는, 감시 엔티티가, 네트워크에 속해 있으며 서비스 위치 관리자들 중 적어도 일부와 통신할 수 있는 하나 이상의 전용 컴퓨팅 디바이스들을 포함할 수도 있다. 몇몇 실시예들에서는, 서비스 위치 관리자들 모드를 감시하는 엔티티가 하나도 없다. 예를 들어, 소정의 포털(예를 들어, 포털(140))만이 그 포털이 서비스 요구를 송신하는 서비스 위치 관리자들(예를 들어, 서비스 위치 관리자들(120, 122))을 감시한다. 다른 실시예들에서는, 감시가, 트리(tree) 모양의 통신 계층에서 서비스 위치 관리자들 간의 통신의 조정을 통해서 용이해져서, 그 트리에서 직접적으로 링크되어 있는 서비스 위치 관리자들 간의 처리 부하 상태 메시지들이 송신되는데, 그 메시지들은 상기 계층 내에서 하위(child) 서비스 위치 관리자로부터 상위(parent) 서비스 위치 관리자로 송신된다. 이런 식으로, 트리의 톱(top)에 있는 서비스 위치 관리자는 네트워크 내에 있는 모든 서비스 위치 관리자들의 상ㅌ태를 모은다. 그 후, 그 서비스 위치 관리자는 다른 서비스 위치 관리자들, 포털들, 또는 기타 네트워크로 연결된 컴퓨터 디바이스들로 전체 서비스 위치 관리자 처리 부하 상태를 알릴 수 있다.
이제부터 시스템(100)의 동작에 대하여 예를 들어 보다 충분하게 설명한다. 새로운 세션의 초기에, 클라이언트 디바이스(150)는 메시지(1)를 포털(140)에 보낸다. 메시지(1)는 특정 콘텐츠 아이템(예를 들어, 영화 제목)을 식별한다.
또, 하나의 실시예에서는, 메시지(1)는, 서비스 결과가 클라이언트 디바이스(150)로 전송되기 전에 콘텐츠 아이템에 대하여 실행되어야 할 서비스의 타입을 식 별하기에 충분한 정보를 포함한다. 그 정보는 다양한 형식을 취할 수 있다. 한 형식에서는, 메시지(1)가 특별히 서비스의 타입(예를 들어, 배경 제거 또는 음성 인식)을 식별한다. 다른 형식에서는, 메시지(1)가 클라이언트 디바이스(150)의 메모리 용량, 스크린 사이즈, 처리 능력 등의 속성들을 식별한다. 이러한 속성들에 의거해서, 시스템(100)(예를 들어, 포털(140))은 실행되어야 할 서비스의 타입(예를 들어, 트랜스코딩)을 유추할 수 있다. 또 다른 형식에서는, 메시지(1)가 클라이언트 디바이스(150) 및 기타 목적 디바이스들 중 적어도 하나의 타입을 식별한다. 그 디바이스들의 타입들에 대한 축적된 지식에 의거해서, 시스템(100)(예를 들어, 포털(140))은 실행되어야 할 서비스의 타입(예를 들어, 트랜스코딩)을 유추할 수 있다.
도 1에서, 메시지(1)는 그 밖의 정보를 포함할 수 있다. 콘텐츠 아이템의 소스가 클라이언트 디바이스(150)에 알려지면, 콘텐츠 소스도 메시지(1) 내에서 식별될 수 있다. 예를 들어, 메시지(1)는 콘텐츠 소스(110)의 URL(Uniform Resource Locator)를 포함할 수 있다. 콘텐츠 아이템의 소스가 클라이언트 디바이스(150)에 알려지지 않은 경우에는, 그 정보가 시스템(100)에 미리 알려지지 않으면, 콘텐츠 소스의 위치는 시스템(100)(예를 들어, 포털(140))에 의해서 지정될 수 있다. 몇몇 경우에는, 클라이언트 디바이스(150)가 콘텐츠 소스일 수 있다.
메시지(1)를 수신한 후, 포털(140)은 메시지(2)를 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 또는 122))를 선택한다. 포털(140)은 아주 다양한 방식으로 상기 선택을 실행할 수 있다. 예를 들어, 하나의 실시예에서는, 포털 (140)이, 시스템(100)의 모는 가능한 서비스 위치 관리자들 중에서 통신하는 하나의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))를 포함하는 기록을 보유할 수 있다. 이 경우, 포털(140)은 그 기록에 따라 그 하나의 서비스 위치 관리자를 선택한다. 또, 다른 실시예에서는, 포털(140)이 시스템(100)의 복수의 서비스 위치 관리자들 중에서 서비스 위치 관리자들의 부분 집합의 우선순위 리스트를 포함하는 기록을 보유할 수 있다. 이 부분 집합은 시스템(100)의 복수의 서비스 위치 관리자들 모두를 포함할 수도 있고, 시스템(100)의 서비스 위치 관리자들 중 일부를 포함하지 않을 수 있음은 물론이다. 우선순위 서비스 위치 관리자 리스트의 기록으로부터, 포털(140)은 클라이언트 디바이스(150)로부터의 새로운 서비스 요구를 취급하기 위한 가장 높은 우선순위의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))를 선택할 수 있다. 그러나, 그 가장 높은 우선순위의 서비스 위치 관리자가 포털(140)로부터의 통신에 반응하지 않는다고 결정되면, 포털(140)은 그 기록 중 그 다음 우선순위의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(122)) 등과 통신을 시도할 수 있다.
다른 실시예들에서는, 포털(140)이 시스템(100)의 복수의 서비스 위치 관리자들 중에서 그 포털에 사용가능한 서비스 위치 관리자들의 부분 집합의 리스트를 포함하는 기록을 보유할 수 있다. 이 부분 집합은 시스템(100)의 복수의 서비스 위치 관리자들 모두를 포함할 수도 있고, 시스템(100)의 서비스 위치 관리자들 중 일부를 포함하지 않을 수 있음은 물론이다. 하나의 실시예에서, 포털(140)은 그 기록된 리스트에서 무작위로 하나의 서비스 위치 관리자를 선택할 수 있다. 또, 다른 실시예에서는, 포털(140)이 그 기록된 리스트에서 라운드 로비(round robin) 방식으로 하나의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))를 선택할 수 있다. N개의 서비스 위치 관리자가 포함된 리스트에 대하여, "라운드 로빈" 선택은, 제1의 서비스 요구를 취급할 제1의 서비스 위치 관리자를 그 리스트에서 선택하고, 이어서 제2의 서비스 요구를 취급할 제2의 서비스 위치 관리자를 선택하는 방식으로, N번째 요구가 포털에 의해서 수신되어 리스트 상에 있는 N번째 서비스 위치 관리자에 전달될 때까지 실행될 수 있다. 그 다음 (N+1)번째 요구는 리스트 상의 제1 서비스 위치 관리자로 전달될 수 있고, 최종 리스트 엔트리가 다시 도달되고 그 처리가 다시 그 제1 리스트 엔트리로 랩어라운드(wraparound)할 때까지, 그 후속 요구들은 연속하는 서비스 위치 관리자들에 그 서비스 위치 관리자들이 리스트에 나타나는 순서에 따라 전달된다.
또 다른 실시예에서는, 도 1의 포털(140)이, 시스템(100)의 복수의 서비스 위치 관리자들로부터 그 포털에 사용가능한 서비스 위치 관리자들 각각에 대한 기록을 보유할 수 있고, 그 기록은, 서비스 위치 관리자의 사용가능한 계산 능력, 계류 중인 서비스 요구의 수, 및 새로운 서비스 요구가 수신된 후 그 요구를 할당하는데 기대되는 대기시간 중 적어도 하나를 포함할 수 있다. 이 기록은, 상술한 바와 같이, 서비스 위치 관리자 상태의 폴 방식 또는 푸시 방식 수집에 의거해서 시간 경과에 따라 업데이트될 수 있다. 새로운 서비스 요구가 클라이언트 디바이스(150)로부터 수신되면, 포털(140)은, 그 기록으로부터 현재 사용가능한 최대 계산 능력을 갖거나 혹은 일단 요구가 수신되면 가장 빨리 그 서비스 요구를 처리할 것 으로 현재 기대되는 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))로 그 수신된 서비스 요구를 전달할 수 있다. 이러한 방식으로, 포털(140)이 가장 덜 바쁜 서비스 위치 관리자를 선택하고 있다.
다른 실시예에서는, 각각의 서비스 위치 관리자가, 각자가 관리하는 서비스 공급자들의 사용가능한 총 계산 능력에 대한 기록을 보유할 수 있고, 그 기록을 (예를 들어, 푸시 방식 또는 폴 방식의 방법들에 의해서) 하나 이상의 포털(예를 들어, 포털(140))에 전달할 수 있다. 새로운 서비스 요구가 수신되면, 포털(140)은 사용가능한 총 계산 능력이 가장 큰 서비스 공급자 집합을 감독하는 서비스 위치 관리자에 그 요구를 전달할 것을 선택할 수 있다. 또 다른 실시예에서는, 도 1의 포털(140)이, 시스템(100)의 복수의 서비스 위치 관리자들로부터 그 포털에 사용가능한 서비스 위치 관리자들 각각의 사용가능한 네트워크 대역폭을 포함하는 기록을 보유할 수 있다. 이 기록은, 상술한 바와 같이, 서비스 위치 관리자 상태의 폴 방식 또는 푸시 방식 수집에 의거해서 시간 경과에 따라 업데이트될 수 있다. 새로운 서비스 요구가 클라이언트 디바이스(150)로부터 수신되면, 포털(140)은, 수신된 서비스 요구를 처리하기 위해서, 그 기록에 따라서 현재 가장 높은 대역폭을 갖는 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))를 선택할 수 있다.
또 다른 실시예에서는, 포털(140)이, 네트워크에 속해 있는, 그 포털이 감독하는 서비스 공급자들과 다른 컴퓨팅 디바이스들 간의 "네트워크" 거리들을 포함하는 기록을 보유할 수 있고, 그 거리들은 네트워크상의 컴퓨팅 디바이스들 간의 네트워크 대기 시간 및 네트워크 "홉"들의 수 중 적어도 하나에 대한 함수이다. 이 거리에 대한 기록은 시간이 경과함에 따라 네트워크 상태 정보의 폴 방식 또는 푸시 방식 수집에 의거해서 업데이트될 수 있고, 서비스 요구들이 수신된 경우에, 서비스 위치 관리자에게 미리 알려져 있지 않은 클라이언트 디바이스들이나 콘텐츠 리소스들을 포함하는 새로운 기록 요소들이 추가될 수 있다. 새로운 서비스 요구가 클라이언트 디바이스(150)로부터 수신되면, 포털(140)은, 그 서비스 요구를 처리하기 위해서, 기록에 따라서, 그 포털, 클라이언트 디바이스(150), 및 그 서비스에 의해서 요구된 클라이언트 소스 중 적어도 하나에 가장 가까운 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))를 선택할 수 있다. 그러나, 그 후 그 가장 가까운 서비스 위치 관리자가 포털(140)로부터의 통신에 대한 응답이 없다고 결정되면, 포털(140)은, 그 기록에서 그 다음으로 가까운 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(122)) 등과의 통신을 시도할 수 있다.
마지막으로, 또 다른 실시예에서는, 포털(140)이, 시스템(100)의 복수의 서비스 위치 관리자들 중에서 그 포털에 사용가능한 서비스 위치 관리자들의 각각에 대하여 상술한 정보 중 하나 이상의 타입(예를 들어, 서비스 위치 관리자 계산 능력, 계류 중인 서비스 요구 큐의 길이, 수신된 요구를 할당하는데 기대되는 대기 시간, 감독되는 서비스 공급자들의 사용가능한 총 계산 능력, 네트워크 길이, 및 네트워크 대역폭 중 적어도 하나)을 포함하는 기록을 보유할 수 있다. 새로운 서비스 요구가 클라이언트 디바이스(150)로부터 수신되면, 포털(140)은, 그 기록에 따라, 상술한 정보 타입들의 조합의 함수를 각각의 사용가능한 서비스 위치 관리자에 대하여 계산할 수 있다. 그 후, 포털(140)은, 그 서비스 요구를 취급하기 위하 여, 그 함수에 따라 "최고"로 평가된 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))를 선택할 수 있다.
일단 포털(140)이 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(12))를 선택했을 경우에, 포털(140)은 서비스 위치 관리자(120)에 메시지(2)를 보낸다. 하나의 실시예에 있어서, 메시지(2)는, 서비스 결과가 클라이언트 디바이스(150) 및 기타 목적 디바이스들 중 적어도 하나에 전송되기 전에 콘텐츠 아이템에 대하여 실행되어야 할 서비스의 타입을 식별하기에 충분한 정보를 포함한다. 방금 설명한 바와 같이, 그 정보는 다양한 형식을 취할 수 있다. 하나의 형식에서는, 메시지(2)가 특별히 서비스의 타입(예를 들어, 배경 제거 또는 음성 인식)을 식별한다. 다른 형식에서는, 메시지(2)가, 클라이언트 디바이스(150) 및 기타 목적 디바이스들 중 적어도 하나의 메모리 용량, 스크린 사이즈, 처리 능력 등의 속성들을 식별한다. 이러한 속성들에 의거해서, 시스템(100)(예를 들어, 서비스 위치 관리자(120))은 실행되어야 할 서비스의 타입(예를 들어, 트랜스코딩)을 유도하거나 결정할 수 있다. 또 다른 형식에서는, 메시지(2)가 클라이언트 디바이스(150) 및 기타 목적 디바이스들 중 적어도 하나의 타입을 식별하고, 그 디바이스의 타입에 대한 축적된 지식에 의거해서, 시스템(100)(예를 들어, 서비스 위치 관리자(120))은 실행되어야 할 서비스의 타입(예를 들어, 트랜스코딩)을 유도하거나 결정할 수 있다. 메시지(2)에 의해 제공된 정보에 의거해서, 서비스 위치 관리자(120)는 실행될 서비스의 타입을 식별한다.
메시지(2)는 물론 그 밖의 정보를 포함할 수 있다. 예를 들어, 메시지(2)도 콘텐츠의 아이템 및 콘텐츠 소스 중 적어도 하나를 식별할 수 있다.
하나의 실시예에서는, 서비스 위치 관리자(120 (및 122))는 서비스 공급자들(예를 들어, 서비스 공급자들(130, 132))과, 그 서비스 공급자들이 제공할 수 있는 서비스들에 대한 리스트를 포함하는 기록을 보유할 수 있다. 그와 같은 하나의 실시예에서, 서비스 위치 관리자(120 (및 122))에 의해 보유된 기록은 서비스 공급자들(예를 들어, 서비스 공급자들(130 및 132))과 관련된 리소스 총 용량도 포함한다. 서비스 위치 관리자(120 (및 122))에 의해서 보유된 기록은 요구된 서비스들을 실행하기 위해서 서비스 공급자들(예를 들어, 서비스 공급자들(130, 132, 134) 각각에 사용가능한 리소스들도 포함할 수 있다. 서비스 위치 관리자(120 (및 122))에 의해 보유된 기록은 그 서비스 위치 관리자에 의해서 다른 서비스 세션들에 사전에 할당되었던 서비스 공급자들(예를 들어, 서비스 공급자들(130, 132)) 각각에 대한 리소스들도 포함할 수 있다.
본 예에서는, 서비스 위치 관리자(120)가, 그 서비스 위치 관리자가 감독하는 서비스 공급자들(예를 들어, 서비스 공급자들(130, 132)) 중에서, 메시지(2)로부터 식별된 서비스를 실행하기 위한 어느 하나를 선택한다. 하나의 실시예에서는, 서비스 위치 관리자(120)는 상술한 기록에 제공된 정보에 의거하여 하나의 서비스 공급자를 선택한다. 예를 들어, 서비스 위치 관리자(120)는, 어떤 서비스 공급자가 새로 할당된 서비스들을 실행하기 위해서 이용 중인 최소량의 리소스들 또는 사용가능한 최대량의 리소스들을 갖는가에 의거해서 서비스 공급자를 선택할 수 있다.
다른 실시예에서는, 서비스 위치 관리자(120)가 메시지(2)에서 식별된 서비스를 실행하는 것과 관련된 리소스의 양을 추정하고 그 추정을 이용해서 서비스를 실행할 서비스 공급자(예를 들어, 서비스 공급자(130, 132, 134 또는 136)를 선택한다. 또, 서비스 위치 관리자(120)는, 다양한 서비스 공급자들에서 서비스를 실행하는데 사용가능한 리소스들의 양(또는 사전에 할당된 리소스들의 양) 및 서비스를 실행함으로써 소비될 것이라고 추정되는 리소스의 양 모두에 의거해서, 그 서비스 위치 관리자가 감독한 서비스 공급자들 중에서 서비스를 실행할 하나의 서비스 공급자를 선택할 수 있다.
또 다른 실시예에서는, 서비스 위치 관리자(120)는, 서비스 공급자 자체 혹은 그 동일한 서비스 공급자도 감독하는 다른 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(122))로부터 수신된 정보에 의거해서, 서비스 위치 관리자(120)가 감독하는 서비스 공급자들 중에서 서비스를 실행할 서비스 공급자를 선택할 수 있다. 상기 정보는, 특정 서비스가 서비스 공급자에 의해서 시작되었거나 현재 실행되고 있다는 지시를 포함할 수 있다. 그 특정 서비스에 대한 정보가 서비스를 실행하는 것에 의해서 소비될 것이라고 추정되는 리소스의 양을 포함할 수도 있음을 물론이다.
서비스 위치 관리자(120)와 서비스 위치 관리자(122)가 각자의 기록을 이중 화살표(75)로 나타낸 주기적 또는 비주기적 방식으로 서로에 전송할 수 있음이 알려져 있다. 이러한 방식에서는, 후에 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))가 작동할 수 없게 되면, 남아 있는 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(122))가, 작동 불가능한 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))의 작동 책임을 심리스(seamless) 방식으로 가정하는데 필요한 정보를 갖는다. 이런 식으로, 내고장성이 서비스 위치 관리자들(120, 122)에 대하여 제공되는데, 이에 대해서는 아래에 좀 더 자세히 설명할 것이다.
도 1의 예에서는, 서비스 위치 관리자(120)가 서비스 공급자(130)를 선택한다. 상기한 서비스 공급자 기록은 서비스 공급자(130)의 선택을 나타내도록 서비스 위치 관리자(120)에 의해서 업데이트된다. 하나의 실시예에서는, 서비스 공급자(130)와 관련된 다양한 리소스들의 양들은 서비스를 실행하는데 사용될 것으로 기대되는 리소스들의 추정량만큼 감소한다(또는, 할당된 리소스들의 양이 증가한다).
또한, 서비스 위치 관리자(120)는 메시지(3)를 포털(140)로 전송한다. 메시지(3)는 서비스 제공자(130)를 위치시키고 접촉하기에 충분한 정보를 포함한다. 예를 들어, 메시지(3)는 서비스 제공자(130)를 지정하는 URL을 포함할 수 있다. 메시지(3)는 그 밖의 정보를 포함할 수 있다. 예를 들어, 메시지(3)는 또한 콘텐츠 아이템 및/또는 콘텐츠 소스를 식별할 수 있다.
메시지(3)를 수신한 후, 포털(140)은 메시지(4)를 클라이언트 디바이스(150)에 보낸다. 메시지(4)는 메시지(3)에 의해 제공받았던 서비스 공급자(130)의 위치를 지정하고 그 서비스 공급자(130)에 접속하기 위한 정보를 포함한다. 메시지(4)는 메시지(3)와 동일할 수 있다(메시지(4)로서, 메시지(3)를 단순히 전달할 수 있다). 하지만, 메시지(4)는 포털(140)에 의해 부가된 기타(추가) 정보를 포함할 수 있다. 예를 들어, 그 정보가 서비스 위치 관리자(120) 대신에 포털(140)에 의해서 결정된 것이라면, 메시지(4)도 콘텐츠의 아이템 및 콘텐츠 소스 중 적어도 하나를 식별할 수 있다.
다른 실시예에서는, 메시지(3) 및 메시지(4) 대신에, 서비스 위치 관리자(120)가 메시지를 클라이언트 디바이스(150)에 직접 전송한다. 서비스 위치 관리자(120)로부터 클라이언트 디바이스(150)로의 메시지는 서비스 공급자(130)의 위치를 지정하고 그 서비스 공급자(130)에 접속하기 위한 정보를 포함한다. 이 메시지는 콘텐츠 아이템 및 콘텐츠 소스 중 적어도 하나의 아이덴티티(identity) 등의 기타 정보를 포함할 수 있다.
이 경우에는, 클라이언트 디바이스(150)가, 서비스 공급자(130)의 위치를 지정하고 그 서비스 공급자(130)에 접속하기에 충분한 정보를 포함하는 메시지를 수신한다. 그 정보에 의거해서, 클라이언트 디바이스(150)와 서비스 공급자(130) 간의 통신의 설정된다. 즉, 클라이언트 디바이스(150)에 의해 시작된 세션이 포털(140)로부터 서비스 공급자(130)로 전송된다. 하나의 실시예에서는, 이러한 포털(140)로부터 서비스 공급자(130)로의 전송이 클라이언트 디바이스(150)의 최종 사용자에게 심리스 방식으로 투과된다.
하나의 실시예에서는, 클라이언트 디바이스(150)가 수신한 메시지(예를 들어, 메시지(4))는 동기화 멀티미디어 통합 언어(Synchronized Multimedia Integration Language; SMIL)를 사용하거나 동기화 멀티미디어 통합 언어(Synchronized Multimedia Integration Language; SMIL)에 의거한 것이다. 포털 (140)로부터 서비스 공급자(130)로의 클라이언트 디바이스(150)의 방향 전환은 다이내믹 SMIL 재기록을 이용하여 이룰 수 있다. 다이내믹 SMIL 재기록 처리는, 템플릿 SMIL 파일에 있는 하나 이상의 플레이스홀더(placeholder)들을 URL 지정 서비스 공급자(130)로 대체하는 것으로 이루어질 수 있다. 이 예에서는, SMIL 파일의 재기록이 서비스 위치 관리자(120)에 의해서 성취될 수 있다. 그 후에, 이 SMIL 파일은 서비스를 요구했던 클라이언트 디바이스(150)로, 앞에서 설명한 바와 같이, 서비스 위치 관리자(120)로부터 직접 혹은 메시지(3, 4)를 통해서 보내진다.
도 1의 나타낸 예를 계속 참조하면, 클라이언트 디바이스(150)는, 포털(140)로부터의 메시지(4)(혹은 서비스 위치 관리자(120)로부터의 등가의 메시지)를 수신한 후, 메시지(5)를 서비스 공급자(130)에 보낸다. 메시지(5)는, 콘텐츠 아이템과, 서비스 공급자(130)에 의해서 실행될 서비스 타입을 식별한다. 메시지(5)는 그 밖의 정보를 포함할 수 있다. 예를 들어, 이 시점에서 콘텐츠 소스가 클라이언트 디바이스(150)에 알려져 있는 경우에는, 그 정보가 메시지(5)에 포함될 수 있다.
서비스 공급자(130)는, 메시지(5) 수신 시, 메시지(6)를 콘텐츠 소스(110)에 보낸다. 상술한 바와 같이, 메시지(5)에서, 콘텐츠 소스(110)는 서비스 공급자(150)에 대하여 식별될 수 있다. 한편, 서비스 공급자(130)는 콘텐츠 소스(110)의 위치를 지정할 수 있다. 메시지(6)에서, 서비스 공급자(130)는, 콘텐츠 아이템을 서비스 공급자(130)에게 제공할 것을 요구한다.
메시지(6)에 응답하여, 콘텐츠 소스(110)는, (도 1에 화살표(7)로 나타낸) 서비싱(servicing)을 위하여 콘텐츠 아이템을 서비스 공급자(130)로 보낸다. 하나의 실시예에서는, 콘텐츠 아이템은 서비스 공급자(13)로 스트리밍된다.
하나의 실시예에서, 서비스 공급자(130)는 특정 서비스를 실행할 수 있도록 항상 설정되어 있다. 즉, 특정 서비스는, 데이터가 작용하기를 기다리는 서비스 공급자(130)에서 연속적으로 실행될 수 있다. 또 다른 실시예에서는, 특정 서비스가 서비스 공급자(130)가 메시지(5)나 콘텐츠 아이템을 수신할 때까지 정지한다. 즉, 서비스 공급자(130)는 특정 서비스를 설정하거나 개시할 필요가 있을 수 있으나 서비스에 대한 잠재적 요구가 식별되거나 서비스가 실행될 콘텐츠가 서비스 공급자(130)에 도착하기 시작할 때까지 그렇게 하지 않는다.
이 경우에는, 그 후에, 서비스 공급자(130)가 콘텐츠 아이템에 대한 소정의 서비스를 실행할 수 있다. 콘텐츠 아이템의 전부 또는 일부가 서비싱 전에 서비스 공급자(130)에 의해 캐싱될 수 있고, 혹은, 콘텐츠 아이템이, 서비스 공급자(130)에 의해 수신됨에 따라서 서비스될 수 있다.
그 후에, 서비스 결과 콘텐츠가 서비스 공급자(130)에 의해 클라이언트 디바이스(150)로 전송된다(도 1에 화살표(8)로 나타냄). 하나의 실시예에서는, 서비스 결과 콘텐츠는 클라이언트 디바이스(150)에 스트리밍된다. 서비스 결과 콘텐츠의 전부 또는 일부가, 서비싱 후, 서비스 공급자(130)에 의해 캐싱될 수 있고, 혹은 서비스 결과 콘텐츠가, 서비스 공급자(130)에 의해 서비스됨에 따라서 스트리밍될 수도 있다.
도 1에서, 일단 서비스 결과 콘텐츠가 선택된 서비스 공급자(예를 들어, 서 비스 공급자(130))에 의해서 전송되어 클라이언트 디바이스(150)에 의해서 수신되었을 경우에, 진행 중인 세션이 종료될 수 있다. 따라서, 서비스 위치 관리자(120)에 의해 보유된 서비스 공급자 기록이, 서비스 공급자(130)가 서비싱 태스크(task)를 완료하였음을 또는 세션이 종료하였음을 나타내도록 업데이트될 수 있다. 그 기록은, 서비스를 실행하도록 할당된 리소스들이 다시 사용가능함을 나타내도록 업데이트될 수도 있다. 예를 들어, 서비스 공급자(130)에 대해 기록된 사용가능한 리소스들의 양은 증가될 수 있다.
서비스 공급자(예를 들어, 서비스 공급자(130))가 하나 이상의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120 및 122))에 의해 감독되는 경우에, 그 서비스 공급자의 상태 변화에 관한 정보를 감독하는 모든 서비스 위치 관리자들로 전달하는 것이 바람직하다. 그러므로, 상기 예에서는, 서비스 위치 관리자(120)가, 서비스 공급자(130)의 기록을, 서비스 위치 관리자(120)에 의해 그 서비스 공급자에 할당된 특정 서비스 업무가 완료되었음을 나타내거나 서비스 위치 관리자(120)에 의해 그 서비스 공급자에 할당된 특정 세션이 종료되었음을 나타내도록 업데이트하는 경우에는, 이 정보를 서비스 위치 관리자(122)에 전달하는 것이 바람직하다. 이것을 이루기 위해서, 서비스 공급자(130)에 대한 서비스 위치 관리자(120)의 업데이트된 기록의 사본이 서비스 위치 관리자(122)로 보내질 수 있고, 이것에 의해서 서비스 위치 관리자(122)에 서비스 공급자(130)의 상태 변화가 알려진다. 이러한 방식으로, 서비스 위치 관리자(122)가 서비스 공급자(130)도 감독하는 경우에, 서비스 위치 관리자(122)는 그 기록을 업데이트할 수 있다. 또, 서비스 위치 관리자(120)로부터 서비스 위치 관리자(122)로의 업데이트된 기록의 전송은, 서비스 위치 관리자(122)가 서비스 위치 관리자(120)가 응답이 없을 시 서비스 위치 관리자(120)의 동작을 맡을 수 있도록 보다 완전하게 준비된다는 점에서 내고장성을 부여할 수 있다. 또, 몇몇 실시예들에 있어서, 각 서비스 공급자(예를 들어, 서비스 공급자(130))는 그 서비스 공급자를 감독하는 서비스 위치 관리자들(예를 들어, 서비스 위치 관리자들(120, 122))의 리스트를 보유한다. 이러한 실시예들에서는, 서비스 공급자(130)가 서비스 업무를 완료하거나 그 서비스 공급자에 할당된 세션이 종료되면, 그 서비스 공급자는, 감독하는 모든 서비스 위치 관리자들(예를 들어, 서비스 위치 관리자(120, 122))에게, 서비스를 실행하는데 사용가능한 보다 많은 리소스들을 현재 가지고 있음을 통지한다.
다른 접근법들은 소정 서비스 위치 관리자에 의해 보유된 서비스 공급자 상태에 관한 기록의 업데이트를 촉구하는데 이용될 수 있다. 주어진 예를 참조한 하나의 접근법에 있어서, 서비스 위치 관리자(120)가 서비스 공급자를 선택할 때 또는 그 즈음에, 서비스 위치 관리자(120)는 콘텐츠 항목에 대하여 실행될 서비스를 완료하는데 필요한 시간의 양을 추정한다. 그 기록은 추정된 양의 시간이 경과하여 서비스 완료되었음을 나타내도록 업데이트될 수 있다. 서비스 위치 관리자(120)가 서비스 공급자(130)를 감독하는 다른 서비스 위치 관리자의 기록을 보유하고 서비스 위치 관리자(122)가 그 리스트에 있는 경우, 서비스를 완료하는 시간의 추정량이 경과하면, 서비스 위치 관리자(120)는 서비스 공급자(130)에 관한 기록의 업데이트를 서비스 위치 관리자(122)로 보낼 수 있다. 또, 각 서비스 공급자가 그 서비스 공급자를 감독하는 모든 서비스 위치 관리자들의 리스트를 보유하는 실시예들에 있어서, 서비스 공급자(예를 들어, 서비스 공급자(130))는, 그 서비스 공급자가 서비스를 완료했을 때를 모든 감독하는 서비스 위치 관리자들(예를 들어, 서비스 위치 관리자들(120, 122))에게 알릴 수 있고, 따라서, 서비스 공급자(130)에 대한 서비스 위치 관리자들의 기록들이 업데이트될 수 있다. 이들 접근법들은 서비스 결과 콘텐츠의 클라이언트 디바이스(150)로의 전송을 설명하는 데까지 확장될 수 있다. 예를 들어, 서비스 위치 관리자(120)에 의해 추정된, 서비스 공급자(130)가 서비스를 실행하는 시간의 양은, 서비스 공급자(130)가 서비스 결과 콘텐츠를 클라이언트 디바이스(150)로 보내는데 필요한 소정의 부가적인 시간을 설명하기 위해서 증가될 수 있다. 유사하게, 서비스 위치 관리자(120)는 그 세션이 지속되기를 기대하는 시간의 길이를 추정할 수 있다(예를 들어, 콘텐츠 아이템이 두 시간 지속하는 영화인 경우, 세션은 약 두 시간 지속할 것이라고 추정될 수 있다). 또, 서비스 공급자(130)는, 서비스 결과 콘텐츠의 클라이언트 디바이스(150)로의 전송을 완료했을 때를 감독하는 서비스 위치 관리자들(120, 122)에게 알릴 수 있다. 다른 실시예에서는, 서비스 공급자(130)가, 서비스 결과 콘텐츠의 클라이언트 디바이스(150)로의 전송이 클라이언트 디바이스(150)에 의해서 종료되었을 때를 모든 감독하는 서비스 위치 관리자들(120, 122)에게 알릴 수 있다.
위에 기술한 바에 의하면, 메시지(6)에 응답해서 콘텐츠 아이템이 서비스 공급자(130)로 전송된다. 미리 여기서 언급한 바와 같이, 서비스 공급자(130)는, 그 대신에, 이미 수신 및/또는 서비스된 콘텐츠를 메시지(6)의 사용 및 메시지(6)에 대한 응답을 제거하고 (예를 들어, 도 1에 화살표(7)로 나타낸 데이터 흐름을 제거하고) 저장 또는 캐싱할 수 있다.
도 1은, 하나의 실시예에 있어서의, 서비스 위치 관리자(120)로부터 선택된 서비스 공급자(예를 들어, 서비스 공급자(130))로의 메시지(A)의 부가를 타나낸다. 본 예를 참조하면, 메시지(A)는, 메시지(2) 전송 후와 메시지(5) 전송 전 사이에서 언제라도 서비스 위치 관리자(120)로부터 서비스 공급자(130)로 전송될 수 있다. 메시지(A)는 상이한 여러 목적들을 위해 사용될 수 있다. 예를 들어, 특정 콘텐츠 아이템에 대하여 실행될 서비스의 타입이 서비스 공급자(130)에서 연속적으로 실행되지 않는 경우에, 메시지(A)는 서비스 공급자(130)에게 서비스를 위한 접근 요구에 대하여 경고하는 데 사용될 수 있다. 결론적으로 서비스의 설정 및/또는 개시는, 메시지(5)가 클라이언트 디바이스(150)로부터 수신되기 전에 시작되어 가능하면 종료될 수 있기 때문에, 전체 대기 시간이 줄어든다.
또, 메시지(A)는, 서비스 공급자(130)에게, 콘텐츠 아이템의 아이덴티티와, 가능하면 콘텐츠 소스(110)의 아이덴티티를 제공하는데 사용될 수도 있다. 이 정보를 사용하여, 서비스 공급자(130)는, 메시지(5)가 수신되기 전에, 콘텐츠 아이템을 제공하도록(예를 들어, 스트리밍을 시작하도록) 콘텐츠 소스(110)에 요구할 수 있고, 이것은 대기시간을 더욱 줄이는데 기여한다. 메시지(A)를 이러한 방식으로 사용하면, 예를 들어, 콘텐츠 소스(110)가 클라이언트 디바이스(150)에 대하여 식별될 필요가 없기 때문에, 보안성을 개선할 수 있다.
또, 메시지(A)는 도 2B에 나타낸 바와 같이 메시지(3), 메시지(4), 및 메시 지(5) 대신에 사용될 수 있다. 예를 들어, 콘텐츠 아이템 및 가능하면 콘텐츠 소스를 식별하는 것 이외에도, 메시지(A)는, 서비스 공급자(130)가 클라이언트 디바이스(150)와 통신할 수 있게 하는 정보를 포함할 수 있다. 즉, 포털(140)로부터 서비스 공급자(130)로의 통신의 전송을 클라이언트 디바이스(150)가 시작하게 하는 대신에, 그 통신의 전송을 서비스 공급자(130)가 클라이언트 디바이스(150)의 사용자에게 여전히 심리스 방식으로 투과되는 방식으로 시작할 수 있게 한다.
도 1에서, 서비스 공급자들(예를 들어, 서비스 공급자들(134, 136))은 너무 바쁘지만 그 서비스 공급자들을 감독하는 서비스 위치 관리자(122)는 여전히 포털(예를 들어, 포털(140))로부터의 새로운 서비스 요구들을 처리할 수 있는 경우에는, 하나 이상의 서비스 공급자들(예를 들어, 서비스 공급자(130))이 다른 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))에 의해서 감독되는 인접 영역으로부터 얻어질 수 있도록, 시스템(100)이 구현될 수 있다. 인접하는 서비스 위치 관리자들(예를 들어, 서비스 위치 관리자들(120, 122))이 그들의 업데이트 기록들을 화살표(75)로 나타낸 바와 같이 공유하면, 이러한 하나 이상의 서비스 공급자들의 "이동"이 용이해질 수 있다.
하나의 실시예에서는, 서비스 공급자(예를 들어, 서비스 공급자(134))가 둘 이상의 서비스 위치 관리자들(예를 들어, 서비스 위치 관리자(120, 122))에 의해서 감독되고 있으며 그 서비스 위치 관리자들 중 하나로부터 새로운 서비스를 할당받으면, 그 서비스 공급자는 적어도 하나의 다른 서비스 위치 관리자에 새로운 서비스 할당을 통지할 수 있다. 서비스 공급자들이 각 서비스 공급자를 감독하는 서비 스 위치 관리자들에게 통지하는 상이한 방법들이 있다. 예를 들어, 서비스 공급자는 감독하는 적어도 하나의 다른 서비스 위치 관리자에게 새로운 서비스 할당을 즉시 통지할 수 있다. 또, 서비스 공급자는 그 서비스 공급자를 감독하는 모든 서비스 위치 관리자들에의 그 다음 주기적인 일괄 상태 통지에 그 새로운 서비스 할당을 포함시킬 수 있다. 다른 실시예에서, 각 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(122))는 감독하는 모든 서비스 공급자들의 현재 처리 부하 및 기타 상태들을 알기 위해서, 소정 주기로 그 서비스 공급자들을 폴링(polling)하거나 그 서비스 공급자들에게 질문할 수 있다. 따라서, 서비스 공급자는 새로운 서비스 할당을 포함할 수 있다. 어떠한 통보에 r대해서도, 서비스를 완료하기 위한 시간의 길이가 임계치 미만인지 여부에 관한 결정이 내려질 수 있다. 그 길이가 임계치 미만인 경우, 서비스 공급자는 완료하기에는 너무 짧은 시간을 가지고 있기 때문에 할당된 서비스를 보고하지 않을 수 있다.
도 1에서, 서비스 공급자(예를 들어, 서비스 공급자(134)로부터 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))로의 새로운 서비스 할당 통지는 그 새로운 서비스 할당을 완료하기 위해 필요한 시간의 양의 추정을 포함할 수 있다. 그러나, 그 후, 상기 추정은 일단 동일 서비스 공급자로부터의 그 현재 부하 상태의 일괄 업데이트를 수신하면 서비스 위치 관리자에 의해 종결될 수 있다. 또, 새로운 서비스 할당 통지는 고정된 종결 시간을 가지고 서비스 로케이션공급자에 의해 발행될 수 있다. 예를 들어, 새로운 서비스 할당 통지는, 서비스 위치 관리자가 서비스 공급자가 이 서비스의 실행 때문에 얼마 동안 바쁠 것인지에 대한 고정 된 종결 시간과 함께 서비스 공급자에 의해서 주어질 수 있다.
하나의 실시예에서, 각 서비스 위치 관리자는, 각 서비스 공급자에 대하여, 그 서비스 공급자의 감독을 공유하는 다른 서비스 위치 관리자들의 리스트를 안다. 이 실시예에서는, 새로운 서비스를 서비스 공급자로 발송하는 서비스 위치 관리자가 동일 서비스 공급자를 감독하는 다른 서비스 위치 관리자들에게 새로운 할당을 통지하고 그에 따라서 그 다른 서비스 위치 관리자들이 각자의 서비스 공급자 상태 기록을 업데이트할 수 있도록 할 수 있다.
도 1의 시스템(100)에서, 다수의 서비스 위치 관리자들(예를 들어, 서비스 위치 관리자(120, 122))에 의해서 감독되는 서비스 공급자(예를 들어, 서비스 공급자(130))에 대하여, 서비스 공급자(130)의 리소스 사용가능성의 상태 업데이트가 모든 서비스 위치 관리자들(120, 122))에 다른 방식으로 제공될 수 있다. 예를 들어, 서비스 공급자(130)는 상태 업데이트를 하나의 서비스 위치 관리자(예를 들어, 서비스 위치 관리자(120))에 보낼 수 있고, 그 서비스 위치 관리자(120)는, 서비스 공급자(130)를 감독하는 다른 모든 서비스 위치 관리자들(예를 들어, 서비스 위치 관리자(122))의 리스트를 보유하고 있는 경우에, 그 상태 변화를 이들 다른 감독 서비스 위치 관리자들에게 제공할 수 있다. 또, 각 서비스 공급자가 그 서비스 공급자를 관리하는 서비스 위치 관리자들의 리스트를 보유하는 실시예들에서는, 서비스 공급자(130)가 상태 업데이트들을 감독하는 모든 서비스 위치 관리자들(120 및 122))에게 보낼 수 있다.
시스템(100)에서, 다수의 서비스 위치 관리자들에 의해서 공유될 서비스 공 급자(예를 들어, 서비스 공급자(130, 132, 134, 136))의 선택이 다양한 방식으로 폭넓게 이루어질 수 있다. 예를 들어, 상이한 서비스 위치 관리자들에 의해 감독되는 서비스 공급자들의 "영역"이 서로 잘 맞물리도록 공유할 서비스 공급자들은 무작위로 선택될 수 있다. 다른 실시예에서는, 서비스 공급자는, N개의 상이한 서비스 위치 관리자들에 의해서 각각 감독될 분리된 (서로 소) 집합으로 나누어질 수 있고, 이 경우, 하나의 집합에 속하는 서비스 공급자들을 감독하는 서비스 위치 관리자가 다른 집합에 속하는 서비스 공급자들을 감독하지는 않는다. 또, 공유할 서비스 공급자의 선택이 확률 분포에 의해서 결정될 수 있다. 예를 들어, 각 서비스 위치 관리자 집합과 각 서비스 공급자 집합 간의 거리들의 소정 추정은 주어지는 경우, 이러한 거리 추정은, 지리적 요인 및 네트워크 요인 중 적어도 하나에 의거한 것일 수 있고, 특정 서비스 공급자가 소정 서비스 위치 관리자에 의해서 감독될 확률은 둘이 서로 근접할수록 증가할 수 있다. 이러한 확률 분포는 서비스 위치 관리자로부터의 거리에 대한 가우시안 함수로 잘 표현된다. 각 서비스 위치 관리자는, 그 서비스 위치 관리자에 의해 감독되도록 선택된 서비스 공급자들에 대한 상기와 같은 타입의 확률 분포를 가질 수 있다. 따라서, 하나 이상의 서비스 위치 관리자에 가까운 서비스 공급자들이 하나 이상의 서비스 위치 관리자에 의해서 감독되도록 할당될 수 있다.
시스템(100)의 하나의 실시예에서는, "마스터"서비스 위치 관리자가, 시스템(100)의 모든 서비스 위치 관리자들의 처리 부하 및 네트워크상의 기타 컴퓨팅 디바이스까지의 네트워크 거리에 대한 기록을 보유함으로써, 그 모든 서비스 위치 관 리자들을 관리한다. 이러한 정보의 수집은 계층적으로 행해질 수 있다. 다른 실시예들에서는, 각 서비스 위치 관리자가 그 마스터와 직접 통신한다. 마스터 서비스 위치 관리자에 의해서 수집된 정보는 포털들(예를 들어, 포털들(140, 142)이 통신할 서비스 위치 관리자들을 선택하는 처리들에 이용할 수 있도록 분배될 수 있다. 또, 모든 포털은 그들의 요구를, 가장 큰 처리 용량을 갖거나 , 그 서비스 요구에 포함되는 클라이언트 디바이스 및 콘텐츠 소스에 대한 서비스 위치 관리자의 네트워크 거리 기록들에 따라 가장 좋은 위치에 놓인 서비스 위치 관리자들 쪽의 계층으로 전달하여, 그 요구의 할당을 취급할 서비스 위치 관리자로 보낼 수 있다.
도 2는 본 발명의 실시예에 따라 콘텐츠 소스(110)로부터의 콘텐츠를 서비스하고 클라이언트 디바이스(150)로 서비스 결과 콘텐츠를 전달하는 시스템(200)의 블록도이다. 구체적으로, 시스템(200)은 서비스 위치 관리자(120, 122)에 대한 내고장성(fault tolerance)을 구현하는 기능들 및 요소들을 포함한다. 도 1과 동일한 참조 번호를 갖는 도 2의 요소들은 유사하게 동작할 수 있다. 그러나, 몇 가지 차이점이 있다.
예를 들어, 시스템(200) 내에 도시한 바와 같이, 서비스 위치 관리자(122)에 대한 내고장성은 백업 서비스 위치 관리자(202)를 통해 제공될 수 있다. 이와 같이, 서비스 위치 관리자(122)가 본 명세서에 기술한 바와 같이 그 기록(들)을 업데이트할 때마다, 서비스 위치 관리자(122)는 화살표(204)로 나타낸 바와 같이 업데이트된 기록을 백업 서비스 위치 관리자(202)로 전송한다. 백업 서비스 위치 관리자(202)의 일부 기능은 서비스 위치 관리자(122)의 작동 상태를 이따금 또는 주기 적으로 체크하는 것이다. 백업 서비스 위치 관리자(202)는, 서비스 위치 관리자(122)가 비응답 또는 동작 불능인 경우, 서비스 위치 관리자(122)의 동작을 인계 받을 수 있다. 이는, 백업 서비스 위치 관리자(202)가 감독한 서비스 제공자들(예를 들어, 134, 136)의 지식(예를 들어, 사전 저장된 지식)과 함께 서비스 위치 관리자로부터의 업데이트된 기록을 갖기 때문이다. 또한, 백업 서비스 위치 관리자(202)가 서비스 위치 관리자(122)와 통신하고자 하는 포털(예를 들어, 142)의 리스트의 (예를 들어, 사전 저장되거나, 다른 서비스 위치 관리자 또는 포털로부터 수신된 통지로부터 얻어지는) 지식을 가질 때, 백업 서비스 위치 관리자(202)는 그들이 서비스 위치 관리자(122) 대신 백업 서비스 위치 관리자(202)와 통신하기 시작해야 한다는 것을 이들 코털에 통지한다. 또한, 서비스 위치 관리자(122)의 동작을 추정하자마자, 백업 서비스 위치 관리자(202)는 자기 자신의 백업 서비스 위치 관리자(도시하지 않음)를 모집하여 업데이트된 기록(들)을 제공하기 시작한다. 이 방식으로, 백업 서비스 위치 관리자(202)는 서비스 위치 관리자(202)에 대한 내고장성을 제공할 수 있다. 몇몇 실시예에서, 백업 서비스 위치 관리자(202)는 백업 뿐 아니라, 서비스 위치 관리자(122)가 비응답인 것으로 밝혀진 경우 서비스 위치 관리자(122)의 동작을 인계 받기 전에 포털로부터의 요청을 능동적으로 서비스한다. 시스템(200)의 모든 다른 서비스 위치 관리자(예를 들어, 120)는 백업 서비스 위치 관리자(202)와 유사한 백업 서비스 위치 관리자를 사용하여 구현될 수 있다는 점에 유의한다.
백업 서비스 위치 관리자(202)와 유사한 다른 서비스 위치 관리자는 함께 " 체인화"되어 부가적인 여분의 내고장성을 제공할 수 있다는 점에 유의한다. 예를 들어, 다른 서비스 위치 관리자들은 서로 체인화되어, 활동 서비스 위치 관리자(122)가 일렬로 단지 다음의 다른 서비스 위치 관리자(예를 들어, 202)를 업데이트하고, 이 관리자는 다음의 관리자 등을 업데이트한다. 대안으로, 다른 서비스 위치 관리자들은 서로 체인화될 수 있으며, 활성 서비스 위치 관리자(122)가 2개 이상의 다른 서비스 위치 관리자들을 업데이트하고 이들 서비스 위치 관리자들이 2개 이상의 또 다른 서비스 위치 관리자들 등을 업데이트할 수 있게 한다. 다른 실시예에서, 활성 서비스 위치 관리자(122)는 단지 제 1 백업 서비스 위치 관리자(202)를 업데이트한다. 그 후, 활성 서비스 위치 관리자(122)가 동작 불능이 되면, 제 1 백업 서비스 위치 관리자(202)는 활성 서비스 위치 관리자가 되어 다음에 오는 제 2 백업 서비스 위치 관리자를 연쇄적으로 업데이트하기 시작한다. 상기 예들 모두의 경우, 다른 서비스 위치 관리자는 활성이 되고, 단지 백업으로서 기능하는 대신, 시스템(200)이 동작하는 모든 시간에 포털로부터의 서비스 요청을 처리할 수 있다.
도 2 내에서, 시스템(200) 내에 포함된 다른 내고장성은 유휴 상태이거나 비활성 상태인 서비스 위치 관리자(208)이다. 구체적으로, 서비스 위치 관리자(120)와 상호작용하는 포털(예를 들어, 140 또는 142)은 동작 불능 상태인지 비응답 상태인지를 결정할 수 있다. 그러한 경우, 포털(예를 들어, 140)은 화살표(210)로 나타낸 유휴 상태 서비스 위치 관리자(208)에 접촉하여 서비스 위치 관리자(120)에 의해 이전에 감시된 영역에 대한 서비스 위치 관리자로서의 동작을 시작하게 할 수 있다. 서비스 위치 관리자 기능은 이미 유휴 상태 서비스 위치 관리자(208)의 일부가 되지만 이 기능은 비활성이거나, 또는 유휴 상태 서비스 위치 관리자(208)는 다른 기능으로 동작하고 있다는 점에 유의한다. 또한, 유휴 상태 서비스 위치 관리자(208)는 감독하여 서비스 위치 관리자(120)의 동작을 추정하는 서비스 제공자(예를 들어, 130, 132)의 지식을 갖는다. 일 실시예에서, 서비스 위치 관리자(120)가 동작 불능이 되기 전에, 서비스 위치 관리자(120)는 화살표(212(로 나타낸 하나 이상의 포털(예를 들어, 140)로 업데이트된 기록(들)을 전송하도록 구현된다. 따라서, 일단 서비스 위치 관리자(120)가 동작불능이라는 것을 포털(1401)이 판정하면, 포털(140)은 또한 화살표(210)로 나타낸 서비스 위치 관리자(120)의 업데이트된 기록(들)을 서비스 위치 관리자(208)에 제공할 수 있다. 이 기능은 본 명세서에서 설명한 본 발명의 하나 이상의 실시예들에 통합될 수 있다.
도 3은 스트리밍 미디어 서비스를 관리하기 위해 본 발명의 실시예에 따라 수행되는 동작의 순서도(300)이다. 순서도(300)는 컴퓨터 판독가능 및 컴퓨터 실행가능 인스트럭션의 제어 하에 프로세서(들) 및 전기 요소에 의해 실행될 수 있는 본 발명의 실시예들의 예시적인 프로세스들을 포함한다. 컴퓨터 판독가능 및 컴퓨터 실행가능 인스트럭션은, 예를 들어, 컴퓨터 사용가능 휘발성 메모리, 컴퓨터 사용가능 비휘발성 메모리 및/또는 컴퓨터 사용가능 대량 데이터 저장소와 같은 데이터 저장 특징부에 존재한다. 그러나, 컴퓨터 판독가능 및 실행가능 인스트럭션은 임의의 타입의 컴퓨터 판독가능 미디어에 존재한다. 순서도(300)에는 특정한 동작들이 개시되고 있으나, 이러한 동작들은 예시적인 것이다. 즉, 본 실시예는 도 3 에 인용된 동작들 외의 다른 다양한 동작들 또는 그 변형을 수행하는 데 매우 적합하다. 순서도(300)의 동작들은 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 임의의 조합에 의해 수행될 수 있다는 점에 유의한다.
동작(302)에서, 스트리밍 미디어 서비스에 대한 요청은 클라이언트로부터 수신되며, 이 스트리밍 미디어 서비스는 미디어 서비스 요소를 포함한다. 동작(302)은 본 명세서에서 설명한 바와 유사한 임의의 방법으로 구현될 수 있으나, 그러한 것으로 제한되지 않는다.
도 3의 동작(304)에서, 요청을 제공하는 서비스 위치 관리자는 복수의 서비스 위치 관리자로부터 선택된다. 동작(302)은 본 명세서에서 설명한 바와 유사한 임의의 방법으로 구현될 수 있으나, 그러한 것으로 제한되지 않는다.
동작(306)에서, 미디어 서비스 요소를 할당받은 서비스 제공자는 네트워크의 복수의 서비스 제공자로부터 선택된다. 동작(306)은 본 명세서에서 설명한 바와 유사한 임의의 방법으로 구현될 수 있으나, 그러한 것으로 제한되지 않는다.
도 3의 동작(308)에서, 미디어 서비스 요소를 수행하도록 선택된 서비스 제공자는 그 할당이 통지되어, 요청된 스트리밍 미디어 서비스가 스트리밍 미디어에 대해 수행되게 한다. 동작(308)은 본 명세서에서 설명한 바와 유사한 임의의 방법으로 구현될 수 있으나, 그러한 것으로 제한되지 않는다.
본 발명의 구체적인 실시예들에 대한 상기 설명은 예시로서 이루어졌다. 상기 실시예들이 전부가 아니며, 본 발명은 상기한 실시예들로 제한되지 않고, 상기한 바의 관점으로부터 다양한 변형 및 변경이 가능하다. 본 발명의 원리 및 그 실 제적인 응용을 가장 잘 설명하기 위해서 상기 실시예들을 선택하여 설명하였다. 따라서, 당업자라면, 본 발명 및 특정 용도에 적합한 다양한 변형예들을 포함하는 실시예들을 구현하여 가장 잘 사용할 수 있을 것이다. 본 발명의 범주는 본 명세서에 첨부한 청구범위 및 그 등가에 의해 규정된다.

Claims (10)

  1. 스트리밍 미디어 서비스를 관리하는 방법(300)으로서,
    스트리밍 미디어 서비스 - 상기 스트리밍 미디어 서비스는 미디어 서비스 요소를 포함함 - 에 대한 요청을 클라이언트(150)로부터 수신하는 단계와,
    상기 요청을 제공하는 서비스 위치 관리자(120)를 복수의 서비스 위치 관리자(120, 122)로부터 선택하는 단계(304)와,
    상기 미디어 서비스 요소를 할당하는 서비스 제공자를 네트워크의 복수의 서비스 제공자(130, 132, 134, 136)로부터 선택하는 단계(306)와,
    상기 미디어 서비스 요소를 수행하기 위해, 상기 서비스 제공자(130)에게 상기 할당을 통지하여, 상기 서비스 제공자가 스트리밍 미디어에 대한 상기 스트리밍 미디어 서비스를 수행할 준비를 하게 하는 단계(308)를 포함하는
    스트리밍 미디어 서비스 관리 방법.
  2. 제 1 항에 있어서,
    상기 서비스 위치 관리자 선택 단계(304)는,
    상기 복수의 서비스 위치 관리자 중에서 서비스 위치 관리자의 식별 정보를 포함하는 기록을 유지하는 단계와,
    상기 기록에 따라 상기 서비스 위치 관리자를 선택하는 단계를 포함하는
    스트리밍 미디어 서비스 관리 방법.
  3. 제 1 항에 있어서,
    상기 서비스 위치 관리자 선택 단계(304)는,
    상기 복수의 서비스 위치 관리자 중에서 사용가능한 서비스 위치 관리자 집합의 우선순위 리스트를 포함하는 기록을 유지하는 단계와,
    상기 기록 리스트의 우선순위에 따라 상기 서비스 위치 관리자를 선택하는 단계를 포함하는
    스트리밍 미디어 서비스 관리 방법.
  4. 제 1 항에 있어서,
    상기 서비스 위치 관리자 선택 단계(304)는,
    상기 복수의 서비스 위치 관리자 중에서 사용가능한 서비스 위치 관리자 집합에 대한 식별 정보를 포함하는 기록을 유지하는 단계와,
    상기 기록으로부터 무작위로 상기 서비스 위치 관리자를 선택하는 단계를 포함하는
    스트리밍 미디어 서비스 관리 방법.
  5. 제 1 항에 있어서,
    상기 서비스 위치 관리자 선택 단계(304)는,
    상기 복수의 서비스 위치 관리자 중에서 사용가능한 서비스 위치 관리자 집합에 대한 식별 정보를 포함하는 기록을 유지하는 단계와,
    상기 기록으로부터 라운드 로빈(round robin) 방식으로 상기 서비스 위치 관리자를 선택하는 단계를 포함하는
    스트리밍 미디어 서비스 관리 방법.
  6. 제 1 항에 있어서,
    상기 서비스 위치 관리자 선택 단계(304)는,
    상기 복수의 서비스 위치 관리자 중에서 사용가능한 서비스 위치 관리자 집합에 대한 식별 정보를 포함하는 기록을 유지하는 단계와,
    최소의 처리 부하를 갖는 상기 기록으로부터 상기 서비스 위치 관리자를 선택하는 단계를 포함하는
    스트리밍 미디어 서비스 관리 방법.
  7. 제 1 항에 있어서,
    상기 단계(304)는 포털(140)에 의해 수행되는
    스트리밍 미디어 서비스 관리 방법.
  8. 제 1 항에 있어서,
    상기 서비스 위치 관리자 선택 단계(304)는 최단의 미결정 요청 큐, 상기 요청의 서비스 시의 최저 예측 대기시간, 또는 현재 사용가능한 최대 통신 대역폭을 갖는 서비스 위치 관리자에 기초하는
    스트리밍 미디어 서비스 관리 방법.
  9. 제 1 항에 있어서,
    상기 서비스 위치 관리자 선택 단계(304)는 네트워크 조건에 기초하는
    스트리밍 미디어 서비스 관리 방법.
  10. 제 9 항에 있어서,
    상기 네트워크 조건은 상기 클라이언트와 관련되는
    스트리밍 미디어 서비스 관리 방법.
KR1020057022066A 2003-05-19 2004-05-13 스트리밍 미디어 서비스 관리 방법 KR100671635B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US47185103P 2003-05-19 2003-05-19
US60/471,851 2003-05-19
US10/698,196 2003-10-30
US10/698,196 US20050005019A1 (en) 2003-05-19 2003-10-30 Service management using multiple service location managers

Publications (2)

Publication Number Publication Date
KR20060017798A true KR20060017798A (ko) 2006-02-27
KR100671635B1 KR100671635B1 (ko) 2007-01-19

Family

ID=33479300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057022066A KR100671635B1 (ko) 2003-05-19 2004-05-13 스트리밍 미디어 서비스 관리 방법

Country Status (6)

Country Link
US (1) US20050005019A1 (ko)
EP (1) EP1627500B1 (ko)
KR (1) KR100671635B1 (ko)
AT (1) ATE374483T1 (ko)
DE (1) DE602004009176T2 (ko)
WO (1) WO2004105314A2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117529B2 (en) * 2004-06-28 2012-02-14 Sap Ag Object based navigation
US8650178B2 (en) * 2005-01-07 2014-02-11 Thomson Reuters Global Resources Systems, methods and software for distributed loading of databases
TW200627258A (en) * 2005-01-27 2006-08-01 Lite On Technology Corp Medium transfer-recording control method and the embedded system using the same
JP4701018B2 (ja) * 2005-06-22 2011-06-15 キヤノン株式会社 通信装置及び通信方法
US8386629B2 (en) * 2007-12-27 2013-02-26 At&T Intellectual Property I, L.P. Network optimized content delivery for high demand non-live contents
CN102246156A (zh) * 2008-10-14 2011-11-16 惠普开发有限公司 在网络系统中管理事件流量
EP2449828B1 (en) * 2009-06-29 2018-04-25 Telefonaktiebolaget LM Ericsson (publ) Method and arrangement in a wireless communication system
US8312175B2 (en) * 2010-01-21 2012-11-13 Vmware, Inc. Virtual machine access to storage via a multi-queue IO storage adapter with optimized cache affinity and PCPU load balancing
CN102137133B (zh) * 2010-01-22 2015-01-21 华为技术有限公司 内容分发的方法、系统及调度服务器
WO2013042598A1 (en) * 2011-09-22 2013-03-28 Nec Corporation Communication terminal, communication method, and program
US9135274B2 (en) * 2012-11-21 2015-09-15 General Electric Company Medical imaging workflow manager with prioritized DICOM data retrieval
US9300728B1 (en) * 2013-10-14 2016-03-29 Ca, Inc. Controlling resource deployment thresholds in a distributed computer system
US9900744B2 (en) * 2015-08-03 2018-02-20 At&T Intellectual Property I, L.P. Location based provisioning and broadcasting of content utilizing a multimedia broadcast service
EP3188015A1 (en) * 2015-10-05 2017-07-05 Axis AB Requesting and receiving a media stream within a networked system
US9813396B2 (en) 2015-10-30 2017-11-07 Rovi Guides, Inc. Methods and systems for managing content subscription data
US10178421B2 (en) * 2015-10-30 2019-01-08 Rovi Guides, Inc. Methods and systems for monitoring content subscription usage

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US6055433A (en) * 1996-09-20 2000-04-25 Northern Telecom Limited Data processing system and method for balancing a load in a communications network
US5937388A (en) * 1996-12-05 1999-08-10 Hewlett-Packard Company System and method for performing scalable distribution of process flow activities in a distributed workflow management system
US6412004B1 (en) * 1997-03-27 2002-06-25 Microsoft Corporation Metaserver for a multimedia distribution network
US6442165B1 (en) * 1998-12-02 2002-08-27 Cisco Technology, Inc. Load balancing between service component instances
US6516350B1 (en) * 1999-06-17 2003-02-04 International Business Machines Corporation Self-regulated resource management of distributed computer resources
US6529950B1 (en) * 1999-06-17 2003-03-04 International Business Machines Corporation Policy-based multivariate application-level QoS negotiation for multimedia services
US6463454B1 (en) * 1999-06-17 2002-10-08 International Business Machines Corporation System and method for integrated load distribution and resource management on internet environment
US20020152305A1 (en) * 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US20030046396A1 (en) * 2000-03-03 2003-03-06 Richter Roger K. Systems and methods for managing resource utilization in information management environments
TW532040B (en) * 2000-10-20 2003-05-11 Koninkl Philips Electronics Nv Method and system for transferring a communication session
US6981029B1 (en) * 2001-07-17 2005-12-27 Cisco Technology, Inc. System and method for processing a request for information in a network
US7274659B2 (en) * 2001-07-27 2007-09-25 Western Digital Ventures, Inc. Providing streaming media data

Also Published As

Publication number Publication date
EP1627500B1 (en) 2007-09-26
DE602004009176T2 (de) 2008-07-10
WO2004105314A3 (en) 2005-01-20
ATE374483T1 (de) 2007-10-15
WO2004105314A2 (en) 2004-12-02
EP1627500A2 (en) 2006-02-22
DE602004009176D1 (de) 2007-11-08
KR100671635B1 (ko) 2007-01-19
US20050005019A1 (en) 2005-01-06

Similar Documents

Publication Publication Date Title
US7613768B2 (en) Method and system for managing a streaming media service
KR100671635B1 (ko) 스트리밍 미디어 서비스 관리 방법
JP4972409B2 (ja) ノード及びネットワークの特性を考慮したサービスロケーション管理を行うためのシステム
KR101028639B1 (ko) 관리된 객체 복제 및 전달
US10567493B2 (en) Intelligent predictive stream caching
EP2359536B1 (en) Adaptive network content delivery system
US20150264002A1 (en) Alerting on dual-queue systems
US11675501B2 (en) Streaming data service with isolated read channels
Moharir et al. Serving content with unknown demand: the high-dimensional regime
KR100823732B1 (ko) 스트리밍 서비스를 위한 컨텐츠 제공 시스템 및 그 방법
CN117642724A (zh) 使用无服务器计算系统的流式分析
KR100755617B1 (ko) 스트리밍 미디어를 위한 서비스 위치 관리 방법
JP7477251B2 (ja) シングル・ページ・アプリケーションのキャッシャビリティの改善方法、システム、プログラム
KR100733247B1 (ko) 클라이언트 디바이스로의 전송을 위한 콘텐츠를 서비스하는 방법, 클라이언트 디바이스에 콘텐츠를 제공하는 시스템 및 컴퓨터 판독가능한 기록 매체
JP2007516499A (ja) クライアントデバイスによって要求されたコンテンツにサービスを提供するプロバイダが選択されるシステム及び方法
JP5192506B2 (ja) ファイルキャッシュの管理方法、装置、及び、プログラム
US11070600B1 (en) Optimization techniques to support lagging readers at streaming data service
US20190319901A1 (en) Scalable, real-time messaging system
US12020081B2 (en) Method to implement multi-tenant/shared redis cluster using envoy
KR100727738B1 (ko) 서비스 제공자 간의 미디어 서비스 세션의 핸드오프 관리방법과 장치 및 네트워크 시스템
KR20240134428A (ko) 스트리밍 미디어 서비스 관리 방법
JPH11164283A (ja) 動画ファイル配置方法及びシステム及び動画ファイル配置プログラムを格納した記憶媒体
CN114402577B (zh) 单页应用的缓存能力

Legal Events

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

Payment date: 20130102

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180110

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20200205

Year of fee payment: 14