JP3627005B2 - インターネット環境での負荷の分散とリソース管理を統合したシステム及び方法 - Google Patents

インターネット環境での負荷の分散とリソース管理を統合したシステム及び方法 Download PDF

Info

Publication number
JP3627005B2
JP3627005B2 JP2000180514A JP2000180514A JP3627005B2 JP 3627005 B2 JP3627005 B2 JP 3627005B2 JP 2000180514 A JP2000180514 A JP 2000180514A JP 2000180514 A JP2000180514 A JP 2000180514A JP 3627005 B2 JP3627005 B2 JP 3627005B2
Authority
JP
Japan
Prior art keywords
replica
server
demand
capacity
controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000180514A
Other languages
English (en)
Other versions
JP2001067377A (ja
Inventor
レオン・エル・ルメルスキー
ネルソン・アール・マノアー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2001067377A publication Critical patent/JP2001067377A/ja
Application granted granted Critical
Publication of JP3627005B2 publication Critical patent/JP3627005B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0882Utilisation of link capacity
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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
    • 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/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • 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/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5022Workload threshold
    • 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/5003Managing SLA; Interaction between SLA and 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
    • 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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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]

Description

【0001】
【発明の属する技術分野】
本発明は、一般的には、広く分散したコンピュータ・ネットワーク環境のリソースに対する需要の監視、管理、分散を行う方法に関し、特に、Webやマルチメディアのサーバの負荷を分散し、複数のWeb、マルチメディア・サーバにわたってリソースを管理、分散する新規なシステム及び方法に関する。
【0002】
【従来の技術】
図1は、代表的なコンピュータ・システム(10)を示す。複数のクライアント(110、111、112)、複数のサーバ(120、121、122)、及び独立したオブジェクトの集合(130、131、132)が含まれる。これらの要素はコンピュータ・ネットワーク環境(160)により接続され、クライアント(111等)はサーバにリクエスト・メッセージ(140)を直接送ることができる。このシステムでは、サーバ(121等)が、要求元のクライアント(111等)にオブジェクトを配信するためストリーミング接続(150)を確立することができる。この環境は、ブラウザがクライアントを代表し、Webサーバがサーバを代表し、Webサイトがオブジェクト群を代表し、インターネットがコンピュータ・ネットワーク環境を代表するインターネットで一般的である。周知の通り、クライアントは、HTTPプロトコルによりURL(Universal Resource Locator)と呼ばれる位置IDを介してサーバにオブジェクトを要求することができる。TCP(Transmission Control Protocol)は、オブジェクト(Webページやビデオ・ファイル等)をWebサーバからクライアントにストリーミングできるようにする。
【0003】
図2は、図1の環境に見られるようなサーバ(120等)の要素を詳しく示す。サーバは、メモリ(210)、CPU(220)、ディスク記憶装置(230)、ネットワーク帯域幅(240)等で構成される一定量のローカル・リソース(200)を含む。サーバはオブジェクトの集合(130)に関連付けられる。この例の集合は4つのオブジェクト(281、282、283、284)で構成される。再生時のVTR操作(一時停止、巻戻し、停止、早送り等)、請求処理、セキュリティ等のクライアントとの相互作用は、サーバのサービス・ロジック・コンポーネント(250)により処理される。サーバは、シグナリング・プロトコル(261)(HTTP等)によりクライアントからリクエスト(140等)を受信できる。クライアント(111等)がサーバの集合上のオブジェクト(281等)にアクセスするとき、サーバはそのリソース(200)の一部を対応するストリーミング接続(150)に割当てる。リソースは有限なので、受信されるリクエストに対応できるかどうかを判定するためにローカルの受け入れ管理プロセス(260)が用いられる。サーバのローカル・リソース(200)(図2に示すようなディスク記憶装置(HDD)、帯域幅(B)、CPUサイクル(CPU)、メモリ(MeM)等)の予約、アクセス、監視、割当て解除のためローカル・リソース管理プロセス(270)が用いられる。ネットワーク・ストリーミング・プロセス(275)は、ストリーミング・プロトコル(271)により、クライアントにコンテンツを配信するため、クライアントとのストリーミング接続(150等)を確立/維持する。リソース管理は、(120等)どのサーバでも、他のサーバ(121等)でのリソース管理から完全に独立している。更に、サーバ上の集合(130、131等)は相互に独立している。特に、別個のサーバ(120、121)上の2つの別個の集合(130、131)に同じオブジェクト(例えばオブジェクトO4)のコピー(281、285)が存在することがあるが、これらのコピー(281、285)を互いに関連付ける手段は存在しない。
【0004】
図3に示すように、分散コンピュータ・システム10(図1)は、オブジェクト・リクエスト・ブローカ(ORB)として実現され、オブジェクト・サイトの集合(130、131、132)に関してディレクトリ・サービスを提供し、位置の透過性をクライアント(110、111、112等)まで拡張し、分散したオブジェクト集合(130、131、132)にオブジェクト(例えばメディア・コンテンツ・ファイルO4)を要求する、オブジェクト・ディレクトリ・サービス(300)を採用できる。オブジェクト・ディレクトリ・サービス(300)は、コンピュータ・ネットワーク環境(160)の任意のオブジェクトを見つけるため必要な情報を提供する。採用されるディレクトリ(310)は、特にオブジェクトに関連付けられたサーバを追跡する。例えば第1ディレクトリ・エントリは、オブジェクト281がサーバ120で見つかったことを示し、第2ディレクトリ・エントリはオブジェクト285がサーバ121で見つかったことを示す。
【0005】
広く分散したコンテンツやリソースが利用しやすくなっており、この状況を活用することが、次世代のインターネット(インターネット2等)の発展とともに重要になっている。新たに登場したインターネット・プロジェクトは、ブロードバンド・ネットワークの機能をフルに活用する新世代アプリケーションに向けた先進的ネットワークの構築を目指している。極めて大きい帯域幅と帯域幅予約により、連続デジタル・ビデオ/オーディオ等のリソースを、研究用途からより広い用途に振り向けることができ、現在はまだ不可能な方法でイメージ、オーディオ、ビデオを追加することができる。このように広く分散した環境では、信頼でき、効率のいい、自主規制によるリソース管理が望ましく、また、最も重要なことは、そのような管理の必要性である。
【0006】
次世代に向けたインターネットの動きに拍車をかけているのは、豊富なマルチメディア・コンテンツの商用利用である。企業が作成するデジタル・ライブラリ、映画業界が作るエンタテインメント、大学が作る対話型教育用プレゼンテーション等がまもなくインターネットで利用できるようになり、新たに幅広い収益源が創り出される。
【0007】
新しいインターネットは、現在のインターネット・プロバイダより数倍大きい帯域幅に依存する。また、予約と監視の機構を導入することでネットワーク・リソース管理とQoS(サービス品質)管理を軽減している。しかし、現在まで、複数のメディア接続を集中的に管理し、ワイド・エリア・ネットワークで複数のサーバに及ぶリソースの共有状態を効率よく活用するような機構は登場していない。
【0008】
こうした新しい用途の商用利用については、主に3つの条件が考えられている。第1に、サービス・プロバイダがサービスの品質を保証し、保証した品質をサポートするため必要なインフラ要素やリソースを予約するため、支払い側のユーザがサービス・プロバイダと契約を結ぶメカニズムが必要である。第2に、リソースの供給は、アーキテクチャ研究時には全く予測できない可能性のあるランダムな需要の変化に対応するに充分でなければならない。第3に、サービス・プロバイダは、動的に再構成可能な分散仮想リソースの消費に関して、効果的なセキュリティ対策、権利とロイヤルティの管理、計算、請求等を行うシステムに、安心して依存できなければならない。
【0009】
現在のインターネットでは、リソース管理の焦点は、あるとすれば、サーバ・リソースに対する個々の独立したメディア接続の設定と管理に関係する。しかし、コンテンツの複数のプライマリ・ソースをプレゼンテーションに再利用するとき、このアプローチの危うさがはっきりする。複数のコンテンツ・ソースを再利用する際、必要な品質を保ち、使い方や配布を管理するたの方法は2つある。1つは、全てのコンテンツを作成時に1つのサーバ(またはサーバ・クラスタ)にコピーし、必要な場合は、予測需要に従って、最終結果をできるだけ多くのサーバに複製することである。プライマリ・コンテンツ・プロバイダはその場合、アプリオリな市場分析をもと著作権使用料を設定する。その利点としては、配布、セキュリティ、請求等の機能が、コンテンツが分散している場合に比べてかなり容易になる。欠点としては、需要予測が外れた場合、プライマリ、セカンダリ(つまり再利用)いずれのコンテンツのプロバイダも最大の利益が得られない。最後に、最も危険な問題は、このアプローチはリソースのオーバエンジニアリング(過剰品質)につながる一方、過剰なリクエストの脱落を防ぐことができない。しかしこアプローチは現在のインターネットの典型である。現在のマルチメディア・コンテンツは、一般的には、新しいマルチメディア・アプリケーションに比べてメモリを浪費しないからである。
【0010】
もう1つのアプローチは、作成、配布いずれの場合についても、必要に応じてコンテンツを再構成することである。これにより、コンテンツを一度記憶すれば何回でも必要に応じて使用でき、コンテンツとリソースの使用状態に応じた使用料を設定でき、記憶域を少なくすることができる。ただし、システムは、しばしば雑多になる複数のリソースを動的に管理する必要がある。またこのアプローチでは、セキュリティとリソース・エンジニアリングが悪化する。特定のセグメントが、全く異なる垂直アプリケーションにさえも使用される可能性があるため、そのセグメントに対する需要は全く予測できない。1つのセグメントに対する需要を満足できない場合、複数のアプリケーションが影響を受ける。このアプローチはしかし、将来のインターネットには唯一実際的な方法である。リソースの観点からは最も経済的であり、最大数のユーザに対応できるからである。
【0011】
従って、主な商用利用条件3つを全て満足する装置及び方法を提供することが特に望まれる。
【0012】
QoSドリブンのリソース管理分野に関する出版物や特許は少なくない。それらの大半は、M.J.Baugherらによる1995年2月7日付米国特許第5388097号、System and Method for Bandwidth Reservation for Multimedia Traffic in Communication Networks及び同M.J.Baugherらによる1996年12月3日付米国特許第5581703号、Method and Apparatus for Reserving System Resources to assure Quality of Serviceに述べられているように、ネットワークに焦点を当てているか、またはK.Y.YauとSimon S.LamによるAn Architecture Towards Efficient OS Support for Distributed Multimedia(Proceedings of IS&T/SPIE Multimedia Computing and Networking Conference ’96、San Jose、CA、January 1996)に述べられているように、オペレーティング・システムに焦点を当てている。インターネットでマルチメディア・サービスが増殖してまもなく、IPネットワークは、シンプル且つ最善の配信サービスを提供できるが、IPプロトコルは、マルチメディア・ストリーミング、仮想現実関係のアプリケーション、分散スーパーコンピューティング等の新しいリアルタイム・アプリケーションには向いていないことがわかってきた。その結果、RSVP((Resource Reservation Setup Protocol)、Ian FosterとCarl Kesselmanが編集したThe Grid:Blueprint for a New Computing Infrastructure、Chapter 19、pp.379−503、Morgan Kauffman Publishers、1999を参照)、RTP(Real Time Transport Protocol)、RTCP(Real Time Transport Control Protocol)等の新しいネットワーク・プロトコルが開発され(例えば、William StallingsのHigh−Speed Networks:TCP/IP and ATM Design Principles、Prentice Hall、1997、I.Busse、B.Deffner、及びH.SchulzrinneによるDynamic QoS Control of Multimedia Applications based on RTP、Computer Communications、January 1996を参照)、帯域幅、待ち時間等のネットワークQoSパラメータをアプリケーションから要求し交渉できるようになっているが、こうしたプロトコルを現在のインターネットに展開する試みは成功していない。その理由は第1に、RSVP以外のルータやサーバのシステム・ソフトウェアを全てアップグレードする必要があるからである。第2に、現在のインターネットにRSVPを配備したとしても、帯域幅やコンピューティング・リソースがかなり制限されるため、これがリアルタイム・アプリケーションを軌道に乗せる上で障害になる。現在のインターネットはバックボーン上に構築されたもので、比較的障害のないT3(45メガビット毎秒)で国際通信が可能であるが、グラフィック・ページの増加と、ストリーミング・オーディオ/ビデオのアプリケーションが、こうしたリソースをかなりのスピードで奪ってしまった。更にユーザの増加率は、新しく構築されるネットワーク・リソースのそれよりかなり高い。
【0013】
米科学財団とMCIは、インターネット・コミュニティの新しいニーズに応えて、vBNS(very−high−performance Backbone Network Service)と呼ばれる新しいネットワークを構築している。これは全米規模のネットワークであり、2つの財団のバックボーンにもなっている(インターネット2と呼ばれる大学主導のプロジェクトと連邦研究機関による新世代インターネット)。vBNSでは、接続している機関のほとんどで6億2200万ビット毎秒(OC12)の速度が得られる。2000年までに2.4ギガビット毎秒(2400メガビット毎秒)での運用が予定されている。
【0014】
vBNSシステムは、RSVPプロトコルを利用して2種類のサービスをサポートする。予約帯域幅サービス、つまり帯域幅をコミットしたサービスと、従来の最善のIPサービス(Chuck Song、Laura Cunningham、Rick WilderによるQuality of Service Development in the vBNS、MCI Communications Corporation、URLはhttp://www.vbns.net/presentations/papers/QoSDev/ieeegos/htm等を参照)である。しかし、vBNSのネットワーク層でのリソース管理は、オペレーティング・システム層から分離して行われ、アプリケーションのニーズから、また記憶域やコンピューティング・リソース等の末端のリソースの可用性から分離している。
【0015】
遠隔手術、ロボット工学、遠隔計装(tele−instrumentation)、緊急時自動応答(automated crisis response)、衛星データのデジタル・ライブラリ、マルチメディアをサポートするWebサイトを介した遠距離学習、拡張オーディオ/ビデオ等、新世代の高性能アプリケーションが登場しているが、こうした高性能アプリケーションとその連続的メディア・フローに対応するには、ネットワーク容量の増加や予約だけでは充分ではない。これらの新しいアプリケーションには、エンド・ツー・エンドのリソース予約と受け入れ管理、及び次のような分散機能の調整が必要である。a)エンドシステムでのリソース・スケジューリング(CPU、ディスク等)、b)ネットワークのパケット・スケジューリングとフロー制御、c)エンド・ツー・エンドの配信サービス品質の監視。サービス品質は、設定可能、予測可能、及びエンドシステム・デバイス、通信サブシステム、ネットワークを含めたシステム全体で維持できることが重要である。更に、分散システム・アーキテクチャのエンド・ツー・エンド要素は全て、求められるアプリケーション・レベルの動作を達成するために一致協力する必要がある。
【0016】
現在まで、エンド・ツー・エンドのサービス品質サポートを開発するため多大な労力が注ぎ込まれている。例えば、IBMの欧州ネットワーク・センターのHeiProjectで開発され、C.Volg、L.Wolf、R.Herrtwich、H.WittigによるHeiRAT−Quality of Service Management for Distributed Multimedia Systems(Multimedia Systems Journal、1996)で説明されているHeidelberg QoSモデル、コロンビア大学のCOMETグループが開発し、A.T.Campbell、A.A.Lazar、H.Schulzinne、R.StadlerによるBuilding Open Programmable Multimedia Networks(Computer Communications Journal、Vol.21、No.8、pp.758−770、June 1998)に説明されているようなXRM(Extende Integrated Reference Model)、ペンシルヴァニア大学の学際的研究プロジェクトで開発され、K.NahrstedtとJ.SmithによるDesign、Implementation and Experiences of the OMEGA End−Point Architecture(Technical Report(MS−CIS−95−22)、University of Pennsylvania、May 1995)に説明されているようなOMEGAエンドポイント・アーキテクチャ、IETF(Internet Engineering Task Force)の成果で、Y.BernetらによるA Framework for End−to−End QoS Combining RSVP/Intserv and Differentiated Services(Internet Draft、IETF、March 1998)に説明されているようなイン・サーブ・アーキテクチャ(in−serv Architecture)、A.Campbellにより開発され、エンド・ツー・エンドQoSの要件を扱う統合フレームワークを提供し、Andrew T.CampbellによるA Quality of Service Architecture(PhD thesis、Lancaster University、January 1996)に説明されているような、サービス品質アーキテクチャQoS−A等がある。前記のQoS文献を分析している他の参考書として、C.Aurrecoechea、A.T.Campbell、L.HauwによるA Survey of QoS Architectures(ACM/Springer Verlag、Multimedia Systems Journal、Special Issue on QoS Architecture、Vol.6、No.3、pp.138−151、May 1998)がある。
【0017】
SRI Internationalは、充分な調査研究活動の後、ERDoS(End−to−End Resource Management of Distributed Systems)を開発している。ERDoSは、ERDoS QoS Architecture(Technical Report、SRI International、May 1998)に述べられているように、分散システムのリソース管理をエンド・ツー・エンドで、適応的且つスケーラブルに行えるようにする。拡張可能なRSL(Resource Specification Language)とリソース管理アーキテクチャが、Globusメタコンピューティング・ツールキットに実装されており、K.CzajkowskiらによるA Resource Management Architecture for Metacomputing Systems(Proc.IPPS/SPDP ’98 Workshop on Job Scheduling Strategies for Parallel Processing、1998)、及びI.Foster、C.KesselmanによるThe Globus Product:A Status Report(Proc.IPPS/SPDP ’98 Heterogeneous Computing Workshop、pp.4−18、1998)に述べられているように、様々なリソース管理方式を実装するため使用される。
【0018】
前記の参考書に述べられているアーキテクチャは、エンド・ツー・エンドのリソースの予約と管理を対象にしているが、一般的には、地理的に限定され、遅延やエラーを制限し、帯域幅の需要に応えるネットワーク・サブシステムと、実行時のQoSを保証できるオペレーティング・システムを想定している。しかし、次世代インターネットは、ネットワークのネットワークとしてだけでなく、まず第1に分散システムのシステムとして捉えるべきである。このパラダイムでは、通信リソースだけでなく、コンピューティング・サーバや記憶サーバも多数のユーザによって共有される。
【0019】
従って、前記のアーキテクチャは、個々のコンテンツやコンピューティング・リソースに対するリクエスト・アクティビティの機能としてシステム・リソース全体の管理を調整するものではなく、特定のサービスに予め割当てられたリソースを扱うものである。従って、サービス品質は、サービスに対するリクエストの増加に対応していくうち、増加量が設定された限度を超える結果低下するほかない。前記のアーキテクチャは、アプリケーションにより要求されるようなQoSを提供することに焦点を当てており、特定のサービスに対するユーザ・リクエスト間の共通性によりリソースを統合する可能性を活かしていない。
【0020】
例えば、特定のマルチメディア・コンテンツの利用履歴について、短い時間間隔でのリクエストの集中、リクエスト元アドレスの近接性等の共通性を発見することが望ましい。また、先に示したアーキテクチャでは、個々のサービスについても、関連サービスのグループについても、個々のクライアントにとってのサービス・コストを計算するため、リソースの消費を動的に監視し記録することはできない。
【0021】
【発明が解決しようとする課題】
従って、適応型リソース管理機能を提供でき、次世代のインターネットに適した環境のニーズに合わせて、システム容量をオンデマンドで調整できる機構を提供することが特に望まれる。
【0022】
また、容量調整機構を、広く分散したメディア・サーバの集合に対して負荷の分散を管理しドライブする機能と統合することのできる機構を提供することが望まれる。
【0023】
【課題を解決するための手段】
本発明は、将来のコンピュータ・ネットワーク環境のユニークな特性を活かし、マルチメディア・コンテンツとリソースを管理するシステム及び方法を提供する。
【0024】
特に、本発明の目的は、インターネット/Web(World Wide Web)でリソースの分散を管理し、リソースを共有、プールし、クライアントとサーバの間に、マルチメディア・オブジェクトに対するリクエストの管理とサーバへの分散/配備を行う中間管理ノードを実装する他、所定基準に従ってオブジェクトのサーバへの配備を管理するシステム及び方法を提供することである。
【0025】
本発明の他の目的は、インターネット/Web環境でリソースの分散、共有、プールを管理する装置及び方法を提供することであり、これには、a)オブジェクトに関連付けられたレプリカの数を管理し、b)これらレプリカの配備を管理する、ことにより、(マルチメディア)Webオブジェクトに対する予測需要を、Webサーバ上の利用できる容量に合わせ、マルチメディア・オブジェクトに対する需要とマルチメディアWebサーバの容量の両方を調整する処理が含まれる。
【0026】
従って、好適実施例に従い、分散コンピュータ環境で負荷の分散とリソース管理の機能を統合した自主規制システムが提供される。システムは、予測需要を利用できる容量に合わせ、この目的を追及するため、所定基準に従って需要と容量を調整する機構が提供される。
【0027】
本発明の他の目的は、インターネット/Web環境でマルチメディア・コンテンツを提供できるリソースの分散、共有、プールを、ユーザにとってメリットがあり、信頼でき、且つシームレスな形で管理するシステム及び方法を提供することである。
【0028】
本発明の原理に従って、クライアント(Webブラウザ等)とサーバ(メディア/Webサーバ等)の間に、リクエストの分散とサーバへの配備を管理し、コンテンツのサーバへの配備を管理する中間管理ノード(コントローラ)が提供される。コントローラは、リクエストを受信し、所定基準に従ってリクエストの配備を調整する媒介として働く。コントローラはそのため、クライアントを代表してサーバへのリクエストの配備の活用、交渉、推奨を行う。システムは、コントローラにより、メディア/Webサーバに分散したオブジェクトの集合のリソース管理を行う。リソース管理は、本発明の文脈では、マルチメディア・コンテンツをクライアントに効率よく提供するため必要なリソースの予約、構成、管理、例外処理、及び解放を指し示す。特にコントローラは、(1つまたは複数のサーバに及ぶ)オブジェクトに対する総予測需要をサーバの利用できる容量と合わせようとする。そのため、中間管理ノードに示されるリクエスト・ストリームの総計を分析することで、予測需要統計が生成され、サーバとコントローラ・ノード間の特別なプロトコルにより、利用可能なおおよその容量が予測される。コントローラは、容量調整機構により、サーバ上のオブジェクトの配備と数を動的に管理する。
【0029】
本発明はそのため、更に2つの補助的なツールを用いる。利用しやすい予備の共有容量を提供するグローバル・サーバと、需要と容量の条件に対応し、スケーラブルで再配置可能なリソースとしてのマルチメディア・オブジェクトのモデルになる一時的レプリカである。これらはともに、システム全体の容量を一時的に高め、特定のマルチメディア・オブジェクトに関連付けられた予測需要に合わせることで、マルチメディア・サーバを補助するため使用できるシステムを提供する。これら補助的ツールはまた、需要と容量の間の制約に応じてインターネット環境のレプリカの配備と数を動的に管理する装置及び方法を提供するために使用する。従って、本発明のシステムは、需要と容量を監視し、グローバル・サーバとの間で一時的レプリカをいつ追加しいつ削除するか、つまりいつ容量を調整するかを判定する効率的方法を提供する。特に、同じオブジェクトに対する後のリクエストの処理中に利用可能なレプリカを見つける可能性を大きくするツールとして、オンデマンドでレプリカを作成する。
【0030】
ここで重要なことは、本発明は、前記の事柄を達成しながら、サーバのリソースの管理に関してサーバの自主性を保護することである。リソース管理システムは、リソース管理機能(受け入れ管理、リソース予約、リソース測定、リソース・スケジューリング等)が各サーバでローカルに実装され、コントローラに集約されないという点で分散型である。コントローラは、サーバとそのリソースを直接管理することはなく、管理に関する推奨内容をサーバに送るエージェントの役を務める。これは、システムのリソースとサーバの状態に関して、コントローラに厳重な監視要件を課すことなく達成される。コントローラは、サーバとコントローラ間のシグナリング・プロトコルにより、運用時、耐障害性を保ちながらリソース管理状態を維持することができる。システムは、シグナリングのオーバヘッドと状態維持のオーバヘッドのバランスを考慮して働く。
【0031】
【発明の実施の形態】
図4は、本発明の好適実施例に従った分散コンピュータ・システム100を示し、クライアント(110、111、112等)、サーバ(1201、1211、1221)、オブジェクトの集合(130、131、132)、及びクライアントからのオブジェクト・リクエスト(500)を含む。図4に示す通り、分散コンピュータ・システムは別に、クライアントからのリクエストを処理する中間コントローラ(520)を含む。コントローラ(520)は、特にクライアント(111等)からのリクエスト(501等)を、以下に詳述する所定基準に従ってサーバ(1211等)に配備する。例えば、好適実施例では、コントローラは、分散したオブジェクトの集合(130、131、132)に対するクライアントのリクエストの配備に関して、負荷のバランスとフォールト・トレランスを導入するため使用する。更に、後述するように、中間コントローラは、マルチメディア・オブジェクト自体のサーバへの配備を所定基準に従って管理する。
【0032】
詳しくは後述するが、中間コントローラ(520)の実装、特にORB等のオブジェクト・ディレクトリ・サービスの実装により、システム100をサーバの集合に対して、オブジェクトの分散集合として特徴付けることができる。従って、従来のシステム10とは異なり、独立したサーバ(1201、1211、1221)それぞれのオブジェクト(130、131、132)の様々な集合は、ここで統合され、オブジェクトと需要と容量の条件に従う、スケーラブルで再配置可能なリソースとしてのマルチメディア・オブジェクトのモデルとなるオブジェクト・レプリカとの分散集合(130、131、132)になる。例えば、図4は、サーバ(1201)の集合(130)にあるレプリカ(281)と、サーバ(1211)の集合(131)にあるもう1つのレプリカ(285)とを持つオブジェクトO4に関連付けられたオブジェクト・レプリカ(281、285)を示す。後述する通り、サーバは、永続的(オブジェクト)レプリカを維持するローカル・サーバとみなすことができ、一時的レプリカを維持するグローバル・サーバとみなすこともできる。グローバル・サーバは、レプリカが作成された(一時的な)オブジェクトを維持する上で利用しやすい予備の共有容量を提供するための専用サーバである。
【0033】
本発明に従って、コントローラ(520)に示されるクライアント・リクエストの時間シーケンスを、ここではリクエスト・ストリームまたは需要と呼ぶ。正常なクライアント・リクエスト(140等)の結果、ストリーミング接続(150等)(ここではストリームとも呼ぶ)が得られる。あるマルチメディア・オブジェクトに対してリクエストがあるとき、利用できるリソースがあれば、サーバによって利用できるようにすることのできる同時ストリームの数を、ここではマルチメディア・サーバの利用できる容量と呼ぶ。更に、コントローラ(520)から見た場合、システム全体で同時にサポートできる(要求されたマルチメディア・オブジェクトの)ストリームの数を、ここでは利用できるシステム容量と呼ぶ。特に、好適実施例の場合、新しいインターネット2に想定されているようなワイド・エリア・ネットワーク分散環境で、利用できるおおよその容量を効率よく予測するため、統計的測定値を使用する。
【0034】
H323、RTSP(Real Time Streaming Protocol)等のWeb上のマルチメディア・ストリーミング・データを管理する規格は、すでに作成/実装され、目的のストリーミング機能が提供されている。例えばH323は、小さいグループ間のビデオ会議を目的に設計され、RTSPは、大きいグループ向けにオーディオ/ビジュアル・データを効率よくブロードキャストするよう設計されている。いずれの規格も、リアルタイム・プロパティを持つデータの配信を管理するため、クライアント/サーバのアプリケーション・レベルのプロトコルを記述している。例えばRTSPは、オーディオ、ビデオ等の連続的メディアの1つまたは数個の時間同期ストリームを確立/管理し、UDP、マルチキャストUDP、TCP、RTP(Real Time Protocol)等のトランスポート・プロトコルを使用して連続ストリームを配信する。
【0035】
図5は、(マルチメディア・オブジェクトに対する)リクエストのサーバへの分散と配備を管理するため、またマルチメディア・オブジェクト自体のサーバへの配備を管理するため実装される中間コントローラ(520)の詳細ブロック図である。図5に示す通り、クライアントから、固有オブジェクトIDを含むリクエスト(601、602、603、604)を受信し、これらのリクエストを配備モジュール(610)に送るためリクエスト処理モジュール(600)が使用される。配備モジュール(610)は、各リクエストに配備ポリシ(615)を適用し、リクエストに関する一時的配備照会(620)のセットを生成する。特に配備モジュール(610)は、レプリカ・ディレクトリ・サービス(665)(図6に関して説明するレプリカ・ディレクトリ(666)を維持する)とサーバ・ディレクトリ・サービス(655)(図7に関して説明するサーバ・ディレクトリ656を維持する)の両方とインタフェースをとり、一時的配備(620)を生成する。つまり配備モジュール(610)、レプリカ・ディレクトリ・サービス(665)、及びレプリカ・ディレクトリ(666)は連携して受信されたリクエストのオブジェクトIDに関連付けられた全てのレプリカを見つける。更に、配備モジュール(610)、サーバ・ディレクトリ・サービス(655)、及びサーバ・ディレクトリ(656)は連携して、後述するように、新しい配備照会(620)を考慮する(レプリカを保持する)位置の”意向”を判定する。
【0036】
図6は、レプリカ・ディレクトリ・サービス(665)により維持され、本発明のシステム100により実装されるレプリカ・ディレクトリに関連付けられるスキーマ及びデータを含むレプリカ・ディレクトリの例(666)を示す。分散集合内のオブジェクトを一意に識別するため、分散集合の各オブジェクト(O4等)にオブジェクトID(420等)が割当てられる。本発明に従って、元のクライアント・リクエストを予め、クライアントからの曖昧なリクエストを一意に識別可能なオブジェクトIDに変換可能な補助システム(図示せず)により処理することができる。オブジェクトID毎に、分散集合内にレプリカを使用できる。例えば図6は、オブジェクトIDが2つ(420、440)の場合を示している。第1オブジェクトID(420)は現在2つのレプリカ(421、422)に関連付けられ、第2オブジェクトID(440)は1つのレプリカ(441)にのみ関連付けられている。同じオブジェクトIDに関連するレプリカは、別々のサーバに分散される。例えばオブジェクトID(420)のレプリカ(421、422等)はそれぞれ別々のサーバ(1211、1221)に位置する。各オブジェクト・レプリカには、レプリカの一時性の程度を示す存続時間タイムスタンプも関連付けられる。後述するように、存続時間が終了すると、グローバル・サーバでオブジェクト・レプリカの存続を延長するリクエストが出される。
【0037】
レプリカ・ディレクトリ(666)は障害に耐える必要があり、永続的レプリカに関するデータとこれに関連するローカル・サーバをチェックポイントとして使用しても、データが事実上、失われる恐れはなく問題はない。ただし一時的レプリカに関するデータだけは揮発性のデータである。一時的レプリカに関するデータの喪失から復帰するとき、コントローラ(520)は単にグローバル・サーバに照会し、現在まだ期限の切れていない一時的レプリカのリストをチェックするだけである。前記のサーバ・ディレクトリ(656)(図7)では、コントローラが全てのグローバル・サーバのIDを見つけることができる。コントローラは、コントローラのドメイン内の各グローバル・サーバに照会することで、レプリカ・ディレクトリの再書込みがオンデマンドでできる。データが失われる恐れをなくすために、グローバル・サーバのリストをチェックポイントにしてもよい。当業者には明らかなように、レプリカ・ディレクトリ(666)の再書込みの後にアクセスされていないレプリカは、コントローラによってそのグローバル・サーバに対してリクエストが出されなくなるため、使用率が次第に減っていくことになる。
【0038】
更に、図15に関して説明するが、レプリカ・ディレクトリは、リクエストに関連付けられた統計をオブジェクトID毎に維持し、これには予測需要d、リクエストに関連付けられた優勢な地域を示す優勢地域インディケータg、及び需要統計またはレートrが含まれる。更に、各レプリカに存続時間タイムスタンプが関連付けられる。タイムスタンプの期限が切れると、一時的レプリカを現在所有しているグローバル・サーバはそのコントローラ(つまりこのレプリカを配備したコントローラ)に更新を要求する。この時点でコントローラは、レプリカの更新を拒否することでレプリカを削除するか、またはレプリカの存続時間を延長することでレプリカを更新する(従ってこの新しいレプリカでデータベースの再書込みを行う)ことができる。コントローラが更新を拒否した場合、一時的レプリカは、そのグローバル・サーバにより削除されて終わる。
【0039】
図7は、サーバ・ディレクトリ・サービス(665)により維持され、スキーマとデータが関連付けられたサーバ・ディレクトリの例(656)を示す。分散コンピュータ環境(160)の各サーバにサーバID(1211等)が割当てられる。サーバIDは固定とみなされ、変更されない。サーバIDの例として、サーバの固定IPアドレスやホスト名等がある(209.09.9.127(1211)、128.0.0.1(1221)等)。サーバID毎に、サーバの容量評価と呼ぶ特別なフィールドにより、サーバ全体の容量を評価する。つまり容量評価は、コントローラが、事実上異なるリソースを持つサーバを区別するために使用する。好適実施例の場合は2段階評価を行う。好適実施例は、HIGH(スーパーコンピュータ/メインフレーム等)とLOW(NTクラスのサーバ等)の2つの容量評価を区別する。ただし当業者には明らかなように、代わりに他の評価方式を使用してもよい。容量評価は、サーバ固有のパラメータであり、初期化時に設定する。例えばサーバのデフォルト評価がLOW容量とする。本発明に従って、コントローラは、サーバの実際の利用できる容量を追跡する必要なしに、容量評価により容量がHIGHとLOWのサーバを区別することができる。レプリカが作成された(一時的)オブジェクトの受信を継続するグローバル・サーバは、通常はHIGH容量サーバである。
【0040】
また、サーバID毎、そのサーバの最後にレポートされた使用率/意向状態を記憶するため特別なフィールドを使用する(例えばサーバ(1211)は赤、サーバ(1221)は緑である)。またサーバ毎に、コントローラにより受信された最後の使用率/意向状態レポートの時刻も記憶する。例えば図7でサーバ(1211)にはタイムスタンプt1が関連付けられ、サーバ(1221)にはタイムスタンプt2が関連付けられる。最後に、サーバがグローバル・サーバかローカル・サーバかをフィールドで示す。例えばサーバ(1211)はコントローラによりローカル・サーバとして認識され、サーバ(1221)はグローバル・サーバとして認識される。サーバはグローバル、ローカル両方であり得、その場合、2つのエントリを使用する。1つのエントリで仮想ローカル・サーバを、もう1つのエントリで仮想グローバル・サーバを記述する。
【0041】
図5に戻る。コントローラ(520)は他に、一時的配備(620)を選択し、これら一時的配備に関連付けられたサーバに照会する方式を実行する交渉モジュール(630)を含む。探索ポリシ(635)と交渉ポリシ(636)に従って照会方式を作成する。交渉ポリシは複数の一時的配備を洗練し、コスト等の一定の基準による選択を可能にするため実装する。様々なポリシ(615、635、636等)を記憶、ロードし、ここで説明しているコントローラ・アルゴリズムをカスタマイズするためポリシ・バンク(640)を使用する。これらのポリシは初期化時またはオンデマンドでロードできる。
【0042】
図5に示す通り、コントローラ(520)は他に、サーバを監視するグローバル・リソース監視モジュール(650)を備える。サーバ・ディレクトリ・サービス(655)によりリソース監視データが提供される。レプリカのライフサイクルを管理するため、特にレプリカの作成、破壊、または移動を決定するため、ヒューリスティクスを適用するレプリカ作成管理モジュール(660)を使用する。レプリカ・ディレクトリ・サービス(665)によりレプリカ・データが提供される。リソース管理プロトコル(671)、レプリカ管理プロトコル(672)、配備管理プロトコル(673)の3つのシグナリング・プロトコルを介してサーバとのインタフェースが管理シグナリング・モジュール(670)により提供される。配備モジュール(610)は、本発明に従って配備管理プロトコル(673)と連携し、配備ポリシ(615)または探索ポリシ(635)に従って配備照会を作成し、意向があり対応可能な位置に送る。サーバの受け入れ検査に合格した配備照会は、受け入れ候補と呼ばれる。受け入れ候補は、受け入れ保証という従来の概念とは異なり、比較的短い時間(数秒のオーダ)のみサーバによってリソースが一時的に予約され、その後、受け入れ候補がサーバによって確保されていない場合、受け入れ候補は削除される。後述する通り、交渉モジュール(630)、交渉ポリシ・モジュール(636)、及び配備管理プロトコル(673)は連携し、肯定応答した受け入れ候補群から受け入れ候補を選択/確保して受け入れを保証し、また、前に選択されたサーバ以外のサーバに対する他の全ての受け入れ候補を無効にし、他の全ての保留中の配備照会を無効にする。
【0043】
コントローラ(520)の一部として他に、リクエストのストリームを調べ、最もリクエストの多いオブジェクト(681)(以下、ホット・オブジェクトと呼ぶ)と、これらオブジェクトの最も優勢な地域(682)のリストを生成し、それらの需要を予測する需要分析モジュール(680)がある。これらの統計はレプリカ管理モジュール(660)に送られる。容量分析モジュール(690)は、最もリクエストの多いオブジェクトそれぞれについて利用できる容量を調べ、利用できる容量をレプリカ管理モジュール(660)に送る。
【0044】
図5に示す通り、本発明のシステムは、リソース管理プロトコル(671)、レプリカ管理プロトコル(672)、配備管理プロトコル(673)の3つのインタフェースを利用して、コントローラ(520)とサーバの間で管理情報をリレーする。当業者には明らかなように、これらのインタフェースの実装を容易にするため使用できるプロトコル規格がある。例えばリソース管理プロトコルは、RSVP(Reservation Protocol)、及びRTCPにより得られる機能をベースに構築することで実装することができる。RSVPは、統合サービス・インターネットワーク向けのリソース予約設定プロトコルである。アプリケーションはRSVPを呼び出して、データ・ストリームに対する具体的なエンド・ツー・エンドQoSを要求する。RSVPは、ユニキャストとマルチキャストのルーティング・プロトコルをサポートし、大きいマルチキャスト配信グループにも充分対応するQoS保証リソース予約を効率よく設定するためのものである。RSVPプロトコルは、予想通りマルチメディア・サーバからそのクライアントに、接続ベースでエンド・ツー・エンドのリソース予約を行うため使用されよう。一方、RTCPは、RTPと連携する測定/管理プロトコルである。RTPセッションの各参加者によりRTCP管理パケットが他の全ての参加者に定期的に転送される。アプリケーション・レベルの情報をフィードバックすれば、本発明により必要になるようなパフォーマンス管理や診断が行える。RTCPプロトコルは、マルチメディア・サーバとそのコントローラ間で測定値(つまりリソース管理プロトコルのMON_STATUS、MON_REQUESTメッセージ)をフィードバックするために使用されよう。RSVPは、分散したパーティ間でサービス品質の交渉を実装する機構を提供するが、RTCPは、分散したパーティ間で測定値とパフォーマンス・フィードバック情報をリレーする機構を提供する。同様に、レプリカ管理プロトコルは、インターネットのファイル転送プロトコル(FTP)とRSVPプロトコルにより得られる抽象性をベースに構成できる。FTPでは、サーバ間のパイプで最善を期してコンテンツの移動が可能になるのに対して、RSVPでは、統合サービス・ネットワークのパイプを指定することができる。
【0045】
前記の通り、本発明のシステムは、分散コンピュータ環境で負荷の分散とリソース管理の統合機能を提供する。コントローラは、好適には、需要を利用できる容量に、ある程度まで自由に適合させる。第1に、リクエストの分散とサーバへの配備を管理し調整する。第2にサーバ(つまり容量)間のレプリカの分散と配備を、一定の基準に従って管理/調整する。また、コントローラは、本発明の機構により、本発明の目的を達成するため必要とみなされるときは、サーバ間のレプリカの動的な作成、破壊、移動を行える。以下、これらの機能について詳しく説明する。
【0046】
リクエスト管理システム:
図4、図5に関して説明する通り、本発明によれば、固有オブジェクトIDがあるとき、リクエスト(501、601等)を、要求されたオブジェクトのレプリカを持つサーバ(1211等)に、中間コントローラ(520)を介して配備できる。コントローラは、本発明の好適実施例に従って、すぐに利用できる容量に従って需要を動的に再調整する、次のような機構を実装する。1)第1のアプローチでは、コントローラのニーズとリクエストのパラメータに応じてリクエストをアップグレードまたはダウングレードすることができる。特にコントローラは、元のリクエストとわずかに異なるパラメータ値をもとに配備オプションを探索することができる。2)第2のアプローチでは、コントローラのニーズと個々のリクエストの制約に応じて、時間的に近接した同種のリクエストを遅らせ、グループにまとめることができる。特にコントローラは、任意の時間間隔で同種のリクエストのグループを、例えばマルチキャスト機能を持つグローバル(マルチメディア)サーバに一時的に記憶し、再構成し、バッチ処理を行うことができる。3)他のアプローチの場合、同種の地域特性を共有するリクエストは、コントローラのニーズと地域で最もコスト効果の大きいリソースの可用性に応じて、グループ化することができる。特にコントローラは、クライアント及びサーバを、EST等の時間帯、利用できる帯域幅(T1ライン等)を含めた地理上の制約に関連付け、これらの基準からリクエストの配備を調整することができる。
【0047】
そのためコントローラは、統計収集ポイントとして機能する。特に2種類の統計(需要統計と容量統計)がコントローラにより維持される。需要統計は、過去のリクエストに関する特性を記述するためコントローラ(520)により使用される。好適実施例の場合、特定のコントローラにより認識される異なるクライアントから集められたリクエスト・ストリームを分析することで、コントローラにより予測需要統計が生成される。例えば、需要の密度と量、及び需要に関連付けられた優勢な地域を特徴付けるため統計が生成される。一方、容量統計は、マルチメディア・サーバの容量に関する特性を記述し、マルチメディア・オブジェクトに対する配備を受け入れるためコントローラにより使用される。好適実施例の場合、利用できるおおよその容量がサーバにより予測され、サーバにより必要とみなされるときはコントローラ(520)に送られる。
【0048】
システムは、本発明の好適実施例に従い、受け入れ管理が各サーバでローカルに実装されるという点で分散される。図12は図4のグローバル・サーバ1211の詳細である。各サーバ(例えばサーバ1211)は受け入れ管理機構(1040、1041)を備え、配備照会(クエリ)リクエストの受け入れ候補を承認または否認し、その旨をコントローラに伝える(オファ)。受け入れ管理機構(1040、1041)は更に、受け入れ候補を受け入れ保証に昇格させ、また受け入れ候補を無効にするよう機能する。コントローラ(520)は受け入れやリソース予約の作業は行わない。当業者には明らかなように、本発明は、サーバの集合及びサーバ・クラスタに適用できる。特に、各サーバ・クラスタに集中受け入れ管理が関連付けられるので、各クラスタは、コントローラからは、1つのHIGH容量サーバに見える。そのためコントローラは、サーバとサーバ・クラスタを特に区別することはない。
【0049】
コントローラ、クライアント、サーバ間のシグナリング・プロトコルは、ここでは、図8に関して詳述しているが、配備管理プロトコルと呼ばれ、これら分散パーティ間で、コントローラ(520)がサーバにクライアント・リクエストを配備するために使用される。配備管理プロトコルは、少なくとも次のメッセージの実装を含む。クライアントがリクエストをコントローラに送るために使用するCID_REQUESTメッセージ、コントローラがサーバ間の配備候補を探索するために使用するCID_QUERYメッセージ、及びコントローラが受け入れ候補から受け入れ保証への昇格を要求するために使用するCID_PLACEメッセージである。またこれらメッセージはそれぞれ、シグナリング・パーティが前記の非同期メッセージ(CID_REQUEST、CID_QUERY、CID_PLACE)のいずれかに応答するため使用する確認メッセージCX_ACKに関連付けられる。従ってCID_QUERYの場合、CQ_ACKメッセージは、受け入れ候補が承認されたことを示す肯定応答を返す。このメッセージは受け入れの有効期限を示す。当業者には明らかなように、有効期限はサーバ単位で設定し、新しい配備を求めるサーバのアグレッシブネスを区別することができる。更に、実施例によっては、この期限をサーバで利用できる容量に応じて、時間に関して可変とすることも可能である。CID_PLACEメッセージの場合、CP_ACKメッセージは、受け入れ候補が受け入れ保証に昇格したかどうかを示すフラグをリレーする。
【0050】
一般に、リクエストをサーバにマッピングするプロセスは、コントローラにより3段階に分けられる。第1にコントローラは、受け入れ照会を考慮する意向のあることがわかっている要求されたオブジェクトのレプリカを含むサーバからサーバの識別を始める。第2に、コントローラは、CID_REQUESTメッセージでコントローラに与えられる可能性のある選択済みパラメータにより、これらのサーバに受け入れの照会を始める。このプロセスは、本発明では、サーバとコントローラ間で、可能ならクライアントが介入して合意が得られるまで繰り返すことができる。最後にコントローラは、最後のステップで対応可能なことがわかったサーバの1つにリクエストを送り始める。前者2つの段階は、最後の段階に入る前に繰り返すことができるので、本発明に従って、リクエストのサーバへのマッピングは、有望な受け入れ候補の動的セットに関する探索と交渉を含む繰り返しプロセスになる。
【0051】
ここで述べている通り、コントローラのレプリカ・ディレクトリ・サービス(665)を使って各レプリカの位置を追跡する機構が提供される。固有オブジェクトIDがあるとき、レプリカ・ディレクトリ(666)の検索により、システム上の対応する全てのレプリカの位置が返される。好適実施例の場合、レプリカの位置は単にサーバ・アドレスとして表される(ホスト名、IPアドレス等)。サーバ当たり1つのレプリカで充分であることに注意されたい。
【0052】
図8は、配備管理プロトコルのタイムライン図である。時間tでコントローラ(520)はクライアント(110等)からCID_REQUESTメッセージ(710)を受け取る。時間t1でコントローラ(520)はCID_QUERYメッセージ(739、740)を、受け入れ照会を考慮する意向のあることがわかっている2つのサーバ(1201、1211)に送る。CID_QUERYメッセージはそれぞれ、解像度、品質、コスト、最大遅延等の名前/値のペアの形の他のパラメータ(742)の他に、要求されているオブジェクトの固有ID(741)を含む。パラメータ(742)は、CID_REQUESTでクライアントにより指定されたパラメータ(731)またはそれらを洗練したものに対応することがある。パラメータ(742)は、このリクエストに関連付けられた交渉ポリシ(636)に従って各サーバ(1201、1211)と個別に交渉できる。
【0053】
時間t2でサーバ(1201)はCQ_ACKメッセージ(760)でコントローラ(720)に応答する。このメッセージは、受け入れ候補がサーバ(1201)により承認されているかどうかを示すフラグ(770)を含む。メッセージはまた受け入れ候補の有効期限と、ある場合は、このサーバ(1201等)が受け入れ候補について提供する意向のある対応するCID_QUERYメッセージ・パラメータ(773)について交渉された名前/値ペアも含む。
【0054】
同様に、タイムラインは、時間t3で第2サーバ(1211)が別のCQ_ACKメッセージ(761)を介してコントローラ(520)に応答することを示す。CQ_ACKメッセージが、受け入れ候補がサーバにより保持されていることを示すとき、CQ_ACKメッセージのパラメータ・フィールド(773等)は、対応するサーバが提供する意向のある旨のパラメータ値を示す。コントローラは、数秒のオーダ等、相応の時間内でCQ_ACK(760、761)を待機する。次に、コントローラ(520)は、その交渉ポリシ(636)をもとに、これまでに受信したCQ_ACK応答(760、761)から1つ(例えば760)を選択することができる。
【0055】
また、受け入れ候補が確保されない可能性もある。これには次のような理由が考えられる。a)全てのサーバでリソースが足りない、b)交渉パラメータに関して同意が得られない、c)交渉期限が切れている、またはd)前記の組み合わせである。好適には、全てのリクエストを公平に処理するため交渉期限を設定する。これによりコントローラは、他のリクエストを犠牲にして、有望ではないリクエストのために無駄な検索を行って時間を浪費することがなくなる。交渉期限をシステム・パラメータとする必要があることは明らかである。この期限は、特にサーバとオブジェクトの距離のため、数10秒のオーダにする必要がある。いずれにしろコントローラは、リクエストに関連付けられた交渉ポリシ(636)を参照して、条件に適した処理を決定する。新しいパラメータ・セット(731)を要求する、探索ポリシ(635)を再評価する等、受け入れ候補を探し、次に新しいセットでサーバにCID_QUERYを再発行するため、いくつかの処理を適用できる。
【0056】
タイムラインは、時間t4でコントローラ(520)がサーバ(1201)にCID_PLACEメッセージ(790)を送ることを示している。このメッセージは、固有ID(730)を含み、サーバはこれにより受け入れ候補を受け入れ保証にアップグレードする。サーバはこのアップグレードをCP_ACKメッセージ(791)を介して確認応答する。図5に戻る。配備推奨(620)はそれぞれマッピング(配備と呼ばれる)・ポリシ(615)に関連付けられる。例えば配備/マッピング・ポリシ(615)は、LARGE容量のサーバの緑のレプリカには常にリクエストを送る、というように指定できる。配備に関連付けられた受け入れ候補がコントローラによって選択されると、配備はコントローラにより保証される。そのためコントローラは、受け入れ保証を配備のため確保し、配備を管理下に置く。このような保証の条件は、コントローラの配備ポリシにより指定される(例えば、緑のレプリカに常にリクエストを出す、HIGH容量サーバを優先する、配備がサーバ障害の影響を受けないようにする等)。その結果、このようなバインディングのパフォーマンスがその存続時間の間コントローラにより監視される。更にバインディングの存続時間中、バインディングのパフォーマンスを危うくするような条件が発生し得る。例えばユーザ側の対話は非線形であるため(VTRの停止、巻戻し、一時停止、継続等)、代表的なビデオ・オンデマンド(VoD)・サーバの場合のように、線形の再生モデルを想定して作成されるバインディングは危うくなる可能性がある。同様に、サーバ障害が発生した場合、通常はバインディングが中断される。コントローラが選択する配備ポリシによるが、コントローラは、このようなバインディングのパフォーマンスを、そのような条件が発生するかどうかにかかわらず保証することができる。例えば、フォールト・トレランスを保証したバインディングでは、サーバがバインディングを削除した場合、コントローラは新しい配備を自主的に探そうとし、そこから処理を再開する。
【0057】
図5を参照する。可能な配備推奨をそれぞれ個別に探索する代わりに、コントローラが複数の配備推奨(620)を同時に探索できることは、本発明の側面である。この動作は、探索ポリシ(635)を介してコントローラに指定される。例えばこのような探索ポリシは、最大K回は繰り返し、各繰り返しで少なくともL個、最大M個のサーバに及ぶ配備を探索する、というように指定できる。探索ポリシは、結果的に失敗するリクエストについては高コストになる可能性がある。例えば、このポリシでは、リクエストが成功する度に、少なくとも2つのメッセージのそれぞれについて合計で少なくともN=K*L個のプロトコル交渉が開始されることになる。本発明では、各リクエストを探索ポリシに関連付けることができる。このようなサーバとレプリカの同時探索によって、同じリクエストが異なるサーバにマップされる可能性があることは明らかである。また、リクエストがあるとき、コントローラは0個以上の配備推奨を作成してもよい。例えば利用できる容量がリクエストに応えるには不充分なとき、配備推奨は作成されない。
【0058】
図8に戻る。保留されているCID_QUERYメッセージはコントローラにより棄却することができる。例えば本発明では、コントローラは、(例えば照会の応答が最大待ち時間のしきい値を超えた場合に)対象ではなくなった配備照会を単に棄却するだけである。この交渉の構成は、交渉ポリシ(636)によりコントローラに指定される(図5)。例えばこのような交渉ポリシは、パラメータyと元のパラメータx(731)のコスト差が最大zになるようにパラメータ・セットxをサーバと交渉する、というように指定できる。
【0059】
統合ドリブンの応答:
前記の通り、本発明のシステムは、サーバ容量と予測需要の適合を目指している。そのため本発明は、需要を監視し、分散コンピュータ・システムの容量を監視することによって、リソース管理のためのコントローラ(520)を実装する。特にコントローラは、レプリカに対する総予測需要をサーバの利用できる容量とサーバ上のレプリカの配備に合わせようとする。異なるクライアントからのリクエストのストリームを分析することによって予測需要統計を生成する。利用できる容量はサーバの監視と照会により予測する。
【0060】
コントローラ(520)は、オブジェクト、レプリカ、サーバ、リクエスト、及びそれらの配備に関する永続的で動的な状態とデータを記憶する。例えば好適実施例の場合、ある特定のオブジェクトに対する需要、そのレプリカの位置、サーバの容量、及び時間上のリクエストの分散についてのデータを記憶するため、ディレクトリ・サービスを使用する。好適実施例の場合、これらのデータ構造は、データの喪失及びデータの破壊から復帰しやすくされる。
【0061】
有効なレプリカ候補(以下、ホット・オブジェクトと呼ぶ)であるオブジェクトの選択は、オブジェクトIDに対する予測需要等の基準に従って行われる。好適実施例の場合、レプリカ候補の選択は、利用できる容量に対する総予測需要をオンラインで分析することによってドライブする。つまり、レプリカ管理は、第1実施例に従って、予測需要を利用できる容量に合わせようとする。或いはまたレプリカ管理は、クライアントからオブジェクトIDまでの地理上の近さに従って、予測需要を利用できる容量に合わせようとする。
【0062】
本発明のシステムはそのため、リクエストを同種の特性を持つリクエスト・グループに統合する。例えば、有限な時間間隔で独立したクライアントから受信されたリクエストは、管理サーバにより配備するため、所定基準に従ってグループとして管理することができる。リクエストに関する基準の例としては、1)同じオブジェクトIDを要求するクライアントの地理上の近さ、2)解像度、品質等の要求される制約の共通性、3)同じオブジェクトIDに対するリクエストの到着時間の時間的近接性等がある。
【0063】
リクエストは、本発明に従って、同じオブジェクトIDに対するわずかに異なるリクエストを同種のリクエストとしてプールするため、そのコントローラにより自主的にアップグレードまたはダウングレードすることができる。これは例えば、地理上の近さによるグループ化基準の対応性を低くする、要求されたオブジェクトの品質を低くする、時間的な近さのグループ化基準の対応性を低くする、或いはそれらの組み合わせにより達成することができる。コントローラは、このオプションを行使するか、またはクライアント、リクエスト、オブジェクトのコスト等の特性を基準にしないことも可能である。ただしコントローラは、同じオブジェクトIDに対するリクエストを、他のリクエストに関しては関連付けることができない形で処理することを選択することもできる。
【0064】
先に述べた通り、コントローラは、時間上のリクエストの分散を監視する。好適実施例の場合、オブジェクトIDそれぞれについてリクエストの分散に関する統計が維持される。需要統計はオブジェクトIDに対する相対需要について情報を与え、需要の点からオブジェクトIDを評価することができる。好適には、各オブジェクトについて特徴付けられる統計は、1)需要の密度と、2)需要の量を含む。これらの他、各オブジェクトについて特徴付けられる統計に、3)需要に関連付けられた優勢な地域を追加してもよい。コントローラは、分散集合上のオブジェクト毎に需要統計を維持する。特定のオブジェクトの需要統計は、オブジェクトに対するリクエスト毎に更新される。特にコントローラは、需要の多いことがわかったオブジェクト(ホット・オブジェクト)をフラグで指示する。図5の需要分析モジュール(680)で特定のオブジェクトO1について実行される需要統計の計算を、図13乃至図15に示す。当業者には明らかなように、予測の信頼性と精度を高めるためこれらの統計を計算する方法は多数ある。
【0065】
図13は、コントローラから見た時間間隔tn−3、tn−2、tn−1、tに及ぶリクエスト・ストリーム(1110a、..、1110d)を示す。リクエストはそれぞれオブジェクトID(オブジェクトO1)と、要求側クライアントに関連付けられた地域を一意に識別するため使用する地域インディケータG1、G2、G3、またはG4に関連付けられる。例えば図9は、レプリカO1、O2及びO3の様々なグローバル・サーバ840、850、860への配備を動的に管理する分散コンピュータ・システムを示す。ここでは需要と地域の傾向により、永続的レプリカと一時的レプリカの区別が促進される。一時的レプリカは常にグローバル・サーバ上にあり、コントローラにより決まる動的存続時間を持つ。コントローラは、後述するように、コスト、需要、容量等の所定基準に従って、レプリカのグローバル・サーバへの動的配備を管理する。好適には、関連付けられる地域G1、G2、G3、またはG4は、東部標準時間帯、太平洋標準時間帯、米北東部、米南西部等、既知の地域に適合するようにシステム管理者がアプリオリ(a−priori)に設定する。ただし地域は、コントローラにより動的に設定することもできる。例えばコントローラはクライアントを属性や特性に応じてグループ分けし、この基準を、同種のリクエストの配備に役立てることができる。
【0066】
図13に戻る。リクエスト・ストリームの要求されたオブジェクトIDに対するリクエスト統計の生成が示してある。図13の例は、4つの時間間隔(例えばT(n−2)(1110b)とT(n)(1110d))に対する統計の計算を示す。需要統計は、有限の時間間隔T(j)当たりのリクエスト数として計算される。この例は、需要統計が、最初の間隔(T(n−3))の10/Tから次の間隔(T(n−2))の13/Tまで、3つ目の時間間隔の15/Tまで、最後の時間間隔の16/Tまで変化することを示す。需要統計は、安定性を高めるために、コントローラにより使用される前に平滑化することができる。
【0067】
図14は、図13に対応する優勢な地域の統計の計算を示す。この例ではシステムは、アプリオリに知られる4つの地域(G1、G2、G3、G4)に分けられる。リクエストがコントローラにより分析される前に、リクエストが入る地域のタグがリクエストに付けられる。各時間間隔T(j)で、あるオブジェクトに対して入るリクエスト毎に、コントローラが地域別にそれらのリクエストをソートし、各地域に関連付けられたリクエスト・カウンタ(図示せず)を更新する。従って、各時間間隔でリクエスト・ストリームの需要の傾向が監視される。図14の例の地域G4は、前の時間間隔でのオブジェクトO1に対するリクエストの安定した増加をもとに、時間t(p)でのオブジェクトO1に対する予測需要の伸びを示している。つまり、地域G4は、4つの時間間隔で、他の地域G1、G2、G3に対して着実に優勢な地域になっている。ここでも、優勢な地域のインディケータは、安定性を高めるため、コントローラにより使用する前に平滑化することもできる。
【0068】
図15は、各レプリカについて維持される需要統計を記憶するためのスキーマとデータ構造(696)の例を示す。コントローラは、各オブジェクトIDについて、その予測需要に関する統計を記憶する。予測と円滑化の現在の慣行に従って、移動ウィンドウ統計が使用される。需要統計を円滑にするため時間間隔(ここではTと呼ぶ)が使用される。需要統計を予測するためサイズK*Tの移動ウィンドウが使用される。使用する平滑化方式(指数平滑、均一スムーザ等)と所望の安定性またはスムーザの信頼性により、平滑にする間隔の数(K)が求められる。需要統計の更新に使用する時間間隔のサイズは、a)オーバヘッドを少なくする、b)遷移効果を平滑にする、またc)充分大きい数のリクエストを対象とするために必要なので、充分大きくする必要がある。一方、TとKが比較的小さいとき、コントローラは変化に対してオンデマンドでより速やかに反応することができる。インターネット分野で現在一般的で合理的な値は、K=2、T=[60、...、3600]秒の指数スムーザである。従って、図15に示した例のデータ構造では、リクエスト統計(1150)が、最後のK個の時間間隔T(つまりj、j−1、...、j−k+1)について、このコントローラから見た、対応するオブジェクトIDに関連付けられたリクエストの密度を示す。優勢地域インディケータ(1160)は、対応するオブジェクトIDに関連付けられた優勢な地域を示す。需要統計(1170)は、最後のK個の時間間隔Tのリクエスト数の移動合計を示す。コントローラは、あるオブジェクトに対する需要が多いかどうかを評価するため、密度と量の統計を確認する。そのためコントローラは高率(量)、高密度、及び好適には高密度で高率(量)のオブジェクトを探す。需要の多いことがわかったオブジェクトは、ホット・オブジェクト・ブール・フィールド(1180)を介してコントローラによりそのように識別される。このフィールドのYESは、オブジェクトIDに対する需要が多いことを示す。最後にタイムスタンプ(1190)は、最後の需要評価の時間を追跡するため使用される。当業者には明らかなように、古すぎる測定値の評価は、その信頼性が低いので(好適には)避ける必要がある。コントローラは、好適にはオブジェクトIDだけをベースにして優勢な地域を追跡するのではない。例えば優勢な地域の統計はレプリカ単位でも追跡できる。コントローラは、このような追跡により、特定の(ある地域に関連付けられた)レプリカが(長期的には)異なる優勢な地域からのリクエストに対応するかどうかを効率よく検出することができる。そのような状況を訂正するため、ある地域のサーバ上に位置するレプリカを、過去の配備に関連付けられた優勢な地域をそのレプリカに合わせる新しいグローバル・サーバに移行する機能を提供するレプリカ移行機構を使用することができる。レプリカ移行機構は、後述する容量調整機構の一部として実装する。更に優勢な地域の最近の履歴から、あるレプリカまたはオブジェクトIDに関連付けられた優勢な地域のシフトの安定性を評価できる。
【0069】
利用できるシステム容量を監視し予測するため採用する手段は、リソース監視サブシステムを配備することで得られる。リソース監視システムは、サーバがその利用できる容量をMON_STATUSメッセージを通してレポートできるリソース管理プロトコルを通してサーバとのインタフェースをとる。特にMON_STATUSメッセージはその将来の可用性の予測をコントローラにリレーする。この予測はバインディングではなく、コントローラにより契約とみなされることもない。予測は、図8に関して説明している将来のCID_QUERYメッセージを考慮するサーバの意向を示すとみなされる。好適実施例の場合、新しいリクエストを考慮するサーバの意向は、後述するようにその利用できる容量の関数である。そのためコントローラはこれをサーバの使用率/意向状態と呼ぶ。
【0070】
本発明の好適実施例に従い、図7に関して説明している使用率/意向状態の目的は2つある。第1に、コントローラの観点から、使用率/意向インディケータは、サーバのリソース使用率に関する多様性に対応するため使用される。特に好適実施例は、3色のウォータマークを、サーバから独立したその使用率/意向インディケータとして使用する。この方式と、サーバの容量評価とにより、コントローラは、異なるサーバの相対的使用率を比較して将来の配備照会を処理する。その結果、システム内のサーバの使用率/意向は、使用状態(緑、黄、赤)と2つの容量評価(HIGH、LOW)による6つ(3×2=6)条件に関して測定される。
【0071】
一方、各サーバは独立して、そのニーズに合わせて使用率/意向インディケータを設定することができる。特にサーバは、その赤、緑、黄のしきい値を、特定の使用レベルを反映する値ではなく、それぞれの意向に合った値に設定することができる。更に、このような意向値は動的に変更できると考えられる。変更はその場合、将来の需要に対するサーバの応答での動作の変更を表す。この第2の側面は、ここでは、配備照会の取得に向けたサーバのアグレッシブネスまたは意向と呼んでいる。つまりサーバの観点からは、使用率/意向インディケータ方式を、そのサーバの管理者が、コントローラからの配備を求めるサーバのアグレッシブネスまたはその欠如をカスタマイズするため使用できる。言い換えるとリソースが同じで物理位置も同じ2つのサーバは、それぞれに割当てられる使用状態がどの程度アグレッシブかに応じて配備照会が異なることがある。
【0072】
特にサーバの管理者は、3つの使用状態(緑、黄、赤)を、サーバ管理者のサービスに関するニーズに合ったしきい値に設定することができる。例えば、信頼性が高く、サービス保証が安定していると認知されることに関心を持つサーバが考えられる。その場合、サーバ管理者は緑の領域を控えめな値にカスタマイズする(例えば、実際の容量の50%等の低い値にし、100%の容量のオーバエンジニアリングを犠牲にしてサービスを保証する)。一方、ジターがある、サービスが拒否される等、サービス品質を犠牲にして安価なサービスを提供するとの認知を得たいというサーバもあり得る。その場合サーバ管理者は、緑の領域をアグレッシブな値にカスタマイズする(例えば、実際の容量の85%といった高い値にし、黄と赤の領域は15%とする)。その結果、黄と赤の領域は、レプリカ作成リクエストとリソース利用の無作為性に対応するため使用される余剰リソースを表すので、この余剰リソースを小さくすることは、緑の領域で受け入れられるストリーミング接続に対するサービス保証が影響を受けることになる。ただし、このサーバは、コントローラからの配備照会の数が増える。このようなサーバはそこで、照会を収益や統計等の”貪欲な”基準に従って選択することができる。
【0073】
図10、11は、例として、好適実施例により指定されるようなウォータマーク方式(900)を示す。ウォータマーク方式(900)は、サーバがその使用状態を、コントローラが全てのサーバに依存できるような正規化した意向インディケータ(990)にマップするため使用する。
【0074】
特に図10は、使用負荷がかかるとき、特定のサーバ(サーバ1等)の使用率/意向プロファイル(960)を示す。赤の条件(910)は、サーバがそのコントローラに、サーバがCID_QUERYメッセージを考慮できなくなっていることを通知するため使用する。黄の条件(920)は、サーバがそのコントローラに、CID_QUERYメッセージを考慮できなくなっているが、保留中のPLACEメッセージは考慮できることを通知するため使用する。最後に緑の条件(930)は、サーバがそのコントローラに、CID_QUERYメッセージを考慮することを通知するため使用する。このフラグは、各サーバがその使用率/意向状態を示すため更新する。サーバは、その意向インディケータを変更したときにのみMON_STATUSメッセージをコントローラにディスパッチする。3つのフラグでは6つの条件が考慮されるが、1)940に示すような緑から黄/赤への変更と、2)赤/黄から緑への変更(950)の2つの条件が重要とみなされる。
【0075】
同様に図11は、使用率がサーバ1と同じとき、別のサーバ(サーバ2)から得られる別の使用率/意向プロファイル(961)を示す。各サーバは独立にその赤、緑、黄のウォータマークを、CID_QUERYメッセージを受け取るそれぞれの意向に合った値に設定できる。使用率/意向状態に加えて、サーバがHIGH容量かLOW容量かを示すため容量評価が使用される。サーバの容量評価の決定は、サーバがその緑状態で提供する同時ストリームの最大数の点で、直接的なしきい値チェックをもとに行える。ここで、緑のレプリカは緑のサーバ上のレプリカを指し示している。同様に緑のサーバは、その最後の使用率/意向状態(990)が緑(930)とレポートされたサーバを指し示す。
【0076】
図5に戻る。サーバは、リソース監視/管理プロトコル(671)によりその使用率/意向状態、例えばその緑、容量評価(低容量等)等をコントローラにレポートする。その使用率/意向と容量をコントローラにレポートするため、サーバは、レポート側サーバ(例えばそのIPアドレスやホスト名を介して)、コントローラ、サーバ側のレポートの時間、新しい使用率/意向状態、及び容量評価を識別するMON_STATUSメッセージを使用する(後述)。
【0077】
サーバとコントローラの間でメッセージが順に受信されるように、TCP等のFIFO型トランスポート機構を使用できる。新しいMON_STATUSメッセージは、コントローラ側の対応するサーバについてそれぞれ最後にレポートされた状態を無効にするが、容量評価がサーバにより空白になっている場合、そのサーバの容量についてコントローラによって変更が記録されることはない。更に、MON_STATUSメッセージが失われた場合、システムは次のように復帰する。失われたメッセージが赤への変更(940)(図10)を示していた場合、後の配備(つまりCID_QUERYメッセージ)はサーバ側の受け入れ検査に合格しない。そのイベントはサーバにより、コントローラとサーバ間の配備契約に対する違反とみなされる。その結果その赤のサーバは、他のCID_QUERY配備メッセージの受信を避けるため、必要なら赤のMON_STATUSメッセージを対応するコントローラに再送する。
【0078】
コントローラは、必要ならリソース監視状態を特定のサーバに要求することができる。コントローラは、MON_REQUESTメッセージを介して、リソース監視プロトコルにより使用率/照会状態を照会し、また、特定のオブジェクトIDの要件について評価されるときに任意のサーバの実際の使用できる緑の容量を判定することもできる。特定のサーバをプールできることは、後述するように、レプリカ配備プロセス(1400)により実現されるように、グローバル・サーバ上のオブジェクトの新しいレプリカを配備するかどうかを決定するときに、コントローラにとって便利である。
【0079】
図15に関して先に説明した需要統計とデータ構造(696)は更に、コントローラがそのサーバのレポートされた容量と使用率/意向を追跡するため使用できる。図15に示す通り、需要統計とデータ構造は、各オブジェクトIDに対するリクエストに関連付けられた統計(予測需要d、需要統計またはレートrつまり時間間隔当たりのオブジェクト・レプリカに対するリクエストの状況、要求されたオブジェクトがホット・オブジェクトかどうかを示し、その状況の要旨を表す指標等)を維持する。オブジェクトIDには、オプションとしてオブジェクト・リクエストに関連付けられた優勢な地域を表す優勢地域インディケータが関連付けられる。更に、存続時間タイムスタンプが各レプリカに関連付けられる。タイムスタンプの期限が切れると、一時的レプリカを現在所有しているグローバル・サーバがそのコントローラ(つまりこのレプリカを配備したコントローラ)に更新を要求する。この時点でコントローラは、レプリカの更新を拒否することによってレプリカを削除するか、またはレプリカの存続時間を延長して更新する(従ってこの新しいレプリカでデータベースの再書込みを行う)ことができる。コントローラが更新を拒否した場合、 一時的レプリカは、最後にはそのグローバル・サーバにより削除される可能性がある。当業者には明らかなように、これらデータ構造は、フォールト・トレランスのため定期的チェックポイントにすることが望ましい。データが失われた場合、そのデータは、コントローラがMON_REQUESTメッセージを介して各サーバに照会することで再構成する。レポートが利用できないサーバについては、MON_STATUSメッセージがそのサーバから受信されるまで、対応する使用率/意向状態のデフォルトを赤にし、その容量評価は空白にする。この方法では、サーバの使用率/意向状態が再び緑になるまでそのサーバに新しい配備が割当てられないので、サーバの使用率が下がった状態でサーバ障害に対するコントローラのフォールト・トレランスが向上する。
【0080】
地理上の容量調整:
先に述べた通り、コントローラ(520)は、ある程度自由に需要と容量を合わせることができる。第1にリクエストの分散とサーバへの配備を管理/調整する。第2に、一定の基準に従ってサーバに対するレプリカの分散と配備を管理/調整する。最後にコントローラは、本発明の機構により、その目的を達成するため必要とみなされるときサーバ間のレプリカの動的な作成、配備、移動を行える。
【0081】
サーバ上のレプリカの動的な作成、配備、移動の機能に関しては、オブジェクト・レプリカが、予測需要と利用できる容量の予測に応答してサーバ間で移行できるようにされる。そのため本発明は、ネットワーク全体でリクエストだけでなく、それより重要であるが、レプリカの配備も調整する機構を提供する。このレプリカ管理方式は、予測リクエスト需要と利用可能な容量の特性をベースにしてもよい。
【0082】
図9は、1例として、好適実施例に示しているように、需要、地域等、一定の基準に従って、グローバル・サーバへのレプリカの配備を動的に管理できる分散コンピュータ・システムが必要なことを示す。この例では、おおよそ米国の北東部(G1)、南東部(G4)、北西部(G2)、南西部(G3)に対応する4つの地域(G1、G2、G3、及びG4)がある。ローカル・サーバ(830)はG1にある。グローバル・サーバ(840)はG4にある。システムは、他に2つのグローバル・サーバ(850、860)を含む。グローバル・サーバ(850)はG2地域をカバーし、グローバル・サーバ(860)はG3地域をカバーする。システムは分散オブジェクトの集合を含む。この場合、集合は3つのオブジェクト(O1、O2、O3)から構成される。これらオブジェクトはそれぞれ、システムに分散し得る、つまりグローバル・サーバとローカル・サーバの両方にあり得るレプリカに関連付けられる。本発明では、ローカル・サーバにあるレプリカは永続的レプリカと呼ばれ、グローバル・サーバにあるレプリカは一時的レプリカと呼ばれる。分散集合のオブジェクト毎に、システム全体で一時的レプリカが存在し得る。
【0083】
図9の例では、3つの永続的レプリカ、オブジェクトO1(820)、オブジェクトO2(800)、オブジェクトO3(810)がある。これらのレプリカは全てG1ローカル・サーバ(830)にある。一方オブジェクトO1には、G4グローバル・サーバ(840)にある1つの一時的レプリカ(801)があり、オブジェクトO2には、G4(840)とG3(860)のグローバル・サーバにある2つの一時的レプリカ(811、812)がある。オブジェクトO3は、G1ローカル・サーバとその永続的レプリカ(810)を介して充分な容量が与えられるオブジェクトを表す。その結果、システムにオブジェクトO3の一時的レプリカは(現在は)ない。更に、この例ではオブジェクトO2は、需要の多いと予測されるオブジェクトつまりホット・オブジェクトを表す。この例は、オブジェクトO2に対するかなりの数のリクエストがG3地域から来ており、オブジェクトO2に優勢な地域が関連付けられていることが過去の履歴の分析から示されていることを想定している。システムは、オブジェクトO2に関連付けられた優勢な地域と需要統計をもとに、G3地域にレプリカを配備するのが望ましいと判定する。従ってオブジェクトO2の一時的レプリカ(812)がG3グローバル・サーバ(860)に一時的に配備されている。
【0084】
一時的レプリカは、コントローラにより決定される動的存続時間を持つ。一時的レプリカの存続時間は、例えば対応するオブジェクトに関連付けられた利用可能な容量に対する需要、及びオブジェクトの予測セッション時間により異なる。例えば90分の映画には2時間とあまり余裕のない期限を設定でき、そのうち30分は、ユーザの対話と、コントローラからの期限更新のための時間を想定して割当てられる。例えば90分の映画に24時間の期限というように、かなり余裕のある期限も設定できることは明らかである。このような方法は、そのような時間にオブジェクト需要があると予測され、ただし需要は、その時間帯に多いことを保証するほど多くはないときに使用できる。更にレプリカの前記の存続時間の期限は、一時的レプリカに対して新しいリクエストが出される毎にリセットすることができる。
【0085】
図9に示す通り、一時的レプリカは、(800、810、820)等のオブジェクトの集合に関連付けられる(801、811、812)等の動的レプリカ・セットに記憶域とストリーミング・リソースを提供するグローバル・サーバ(840、850、860)に位置する。この例でオブジェクトO1(800)の一時的レプリカ(801)はグローバル・サーバ(840)に、オブジェクトO2(810)の一時的レプリカ(812)はグローバル・サーバ(860)にあり、オブジェクトO3(820)の一時的レプリカは存在しない。更に、図9の例では、第3のグローバル・サーバ(850)が利用できる形で示してあるが、一時的レプリカはここにない。コントローラは、コスト、需要、容量等の一定の基準に従って、グローバル・サーバに対するレプリカの動的配備を管理できるようにされる。
【0086】
図12は、図9のサーバ(サーバ(830)または(840)等)のモデリングを詳しく示す。前記のように、サーバは記憶域やストリーミング・リソースをオブジェクトに提供する。ただしサーバ(1000)はここでは、ローカル部(1010)とグローバル部(1020)の2つの独立した部分に分けられる。どちらの領域も、独立した記憶域やストリーミング・リソースを集合(1011)、及び(1021)上のオブジェクトに提供する。これらの集合(1011、1021)は独立に管理される。ただしローカル部(1010)ではメンバシップ集合(1011)が閉じているのに対して、グローバル部(1020)ではメンバシップ集合(1021)が開いている。前記のように、グローバル部については、メンバシップはコントローラが管理し、ローカル部についてはサーバがローカルに管理する。サーバは1つの部分にしか専用にすることはできない(つまり1つの領域に100%、もう1つの領域には0%)。
【0087】
好適実施例に従い、分散システムは、(100%)ローカル・サーバの集合と(100%)グローバル・サーバの集合と2種類のサーバで構成することができる。従って、図2に関して説明しているサーバの実施例に加え、図12の各領域(1010、1020)は、ここで説明する5つのソフトウェア・モジュールまたはプロセスで構成することができる。
【0088】
サービス・ロジック(図2のものと同じ)は、サーバ上のアプリケーション指向の機能を提供する。アプリケーション指向機能の例として、請求処理、ストリーミング・セッションでのクライアントの対話の処理等がある。ストリーミング・プロセス(275)は、サーバからクライアントにマルチメディア・コンテンツを配信するネットワーク・ストリーミング機能を提供する。この機能は通常、RTSP等の標準プロトコルに従って実行される。受け入れ管理プロセス(1040)は、コントローラからの照会に適用される代表的な受け入れ管理作業を実行する。受け入れ管理プロセス(1040)はリクエストを評価し、コントローラへの受け入れオファ(以下、コントローラによる候補配備と呼ぶ)を生成する。リソース管理プロセス(1050)は拡張リソース監視機能を提供し、コントローラはこれにより、サーバの使用率/意向状態やその容量等のサーバに関する統合指向属性を判定することができる。リソース管理プロトコル(671)は、サーバの状態を監視し照会するためのシグナリング(MON_STATUS、MON_REQUEST等)メッセージを指定する。最後に、レプリカ作成管理プロセス(1030)は、グローバル・サーバに対する一時的レプリカの作成と削除を可能にするため、サーバに追加される新しいプロセスを代表する。ここで述べるレプリカ作成管理プロトコルは、オブジェクトのレプリカのオンデマンド作成を可能にするシグナリング要件を提供する。シグナリング・インタフェース(1031、1041、1051、271)はそれぞれ、サーバがコントローラ上の対応する配備管理、リソース監視、ストリーミング、及びレプリカ管理のプロセスに従えるようにする。前記の通り、グローバル・サーバ上のオブジェクトの集合のメンバシップはオープンである。オブジェクトは、例えば、特定のオブジェクトに対する予測需要等のファクタをもとに集合に参加することができる。同様にオブジェクトは、例えば集合の他のオブジェクトと比較した特定のオブジェクトの相対的使用率、収益等のファクタをもとに集合から離れることができる。この動的メンバシップの管理は、サーバ間のオブジェクトのレプリカ作成、及びグローバル・サーバ間のレプリカの移動を行うためのレプリカ管理シグナリング・プロトコルを介してコントローラにより自主的に管理できる。
【0089】
例えば、あるオブジェクトに、最大数Nの一時的レプリカを実装することができる。この数は、アプリオリに決定するかまたは実行時に動的に設定でき、オブジェクトの一時的レプリカの最大数はオブジェクト毎に変更可能である。また、あるオブジェクトに関連付けられる一時的レプリカの数は時間とともに変わり、例えば需要が伸びたとき、オブジェクトがホットなとき、容量が少ないとき等には自主的に増やし、或いは需要が低下したとき、オブジェクトがホットでなくなったとき、容量が予測需要に対して充分大きいことがわかったとき等には少なくすることができる。
【0090】
具体的には、レプリカ管理システムは、4つのプロセスと補助的シグナリング・プロトコル(つまりレプリカ管理プロトコル)を含み、オブジェクト・レプリカのオンデマンド作成を実装するように機能する。レプリカ管理システムは、サーバのリソース容量等の属性を示す所定の制約をもとに特定のサーバに向けられるような規制応答での、サーバに対するコントローラの規制応答(つまりレプリカやリクエストの配備)に責任を持つ。特に同じグローバル・サーバに対するリクエストとレプリカの配備は、クライアントとコンテント作成者により示される明示的な共同割当て制約を満足することに重点を置いて行える。
【0091】
本発明では、リクエスト(つまり需要)とレプリカ(つまり容量)の管理システム間の対話は、それぞれ予備不足チェック、予備供給過剰チェックと呼ぶ需要から容量(つまり一方向)への2つのトリガで構成される。予備不足チェックは、リクエスト管理システムが、あるオブジェクトに対する需要が伸びると予測されるときには、レプリカ管理システムに容量不足監査を要求するため行い、特定のオブジェクトに対する需要が少なくなると予測されるときには、容量過剰監査をレプリカ管理システムに要求するため行う。予備テストにより、需要から容量への条件が明らかになった場合、レプリカ管理システムから総合分析が要求される。これによりレプリカの作成や削除が行われることがある。これらのチェックが予備と呼ばれるのは、その目的が、レプリカ管理のオーバヘッドとアグレッシブネスのバランスをとることだからである。
【0092】
容量調整機構は、本発明で述べている一定の条件に応じてアクティブにされる。特にリクエスト管理システムによる予備チェックは、不足条件(ある予測需要に対して利用可能な容量が供給不足と定義される)を確認するため行われる。このチェックは、容量調整機構のアクティブ化をトリガするため行われ、レプリカ管理システムと呼ばれる。同様に、予備チェックは、供給過剰条件(ある予測需要に対して利用可能な容量が供給過剰と定義される)を確認するため行われる。このチェックは、容量調整機構のアクティブ化をトリガするため行われる。先に述べたレプリカ管理とリクエスト管理の各システムの統合(つまり需要と容量の調整)について、ここで図16に関して詳しく説明する。図16は、後述するようにレプリカ管理システムの様々なプロセス間の対話を示す。
【0093】
図16に示す通り、予備不足チェック(1405)は最初に、不足条件を確認するためリクエスト管理システムにより実行される。リクエスト管理システムでサービス・バインディングが確立された後、予備不足監査チェック(1405)が行われる。好適実施例の予備不足チェック(1405)を図18に詳しく示す。
【0094】
図18に示した好適実施例の場合、予備不足チェック(1405)により、要求されたオブジェクトの緑のレプリカが1つしか残っていないかどうか判定される(1410)。当業者には明らかなように、不足チェック(1405)は、安定性やアグレッシブネスを変えていくつかの方法で実装することができる。例えば、アプリオリに選択したオブジェクト・セットに優先権を与えることができる。その場合、予備不足チェック(1405)は、このバイアスを反映するよう変更できる。不足条件が確認されると、レプリカ作成プロセス(1300)に監査リクエスト(1415)が出される。監査リクエスト(1415)は当該オブジェクトを識別する。その目的は、指定されたオブジェクトについてレプリカ作成プロセス(1300)に、より総合的な評価を要求することである。好適実施例のレプリカ作成プロセス(1300)の詳細を図19に示す。特にレプリカ作成プロセス(1300)は、そのような監査リクエスト(1415)が出されたときのみ実行され、他の場合、監査はトリガされない(1499)。レプリカの作成により、対応するレプリカ・ディレクトリ(656)が更新される。
【0095】
図16で、レプリカ作成プロセス(1300)の目的は、監査リクエスト(1415)で指定されたオブジェクト(例えばオブジェクトO1)について新しいレプリカのニーズが本当にあるかどうかを判定することである。新しいレプリカのニーズがある場合、レプリカ配備プロセス(1400)に配備リクエスト(1710)が登録される。好適実施例のレプリカ配備プロセス(1400)の詳細を図20に示す。配備リクエスト(1710)は、指定オブジェクト(O1等)がレプリカ作成基準を満たしており、レプリカを作成する必要のあることを示す。好適実施例のレプリカ作成基準(1800)の詳細を図20に示す。特にレプリカ作成基準は、需要統計(696)、レプリカ・ディレクトリ(666)、サーバ・ディレクトリ(656)等のコントローラ・ベースのデータ構造に依存する需要/容量評価を実装する。
【0096】
レプリカ配備プロセス(1400)は、保留されている配備リクエスト(1710等)を選択し、そのリクエストについて、可能なら新しいレプリカの配備を決定する。当業者には明らかなように、レプリカ作成リソースが少ないときは、保留中のいくつかの配備リクエストを登録し、コスト基準(配備ポリシ)(1745)によりオブジェクトのレプリカ作成に優先順位を付けることもできる。好適実施例ではFIFOで順序付けを行う。
【0097】
図16、図20に示す通り、レプリカ配備プロセス(1400)の目的は、所定基準(1440)をもとに、ソース・サーバ(1720参照)とターゲット・サーバ(1730)を識別することである。好適実施例の場合、コントローラが、ここで説明しているリクエストの配備と同様な形でレプリカ作成オプションを調べて交渉する。これは、図16に示し、図23に関して説明するレプリカ管理プロトコル(1200)により提供される照会機能を呼び出すことにより行う。
【0098】
ソース(1720)とターゲット(1730)のサーバが識別されると、つまりオプションがステップ(1450)で受け入れられると、レプリカ管理プロトコル(1200)が、対応する配備リクエスト(1710)に対するレプリカ作成リクエスト(1740)を登録する。これはレプリカ管理プロトコル(1200)により提供されるレプリカ作成機能を呼び出して行う。当業者には明らかなように、レプリカ作成時にいくつか条件が発生することがある。好適実施例の場合、レプリカ作成ポリシ(1765)により。レプリカ管理プロセス下で例外処理をカスタマイズすることができる。
【0099】
同様に、レプリカ管理システムはレプリカを削除する機能を提供する。リクエスト管理システムは、予備供給過剰チェック(1505)を行い、供給過剰条件を確認する。好適実施例の予備供給過剰チェック(1505)の詳細を図17に示す。予備供給過剰監査チェック(1505)は、サービス・バインディングの終了時に行われる。更に、サーバが一時的レプリカの更新を要求したときにも適用される。供給過剰条件が確認されたとき、監査リクエスト(1515)リクエストがレプリカ削除プロセス(1500)に出される。好適実施例のレプリカ削除プロセス(1500)の詳細を図21に示す。
【0100】
レプリカ削除プロセス(1500)の目的は、特定のレプリカに関連付けられたオブジェクトに対するグローバル需要対容量基準(1800)をもとに、そのレプリカを削除するかどうかを判定することである。好適実施例の場合、一時的レプリカが、その存続期限、需要対容量、及びオブジェクトがホットかどうかにもとづく複雑な基準から削除候補とみなされる。好適実施例の削除基準(1800)を図22に示す。特に削除基準は需要/容量評価を実装する。
【0101】
好適実施例の場合、削除基準とレプリカ作成の基準は補い合う関係にある。つまりレプリカを更新する条件は、レプリカを初めて作成することと同じである。好適実施例のレプリカ削除プロセス(1500)の詳細を図21に示す。レプリカ削除プロセス(1500)によりレプリカを削除する理由が見つかった場合、レプリカ管理システムは、ただレプリカの更新(つまりレプリカの存続期限の更新)を拒否するだけである。レプリカが削除されると、対応するレプリカ・ディレクトリ(656)が更新される。
【0102】
図19は、レプリカ作成プロセス(1300)のフローチャートである。先に述べた通り、レプリカ作成プロセス(1300)の目的は、要求されたオブジェクトの新しいレプリカを作成する必要があるかどうかを判定することである。ステップ(1300)で監査リクエスト(1415)(図16)が受信されると、レプリカ作成プロセスは、要求されたオブジェクトがホット・オブジェクトのセットのメンバかどうかを判定する(1304)。オブジェクトがホットなら、包括的不足チェックがステップ(1350)で要求される。このチェックは需要対容量チェックと呼ばれ、詳細を図22に示している。一方、レプリカがホット・オブジェクトのセットのメンバではない場合(1355)、コントローラは、まだレプリカを作成する時期ではないと判断し(1360、1370)、従ってレプリカは作成されない(1375)。ただし、ステップ(1360)では、オブジェクトがホットでない場合にもコントローラがレプリカを作成することを決定できる。例えば、選択されたオブジェクトには、コスト基準をもとに優先権を与えることができ、従って、例えば大きいコスト・メリットに関連付けられたオブジェクトに対して優先的にレプリカを作成できる。従ってステップ(1365)で、図20に示すようにレプリカ配備アルゴリズムが呼び出される。
【0103】
図22は、需要対容量をチェックするプロセス(1800)のフローチャートである。ステップ(1830)で、特定のオブジェクト(O(R))に対する予測需要(ステップ1810で判定)が利用可能な容量(ステップ1820で判定)を超えるかどうか判定される。ステップ(1830)では、予測需要が利用可能な容量を超える場合、コントローラは、ステップ(1831)に示すように、要求された(ホット)オブジェクトをレプリカ作成候補とみなす。その場合、要求されたオブジェクトはレプリカ作成キューに置かれ、レプリカ配備プロセス(1400)が呼び出される(図15に示す)。一方、予測需要が利用可能な容量を下回る場合、コントローラは、ステップ(1835)に示すように、まだレプリカを作成する時期ではないと判断する。
【0104】
緑のレプリカの不足(図18の1415)は、レプリカ作成プロセス(1300)に備えるためのトリガにすぎない。新しいレプリカを作成する実際の決定は、ステップ(1830)で調べられ、予測需要(1810)が図22に示すように利用可能な容量(1820)をかなり上回るときにのみオンにされる(1831)。先に述べた通り、平滑化した需要統計により、各オブジェクトの予測需要が安定に予測される。一方、サーバ使用率/意向状態(990)(図7等)とそのサーバ容量評価は、おおよそのサーバ容量(例えば残っている緑のサーバの数等)を予測するために使用される。残りの容量を安定に予測するため緑のサーバに照会するには、MON_REQUESTメッセージも使用できる。その予測は、コントローラにとっては、レプリカが評価されているオブジェクトの特定の要件に翻訳された場合にのみ有益である。これにより、そのオブジェクトに対して排他的に予約された場合にサーバが供給できる配備数が別に得られる。図22の好適実施例では、この数(1820)が、要求されたオブジェクトに関連付けられた予測需要(1810)により少ない場合、新しいレプリカの作成が決定される(1831)。
【0105】
レプリカ作成プロセスで、あるオブジェクトに新しいレプリカが必要なことが確認されると、図20に関して説明しているレプリカ配備プロセス(1400)が呼び出され、このレプリカの配備を検出できるかどうか判定される。
【0106】
図20は、ステップ(1430)に示すように、容量等のファクタをもとにターゲットのグローバル・サーバを見つけるため実装されるレプリカ配備プロセス(1400)のフローチャートである。レプリカ配備プロセス(1400)は、ターゲット・サーバを見つける他、ステップ(1420)に示すように、レプリカ作成を開始するソース・サーバを見つけようとする。そのためコントローラは、ステップ(1440)に示すように、候補のソース・サーバとターゲット・サーバの探索と交渉のプロセスにかかわる。探索と交渉は、好適には、基本的にステップ(1420)に戻るプロセスの繰り返してよく、ステップ(1450)に示すように、オプションが受け入れられない場合は、新しいソース・サーバとターゲット・サーバが見つけられる。この探索と交渉は、図23に例を示しているように、レプリカ管理プロトコルにより提供される照会機能(REP_QUERY/RQ_ACKメッセージ)を通して達成される。例えば、ソース(1420)とターゲット(1430)のサーバの検索時、レプリカ配備プロセス(1400)は、例えば、レプリカを作成するストリーミング・レートの決定(及び対応する帯域幅の要件)等のレプリカ作成オプションを交渉する(1440)。レプリカが作成されるオブジェクトはレプリカ作成時に変更することができる。例えば、レプリカを作成するオブジェクトは、図20に示すオプション交渉ステップ(1440)の間に低い品質にダウングレードできる。同様に、オブジェクトは、異なるフォーマットにエンコードしたり、オブジェクトの元のコンテンツとの関係にかかわらずコンテンツで拡張したりできる。
【0107】
プロセスは、レプリカ作成オプションに同意すると、ステップ(1460)に進み、レプリカ作成リクエストが出される。レプリカ作成リクエストは、好適には、選択されたオブジェクトの別のレプリカを現在保持していない緑のグローバル・サーバに出される。そのような緑のグローバル・サーバが2つ以上存在する場合、好適実施例に従って、要求されているオブジェクトに関連付けられた利用可能な容量等のコスト基準をもとに、最も近いグローバル・サーバに優先権が与えられる。
【0108】
好適実施例では、予備不足基準(図18)により、ほとんどの場合、残る緑のレプリカ(つまり可能性のあるソース・サーバ)は0か1つである。更に、緑のターゲット・サーバが残っていない可能性もある。また、好適実施例の場合、レプリカ配備プロセスでは、ソース・サーバでもターゲット・サーバでもリソースは明示的に予約されない。そうした理由から、本発明の好適実施例は、どのサーバについても(ソースまたはターゲット)、残っている黄/赤の容量の特権的利用に依存する。レプリカ配備プロセス(1400)は、サーバの範囲外の過剰な容量(つまり黄/緑の容量)に依存して、レプリカ作成リクエスト(1460)を出す。すなわち、レプリカ配備プロセス(1400)は、選択されたオブジェクトに利用できる緑のサーバが見つからない場合は、任意の対応できる黄のサーバにレプリカ作成リクエスト(1460)を出すことができる。そのため、サーバ側の受け入れ管理プロセス(1040)は、レプリカ作成配備とリクエスト配備を区別できるように拡張する必要がある。或いはまた、残りの緑のレプリカが利用できない場合、レプリカ配備プロセスは、そのような緑のレプリカが利用できるようになるまでレプリカ作成リクエスト(1460)を登録しておくこともできる。
【0109】
図20に戻る。ソースとターゲットのサーバが選択された後、レプリカ作成リクエストは、ステップ(1460)に示すように両方のサーバに出される。そのようなレプリカ作成リクエストの処理に必要なシグナリングの例を図23に示す。ステップ(1470)でコントローラは、選択されたターゲット・サーバから、レプリカ作成が完了したとの肯定応答を待つ。次にステップ(1475)で有効期限がレプリカに割当てられる。これはここではレプリカの存続期限と呼ぶ。存続期限は、グローバル・サーバ上の一時的レプリカの存続時間に(更新可能な)上限を課す。次にステップ(1480)でコントローラはそのレプリカ・ディレクトリ(656)を更新する。その後、新しいレプリカが将来の配備に利用できるようになる(1490)。
【0110】
交渉されたオプション(1440)によるが、レプリカ作成は時間のかかることがある。従って本発明に従い、レプリカ作成時に出されるリクエストは、(時間的に)延長される、(別のコントローラに)渡される、または所定基準に応じてコントローラにより拒否されることがある。
【0111】
当業者には明らかなように、その間、サーバについてレポートされる使用率/意向状態が変わる可能性がある。一時的レプリカが作成されているとき(1470)、サーバが利用可能になり(つまり緑になり)、容量が需要を上回る可能性がある。その場合、新しく作成されたレプリカの存続時間により、過剰供給の期間が決まる。すなわち、先に述べたように、レプリカ作成機構は、それが作成する全てのレプリカに有効期限を割当てる。レプリカの有効期限が切れると、そのグローバル・サーバはレプリカの有効期限の更新を要求する。その要求が受け入れられない場合、レプリカはグローバル・サーバから削除され、そのリソースが利用できるようになる。一方、新しいレプリカが利用できる時間までに、利用可能な容量が残っておらず(つまり緑のサーバが見つからない)、需要が容量を大きく上回る可能性もある。その場合、不足時に行われる配備により、別にレプリカ作成監査がトリガされる。そのため、どのようなオブジェクトについても作成されるレプリカの最大数を制限する必要がある。当業者には明らかなように、新しい監査リクエストは所定時間の間に登録できる。その時間が経過した後、予備不足条件を再チェックし、それが続いているかどうか(つまり登録時間の間、緑のレプリカは利用できるようにならないかどうか)判定する。この時間が長すぎる場合、そのオブジェクトに対するリクエストは削除されるか別のコントローラに渡されることは明らかである。
【0112】
図23は、コントローラ(520)によりグローバル・サーバ上の一時的レプリカを作成、削除するためのレプリカ管理プロトコル(1200)の1実施例を示す。コントローラは、新しいレプリカのニーズと配備を確認すると、ソース・サーバ(1720等)の探索を開始し、そのようなサーバとのレプリカ作成接続を交渉する。これはREP_QUERY(2020)/RQ_ACK(2025)メッセージの交換として示している。REP_QUERY(2020)メッセージは、交渉パラメータとともに、レプリカを作成するオブジェクトのオブジェクトIDを含む。
【0113】
サーバ(1720等)は、REP_QUERY(2020)メッセージを受信すると、受け入れ管理を適用し、レプリカ作成接続を受け入れるかどうか判定する。当業者には明らかなように、REP_QUERY(2020)メッセージは、機能的にCID_QUERYメッセージと似ている。ただし前記の通り、レプリカ作成リクエストに対して特権的受け入れ管理(つまり黄の受け入れ)を行うためには、配備とレプリカ作成の照会を区別する必要がある。レプリカ作成リクエスト(2020)に特権的受け入れ管理を適用した後、対応するソース・サーバ(1720等)はそれぞれその受け入れ応答をRQ_ACKメッセージ(2025)を介してコントローラにリレーする。そのようなサーバ応答(2025)はそれぞれ、(i)コントローラ(520)によりREP_QUERYメッセージ(2020)に含まれる交渉パラメータの受け入れ、(ii)交渉、または(iii)コントローラ(520)によりREP_QUERYメッセージ(2020)に含まれる交渉パラメータの拒否を示すことがある。
【0114】
その時間の間、コントローラはまた、前記のように、有望なターゲット・サーバのセット(1730参照)を別のREP_QUERY(2021)/RQ_ACK(2026)メッセージ交換を介して探索する。可能性のあるターゲット・サーバ(1730等)は特権的受け入れ管理(前記の通り)をレプリカ作成照会のREP_QUERY(2021等)に適用し、その受け入れ決定をRQ_ACKメッセージ(2026)を介してコントローラ(520)にリレーする。
【0115】
コントローラは(520)は、CID_QUERYメッセージの配備と同様な方法で、ソースとターゲットのサーバからRQ_ACKメッセージ(2025、及び2026等)を集め、レプリカ作成配備候補から選択を行う。同様に、作成配備候補が受信されない場合、コントローラはそのレプリカ作成ポリシ(1765参照)(図16)に従って次の探索に進む。
【0116】
次に、コントローラ(520)がソースとターゲットのサーバを選択すると、REP_LISTENメッセージ(2040)がターゲット・サーバ(1730)に送られる。REP_LISTENメッセージは、レプリカを作成するオブジェクト(オブジェクトO1等)、ソース・サーバ(1720等)、及びターゲット・サーバ(1730等)を識別する。またREP_LISTENメッセージ(2040)は、コントローラにより決まるレプリカの存続期限を含む。先に述べた通り、存続期限は、サーバ上の一時的レプリカの存続時間を決定し、これにより、使用されなくなったコンテンツを削除できる。グローバル・サーバ(2010)は、REP_LISTENメッセージ(2040)により、REP_LISTENメッセージ(2040)で識別されたサーバ(1720等)からのレプリカ作成接続を待機しリスンする。ターゲット・サーバは、このレプリカ作成接続のリソースを設定し、準備ができたことをRL_ACKメッセージ(2045)を介してコントローラに通知する。
【0117】
コントローラ(520)は、ターゲット・サーバ(1730)がRL_ACKメッセージ(2045)を介して準備ができたことを通知した後、REP_PLACEメッセージ(2055)を選択されたソース・サーバ(1720)に発行する。REP_PLACEメッセージ(2055)はソース・サーバに、ターゲットのグローバル・サーバとのレプリカ作成接続を確立することを指示する。ソース・サーバ(1720)は、ターゲット・サーバ(1730)とのレプリカ作成接続をスケジュールし設定する。
【0118】
ソース・サーバ(1720)は、レプリカ作成接続を設定した後、レプリカ作成接続の確立をREP_ACKメッセージ(2075)を介してコントローラ(520)に通知する。同時にコンテンツのレプリカ作成が、先に交渉されたパラメータで、REP_TRANSFERメッセージ(2060)を介して開始される。REP_TRANSFERメッセージ(2060)はそれぞれ、ターゲット・サーバで断片化されたコンテンツを再構成するため必要なデータ(シーケンス番号、バイト数等)を含む。
【0119】
コンテンツのレプリカが作成された後、ターゲット・サーバ(1730)は、新しいレプリカの作成をREP_COMPLETEDメッセージ(2090)を介してコントローラ(520)に発表する。REP_COMPLETEDメッセージはレプリカが作成されたオブジェクトのオブジェクトIDを含む。コントローラは、REP_SETLIFEメッセージ(2085)を使い、更新とこれに関連する新しい期限を一時的レプリカを持つグローバル・サーバにリレーする。コントローラは、当該グローバル・サーバがRS_ACKメッセージ(2095)を介して更新の確認応答を返すまで待機する(1555)。コントローラは次に、グローバル・サーバ(1730)で新しく作成されたこの一時的レプリカを将来の配備に利用するため、そのレプリカ管理ディレクトリ(656)を更新する(1480)。
【0120】
新しい一時的レプリカの作成では、グローバル・サーバにリソースが予約されることはない。その代わり、オンデマンドのレプリカ作成により、同じオブジェクトに対する後のリクエストの間、利用可能な容量が見つかる可能性が大きくされる。
【0121】
レプリカは永続的ではなく、存続期限に関連付けられるので、レプリカ作成機構は、それが作成する全てのレプリカに有効期限を割当てる。レプリカの有効期限が切れると、そのグローバル・サーバは、レプリカの有効期限の更新を要求する。この要求が受け入れられない場合、レプリカはグローバル・サーバから削除され、そのリソースが利用できるようになることがある。
【0122】
好適実施例に従い、レプリカ管理システムは、オブジェクトに対する需要が大きく減少し続ける間は、容量を節約する。本発明では、レプリカ管理システムは、レプリカを削除する必要があるかどうかを自主的に判定する。特に、サービス・バインディングが終了する毎に、サービス・バインディングに関連付けられたサーバは、CID_COMPLETEDメッセージをコントローラに送る。とりわけCID_COMPLETEDメッセージにより、コントローラは予備供給過剰チェックをこのレプリカに適用する。また予備供給過剰チェック(1505)(図17)は、レプリカの更新が要求されるときにもサーバによりトリガされる。
【0123】
過剰チェックは、好適には、ある特定のオブジェクトについて、利用可能な容量が予測需要を大きく上回るかどうかを判定するため実行する。特に好適実施例では、レプリカの使用率が低い、ホットではないとされるオブジェクトのレプリカが存在する、レプリカの存続期限が切れている等、供給過剰の様々な兆候を認識する。従って、当業者には、ホット・オブジェクトの最大数と一時的レプリカの存続時間の相互作用は明らかであろう。例えば、選択された一時的レプリカの存続時間が長すぎる場合、ホットでなくなる可能性のあるオブジェクトのレプリカがグローバル・サーバに存在する間、現在新しくホットになったオブジェクトのレプリカは、利用可能な緑のグローバル・サーバを待機する可能性がある。
【0124】
好適実施例の予備供給過剰チェック(1505)を図17に示す。一時的レプリカは、その存続期限が切れたとされる場合(1510)、削除対象になるかどうか監査される。その場合、ステップ(1515)でレプリカ削除プロセス(1500)が呼び出され、より総合的な分析が行われる。他の場合に処理は行われない(1599)。
【0125】
図21は、監査されたレプリカを削除する必要があるかどうかを判定するレプリカ削除プロセス(1500)のフローチャートである。逆に言えば、レプリカ削除プロセス(1500)は、レプリカを更新する必要があるかどうかも判定する(1535)。レプリカ削除プロセス(1500)は最初、レプリカがホット・オブジェクトに関連付けられているかどうかを確認する(1525)。このとき、コントローラは、レプリカの更新を拒否することでレプリカを削除するか、レプリカの存続時間を延長することでレプリカを更新することができる。レプリカがホットである場合、図22に関して説明しているように総合的な需要対容量チェックが呼び出される(1530)。一方、レプリカがホットでない(1525)か、需要対容量チェックのとき(1530)供給過剰とされた場合、レプリカは削除候補とみなされる。
【0126】
実際の削除は、現在の最適な慣習に従い、当該レプリカが続けて2回削除候補とされる(1570)まで延期される(1565)。当業者には、この慣習が、PetersonとSilberschatzによりOperating Systems Concepts(Prentice Hall)に説明されているセカンド・チャンス置換アルゴリズムの例であることは明らかであろう。これが、このレプリカが存続する最初のチャンスである場合(1590)、レプリカはそこで一時的に更新される(1540)。当業者には、2つ目の存続期限(1550)を元の期限より短くできることは明らかであろう。REP_SETLIFEメッセージ(2085)(図23)は、更新とこれに関連する新しい期限を、一時的レプリカを持つグローバル・サーバにリレーするため使用する。コントローラは、当該グローバル・サーバが更新の確認応答をRS_ACKメッセージ(2095)(図23)を介して返すまで待機する(1555)。存続する2回目のチャンスがレプリカに与えられた場合、レプリカはステップ(1570)(図21)で削除される。コントローラはそのとき、レプリカの更新を取りやめ(1575)、これによりグローバル・サーバはレプリカを削除する。レプリカを削除する決定にまで至ると(1570)、レプリカ・ディレクトリが更新され(1580)、このレプリカが後の配備に利用される。レプリカのデータ構造は、複数のスレッドまたはプロセスがアクセスするので、実施例によっては保護する必要がある。
【0127】
当業者には明らかなように、他の機構により、一度に1つのレプリカではなく、また別の形で容量を調整することができる。特に容量の調整は、適合型レート管理の問題であり、現在の最適な慣習は、その範囲内で非対称型の補足方式によっている。例えば、倍数的に増加する(例えば最初に1つのレプリカが作られ、2回目には2つのレプリカ、3回目は4つのレプリカが作られる等)他、線形に減少する(例えば最初は1つのレプリカが削除され、2回目も1つのレプリカが削除される等)方法も使用できる。また、補足作業(つまり作成するレプリカの数)を需要の伸びに合わせることも可能である。そのアプローチでは、作成するレプリカの数は、N.ManoharらによりApplying Statistical Process Control to the Adaptive Rate Control Problem(Proc of SPIE MMCN ’98、January 1998)に説明されているような過去の需要と予測需要の違いにもとづいて決定される。しかしその場合でも、レプリカ作成作業を制限するように、レプリカの最大数に制限を課すことが望ましいことは明らかである。
【0128】
更に、需要と容量の調整機構の好適実施例は、分散実装形態が可能である。例えば、1実施例では、コントローラ機能を各サーバに置ける。そこで代理コントローラが、サーバの需要と容量の監視作業を行い、重要なしきい値を超えたときに、グローバル・サーバの利用を開始する。特に複数のコントローラ間で同じグローバル・サーバを使用できる。
【0129】
当業者には明らかなように、ここで説明しているトリガ管理の実施例は、需要と地理上のパターンがわかっているかまたは安定に予測できる特定の環境に合わせて最適化できる。
【0130】
本発明には有益な用途が多数ある。例えば前記の通り、本発明のシステム及び方法は、インターネット・サービス・プロバイダ(ISP)が提供し、ケーブル・テレビ・ネットワーク等のブロードキャスト・コンテント・プロバイダをサポートし、需要を、例えばそのケーブル・ネットワークのサーバの容量に動的に適合させる付加価値サービスとして使用できる。ISPは、必要なら、(ケーブル・ネットワークのコンテンツの)一時的レプリカを、ISPに示されるような、そのコンテンツに対する需要に関する特性をもとにISPが所有するグローバル・サーバに配備する。ここではそのような変形例について説明する。
【0131】
例えば、本発明は、複数のブロードキャスト・コンテンツ・プロバイダをサポートするとき、ISPリソースの統計的共有(つまりグローバルに共有されるサーバ)を実現するためにも使用できる。これによりIPSコントローラは、収益やコンテンツ・プロバイダの最大損失等のコスト基準に従って、レプリカ作成リクエストの割当てを管理し、通常はISPの最大利益を保護する。
【0132】
独立したコンテンツ・プロバイダは、それぞれ、特定の分野を実装する場合、そのファイアウォールの背後に、代理コントローラと呼ばれるサーバを運用する。代理コントローラは、コンテンツ・プロバイダのために需要と容量の監視を行い、重要なしきい値を超えたとき、ISPのコントローラにレプリカ作成リクエストを送る。ISPコントローラはそこで、保留中のレプリカ作成リクエスト間の調停を行い、どのレプリカ作成リクエストをどのグローバル・サーバに割当てるかを決定する。特に代理コントローラ間で同じグローバル・サーバを共有できる。
【0133】
当業者には明らかなように、コンテンツ・プロバイダは、セキュリティを理由に、その内部の使用状況統計を開示しようとせず、使用状況統計へのアクセスを許可することもないと思われる。そのため、コンテンツ・プロバイダが、IPSグローバル・サーバへの特定のレプリカの配備を直接要求できるようにする必要があろう。更に、そのような要求は、地域やターゲットのグローバル・サーバの容量等の特定の要件を満たすため(コントローラではなくコンテンツ・プロバイダにより)条件付きにすることができる。ISPコントローラはその場合、そのような要件を満足する特定のグローバル・サーバを1つ見つけようとする。例えば、あるコンテンツ・プロバイダは、”次のコンテンツのレプリカを5分以内に作成し、その一時的レプリカを米南東部にあるHIGH容量サーバに設定して下さい”といったレプリカ作成リクエストを出す。
【0134】
更に、ISPがレプリカ作成リクエストを適切なグローバル・サーバを持つ他のISPに渡せるとした契約により、ISP間の連携が可能である。例えば、あるコンテンツ・プロバイダが出したリクエストに関連付けられた要件をISPのグローバル・サーバがどれも満足しない場合に、ISPは、レプリカ作成リクエストをフレンドリなISPに渡す等である。
【0135】
更に、そのようなレプリカ作成リクエストの配備は、中間パーティにより実装することができる。その場合、中間パーティは、レプリカ作成リクエストの、最も有能且つ適切なパーティへの受け渡しを、コスト、有効期限等の何らかのコスト基準に従って交渉する。
【0136】
当業者には明らかなように、需要特性に対応しなくなったレプリカはグローバル・サーバに配備することが考えられる。そのために、レプリカ移行管理をシステム全体で一時的レプリカの安定性とその分散の微調整を受け持つ定期的健全性チェックにより拡張することができる。レプリカ移行プロセスは、ガーベッジ・コレクション及び一時的レプリカの数と配備の最適化を行う。レプリカ移行プロセスは、ガーベッジ・コレクションのプロセスと同じ形で呼び出す。レプリカ移行プロセスは、全ての一時的レプリカのリストを辿り、使用率の低いレプリカを見つける。
【0137】
レプリカ移行プロセスは、ホット・オブジェクトの優勢な地域が変化する場合等(例えば、クライアントからのリクエストが米東海岸から西海岸にシフトした場合)地理上の区域でレプリカを移行するのがコスト基準から効率的かどうかを判定することはできない。ただしレプリカの移行は、予測需要に対して地理上の近接性が増したためにネットワーク・コストを下げる場合に利用できる。例えば、すでに配備された一時的レプリカをグローバル・サーバ間で移動するのは、システム全体の容量が少なく、予測需要の分析から将来の需要の特性がシフトすることが明らかになった場合には望ましい。特に過去の需要により、一時的レプリカが地域G1に配備されている可能性があるが、地域G3からの予測需要を見ると、一時的レプリカをG1からG3に移行するのが望ましい場合もある(図9参照)。従って、その場合、現在の配備を推奨配備と比較したときに、コスト・メリットを予測したコスト基準により、別のグローバル・サーバへのレプリカの移行がトリガされる。
【0138】
レプリカ移行プロセスは、例えば一時的レプリカをグローバル・サーバ間で移行できる等、所定基準をもとにした様々なヒューリスティックに依存する。更に、別々のグローバル・サーバ上の2つの一時的レプリカは、マージして1つのグローバル・サーバのレプリカにすることができる。例えば、別のサーバに配備した場合の組み合わせ特性(使用状態、統計等)を予測するため、2つ以上のサーバをマージすると有益なことがある。更に、そのような決定は、需要統計に関するグローバル・サーバの適切性等の所定基準をもとに行える。そのため本発明は、レプリカのマージをレプリカ配備の加法的投影と呼ぶ。
【0139】
また、一時的または非一時的レプリカを別の一時的または非一時的レプリカに移行する、つまりあるサーバから別のサーバにレプリカの配備をオフロードすることが望ましい場合もある。例えば、これは、特定のグローバル・サーバ上の容量をオープンにするとき、または、複数のサーバにまたがる一時的レプリカの使用率が低い場合に、それらを低使用率の永続的レプリカにまとめるためには望ましい。
【0140】
レプリカの統計の不安定さを避けるため、過去の配備の目的に関して、レプリカ移行手段には慎重なトリガ管理が必要である。当業者には明らかなように、自己規制管理を実装し、前記の移行ヒューリスティクスの安定性管理を評価するためには、前記の手法に加えて、または前記の手法に代えて、オンライン・プロセス最適化やニューラル・ネットワーク等の手法を採用できる。
【0141】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0142】
(1)独立したクライアントから、ネットワークに分散しマルチメディア・オブジェクトを有するサーバに該オブジェクトを要求するリクエスト管理システムであって、各サーバがマルチメディア・オブジェクトを記憶する容量と、要求されたマルチメディア・オブジェクトをクライアントに配信するストリーミング・リソースとを持ち、該システムは、
前記クライアントから前記マルチメディア・オブジェクトの配備照会を受信し、要求されたオブジェクトには固有IDが関連付けられる、中間管理手段と、
前記所与のオブジェクトIDに関連付けられ、前記サーバに記憶されたオブジェクト・レプリカを見つける手段と、
前記オブジェクト・レプリカの前記配備照会を考慮するサーバの意向を判定する手段と、
所定のポリシに従って、意向のあるサーバに対する配備照会を生成する手段と、を含み、
前記中間管理手段は、配備照会を前記意向のあるサーバに送る、
システム。
(2)オブジェクト・レプリカを見つける前記手段は、オブジェクトIDと前記サーバでの関連付けられたオブジェクト・レプリカの位置とのマッピングを含む第1ディレクトリ・サービス手段を含む、前記(1)記載のシステム。
(3)サーバの意向を判定する前記手段は、利用できる分散サーバを、配備照会を受信する意向の程度を示すインディケータにマップする第2ディレクトリ・サービスを含む、前記(2)記載のシステム。
(4)前記第2ディレクトリ・サービスにより、分散サーバと、前記サーバで利用できるリソースの量を示す利用可能容量評価インディケータとのマッピングが可能になる、前記(3)記載のシステム。
(5)前記管理手段は、サーバに対するリクエストの一時的配備を生成する配備ポリシを実装し、該一時的配備を決定するため前記第1と第2のディレクトリ・サービスにアクセスする、前記(4)記載のシステム。
(6)前記所定ポリシは、交渉ポリシを含み、前記管理手段は、一時的配備を選択し、関連付けられた各サーバと交渉し、所定基準を基に該サーバに対するリクエストの配備を可能にする、前記(5)記載のシステム。
(7)前記所定基準は、ストリーミング・オブジェクトの解像度、コスト、ストリーミング・オブジェクトの品質、クライアントとサーバの距離、ストリーミング・オブジェクト受信時の最大遅延を含むグループから選択される基準を含む、前記(6)記載のシステム。
(8)前記管理手段は、サーバに対する複数の配備機会を繰り返し判定する探索ポリシを実装する、前記(6)記載のシステム。
(9)前記管理手段は、有限時間間隔で受信済みリクエスト数を監視し、所定基準を基に該リクエストをリクエスト・グループにまとめる手段を含む、前記(6)記載のシステム。
(10)有限時間間隔でデマンド・リクエストを総合する前記所定基準は、同じオブジェクトIDを要求するクライアントの地理上の近接性を含む、前記(9)記載のシステム。
(11)有限時間間隔でデマンド・リクエストを総合する前記所定基準は、同じオブジェクトIDについて解像度と品質を含めて、要求されたストリーミング制約の共通性を含む、前記(10)記載のシステム。
(12)有限時間間隔でデマンド・リクエストを総合する前記所定基準は、同じオブジェクトIDに対するリクエストの到着時間の時間的近接性を含む、前記(10)記載のシステム。
(13)前記管理手段は、サーバに対する同種のリクエストのグループをマルチキャスト機能でバッチ処理する手段を含み、該サーバはクライアントにマルチキャスト・サービスを提供する、前記(12)記載のシステム。
(14)前記管理手段は、統合のためリクエストを自主的にアップグレードまたはダウングレードする手段を含む、前記(12)記載のシステム。
(15)オブジェクト・リクエストをアップグレードまたはダウングレードする前記手段は、地理上の近接性によりグループ分けする基準の適用性を加減する、前記(14)記載のシステム。
(16)オブジェクト・リクエストをアップグレードまたはダウングレードする前記手段は、要求されたオブジェクトの品質を加減する、前記(14)記載のシステム。
(17)オブジェクト・リクエストをアップグレードまたはダウングレードする前記手段は、時間的近接性によりグループ分けする基準の適用性を変更する、前記(14)記載のシステム。
(18)前記サーバはそれぞれその利用できるシステム容量を前記管理手段にレポートする、前記(9)記載のシステム。
(19)前記管理手段は、オブジェクト・レプリカを生成し、前記オブジェクトに対する現在のデマンド・リクエストに従ってサーバに対するオブジェクト・レプリカの配備を動的に管理する、前記(9)記載のシステム。
(20)前記オブジェクトに対する過去の需要を基にオブジェクト・リクエストに対する将来の需要を予測する手段を含み、オブジェクト・レプリカの前記配備は予測された需要にもとづく、前記(9)記載のシステム。
(21)前記ディレクトリ・サービスの前記意向インディケータは、前記分散ネットワークで機能するサーバのアグレッシブネス(進取性)の程度を表し、前記サーバのアグレッシブネスをドライブするため使用される、前記(3)記載のシステム。
(22)前記分散ネットワークのサーバは、1つのエンティティとしてアドレス指定できるサーバ・デバイスを含むサーバ・クラスタを含む、前記(3)記載のシステム。
(23)前記ネットワークで利用できるオブジェクト・リソースの量を動的に管理する手段を含み、該動的管理手段は、
オブジェクト・リソースに対する需要を予測する手段と、
要求されたオブジェクト・リソースを記憶しストリーミングする前記ネットワークの前記サーバの容量を監視する手段と、
前記オブジェクト・リソースに対する前記予測需要と前記利用できる容量を基に前記オブジェクト・リソースのオブジェクト・レプリカを動的に生成し、需要が増加すると予測されたときは前記ネットワークのサーバに前記オブジェクト・レプリカを自動的且つ一時的に配置し、需要が減少すると予測されたときはレプリカを削除する手段と、
を含む、前記(1)記載のシステム。
(24)前記予測手段は、要求されたオブジェクト・リソースの需要の密度と量の特徴付けを含め、異なるクライアントからのリクエストを統合して分析する手段を含む、前記(23)記載のシステム。
(25)所定基準に従って動的レプリカの配備を管理する手段を含む、前記(24)記載のシステム。
(26)要求された特定のオブジェクトについて利用できる容量を予測需要と比較する監査をトリガする手段を含み、該監査は、需要が容量を上回ることを示す容量不足条件または容量が需要を上回ることを示す容量過剰条件を予備判定する、前記(25)記載のシステム。
(27)前記生成手段は、前記オブジェクトのレプリカを作成するソース・サーバと、該オブジェクト・レプリカを配備するターゲット・サーバとを見つける手段を含む、前記(26)記載のシステム。
(28)ソース・サーバとターゲット・サーバの間のレプリカ作成接続の提供と前記オブジェクトのレプリカを作成するストリーミング・レートを含め、レプリカ作成オプションを交渉する手段を含む、前記(27)記載のシステム。
(29)前記レプリカが作成されるオブジェクトには、有効期限が関連付けられ、該有効期限は、前記オブジェクトに容量不足条件が存在する場合には延長され、他の場合、該有効期限に達したときに前記オブジェクト・レプリカが削除される、前記(28)記載のシステム。
(30)ネットワークに分散したサーバに記憶されるマルチメディア・オブジェクトの需要を調整する方法であって、各サーバ・デバイスにマルチメディア・オブジェクトを記憶する容量と、要求されたマルチメディア・オブジェクトをクライアントに配信するストリーミング・リソースとを有し、該方法は、
独立したクライアントから前記マルチメディア・オブジェクトに対するリクエストを受信し、要求された各オブジェクトに固有IDが関連付けられる、ステップと、
前記要求されたオブジェクトのIDに関連付けられ、前記サーバに記憶されたオブジェクト・レプリカを見つけるステップと、
前記オブジェクト・レプリカに対する前記リクエストに関連付けられた配備照会を考慮するサーバの意向を判定するステップと、
所定ポリシに従って、意向のあるサーバへの前記オブジェクトに対する配備照会を生成し、該意向のあるサーバに配備照会を送るステップと、
を含む、方法。
(31)オブジェクトIDと、前記サーバでの関連付けられたオブジェクト・レプリカの位置とのマッピングを維持するステップを含む、前記(30)記載の方法。
(32)サーバの意向を判定する前記ステップは、利用できる分散サーバを、配備照会を受信するサーバの意向の程度を示すインディケータにマップするディレクトリ・サービスを実装するステップを含む、前記(30)記載の方法。
(33)サーバの意向を判定する前記ステップは、分散サーバを、前記サーバで利用できるリソースの量を示す利用可能容量評価インディケータにマップするディレクトリ・サービスを実装するステップを含む、前記(30)記載の方法。
(34)各分散オブジェクトに関連付けられ、需要の密度と量の特徴付けを含み、優勢な需要分野を示す地域インディケータを含む需要統計を維持するステップを含む、前記(30)記載の方法。
(35)前記生成ステップは、一時的配備を選択し、関連付けられた各サーバと交渉して、該サーバに対するリクエストの配備を所定基準を基に可能にし、該所定基準は、ストリーミング・オブジェクトの解像度、ストリーミング・オブジェクトの品質、クライアントとサーバの距離、及びストリーミング・オブジェクト受信時の最大遅延を含むグループから選択される基準を含む、前記(34)記載の方法。
(36)有限時間間隔で受信されたリクエストの数を監視し、所定特性を基に該リクエストをリクエスト・グループに統合するステップを含む、前記(34)記載の方法。
(37)統合のため、特定のリクエストを自主的にアップグレードまたはダウングレードするステップを含む、前記(36)記載の方法。
(38)前記ネットワークのサーバにおけるオブジェクト・リソースの量を動的に管理するステップを含み、該動的管理ステップは、
オブジェクト・リソースに対する需要を予測するステップと、
前記ネットワークの前記サーバの、オブジェクト・リソースを記憶しクライアントにオブジェクトをストリーミングする機能を含む容量を監視するステップと、
前記オブジェクト・リソースの前記予測需要が前記利用可能な容量を超えたときは前記オブジェクト・リソースのレプリカを作成し、前記ネットワーク内に位置するサーバに該オブジェクト・レプリカを一時的に配備するステップと、
前記オブジェクト・リソースの予測需要が減少したときは一時的に配備されているオブジェクト・レプリカを削除するステップと、
を含む、前記(30)記載の方法。
(39)前記予測ステップは、要求されたオブジェクト・リソースに対する需要の密度と量の特徴付けを含めて、異なるクライアントからのリクエストを統合して分析するステップを含む、前記(38)記載の方法。
(40)所定コスト基準に従ってオブジェクト・レプリカの配備を管理するステップを含む、前記(38)記載の方法。
(41)前記レプリカ作成ステップの前に、要求されたオブジェクトに対する予測需要を利用できる容量と比較する監査を開始するステップを含み、該監査は、該要求されたオブジェクトについて需要が容量を超えることを示す容量不足条件を予備判定する、前記(38)記載の方法。
(42)前記削除ステップの前に、要求されたオブジェクトに対する予測需要を利用できる容量と比較する監査を開始するステップを含み、該監査は、容量が需要を超えることを示す容量超過条件を予備判定する、前記(41)記載の方法。
(43)前記レプリカ作成ステップは、前記オブジェクトのレプリカを作成するソース・サーバと、該オブジェクト・レプリカを配備するターゲット・サーバとを見つけるステップを含む、前記(42)記載の方法。
(44)前記レプリカ作成ステップは、ソース・サーバとターゲット・サーバのレプリカ作成接続の提供と、前記オブジェクトのレプリカを作成するストリーミング・レートとを含むレプリカ作成オプションを交渉するステップを含む、前記(43)記載の方法。
(45)前記レプリカ作成ステップは、レプリカが作成された各オブジェクトに有効期限を割当てるステップを含み、前記方法は、オブジェクト・レプリカに関連付けられた期限が切れたとき該オブジェクト・レプリカを削除するステップを含む、前記(44)記載の方法。
(46)マルチメディア・オブジェクトを記憶し、該オブジェクトのストリーミングをクライアントに提供するサーバを有するインターネット環境にて、マルチメディア・オブジェクト・リソースをリアルタイムに管理する統合システムであって、
オブジェクト・リソースに対する需要を監視し、需要統計とデマンド・リクエスト位置までのサーバの地理上の近接性とを基に将来の需要を予測する手段と、前記インターネット環境でオブジェクト・リソースを記憶し該リソースをストリーミングするリソースを割当てるサーバ・デバイスの現在の意向を確認する手段と、
前記需要統計、前記現在の意向、及びデマンド・リクエスト位置までのサーバの前記地理上の近接性を基に前記インターネット環境のオブジェクト・リソースの容量を調整し、前記オブジェクト・リソースに関連付けられたオブジェクトのレプリカを作成し、該オブジェクト・レプリカを、予測された地理上のデマンド位置にあり利用できる容量を持つサーバ・デバイスに一時的に配備する手段を含む調整手段と、
クライアントから受信されたオブジェクト・リソースに対するリクエスト入力を配備し、受信されたリクエストに関係する配備照会を生成し、前記地理上の位置にあり前記要求されたオブジェクト・リソースを持つサーバ・デバイスに送る手段と、
を含む、システム。
(47)容量を調整する前記手段は、前記需要に関連付けられた特性を基にオブジェクト・レプリカの数と地理上の配備を評価する手段を含む、前記(46)記載の統合システム。
(48)受信されたリクエスト入力を配備する前記手段は、何らかのポリシに従って、意向及び容量のあるサーバにリクエストの受け入れを照会する手段を含む、前記(46)記載の統合システム。
(49)ネットワークに分散したサーバに記憶されるマルチメディア・オブジェクトに対する需要を管理する方法のステップを実行するため、機械で読み取ることができ、機械で実行可能な命令のプログラムを具体化したプログラム記憶装置であって、各サーバ・デバイスはマルチメディア・オブジェクトを記憶する容量と、要求されたマルチメディア・オブジェクトをクライアントに配信するストリーミング・リソースとを有し、該方法のステップは、
前記マルチメディア・オブジェクトに対するリクエストを独立したクライアントから受信し、要求された各リクエストに固有IDが関連付けられる、ステップと、
前記サーバに記憶された要求されたオブジェクトのIDに関連付けられたオブジェクト・レプリカを見つけるステップと、
前記オブジェクト・レプリカに対する前記リクエストに関連付けられた配備照会を考慮するサーバの意図を判定するステップと、
所定のポリシに従って、意図のあるサーバに対する前記オブジェクトの配備照会を生成し、配備照会を該意図のあるサーバに送るステップと、
を含む、装置。
(50)サーバの分散ネットワークでオブジェクト・リソースの量を動的に管理するシステムであって、各サーバに、該オブジェクト・リソースを記憶しクライアントにスケジューリングする容量があり、該システムは、
a)オブジェクト・リソースに対する需要を予測する手段と、
b)要求されたオブジェクト・リソースを記憶しストリーミングするため前記ネットワークの前記サーバの容量を監視する手段と、
c)前記オブジェクト・リソースに対する前記予測需要と前記利用できる容量をもとに前記オブジェクト・リソースの動的レプリカを生成し、需要が増加すると予想されるときは前記ネットワークのサーバにオブジェクト・レプリカを自動的且つ一時的に配備し、需要が減少すると予想されるときはレプリカを削除する、手段と、
を含む、システム。
(51)サーバの分散ネットワークでオブジェクト・リソースの量を動的に管理する方法であって、各サーバはオブジェクト・リソースを記憶し提供する容量を有し、該方法は、
a)オブジェクト・リソースに対する需要を予測するステップと、
b)前記ネットワークの前記サーバの、オブジェクト・リソースを記憶しオブジェクトをクライアントにストリーミングする機能を含む容量を監視するステップと、
c)前記オブジェクト・リソースに対する前記予測需要が前記利用できる容量を超えるときは前記オブジェクト・リソースのレプリカを作成し、該オブジェクト・レプリカを前記ネットワークにあるサーバに一時的に配備するステップと、
d)前記オブジェクト・リソースに対する予測需要が減少したときに一時的に配備されているオブジェクト・レプリカを削除するステップと、
を含む、方法。
(52)前記予測ステップは、要求されたオブジェクト・リソースについて、需要の密度と量の特徴付けを含めて、異なるクライアントからのリクエストを統合して分析するステップを含む、前記(51)記載の方法。
(53)所定コスト基準に従ってオブジェクト・レプリカの配備を管理するステップを含む、前記(51)記載の方法。
(54)前記レプリカ作成ステップc)の前に、要求されたオブジェクトに対する予測需要を利用できる容量と比較する監査を開始するステップを含み、該監査は、該要求されたオブジェクトについて需要が容量を上回ることを示す容量不足条件を予備判定する、前記(51)記載の方法。
(55)前記削除ステップd)の前に、要求されたオブジェクトに対する予測需要を利用できる容量と比較する監査を開始するステップを含み、該監査は、容量が需要を上回ることを示す容量超過条件を予備判定する、前記(54)記載の方法。
(56)前記レプリカ作成ステップc)は、レプリカを作成する前記オブジェクトを持つソース・サーバと、該オブジェクト・レプリカを配備するターゲット・サーバとを見つけるステップを含む、前記(55)記載の方法。
(57)前記レプリカ作成ステップc)は、ソース・サーバとターゲット・サーバのレプリカ作成接続の提供と、前記オブジェクトのレプリカを作成するストリーミング・レートとを含むレプリカ作成オプションを交渉するステップを含む、前記(56)記載の方法。
(58)前記レプリカ作成ステップc)は、レプリカが作成された各オブジェクトに有効期限を割当てるステップを含み、前記方法は、オブジェクト・レプリカに関連付けられた期限が切れたときに該オブジェクト・レプリカを削除するステップを含む、前記(56)記載の方法。
(59)前記オブジェクトに容量不足条件が存在するときは前記有効期限を延長するステップを含む、前記(58)記載の方法。
(60)前記レプリカ作成ステップc)は、交渉されたオプションに従って前記オブジェクト・レプリカを転送するステップを含む、前記(57)記載の方法。
(61)前記分散ネットワークの各オブジェクトのステータスを追跡するステップを含み、該ステータスは、要求されたオブジェクトを記憶するサーバの現在位置とIDとを含む、前記(51)記載の方法。
(62)前記監視ステップb)は、前記サーバが前記サーバへのオブジェクト・レプリカの動的配備を管理できるようにするため、前記サーバ、クライアント、及びコントローラ・デバイスの間でシグナリング・プロトコルを実装するステップを含む、前記(51)記載の方法。
(63)サーバの分散ネットワークにあるオブジェクト・リソースの量を動的に管理する方法のステップを実行するため、機械で読取ることができ、機械で実行可能な命令のプログラムを具体化したプログラム記憶装置であって、各サーバはオブジェクト・リソースを記憶する容量と、要求されたオブジェクトをクライアントに配信するストリーミング・リソースとを有し、該方法のステップは、
a)オブジェクト・リソースに対する需要を予測するステップと、
b)前記ネットワークの前記サーバの、オブジェクト・リソースを記憶し、オブジェクトをクライアントにストリーミングする機能を含めた容量を監視するステップと、
c)前記オブジェクト・リソースに対する前記予測需要が前記利用できる容量を超えるときは前記オブジェクト・リソースのレプリカを作成し、前記ネットワークにあるサーバに該オブジェクト・レプリカを一時的に配備するステップと、
d)前記オブジェクト・リソースに対する予測需要が減少したときは一時的に配備されているオブジェクト・レプリカを削除するステップと、
を含む、装置。
【図面の簡単な説明】
【図1】クライアント、サーバ、及びサーバに記憶され、クライアントに配信するため要求されることがあるオブジェクトを含む代表的な分散コンピュータ・システムの図である。
【図2】図1の代表的な分散コンピュータ・システムに見られるサーバ・デバイスの構成要素を詳しく示す図である。
【図3】分散集合内の任意のオブジェクトの検出と管理を可能にするオブジェクト・リクエスト・ブローカ・システムを含む代表的な分散コンピュータ・システムの図である。
【図4】本発明の好適実施例に従った、クライアントからのリクエストを処理する中間コントローラ・デバイスを含む分散コンピュータ・システム(100)の図である。
【図5】コントローラ・デバイスの主な構成要素を示すブロック図である。
【図6】スキーマとデータが関連付けられたレプリカ・ディレクトリの例(666)を示す図である。
【図7】スキーマとデータが関連付けられたサーバ・ディレクトリの例(656)を示す図である。
【図8】配備管理プロトコルのタイムラインの1例を示す図である。
【図9】グローバル・サーバへのレプリカの配備を動的に管理し、需要と地域の傾向により永続的レプリカと一時的レプリカの区別が促進される分散コンピュータ・システムの図である。
【図10】サーバがその使用状態を、全てのサーバでコントローラが使用できる正規化した意向インディケータに関連付けるため使用する3色ウォータマーク方式の図である。
【図11】別のサーバによる同じウォータマーク方式の応用を示す図である。
【図12】本発明に従ったサーバ・デバイスの変形例を詳しく示す図である。
【図13】需要統計を生成するためのコントローラから見たリクエストのストリームと有限時間間隔の使用を示す図である。
【図14】図13のリクエスト・ストリームについて地域密度インディケータを生成するため好適実施例に用いる方法の例を示す図である。
【図15】図13、図14に従ってコントローラにより記憶される需要統計の例を示す図である。
【図16】レプリカ管理プロセスとそのリクエスト管理システムとのトリガ・ベースの対話を示す図である。
【図17】容量調整機構(つまりレプリカ管理システム)をアクティブにするためリクエスト管理システムにより実装される予備供給過剰チェックのフローチャートである。
【図18】容量調整機構をアクティブにするためリクエスト管理システムにより実装される予備不足チェックのフローチャートである。
【図19】レプリカ作成プロセスのフローチャートである。
【図20】レプリカ配備プロセスのフローチャートである。
【図21】レプリカ削除プロセスのフローチャートである。
【図22】好適実施例の需要対供給チェックのフローチャートである。
【図23】レプリカ作成管理プロトコルのタイムラインを示す図である。
【符号の説明】
100 分散コンピュータ・システム
110、111、112 クライアント
130、131、132 オブジェクトの集合
140 クライアント・リクエスト
150 ストリーミング接続
160 コンピュータ環境
271、1031、1041、1051 シグナリング・インタフェース
281、285 オブジェクト・レプリカ
420、440 オブジェクトID
421、422 レプリカ
500 オブジェクト・リクエスト
501、601、602、603、604 リクエスト
520、720 中間コントローラ
600 リクエスト処理モジュール
610 配備モジュール
615 配備ポリシ
620 一時的配備照会
630 交渉モジュール
635 探索ポリシ
636 交渉ポリシ
640 ポリシ・バンク
650 リソース監視モジュール
655 サーバ・ディレクトリ・サービス
656 サーバ・ディレクトリ
660 レプリカ作成管理モジュール
665 レプリカ・ディレクトリ・サービス
666 レプリカ・ディレクトリ
670 管理シグナリング・モジュール
671 リソース管理プロトコル
672 レプリカ管理プロトコル
673 配備管理プロトコル
680 需要分析モジュール
681 オブジェクト
690 容量分析モジュール
696 データ構造
710 CID_REQUESTメッセージ
730、741 固有ID
731、742 パラメータ
739、740 CID_QUERYメッセージ
760、761 CQ_ACKメッセージ
770 フラグ
773 CID_QUERYメッセージ・パラメータ
790 CID_PLACEメッセージ
791 CP_ACKメッセージ
800 オブジェクトO2
810 オブジェクトO3
811、812 一時的レプリカ
820 オブジェクトO1
830 G1ローカル・サーバ
840、850、860 グローバル・サーバ
900 ウォータマーク方式
910 赤の条件
920 黄の条件
930 緑の条件
960、961 使用率/意向プロファイル
990 意向インディケータ
1010 ローカル部
1011、1021 集合
1020 グローバル部
1030 レプリカ作成管理プロセス
1040、1041 受け入れ管理機構
1150 リクエスト統計
1160 優勢地域インディケータ
1170 需要統計
1180 ホット・オブジェクト・ブール・フィールド
1190 タイムスタンプ
1200 レプリカ管理プロトコル
1201、1211、1221、1720、1730 サーバ
1300 レプリカ作成プロセス
1400 レプリカ配備プロセス
1405 予備不足チェック
1415 監査リクエスト
1440 所定基準
1460 レプリカ作成リクエスト
1500 レプリカ削除プロセス
1505 予備供給過剰チェック
1550 存続期限
1710 配備リクエスト
1720 ソース・サーバ
1730 ターゲット・サーバ
1745 コスト基準(配備ポリシ)
1765 レプリカ作成ポリシ
1800 レプリカ作成基準
1810 予測需要
1820 利用可能な容量
2020、2021 REP_QUERYメッセージ
2025、2026 RQ_ACKメッセージ
2040 REP_LISTENメッセージ
2045 RL_ACKメッセージ
2055 REP_PLACEメッセージ
2060 REP_TRANSFERメッセージ
2075 REP_ACKメッセージ
2085 REP_SETLIFEメッセージ
2090 REP_COMPLETEDメッセージ
2095 RS_ACKメッセージ

Claims (23)

  1. サーバの分散ネットワークでオブジェクト・リソースの量を動的に管理するシステムであって、各サーバはオブジェクト・リソースを記憶し提供する容量を有し、前記システムは、
    a)オブジェクト・リソースに対する需要を予測する手段と、
    b)前記ネットワークの前記サーバの、オブジェクト・リソースを記憶しオブジェクトをクライアントにストリーミングする機能を含む容量を監視する手段と、
    c)前記オブジェクト・リソースに対する前記予測需要が前記利用できる容量を超えるときは前記オブジェクト・リソースのレプリカを作成し、前記オブジェクト・レプリカを前記ネットワークにあるサーバに一時的に配備する手段と、
    d)前記オブジェクト・リソースに対する予測需要が減少したときに一時的に配備されているオブジェクト・レプリカを削除する手段と、
    e)前記オブジェクト・レプリカに関連付けられた期限が切れたときに、前記オブジェクトに容量不足条件が存在するときは前記有効期限を延長し、その他の場合は、前記オブジェクト・レプリカを削除する手段と
    を含む、システム。
  2. 前記予測手段は、要求されたオブジェクト・リソースについて、需要の密度と量の特徴付けを含めて、異なるクライアントからのリクエストを統合して分析する手段を含む、請求項1記載のシステム。
  3. 所定コスト基準に従ってオブジェクト・レプリカの配備を管理する手段を含む、請求項1記載のシステム。
  4. 前記レプリカ作成手段c)の前に、要求されたオブジェクトに対する予測需要を利用できる 容量と比較する監査を開始する手段を含み、前記監査は、前記要求されたオブジェクトについて需要が容量を上回ることを示す容量不足条件を予備判定する、請求項3記載のシステム。
  5. 前記削除手段d)の前に、要求されたオブジェクトに対する予測需要を利用できる容量と比較する監査を開始する手段を含み、前記監査は、容量が需要を上回ることを示す容量超過条件を予備判定する、請求項4記載のシステム。
  6. 前記レプリカ作成手段c)は、レプリカを作成する前記オブジェクトを持つソース・サーバと、前記オブジェクト・レプリカを配備するターゲット・サーバとを見つける手段を含む、請求項1記載のシステム。
  7. 前記レプリカ作成手段c)は、ソース・サーバとターゲット・サーバのレプリカ作成接続の提供と、前記オブジェクトのレプリカを作成するストリーミング・レートとを含むレプリカ作成オプションを交渉する手段を含む、請求項6記載のシステム。
  8. 前記レプリカ作成手段c)は、交渉されたオプションに従って前記オブジェクト・レプリカを転送する手段を含む、請求項5記載のシステム。
  9. 前記分散ネットワークの各オブジェクトのステータスを追跡する手段を含み、前記ステータスは、要求されたオブジェクトを記憶するサーバの現在位置とIDとを含む、請求項1記載のシステム。
  10. 前記レプリカ作成手段c)は、前記交渉の間に前記オブジェクト・レプリカを低い品質にダウングレードする手段をさらに含む請求項9記載のシステム。
  11. 前記オブジェクトが、マルチメディア・オブジェクトである請求項1記載のシステム。
  12. サーバの分散ネットワークでオブジェクト・リソースの量を動的に管理する方法であって、各サーバはオブジェクト・リソースを記憶し提供する容量を有し、前記方法は、
    a)オブジェクト・リソースに対する需要を予測するステップと、
    b)前記ネットワークの前記サーバの、オブジェクト・リソースを記憶しオブジェクトをクライアントにストリーミングする機能を含む容量を監視するステップと、
    c)前記オブジェクト・リソースに対する前記予測需要が前記利用できる容量を超えるときは前記オブジェクト・リソースのレプリカを作成し、前記オブジェクト・レプリカを前記ネットワークにあるサーバに一時的に配備するステップと、
    d)前記オブジェクト・リソースに対する予測需要が減少したときに一時的に配備されているオブジェクト・レプリカを削除するステップと、
    e)前記オブジェクト・レプリカに関連付けられた期限が切れたときに、前記オブジェクトに容量不足条件が存在するときは前記有効期限を延長し、その他の場合は、前記オブジェクト・レプリカを削除するステップと
    を含む、方法。
  13. 前記予測ステップは、要求されたオブジェクト・リソースについて、需要の密度と量の特徴付けを含めて、異なるクライアントからのリクエストを統合して分析するステップを含む、請求項12記載の方法。
  14. 所定コスト基準に従ってオブジェクト・レプリカの配備を管理するステップを含む、請
    求項12記載の方法。
  15. 前記レプリカ作成ステップc)の前に、要求されたオブジェクトに対する予測需要を利
    用できる 容量と比較する監査を開始するステップを含み、前記監査は、前記要求された
    オブジェクトについて需要が容量を上回ることを示す容量不足条件を予備判定する、請求
    項14記載の方法。
  16. 前記削除ステップd)の前に、要求されたオブジェクトに対する予測需要を利用できる
    容量と比較する監査を開始するステップを含み、前記監査は、容量が需要を上回ることを
    示す容量超過条件を予備判定する、請求項15記載の方法。
  17. 前記レプリカ作成ステップc)は、レプリカを作成する前記オブジェクトを持つソース
    ・サーバと、前記オブジェクト・レプリカを配備するターゲット・サーバとを見つけるス
    テップを含む、請求項12記載の方法。
  18. 前記レプリカ作成ステップc)は、ソース・サーバとターゲット・サーバのレプリカ作
    成接続の提供と、前記オブジェクトのレプリカを作成するストリーミング・レートとを含
    むレプリカ作成オプションを交渉するステップを含む、請求項17記載の方法。
  19. 前記レプリカ作成ステップc)は、交渉されたオプションに従って前記オブジェクト・
    レプリカを転送するステップを含む、請求項16記載の方法。
  20. 前記分散ネットワークの各オブジェクトのステータスを追跡するステップを含み、前記
    ステータスは、要求されたオブジェクトを記憶するサーバの現在位置とIDとを含む、請
    求項12記載の方法。
  21. 前記レプリカ作成ステップc)は、前記交渉の間に前記オブジェクト・レプリカを低い
    品質にダウングレードするステップをさらに含む請求項20記載の方法。
  22. 前記オブジェクトが、マルチメディア・オブジェクトである請求項12記載の方法。
  23. 請求項12から22に記載の方法をコンピュータに実行させるためのプログラムを記録
    した記録媒体。
JP2000180514A 1999-06-17 2000-06-15 インターネット環境での負荷の分散とリソース管理を統合したシステム及び方法 Expired - Fee Related JP3627005B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/335273 1999-06-17
US09/335,273 US6466980B1 (en) 1999-06-17 1999-06-17 System and method for capacity shaping in an internet environment

Publications (2)

Publication Number Publication Date
JP2001067377A JP2001067377A (ja) 2001-03-16
JP3627005B2 true JP3627005B2 (ja) 2005-03-09

Family

ID=23311045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000180514A Expired - Fee Related JP3627005B2 (ja) 1999-06-17 2000-06-15 インターネット環境での負荷の分散とリソース管理を統合したシステム及び方法

Country Status (4)

Country Link
US (1) US6466980B1 (ja)
JP (1) JP3627005B2 (ja)
KR (1) KR100350197B1 (ja)
CA (1) CA2308280C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11243865B2 (en) 2016-06-13 2022-02-08 Nec Corporation Information processing system, method, and storage medium

Families Citing this family (248)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU5915698A (en) * 1997-01-13 1998-08-03 John Overton Automated system for image archiving
US7233978B2 (en) * 1998-07-08 2007-06-19 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
US7103640B1 (en) 1999-09-14 2006-09-05 Econnectix, Llc Network distributed tracking wire transfer protocol
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US20010044850A1 (en) 1998-07-22 2001-11-22 Uri Raz Method and apparatus for determining the order of streaming modules
US7197570B2 (en) * 1998-07-22 2007-03-27 Appstream Inc. System and method to send predicted application streamlets to a client device
US6618820B1 (en) 2000-01-10 2003-09-09 Imagex.Com, Inc. Method for configuring an application server system
US6618742B1 (en) 2000-01-10 2003-09-09 Imagex.Com, Inc. Method for job impact learning
US6430576B1 (en) 1999-05-10 2002-08-06 Patrick Gates Distributing and synchronizing objects
US6754664B1 (en) * 1999-07-02 2004-06-22 Microsoft Corporation Schema-based computer system health monitoring
US7359915B1 (en) * 1999-07-02 2008-04-15 Microsoft Corporation Dynamic multi-object collection and comparison and action
US6779016B1 (en) 1999-08-23 2004-08-17 Terraspring, Inc. Extensible computing system
US6414036B1 (en) * 1999-09-01 2002-07-02 Van Beek Global/Ninkov Llc Composition for treatment of infections of humans and animals
US6970932B1 (en) 1999-12-14 2005-11-29 Microsoft Corporation Non-delegable client requests to servers storing local information only
US7146233B2 (en) * 2000-02-11 2006-12-05 Sun Microsystems, Inc. Request queue management
US6671724B1 (en) * 2000-03-21 2003-12-30 Centrisoft Corporation Software, systems and methods for managing a distributed network
US7260635B2 (en) * 2000-03-21 2007-08-21 Centrisoft Corporation Software, systems and methods for managing a distributed network
JP2001283015A (ja) * 2000-03-29 2001-10-12 Nippon Columbia Co Ltd コンテンツデータ配信システムおよび方法
US20080005275A1 (en) * 2000-06-02 2008-01-03 Econnectix, Llc Method and apparatus for managing location information in a network separate from the data to which the location information pertains
US6868539B1 (en) * 2000-06-28 2005-03-15 Microsoft Corp. System and method providing single application image
US7278103B1 (en) * 2000-06-28 2007-10-02 Microsoft Corporation User interface to display and manage an entity and associated resources
US6961681B1 (en) * 2000-09-12 2005-11-01 Microsoft Corporation System and method providing virtual applications architecture
US7318107B1 (en) 2000-06-30 2008-01-08 Intel Corporation System and method for automatic stream fail-over
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US8027892B2 (en) 2001-03-28 2011-09-27 International Business Machines Corporation System and method for automating invoice processing with positive confirmation
US7386495B2 (en) 2001-03-23 2008-06-10 International Business Machines Corporation System and method for processing tax codes by company group
US6965938B1 (en) * 2000-09-07 2005-11-15 International Business Machines Corporation System and method for clustering servers for performance and load balancing
US7155403B2 (en) 2001-03-22 2006-12-26 International Business Machines Corporation System and method for leveraging procurement across companies and company groups
US7200869B1 (en) * 2000-09-15 2007-04-03 Microsoft Corporation System and method for protecting domain data against unauthorized modification
US7051315B2 (en) 2000-09-26 2006-05-23 Appstream, Inc. Network streaming of multi-application program code
US6820123B1 (en) * 2000-09-28 2004-11-16 Cisco Technology, Inc. Method and apparatus for assigning hot objects to server load balancer
EP1197858B1 (en) * 2000-10-10 2008-02-06 Hewlett-Packard Company, A Delaware Corporation Method and device for offering resources in an internet appliance
US7249179B1 (en) * 2000-11-09 2007-07-24 Hewlett-Packard Development Company, L.P. System for automatically activating reserve hardware component based on hierarchical resource deployment scheme or rate of resource consumption
US7606909B1 (en) * 2001-02-20 2009-10-20 Michael Ely Method and apparatus for a business contact center
US7243077B2 (en) 2001-03-02 2007-07-10 International Business Machines Corporation Method and computer program product for managing an internet trading network
KR100439732B1 (ko) * 2001-04-13 2004-07-12 주식회사 이콜플러스 정보통신망에서 서비스품질 측정시스템을 이용한 공정성 보장장치 및 방법
US6832248B1 (en) * 2001-05-10 2004-12-14 Agami Systems, Inc. System and method for managing usage quotas
US8392586B2 (en) * 2001-05-15 2013-03-05 Hewlett-Packard Development Company, L.P. Method and apparatus to manage transactions at a network storage device
KR100438286B1 (ko) * 2001-06-14 2004-07-02 엘지전자 주식회사 주문형 비디오 시스템에서 멀티미디어 데이터를 등록 및 제공하는 방법
US7647418B2 (en) * 2001-06-19 2010-01-12 Savvis Communications Corporation Real-time streaming media measurement system and method
US8234156B2 (en) 2001-06-28 2012-07-31 Jpmorgan Chase Bank, N.A. System and method for characterizing and selecting technology transition options
KR20030010409A (ko) * 2001-07-27 2003-02-05 주식회사 트리플다이스 멀티 플레이어 온라인 게임시스템
US20030043191A1 (en) * 2001-08-17 2003-03-06 David Tinsley Systems and methods for displaying a graphical user interface
US20040205648A1 (en) * 2001-08-17 2004-10-14 David Tinsley Systems and methods for authoring content
US6744729B2 (en) * 2001-08-17 2004-06-01 Interactive Sapience Corp. Intelligent fabric
WO2003017122A1 (en) * 2001-08-17 2003-02-27 Interactive Sapience Corp. Systems and method for presenting customizable multimedia
US20030041159A1 (en) * 2001-08-17 2003-02-27 David Tinsley Systems and method for presenting customizable multimedia presentations
KR20030021114A (ko) * 2001-09-05 2003-03-12 주식회사 미리텍 부하분산기
US7421509B2 (en) * 2001-09-28 2008-09-02 Emc Corporation Enforcing quality of service in a storage network
US7475127B2 (en) * 2001-11-30 2009-01-06 Oracle International Corporation Real composite objects for providing high availability of resources on networked systems
US20030167295A1 (en) * 2002-03-01 2003-09-04 Verity, Inc. Automatic network load balancing using self-replicating resources
US20030188155A1 (en) * 2002-03-27 2003-10-02 Patrick Petit System and method of determining the number of central processing units for sizing a portal server
US20030187989A1 (en) * 2002-03-27 2003-10-02 Patrick Petit System and method for determining memory usage in sizing a portal server
US20030187982A1 (en) * 2002-03-27 2003-10-02 Patrick Petit System and method for resource load balancing in a portal server
US20030187998A1 (en) * 2002-03-27 2003-10-02 Patrick Petit System and method for detecting resource usage overloads in a portal server
US20030208614A1 (en) * 2002-05-01 2003-11-06 John Wilkes System and method for enforcing system performance guarantees
US7363375B2 (en) * 2002-05-13 2008-04-22 Microsoft Corporation Adaptive allocation of last-hop bandwidth based on monitoring of end-to-end throughput
US8103748B2 (en) * 2002-05-20 2012-01-24 International Business Machines Corporation Rule-based method and system for managing heterogenous computer clusters
US20040083116A1 (en) * 2002-10-25 2004-04-29 Joyce Derek J. Methods for identifying or predicting capacity problems
US7353538B2 (en) 2002-11-08 2008-04-01 Federal Network Systems Llc Server resource management, analysis, and intrusion negation
US7376732B2 (en) * 2002-11-08 2008-05-20 Federal Network Systems, Llc Systems and methods for preventing intrusion at a web host
US7424528B2 (en) * 2002-11-27 2008-09-09 Hewlett-Packard Development Company, L.P. System and method for measuring the capacity of a streaming media server
US8499086B2 (en) 2003-01-21 2013-07-30 Dell Products L.P. Client load distribution
JP2006525693A (ja) * 2003-02-13 2006-11-09 ノキア コーポレイション マルチメディア・ストリーミングにおけるクライアント速度機能のシグナリング方法
US7865536B1 (en) * 2003-02-14 2011-01-04 Google Inc. Garbage collecting systems and methods
US7484087B2 (en) * 2003-02-24 2009-01-27 Jp Morgan Chase Bank Systems, methods, and software for preventing redundant processing of transmissions sent to a remote host computer
JP3964909B2 (ja) * 2003-04-14 2007-08-22 富士通株式会社 サーバ割当制御方法
US20050193113A1 (en) * 2003-04-14 2005-09-01 Fujitsu Limited Server allocation control method
GB0312171D0 (en) * 2003-05-28 2003-07-02 Ibm Workload balancing
AU2004247251B2 (en) * 2003-06-12 2009-01-22 Camiant, Inc. PCMM application manager
WO2004112302A2 (en) * 2003-06-12 2004-12-23 Camiant, Inc. Dynamic service delivery with topology discovery for communication networks
US7613818B2 (en) * 2003-06-23 2009-11-03 Hewlett-Packard Development Company, L.P. Segment-based model of file accesses for streaming files
US7797439B2 (en) * 2003-06-23 2010-09-14 Hewlett-Packard Development Company, L.P. Cost-aware admission control for streaming media server
US7310681B2 (en) * 2003-06-23 2007-12-18 Hewlett-Packard Development Company, L.P. System and method for modeling the memory state of a streaming media server
US7779096B2 (en) 2003-06-23 2010-08-17 Hewlett-Packard Development Company, L.P. System and method for managing a shared streaming media service
US7543061B2 (en) 2003-06-26 2009-06-02 Microsoft Corporation Method and system for distributing load by redirecting traffic
US20050010529A1 (en) * 2003-07-08 2005-01-13 Zalewski Stephen H. Method and apparatus for building a complete data protection scheme
US7631069B2 (en) * 2003-07-28 2009-12-08 Sap Ag Maintainable grid managers
US7546553B2 (en) * 2003-07-28 2009-06-09 Sap Ag Grid landscape component
US7594015B2 (en) 2003-07-28 2009-09-22 Sap Ag Grid organization
US7673054B2 (en) 2003-07-28 2010-03-02 Sap Ag. Grid manageable application process management scheme
US7568199B2 (en) * 2003-07-28 2009-07-28 Sap Ag. System for matching resource request that freeing the reserved first resource and forwarding the request to second resource if predetermined time period expired
US7574707B2 (en) * 2003-07-28 2009-08-11 Sap Ag Install-run-remove mechanism
US7703029B2 (en) 2003-07-28 2010-04-20 Sap Ag Grid browser component
US7516238B2 (en) * 2003-09-30 2009-04-07 Microsoft Corporation Background transport service
US20050097285A1 (en) * 2003-10-30 2005-05-05 Christos Karamanolis Method of determining data placement for distributed storage system
US20050097286A1 (en) * 2003-10-30 2005-05-05 Magnus Karlsson Method of instantiating data placement heuristic
US8015289B2 (en) * 2003-12-11 2011-09-06 Ziti Technologies Limited Liability Company System and method predicting and managing network capacity requirements
US7810090B2 (en) * 2003-12-17 2010-10-05 Sap Ag Grid compute node software application deployment
US7702767B2 (en) 2004-03-09 2010-04-20 Jp Morgan Chase Bank User connectivity process management system
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US7490325B2 (en) 2004-03-13 2009-02-10 Cluster Resources, Inc. System and method for providing intelligent pre-staging of data in a compute environment
US7958252B2 (en) * 2004-05-04 2011-06-07 Qualcomm Incorporated System for scalable transmission of content in a data network
US20050278760A1 (en) * 2004-06-01 2005-12-15 Don Dewar Method and system for controlling streaming in an on-demand server
US20060010236A1 (en) * 2004-06-10 2006-01-12 International Business Machines Corporation Usage-based methodology for providing web services
US20050278439A1 (en) * 2004-06-14 2005-12-15 Ludmila Cherkasova System and method for evaluating capacity of a heterogeneous media server configuration for supporting an expected workload
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US20050283487A1 (en) * 2004-06-21 2005-12-22 Magnus Karlsson Method of determining lower bound for replication cost
US7665127B1 (en) 2004-06-30 2010-02-16 Jp Morgan Chase Bank System and method for providing access to protected services
JP4756675B2 (ja) * 2004-07-08 2011-08-24 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ資源のキャパシティを予測するためのシステム、方法およびプログラム
US7379947B2 (en) 2004-07-30 2008-05-27 Microsoft Corporation Efficiently ranking web pages via matrix index manipulation and improved caching
US8521687B2 (en) * 2004-08-03 2013-08-27 International Business Machines Corporation Apparatus, system, and method for selecting optimal replica sources in a grid computing environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US20060070060A1 (en) 2004-09-28 2006-03-30 International Business Machines Corporation Coordinating service performance and application placement management
US8161038B2 (en) * 2004-10-29 2012-04-17 International Business Machines Corporation Maintain optimal query performance by presenting differences between access plans
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US7778984B2 (en) * 2004-11-19 2010-08-17 Microsoft Corporation System and method for a distributed object store
US7793290B2 (en) 2004-12-20 2010-09-07 Sap Ag Grip application acceleration by executing grid application based on application usage history prior to user request for application execution
US7565383B2 (en) * 2004-12-20 2009-07-21 Sap Ag. Application recovery
US7191215B2 (en) * 2005-03-09 2007-03-13 Marquee, Inc. Method and system for providing instantaneous media-on-demand services by transmitting contents in pieces from client machines
US8930536B2 (en) * 2005-03-16 2015-01-06 Adaptive Computing Enterprises, Inc. Virtual private cluster
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9075657B2 (en) 2005-04-07 2015-07-07 Adaptive Computing Enterprises, Inc. On-demand access to compute resources
US8504548B2 (en) * 2008-10-03 2013-08-06 Adaptive Computing Enterprises, Inc. System and method for dynamically managing data centric searches
US9015324B2 (en) 2005-03-16 2015-04-21 Adaptive Computing Enterprises, Inc. System and method of brokering cloud computing resources
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
JP4705390B2 (ja) * 2005-03-25 2011-06-22 富士通株式会社 需要予測装置
US20110258320A1 (en) * 2005-04-07 2011-10-20 Adaptive Computing Enterprises, Inc. Elastic management of compute resources between a web server and an on-demand compute environment
US8782120B2 (en) 2005-04-07 2014-07-15 Adaptive Computing Enterprises, Inc. Elastic management of compute resources between a web server and an on-demand compute environment
US7881198B2 (en) * 2005-04-25 2011-02-01 Telefonaktiebolaget L M Ericsson (Publ) Method for managing service bindings over an access domain and nodes therefor
JP4101251B2 (ja) * 2005-05-24 2008-06-18 富士通株式会社 負荷分散プログラム、負荷分散方法、及び負荷分散装置
US7693983B1 (en) * 2005-05-27 2010-04-06 Symantec Operating Corporation System and method providing application redeployment mappings using filtered resource usage data
US8572516B1 (en) 2005-08-24 2013-10-29 Jpmorgan Chase Bank, N.A. System and method for controlling a screen saver
US8181016B1 (en) 2005-12-01 2012-05-15 Jpmorgan Chase Bank, N.A. Applications access re-certification system
US20070143153A1 (en) * 2005-12-20 2007-06-21 Unisys Corporation Demand tracking system and method for a transportation carrier
US7913249B1 (en) 2006-03-07 2011-03-22 Jpmorgan Chase Bank, N.A. Software installation checker
US7895565B1 (en) 2006-03-15 2011-02-22 Jp Morgan Chase Bank, N.A. Integrated system and method for validating the functionality and performance of software applications
US20070233866A1 (en) * 2006-03-28 2007-10-04 Karen Appleby Method and system for dynamically allocating servers to compute-resources using capacity thresholds
US8028069B2 (en) * 2006-05-08 2011-09-27 International Business Machines Corporation Structure for securing leased resources on a computer
US7707290B2 (en) 2006-05-08 2010-04-27 International Business Machines Corporation Securing leased resources on a computer
US20070282983A1 (en) * 2006-06-05 2007-12-06 Manoj Gujarathi System and Method for Information Handling System Management With a Directory Service Tool Box
US8806045B2 (en) * 2006-09-01 2014-08-12 Microsoft Corporation Predictive popular content replication
US8244866B2 (en) 2006-09-27 2012-08-14 International Business Machines Corporation Matching an autonomic manager with a manageable resource
US8763062B2 (en) * 2006-10-30 2014-06-24 Alcatel Lucent Method and apparatus for controlling information available from content distribution points
WO2009032712A2 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for moving requested files from one storage location to another
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8169916B1 (en) * 2007-11-23 2012-05-01 Media Melon, Inc. Multi-platform video delivery configuration
US9473743B2 (en) 2007-12-11 2016-10-18 Thomson Licensing Device and method for optimizing access to contents by users
US9113334B2 (en) * 2008-02-01 2015-08-18 Tekelec, Inc. Methods, systems, and computer readable media for controlling access to voice resources in mobile networks using mobility management signaling messages
US8484311B2 (en) * 2008-04-17 2013-07-09 Eloy Technology, Llc Pruning an aggregate media collection
US8224899B2 (en) 2008-04-17 2012-07-17 Eloy Technology, Llc Method and system for aggregating media collections between participants of a sharing network
US8285810B2 (en) * 2008-04-17 2012-10-09 Eloy Technology, Llc Aggregating media collections between participants of a sharing network utilizing bridging
US8285811B2 (en) * 2008-04-17 2012-10-09 Eloy Technology, Llc Aggregating media collections to provide a primary list and sorted sub-lists
US20090327465A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Distributed Configuration Orchestration for Network Client Management
US8055739B2 (en) * 2008-09-09 2011-11-08 International Business Machines Corporation Sharing performance data between different information technology product/ solution deployments
US20100070490A1 (en) * 2008-09-17 2010-03-18 Eloy Technology, Llc System and method for enhanced smart playlists with aggregated media collections
US8484227B2 (en) * 2008-10-15 2013-07-09 Eloy Technology, Llc Caching and synching process for a media sharing system
US8880599B2 (en) 2008-10-15 2014-11-04 Eloy Technology, Llc Collection digest for a media sharing system
US20100114979A1 (en) * 2008-10-28 2010-05-06 Concert Technology Corporation System and method for correlating similar playlists in a media sharing network
US8918761B1 (en) 2008-12-05 2014-12-23 Amazon Technologies, Inc. Elastic application framework for deploying software
JP5396848B2 (ja) * 2008-12-16 2014-01-22 富士通株式会社 データ処理プログラム、サーバ装置およびデータ処理方法
US9014832B2 (en) 2009-02-02 2015-04-21 Eloy Technology, Llc Augmenting media content in a media sharing group
US8131843B2 (en) * 2009-03-31 2012-03-06 International Business Machines Corporation Adaptive computing using probabilistic measurements
US8769055B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Distributed backup and versioning
US8560639B2 (en) * 2009-04-24 2013-10-15 Microsoft Corporation Dynamic placement of replica data
US8935366B2 (en) * 2009-04-24 2015-01-13 Microsoft Corporation Hybrid distributed and cloud backup architecture
US8769049B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
AU2010250118A1 (en) * 2009-05-20 2011-12-15 Creative Ad Technology Proprietary Limited Methods and systems for delivering media to client device
US8886586B2 (en) * 2009-05-24 2014-11-11 Pi-Coral, Inc. Method for making optimal selections based on multiple objective and subjective criteria
US8886804B2 (en) * 2009-05-26 2014-11-11 Pi-Coral, Inc. Method for making intelligent data placement decisions in a computer network
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9842006B2 (en) * 2009-12-01 2017-12-12 International Business Machines Corporation Application processing allocation in a computing system
US8605132B1 (en) * 2010-03-26 2013-12-10 Insors Integrated Communications Methods, systems and program products for managing resource distribution among a plurality of server applications
US9208239B2 (en) 2010-09-29 2015-12-08 Eloy Technology, Llc Method and system for aggregating music in the cloud
US9910904B2 (en) * 2011-08-30 2018-03-06 International Business Machines Corporation Replication of data objects from a source server to a target server
US9274898B2 (en) * 2011-09-09 2016-03-01 Nokia Technologies Oy Method and apparatus for providing criticality based data backup
US8966643B2 (en) 2011-10-08 2015-02-24 Broadcom Corporation Content security in a social network
US20130091207A1 (en) * 2011-10-08 2013-04-11 Broadcom Corporation Advanced content hosting
US8811177B1 (en) 2011-11-03 2014-08-19 Jpmorgan Chase Bank, N.A. Method and system for implementing a network analysis tool for endpoints deployments
US8935203B1 (en) * 2012-03-29 2015-01-13 Amazon Technologies, Inc. Environment-sensitive distributed data management
US9438883B2 (en) * 2012-04-09 2016-09-06 Intel Corporation Quality of experience reporting for combined unicast-multicast/broadcast streaming of media content
CN103516763B (zh) * 2012-06-30 2016-09-28 华为技术有限公司 资源处理方法和系统以及装置
US9971787B2 (en) 2012-07-23 2018-05-15 Red Hat, Inc. Unified file and object data storage
US20140201177A1 (en) * 2013-01-11 2014-07-17 Red Hat, Inc. Accessing a file system using a hard link mapped to a file handle
US10002041B1 (en) 2013-02-01 2018-06-19 Jpmorgan Chase Bank, N.A. System and method for maintaining the health of a machine
US9720655B1 (en) 2013-02-01 2017-08-01 Jpmorgan Chase Bank, N.A. User interface event orchestration
US9088459B1 (en) 2013-02-22 2015-07-21 Jpmorgan Chase Bank, N.A. Breadth-first resource allocation system and methods
JP6570999B2 (ja) * 2013-07-02 2019-09-04 サターン ライセンシング エルエルシーSaturn Licensing LLC コンテンツ供給装置、コンテンツ供給方法、プログラム、端末装置、およびコンテンツ供給システム
US9996547B2 (en) 2013-07-25 2018-06-12 Dropbox, Inc. Prioritizing content item synchronization based on sharing
US9619410B1 (en) 2013-10-03 2017-04-11 Jpmorgan Chase Bank, N.A. Systems and methods for packet switching
US10412007B1 (en) 2013-12-13 2019-09-10 Jpmorgan Chase Bank, N.A. Method and system for determining balanced traffic flows for network capacity planning
US9542259B1 (en) 2013-12-23 2017-01-10 Jpmorgan Chase Bank, N.A. Automated incident resolution system and method
US9868054B1 (en) 2014-02-10 2018-01-16 Jpmorgan Chase Bank, N.A. Dynamic game deployment
US11016941B2 (en) 2014-02-28 2021-05-25 Red Hat, Inc. Delayed asynchronous file replication in a distributed file system
US9986029B2 (en) 2014-03-19 2018-05-29 Red Hat, Inc. File replication using file content location identifiers
US10025808B2 (en) 2014-03-19 2018-07-17 Red Hat, Inc. Compacting change logs using file content location identifiers
US9965505B2 (en) 2014-03-19 2018-05-08 Red Hat, Inc. Identifying files in change logs using file content location identifiers
WO2015145834A1 (ja) 2014-03-24 2015-10-01 株式会社スクウェア・エニックス インタラクティブシステム、端末装置、サーバ装置、制御方法、プログラム、及び記録媒体
US9832138B1 (en) * 2014-04-16 2017-11-28 Google Llc Method for automatic management capacity and placement for global services
US9836476B2 (en) * 2014-09-25 2017-12-05 Netapp, Inc. Synchronizing configuration of partner objects across distributed storage systems using transformations
US9612925B1 (en) 2014-12-12 2017-04-04 Jpmorgan Chase Bank, N.A. Method and system for implementing a distributed digital application architecture
US20180167457A1 (en) * 2015-06-19 2018-06-14 Nokia Solutions And Networks Oy Optimizing traffic
JP6627323B2 (ja) * 2015-08-18 2020-01-08 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
US10067785B1 (en) * 2016-06-29 2018-09-04 Amazon Technologies, Inc. Event driven virtual machine instance pool balancing
US10776355B1 (en) 2016-09-26 2020-09-15 Splunk Inc. Managing, storing, and caching query results and partial query results for combination with additional query results
US10984044B1 (en) 2016-09-26 2021-04-20 Splunk Inc. Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system
US11321321B2 (en) 2016-09-26 2022-05-03 Splunk Inc. Record expansion and reduction based on a processing task in a data intake and query system
US11003714B1 (en) 2016-09-26 2021-05-11 Splunk Inc. Search node and bucket identification using a search node catalog and a data store catalog
US11314753B2 (en) 2016-09-26 2022-04-26 Splunk Inc. Execution of a query received from a data intake and query system
US11599541B2 (en) 2016-09-26 2023-03-07 Splunk Inc. Determining records generated by a processing task of a query
US11294941B1 (en) 2016-09-26 2022-04-05 Splunk Inc. Message-based data ingestion to a data intake and query system
US10353965B2 (en) 2016-09-26 2019-07-16 Splunk Inc. Data fabric service system architecture
US11269939B1 (en) 2016-09-26 2022-03-08 Splunk Inc. Iterative message-based data processing including streaming analytics
US11593377B2 (en) 2016-09-26 2023-02-28 Splunk Inc. Assigning processing tasks in a data intake and query system
US11250056B1 (en) 2016-09-26 2022-02-15 Splunk Inc. Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system
US11222066B1 (en) 2016-09-26 2022-01-11 Splunk Inc. Processing data using containerized state-free indexing nodes in a containerized scalable environment
US11416528B2 (en) 2016-09-26 2022-08-16 Splunk Inc. Query acceleration data store
US11562023B1 (en) 2016-09-26 2023-01-24 Splunk Inc. Merging buckets in a data intake and query system
US11442935B2 (en) 2016-09-26 2022-09-13 Splunk Inc. Determining a record generation estimate of a processing task
US11604795B2 (en) 2016-09-26 2023-03-14 Splunk Inc. Distributing partial results from an external data system between worker nodes
US11126632B2 (en) 2016-09-26 2021-09-21 Splunk Inc. Subquery generation based on search configuration data from an external data system
US20180089324A1 (en) 2016-09-26 2018-03-29 Splunk Inc. Dynamic resource allocation for real-time search
US11281706B2 (en) 2016-09-26 2022-03-22 Splunk Inc. Multi-layer partition allocation for query execution
US11232100B2 (en) 2016-09-26 2022-01-25 Splunk Inc. Resource allocation for multiple datasets
US11580107B2 (en) 2016-09-26 2023-02-14 Splunk Inc. Bucket data distribution for exporting data to worker nodes
US10977260B2 (en) 2016-09-26 2021-04-13 Splunk Inc. Task distribution in an execution node of a distributed execution environment
US11243963B2 (en) 2016-09-26 2022-02-08 Splunk Inc. Distributing partial results to worker nodes from an external data system
US11023463B2 (en) 2016-09-26 2021-06-01 Splunk Inc. Converting and modifying a subquery for an external data system
US11461334B2 (en) 2016-09-26 2022-10-04 Splunk Inc. Data conditioning for dataset destination
US11550847B1 (en) 2016-09-26 2023-01-10 Splunk Inc. Hashing bucket identifiers to identify search nodes for efficient query execution
US11860940B1 (en) 2016-09-26 2024-01-02 Splunk Inc. Identifying buckets for query execution using a catalog of buckets
US11620336B1 (en) 2016-09-26 2023-04-04 Splunk Inc. Managing and storing buckets to a remote shared storage system based on a collective bucket size
US11586627B2 (en) 2016-09-26 2023-02-21 Splunk Inc. Partitioning and reducing records at ingest of a worker node
US11874691B1 (en) 2016-09-26 2024-01-16 Splunk Inc. Managing efficient query execution including mapping of buckets to search nodes
US10726009B2 (en) * 2016-09-26 2020-07-28 Splunk Inc. Query processing using query-resource usage and node utilization data
US11663227B2 (en) 2016-09-26 2023-05-30 Splunk Inc. Generating a subquery for a distinct data intake and query system
US10956415B2 (en) 2016-09-26 2021-03-23 Splunk Inc. Generating a subquery for an external data system using a configuration file
US11567993B1 (en) 2016-09-26 2023-01-31 Splunk Inc. Copying buckets from a remote shared storage system to memory associated with a search node for query execution
US11106734B1 (en) 2016-09-26 2021-08-31 Splunk Inc. Query execution using containerized state-free search nodes in a containerized scalable environment
US11615104B2 (en) 2016-09-26 2023-03-28 Splunk Inc. Subquery generation based on a data ingest estimate of an external data system
US11163758B2 (en) 2016-09-26 2021-11-02 Splunk Inc. External dataset capability compensation
US10582002B2 (en) * 2016-12-09 2020-03-03 Arris Enterprises Llc Cache proxy for a network management information base
US11921672B2 (en) 2017-07-31 2024-03-05 Splunk Inc. Query execution at a remote heterogeneous data store of a data fabric service
US10970303B1 (en) 2017-08-03 2021-04-06 Amazon Technologies, Inc. Selecting resources hosted in different networks to perform queries according to available capacity
JP6904169B2 (ja) 2017-08-30 2021-07-14 富士通株式会社 タスク配備プログラム、タスク配備方法、およびタスク配備装置
US11151137B2 (en) 2017-09-25 2021-10-19 Splunk Inc. Multi-partition operation in combination operations
US10896182B2 (en) 2017-09-25 2021-01-19 Splunk Inc. Multi-partitioning determination for combination operations
US10558533B2 (en) * 2017-12-07 2020-02-11 Red Hat, Inc. Reducing service disruptions in a micro-service environment
US11334543B1 (en) 2018-04-30 2022-05-17 Splunk Inc. Scalable bucket merging for a data intake and query system
US11403327B2 (en) * 2019-02-20 2022-08-02 International Business Machines Corporation Mixed initiative feature engineering
WO2020220216A1 (en) 2019-04-29 2020-11-05 Splunk Inc. Search time estimate in data intake and query system
US11715051B1 (en) 2019-04-30 2023-08-01 Splunk Inc. Service provider instance recommendations using machine-learned classifications and reconciliation
US11704617B2 (en) * 2019-06-20 2023-07-18 Stripe, Inc. Systems and methods for modeling and analysis of infrastructure services provided by cloud services provider systems
US11494380B2 (en) 2019-10-18 2022-11-08 Splunk Inc. Management of distributed computing framework components in a data fabric service system
US11922222B1 (en) 2020-01-30 2024-03-05 Splunk Inc. Generating a modified component for a data intake and query system using an isolated execution environment image
US11704313B1 (en) 2020-10-19 2023-07-18 Splunk Inc. Parallel branch operation using intermediary nodes
JP2023000232A (ja) * 2021-06-17 2023-01-04 富士通株式会社 データ処理プログラム、データ処理方法およびデータ処理システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5802301A (en) * 1994-05-11 1998-09-01 International Business Machines Corporation System for load balancing by replicating portion of file while being read by first stream onto second device and reading portion with stream capable of accessing
US6256675B1 (en) * 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
JPH1141587A (ja) * 1997-07-22 1999-02-12 Hitachi Ltd 映像配送装置
US6167427A (en) * 1997-11-28 2000-12-26 Lucent Technologies Inc. Replication service system and method for directing the replication of information servers based on selected plurality of servers load
US6317786B1 (en) * 1998-05-29 2001-11-13 Webspective Software, Inc. Web service

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11243865B2 (en) 2016-06-13 2022-02-08 Nec Corporation Information processing system, method, and storage medium

Also Published As

Publication number Publication date
JP2001067377A (ja) 2001-03-16
US6466980B1 (en) 2002-10-15
CA2308280A1 (en) 2000-12-17
KR100350197B1 (ko) 2002-08-28
KR20010015001A (ko) 2001-02-26
CA2308280C (en) 2007-04-03

Similar Documents

Publication Publication Date Title
JP3627005B2 (ja) インターネット環境での負荷の分散とリソース管理を統合したシステム及び方法
US6463454B1 (en) System and method for integrated load distribution and resource management on internet environment
EP1061710B1 (en) System and method for integrated load distribution and resource management on internet environment
JP3566626B2 (ja) 異種サーバ装置内の資源を管理するためのシステム
US6516350B1 (en) Self-regulated resource management of distributed computer resources
US20020194324A1 (en) System for global and local data resource management for service guarantees
US6687846B1 (en) System and method for error handling and recovery
US20050076339A1 (en) Method and apparatus for automated negotiation for resources on a switched underlay network
TW580814B (en) Distributed edge network architecture, system and method for distributing content on a computer network
US6473401B1 (en) Self-scaling method for exploiting cached resources across organizational boundaries to enhance user response time and to reduce server and network load
US20020120741A1 (en) Systems and methods for using distributed interconnects in information management enviroments
US8131693B2 (en) Methods and systems for transferring data over electronic networks
KR101063556B1 (ko) 컴퓨팅 시스템에서 데이터를 업로드하기 위한 방법, 장치 및 컴퓨터 프로그램 제품
US20020059274A1 (en) Systems and methods for configuration of information management systems
US20020065864A1 (en) Systems and method for resource tracking in information management environments
US20070243860A1 (en) Method and System of Degital Content Sharing Among Users Over Communications Networks , Related Telecommunications Network Architecture and Computer Program Product Therefor
WO2002039275A2 (en) Systems and methods for using distributed interconnects in information management environments
KR100799775B1 (ko) 무선 그리드 네트워크의 모바일 그리드 게이트웨이리플리케이션 시스템 및 그 방법
US20060136487A1 (en) Clustering apparatus and method for content delivery system by content classification
US9225778B2 (en) System for delivery of content to be played autonomously
US6912586B1 (en) Apparatus for journaling during software deployment and method therefor
JP2004064284A (ja) P2pネットワークのトラヒック制御方法及び装置並びにプログラム及び記録媒体
On Quality of availability for widely distributed and replicated content stores
Min et al. Dynamic storage resource management framework for the grid
KR100362532B1 (ko) 인터넷 피씨방 환경에서의 분산 메모리 직/병렬 처리컴퓨터 구조를 활용한 데이터 프로세스 처리 시스템

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040330

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040521

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040917

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20041102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041111

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071217

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081217

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081217

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091217

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091217

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101217

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101217

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111217

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111217

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121217

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121217

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131217

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees