サービス提供システム
【課題】 複数のサーバが階層的に接続されて構成されるシステムにおいて、サーバで動作するアプリケーションのエンドユーザ端末からの利用を分散させて、サービスを効率的に提供する。
【解決手段】 サービス提供システムは、サービスを提供するためのアプリケーションプログラムのオリジナルを保持するサービスアンカーDCと、エンドユーザの端末に接続するエンドユーザ収容DCと、サービスアンカーDCとエンドユーザ収容DCとの間の経路上に存在する中継DCとを備え、サービスアンカーDCにオリジナルが保持されているアプリケーションプログラムのコピーを、中継DCを介してエンドユーザ収容DC内に作り出し、エンドユーザ収容DCがそのコピーを動作させることにより、エンドユーザの端末へサービスを提供する。
【解決手段】 サービス提供システムは、サービスを提供するためのアプリケーションプログラムのオリジナルを保持するサービスアンカーDCと、エンドユーザの端末に接続するエンドユーザ収容DCと、サービスアンカーDCとエンドユーザ収容DCとの間の経路上に存在する中継DCとを備え、サービスアンカーDCにオリジナルが保持されているアプリケーションプログラムのコピーを、中継DCを介してエンドユーザ収容DC内に作り出し、エンドユーザ収容DCがそのコピーを動作させることにより、エンドユーザの端末へサービスを提供する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して複数の層に配置されたデータセンタを用いて、エンドユーザ端末へサービスを提供するためのシステムに関する。
【背景技術】
【0002】
近年、大容量のコンテンツが普及したことでネットワークの負荷が増大し、レスポンスの悪化や通信速度の低下などの問題が深刻化している。そうした問題を解決する手法として、サーバを一箇所だけに置くのではなく、地理的ないしバックボーン的に分散させて、同一のコンテンツを多くのサーバでミラーリングするように構成するCDN(コンテンツ配信ネットワーク)の技術が注目されている。
【0003】
例えば、特許文献1に示されるように、米国アカマイ・テクノロジーズ社が開発したCDNは、ライブ・ストリームをコンテンツとしてエンドユーザに配信するために、コンテンツ・プロバイダの代わりに動作して配信元となるCDN入口点と、多数のエンドユーザに対してストリーミング・サーバとして機能する各エッジ・ノードと、入口点とエッジ・ノードとの間の中間層内に配置されるリフレクタ・ノードとを備え、所要のストリームを未だ受信していないエッジ・ノードへエンドユーザが向けられたとき、そのエッジ・ノードはリフレクタ・ノードの組に配信要求を発行し、そのリフレクタ・ノードが所要ストリームを既に受信していればこれを要求エッジ・ノードに送信し、未だ受信していなければ配信要求を階層上位に、最終的に入口点に到達するまで発行するという構成をとることにより、コンテンツを効率よく配信できるようにしている。
【特許文献1】特表2004−517412号
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した技術においては、CDNの入口点とエッジ・ノードとリフレクタ・ノードは、全てが同一の事業者(アカマイ・テクノロジーズ社)により、世界中に分散されて配置され運用されるものであり、コンテンツ・プロバイダは、形成されているCDNの外部から入口点に対してコンテンツを提供することしかできない。そうすると、例えば、リフレクタ・ノードが設置されている場所やエッジ・ノードが設置されている場所の近くに、コンテンツ・プロバイダのサイトがあったとしても、遠くのCDN入口点までコンテンツを送信しなければ、エンドユーザへ配信することはできない。
【0005】
また、各々のコンテンツ・プロバイダが独立に、CDNを利用して配信するだけであるため、複数のコンテンツ・プロバイダのコンテンツを一つのメニューにまとめてエンドユーザへ提供したり、配信経路の途中でコンテンツの編成を変えて(例えば、コンテンツ・プロバイダから配信されるビデオに、配信経路の途中のサイトで独自のコマーシャルを重畳して)エンドユーザへ提供したりすることはできない。
【0006】
上述したCDNは、インターネットにおけるコンテンツ配信の技術であるが、ケーブルテレビによるコンテンツ配信にも、類似した問題がある。ケーブルテレビにおいては、エンドユーザがアクセスする各地のケーブルテレビ局に対し、番組供給事業者(例えば、ディズニー、スポーツ専門チャネル、東京のキーテレビ局等)が、衛星等の配信回線提供事業者を介して、テレビ番組(コンテンツ)を配信する。この配信は、各々の番組供給事業者が各々のケーブルテレビ局に対して独立に行っているだけであり、その途中で、コンテンツの編成を変えたり、番組を追加したりすることはできない。
【0007】
なお、各地のケーブルテレビ局は、全国一律のサービスとなる番組供給事業者からの番組に加えて、コミュニティチャネルと呼ばれるチャネルで自局独自の番組をエンドユーザに提供することができるが、近隣のケーブルテレビ局(例えば、魚津、滑川、富山、高岡等の市レベル)が幾つかまとまった地域ブロック(例えば、富山、石川等の県レベル)に対してその地域ブロック独自の番組(例えば、高校野球地方大会中継等)を配信することはできない。
【0008】
さらに、上述した技術で配信できるコンテンツは、ビデオ・ストリーム等のデータに限られており、CDNでは、たとえプログラムを配信する場合でも、エンドユーザの端末にダウンロードされて端末内で動作するプログラムが、データとして(ファイル形式で)、CDN入口点からリフレクタ・ノードを介してエッジ・ノードへ送信され、エッジ・ノードからエンドユーザ端末へ送信されるだけである。CDNの技術は、コンテンツ・プロバイダのサイトに負荷が集中するのを避けて、コンテンツを効率的に配信することができるものであるが、その対象は、実質的に、データに限られる。
【0009】
しかし、エンドユーザに対して提供したいサービスには、データをエンドユーザ端末に届けて端末内で利用させるものだけではなく、エンドユーザ端末がサーバへアクセスしてサーバソフトウェアを利用することで実現するオンライン対戦ゲームやリアルタイムアンケートのようなインタラクティブ(双方向)あるいは時系での状況変化が激しいものが存在する。そのようなサービスについても、サービス提供元サイトへの負荷集中を抑制できるようにすることが望ましい。
【0010】
また、エンドユーザに対するコンテンツの配信は、配信するキャリアやインターネットサービスプロバイダ(上記の例では、アカマイ・テクノロジーズ社)の仕組みに依存する部分が多く、現状では、コンテンツ・プロバイダは、エンドユーザによるコンテンツの利用履歴(プロファイル)を、契約ベースでしか入手できない。ケーブルテレビでも、エンドユーザによる利用は、各ケーブルテレビ局が把握できるだけであり、番組供給事業者がエンドユーザのプロファイルを入手することはできない。
【0011】
本発明は、以上のような事情を考慮し、複数のサーバが階層的に接続されて構成されるシステムにおいて、サーバで動作するアプリケーションのエンドユーザ端末からの利用を分散させて、サービスを効率的に提供することのできる機構を実現することを、一つの目的とする。
【0012】
本発明はまた、複数のサーバが階層的に接続されて形成される配信経路の途中のサーバにおいて、独自のサービスを追加的に提供することや、エンドユーザからアクセスされるサーバにおいて、あるサーバが提供元であるサービスと別のサーバが提供元であるサービスとをまとめて提供することを可能にし、それぞれのサーバの運営事業者によるサービス提供メニューに自主性を持たせられる機構を実現することを、別の目的とする。
【0013】
本発明はまた、複数のサーバが階層的に接続されて形成される配信経路にある各サーバが、たとえ異なる事業者により運営される場合でも、サービスの提供元になる事業者が、自動的にエンドユーザの利用情報を取得することができる機構を実現することを、さらに別の目的とする。
【課題を解決するための手段】
【0014】
本発明に係るサービス提供システムは、特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備え、前記サービスアンカー装置にオリジナルが保持されているアプリケーションプログラムのコピーを、前記中継装置を介して前記エンドユーザ収容装置内に作り出す手段を含み、前記エンドユーザ収容装置が前記アプリケーションプログラムの前記コピーを動作させることにより、前記特定のサービスを前記エンドユーザの端末へ提供することを特徴とする。
【0015】
この構成によれば、サービスを実現するためのデータだけでなくサーバプログラム自体が、サービスアンカー装置からエンドユーザ収容装置へ移動してくるため、インタラクティブなオンラインアプリケーションを含め、接続する時刻に応じて動きが変化するようなサービス等、種々のサービスについて、サービスアンカー装置への負荷集中を抑制し、効率よくエンドユーザへ提供することが可能になる。
【0016】
本発明に係るサービス提供システムは、前記サービスアンカー装置、前記エンドユーザ収容装置、及び前記中継装置に、仮想化ミドルウェアがインストールされており、前記アプリケーションプログラムの同一のコピーが、いずれの装置でも動作可能であるように構成してもよい。
【0017】
これにより、仮想化技術を用いて、サービスアンカー装置からエンドユーザ収容装置へアプリケーションプログラムを移動できるようになる。また、いずれの装置にも仮想化ミドルウェアがインストールされていることにより、後述するように中継装置を第二のサービスアンカー装置としても機能させることが同一装置上で可能になり、配信経路の途中からの独自サービスの追加的な提供が実現できる。
【0018】
本発明に係るサービス提供システムにおいて、前記アプリケーションプログラムのコピーを作り出す手段は、前記サービスアンカー装置において前記アプリケーションプログラムのオリジナルを動作させたまま、動作中の前記アプリケーションプログラムのコピーを前記中継装置内に作り出し、前記中継装置において前記アプリケーションプログラムのコピーを動作させたまま、動作中の前記アプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出し、前記サービスアンカー装置において前記アプリケーションプログラムのオリジナルが動作を継続する一方で、前記エンドユーザ収容装置において前記アプリケーションプログラムのコピーが前記オリジナルの動作を引き継いで動作を開始するようにしてもよい。
【0019】
これにより、プログラムの動的なマイグレーションが可能になり、サーバプログラムのオリジナルがサービスアンカー装置で動作していながら、それぞれのエンドユーザ収容装置(エンドユーザ端末の近く)まで同じ動作をしているサーバプログラムのコピーが張り出してきて、サービスを提供するという状態が実現できる。
【0020】
本発明に係るサービス提供システムにおいて、前記エンドユーザ収容装置は、自身が接続するエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段をさらに有し、前記アプリケーションプログラムのコピーを作り出す手段は、前記エンドユーザ収容装置において前記情報に基づいて前記サービスアンカー装置へ前記アプリケーションプログラムを要求する手段と、前記サービスアンカー装置において前記要求に応じて前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段と、前記中継装置において自身内に作り出されたコピーを利用して自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段とを含むようにしてもよい。
【0021】
これにより、エンドユーザ収容装置の運営事業者があるサービスを自己の配下にあるエンドユーザへ提供することを決めると、そのサービスを実現するアプリケーションプログラムが、そのサービスのサービスアンカー装置から中継装置経由で、エンドユーザ収容装置にマイグレーションされてくることができる。
【0022】
上記サービス提供システムにおいて、前記エンドユーザ収容装置が前記情報を取得する手段は、前記決定に応じて前記エンドユーザ収容装置に設置されるサービスボックスに格納された前記情報を参照する手段を含み、前記サービスボックスは、前記情報と、前記サービスアンカー装置へ前記アプリケーションプログラムを要求する手段を実現するためのソフトウェアとを格納し、前記特定のサービスを前記エンドユーザの端末へ提供するのに利用するリソースを備えるようにしてもよい。
【0023】
これにより、エンドユーザ収容装置の運営事業者は、あるサービスを自己の配下にあるエンドユーザへ提供することを決めた場合、そのサービスのサービスボックスを設置するだけで、あとは自動的に、サービスボックスに仕込まれたソフトウェアによって、そのサービスを実現するアプリケーションプログラムをサービスアンカー装置から取得し、そのプログラムと必要なリソースを使ってエンドユーザ端末へサービスを提供することが、可能になる。このように、エンドユーザに近い末端の事業者にかかる運用時の管理負担が軽減されると、エンドユーザのニーズを反映してサービスの提供を開始したり廃止したりすることが簡易に行えるようになり、末端の事業者が、サービス提供メニューに自主性を持たせることを実現しやすくなる。
【0024】
上記サービス提供システムにおいて、前記中継装置が、前記特定のサービスとは別の第二のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有し、第二のサービスアンカー装置として機能するようにしてもよい。
【0025】
これにより、中継装置の運営事業者は、あるサービスの提供を、上位のサービスアンカー装置から自身の下位にあるエンドユーザ収容装置に対して中継することに加えて、別の独自のサービスを、自身がサービスの提供元となって、自身の下位にあるエンドユーザ収容装置に対して配信することができるようになる。このように、あるサービスの配信経路の途中の事業者が、独自に、等価的に、別のサービスの提供元となることができるようになると、各エンドユーザ収容装置では、多様なサービスの中から、柔軟に、自己の配下のエンドユーザのニーズに合うサービスを選択して提供することができるようになる。
【0026】
ここで、前記第二のサービスアンカー装置としても機能する前記中継装置が、前記サービスアンカー装置がオリジナルを保持している前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第一のソフトウェアと、前記第二のサービスをエンドユーザの端末へ提供することが決定されたエンドユーザ収容装置からの要求に応じて、自身がオリジナルを保持している前記第二のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第二のソフトウェアと、前記第一のソフトウェアにより利用されていたリソースの一部を前記第二のソフトウェアにより利用されるべきリソースとして割り当てる手段とを備えるようにしてもよい。
【0027】
これにより、同一装置上で、あるサービスの配信経路の途中としての機能と、別のサービスの配信元としての機能との間で、リソースを共用して、融通し合うことが可能になり、既存の配信経路やリソースに併設して新たなサービス用の増設を一から行わなくとも、サービスの提供元を増やすことが可能になる。
【0028】
一方、上記サービス提供システムにおいて、前記中継装置が、前記エンドユーザとは別の第二のエンドユーザの端末に接続する手段を有し、第二のエンドユーザ収容装置として機能するようにしてもよい。
【0029】
これにより、中継装置の運営事業者は、あるサービスの提供を、上位のサービスアンカー装置から自身の下位にあるエンドユーザ収容装置に対して中継することに加えて、自己の配下に直接エンドユーザの端末を収容して、サービスを提供することができるようになる。エンドユーザに直接提供するサービスは、上位のサービスアンカー装置が提供元となっているものでもよいし、自己が提供元となる独自のサービスでもよい。そうすると、各エンドユーザ収容装置では、自己の配下のエンドユーザに対して提供できるサービスの選択肢がさらに増えることになり、柔軟性や自主性を増すことができる。
【0030】
ここで、前記第二のエンドユーザ収容装置としても機能する前記中継装置が、前記サービスアンカー装置がオリジナルを保持している前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第一のソフトウェアと、自身が接続する第二のエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段と、前記アプリケーションプログラムのコピーを動作させることにより、前記特定のサービスを前記第二のエンドユーザの端末へ提供する手段とを実現するための第二のソフトウェアと、前記第一のソフトウェアにより利用されていたリソースの一部を前記第二のソフトウェアにより利用されるべきリソースとして割り当てる手段とを備えるようにしてもよい。
【0031】
これにより、同一装置上で、サービスの配信経路の途中としての機能と、サービスをエンドユーザへ提供する機能との間で、リソースを共用して、融通し合うことが可能になり、既存の配信経路やリソースに併設して新たなサービス用の増設を一から行わなくとも、サービスの提供元を増やすことが可能になる。
【0032】
本発明に係るサービス提供システムにおいて、前記サービスアンカー装置は、前記エンドユーザ収容装置及び前記中継装置を特定するための情報を格納する手段をさらに有し、前記サービスアンカー装置が前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段は、前記情報を前記コピーに付加する手段を含み、前記中継装置が自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段は、付加された前記情報を参照してコピー先を決める手段を含むようにしてもよい。
【0033】
これにより、サービスアンカー装置が、アプリケーションプログラムの配信経路を指定する命令とともにそのプログラムをマイグレーションして、各中継装置が、その命令に従って各エンドユーザ収容装置まで当該プログラムをマイグレーションすることが、可能になる。このように、サービスアンカー装置に、プログラムの配信経路の決定を含めた制御権を持たせると、サービスの提供元から、そのサービスに係る全てのエンドユーザ収容装置に対する配信が統括して制御できるため、サービス機能の変更や、データの同期、さらにはプログラムの状態の同期が、より精密に実現できる。
【0034】
本発明に係るサービス提供システムにおいて、前記中継装置は、自身内に作り出された前記アプリケーションプログラムのコピーを保持するための手段と、前記エンドユーザ収容装置とは別の第二のエンドユーザ収容装置から前記サービスアンカー装置への前記アプリケーションプログラムの要求の受信に応じて、前記アプリケーションプログラムのコピーが保持されているか否かを調べる手段と、保持されていないならば、前記サービスアンカー装置へ受信した前記要求を転送する手段とを有し、保持されているならば、保持されているコピーを利用して自身より前記第二のエンドユーザ収容装置寄りに存在する中継装置内もしくは前記第二のエンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出すようにしてもよい。
【0035】
これにより、全てのエンドユーザ収容装置に対するプログラムのマイグレーションを、一つのサービスアンカー装置から行わなくとも、途中に幾つかある中継装置から行うことが可能になり、プログラムの配信におけるサービスアンカー装置への負荷集中を軽減することができる。
【0036】
上記サービス提供システムにおいて、前記サービスアンカー装置が前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段は、前記コピーを保持すべき期間を示す情報を付加する手段を含み、前記中継装置における前記コピーを保持するための手段は、付加された前記情報を参照して定められる期間、前記コピーを保持するようにしてもよい。
【0037】
これにより、配信経路の途中で、どのように、エンドユーザ収容装置へマイグレーションすべきプログラムのコピーを保持しておくかについても、その全体を、サービス提供元であるサービスアンカー装置が統括して制御できるようになる。
【0038】
上記サービス提供システムにおいて、前記中継装置は、前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段と、前記特定のサービスとは別の第二のサービスを提供するためのアプリケーションプログラムのコピーを前記エンドユーザ収容装置内もしくはそれとは別の第二のエンドユーザ収容装置内に作り出す手段とを実現するためのソフトウェアと、前記特定のサービスについて前記期間が経過した後は、前記コピーを保持するための手段を前記第二のサービスに係るアプリケーションプログラムのコピーを保持するために利用できるようにする手段とを備えるようにしてもよい。
【0039】
これにより、同一の中継装置上で、あるサービスの配信経路の途中としての機能と、別のサービスの配信経路の途中としての機能との間で、リソースを共用して、融通し合うことが可能になり、既存の配信経路やリソースに併設して新たなサービス用の増設を一から行わなくとも、サービスの提供元を増やすことが可能になる。
【0040】
本発明に係るサービス提供システムにおいて、前記エンドユーザ収容装置は、前記エンドユーザとは別の第二のエンドユーザの端末に接続する第二のエンドユーザ収容装置から、前記アプリケーションプログラムの要求を受信する手段と、前記要求に応じて自身より前記第二のエンドユーザ収容装置寄りに存在する中継装置内もしくは前記第二のエンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段と、前記サービスアンカー装置と前記第二のエンドユーザ収容装置との間の経路上に存在する中継装置として機能する手段とをさらに有し、前記第二のエンドユーザ収容装置は、自身が接続する第二のエンドユーザの端末への前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための第一の情報と、前記エンドユーザ収容装置へアクセスするための第二の情報とを取得する手段と、前記第二の情報に基づいて前記エンドユーザ収容装置へ前記要求を送信する手段と、前記第一の情報に基づいて前記サービスアンカー装置へ前記エンドユーザ収容装置の中継装置として機能する手段を介してアクセスする手段とを備えるようにしてもよい。
【0041】
これにより、サービスアンカー装置から見て、あるエンドユーザ収容装置よりも先に別のエンドユーザ収容装置が出現した場合、出現したエンドユーザ収容装置に対するプログラムのマイグレーションを、サービスアンカー装置から行わなくとも、配信経路の途中となった既存のエンドユーザ収容装置から行うことが可能になり、プログラムの配信におけるサービスアンカー装置への負荷集中を軽減することができる。その一方で、出現したエンドユーザ収容装置は、自己の出現についてサービスアンカー装置へも通知するため、プログラムのマイグレーション後は、サービスの提供元であるサービスアンカー装置からの全体を統括した制御を受けることができ、同期を精密にとることができる。
【0042】
本発明に係るサービス提供システムにおいて、前記サービスアンカー装置は、前記エンドユーザ収容装置を特定するための情報を格納する手段と、前記特定のサービスにより利用可能なデータのオリジナルを保持する手段と、前記情報を参照して、前記データのコピーを、前記中継装置を介して前記エンドユーザ収容装置内に作り出す手段とをさらに有し、前記エンドユーザ収容装置は、作り出された前記データのコピーを前記アプリケーションプログラムのコピーにより利用可能なデータとして記憶する手段をさらに有し、記憶されたデータのうちエンドユーザにより選択されたデータを利用して前記特定のサービスを前記エンドユーザの端末へ提供するようにしてもよい。
【0043】
これにより、サービス提供に利用されるデータについても、サービスアンカー装置で使われているデータのコピーが、それぞれのエンドユーザ収容装置(エンドユーザ端末の近く)まで配信されてきて使われることが、可能になる。例えば、初期データのように容量の大きなデータについては、プログラムのマイグレーションと同様に、サービスアンカー装置が、データの配信経路を指定する命令とともにそのデータをマイグレーションして、各中継装置が、その命令に従って各エンドユーザ収容装置まで当該データをマイグレーションする(データが存在場所を変える)ようにするとよい場合がある。また、例えば、初期データから変化した差分のデータ(動的データ)のように容量の小さなデータについては、サービスアンカー装置が、データの宛先となるエンドユーザ収容装置だけを指定してそのデータを送信し、各中継装置は、そのようなデータを受信したときには、宛先に基づいて自律的に定められる次の中継装置へ送信するようにするとよい場合がある。
【0044】
本発明に係るサービス提供システムにおいて、前記エンドユーザ収容装置は、前記サービスアンカー装置に保持されている前記データの最新版を要求し、この要求に応じて受信される最新データのコピーを前記アプリケーションプログラムのコピーにより利用可能なデータとして記憶する手段と、前記アプリケーションプログラムのコピーに前記サービスアンカー装置に保持されている前記データのオリジナルを参照させる手段とを備えるようにしてもよい。
【0045】
これにより、エンドユーザ収容装置がエンドユーザに対してデータを利用したサービスを提供するに当たり、そのデータの最新のもの(例えば、サービスアンカー装置において時系で変化しているデータや、エンドユーザの前回の利用結果を反映して定まるべきデータ等)を取得することができるとともに、コピーを作成しないことが望まれるデータについては、サービスアンカー装置が保持しているデータ自体を直接参照することもできるようになり、データの適切な同期をとることが可能になる。
【0046】
本発明に係るサービス提供システムにおいて、前記エンドユーザ収容装置は、自身が接続するエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段と、前記特定のサービスを前記エンドユーザの端末へ提供する際に得られる利用情報を、前記情報に基づいて前記サービスアンカー装置へ向けて出力する手段とをさらに有し、前記サービスアンカー装置は、前記特定のサービスの利用情報を各エンドユーザについて記録する手段と、前記エンドユーザ収容装置から出力された前記エンドユーザについての利用情報を前記記録手段に入力する手段とをさらに有するようにしてもよい。
【0047】
これにより、サービスがどういう配信形態で提供されるかによらず、また、配信経路にある各装置が異なる事業者により運営される場合でも、サービスの提供元に対して、各エンドユーザの利用情報が、自動的に還元されるようになる。
【0048】
なお、上述した本発明はいずれも、サービス提供システムを構成するサービスアンカー装置、エンドユーザ収容装置、及び中継装置のそれぞれの装置が行う方法の発明としても、サービス提供システム全体が行う方法の発明としても、成立するものである。また、これらの各装置としてコンピュータを機能させるためのプログラムの発明や、このようなプログラムを記録した記録媒体の発明としても、勿論成立するものである。
【0049】
例えば、本発明に係るソフトウェアは、特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記サービスアンカー装置を出現させるソフトウェアであって、前記装置に、前記アプリケーションプログラムのオリジナルを保持させ、前記エンドユーザ収容装置からの前記アプリケーションプログラムの要求を受信させ、前記要求に応じ、前記中継装置を介して前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出すための動作をさせることを特徴とする。
【0050】
本発明に係る別のソフトウェアは、特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記エンドユーザ収容装置を出現させるソフトウェアであって、前記装置に、前記エンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得させ、前記情報に基づいて前記サービスアンカー装置へ向けて前記アプリケーションプログラムの要求を送信させ、前記要求に応じて前記中継装置を介して自身内に作り出される前記アプリケーションプログラムのコピーにより、前記特定のサービスを前記エンドユーザの端末へ提供させることを特徴とする。
【0051】
本発明に係るさらに別のソフトウェアは、特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記中継装置を出現させるソフトウェアであって、前記装置に、前記サービスアンカー装置もしくは自身より前記サービスアンカー装置寄りに存在する中継装置により自身内に作り出されたコピーを保持させ、保持されたコピーを利用して自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出させることを特徴とする。
【発明の効果】
【0052】
以上のとおりであるから、本発明によれば、例えば、エンドユーザへのサービス提供に関係する各事業者に対し、従来にない様々な優位性を有するプラットフォームを提案することが可能になる。
【発明を実施するための最良の形態】
【0053】
以下、本発明の実施の形態について図面を用いて説明する。
【0054】
本発明の一実施形態に係るサービス提供システムは、仮想アーキテクチャを技術基盤としたサービスプラットフォームであり、複数のデータセンタ(以下、「DC」という。)が階層的に接続されて、階層化された仮想化空間を形成するものである。本実施形態で使われる仮想化技術は、例えば、「日経BPムック/すべてわかる仮想化大全」(日経BP社、ITPro編、2006年10月30日発行)に記述されている。
【0055】
ここで、本実施形態で提供される「サービス」について説明しておく。例えば、映画、ドラマ、音楽、広告、ゲーム等のコンテンツを配信するだけでも「サービス」の提供になるが、例えば、アンケート回答、ショッピング申込等の双方向通信を付加したコンテンツ配信を「サービス」として提供したり、例えば、テレビ電話会議、オンライン対戦ゲーム等の複数のエンドユーザが同時に参加する通信を「サービス」として提供したりすることも可能である。
【0056】
「サービス」は後述のソフトウェアアプライアンスを含む形で、当該サービスの提供主(例えば、コンテンツホルダ)が、サービスを配信したい全てのエリアを配下に持つデータセンタ(後述のサービスアンカーDC)に提供する。
【0057】
そして、「データセンタ」(DC)とは、単体のサーバにより構成されてもよいし、一箇所に集められたサーバ群、ストレージ群、ネットワーク装置等により構成されてもよいものである。
【0058】
各DCの運用者は、例えば、インターネット事業者、ケーブルテレビ事業者、固定電話事業者、携帯電話事業者等であり、DC毎に運用者が異なってもよい。
【0059】
DCとDCの間は、専用線が敷設されてもよいし、広帯域や帯域保証等の条件が満たされる次世代ネットワーク(NGN)、IP−CATVネットワーク等の基幹網で接続されてもよい。本実施形態に係るサービス提供システムは、ニュートラルな回線環境上で構築でき、電話キャリア、ケーブルテレビ、携帯キャリアなどを横断的に利用可能である。
【0060】
本発明の一実施形態に係るサービス提供システムは、複数のDCを含み、その中には、下記の3種類のDCがあり得る。つまり、上記の仮想化空間は、3層以上に階層化され得る。
【0061】
1番目は、「サービスアンカーDC」である。サービスアンカーDCは、サービスないしコンテンツの製作者又はこの製作者の委託を受けた者(サービスの提供主)から本システムへ渡されたプログラム(後述のソフトウェアアプライアンス)やデータのオリジナルを保持し、本システム内でのサービス提供元となる(サービス毎に一つ存在する)DCである。このDCには、後述する「オリジン・プレーン」(O-plane)が組み込まれる。
【0062】
2番目は、「エンドユーザ収容DC」である。エンドユーザ収容DCは、サービスの提供先であるエンドユーザの端末に接続するDCであり、一つのサービスアンカーDCに対して複数設けることができる。このDCには、後述する「プロバイダ・プレーン」(P-plane)が組み込まれる。
【0063】
3番目は、「中継DC」である。中継DCは、サービスアンカーDCとエンドユーザ収容DCとの間の経路上に一つ又は複数設けられて(これで、3層又は4層以上となる)、両者の間で送受信されるメッセージやデータを中継したり、後述するソフトウェアアプライアンスのマイグレーション等を助けたりするDCである。また、一つのサービスアンカーDCに対して多数のエンドユーザ収容DCが設けられる場合、エンドユーザ収容DCを幾つかのグループに分けて、各グループを担当する(配下に置く)中継DCを設ければ、サービスアンカーDCへの負荷集中を軽減可能になる。中継DCには、後述する「ミラー・プレーン」(M-plane)が組み込まれる。
【0064】
複数のサービスを提供する場合、物理的に一つのDCが、あるサービスについてはサービスアンカーDCとして、別のサービスについてはエンドユーザ収容DCとして、(さらに別のサービスについては中継DCとして、)機能することが可能である。つまり、一つのDCに、3種類のプレーンのうちの2つ以上を組み込むことができ、あるサービスについては「オリジン・プレーン」が動作し、別のサービスについては「プロバイダ・プレーン」が動作することが可能である。
【0065】
よって、例えば、複数のDCが木構造で接続されている場合、木構造のルートに位置するDCを中央DC、ブランチに位置するDCを中間DC、リーフに位置するDCを末端DCとすると、あるサービスについては、中央DCがサービスアンカーDC、中間DC又は末端DCがエンドユーザ収容DCとして機能するとともに、別のサービスについては、中間DCがサービスアンカーDC、末端DCがエンドユーザ収容DCとして機能することが可能である。
【0066】
木構造を生かして、例えば、中央DCを国レベルで一つ設置するDC、中間DCを都道府県レベルで一つずつ設置するDC、末端DCを市町村レベルで一つずつ設置するDCとしてもよい。また、中央DCと各末端DCとの間に、2つ以上の中間DCを設置してもよく、例えば、中央DCと都道府県レベルの各中間DCとの間に、東北、関東、北陸等の地方レベルの中間DCを設置してもよい。DC間で木構造を構成することで、配下を持つ地域ブロック単位での独自サービスが簡易に実現できる。
【0067】
なお、あるサービスについて、一つのDCがサービスアンカーDCとエンドユーザ収容DCを兼ねて機能することも可能である。つまり、DCが自己の収容するエンドユーザのみに対して独自のサービスを提供する場合は、「オリジン兼プロバイダ・プレーン」が動作して、自身が提供元であるサービスを自らエンドユーザに提供する。このDCは、別のサービスアンカーDCが提供元であるサービス(独自のサービス以外のサービス)については、エンドユーザ収容DCもしくは中継DCとして機能(「プロバイダ・プレーン」もしくは「ミラー・プレーン」が動作)する。
【0068】
本実施形態において、「プレーン」とは、基盤となる所定の処理を担当すべくコンピュータ上で実行される一連のプロセスであり、好ましくは、仮想化ミドルウェア(例えば、VMware社のVMware ServerやVMware ESX ServerもしくはVMware Infrastructure、Microsoft社のVirtual Server、XenSource社のXen等)上で動作するように作製されたソフトウェアにより実現される。
【0069】
サービスアンカーDCとエンドユーザ収容DCが直接(中継DCを介さずに)接続する場合、オリジン・プレーンとプロバイダ・プレーンが通信し、また必要に応じて同期をとることにより、一つのサービス・プレーンを形成する。
【0070】
サービスアンカーDCとエンドユーザ収容DCが一つ又は複数の中継DCを介して接続する場合、オリジン・プレーンとプロバイダ・プレーンが一つ又は複数のミラー・プレーン経由で通信し、また必要に応じて同期をとることにより、一つのサービス・プレーンを形成する。
【0071】
そして、一つのサービス・プレーンが、一つのサービスを提供する。同じサービスアンカーDCとエンドユーザ収容DCの組であっても、複数の異なるサービスを提供する場合は、複数のサービス・プレーンが形成される。あるサービスアンカーDCからあるエンドユーザ収容DCへのサービス・プレーンは、そのエンドユーザ収容DCが接続する一つ又は複数のエンドユーザ端末に対してサービスを提供し、同じサービスを別のエンドユーザ端末に対して提供する別のエンドユーザ収容DCへは、同じサービスアンカーDCからの別のサービス・プレーンが形成される。
【0072】
以上に説明した本実施形態に係るサービス提供システムの全体構成の一例を俯瞰した様子を、図1に示しておく。
【0073】
さて、本実施形態において、ソフトウェアアプライアンス(以下、「SA」という。)は、サービス提供機能を有するアプリケーションプログラムを少なくとも含むプログラムであり、好ましくは、サーバの仮想化技術におけるゲストOSとアプリケーションプログラムとを一体化したプログラムとするとよい。
【0074】
そうすれば、仮想化ミドルウェアがインストールされているコンピュータ(本システムでは、DC)であれば、どのようなハードウェアやファームウェアあるいはOS(ホストOS)が採用されたコンピュータであろうが、同一のプログラムが仮想化ミドルウェア上(本システムでは、プレーン上)で動作可能である。一例として、VMware社のVirtual Applianceは、OSやアプリケーションがインストールされ設定された仮想マシン(プログラム)であり、SAとして利用できる。
【0075】
図2は、本実施形態において、仮想化技術を利用したSAを採用した場合のシステムの各構成要素の機能を説明する図である。
【0076】
各DCは、コンピューティングリソース及びホストOS上に、仮想化ミドルウェアが搭載されたサーバである。そして、各DCにおいて、その仮想化ミドルウェア上で、提供すべきサービスに必要なプレーン(3種類のプレーンのうち、そのDCが当該サービスの配信経路上のいずれに位置するかによって定まるプレーン)が動作するようにする。仮想化ミドルウェアと各プレーンが合わさって、本実施形態のサービス提供システムの仮想化環境が実現される。
【0077】
SAは、そのSAが存在するDCにおける当該サービス用のプレーン上で、そのDCのコンピューティングリソースを利用しながら動作する。SAは、当該サービスを提供するためのアプリケーションプログラムとゲストOSを含んでいる。
【0078】
SAが後述のマイグレーションをされるときには、オリジン・プレーンにより、アプリケーション配信条件情報が付加される。アプリケーション配信条件情報には、そのSAの識別子と、そのSAのコピーを保持して稼動させることによりエンドユーザにサービスを提供すべきプロバイダ・プレーンを持つDC名と、そのSAのコピーが移動していく経路上にあるミラー・プレーンを持つDC名、当該ミラー・プレーンでのSAのコピーの保持期間又は即時消去の別が当該ミラー・プレーンの数の分だけ併記されたものとが含まれる。
【0079】
SAがマイグレーションされることにより、サービスアンカーDC(サービスA,B,Cについては中央DC、サービスDについては中間DC)においてオリジナルのSAが動作している一方で、エンドユーザ収容DC(サービスA,B,Dについては末端DC、サービスCについては中間DC)においてSAのコピーが動作している状態になる。
【0080】
サービスA,Bについては、サービスアンカーDCからエンドユーザ収容DCへの経路上に中継DC(中間DC)が存在し、そこで、SAのマイグレーションが中継されるため、SAのミラーリングデータ(SAのコピーであるが、後に消去される)が所定の期間存在することになる。所定の期間は、上記のアプリケーション配信条件情報により指示されるものであり、即時消去が指定されていた場合には、中継DCは、エンドユーザ収容DCもしくは自身より下位の中継DC内に、SAのコピーを生成し終わると、ミラーリングデータを消去する。
【0081】
なお、ミラー・プレーンは、サービス毎に存在する必要はなく、いずれのサービスに対しても同様に、マイグレーションの中継を行う。また、ミラーリングデータは、一時的に中継DCのリソースを利用するだけであるため、ミラー・プレーンの管理するリソースは、複数のサービスのマイグレーションについて共有で用いられる。
【0082】
SAに含まれるアプリケーションプログラムには、2つの種類があり得る。後(あと)同期型と随時更新型である。後述のプログラムのマイグレーション機能が実行される際、後同期型のSAは、サービスアンカーDCにおけるオリジナルの動作とエンドユーザ収容DCにおけるコピーの動作との間にある程度の時間的「差」があってもよいが、随時更新型のSAは、両者の間に時間的「差」がほとんど生じないように同期がとられながら移動される。
【0083】
本実施形態において、サービスは、前述のようにいろいろなビジネス形態、技術仕様を想定している。したがって、それぞれのサービスを構成するアプリケーションプログラムの特性により、後同期型/随時更新型を使い分けて利用することが実際的である。
【0084】
例えば、文章を書く、絵を描くというような個人での単体事務作業などに使われるアプリケーションであれば、プログラムの時系での変化も多くないから、後同期でよい。
【0085】
しかし、時間で状況が変化するゲーム(例えば、キャラクターを育てていくゲームなどは、個人利用だが時間変化がある)のようなアプリケーションや、時間で変化するコマーシャル提供が付加されたアンケートつきビデオ配信のようなアプリケーションは、サービスアンカーDCとエンドユーザ収容DCで同一時間にアプリケーションが同一進行していることが望ましい。こうしたアプリケーションプログラムでサービスを行おうとする場合、本システムでは、随時更新型に適したマイグレーションを実現することが可能である。
【0086】
これにより、例えば、サーバへアクセスすることで実現するオンライン対戦ゲームのようなサービスも、そのサービス用のサーバソフトウェアがサービスアンカーDCで動作し続けていながら、同一のサーバソフトウェアがサービス・プレーン上をエンドユーザ収容DCまで動的に移動してきて、サービスアンカーDCとエンドユーザ収容DCで同じ状態をとりながら動作し続けるため、各エンドユーザ端末は、遠くのサービスアンカーDCにオリジナルが存在して稼動を続けているサービスについて、その動的な状態を含めて同一のサービスを、近くのエンドユーザ収容DCから提供してもらうことが可能になる。
【0087】
図3は、上述したSAのマイグレーションが行われる本実施形態に係るサービス提供システムの動きの概要を説明する図である。
【0088】
エンドユーザの端末がサービスの提供を受けるために実際にアクセスするのは、近くにあるエンドユーザ収容DCである。エンドユーザの端末は、サービスの提供を受けるため、コンピューティング機能、表示機能、コントローラ機能等を備えるが、それらの機能と、エンドユーザ収容DCに接続するネットワークとの間に、セットトップボックスが存在してもよい。
【0089】
エンドユーザの端末から上流を見た場合、そこにはユーザ・インタフェースしか見えず、サービスを提供する実体がエンドユーザ収容DCであるのか、サービスアンカーDCであるのか、またその間にどのような中継DCがあるのか等は、エンドユーザの端末からは見えないようになっていると、便利である。
【0090】
また、サービスに係るアプリケーションやデータのプロバイダが、サービスアンカーDCとは別に存在する場合、それらのプロバイダからは、サービスアンカーDCに対するサービスプロバイダ・インターフェースしか見えず、サービスがどのような経路で配信されてエンドユーザの端末に提供されているかは見えないようになっていると、便利である。
【0091】
本実施形態に係るサービス提供システムは、このように、ユーザ・インタフェースとサービスプロバイダ・インターフェースとの間のプラットフォームを形成可能なものである。
【0092】
そして、このプラットフォームにおいては、サービス毎に、オリジン・プレーン、ミラー・プレーン、プロバイダ・プレーンが接続されて形成されたサービス・プレーン上を、当該サービスのSAがマイグレーションされていく(ミラー及びコピーが作出されていく)ことにより、アプリケーションプログラムが、サービス提供元のサービスアンカーDCから、エンドユーザ収容DCへ張り出していく。なお、アプリケーションプログラムが利用するデータについては、同様に張り出していってもよいし、別な方式で配信されてもよい。
【0093】
このアプリケーションの張り出しは、サービスアンカーDCにより制御されており、サービス・プレーンを形成する3種類のプレーンの階層関係により、上位から下位への許諾という制御関係が保たれる。
【0094】
なお、本システムにおいて、サービス・プレーンはサービス毎に形成され、3種類のプレーンもサービス毎に存在するが、各プレーンの実体のプログラムコードは、その上で動作するSAが提供するサービス内容の相違に関わらず、共通のものを使うことができ、各プレーンが参照する配信経路やリソースの情報を、サービス毎に異ならせておけばよい。
【0095】
本実施形態に係るサービス提供システムの別の特徴は、配信経路の途中のDCも、リソースをそのまま利用してサービス提供元になることが可能な点にある。図3には、中継DCが2つ示されているが、そのいずれのDCも、それぞれが、いま提供中のサービスとは別の、そのDC独自のサービスについて、オリジン・プレーンを導入して、新たにサービスアンカーDCとなることができ、既存のサービスについての中継DCでもあり続けることができる。
【0096】
これは、本システムの各DCの基礎部分が、ハードウェアとホストOSの上に仮想化ミドルウェアを搭載した形式で、共通化されており、その上に、プレーンを形成する(SAを稼動させる論理的な占有空間を準備する)ことで、どのDCでも、サービス提供元としての機能を導入することができるからである。
【0097】
さらに、同一DC内で、既存のミラー・プレーンと新たなサービスのオリジン・プレーンとは、同じ仮想化ミドルウェア上で動作するため、互いのリソース不足を補うような協調連携をとることも可能である。
【0098】
本実施形態に係るサービス提供システムのさらに別の特徴は、ユーザプロファイルの管理場所をサービスアンカーDCとすることで、各エンドユーザのサービス利用情報が、サービス提供元に還流し、一箇所に集まって管理されることが可能な点である。
【0099】
各エンドユーザの端末にサービス利用情報の記録を残すと、どの端末でそのサービスを利用したかによってプロファイルの管理場所が異なってしまい、一元管理が難しくなるが、本システムのように、どのサービスを利用したかによって定まる場所、すなわち、そのサービスの提供元であるサービスアンカーDCへ、各エンドユーザの利用情報をフィードバックするようにすれば、端末に束縛されないサービス提供が可能になる。また、サービスの提供元(サービスアンカーDC)や提供主(サービスプロバイダ)が、全てのエンドユーザの利用情報を、配信経路にかかわらず、簡易に入手することが可能になる。
【0100】
以上に概要を説明した本実施形態に係るサービス提供システムを活用すれば、例えば、従来バラバラに存在した事業モデル(例えば、地域と中央、コンテンツホルダと配信事業者等)を連結して、新しいサービス配信のビジネスモデルを創造することが可能になり、各々の事業者が提供するサービスの制御で、独自の事業と自身が包含されるより大きい事業とを棲み分けながら展開することや、キャリア、端末、DCをクロスオーバーするグローバルなマルチフィールドサービスを実現することも可能になる。
【0101】
図4は、本実施形態に係るサービス提供システムを構成する各DCの内部構成の一例を示す図である。
【0102】
まず、図4でエンドユーザ収容DCに設置されている「サービスボックス」について説明する。サービス提供主から依頼をうけたサービスアンカーDCの運用者は、そのサービスのSA(アプリ)をサービスアンカーDC内にオリジン・プレーンと併せて準備する一方で、そのサービスについてエンドユーザ収容DCとなるべきDCに設置されることになる「サービスボックス」を準備する。
【0103】
「サービスボックス」は、例えば、ハードウェアを含むワンボックスサーバとして準備されてもよいし、ハードウェア無しでソフトウェアのみで準備されてもよい。「サービスボックス」がハードウェアを含む場合、ブレードサーバの筐体に収納するサーバブレードのように、1つずつが、サーバに装着されるとサーバの一部を構成して動作可能となるユニットであって、CPU、メモリ、ハードディスク、回線等のリソースを有するものとして準備されてもよい。
【0104】
「サービスボックス」がソフトウェアだけの場合は、所定の仕様のハードウェアが準備されている環境へ自動インストールされるようなオートブート機能を含むCDやDVDのような形で準備されると便利である。このソフトウェアが自動インストールされると、既存のサーバ(DC)内に、サービスボックスに相当する仮想サーバ空間が、仮想的に形成されることになる。
【0105】
エンドユーザ収容DCの運用者は、自社の事業として、新たなサービスをエンドユーザへ提供しようとした場合、複数あるサービスアンカーDCの多数のサービスのうちのいずれのサービスを自社で提供するか、決めることができる。エンドユーザ収容DCの運用者が、あるサービスを自社で提供することを決めた場合、そのサービスのサービスアンカーDCの運用者と必要に応じてサービス提供に関する契約を結び、当該サービスアンカーDCの運用者が準備している「サービスボックス」を購入し、その「サービスボックス」をエンドユーサ収容DC上に設置すれば、エンドユーザ収容DCにおいて当該サービスのプロバイダ・プレーンが動作して、サービスアンカーDCと通信し、エンドユーザ収容DCがエンドユーザへサービスを提供することが可能になる。
【0106】
このため、サービスボックスには、サービスアンカーDCへアクセスするための情報(サービスアンカーDCのアドレス等と、中継DCを経由するのであれば中継DCのアドレス等とを含む情報)と、プロバイダ・プレーンを実現するソフトウェアとが予め含まれている。このソフトウェアには、プロバイダ・プレーンの実体のほかに、当該プロバイダ・プレーンをエンドユーザ収容DCに組込む初期段階で使用される自動プレーン追加構成ソフトウェアを含んでもよい。
【0107】
また、サービスアンカーDCへアクセスするための情報には、サービスアンカーDCならびに当該サービスのオリジン・プレーンへログインするための情報や、当該サービスの利用情報を格納するサービスアンカーDC内の場所を特定するための情報等を含んでもよい。
【0108】
サービスボックスが設置される前のエンドユーザ収容DCを、仮想化ミドルウェアがインストールされているものとしておけば、複数のエンドユーザ収容DC用に準備するプロバイダ・プレーンは、それらのDCが異なるOS(ホストOS)等を採用するものであっても、共通のソフトウェアで実現することができる。
【0109】
サービスボックスには、さらに、そのサービスの提供のために追加的に必要となるリソースをエンドユーザ収容DCに補充するため、サービスアンカーDCの運用者が決めたスペックのハードウェアを含んでいてもよい。サービスボックスが設置される前のエンドユーザ収容DCを、仮想化ミドルウェアがインストールされているものとしておけば、どのようなハードウェアをサービスボックスに含ませても、エンドユーザ収容DC用においてそのハードウェアを自身のリソースに追加することができる。
【0110】
サービスアンカーDCへ至るまでに経由する中継DCの情報や、サービスの提供のために追加的に必要となるリソースは、それぞれのエンドユーザ収容DCによって、異なる可能性がある。このように各エンドユーザ収容DCに固有のものは、そこへ配布するサービスボックスに含ませておくことにより、後でサービスアンカーDC側から配信するSAは、複数のエンドユーザ収容DCに共通のものとすることができる。
【0111】
新たにサービスの開始を決めたエンドユーザ収容DCの運用者は、その新たなサービスのための特別なハードウェアやソフトウェアを自ら用意しなくとも、所定のリソースを満たす仮想化ミドルウェア環境を全てのサービスに共通なものとして準備しておけば、その上に新たに購入したサービスボックスを設置するだけで、エンドユーザへサービスを提供することができる。
【0112】
さらに、どのサービスも同じ仮想化環境上で提供できるということは、エンドユーザ収容DCの運用効率が向上することを意味する。
【0113】
また、サービスボックスがハードウェア込みで提供される場合、そのハードウェアが最適化されて自動で設置先の環境に組み込みされるようにサービスボックスを作成しておけば、エンドユーザ収容DCの運用者には、ソフトウェアだけでなくハードウェアも含めて、当該サービスを運用してゆくための専門的技術知識や運用ノウハウなどが不要となり、さらに事業者負担を減らすことができる。
【0114】
こうしたサービスボックスの特徴は、エンドユーザへのサービス提供の接点となる中小の事業者(例えば、地域限定のケーブルテレビ事業者やインターネット事業者等)が、自社のユーザ(エンドユーザ)に提供するサービスのセットに、事業者毎の自主性を持たせることを可能にする。
【0115】
サービス提供主から依頼をうけたサービスアンカーDCの運用者は、上記の「サービスボックス」を準備する一方で、サービスアンカーDC内にオリジン・プレーン及びSAのオリジナルを準備するが、このとき、「サービスボックス」を購入した者が運営するエンドユーザ収容DC及びそこへ至るまでの中継DCの情報(エンドユーザ収容DCのアドレス等と、中継DCを経由するのであれば中継DCのアドレス等とを含む情報)を、オリジン・プレーンが参照できる情報として格納しておく。
【0116】
本システムでは、各サービスに係るアプリケーションの張り出しが、そのサービスのサービスアンカーDCにより中央集権的に制御されるが、その制御の際にサービスアンカーDCが参照するのが、上記で格納されたエンドユーザ収容DC及び中継DCの情報である。サービスアンカーDCでは、全ての出現し得るエンドユーザ収容DC及びそこへ至る経路を把握できるため、途中の中継DCでミラーリングデータを保持すべき期間を計算したり、マイグレーション中継のために必要なリソースを予測したりすることができる。
【0117】
上述したアプリケーション配信条件情報は、これらの計算ないし予測に基づいて、サービスアンカーDCが作成することができるものである。また、当該サービスのマイグレーション中継のために必要なリソースについては、サービスアンカーDCの運用者から各中継DCの運用者へ、前もって伝えられ、各中継DCの運用者は、実際にそのサービスのマイグレーションが始まる前に、リソースを共有する他のサービスとの関係を考慮して、リソースが不足しそうであれば補充しておく。
【0118】
以下には、各プレーンの詳細な動作の一例を、フローチャート(図5〜図9)及び説明図(図11〜図18)を用いて記述する。
【0119】
オリジン・プレーンは、サービス毎に一つ設けられ、プロバイダ・プレーンは、サービス毎に設けられるオリジン・プレーン一つに対し、複数設けられることが可能であり、ミラー・プレーンは、複数のサービスから共有されることが可能である。
【0120】
まずは、図10を用いて、各プレーンによるコンピューティングリソースの利用について説明しておく。
【0121】
個々のサービスは、アプリケーションプログラム(AP)と、そのアプリケーションの動作するOS(ゲストOS)、そしてそのサービスがエンドユーザによって選択され動作するときに利用されるデータ(Data)で構成される。
【0122】
例えば、図示するように、サービスAについて、中央DCが提供元(サービスアンカーDC)になる場合、サービスアンカーDCには、その提供サービスの配信元になるオリジン・プレーンがある。エンドユーザの接続を持つ末端DCには、プロバイダ・プレーンが、アプリケーションやデータを中継する中間DCには、ミラー・プレーンが、存在する。1つのサービスについて、これら3つのプレーンがつながった1つのサービス・プレーンが、仮想化空間として形成される。
【0123】
アプリケーションA、B,Cは、アプリケーションのオリジナルの存在する中央DCから、途中の中間DCでミラーされながら、各末端DC(図示した末端DCは、サービスA,Bを選択している)まで移動され、エンドユーザが接続してくる末端DCにアプリケーションのコピーが存在する状態になる。
【0124】
図示した例では、アプリケーションとOSが一体化したSAが、そのサービスについての仮想化空間であるサービス・プレーン上を、あたかも張り出していくような動きで、移動する。その移動の中継をするミラー・プレーンは、他のサービスについても同様に移動の中継を行う。つまり、ミラー・プレーンは、複数の中継対象のアプリケーション(ここではA,B,C)から共用され、中間DCのリソースを複数のアプリケーションにより共有して利用する。
【0125】
上述した移動の制御権は、ミラーリングデータが作られたりアプリケーションのコピーが作られたりするミラー/プロバイダプレーンより、上位のプレーンにある。よって、末端DCで提供されているサービスであっても、そのサービスの制御として、例えば、利用者へのメニュー表示制御、入力制御、課金制御等を、サービスの提供元であるサービスアンカーDCのオリジン・プレーンが行うようにすることができる。
【0126】
オリジン・プレーンは、サービスの提供元として、個々のSAのオリジナル、全プログラムデータ、各エンドユーザのサービス利用記録が格納蓄積されるエンドユーザプロファイル・データベースを管理対象として含む。そして、個々のサービスのプログラムと全データ分のリソース容量を、占有的に確保宣言する。
【0127】
ミラー・プレーンは、オリジンからプロバイダへの橋渡しをする領域を、リソース共有領域として保有する。これは、オリジンから移動の命令とともに受け取るはずの複数のSA及びそのデータの転送のための領域であり、定常的に共用される。
【0128】
もしサービスAが、上位のオリジン・プレーンから下位のプロバイダ・プレーンへ移動している最中(「オリジンからミラーへのコピー時間t1+ミラーからプロバイダへのコピー又は移動時間t2」の間)だとすると、サービスAのために利用されているミラー・プレーンの領域は、その間は優先度が上がり他のサービスには利用できない。
【0129】
しかし、サービスAについて、オリジンからのコピー(移動元にオリジナルが残り移動先にコピーがある状態にする移動)と次の配下のミラー又はプロバイダ・プレーンへのコピー又は移動が終わった状態だとすると、ミラー・プレーンの領域は、サービスAの受信用かつ送信元用に利用していたリソースのうちコピー保持に必要な最小限の領域を残して、A以外の他のサービスのミラーリング処理のために割り当てられることが可能となる。
【0130】
プロバイダ・プレーンは、自身の上で稼動するサービスの「サービス利用者数×利用率×コンテンツ容量」を計算し、この計算に基づくリソース容量(一定の値を超える容量)を占有的に確保宣言する。図10では、エンドユーザ収容DCに、SAのコピーは存在しているがデータのコピーは未だ受け取っていない状態を図示しているが、SAもデータもマイグレーションされてくる前に、リソースの占有宣言を行う。この占有宣言は、サービスボックス設置時に自動的に行うように構成することができ、それにより、サービス開始時や廃止時にはサービスボックスの設置を付けたり外したりするだけで末端DCのリソース割り当ての運用が済むという手軽さが実現できる。
【0131】
ここでの占有とは、物理的な領域の確保ではなく、仮想化環境下での最大利用時のCPU、メモリ、ハードディスクの割り当て量の宣言とすることができ、実際にその稼動状況が最大値にいたらなければ、他のサービスへリソースをまわす(各プレーンが自らのプレーン内だけでなく他のプレーンへもリソースを融通する)ことができる。
【0132】
本システムでは、仮想化資源を共有利用することのできる仮想化環境の上に、サービス毎に、サービス・プレーンという配信基盤を構築し、1つのサービス・プレーンが3種類のプレーンから形成されるようにして、層状の木構造を構成することができる。
【0133】
図5及び図11は、あるサービスのサービスアンカーDCの配下で、エンドユーザ収容DCとなるDCにサービスボックスが設置されたときの動作の一例を説明する。
【0134】
サービスアンカーDCの運用者は、これに先立って、サービスボックスを準備して、エンドユーザ収容DCとなるDCの運用者に渡している(S300)。
【0135】
サービスボックスは、例えば、仮想化環境を考慮して容量計算されたハードウェアリソースとして存在する物品であり、その中には、後の工程で移動してくるSAが一定の数のエンドユーザに向けてサービス提供を行うために必要とするリソースと、プロバイダ・プレーンという仮想環境とが含まれる。また、サービスアンカーDCの場所と、そこへの自動アクセスツールも含まれる。
【0136】
サービスボックスに含めるリソースの容量は、サービス利用者数、利用率、コンテンツ容量等をパラメータとして計算することができる。例えば、途中でのアンケート機能付の動画ドラマ配信というサービス(韓国ドラマa、日本ドラマb等のコンテンツがサービス内のメニューで用意される)の場合、同時にそのサービスを利用する人数、双方向の機能であるアンケート機能の利用率、メニューとして提供される個々のコンテンツの容量等を計算式への変数として、特定条件下(最もアクセスの多そうな曜日や時間など)で一定の基準(レスポンスタイム)を満たすようなリソース(CPU性能、メモリ容量、HDD容量、回線バンド幅ほか)を計算し、サービスボックスに含めておく。
【0137】
サービスボックスがエンドユーザ収容DCとなるべきDCに設置されると、自動的に自身をそのDCに組み込む機能を有しているプロバイダ・プレーンは、その組み込みの際に、一定の値を超える容量のリソースを占有的に確保宣言するが、そこで占有宣言されるリソースの容量と、サービスボックスに含められたリソースの容量は、同じであってもよいし、異なっていてもよい。
【0138】
すなわち、サービスボックスには、サービスアンカーDCで把握している利用者数や利用率に基づいて計算されるリソース容量が含まれるが、エンドユーザ収容DCの方が利用者(エンドユーザ)について精度の高い予測ができるのであれば、その予測に基づいて定められる容量のリソースを占有宣言すればよい。前者が後者より少ない場合には、プロバイダ・プレーンは、サービスボックスのリソースにDCのリソースを加えて占有するし、前者が後者より多い場合には、サービスボックスのリソースのうちの一部を占有し、残りの部分はDCで行われる他の処理に利用されることになる。
【0139】
そして、サービスボックスがエンドユーザ収容DCへ渡される一方で、オリジン・プレーンは、初期設定として、次の動作を行っている(S305)。
【0140】
オリジン・プレーンは、自身が組み込まれたサービスアンカーDCにおいて、自身が担当するサービス(図11では、サービスA)の提供のための所定のリソースを確保宣言し、そのリソースを利用して、自身の上にサービスAを提供するためのSAを常駐させる。また、サービスAについてエンドユーザ収容DCとなるべきDCの情報を(間に中継DCがある場合はその情報も)、格納しておく。
【0141】
そして、オリジン・プレーンは、サービスAについてプロバイダ・プレーンから後述の終了時還流又は随時還流してくる利用情報を格納する特定の場所を、自身が組み込まれているDCが利用できるハードディスク等に定める。この格納場所は、物理ディスクとして定められてもよいし、物理ディスク名でない別名のディスクボリュームとして認識され、遠隔地に存在してもよい仮想ディスクとして定められてもよい。
【0142】
また、ストレージの仮想化技術を用いてもよく、その場合は、格納場所についての仮想ディスクと物理ディスクのマッピングテーブルを生成し、オリジン・プレーンの利用するディスクを仮想ディスクとしてSAにマウントし、状態を管理するようにして、プロバイダ・プレーン上で動作するSA(コピー)からもそのディスクが利用されるようにする。
【0143】
その後、オリジン・プレーンは、エンドユーザ収容DCのプロバイダ・プレーンから呼び出され、ログインを受け付ける(S310)。このように受付されたプロバイダ・プレーンに対しては、以降、アプリケーションのバージョンアップやパッチの供給等があった場合に、自動アップデートのためのメッセージ等を送信したり、新しいデータが登録された場合に、新着通知メッセージ等を送信したりする。
【0144】
上述したようにオリジン・プレーンにより初期設定が行われる一方で、サービスボックスが設置されたエンドユーザ収容DCにおいては、プロバイダ・プレーンが、自身が搭載されているサービスボックスがDCに設置されたことを検出し(S100)、次のように初期設定を行う(S105)。
【0145】
プロバイダ・プレーンは、設置先のDC(エンドユーザ収容DC)の環境変数を取得し、このDCのリソースプールに、サービスボックスの有するリソースを追加する。そして、サービスボックスを含むDCのリソースプールの中から、自身が担当するサービスの提供のための所定のリソースを確保宣言する。これにより、プロバイダ・プレーンが、設置先のDC内に形成され、リソースを利用した動作(他のDCとの接続を含む)を行うことが可能になる。
【0146】
その後、プロバイダ・プレーンは、サービスボックス内に予め格納されている「サービスアンカー」の情報を参照し、そのサービスアンカーが存在するDCへ(中継DCの情報も書き込まれている場合はそのDC経由で)接続し、該当するオリジン・プレーンを呼び出し、ログインする。これにより、プロバイダ・プレーンとオリジン・プレーンが(中継DCを挟む場合はミラー・プレーン経由で)通信可能になり、一つのサービス・プレーンが出現する。例えば、プロバイダ・プレーン内で発生したエラーやアラートは、オリジン・プレーンへ通知される。
【0147】
次に、プログラムのマイグレーションが行われる段階になると、オリジン・プレーンは、エンドユーザ収容DCのプロバイダ・プレーンから、SAのマイグレーション要求を受け取る(S315)。なお、オリジン・プレーンは、ログインを受け付けた際に(S310)、下記のマイグレーションのための準備を開始することにより、マイグレーション要求に対する応答を早めるようにしてもよい。
【0148】
オリジン・プレーンは、上記の要求に応じて、自身の上に常駐させたSAを、エンドユーザ収容DCのプロバイダ・プレーン上へ(間に中継DCがある場合はミラー・プレーン経由で)、マイグレーション(移動)する(S320)。マイグレーションされるSAには、マイグレーションの経路や途中のミラー・プレーンでのアプリケーションの保持について指示する情報として、アプリケーション配信条件情報を付加する。このアプリケーション配信条件情報の付加が、マイグレーションのための準備に含まれる。
【0149】
DC間でSAを移動させる処理は、静的に行ってもよいし(コールド・マイグレーション)、動的に行ってもよい(ホット・マイグレーション)。
【0150】
コールド・マイグレーションの場合は、オリジン・プレーン上のSAが稼動中であれば一旦停止させ、SAをエンドユーザ収容DCへダウンロードしてSAのコピーを作り出し、そのSAのコピーをプロバイダ・プレーン上で起動する。
【0151】
サービスアンカーDCとエンドユーザ収容DCの両方で同じSAを走らせるべきサービスについては、オリジン・プレーン上のSAは、上記ダウンロードのためのサービスアンカーDCにおける作業が終わった時点で、稼動を再開する。
【0152】
コールド・マイグレーションで足りるのは、後同期型アプリケーションで構成されるSAの場合であり、オリジン・プレーン上で稼動するSAに比べて、プロバイダ・プレーン上で稼動するSAのコピーは、古い状態をとることになる。
【0153】
そこで、マイグレーション後は、エンドユーザ収容DCにおけるSAのコピーのサービスアンカーDCのSAに対する差を時々解消するように、例えば、任意の時間間隔で、サービスアンカーDCから当該サービスに係るプロバイダ・プレーンを有するエンドユーザ収容DCへ、同期をとるための差分(パッチ)やバージョンアップソフトウェアが一斉に配信される。
【0154】
ホット・マイグレーションの場合は、オリジン・プレーン上で稼動中のSAを停止させることなく、また、そのSAとエンドユーザの端末との間で通信のためのセッションが張られている場合には、そのセッションを途切れさせることなく、SAのコピーを徐々にエンドユーザ収容DCに作り出していき、完全なコピーができると、オリジン・プレーン上のSAからプロバイダ・プレーン上のSAのコピーへ、サービス提供の制御権が移る。
【0155】
サービスアンカーDCとエンドユーザ収容DCの両方で同じSAを並列に(ほぼ同時に同じ状態をとるように)走らせるべきサービスについては、プロバイダ・プレーン上のSAのコピーへサービス提供の制御権が移った後も、オリジン・プレーン上のSAはそのまま残存して動作し続け、管制権も持ち続ける。
【0156】
ホット・マイグレーションが有効なのは、随時更新型アプリケーションで構成されるSAの場合であり、サービスアンカーDCで稼動するSAとエンドユーザ収容DCで稼動するSAのコピーとの差は、ほとんど生じない。
【0157】
そして、マイグレーション後も、十分に短い間隔で、サービスアンカーDCからエンドユーザ収容DCへ、同期のための確認情報(例えば、プログラムのカウンターに相当する状態を一意に示すデータ等)が送信され、この確認情報を受信したプロバイダ・プレーンは、SAのコピーの状態管理と照らして差分があると判断される場合、差分量をサービスアンカーDCへ送信することにより、最新状態になるようプログラムの送信要求をする。サービスアンカーDCは、要求を送信してきたエンドユーザ終了DCへ、差分量に相当するプログラムの状態を送信する。
【0158】
SAが仮想マシンである場合、動的なマイグレーションのためには、例えば、VMware社のVMotionや、Xenのライブ・マイグレーション機能を使用することができる。
【0159】
なお、SAの自動アップデートをするときにも、最初にSAを配信するのと同様の動的なマイグレーションにより、バージョンアップやパッチを各エンドユーザ収容DCへ配信してもよい。
【0160】
プログラムのマイグレーションが行われる際の、プロバイダ・プレーンの動作は、次のとおりである。
【0161】
まず、プロバイダ・プレーンは、サービスボックス内に予め格納されている「マイグレーション元」(サービスアンカーDCの場合もあれば、中継DCの場合もあってよい)の情報を参照し、そのマイグレーション元のDCへ(そこへ至るまでに経由するDCの情報も書き込まれている場合はそのDC経由で)、SAのマイグレーション要求を送信する(S115)。
【0162】
その結果として、SAの静的もしくは動的なマイグレーションを受けると、先に確保宣言したリソースを利用して、自身の上にSA(コピー)をセットアップし、動作を開始させる(S120)。なお、サービスアンカーDCで付加されたアプリケーション配信条件情報が途中のミラー・プレーンで削除されずに、SA(コピー)に付随して受け取られた場合は、付随情報を削除する。
【0163】
ミラー・プレーンは、アプリケーションが稼働中のまま止まらない状態での多段の移動を実現するために、自身より上位(サービスアンカー側)と下位(エンドユーザ側)の接続プレーンに対して、移動の状態を管理しながらアプリケーションを移動させる機能を持っている(S220)。
【0164】
ミラー・プレーンが上位から受け取るアプリケーションに付加された(最初はサービスアンカーDCで付加される)アプリケーション配信条件情報には、例えば、(1)そのアプリケーションの識別子、(2)途中通過するミラー・プレーンを持つDC名、(3)そのミラー・プレーンでアプリケーションが保持される(コピーがそのまま保持される)期間又は消去される(当該ミラーから次のミラーへの移動のためのコピーが終了した時点で当該ミラーのコピーが消去される)のかの指示情報が、通過するミラー・プレーンの数の分、(4)保持する場合の最小占有ミラー領域リソース量、(5)最終到達DCとなるプロバイダ・プレーンを持つDC名、が含まれている。
【0165】
ミラー・プレーンは、アプリケーションの移動に関して状態管理を行い、自身と下位への指示を行う。ミラー・プレーンは、上位プレーンからコピーされてきている時間t1が終了したことを確認後、すぐに配下のプレーンへ同アプリケーションのコピー又は移動を開始する。つまり、t1終了後できるだけ短時間で、下位プレーンへのコピー又は移動を行う時間t2が開始されるよう、連続したコピー処理を実現する。このため、ミラー・プレーンは、上位プレーンから自身へのアプリケーションのコピー作業中に、アプリケーション配信条件情報を指示命令として受け取り、次の下位プレーンの場所情報を準備して、上位からのコピーの完了を待つ機能を有するとよい。
【0166】
具体的には、ミラー・プレーンは、上位のプレーンからアプリケーション自動移動のミラー先として自身が指定された移動実行の命令を受け取ると、まずアプリケーション配信条件情報を取り出し、さらに予め準備してある共通領域へ、上記アプリケーション配信条件情報付きのアプリケーションを格納し始める。格納がすべて終わると、ミラー・プレーンは、上記アプリケーション配信条件情報に従って、次のミラー又はプロバイダをアプリケーション自動移動先として指定し、移動実行の命令を自身及び下位の移動先プレーンの双方へ出す。
【0167】
自身から下位の移動先へのコピーが終了した時点で、上記アプリケーション配信条件情報が消去を指定している場合は、自身(ミラー・プレーン)にあるアプリケーションのコピーは消去される(結果として、移動のみとなる)。上記アプリケーション配信条件情報が保持期間を指定している場合は、ミラー・プレーンの共通領域に格納されているアプリケーションのコピーはそのまま格納された状態となる(S225)。
【0168】
以上のように、本システムにおけるプログラムのマイグレーションは、自分より上位のDCのプレーンからの移動命令をうけて、SAがサービスアンカーDCからエンドユーザ収容DCへ移動するもので、サービスアンカーDCを最上とした上位から下位方向への制御が行われる。つまり、サービス提供元であるサービスアンカーDCに、プログラムの移動の経路やタイミングを制御する権限があり、複数のエンドユーザ収容DCに対するサービス提供の全体を統括することが可能である。
【0169】
よって、サービスアンカーDCから当該サービスに係るプロバイダ・プレーンを有する全てのエンドユーザ収容DCへ、例えば、季節に合わせて、一斉に新しいプログラムを配信することができ、随時のサービス機能追加等が、サービス提供主からのSAの提供を受けるオリジン・プレーンが存在する一箇所のDCで、全てのプロバイダ・プレーンへの命令として実行できる。
【0170】
また、一箇所から広がる命令でプログラムのマイグレーションをすることにより、随時更新型のアプリケーションについて、最新状態を維持しながらプログラムの分散配置が可能となり、例えば、中央DCで稼動しているプログラムと末端DCで稼動している同じプログラムとの間で、プログラムの動作結果がずれてしまう非同期性を最小にすることができる。
【0171】
図6及び図12は、ミラー・プレーンは事前に存在しているがサービスAのプロバイダ・プレーンを持たない中間DCの配下の末端DCで、サービスAのサービスボックスが設置されたとき(S400)の動作の一例を説明する。
【0172】
図5及び図11の場合と同様に、末端DCにサービスボックスが設置されることで自動的にプロバイダ・プレーンが形成され(S405)、「サービスアンカー」情報が示すオリジン・プレーンへのログインがミラー・プレーン経由で行われ(S410)、「マイグレーション元」情報が示すプレーン(この場合は、サービスアンカーDCである中央DC)へのSA移動要求がミラー・プレーン経由で伝えられる(S415)。
【0173】
図6及び図12の場合は、サービスAのためのSAの自動移動が最初からミラー・プレーンの中継機能を利用して行われることが分かっているため、末端DCに設置されるサービスボックスには、サービスアンカーが中央DCであるという情報に加えて、サービスアンカーまでの経路途中にミラー・プレーンがあるということとその場所(パス)の情報が、予め仕込まれている。
【0174】
また、この場合のミラー・プレーンには、配下のプロバイダ・プレーンの規模やサービス視聴率などを取り込んだ予測計算式に従って事前に割り出されたリソース容量が、人手で、下位のDCにサービスボックスが設置されるのに先立って、組み込まれている(S205)。
【0175】
プロバイダ・プレーンにおけるリソースの事前の容量計算と同様に、但し、プロバイダ・プレーンの対象がエンドユーザであるのに対して、ミラー・プレーンの対象が下位のDC(エンドユーザ収容DC又は中継DC)点は相違させて、ミラー・プレーンに組み込むべきリソース容量を事前計算することができる。例えば、サービス利用DC数、利用率、コンテンツ容量等をパラメータとして計算する。
【0176】
ここで、ミラー・プレーンが、プロバイダ・プレーンからサービスアンカーDCへのSA移動要求を受け取ったとき、既に同じサービスのSAを他のプロバイダ・プレーンへ向けて移動させる作業を行っており(S240、S245)、且つ、その際にオリジン・プレーンから所定期間ミラーリングデータ(SAのコピー)を保持するように指示されていたとする。
【0177】
その場合、ミラー・プレーンは、SAのコピーを(動的なマイグレーションの場合は稼動させたまま)保持しており(S250)、オリジン・プレーンから指定された保持期間が経過すると(S255)、そのSAのコピーを消去する(S260)。
【0178】
そして、ミラー・プレーンは、プロバイダ・プレーンからサービスアンカーDCへのSA移動要求を受け取ったとき、SAのコピーが保持されている間であれば(S230)、その要求をサービスアンカーDCへ転送せずに、自身から下位のプレーンへSAのコピーを移動させる作業を行う(S235)。
【0179】
その場合に下位のプレーンへ移動させるSAのコピーに付加すべきアプリケーション配信条件情報は、以前にそのミラーリングデータを上位のプレーンから受け取ったときの情報に基づいて作成できるようにしてもよいし、サービスアンカーDCが、以前に中継DCに作成したミラーリングデータについて、新たにアプリケーション配信条件情報を作成して別途中継DCへ送信するようにしてもよい。
【0180】
また別の方法として、ミラーリングデータの保持期間を「2007年10月10日まで」のように指定しておき、サービスボックスに予め格納する「マイグレーション元」の情報が、上記の保持期限までは中継DC、それ以降はサービスアンカーDCを指示するようにしておいてもよい。その場合、ミラー・プレーンは、ミラーリングデータ保持期間中は、自身に対するSA移動要求を受け取って下位のプレーンへSAのマイグレーションを行い、期間経過後は、サービスアンカーDCに対するSA移動要求を受け取って上位のプレーンへ転送することになる。
【0181】
図7及び図13、図14は、サービスAのプロバイダ・プレーンを持ってエンドユーザへサービスを提供している中間DCの配下の末端DCで、サービスAのサービスボックスが設置されたとき(S500)の動作の一例を説明する。
【0182】
なお、この場合、中間DCに接続するエンドユーザと、末端DCに接続するエンドユーザとは、異なる利用者であると想定できるが、同じエンドユーザが中間DCへも末端DCへも接続して、いずれの経路でも同じサービスAの提供を受けられるようになっていてもよい。
【0183】
図5及び図11の場合と同様に、末端DCにサービスボックスが設置されることで自動的にプロバイダ・プレーンが形成され(S505)、「サービスアンカー」情報が示すオリジン・プレーンへのログインがミラー・プレーン経由で行われ(S510)、「マイグレーション元」情報が示すプレーンへSA移動要求が送られる(S515)。
【0184】
図7及び図13の場合は、サービスボックスに予め格納された「サービスアンカー」情報が示すDCと、「マイグレーション元」情報が示すDCとが異なっており、SA移動要求の方は、中間DCに対して送られることになる。そして、中間DCのプロバイダ・プレーンは、末端DCのプロバイダ・プレーンに対し、オリジン・プレーンに代わってプログラムのマイグレーションを行う。
【0185】
具体的には、中間DCのプロバイダ・プレーンは、サービスアンカーDCから見て自身よりもエンドユーザ寄りのDCに、自身の上で動作しているSA(コピー)と同一のサービスに係る「サービスボックス」が設置されて、新たにエンドユーザ収容DCが出現した場合、その新たなエンドユーザ収容DCのプロバイダ・プレーンから、SAのマイグレーション要求を受け取る(S135)。
【0186】
中間DCのプロバイダ・プレーンは、上記の要求に応じて、自身の上で動作しているSA(コピー)を、新たなエンドユーザ収容DCへ、マイグレーション(移動)する(S140)。マイグレーションの処理は、オリジン・プレーンがプロバイダ・プレーンに対して行うものと同様である。
【0187】
新たなエンドユーザ収容DCのプロバイダ・プレーン上には、SA(コピー)のコピーが作り出されてセットアップされ、新たなDCが配下とするエンドユーザ端末へのサービス提供が可能になる(S520)。一方で、中間DCのプロバイダ・プレーン上で動作しているSA(コピー)は、そのまま動作を続け、元々当該中間DCが配下としている(新たなDCが配下とするエンドユーザ端末とは異なってよい)エンドユーザ端末へのサービス提供は継続する。
【0188】
図14に示すように、上記の機能を有するプロバイダ・プレーンが組み込まれるDCには、ミラー・プレーンも組み込まれており、プロバイダ・プレーンは、最初だけ、SAのマイグレーションの配信元として機能し(図13)、以降は、ミラー・プレーンが、サービスアンカーDCからの中継機能を果たす(図14)。
【0189】
すなわち、新たなエンドユーザ収容DCのプロバイダ・プレーンは、自動アップデートのための情報や、初期データ、最新データ等については、プログラムのマイグレーション元である本DCではなく、サービスアンカーDCから受け取るため、これらをサービス・プレーン上で配信する場合は、本DCは、サービスアンカーDCと新たなエンドユーザ収容DCとの間に位置する中継DCとして働くことになる。
【0190】
このため、サービスAを末端DCで運用した場合に中間DCで準備すべきリソースの容量を、末端DCのプロバイダ・プレーンの規模やサービス視聴率などを取り込んだ予測計算式に従って事前に割り出しておき、その分のリソースを、人手で、末端DCにサービスボックスが設置されるのに先立って追加し、リソースプールを拡充しておく。
【0191】
拡充されたリソースプールは、ミラー・プレーンが複数のサービスについて共用する部分となる。よって、サービスAのミラー用に追加するリソースは、サービスA専用に準備する場合よりも少なくてよく、既存のサービスBのミラー用のリソースも利用できる。
【0192】
このように、プロバイダ・プレーンに、オリジン・プレーンの一部に代わる機能を設けるのは、プログラムのマイグレーションについても、サービスアンカーDCへの負荷集中を軽減するためである。なお、後述するように、初期データや動的データについては、P2Pネットワーク等の配信技術を用いることで、負荷集中を軽減することも可能である。
【0193】
以上に詳述した一連の自律し自動化された分散型の配信機能が実現することにより、サービスアンカーDCへのアプリケーション要求の負荷集中を避けることができるとともに、エンドユーザへのサービス提供を行いたい(プロバイダ・プレーンを導入したい)末端や中間DCへの技術者準備などの運用負担がかからないようにすることができる。
【0194】
また、アプリケーションプログラムとデータを別々のタイミングと方式で配置ないし配信することができるため、アプリケーションの応答性が向上し、また、エンドユーザへの動的データ配置が可能になり、ネットワークの混雑の平準化が図られる。
【0195】
図8の前半及び図15は、プログラムのマイグレーション後に、初期データをマイグレーションする動作の一例を説明する。
【0196】
本システムでは、1つのサービスにより複数のコンテンツ(データ)を提供することができ、これらのコンテンツは、利用者にはメニュー名のような形式で見える。例えば、「ビデオ通信教育」というサービスの中に、「クイック料理」というメニューがある形式である。ここでは、そうした提供メニューの1つがコンテンツ(データ)としてサービスアンカーに登録された後の各プレーンの動きを説明する。
【0197】
オリジン・プレーンは、自身の上で動作しているSAから利用されるコンテンツ等のデータを、自身の上に登録する(S330)。あるサービスのコンテンツを登録する場合、コンテンツ自体のデータに加えて、サーバ名、サービス種類(例えば、動画配信、オンラインゲーム、テレビ電話通信等)、サービスポート(例えば、TCP/IPのポート番号)、利用するリソースなどのパラメータが、関連情報として登録される。これらの関連情報を含めて、以下に述べるマイグレーション対象のデータとなる。
【0198】
そして、オリジン・プレーンは、ログインの受付がされたエンドユーザ収容DCのプロバイダ・プレーンに対し(間に中継DCがある場合はミラー・プレーン経由で)、登録されたデータに関する情報(例えば、タイトルや簡単な内容説明、利用するリソース等)を新着情報として通知する(S335)。
【0199】
プロバイダ・プレーンは、ログインしたサービスアンカーDCのオリジン・プレーンから新着情報の通知を受け取り、新着情報を表示する(S150)。そして、エンドユーザ収容DCの運用者が新着のデータをそのサービスでエンドユーザに対して提供するデータとして選択すると、データの送受信のためのリソースを確保した上で、サービスアンカーDCのオリジン・プレーンへ、データの呼び出し要求を送信する(S155)。
【0200】
データ配信をサービス・プレーンに沿って行う場合は、データの呼び出し要求も、サービスボックス内に予め格納されている「サービスアンカー」情報で特定される中継DCのミラー・プレーンを経由するように、経路情報を付加して送信するとよい。サービス・プレーンと関係なくデータ配信する場合は、データの呼び出し要求も、宛先となるサービスアンカーDCを特定して送信するだけで構わない。
【0201】
オリジン・プレーンは、エンドユーザ収容DCのプロバイダ・プレーンから、データの呼び出し要求を受け取る(S340)と、要求に応答して、例えば、経時的に変化しない初期データのコピーをエンドユーザ収容DCに作り出す(S345)。これは、初期データを静的にダウンロードして実現するのでもよいし、オリジン・プレーン上で稼動中のSAから利用され続けている初期データのコピーを徐々にエンドユーザ収容DCに作り出す動的なマイグレーションで行ってもよい。
【0202】
プロバイダ・プレーンは、送られてきた初期データを受け取り、その初期データ(コピー)を自身の上で動作しているSA(コピー)から利用できるようにする(S160)。
【0203】
本システムでは、アプリケーションプログラムを含むSAは、オリジン・プレーンとプロバイダ・プレーンと間に中継DCがある場合はミラー・プレーンとから仮想的に形成される一つのサービス・プレーン上を移動するようにしているが、データの配信に関しては、サービス・プレーン上で行ってもよいし、サービス・プレーンと関係なく行ってもよい。
【0204】
サービス・プレーン上で行う場合は、サービスアンカーDCが、配信すべきデータに、配信経路(経由すべき中継DC及びエンドユーザ収容DC)を特定する情報や、必要に応じて途中のミラー・プレーンでのデータの保持に関し指示する情報を付加して送出する。
【0205】
そして、プロバイダ・プレーンからデータの呼び出し要求を受けたミラー・プレーンは、ミラーリングデータを保持していない場合は、データの呼び出し要求をサービスアンカーDCへ転送し(S276)、上位のプレーンからデータのコピーを受け取って中継する(S278)が、保持していれば(S272)、サービスアンカーDCへデータの呼び出し要求を転送することなく、自身から下位のプレーンへそのデータのコピーを渡す(S274)ようにしてもよい。
【0206】
初期データの容量が大きければ、プログラムの配信と同様に、ミラー・プレーンの機能を使って、サービス・プレーン上で転送するのが好ましいが、容量の小さいデータ(後述の動的データを含んでもよい)の場合には、サービス・プレーンと関係なく配信する方が、サービスアンカーDCとエンドユーザ収容DCの間の非同期性をより小さくできることがある。
【0207】
サービス・プレーンと関係なく行う場合は、データ配信の宛先となるエンドユーザ収容DCさえ特定して送出すれば、ネットワークが自律的にデータを転送することになる(サービス・プレーンを形成する中継DCを経由せずに転送される場合もある)ため、その時々で最適な配信経路が形成されるIPマルチキャストやP2Pネットワーク等のオーバーレイ・ネットワークの技術を組み合わせて利用することも可能であり、それにより、ネットワークの輻輳低減を図ることも可能になる。宛先となるエンドユーザ収容DCが多数の場合、例えば、TVBank社のgridvodと呼ばれるストリーミング型VoD配信システムの技術を使ってデータを配信すると、比較的簡単に、サービスアンカーDCへの負荷集中を軽減することができる。
【0208】
図8の後半及び図16は、プログラム及び初期データのマイグレーション後に、最新データを配信する動作の一例を説明する。
【0209】
プロバイダ・プレーンは、自身の上で動作しているSA(コピー)から利用できるデータを、例えば、メニュー形式で、エンドユーザに対して提示する(S165)。エンドユーザがその中からサービス提供して欲しいデータを選択すると、プロバイダ・プレーンはその選択されたデータの初期データ(既にエンドユーザ収容DCにコピーがある)を呼び出すとともに、サービスボックス内に予め格納されていた「サービスアンカー」の情報が示すDCのオリジン・プレーンへ、選択されたデータにつき、最新データの転送要求を送信する(S170)。
【0210】
サービス提供に当たり、そのエンドユーザの過去のサービス利用情報が必要な場合には、上記転送要求の中に、そのデータを選択したエンドユーザを特定する情報も含ませて、そのエンドユーザの最新の利用記録に基づいたデータを配信するよう要求するか、あるいは、最新の利用記録の確認結果を配信するよう要求する。
【0211】
データ配信をサービス・プレーンに沿って行う場合は、最新データの転送要求も、「サービスアンカー」情報で特定される中継DCのミラー・プレーンを経由するように、経路情報を付加して送信するとよい。サービス・プレーンと関係なくデータ配信する場合は、最新データの転送要求も、宛先となるサービスアンカーDCを特定して送信するだけで構わない。
【0212】
オリジン・プレーンでは、エンドユーザ収容DCのプロバイダ・プレーンから、データを利用するサービスのエンドユーザへの提供を開始するに当たって、そのサービス提供に利用するデータにつき、最新データの転送要求を受け取る(S350)。
【0213】
オリジン・プレーンは、上記の要求に応答して、以下の2つの処理のうちいずれかもしくは両方を行う(S355)。1つは、動的データ(例えば、SAの動作につれて変化するアプリケーションのステイタス情報等)の最新のもの(コピー)を、エンドユーザ収容DCへ送る処理である。もう1つは、エンドユーザに対してサービスを提供するに際し、そのエンドユーザがそのサービスを過去に利用していたときの状態等のデータが必要である場合、後述するようにサービスアンカーDCに各エンドユーザのサービス利用情報が記録されているため、これを読み出して必要なデータを作成し、エンドユーザ収容DCへ送る処理である。
【0214】
プロバイダ・プレーンは、送られてきた最新の動的データ(コピー)及び/又はエンドユーザのサービス利用記録が反映されたデータを受け取り、SA(コピー)によりそのデータについてエンドユーザへのサービス提供を開始する(S175)。
【0215】
なお、最新データを配信する場合も、上述した初期データの配信と同様に、サービス・プレーン上で行ってもよいし、サービス・プレーンと関係なく行ってもよい。また、サービス・プレーン上の途中のDCに存在するミラーリングデータを活用してもよいし、上述したオーバーレイ・ネットワークの技術を利用してもよい。
【0216】
図17は、エンドユーザへデータを利用したサービスを提供中に、最新データを配信する動作の一例を説明する。
【0217】
エンドユーザ収容DCに対して、上述した最新データを配信して、エンドユーザへのサービス提供が開始された後、そのデータを利用するサービス提供を終了したという通知を受け取るまでの間(エンドユーザへのサービス提供中)、動的データはその間も変化する可能性があるため、オリジン・プレーンから、定期的に、最新の動的データ(コピー)を、エンドユーザ収容DCへ送り続けるようにしてもよい。
【0218】
プロバイダ・プレーンでは、エンドユーザへのサービス提供中に、最新の動的データ(コピー)が継続して送られてくるならば、これを受け取り、SA(コピー)から利用できるようにする。
【0219】
サービス提供中の最新の動的データの配信は、上述したようにプッシュ型で行ってもよいし、サービス提供開始時と同様にオンデマンド型で行ってもよい。図17には、データD1を、オンデマンド型で配信する例が示されている。
【0220】
動的に生成され、サービス利用時に必要となるデータの配信には、P2Pオーバーレイ・ネットワークの技術を用いると、IPマルチキャスト等の他の配信方法に比べて、特殊なハードウェア機材が不要である、インタラクティブなアプリケーションに対応可能である等の利点がある。
【0221】
以上のように、データを利用したサービス提供が開始される都度、サービスアンカーへそのデータにつき初期参照するようにすると、エンドユーザ収容DCでは、配信データの管理面でのサービスの運用作業が不要になる。また、データが必要になったときに送られてくるので、資源効率に優れており、プロバイダ・プレーンが有するべき平均的なリソースを少なく抑えることが可能になる。
【0222】
図17には、データD2として、もう一つ別のデータ配信方法も示されている。データD1の方法によるべきか、D2の方法によるべきかは、データの属性によって定まる。動的データが、例えば、オンラインで複数エンドユーザにより共有されるデータである等、サービスアンカーDCのみで(他のDCにコピーを置かずに)管理すべきデータである場合は、データD2のように配信することになる。
【0223】
具体的には、オリジン・プレーンは、エンドユーザへのサービス提供中に、そのサービス提供に利用するデータにつき、エンドユーザ収容DCのプロバイダ・プレーンからのアクセス要求を受け付け、サービスアンカーDCにあるデータを直接参照もしくは書き込みさせる。つまり、データD2については、オリジン・プレーンを固定位置とし、その存在場所が仮想環境上を動かさないように、管理する。
【0224】
プロバイダ・プレーンは、データD2については、サービスボックス内に予め格納されていた「サービスアンカー」の情報が示すDCのオリジン・プレーンへアクセスし、サービスアンカーDCにあるデータを直接参照もしくは書き込みする。つまり、サービスアンカーDCにあるデータをオリジン・プレーンを介して読み出して自身(プロバイダ・プレーン)の上で動作しているSA(コピー)へ渡したり、そのSA(コピー)から出力されるデータをオリジン・プレーンを介してサービスアンカーDCのストレージに記入したりする。
【0225】
初期データは、例えば、アプリケーションの背景、メニュー起動直後の表示、共通機能として常時表示されている内容等である。ロールプレイングゲーム等のオンラインゲームでは、例えば、ゲームの場面や登場人物の基本データ、選択メニューにあたるものが初期データとなる。
【0226】
動的データは、例えば、アプリケーションの進捗や変化により随時変わって提供されるものであり、アプリケーションのステイタス(状況、フェーズ、段階等)に合わせて随時利用者へ提供されるデータである。ロールプレイングゲームの例では、ゲームの場面が開始時から変わった場合、登場人物の動き(何かを殴る)などによって変化する次のデータ(殴ったものが壊れる)などにあたるものが動的データとなる。
【0227】
事例のロールプレイングゲームのようなアプリケーションの場合、利用者が前回どこまで進んでいたか、次回どの場面どの状況からかなどの利用履歴が必要になる。したがって、初期データの後に配信される最初の動的データとともに、最新の利用記録に基づいたデータがプロバイダ・プレーンへ送られることが必要となる。
【0228】
図9及び図18は、エンドユーザへのサービス提供中もしくは提供終了後に、サービス利用情報をサービス提供元へ還流する動作の一例を説明する。
【0229】
サービス利用情報を提供元にフィードバックするタイミングとして、終了時還流が適しているアプリケーションと、随時還流が適しているアプリケーションとがあり得る(S185)。
【0230】
また、フィードバックの方式として、還流先のサービスアンカーDCを宛先として利用情報を送信し、これを受信したサービスアンカーDCがオリジン・プレーンの定めた格納場所に書き込む送信方式と、エンドユーザ収容DCで動作しているSA(コピー)が、ローカルディスクに書き込む如くに、サービスアンカーDC内の上記格納場所に利用情報を書き込む直接方式とがあり得る。
【0231】
送信方式の場合、利用情報は、上述したデータの呼び出し要求や最新データの転送要求と同様、サービス・プレーンに沿って転送されてもよいし、サービス・プレーンに関係なく転送されてもよい。
【0232】
直接方式の場合、サービスボックスには、「サービスアンカー」情報の一部として、利用情報を格納するためのディスクの場所やディスク名が、予め格納されている。そして、「サービスアンカー」情報で特定されるサービスアンカーDCのディスクにネットワークを介して利用情報を書き込むために、その場所まで、ネットワークマウント先を伸ばす。つまり、遠隔地にあるサービスアンカーDCの物理ディスクのスペースを、エンドユーザ収容DCの仮想ディスクとしてマウントする。
【0233】
エンドユーザ収容DCからサービスアンカーDCへの利用情報の転送は、サービス・プレーンに関係ない経路で行ってもよいが、例えば、ストレージの仮想化技術を用いて、オリジン・プレーンの利用する仮想ディスク(サービスアンカーDC内にあるディスクとは限らない)がプロバイダ・プレーン上で動作するSA(コピー)から利用されるようにする場合には、サービス・プレーン上で行うとよい。この場合、プロバイダ・プレーン上のSA(コピー)は、利用記録に関してローカルのディスクに書き込むような振る舞いをするが、仮想環境下なので、そのポインタは実際にオリジン・プレーンで管理するハードウェアリソースを指しており、利用記録がサービス・プレーン上をフィードバックして書き込み動作をするように見える。
【0234】
なお、データD1のような例えばP2P配信でも、データD2のような直接参照でも、同じ「サービスアンカー」情報に基づいて行われるため、データの配信方法には依存せずに、利用記録はサービスアンカーDCへ戻される。
【0235】
具体的には、プロバイダ・プレーンは、終了時還流では、自身の上で動作しているSA(コピー)が、エンドユーザにより選択されたデータについてのサービス提供を終了すると、そのエンドユーザの利用情報(いつどのデータをどのように利用したか)を作成し(S190)、サービスボックス内に予め格納されていた「サービスアンカー」の情報が示すDCのオリジン・プレーンへ向けて、作成した利用情報を出力する(S195)。すなわち、送信方式の場合は送信し、直接方式の場合は書き込むことによって、オリジン・プレーンに受け取らせる。
【0236】
随時還流では、プロバイダ・プレーンは、自身の上で動作しているSA(コピー)が、予め定められた一定の間隔又は予めアプリケーション内で定められているフィードバック点に達するごとに、サービスボックス内に予め格納されていた「サービスアンカー」の情報が示す格納場所に、そのエンドユーザの利用情報(いつどのデータをどのように利用したか)を書き込む(直接方式での出力となる)。
【0237】
随時還流は、SA(コピー)が動作中のフィードバックであり、利用情報の内容が、即時性の高いものや経時に依存するものである可能性が高いため、複数回のやりとりをする送信方式よりも、ディスクに書き込む直接方式をとるのが好ましい。終了時還流を終了時に行われる随時還流としてもよい。
【0238】
オリジン・プレーンは、エンドユーザ収容DCのプロバイダ・プレーンから、データを利用したサービスのエンドユーザへの提供を終了するに当たって、そのサービス提供に利用したデータにつき、そのエンドユーザの利用情報を受け取る。さらに、サービスの提供中も、随時、利用情報を受け取るようにしてもよい(S360)。
【0239】
そして、オリジン・プレーンは、受け取った利用情報を、当該サービス毎、エンドユーザ毎に記録しておく(S365)。いずれのエンドユーザ収容DCに接続しているエンドユーザについても、同一のサービスの利用情報(いつどのデータをどのように利用したか)は、同一のサービスアンカーDCにフィードバックされて管理される。
【0240】
図19は、本システムにおいて、サービス利用情報が全体的にどのように管理されることになるかを俯瞰する図である。
【0241】
サービスは、上位のデータ配信事業者から制限的に重なるようにしてその配下の端末へ届く。しかし、端末にはユーザ情報や記録を残さず、全ての利用記録がサービスアンカーへその利用者情報とともに返される。
【0242】
各コンテンツのサービスアンカーへエンドユーザの利用記録及び利用者情報(プロファイル)を返す処理は、エンドユーザ収容DCのプロバイダ・プレーンの制御で行われるため、その先に接続するエンドユーザの端末、通信機器、表示機器等には依存しない。
【0243】
結果として、エンドユーザによるサービス利用の記録は、サービス提供元へ集約される。これにより、層状の木構造で重畳するサービス提供を行っても、サービス提供元へその利用記録が漏れなく還流し、また、各サービスアンカーとなる事業者の主体性、自主性を保ちつつ、上流からの利用制御をサービス毎に独立して行うことが可能になる。
【0244】
最後に、ミラー・プレーンの機能をまとめて説明しておく。ミラー・プレーンは、定常的に上位サービスの共有領域として用いられる。
【0245】
ミラー・プレーンは、オリジン・プレーンとプロバイダ・プレーンのブリッジとして働くため、オリジン・プレーンにより発行される命令の実行と、その命令に従ってオリジン・プレーンとプロバイダ・プレーンとの間のルートを維持することを基本機能としている。さらに、プログラムのマイグレーションでは、利用予測に基づいた一定期間のミラーリングデータ保持を行い、データ配信では、データD1についてのP2Pホップの管理等を行う。
【0246】
サービス提供主(サービスアンカーDCの運用者の顧客に相当する)かサービスアンカーDCの運用者自身が、当該サービスについて予め多くの中間や末端DCがエンドユーザ収容DCになることを求めるとわかっている場合、サービス開始時に発生するサービスアンカーDCへの集中的なアクセスを避けるため、中継DCに、通信負荷の大きいプログラムのマイグレーションが多く行われる一定期間(例えば、サービス開始直後から1週間など)、移動のみであれば他のサービス用に割り当てられるリソースをそのまま当該サービス用に維持し、ミラーリングデータを保持することで、ミラー・プレーンとプロバイダ・プレーン間だけでプログラムのマイグレーションが行われるようにする。これにより、人気のあるアプリケーション公開当初のつながりにくく、時間がかかり利用しにくいという問題を解消することが可能になる。
【0247】
具体的には、中継DCの運用者は、初期設定として、各サービスについて、配下のDCに置かれる予定のサービスボックス(プロバイダ・プレーン)の数や、そのサービスで利用されるデータ(コンテンツ)の容量や、そのサービスの予想される利用率等を考慮し、これらのサービスから共有される「ミラー・プレーン」のリソースとして割り出された容量のリソースを、中継DCのリソースプールに追加する。
【0248】
なお、共有のリソースは、後述するプログラムのマイグレーションが現に行われようとしているサービスに対して優先的に確保され、そのサービスに係るSAのマイグレーションが完了し、後述するミラーリングデータを保持しておく必要もなくなったときに、他のサービスに対して割り当て可能になるよう解放される。
【0249】
ミラー・プレーンは、第1の中継機能として、プログラムの動的なマイグレーションを中継する機能を有することが好ましい。
【0250】
この場合、ミラー・プレーンは、サービスアンカーDCもしくは自身よりサービスアンカー寄りの中継DC(上位のDC)で稼動しているSAのコピーを、徐々にミラー・プレーン上に作り出していき、完全なコピーができると、ミラー・プレーン上のSAのコピーが制御権を獲得する。
【0251】
作り出されたSAのコピーは、サービスアンカーDCで付加されたアプリケーション配信条件情報を伴っている。このアプリケーション配信条件情報がミラーリングデータを保持することを指示している場合は、指示されている保持期間(利用予測に基づいて定められた期間)の間は、制御権を獲得したSAのコピーが、ミラー・プレーン上で動作し続ける。
【0252】
ミラー・プレーン上に完全なSAのコピーができて制御権を獲得すると、次は、配下のエンドユーザ収容DCもしくはそこへ向かう次の中継DC(下位のDC)のプレーン上に、SAのコピーのコピーを徐々に作り出していく。どのDCが下位のDCとなるかは、上記アプリケーション配信条件情報を参照して定める。
【0253】
SAのコピーのコピーには、アプリケーション配信条件情報をそのまま付随させるか、あるいは、下位のDCでは使用しない部分(自身のDC名や自身でのミラーリングデータ保持期間等)を削除して付随させる。
【0254】
下位のDCのプレーン上にSAのコピーのコピーが完全に作り出されてそちらが制御権を獲得したときに、アプリケーション配信条件情報がミラーリングデータを保持しないことを指示している場合は、自身の上にできていた完全なコピーを消去する。
【0255】
以上のようにすることで、サービスアンカーDCで稼動中のSAが、停止することなく、ミラー・プレーンを介して移動し、エンドユーザ収容DCに稼動中の分身を作り出すことができる。
【0256】
ミラー・プレーンは、アプリケーション配信条件情報で指示された期間、ミラーリングデータ(SAのコピー)を保持する。その期間に、配下のエンドユーザ収容DCからサービスアンカーDCへのSAのマイグレーション要求を受け取った場合、これをサービスアンカーDCへ転送する代わりに、自身の上で動作しているSAのコピーを、要求を送信してきたエンドユーザ収容DCもしくはそこへ向かう次の中継DC(下位のDC)へ、マイグレーション(移動)して、その移動先のDCにSA(コピー)のコピーを作り出す。
【0257】
一方で、自身の上で動作しているSA(コピー)は、そのまま動作を続け、また別のエンドユーザ収容DCからSAのマイグレーション要求を受け取ると、そこへも同様にSA(コピー)のコピーを作り出す。このようにミラーリングデータを利用することも、プログラムのマイグレーションについて、サービスアンカーDCへの負荷集中を軽減するのに寄与する。
【0258】
ミラー・プレーンは、第2の中継機能として、サービス・プレーン上を転送される各種データやメッセージ(上位から下位へは初期データや最新データと新着通知等のメッセージ、下位から上位へは利用情報のデータと要求等のメッセージ)、プログラムの静的なマイグレーションを中継する機能(S210、S215、S270、S280、S285、S290等)を有してもよい。
【0259】
サービスアンカーDCでは、オリジン・プレーンが、各エンドユーザ収容DCとそこに至るまでに経由する中継DCの情報を記憶しており、各エンドユーザ収容DCでは、サービスボックスに、サービスアンカーDCとそこに至るまでに経由する中継DCの情報が格納されているから、サービスアンカーDCと各エンドユーザ収容DCとの間で送受信されるデータやメッセージには、宛先DCと経由すべき中継DCが順番に記述されたヘッダを付加することができる。ミラー・プレーンは、具体的には、このヘッダに従って、受信したデータやメッセージを次のDCへ送信すればよい。
【0260】
ミラー・プレーンは、第3の中継機能として、P2Pネットワークの配信技術を用い、サービス・プレーンに関係なく、初期データや動的データを中継する機能を有してもよい(フローチャートには図示していない)。
【0261】
具体的には、サービスアンカーDCもしくは中継DCから、初期データや動的データを受信すると、その受け取りが終了する前に、そのデータの宛先のエンドユーザ収容DCもしくはそこへ向かう中継DCへ、当該データを送信し始める。また、それぞれの配信データにつき、P2Pホップの管理等を行う。
【0262】
なお、本システムにおける各DCは、木構造に配置されるが、この木構造の接続とは別に、インターネット接続等を有していてもよく、その場合は、サービスアンカーDCとエンドユーザ収容DCとの間で送受信される各種データやメッセージは、中継DCを経由せずに、インターネット経由で転送されてもよい。そのインターネットにおいて、P2Pオーバーレイの技術が採用されるようにしてもよい。
【0263】
図20は、各DCとプレーンの組合せについて説明する図である。この例では、中央DCには、オリジン・プレーンだけが存在するものとする。つまり、中央DCは、エンドユーザを直接かかえる運用者ではなく、多くのアプリケーションサービスプロバイダやコンテンツサービスプロバイダを集積するサービスアカーバーとして存在する。
【0264】
この例ではまた、中間DCは、3つのプレーンのうちミラーは必ず持つものとする。ミラーに加えて、直接エンドユーザを抱えてサービス提供をしたい場合は、プロバイダ・プレーンを設けることが可能である。末端DCは、上位のDCからのコピーを提供するプロバイダ・プレーンを必ず持つものとする。
【0265】
そして、中間と末端の両DCは、中央DCと同じように、自らのアプリケーションサービスプロバイダやコンテンツサービスプロバイダを募ることで、オリジン・プレーンを持つことができる。
【0266】
以上をまとめると、図20に示すように、中央DCは1通り、中間DCは3通り、末端DCは2通りのプレーンの組み合わせを持つことが可能である。DCが、3層の木構造をとるとすると、サービス・プレーンの構成は、図示のとおり、7通りがあり得る。なお、末端DCのオリジン・プレーンは、エンドユーザへの接続も有するオリジン兼プロバイダ・プレーンとなる。
【0267】
図21は、図20の(3)の場合のシステムの状態の一例を説明する図である。
【0268】
図22は、本システムが、サービス・プレーン間で、DCのリソースを融通する機能を有する場合を例示する図である。
【0269】
例えば、図21のように、サービスA及びサービスBが既に運用されている状態で、新たに中間DCがサービスXを開始すべくオリジン・プレーンを新設したときに、中間DCで行われる処理を説明する。
【0270】
中間DCのミラー・プレーンは、サービスAとサービスBの末端DC(サービスBの末端DCは図示せず)への移動用に共用されている。サービスAについては、既に末端DCへアプリケーションが移動し終わっており、アプリケーション配信条件情報に書かれているミラーリングデータ保持期間も過ぎているとする。
【0271】
この場合、これまでサービスAのミラー用に割り当てられてきたリソースを含むミラー・プレーンの一部が、別のサービスのプレーン(ここでは、サービスCのオリジン・プレーン)として流用される。
【0272】
このように、同じDCの中で、互いに異なるサービスが利用しているプレーン同士が共同的に働くことにより、あるサービスの配信経路の途中にあるDCが、別のサービスの提供元になることが、より簡易に実現できるようになる。
【0273】
また、例えば、図14のように、中間DCが、サービスA及びサービスBのミラー・プレーンとして既に運用され、且つ、サービスAのプロバイダ・プレーンとしても既に運用されている状態で、中間DCが直接抱えるエンドユーザからサービスAへのアクセスが急増し、サービスAのプロバイダ・プレーンのリソースが不足し出したときに、中間DCで行われる処理は次のようになる。
【0274】
中間DCは、元々は末端DCへのミラー用の共用領域として割り当てていたサービスAのミラー・プレーンの一部を、サービスAのプロバイダ・プレーンへ流用する。この流用は、サービスAについて、既に末端DCへアプリケーションが移動し終わっており、アプリケーション配信条件情報に書かれているミラーリングデータ保持期間も過ぎて、優先占有から外れたミラー・プレーンのリソースを、異なるサービス・プレーンへ流用するものである。
【0275】
図22では、3つのサービスA,B,Xが木構造になっており、これらの木構造は別々のサービス・プレーンとして構成されているが、同一DC内であるプレーンがリソース不足をきたすと、占有の必要性の低くなった別のプレーンからそのリソースがまわされて不足を補うような、プレーン間協調がとられる。これは、同一のオリジン・プレーンに対して設けられたミラー・プレーン(サービス・プレーンA2)とプロバイダ・プレーン(サービス・プレーンA1)間でも、同様である。
【0276】
こうしたリソースの動的最適配分により、協調関係のあるサービスの重畳を実現することは、3種類のプレーンが共通の仮想化ミドルウエア上に構成されるために可能になっている。
【0277】
本システムにより、例えば、各DCの運営者は、次のような事業を行うことが可能になる。概略的には、中央に近いDCは、多数の利用者に同種類のコンテンツを提供するのに対し、末端に近いDCは、少数の利用者毎に異なるコンテンツを提供することができる。
【0278】
まず、中央DCの運営者は、全国レベルでのコンテンツの配布を行うことができ、例えは、全国テレビスポットコマーシャル、映画等のPRビデオ、映画やテレビ番組の再配信、買い物チャンネル、汎用ゲーム機のオンラインゲーム、メジャーレーベルのコンテンツホルダのアーカイブ系等を提供することができる。
【0279】
そして、中間DCの運営者は、例えば、キャリアやキャリア運用サービスのテレビコマーシャル、イベントやインフォマーシャル連動などの提携コンテンツ、キャリアAPIでのオンラインゲーム、マイナーレーベルのコンテンツホルダのアーカイブ系等を提供することができる。
【0280】
さらに、末端DCの運営者は、地方に特化したコンテンツの配布を行うことができ、例えば、地域テレビコマーシャル、地域ケーブルテレビ独自番組、自治体などのPRや広報ビデオ、地域レーベルのコンテンツホルダのアーカイブ系等を提供することができる。
【0281】
以上、本発明の一実施形態について説明したが、上述の実施形態を本発明の範囲内で当業者が種々に変形、応用して実施できることは勿論である。
【図面の簡単な説明】
【0282】
【図1】本発明の一実施形態に係るサービス提供システムの全体構成を俯瞰した一例を示す図。
【図2】本発明の一実施形態に係るサービス提供システムの各構成要素の機能を説明する図。
【図3】本発明の一実施形態に係るサービス提供システムの動きの概要を説明する図。
【図4】本発明の一実施形態に係るサービス提供システムを構成する各DCの内部構成の一例を説明する図。
【図5】サービスボックスがエンドユーザ収容DCに設置されたときの各DCのプレーンの動作の一つの例を示すフローチャート。
【図6】サービスボックスがエンドユーザ収容DCに設置されたときの各DCのプレーンの動作の別の例を示すフローチャート。
【図7】サービスボックスがエンドユーザ収容DCに設置されたときの各DCのプレーンの動作のさらに別の例を示すフローチャート。
【図8】サービスで利用されるデータがサービスアンカーDCに登録された後の各DCのプレーンの動作の一例を示すフローチャート。
【図9】エンドユーザのサービス利用情報がサービスアンカーDCへフィードバックされるときの各DCのプレーンの動作の一例を示すフローチャート。
【図10】各プレーンによるリソースの利用の一例について説明する図。
【図11】サービスボックスが設置されたときの各DCの動作の一つの例を説明する図。
【図12】サービスボックスが設置されたときの各DCの動作の別の例を説明する図。
【図13】サービスボックスが設置されたときの各DCの動作のさらに別の例を説明する図。
【図14】図13の例の場合のシステムの状態について説明する図。
【図15】サービスで利用されるデータが登録されたときの各DCの動作の一例を説明する図。
【図16】エンドユーザにより選択されたサービスの提供が開始されるまでの各DCの動作の一例を説明する図。
【図17】エンドユーザへのサービスの提供中の各DCの動作の一例を説明する図。
【図18】エンドユーザのサービス利用情報がフィードバックされるときの各DCの動作の一例を説明する図。
【図19】システム全体でのサービス利用情報の管理状況について説明する図。
【図20】各DCとプレーンの組み合わせについて説明する図。
【図21】図20の(3)の場合のシステムの状態について説明する図。
【図22】プレーン間でのリソースを融通する一例について説明する図。
【符号の説明】
【0283】
101 中央DC
201〜202 中間DC
301〜304 末端DC
411〜451 エンドユーザ端末
【技術分野】
【0001】
本発明は、ネットワークを介して複数の層に配置されたデータセンタを用いて、エンドユーザ端末へサービスを提供するためのシステムに関する。
【背景技術】
【0002】
近年、大容量のコンテンツが普及したことでネットワークの負荷が増大し、レスポンスの悪化や通信速度の低下などの問題が深刻化している。そうした問題を解決する手法として、サーバを一箇所だけに置くのではなく、地理的ないしバックボーン的に分散させて、同一のコンテンツを多くのサーバでミラーリングするように構成するCDN(コンテンツ配信ネットワーク)の技術が注目されている。
【0003】
例えば、特許文献1に示されるように、米国アカマイ・テクノロジーズ社が開発したCDNは、ライブ・ストリームをコンテンツとしてエンドユーザに配信するために、コンテンツ・プロバイダの代わりに動作して配信元となるCDN入口点と、多数のエンドユーザに対してストリーミング・サーバとして機能する各エッジ・ノードと、入口点とエッジ・ノードとの間の中間層内に配置されるリフレクタ・ノードとを備え、所要のストリームを未だ受信していないエッジ・ノードへエンドユーザが向けられたとき、そのエッジ・ノードはリフレクタ・ノードの組に配信要求を発行し、そのリフレクタ・ノードが所要ストリームを既に受信していればこれを要求エッジ・ノードに送信し、未だ受信していなければ配信要求を階層上位に、最終的に入口点に到達するまで発行するという構成をとることにより、コンテンツを効率よく配信できるようにしている。
【特許文献1】特表2004−517412号
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した技術においては、CDNの入口点とエッジ・ノードとリフレクタ・ノードは、全てが同一の事業者(アカマイ・テクノロジーズ社)により、世界中に分散されて配置され運用されるものであり、コンテンツ・プロバイダは、形成されているCDNの外部から入口点に対してコンテンツを提供することしかできない。そうすると、例えば、リフレクタ・ノードが設置されている場所やエッジ・ノードが設置されている場所の近くに、コンテンツ・プロバイダのサイトがあったとしても、遠くのCDN入口点までコンテンツを送信しなければ、エンドユーザへ配信することはできない。
【0005】
また、各々のコンテンツ・プロバイダが独立に、CDNを利用して配信するだけであるため、複数のコンテンツ・プロバイダのコンテンツを一つのメニューにまとめてエンドユーザへ提供したり、配信経路の途中でコンテンツの編成を変えて(例えば、コンテンツ・プロバイダから配信されるビデオに、配信経路の途中のサイトで独自のコマーシャルを重畳して)エンドユーザへ提供したりすることはできない。
【0006】
上述したCDNは、インターネットにおけるコンテンツ配信の技術であるが、ケーブルテレビによるコンテンツ配信にも、類似した問題がある。ケーブルテレビにおいては、エンドユーザがアクセスする各地のケーブルテレビ局に対し、番組供給事業者(例えば、ディズニー、スポーツ専門チャネル、東京のキーテレビ局等)が、衛星等の配信回線提供事業者を介して、テレビ番組(コンテンツ)を配信する。この配信は、各々の番組供給事業者が各々のケーブルテレビ局に対して独立に行っているだけであり、その途中で、コンテンツの編成を変えたり、番組を追加したりすることはできない。
【0007】
なお、各地のケーブルテレビ局は、全国一律のサービスとなる番組供給事業者からの番組に加えて、コミュニティチャネルと呼ばれるチャネルで自局独自の番組をエンドユーザに提供することができるが、近隣のケーブルテレビ局(例えば、魚津、滑川、富山、高岡等の市レベル)が幾つかまとまった地域ブロック(例えば、富山、石川等の県レベル)に対してその地域ブロック独自の番組(例えば、高校野球地方大会中継等)を配信することはできない。
【0008】
さらに、上述した技術で配信できるコンテンツは、ビデオ・ストリーム等のデータに限られており、CDNでは、たとえプログラムを配信する場合でも、エンドユーザの端末にダウンロードされて端末内で動作するプログラムが、データとして(ファイル形式で)、CDN入口点からリフレクタ・ノードを介してエッジ・ノードへ送信され、エッジ・ノードからエンドユーザ端末へ送信されるだけである。CDNの技術は、コンテンツ・プロバイダのサイトに負荷が集中するのを避けて、コンテンツを効率的に配信することができるものであるが、その対象は、実質的に、データに限られる。
【0009】
しかし、エンドユーザに対して提供したいサービスには、データをエンドユーザ端末に届けて端末内で利用させるものだけではなく、エンドユーザ端末がサーバへアクセスしてサーバソフトウェアを利用することで実現するオンライン対戦ゲームやリアルタイムアンケートのようなインタラクティブ(双方向)あるいは時系での状況変化が激しいものが存在する。そのようなサービスについても、サービス提供元サイトへの負荷集中を抑制できるようにすることが望ましい。
【0010】
また、エンドユーザに対するコンテンツの配信は、配信するキャリアやインターネットサービスプロバイダ(上記の例では、アカマイ・テクノロジーズ社)の仕組みに依存する部分が多く、現状では、コンテンツ・プロバイダは、エンドユーザによるコンテンツの利用履歴(プロファイル)を、契約ベースでしか入手できない。ケーブルテレビでも、エンドユーザによる利用は、各ケーブルテレビ局が把握できるだけであり、番組供給事業者がエンドユーザのプロファイルを入手することはできない。
【0011】
本発明は、以上のような事情を考慮し、複数のサーバが階層的に接続されて構成されるシステムにおいて、サーバで動作するアプリケーションのエンドユーザ端末からの利用を分散させて、サービスを効率的に提供することのできる機構を実現することを、一つの目的とする。
【0012】
本発明はまた、複数のサーバが階層的に接続されて形成される配信経路の途中のサーバにおいて、独自のサービスを追加的に提供することや、エンドユーザからアクセスされるサーバにおいて、あるサーバが提供元であるサービスと別のサーバが提供元であるサービスとをまとめて提供することを可能にし、それぞれのサーバの運営事業者によるサービス提供メニューに自主性を持たせられる機構を実現することを、別の目的とする。
【0013】
本発明はまた、複数のサーバが階層的に接続されて形成される配信経路にある各サーバが、たとえ異なる事業者により運営される場合でも、サービスの提供元になる事業者が、自動的にエンドユーザの利用情報を取得することができる機構を実現することを、さらに別の目的とする。
【課題を解決するための手段】
【0014】
本発明に係るサービス提供システムは、特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備え、前記サービスアンカー装置にオリジナルが保持されているアプリケーションプログラムのコピーを、前記中継装置を介して前記エンドユーザ収容装置内に作り出す手段を含み、前記エンドユーザ収容装置が前記アプリケーションプログラムの前記コピーを動作させることにより、前記特定のサービスを前記エンドユーザの端末へ提供することを特徴とする。
【0015】
この構成によれば、サービスを実現するためのデータだけでなくサーバプログラム自体が、サービスアンカー装置からエンドユーザ収容装置へ移動してくるため、インタラクティブなオンラインアプリケーションを含め、接続する時刻に応じて動きが変化するようなサービス等、種々のサービスについて、サービスアンカー装置への負荷集中を抑制し、効率よくエンドユーザへ提供することが可能になる。
【0016】
本発明に係るサービス提供システムは、前記サービスアンカー装置、前記エンドユーザ収容装置、及び前記中継装置に、仮想化ミドルウェアがインストールされており、前記アプリケーションプログラムの同一のコピーが、いずれの装置でも動作可能であるように構成してもよい。
【0017】
これにより、仮想化技術を用いて、サービスアンカー装置からエンドユーザ収容装置へアプリケーションプログラムを移動できるようになる。また、いずれの装置にも仮想化ミドルウェアがインストールされていることにより、後述するように中継装置を第二のサービスアンカー装置としても機能させることが同一装置上で可能になり、配信経路の途中からの独自サービスの追加的な提供が実現できる。
【0018】
本発明に係るサービス提供システムにおいて、前記アプリケーションプログラムのコピーを作り出す手段は、前記サービスアンカー装置において前記アプリケーションプログラムのオリジナルを動作させたまま、動作中の前記アプリケーションプログラムのコピーを前記中継装置内に作り出し、前記中継装置において前記アプリケーションプログラムのコピーを動作させたまま、動作中の前記アプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出し、前記サービスアンカー装置において前記アプリケーションプログラムのオリジナルが動作を継続する一方で、前記エンドユーザ収容装置において前記アプリケーションプログラムのコピーが前記オリジナルの動作を引き継いで動作を開始するようにしてもよい。
【0019】
これにより、プログラムの動的なマイグレーションが可能になり、サーバプログラムのオリジナルがサービスアンカー装置で動作していながら、それぞれのエンドユーザ収容装置(エンドユーザ端末の近く)まで同じ動作をしているサーバプログラムのコピーが張り出してきて、サービスを提供するという状態が実現できる。
【0020】
本発明に係るサービス提供システムにおいて、前記エンドユーザ収容装置は、自身が接続するエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段をさらに有し、前記アプリケーションプログラムのコピーを作り出す手段は、前記エンドユーザ収容装置において前記情報に基づいて前記サービスアンカー装置へ前記アプリケーションプログラムを要求する手段と、前記サービスアンカー装置において前記要求に応じて前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段と、前記中継装置において自身内に作り出されたコピーを利用して自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段とを含むようにしてもよい。
【0021】
これにより、エンドユーザ収容装置の運営事業者があるサービスを自己の配下にあるエンドユーザへ提供することを決めると、そのサービスを実現するアプリケーションプログラムが、そのサービスのサービスアンカー装置から中継装置経由で、エンドユーザ収容装置にマイグレーションされてくることができる。
【0022】
上記サービス提供システムにおいて、前記エンドユーザ収容装置が前記情報を取得する手段は、前記決定に応じて前記エンドユーザ収容装置に設置されるサービスボックスに格納された前記情報を参照する手段を含み、前記サービスボックスは、前記情報と、前記サービスアンカー装置へ前記アプリケーションプログラムを要求する手段を実現するためのソフトウェアとを格納し、前記特定のサービスを前記エンドユーザの端末へ提供するのに利用するリソースを備えるようにしてもよい。
【0023】
これにより、エンドユーザ収容装置の運営事業者は、あるサービスを自己の配下にあるエンドユーザへ提供することを決めた場合、そのサービスのサービスボックスを設置するだけで、あとは自動的に、サービスボックスに仕込まれたソフトウェアによって、そのサービスを実現するアプリケーションプログラムをサービスアンカー装置から取得し、そのプログラムと必要なリソースを使ってエンドユーザ端末へサービスを提供することが、可能になる。このように、エンドユーザに近い末端の事業者にかかる運用時の管理負担が軽減されると、エンドユーザのニーズを反映してサービスの提供を開始したり廃止したりすることが簡易に行えるようになり、末端の事業者が、サービス提供メニューに自主性を持たせることを実現しやすくなる。
【0024】
上記サービス提供システムにおいて、前記中継装置が、前記特定のサービスとは別の第二のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有し、第二のサービスアンカー装置として機能するようにしてもよい。
【0025】
これにより、中継装置の運営事業者は、あるサービスの提供を、上位のサービスアンカー装置から自身の下位にあるエンドユーザ収容装置に対して中継することに加えて、別の独自のサービスを、自身がサービスの提供元となって、自身の下位にあるエンドユーザ収容装置に対して配信することができるようになる。このように、あるサービスの配信経路の途中の事業者が、独自に、等価的に、別のサービスの提供元となることができるようになると、各エンドユーザ収容装置では、多様なサービスの中から、柔軟に、自己の配下のエンドユーザのニーズに合うサービスを選択して提供することができるようになる。
【0026】
ここで、前記第二のサービスアンカー装置としても機能する前記中継装置が、前記サービスアンカー装置がオリジナルを保持している前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第一のソフトウェアと、前記第二のサービスをエンドユーザの端末へ提供することが決定されたエンドユーザ収容装置からの要求に応じて、自身がオリジナルを保持している前記第二のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第二のソフトウェアと、前記第一のソフトウェアにより利用されていたリソースの一部を前記第二のソフトウェアにより利用されるべきリソースとして割り当てる手段とを備えるようにしてもよい。
【0027】
これにより、同一装置上で、あるサービスの配信経路の途中としての機能と、別のサービスの配信元としての機能との間で、リソースを共用して、融通し合うことが可能になり、既存の配信経路やリソースに併設して新たなサービス用の増設を一から行わなくとも、サービスの提供元を増やすことが可能になる。
【0028】
一方、上記サービス提供システムにおいて、前記中継装置が、前記エンドユーザとは別の第二のエンドユーザの端末に接続する手段を有し、第二のエンドユーザ収容装置として機能するようにしてもよい。
【0029】
これにより、中継装置の運営事業者は、あるサービスの提供を、上位のサービスアンカー装置から自身の下位にあるエンドユーザ収容装置に対して中継することに加えて、自己の配下に直接エンドユーザの端末を収容して、サービスを提供することができるようになる。エンドユーザに直接提供するサービスは、上位のサービスアンカー装置が提供元となっているものでもよいし、自己が提供元となる独自のサービスでもよい。そうすると、各エンドユーザ収容装置では、自己の配下のエンドユーザに対して提供できるサービスの選択肢がさらに増えることになり、柔軟性や自主性を増すことができる。
【0030】
ここで、前記第二のエンドユーザ収容装置としても機能する前記中継装置が、前記サービスアンカー装置がオリジナルを保持している前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第一のソフトウェアと、自身が接続する第二のエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段と、前記アプリケーションプログラムのコピーを動作させることにより、前記特定のサービスを前記第二のエンドユーザの端末へ提供する手段とを実現するための第二のソフトウェアと、前記第一のソフトウェアにより利用されていたリソースの一部を前記第二のソフトウェアにより利用されるべきリソースとして割り当てる手段とを備えるようにしてもよい。
【0031】
これにより、同一装置上で、サービスの配信経路の途中としての機能と、サービスをエンドユーザへ提供する機能との間で、リソースを共用して、融通し合うことが可能になり、既存の配信経路やリソースに併設して新たなサービス用の増設を一から行わなくとも、サービスの提供元を増やすことが可能になる。
【0032】
本発明に係るサービス提供システムにおいて、前記サービスアンカー装置は、前記エンドユーザ収容装置及び前記中継装置を特定するための情報を格納する手段をさらに有し、前記サービスアンカー装置が前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段は、前記情報を前記コピーに付加する手段を含み、前記中継装置が自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段は、付加された前記情報を参照してコピー先を決める手段を含むようにしてもよい。
【0033】
これにより、サービスアンカー装置が、アプリケーションプログラムの配信経路を指定する命令とともにそのプログラムをマイグレーションして、各中継装置が、その命令に従って各エンドユーザ収容装置まで当該プログラムをマイグレーションすることが、可能になる。このように、サービスアンカー装置に、プログラムの配信経路の決定を含めた制御権を持たせると、サービスの提供元から、そのサービスに係る全てのエンドユーザ収容装置に対する配信が統括して制御できるため、サービス機能の変更や、データの同期、さらにはプログラムの状態の同期が、より精密に実現できる。
【0034】
本発明に係るサービス提供システムにおいて、前記中継装置は、自身内に作り出された前記アプリケーションプログラムのコピーを保持するための手段と、前記エンドユーザ収容装置とは別の第二のエンドユーザ収容装置から前記サービスアンカー装置への前記アプリケーションプログラムの要求の受信に応じて、前記アプリケーションプログラムのコピーが保持されているか否かを調べる手段と、保持されていないならば、前記サービスアンカー装置へ受信した前記要求を転送する手段とを有し、保持されているならば、保持されているコピーを利用して自身より前記第二のエンドユーザ収容装置寄りに存在する中継装置内もしくは前記第二のエンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出すようにしてもよい。
【0035】
これにより、全てのエンドユーザ収容装置に対するプログラムのマイグレーションを、一つのサービスアンカー装置から行わなくとも、途中に幾つかある中継装置から行うことが可能になり、プログラムの配信におけるサービスアンカー装置への負荷集中を軽減することができる。
【0036】
上記サービス提供システムにおいて、前記サービスアンカー装置が前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段は、前記コピーを保持すべき期間を示す情報を付加する手段を含み、前記中継装置における前記コピーを保持するための手段は、付加された前記情報を参照して定められる期間、前記コピーを保持するようにしてもよい。
【0037】
これにより、配信経路の途中で、どのように、エンドユーザ収容装置へマイグレーションすべきプログラムのコピーを保持しておくかについても、その全体を、サービス提供元であるサービスアンカー装置が統括して制御できるようになる。
【0038】
上記サービス提供システムにおいて、前記中継装置は、前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段と、前記特定のサービスとは別の第二のサービスを提供するためのアプリケーションプログラムのコピーを前記エンドユーザ収容装置内もしくはそれとは別の第二のエンドユーザ収容装置内に作り出す手段とを実現するためのソフトウェアと、前記特定のサービスについて前記期間が経過した後は、前記コピーを保持するための手段を前記第二のサービスに係るアプリケーションプログラムのコピーを保持するために利用できるようにする手段とを備えるようにしてもよい。
【0039】
これにより、同一の中継装置上で、あるサービスの配信経路の途中としての機能と、別のサービスの配信経路の途中としての機能との間で、リソースを共用して、融通し合うことが可能になり、既存の配信経路やリソースに併設して新たなサービス用の増設を一から行わなくとも、サービスの提供元を増やすことが可能になる。
【0040】
本発明に係るサービス提供システムにおいて、前記エンドユーザ収容装置は、前記エンドユーザとは別の第二のエンドユーザの端末に接続する第二のエンドユーザ収容装置から、前記アプリケーションプログラムの要求を受信する手段と、前記要求に応じて自身より前記第二のエンドユーザ収容装置寄りに存在する中継装置内もしくは前記第二のエンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段と、前記サービスアンカー装置と前記第二のエンドユーザ収容装置との間の経路上に存在する中継装置として機能する手段とをさらに有し、前記第二のエンドユーザ収容装置は、自身が接続する第二のエンドユーザの端末への前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための第一の情報と、前記エンドユーザ収容装置へアクセスするための第二の情報とを取得する手段と、前記第二の情報に基づいて前記エンドユーザ収容装置へ前記要求を送信する手段と、前記第一の情報に基づいて前記サービスアンカー装置へ前記エンドユーザ収容装置の中継装置として機能する手段を介してアクセスする手段とを備えるようにしてもよい。
【0041】
これにより、サービスアンカー装置から見て、あるエンドユーザ収容装置よりも先に別のエンドユーザ収容装置が出現した場合、出現したエンドユーザ収容装置に対するプログラムのマイグレーションを、サービスアンカー装置から行わなくとも、配信経路の途中となった既存のエンドユーザ収容装置から行うことが可能になり、プログラムの配信におけるサービスアンカー装置への負荷集中を軽減することができる。その一方で、出現したエンドユーザ収容装置は、自己の出現についてサービスアンカー装置へも通知するため、プログラムのマイグレーション後は、サービスの提供元であるサービスアンカー装置からの全体を統括した制御を受けることができ、同期を精密にとることができる。
【0042】
本発明に係るサービス提供システムにおいて、前記サービスアンカー装置は、前記エンドユーザ収容装置を特定するための情報を格納する手段と、前記特定のサービスにより利用可能なデータのオリジナルを保持する手段と、前記情報を参照して、前記データのコピーを、前記中継装置を介して前記エンドユーザ収容装置内に作り出す手段とをさらに有し、前記エンドユーザ収容装置は、作り出された前記データのコピーを前記アプリケーションプログラムのコピーにより利用可能なデータとして記憶する手段をさらに有し、記憶されたデータのうちエンドユーザにより選択されたデータを利用して前記特定のサービスを前記エンドユーザの端末へ提供するようにしてもよい。
【0043】
これにより、サービス提供に利用されるデータについても、サービスアンカー装置で使われているデータのコピーが、それぞれのエンドユーザ収容装置(エンドユーザ端末の近く)まで配信されてきて使われることが、可能になる。例えば、初期データのように容量の大きなデータについては、プログラムのマイグレーションと同様に、サービスアンカー装置が、データの配信経路を指定する命令とともにそのデータをマイグレーションして、各中継装置が、その命令に従って各エンドユーザ収容装置まで当該データをマイグレーションする(データが存在場所を変える)ようにするとよい場合がある。また、例えば、初期データから変化した差分のデータ(動的データ)のように容量の小さなデータについては、サービスアンカー装置が、データの宛先となるエンドユーザ収容装置だけを指定してそのデータを送信し、各中継装置は、そのようなデータを受信したときには、宛先に基づいて自律的に定められる次の中継装置へ送信するようにするとよい場合がある。
【0044】
本発明に係るサービス提供システムにおいて、前記エンドユーザ収容装置は、前記サービスアンカー装置に保持されている前記データの最新版を要求し、この要求に応じて受信される最新データのコピーを前記アプリケーションプログラムのコピーにより利用可能なデータとして記憶する手段と、前記アプリケーションプログラムのコピーに前記サービスアンカー装置に保持されている前記データのオリジナルを参照させる手段とを備えるようにしてもよい。
【0045】
これにより、エンドユーザ収容装置がエンドユーザに対してデータを利用したサービスを提供するに当たり、そのデータの最新のもの(例えば、サービスアンカー装置において時系で変化しているデータや、エンドユーザの前回の利用結果を反映して定まるべきデータ等)を取得することができるとともに、コピーを作成しないことが望まれるデータについては、サービスアンカー装置が保持しているデータ自体を直接参照することもできるようになり、データの適切な同期をとることが可能になる。
【0046】
本発明に係るサービス提供システムにおいて、前記エンドユーザ収容装置は、自身が接続するエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段と、前記特定のサービスを前記エンドユーザの端末へ提供する際に得られる利用情報を、前記情報に基づいて前記サービスアンカー装置へ向けて出力する手段とをさらに有し、前記サービスアンカー装置は、前記特定のサービスの利用情報を各エンドユーザについて記録する手段と、前記エンドユーザ収容装置から出力された前記エンドユーザについての利用情報を前記記録手段に入力する手段とをさらに有するようにしてもよい。
【0047】
これにより、サービスがどういう配信形態で提供されるかによらず、また、配信経路にある各装置が異なる事業者により運営される場合でも、サービスの提供元に対して、各エンドユーザの利用情報が、自動的に還元されるようになる。
【0048】
なお、上述した本発明はいずれも、サービス提供システムを構成するサービスアンカー装置、エンドユーザ収容装置、及び中継装置のそれぞれの装置が行う方法の発明としても、サービス提供システム全体が行う方法の発明としても、成立するものである。また、これらの各装置としてコンピュータを機能させるためのプログラムの発明や、このようなプログラムを記録した記録媒体の発明としても、勿論成立するものである。
【0049】
例えば、本発明に係るソフトウェアは、特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記サービスアンカー装置を出現させるソフトウェアであって、前記装置に、前記アプリケーションプログラムのオリジナルを保持させ、前記エンドユーザ収容装置からの前記アプリケーションプログラムの要求を受信させ、前記要求に応じ、前記中継装置を介して前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出すための動作をさせることを特徴とする。
【0050】
本発明に係る別のソフトウェアは、特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記エンドユーザ収容装置を出現させるソフトウェアであって、前記装置に、前記エンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得させ、前記情報に基づいて前記サービスアンカー装置へ向けて前記アプリケーションプログラムの要求を送信させ、前記要求に応じて前記中継装置を介して自身内に作り出される前記アプリケーションプログラムのコピーにより、前記特定のサービスを前記エンドユーザの端末へ提供させることを特徴とする。
【0051】
本発明に係るさらに別のソフトウェアは、特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記中継装置を出現させるソフトウェアであって、前記装置に、前記サービスアンカー装置もしくは自身より前記サービスアンカー装置寄りに存在する中継装置により自身内に作り出されたコピーを保持させ、保持されたコピーを利用して自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出させることを特徴とする。
【発明の効果】
【0052】
以上のとおりであるから、本発明によれば、例えば、エンドユーザへのサービス提供に関係する各事業者に対し、従来にない様々な優位性を有するプラットフォームを提案することが可能になる。
【発明を実施するための最良の形態】
【0053】
以下、本発明の実施の形態について図面を用いて説明する。
【0054】
本発明の一実施形態に係るサービス提供システムは、仮想アーキテクチャを技術基盤としたサービスプラットフォームであり、複数のデータセンタ(以下、「DC」という。)が階層的に接続されて、階層化された仮想化空間を形成するものである。本実施形態で使われる仮想化技術は、例えば、「日経BPムック/すべてわかる仮想化大全」(日経BP社、ITPro編、2006年10月30日発行)に記述されている。
【0055】
ここで、本実施形態で提供される「サービス」について説明しておく。例えば、映画、ドラマ、音楽、広告、ゲーム等のコンテンツを配信するだけでも「サービス」の提供になるが、例えば、アンケート回答、ショッピング申込等の双方向通信を付加したコンテンツ配信を「サービス」として提供したり、例えば、テレビ電話会議、オンライン対戦ゲーム等の複数のエンドユーザが同時に参加する通信を「サービス」として提供したりすることも可能である。
【0056】
「サービス」は後述のソフトウェアアプライアンスを含む形で、当該サービスの提供主(例えば、コンテンツホルダ)が、サービスを配信したい全てのエリアを配下に持つデータセンタ(後述のサービスアンカーDC)に提供する。
【0057】
そして、「データセンタ」(DC)とは、単体のサーバにより構成されてもよいし、一箇所に集められたサーバ群、ストレージ群、ネットワーク装置等により構成されてもよいものである。
【0058】
各DCの運用者は、例えば、インターネット事業者、ケーブルテレビ事業者、固定電話事業者、携帯電話事業者等であり、DC毎に運用者が異なってもよい。
【0059】
DCとDCの間は、専用線が敷設されてもよいし、広帯域や帯域保証等の条件が満たされる次世代ネットワーク(NGN)、IP−CATVネットワーク等の基幹網で接続されてもよい。本実施形態に係るサービス提供システムは、ニュートラルな回線環境上で構築でき、電話キャリア、ケーブルテレビ、携帯キャリアなどを横断的に利用可能である。
【0060】
本発明の一実施形態に係るサービス提供システムは、複数のDCを含み、その中には、下記の3種類のDCがあり得る。つまり、上記の仮想化空間は、3層以上に階層化され得る。
【0061】
1番目は、「サービスアンカーDC」である。サービスアンカーDCは、サービスないしコンテンツの製作者又はこの製作者の委託を受けた者(サービスの提供主)から本システムへ渡されたプログラム(後述のソフトウェアアプライアンス)やデータのオリジナルを保持し、本システム内でのサービス提供元となる(サービス毎に一つ存在する)DCである。このDCには、後述する「オリジン・プレーン」(O-plane)が組み込まれる。
【0062】
2番目は、「エンドユーザ収容DC」である。エンドユーザ収容DCは、サービスの提供先であるエンドユーザの端末に接続するDCであり、一つのサービスアンカーDCに対して複数設けることができる。このDCには、後述する「プロバイダ・プレーン」(P-plane)が組み込まれる。
【0063】
3番目は、「中継DC」である。中継DCは、サービスアンカーDCとエンドユーザ収容DCとの間の経路上に一つ又は複数設けられて(これで、3層又は4層以上となる)、両者の間で送受信されるメッセージやデータを中継したり、後述するソフトウェアアプライアンスのマイグレーション等を助けたりするDCである。また、一つのサービスアンカーDCに対して多数のエンドユーザ収容DCが設けられる場合、エンドユーザ収容DCを幾つかのグループに分けて、各グループを担当する(配下に置く)中継DCを設ければ、サービスアンカーDCへの負荷集中を軽減可能になる。中継DCには、後述する「ミラー・プレーン」(M-plane)が組み込まれる。
【0064】
複数のサービスを提供する場合、物理的に一つのDCが、あるサービスについてはサービスアンカーDCとして、別のサービスについてはエンドユーザ収容DCとして、(さらに別のサービスについては中継DCとして、)機能することが可能である。つまり、一つのDCに、3種類のプレーンのうちの2つ以上を組み込むことができ、あるサービスについては「オリジン・プレーン」が動作し、別のサービスについては「プロバイダ・プレーン」が動作することが可能である。
【0065】
よって、例えば、複数のDCが木構造で接続されている場合、木構造のルートに位置するDCを中央DC、ブランチに位置するDCを中間DC、リーフに位置するDCを末端DCとすると、あるサービスについては、中央DCがサービスアンカーDC、中間DC又は末端DCがエンドユーザ収容DCとして機能するとともに、別のサービスについては、中間DCがサービスアンカーDC、末端DCがエンドユーザ収容DCとして機能することが可能である。
【0066】
木構造を生かして、例えば、中央DCを国レベルで一つ設置するDC、中間DCを都道府県レベルで一つずつ設置するDC、末端DCを市町村レベルで一つずつ設置するDCとしてもよい。また、中央DCと各末端DCとの間に、2つ以上の中間DCを設置してもよく、例えば、中央DCと都道府県レベルの各中間DCとの間に、東北、関東、北陸等の地方レベルの中間DCを設置してもよい。DC間で木構造を構成することで、配下を持つ地域ブロック単位での独自サービスが簡易に実現できる。
【0067】
なお、あるサービスについて、一つのDCがサービスアンカーDCとエンドユーザ収容DCを兼ねて機能することも可能である。つまり、DCが自己の収容するエンドユーザのみに対して独自のサービスを提供する場合は、「オリジン兼プロバイダ・プレーン」が動作して、自身が提供元であるサービスを自らエンドユーザに提供する。このDCは、別のサービスアンカーDCが提供元であるサービス(独自のサービス以外のサービス)については、エンドユーザ収容DCもしくは中継DCとして機能(「プロバイダ・プレーン」もしくは「ミラー・プレーン」が動作)する。
【0068】
本実施形態において、「プレーン」とは、基盤となる所定の処理を担当すべくコンピュータ上で実行される一連のプロセスであり、好ましくは、仮想化ミドルウェア(例えば、VMware社のVMware ServerやVMware ESX ServerもしくはVMware Infrastructure、Microsoft社のVirtual Server、XenSource社のXen等)上で動作するように作製されたソフトウェアにより実現される。
【0069】
サービスアンカーDCとエンドユーザ収容DCが直接(中継DCを介さずに)接続する場合、オリジン・プレーンとプロバイダ・プレーンが通信し、また必要に応じて同期をとることにより、一つのサービス・プレーンを形成する。
【0070】
サービスアンカーDCとエンドユーザ収容DCが一つ又は複数の中継DCを介して接続する場合、オリジン・プレーンとプロバイダ・プレーンが一つ又は複数のミラー・プレーン経由で通信し、また必要に応じて同期をとることにより、一つのサービス・プレーンを形成する。
【0071】
そして、一つのサービス・プレーンが、一つのサービスを提供する。同じサービスアンカーDCとエンドユーザ収容DCの組であっても、複数の異なるサービスを提供する場合は、複数のサービス・プレーンが形成される。あるサービスアンカーDCからあるエンドユーザ収容DCへのサービス・プレーンは、そのエンドユーザ収容DCが接続する一つ又は複数のエンドユーザ端末に対してサービスを提供し、同じサービスを別のエンドユーザ端末に対して提供する別のエンドユーザ収容DCへは、同じサービスアンカーDCからの別のサービス・プレーンが形成される。
【0072】
以上に説明した本実施形態に係るサービス提供システムの全体構成の一例を俯瞰した様子を、図1に示しておく。
【0073】
さて、本実施形態において、ソフトウェアアプライアンス(以下、「SA」という。)は、サービス提供機能を有するアプリケーションプログラムを少なくとも含むプログラムであり、好ましくは、サーバの仮想化技術におけるゲストOSとアプリケーションプログラムとを一体化したプログラムとするとよい。
【0074】
そうすれば、仮想化ミドルウェアがインストールされているコンピュータ(本システムでは、DC)であれば、どのようなハードウェアやファームウェアあるいはOS(ホストOS)が採用されたコンピュータであろうが、同一のプログラムが仮想化ミドルウェア上(本システムでは、プレーン上)で動作可能である。一例として、VMware社のVirtual Applianceは、OSやアプリケーションがインストールされ設定された仮想マシン(プログラム)であり、SAとして利用できる。
【0075】
図2は、本実施形態において、仮想化技術を利用したSAを採用した場合のシステムの各構成要素の機能を説明する図である。
【0076】
各DCは、コンピューティングリソース及びホストOS上に、仮想化ミドルウェアが搭載されたサーバである。そして、各DCにおいて、その仮想化ミドルウェア上で、提供すべきサービスに必要なプレーン(3種類のプレーンのうち、そのDCが当該サービスの配信経路上のいずれに位置するかによって定まるプレーン)が動作するようにする。仮想化ミドルウェアと各プレーンが合わさって、本実施形態のサービス提供システムの仮想化環境が実現される。
【0077】
SAは、そのSAが存在するDCにおける当該サービス用のプレーン上で、そのDCのコンピューティングリソースを利用しながら動作する。SAは、当該サービスを提供するためのアプリケーションプログラムとゲストOSを含んでいる。
【0078】
SAが後述のマイグレーションをされるときには、オリジン・プレーンにより、アプリケーション配信条件情報が付加される。アプリケーション配信条件情報には、そのSAの識別子と、そのSAのコピーを保持して稼動させることによりエンドユーザにサービスを提供すべきプロバイダ・プレーンを持つDC名と、そのSAのコピーが移動していく経路上にあるミラー・プレーンを持つDC名、当該ミラー・プレーンでのSAのコピーの保持期間又は即時消去の別が当該ミラー・プレーンの数の分だけ併記されたものとが含まれる。
【0079】
SAがマイグレーションされることにより、サービスアンカーDC(サービスA,B,Cについては中央DC、サービスDについては中間DC)においてオリジナルのSAが動作している一方で、エンドユーザ収容DC(サービスA,B,Dについては末端DC、サービスCについては中間DC)においてSAのコピーが動作している状態になる。
【0080】
サービスA,Bについては、サービスアンカーDCからエンドユーザ収容DCへの経路上に中継DC(中間DC)が存在し、そこで、SAのマイグレーションが中継されるため、SAのミラーリングデータ(SAのコピーであるが、後に消去される)が所定の期間存在することになる。所定の期間は、上記のアプリケーション配信条件情報により指示されるものであり、即時消去が指定されていた場合には、中継DCは、エンドユーザ収容DCもしくは自身より下位の中継DC内に、SAのコピーを生成し終わると、ミラーリングデータを消去する。
【0081】
なお、ミラー・プレーンは、サービス毎に存在する必要はなく、いずれのサービスに対しても同様に、マイグレーションの中継を行う。また、ミラーリングデータは、一時的に中継DCのリソースを利用するだけであるため、ミラー・プレーンの管理するリソースは、複数のサービスのマイグレーションについて共有で用いられる。
【0082】
SAに含まれるアプリケーションプログラムには、2つの種類があり得る。後(あと)同期型と随時更新型である。後述のプログラムのマイグレーション機能が実行される際、後同期型のSAは、サービスアンカーDCにおけるオリジナルの動作とエンドユーザ収容DCにおけるコピーの動作との間にある程度の時間的「差」があってもよいが、随時更新型のSAは、両者の間に時間的「差」がほとんど生じないように同期がとられながら移動される。
【0083】
本実施形態において、サービスは、前述のようにいろいろなビジネス形態、技術仕様を想定している。したがって、それぞれのサービスを構成するアプリケーションプログラムの特性により、後同期型/随時更新型を使い分けて利用することが実際的である。
【0084】
例えば、文章を書く、絵を描くというような個人での単体事務作業などに使われるアプリケーションであれば、プログラムの時系での変化も多くないから、後同期でよい。
【0085】
しかし、時間で状況が変化するゲーム(例えば、キャラクターを育てていくゲームなどは、個人利用だが時間変化がある)のようなアプリケーションや、時間で変化するコマーシャル提供が付加されたアンケートつきビデオ配信のようなアプリケーションは、サービスアンカーDCとエンドユーザ収容DCで同一時間にアプリケーションが同一進行していることが望ましい。こうしたアプリケーションプログラムでサービスを行おうとする場合、本システムでは、随時更新型に適したマイグレーションを実現することが可能である。
【0086】
これにより、例えば、サーバへアクセスすることで実現するオンライン対戦ゲームのようなサービスも、そのサービス用のサーバソフトウェアがサービスアンカーDCで動作し続けていながら、同一のサーバソフトウェアがサービス・プレーン上をエンドユーザ収容DCまで動的に移動してきて、サービスアンカーDCとエンドユーザ収容DCで同じ状態をとりながら動作し続けるため、各エンドユーザ端末は、遠くのサービスアンカーDCにオリジナルが存在して稼動を続けているサービスについて、その動的な状態を含めて同一のサービスを、近くのエンドユーザ収容DCから提供してもらうことが可能になる。
【0087】
図3は、上述したSAのマイグレーションが行われる本実施形態に係るサービス提供システムの動きの概要を説明する図である。
【0088】
エンドユーザの端末がサービスの提供を受けるために実際にアクセスするのは、近くにあるエンドユーザ収容DCである。エンドユーザの端末は、サービスの提供を受けるため、コンピューティング機能、表示機能、コントローラ機能等を備えるが、それらの機能と、エンドユーザ収容DCに接続するネットワークとの間に、セットトップボックスが存在してもよい。
【0089】
エンドユーザの端末から上流を見た場合、そこにはユーザ・インタフェースしか見えず、サービスを提供する実体がエンドユーザ収容DCであるのか、サービスアンカーDCであるのか、またその間にどのような中継DCがあるのか等は、エンドユーザの端末からは見えないようになっていると、便利である。
【0090】
また、サービスに係るアプリケーションやデータのプロバイダが、サービスアンカーDCとは別に存在する場合、それらのプロバイダからは、サービスアンカーDCに対するサービスプロバイダ・インターフェースしか見えず、サービスがどのような経路で配信されてエンドユーザの端末に提供されているかは見えないようになっていると、便利である。
【0091】
本実施形態に係るサービス提供システムは、このように、ユーザ・インタフェースとサービスプロバイダ・インターフェースとの間のプラットフォームを形成可能なものである。
【0092】
そして、このプラットフォームにおいては、サービス毎に、オリジン・プレーン、ミラー・プレーン、プロバイダ・プレーンが接続されて形成されたサービス・プレーン上を、当該サービスのSAがマイグレーションされていく(ミラー及びコピーが作出されていく)ことにより、アプリケーションプログラムが、サービス提供元のサービスアンカーDCから、エンドユーザ収容DCへ張り出していく。なお、アプリケーションプログラムが利用するデータについては、同様に張り出していってもよいし、別な方式で配信されてもよい。
【0093】
このアプリケーションの張り出しは、サービスアンカーDCにより制御されており、サービス・プレーンを形成する3種類のプレーンの階層関係により、上位から下位への許諾という制御関係が保たれる。
【0094】
なお、本システムにおいて、サービス・プレーンはサービス毎に形成され、3種類のプレーンもサービス毎に存在するが、各プレーンの実体のプログラムコードは、その上で動作するSAが提供するサービス内容の相違に関わらず、共通のものを使うことができ、各プレーンが参照する配信経路やリソースの情報を、サービス毎に異ならせておけばよい。
【0095】
本実施形態に係るサービス提供システムの別の特徴は、配信経路の途中のDCも、リソースをそのまま利用してサービス提供元になることが可能な点にある。図3には、中継DCが2つ示されているが、そのいずれのDCも、それぞれが、いま提供中のサービスとは別の、そのDC独自のサービスについて、オリジン・プレーンを導入して、新たにサービスアンカーDCとなることができ、既存のサービスについての中継DCでもあり続けることができる。
【0096】
これは、本システムの各DCの基礎部分が、ハードウェアとホストOSの上に仮想化ミドルウェアを搭載した形式で、共通化されており、その上に、プレーンを形成する(SAを稼動させる論理的な占有空間を準備する)ことで、どのDCでも、サービス提供元としての機能を導入することができるからである。
【0097】
さらに、同一DC内で、既存のミラー・プレーンと新たなサービスのオリジン・プレーンとは、同じ仮想化ミドルウェア上で動作するため、互いのリソース不足を補うような協調連携をとることも可能である。
【0098】
本実施形態に係るサービス提供システムのさらに別の特徴は、ユーザプロファイルの管理場所をサービスアンカーDCとすることで、各エンドユーザのサービス利用情報が、サービス提供元に還流し、一箇所に集まって管理されることが可能な点である。
【0099】
各エンドユーザの端末にサービス利用情報の記録を残すと、どの端末でそのサービスを利用したかによってプロファイルの管理場所が異なってしまい、一元管理が難しくなるが、本システムのように、どのサービスを利用したかによって定まる場所、すなわち、そのサービスの提供元であるサービスアンカーDCへ、各エンドユーザの利用情報をフィードバックするようにすれば、端末に束縛されないサービス提供が可能になる。また、サービスの提供元(サービスアンカーDC)や提供主(サービスプロバイダ)が、全てのエンドユーザの利用情報を、配信経路にかかわらず、簡易に入手することが可能になる。
【0100】
以上に概要を説明した本実施形態に係るサービス提供システムを活用すれば、例えば、従来バラバラに存在した事業モデル(例えば、地域と中央、コンテンツホルダと配信事業者等)を連結して、新しいサービス配信のビジネスモデルを創造することが可能になり、各々の事業者が提供するサービスの制御で、独自の事業と自身が包含されるより大きい事業とを棲み分けながら展開することや、キャリア、端末、DCをクロスオーバーするグローバルなマルチフィールドサービスを実現することも可能になる。
【0101】
図4は、本実施形態に係るサービス提供システムを構成する各DCの内部構成の一例を示す図である。
【0102】
まず、図4でエンドユーザ収容DCに設置されている「サービスボックス」について説明する。サービス提供主から依頼をうけたサービスアンカーDCの運用者は、そのサービスのSA(アプリ)をサービスアンカーDC内にオリジン・プレーンと併せて準備する一方で、そのサービスについてエンドユーザ収容DCとなるべきDCに設置されることになる「サービスボックス」を準備する。
【0103】
「サービスボックス」は、例えば、ハードウェアを含むワンボックスサーバとして準備されてもよいし、ハードウェア無しでソフトウェアのみで準備されてもよい。「サービスボックス」がハードウェアを含む場合、ブレードサーバの筐体に収納するサーバブレードのように、1つずつが、サーバに装着されるとサーバの一部を構成して動作可能となるユニットであって、CPU、メモリ、ハードディスク、回線等のリソースを有するものとして準備されてもよい。
【0104】
「サービスボックス」がソフトウェアだけの場合は、所定の仕様のハードウェアが準備されている環境へ自動インストールされるようなオートブート機能を含むCDやDVDのような形で準備されると便利である。このソフトウェアが自動インストールされると、既存のサーバ(DC)内に、サービスボックスに相当する仮想サーバ空間が、仮想的に形成されることになる。
【0105】
エンドユーザ収容DCの運用者は、自社の事業として、新たなサービスをエンドユーザへ提供しようとした場合、複数あるサービスアンカーDCの多数のサービスのうちのいずれのサービスを自社で提供するか、決めることができる。エンドユーザ収容DCの運用者が、あるサービスを自社で提供することを決めた場合、そのサービスのサービスアンカーDCの運用者と必要に応じてサービス提供に関する契約を結び、当該サービスアンカーDCの運用者が準備している「サービスボックス」を購入し、その「サービスボックス」をエンドユーサ収容DC上に設置すれば、エンドユーザ収容DCにおいて当該サービスのプロバイダ・プレーンが動作して、サービスアンカーDCと通信し、エンドユーザ収容DCがエンドユーザへサービスを提供することが可能になる。
【0106】
このため、サービスボックスには、サービスアンカーDCへアクセスするための情報(サービスアンカーDCのアドレス等と、中継DCを経由するのであれば中継DCのアドレス等とを含む情報)と、プロバイダ・プレーンを実現するソフトウェアとが予め含まれている。このソフトウェアには、プロバイダ・プレーンの実体のほかに、当該プロバイダ・プレーンをエンドユーザ収容DCに組込む初期段階で使用される自動プレーン追加構成ソフトウェアを含んでもよい。
【0107】
また、サービスアンカーDCへアクセスするための情報には、サービスアンカーDCならびに当該サービスのオリジン・プレーンへログインするための情報や、当該サービスの利用情報を格納するサービスアンカーDC内の場所を特定するための情報等を含んでもよい。
【0108】
サービスボックスが設置される前のエンドユーザ収容DCを、仮想化ミドルウェアがインストールされているものとしておけば、複数のエンドユーザ収容DC用に準備するプロバイダ・プレーンは、それらのDCが異なるOS(ホストOS)等を採用するものであっても、共通のソフトウェアで実現することができる。
【0109】
サービスボックスには、さらに、そのサービスの提供のために追加的に必要となるリソースをエンドユーザ収容DCに補充するため、サービスアンカーDCの運用者が決めたスペックのハードウェアを含んでいてもよい。サービスボックスが設置される前のエンドユーザ収容DCを、仮想化ミドルウェアがインストールされているものとしておけば、どのようなハードウェアをサービスボックスに含ませても、エンドユーザ収容DC用においてそのハードウェアを自身のリソースに追加することができる。
【0110】
サービスアンカーDCへ至るまでに経由する中継DCの情報や、サービスの提供のために追加的に必要となるリソースは、それぞれのエンドユーザ収容DCによって、異なる可能性がある。このように各エンドユーザ収容DCに固有のものは、そこへ配布するサービスボックスに含ませておくことにより、後でサービスアンカーDC側から配信するSAは、複数のエンドユーザ収容DCに共通のものとすることができる。
【0111】
新たにサービスの開始を決めたエンドユーザ収容DCの運用者は、その新たなサービスのための特別なハードウェアやソフトウェアを自ら用意しなくとも、所定のリソースを満たす仮想化ミドルウェア環境を全てのサービスに共通なものとして準備しておけば、その上に新たに購入したサービスボックスを設置するだけで、エンドユーザへサービスを提供することができる。
【0112】
さらに、どのサービスも同じ仮想化環境上で提供できるということは、エンドユーザ収容DCの運用効率が向上することを意味する。
【0113】
また、サービスボックスがハードウェア込みで提供される場合、そのハードウェアが最適化されて自動で設置先の環境に組み込みされるようにサービスボックスを作成しておけば、エンドユーザ収容DCの運用者には、ソフトウェアだけでなくハードウェアも含めて、当該サービスを運用してゆくための専門的技術知識や運用ノウハウなどが不要となり、さらに事業者負担を減らすことができる。
【0114】
こうしたサービスボックスの特徴は、エンドユーザへのサービス提供の接点となる中小の事業者(例えば、地域限定のケーブルテレビ事業者やインターネット事業者等)が、自社のユーザ(エンドユーザ)に提供するサービスのセットに、事業者毎の自主性を持たせることを可能にする。
【0115】
サービス提供主から依頼をうけたサービスアンカーDCの運用者は、上記の「サービスボックス」を準備する一方で、サービスアンカーDC内にオリジン・プレーン及びSAのオリジナルを準備するが、このとき、「サービスボックス」を購入した者が運営するエンドユーザ収容DC及びそこへ至るまでの中継DCの情報(エンドユーザ収容DCのアドレス等と、中継DCを経由するのであれば中継DCのアドレス等とを含む情報)を、オリジン・プレーンが参照できる情報として格納しておく。
【0116】
本システムでは、各サービスに係るアプリケーションの張り出しが、そのサービスのサービスアンカーDCにより中央集権的に制御されるが、その制御の際にサービスアンカーDCが参照するのが、上記で格納されたエンドユーザ収容DC及び中継DCの情報である。サービスアンカーDCでは、全ての出現し得るエンドユーザ収容DC及びそこへ至る経路を把握できるため、途中の中継DCでミラーリングデータを保持すべき期間を計算したり、マイグレーション中継のために必要なリソースを予測したりすることができる。
【0117】
上述したアプリケーション配信条件情報は、これらの計算ないし予測に基づいて、サービスアンカーDCが作成することができるものである。また、当該サービスのマイグレーション中継のために必要なリソースについては、サービスアンカーDCの運用者から各中継DCの運用者へ、前もって伝えられ、各中継DCの運用者は、実際にそのサービスのマイグレーションが始まる前に、リソースを共有する他のサービスとの関係を考慮して、リソースが不足しそうであれば補充しておく。
【0118】
以下には、各プレーンの詳細な動作の一例を、フローチャート(図5〜図9)及び説明図(図11〜図18)を用いて記述する。
【0119】
オリジン・プレーンは、サービス毎に一つ設けられ、プロバイダ・プレーンは、サービス毎に設けられるオリジン・プレーン一つに対し、複数設けられることが可能であり、ミラー・プレーンは、複数のサービスから共有されることが可能である。
【0120】
まずは、図10を用いて、各プレーンによるコンピューティングリソースの利用について説明しておく。
【0121】
個々のサービスは、アプリケーションプログラム(AP)と、そのアプリケーションの動作するOS(ゲストOS)、そしてそのサービスがエンドユーザによって選択され動作するときに利用されるデータ(Data)で構成される。
【0122】
例えば、図示するように、サービスAについて、中央DCが提供元(サービスアンカーDC)になる場合、サービスアンカーDCには、その提供サービスの配信元になるオリジン・プレーンがある。エンドユーザの接続を持つ末端DCには、プロバイダ・プレーンが、アプリケーションやデータを中継する中間DCには、ミラー・プレーンが、存在する。1つのサービスについて、これら3つのプレーンがつながった1つのサービス・プレーンが、仮想化空間として形成される。
【0123】
アプリケーションA、B,Cは、アプリケーションのオリジナルの存在する中央DCから、途中の中間DCでミラーされながら、各末端DC(図示した末端DCは、サービスA,Bを選択している)まで移動され、エンドユーザが接続してくる末端DCにアプリケーションのコピーが存在する状態になる。
【0124】
図示した例では、アプリケーションとOSが一体化したSAが、そのサービスについての仮想化空間であるサービス・プレーン上を、あたかも張り出していくような動きで、移動する。その移動の中継をするミラー・プレーンは、他のサービスについても同様に移動の中継を行う。つまり、ミラー・プレーンは、複数の中継対象のアプリケーション(ここではA,B,C)から共用され、中間DCのリソースを複数のアプリケーションにより共有して利用する。
【0125】
上述した移動の制御権は、ミラーリングデータが作られたりアプリケーションのコピーが作られたりするミラー/プロバイダプレーンより、上位のプレーンにある。よって、末端DCで提供されているサービスであっても、そのサービスの制御として、例えば、利用者へのメニュー表示制御、入力制御、課金制御等を、サービスの提供元であるサービスアンカーDCのオリジン・プレーンが行うようにすることができる。
【0126】
オリジン・プレーンは、サービスの提供元として、個々のSAのオリジナル、全プログラムデータ、各エンドユーザのサービス利用記録が格納蓄積されるエンドユーザプロファイル・データベースを管理対象として含む。そして、個々のサービスのプログラムと全データ分のリソース容量を、占有的に確保宣言する。
【0127】
ミラー・プレーンは、オリジンからプロバイダへの橋渡しをする領域を、リソース共有領域として保有する。これは、オリジンから移動の命令とともに受け取るはずの複数のSA及びそのデータの転送のための領域であり、定常的に共用される。
【0128】
もしサービスAが、上位のオリジン・プレーンから下位のプロバイダ・プレーンへ移動している最中(「オリジンからミラーへのコピー時間t1+ミラーからプロバイダへのコピー又は移動時間t2」の間)だとすると、サービスAのために利用されているミラー・プレーンの領域は、その間は優先度が上がり他のサービスには利用できない。
【0129】
しかし、サービスAについて、オリジンからのコピー(移動元にオリジナルが残り移動先にコピーがある状態にする移動)と次の配下のミラー又はプロバイダ・プレーンへのコピー又は移動が終わった状態だとすると、ミラー・プレーンの領域は、サービスAの受信用かつ送信元用に利用していたリソースのうちコピー保持に必要な最小限の領域を残して、A以外の他のサービスのミラーリング処理のために割り当てられることが可能となる。
【0130】
プロバイダ・プレーンは、自身の上で稼動するサービスの「サービス利用者数×利用率×コンテンツ容量」を計算し、この計算に基づくリソース容量(一定の値を超える容量)を占有的に確保宣言する。図10では、エンドユーザ収容DCに、SAのコピーは存在しているがデータのコピーは未だ受け取っていない状態を図示しているが、SAもデータもマイグレーションされてくる前に、リソースの占有宣言を行う。この占有宣言は、サービスボックス設置時に自動的に行うように構成することができ、それにより、サービス開始時や廃止時にはサービスボックスの設置を付けたり外したりするだけで末端DCのリソース割り当ての運用が済むという手軽さが実現できる。
【0131】
ここでの占有とは、物理的な領域の確保ではなく、仮想化環境下での最大利用時のCPU、メモリ、ハードディスクの割り当て量の宣言とすることができ、実際にその稼動状況が最大値にいたらなければ、他のサービスへリソースをまわす(各プレーンが自らのプレーン内だけでなく他のプレーンへもリソースを融通する)ことができる。
【0132】
本システムでは、仮想化資源を共有利用することのできる仮想化環境の上に、サービス毎に、サービス・プレーンという配信基盤を構築し、1つのサービス・プレーンが3種類のプレーンから形成されるようにして、層状の木構造を構成することができる。
【0133】
図5及び図11は、あるサービスのサービスアンカーDCの配下で、エンドユーザ収容DCとなるDCにサービスボックスが設置されたときの動作の一例を説明する。
【0134】
サービスアンカーDCの運用者は、これに先立って、サービスボックスを準備して、エンドユーザ収容DCとなるDCの運用者に渡している(S300)。
【0135】
サービスボックスは、例えば、仮想化環境を考慮して容量計算されたハードウェアリソースとして存在する物品であり、その中には、後の工程で移動してくるSAが一定の数のエンドユーザに向けてサービス提供を行うために必要とするリソースと、プロバイダ・プレーンという仮想環境とが含まれる。また、サービスアンカーDCの場所と、そこへの自動アクセスツールも含まれる。
【0136】
サービスボックスに含めるリソースの容量は、サービス利用者数、利用率、コンテンツ容量等をパラメータとして計算することができる。例えば、途中でのアンケート機能付の動画ドラマ配信というサービス(韓国ドラマa、日本ドラマb等のコンテンツがサービス内のメニューで用意される)の場合、同時にそのサービスを利用する人数、双方向の機能であるアンケート機能の利用率、メニューとして提供される個々のコンテンツの容量等を計算式への変数として、特定条件下(最もアクセスの多そうな曜日や時間など)で一定の基準(レスポンスタイム)を満たすようなリソース(CPU性能、メモリ容量、HDD容量、回線バンド幅ほか)を計算し、サービスボックスに含めておく。
【0137】
サービスボックスがエンドユーザ収容DCとなるべきDCに設置されると、自動的に自身をそのDCに組み込む機能を有しているプロバイダ・プレーンは、その組み込みの際に、一定の値を超える容量のリソースを占有的に確保宣言するが、そこで占有宣言されるリソースの容量と、サービスボックスに含められたリソースの容量は、同じであってもよいし、異なっていてもよい。
【0138】
すなわち、サービスボックスには、サービスアンカーDCで把握している利用者数や利用率に基づいて計算されるリソース容量が含まれるが、エンドユーザ収容DCの方が利用者(エンドユーザ)について精度の高い予測ができるのであれば、その予測に基づいて定められる容量のリソースを占有宣言すればよい。前者が後者より少ない場合には、プロバイダ・プレーンは、サービスボックスのリソースにDCのリソースを加えて占有するし、前者が後者より多い場合には、サービスボックスのリソースのうちの一部を占有し、残りの部分はDCで行われる他の処理に利用されることになる。
【0139】
そして、サービスボックスがエンドユーザ収容DCへ渡される一方で、オリジン・プレーンは、初期設定として、次の動作を行っている(S305)。
【0140】
オリジン・プレーンは、自身が組み込まれたサービスアンカーDCにおいて、自身が担当するサービス(図11では、サービスA)の提供のための所定のリソースを確保宣言し、そのリソースを利用して、自身の上にサービスAを提供するためのSAを常駐させる。また、サービスAについてエンドユーザ収容DCとなるべきDCの情報を(間に中継DCがある場合はその情報も)、格納しておく。
【0141】
そして、オリジン・プレーンは、サービスAについてプロバイダ・プレーンから後述の終了時還流又は随時還流してくる利用情報を格納する特定の場所を、自身が組み込まれているDCが利用できるハードディスク等に定める。この格納場所は、物理ディスクとして定められてもよいし、物理ディスク名でない別名のディスクボリュームとして認識され、遠隔地に存在してもよい仮想ディスクとして定められてもよい。
【0142】
また、ストレージの仮想化技術を用いてもよく、その場合は、格納場所についての仮想ディスクと物理ディスクのマッピングテーブルを生成し、オリジン・プレーンの利用するディスクを仮想ディスクとしてSAにマウントし、状態を管理するようにして、プロバイダ・プレーン上で動作するSA(コピー)からもそのディスクが利用されるようにする。
【0143】
その後、オリジン・プレーンは、エンドユーザ収容DCのプロバイダ・プレーンから呼び出され、ログインを受け付ける(S310)。このように受付されたプロバイダ・プレーンに対しては、以降、アプリケーションのバージョンアップやパッチの供給等があった場合に、自動アップデートのためのメッセージ等を送信したり、新しいデータが登録された場合に、新着通知メッセージ等を送信したりする。
【0144】
上述したようにオリジン・プレーンにより初期設定が行われる一方で、サービスボックスが設置されたエンドユーザ収容DCにおいては、プロバイダ・プレーンが、自身が搭載されているサービスボックスがDCに設置されたことを検出し(S100)、次のように初期設定を行う(S105)。
【0145】
プロバイダ・プレーンは、設置先のDC(エンドユーザ収容DC)の環境変数を取得し、このDCのリソースプールに、サービスボックスの有するリソースを追加する。そして、サービスボックスを含むDCのリソースプールの中から、自身が担当するサービスの提供のための所定のリソースを確保宣言する。これにより、プロバイダ・プレーンが、設置先のDC内に形成され、リソースを利用した動作(他のDCとの接続を含む)を行うことが可能になる。
【0146】
その後、プロバイダ・プレーンは、サービスボックス内に予め格納されている「サービスアンカー」の情報を参照し、そのサービスアンカーが存在するDCへ(中継DCの情報も書き込まれている場合はそのDC経由で)接続し、該当するオリジン・プレーンを呼び出し、ログインする。これにより、プロバイダ・プレーンとオリジン・プレーンが(中継DCを挟む場合はミラー・プレーン経由で)通信可能になり、一つのサービス・プレーンが出現する。例えば、プロバイダ・プレーン内で発生したエラーやアラートは、オリジン・プレーンへ通知される。
【0147】
次に、プログラムのマイグレーションが行われる段階になると、オリジン・プレーンは、エンドユーザ収容DCのプロバイダ・プレーンから、SAのマイグレーション要求を受け取る(S315)。なお、オリジン・プレーンは、ログインを受け付けた際に(S310)、下記のマイグレーションのための準備を開始することにより、マイグレーション要求に対する応答を早めるようにしてもよい。
【0148】
オリジン・プレーンは、上記の要求に応じて、自身の上に常駐させたSAを、エンドユーザ収容DCのプロバイダ・プレーン上へ(間に中継DCがある場合はミラー・プレーン経由で)、マイグレーション(移動)する(S320)。マイグレーションされるSAには、マイグレーションの経路や途中のミラー・プレーンでのアプリケーションの保持について指示する情報として、アプリケーション配信条件情報を付加する。このアプリケーション配信条件情報の付加が、マイグレーションのための準備に含まれる。
【0149】
DC間でSAを移動させる処理は、静的に行ってもよいし(コールド・マイグレーション)、動的に行ってもよい(ホット・マイグレーション)。
【0150】
コールド・マイグレーションの場合は、オリジン・プレーン上のSAが稼動中であれば一旦停止させ、SAをエンドユーザ収容DCへダウンロードしてSAのコピーを作り出し、そのSAのコピーをプロバイダ・プレーン上で起動する。
【0151】
サービスアンカーDCとエンドユーザ収容DCの両方で同じSAを走らせるべきサービスについては、オリジン・プレーン上のSAは、上記ダウンロードのためのサービスアンカーDCにおける作業が終わった時点で、稼動を再開する。
【0152】
コールド・マイグレーションで足りるのは、後同期型アプリケーションで構成されるSAの場合であり、オリジン・プレーン上で稼動するSAに比べて、プロバイダ・プレーン上で稼動するSAのコピーは、古い状態をとることになる。
【0153】
そこで、マイグレーション後は、エンドユーザ収容DCにおけるSAのコピーのサービスアンカーDCのSAに対する差を時々解消するように、例えば、任意の時間間隔で、サービスアンカーDCから当該サービスに係るプロバイダ・プレーンを有するエンドユーザ収容DCへ、同期をとるための差分(パッチ)やバージョンアップソフトウェアが一斉に配信される。
【0154】
ホット・マイグレーションの場合は、オリジン・プレーン上で稼動中のSAを停止させることなく、また、そのSAとエンドユーザの端末との間で通信のためのセッションが張られている場合には、そのセッションを途切れさせることなく、SAのコピーを徐々にエンドユーザ収容DCに作り出していき、完全なコピーができると、オリジン・プレーン上のSAからプロバイダ・プレーン上のSAのコピーへ、サービス提供の制御権が移る。
【0155】
サービスアンカーDCとエンドユーザ収容DCの両方で同じSAを並列に(ほぼ同時に同じ状態をとるように)走らせるべきサービスについては、プロバイダ・プレーン上のSAのコピーへサービス提供の制御権が移った後も、オリジン・プレーン上のSAはそのまま残存して動作し続け、管制権も持ち続ける。
【0156】
ホット・マイグレーションが有効なのは、随時更新型アプリケーションで構成されるSAの場合であり、サービスアンカーDCで稼動するSAとエンドユーザ収容DCで稼動するSAのコピーとの差は、ほとんど生じない。
【0157】
そして、マイグレーション後も、十分に短い間隔で、サービスアンカーDCからエンドユーザ収容DCへ、同期のための確認情報(例えば、プログラムのカウンターに相当する状態を一意に示すデータ等)が送信され、この確認情報を受信したプロバイダ・プレーンは、SAのコピーの状態管理と照らして差分があると判断される場合、差分量をサービスアンカーDCへ送信することにより、最新状態になるようプログラムの送信要求をする。サービスアンカーDCは、要求を送信してきたエンドユーザ終了DCへ、差分量に相当するプログラムの状態を送信する。
【0158】
SAが仮想マシンである場合、動的なマイグレーションのためには、例えば、VMware社のVMotionや、Xenのライブ・マイグレーション機能を使用することができる。
【0159】
なお、SAの自動アップデートをするときにも、最初にSAを配信するのと同様の動的なマイグレーションにより、バージョンアップやパッチを各エンドユーザ収容DCへ配信してもよい。
【0160】
プログラムのマイグレーションが行われる際の、プロバイダ・プレーンの動作は、次のとおりである。
【0161】
まず、プロバイダ・プレーンは、サービスボックス内に予め格納されている「マイグレーション元」(サービスアンカーDCの場合もあれば、中継DCの場合もあってよい)の情報を参照し、そのマイグレーション元のDCへ(そこへ至るまでに経由するDCの情報も書き込まれている場合はそのDC経由で)、SAのマイグレーション要求を送信する(S115)。
【0162】
その結果として、SAの静的もしくは動的なマイグレーションを受けると、先に確保宣言したリソースを利用して、自身の上にSA(コピー)をセットアップし、動作を開始させる(S120)。なお、サービスアンカーDCで付加されたアプリケーション配信条件情報が途中のミラー・プレーンで削除されずに、SA(コピー)に付随して受け取られた場合は、付随情報を削除する。
【0163】
ミラー・プレーンは、アプリケーションが稼働中のまま止まらない状態での多段の移動を実現するために、自身より上位(サービスアンカー側)と下位(エンドユーザ側)の接続プレーンに対して、移動の状態を管理しながらアプリケーションを移動させる機能を持っている(S220)。
【0164】
ミラー・プレーンが上位から受け取るアプリケーションに付加された(最初はサービスアンカーDCで付加される)アプリケーション配信条件情報には、例えば、(1)そのアプリケーションの識別子、(2)途中通過するミラー・プレーンを持つDC名、(3)そのミラー・プレーンでアプリケーションが保持される(コピーがそのまま保持される)期間又は消去される(当該ミラーから次のミラーへの移動のためのコピーが終了した時点で当該ミラーのコピーが消去される)のかの指示情報が、通過するミラー・プレーンの数の分、(4)保持する場合の最小占有ミラー領域リソース量、(5)最終到達DCとなるプロバイダ・プレーンを持つDC名、が含まれている。
【0165】
ミラー・プレーンは、アプリケーションの移動に関して状態管理を行い、自身と下位への指示を行う。ミラー・プレーンは、上位プレーンからコピーされてきている時間t1が終了したことを確認後、すぐに配下のプレーンへ同アプリケーションのコピー又は移動を開始する。つまり、t1終了後できるだけ短時間で、下位プレーンへのコピー又は移動を行う時間t2が開始されるよう、連続したコピー処理を実現する。このため、ミラー・プレーンは、上位プレーンから自身へのアプリケーションのコピー作業中に、アプリケーション配信条件情報を指示命令として受け取り、次の下位プレーンの場所情報を準備して、上位からのコピーの完了を待つ機能を有するとよい。
【0166】
具体的には、ミラー・プレーンは、上位のプレーンからアプリケーション自動移動のミラー先として自身が指定された移動実行の命令を受け取ると、まずアプリケーション配信条件情報を取り出し、さらに予め準備してある共通領域へ、上記アプリケーション配信条件情報付きのアプリケーションを格納し始める。格納がすべて終わると、ミラー・プレーンは、上記アプリケーション配信条件情報に従って、次のミラー又はプロバイダをアプリケーション自動移動先として指定し、移動実行の命令を自身及び下位の移動先プレーンの双方へ出す。
【0167】
自身から下位の移動先へのコピーが終了した時点で、上記アプリケーション配信条件情報が消去を指定している場合は、自身(ミラー・プレーン)にあるアプリケーションのコピーは消去される(結果として、移動のみとなる)。上記アプリケーション配信条件情報が保持期間を指定している場合は、ミラー・プレーンの共通領域に格納されているアプリケーションのコピーはそのまま格納された状態となる(S225)。
【0168】
以上のように、本システムにおけるプログラムのマイグレーションは、自分より上位のDCのプレーンからの移動命令をうけて、SAがサービスアンカーDCからエンドユーザ収容DCへ移動するもので、サービスアンカーDCを最上とした上位から下位方向への制御が行われる。つまり、サービス提供元であるサービスアンカーDCに、プログラムの移動の経路やタイミングを制御する権限があり、複数のエンドユーザ収容DCに対するサービス提供の全体を統括することが可能である。
【0169】
よって、サービスアンカーDCから当該サービスに係るプロバイダ・プレーンを有する全てのエンドユーザ収容DCへ、例えば、季節に合わせて、一斉に新しいプログラムを配信することができ、随時のサービス機能追加等が、サービス提供主からのSAの提供を受けるオリジン・プレーンが存在する一箇所のDCで、全てのプロバイダ・プレーンへの命令として実行できる。
【0170】
また、一箇所から広がる命令でプログラムのマイグレーションをすることにより、随時更新型のアプリケーションについて、最新状態を維持しながらプログラムの分散配置が可能となり、例えば、中央DCで稼動しているプログラムと末端DCで稼動している同じプログラムとの間で、プログラムの動作結果がずれてしまう非同期性を最小にすることができる。
【0171】
図6及び図12は、ミラー・プレーンは事前に存在しているがサービスAのプロバイダ・プレーンを持たない中間DCの配下の末端DCで、サービスAのサービスボックスが設置されたとき(S400)の動作の一例を説明する。
【0172】
図5及び図11の場合と同様に、末端DCにサービスボックスが設置されることで自動的にプロバイダ・プレーンが形成され(S405)、「サービスアンカー」情報が示すオリジン・プレーンへのログインがミラー・プレーン経由で行われ(S410)、「マイグレーション元」情報が示すプレーン(この場合は、サービスアンカーDCである中央DC)へのSA移動要求がミラー・プレーン経由で伝えられる(S415)。
【0173】
図6及び図12の場合は、サービスAのためのSAの自動移動が最初からミラー・プレーンの中継機能を利用して行われることが分かっているため、末端DCに設置されるサービスボックスには、サービスアンカーが中央DCであるという情報に加えて、サービスアンカーまでの経路途中にミラー・プレーンがあるということとその場所(パス)の情報が、予め仕込まれている。
【0174】
また、この場合のミラー・プレーンには、配下のプロバイダ・プレーンの規模やサービス視聴率などを取り込んだ予測計算式に従って事前に割り出されたリソース容量が、人手で、下位のDCにサービスボックスが設置されるのに先立って、組み込まれている(S205)。
【0175】
プロバイダ・プレーンにおけるリソースの事前の容量計算と同様に、但し、プロバイダ・プレーンの対象がエンドユーザであるのに対して、ミラー・プレーンの対象が下位のDC(エンドユーザ収容DC又は中継DC)点は相違させて、ミラー・プレーンに組み込むべきリソース容量を事前計算することができる。例えば、サービス利用DC数、利用率、コンテンツ容量等をパラメータとして計算する。
【0176】
ここで、ミラー・プレーンが、プロバイダ・プレーンからサービスアンカーDCへのSA移動要求を受け取ったとき、既に同じサービスのSAを他のプロバイダ・プレーンへ向けて移動させる作業を行っており(S240、S245)、且つ、その際にオリジン・プレーンから所定期間ミラーリングデータ(SAのコピー)を保持するように指示されていたとする。
【0177】
その場合、ミラー・プレーンは、SAのコピーを(動的なマイグレーションの場合は稼動させたまま)保持しており(S250)、オリジン・プレーンから指定された保持期間が経過すると(S255)、そのSAのコピーを消去する(S260)。
【0178】
そして、ミラー・プレーンは、プロバイダ・プレーンからサービスアンカーDCへのSA移動要求を受け取ったとき、SAのコピーが保持されている間であれば(S230)、その要求をサービスアンカーDCへ転送せずに、自身から下位のプレーンへSAのコピーを移動させる作業を行う(S235)。
【0179】
その場合に下位のプレーンへ移動させるSAのコピーに付加すべきアプリケーション配信条件情報は、以前にそのミラーリングデータを上位のプレーンから受け取ったときの情報に基づいて作成できるようにしてもよいし、サービスアンカーDCが、以前に中継DCに作成したミラーリングデータについて、新たにアプリケーション配信条件情報を作成して別途中継DCへ送信するようにしてもよい。
【0180】
また別の方法として、ミラーリングデータの保持期間を「2007年10月10日まで」のように指定しておき、サービスボックスに予め格納する「マイグレーション元」の情報が、上記の保持期限までは中継DC、それ以降はサービスアンカーDCを指示するようにしておいてもよい。その場合、ミラー・プレーンは、ミラーリングデータ保持期間中は、自身に対するSA移動要求を受け取って下位のプレーンへSAのマイグレーションを行い、期間経過後は、サービスアンカーDCに対するSA移動要求を受け取って上位のプレーンへ転送することになる。
【0181】
図7及び図13、図14は、サービスAのプロバイダ・プレーンを持ってエンドユーザへサービスを提供している中間DCの配下の末端DCで、サービスAのサービスボックスが設置されたとき(S500)の動作の一例を説明する。
【0182】
なお、この場合、中間DCに接続するエンドユーザと、末端DCに接続するエンドユーザとは、異なる利用者であると想定できるが、同じエンドユーザが中間DCへも末端DCへも接続して、いずれの経路でも同じサービスAの提供を受けられるようになっていてもよい。
【0183】
図5及び図11の場合と同様に、末端DCにサービスボックスが設置されることで自動的にプロバイダ・プレーンが形成され(S505)、「サービスアンカー」情報が示すオリジン・プレーンへのログインがミラー・プレーン経由で行われ(S510)、「マイグレーション元」情報が示すプレーンへSA移動要求が送られる(S515)。
【0184】
図7及び図13の場合は、サービスボックスに予め格納された「サービスアンカー」情報が示すDCと、「マイグレーション元」情報が示すDCとが異なっており、SA移動要求の方は、中間DCに対して送られることになる。そして、中間DCのプロバイダ・プレーンは、末端DCのプロバイダ・プレーンに対し、オリジン・プレーンに代わってプログラムのマイグレーションを行う。
【0185】
具体的には、中間DCのプロバイダ・プレーンは、サービスアンカーDCから見て自身よりもエンドユーザ寄りのDCに、自身の上で動作しているSA(コピー)と同一のサービスに係る「サービスボックス」が設置されて、新たにエンドユーザ収容DCが出現した場合、その新たなエンドユーザ収容DCのプロバイダ・プレーンから、SAのマイグレーション要求を受け取る(S135)。
【0186】
中間DCのプロバイダ・プレーンは、上記の要求に応じて、自身の上で動作しているSA(コピー)を、新たなエンドユーザ収容DCへ、マイグレーション(移動)する(S140)。マイグレーションの処理は、オリジン・プレーンがプロバイダ・プレーンに対して行うものと同様である。
【0187】
新たなエンドユーザ収容DCのプロバイダ・プレーン上には、SA(コピー)のコピーが作り出されてセットアップされ、新たなDCが配下とするエンドユーザ端末へのサービス提供が可能になる(S520)。一方で、中間DCのプロバイダ・プレーン上で動作しているSA(コピー)は、そのまま動作を続け、元々当該中間DCが配下としている(新たなDCが配下とするエンドユーザ端末とは異なってよい)エンドユーザ端末へのサービス提供は継続する。
【0188】
図14に示すように、上記の機能を有するプロバイダ・プレーンが組み込まれるDCには、ミラー・プレーンも組み込まれており、プロバイダ・プレーンは、最初だけ、SAのマイグレーションの配信元として機能し(図13)、以降は、ミラー・プレーンが、サービスアンカーDCからの中継機能を果たす(図14)。
【0189】
すなわち、新たなエンドユーザ収容DCのプロバイダ・プレーンは、自動アップデートのための情報や、初期データ、最新データ等については、プログラムのマイグレーション元である本DCではなく、サービスアンカーDCから受け取るため、これらをサービス・プレーン上で配信する場合は、本DCは、サービスアンカーDCと新たなエンドユーザ収容DCとの間に位置する中継DCとして働くことになる。
【0190】
このため、サービスAを末端DCで運用した場合に中間DCで準備すべきリソースの容量を、末端DCのプロバイダ・プレーンの規模やサービス視聴率などを取り込んだ予測計算式に従って事前に割り出しておき、その分のリソースを、人手で、末端DCにサービスボックスが設置されるのに先立って追加し、リソースプールを拡充しておく。
【0191】
拡充されたリソースプールは、ミラー・プレーンが複数のサービスについて共用する部分となる。よって、サービスAのミラー用に追加するリソースは、サービスA専用に準備する場合よりも少なくてよく、既存のサービスBのミラー用のリソースも利用できる。
【0192】
このように、プロバイダ・プレーンに、オリジン・プレーンの一部に代わる機能を設けるのは、プログラムのマイグレーションについても、サービスアンカーDCへの負荷集中を軽減するためである。なお、後述するように、初期データや動的データについては、P2Pネットワーク等の配信技術を用いることで、負荷集中を軽減することも可能である。
【0193】
以上に詳述した一連の自律し自動化された分散型の配信機能が実現することにより、サービスアンカーDCへのアプリケーション要求の負荷集中を避けることができるとともに、エンドユーザへのサービス提供を行いたい(プロバイダ・プレーンを導入したい)末端や中間DCへの技術者準備などの運用負担がかからないようにすることができる。
【0194】
また、アプリケーションプログラムとデータを別々のタイミングと方式で配置ないし配信することができるため、アプリケーションの応答性が向上し、また、エンドユーザへの動的データ配置が可能になり、ネットワークの混雑の平準化が図られる。
【0195】
図8の前半及び図15は、プログラムのマイグレーション後に、初期データをマイグレーションする動作の一例を説明する。
【0196】
本システムでは、1つのサービスにより複数のコンテンツ(データ)を提供することができ、これらのコンテンツは、利用者にはメニュー名のような形式で見える。例えば、「ビデオ通信教育」というサービスの中に、「クイック料理」というメニューがある形式である。ここでは、そうした提供メニューの1つがコンテンツ(データ)としてサービスアンカーに登録された後の各プレーンの動きを説明する。
【0197】
オリジン・プレーンは、自身の上で動作しているSAから利用されるコンテンツ等のデータを、自身の上に登録する(S330)。あるサービスのコンテンツを登録する場合、コンテンツ自体のデータに加えて、サーバ名、サービス種類(例えば、動画配信、オンラインゲーム、テレビ電話通信等)、サービスポート(例えば、TCP/IPのポート番号)、利用するリソースなどのパラメータが、関連情報として登録される。これらの関連情報を含めて、以下に述べるマイグレーション対象のデータとなる。
【0198】
そして、オリジン・プレーンは、ログインの受付がされたエンドユーザ収容DCのプロバイダ・プレーンに対し(間に中継DCがある場合はミラー・プレーン経由で)、登録されたデータに関する情報(例えば、タイトルや簡単な内容説明、利用するリソース等)を新着情報として通知する(S335)。
【0199】
プロバイダ・プレーンは、ログインしたサービスアンカーDCのオリジン・プレーンから新着情報の通知を受け取り、新着情報を表示する(S150)。そして、エンドユーザ収容DCの運用者が新着のデータをそのサービスでエンドユーザに対して提供するデータとして選択すると、データの送受信のためのリソースを確保した上で、サービスアンカーDCのオリジン・プレーンへ、データの呼び出し要求を送信する(S155)。
【0200】
データ配信をサービス・プレーンに沿って行う場合は、データの呼び出し要求も、サービスボックス内に予め格納されている「サービスアンカー」情報で特定される中継DCのミラー・プレーンを経由するように、経路情報を付加して送信するとよい。サービス・プレーンと関係なくデータ配信する場合は、データの呼び出し要求も、宛先となるサービスアンカーDCを特定して送信するだけで構わない。
【0201】
オリジン・プレーンは、エンドユーザ収容DCのプロバイダ・プレーンから、データの呼び出し要求を受け取る(S340)と、要求に応答して、例えば、経時的に変化しない初期データのコピーをエンドユーザ収容DCに作り出す(S345)。これは、初期データを静的にダウンロードして実現するのでもよいし、オリジン・プレーン上で稼動中のSAから利用され続けている初期データのコピーを徐々にエンドユーザ収容DCに作り出す動的なマイグレーションで行ってもよい。
【0202】
プロバイダ・プレーンは、送られてきた初期データを受け取り、その初期データ(コピー)を自身の上で動作しているSA(コピー)から利用できるようにする(S160)。
【0203】
本システムでは、アプリケーションプログラムを含むSAは、オリジン・プレーンとプロバイダ・プレーンと間に中継DCがある場合はミラー・プレーンとから仮想的に形成される一つのサービス・プレーン上を移動するようにしているが、データの配信に関しては、サービス・プレーン上で行ってもよいし、サービス・プレーンと関係なく行ってもよい。
【0204】
サービス・プレーン上で行う場合は、サービスアンカーDCが、配信すべきデータに、配信経路(経由すべき中継DC及びエンドユーザ収容DC)を特定する情報や、必要に応じて途中のミラー・プレーンでのデータの保持に関し指示する情報を付加して送出する。
【0205】
そして、プロバイダ・プレーンからデータの呼び出し要求を受けたミラー・プレーンは、ミラーリングデータを保持していない場合は、データの呼び出し要求をサービスアンカーDCへ転送し(S276)、上位のプレーンからデータのコピーを受け取って中継する(S278)が、保持していれば(S272)、サービスアンカーDCへデータの呼び出し要求を転送することなく、自身から下位のプレーンへそのデータのコピーを渡す(S274)ようにしてもよい。
【0206】
初期データの容量が大きければ、プログラムの配信と同様に、ミラー・プレーンの機能を使って、サービス・プレーン上で転送するのが好ましいが、容量の小さいデータ(後述の動的データを含んでもよい)の場合には、サービス・プレーンと関係なく配信する方が、サービスアンカーDCとエンドユーザ収容DCの間の非同期性をより小さくできることがある。
【0207】
サービス・プレーンと関係なく行う場合は、データ配信の宛先となるエンドユーザ収容DCさえ特定して送出すれば、ネットワークが自律的にデータを転送することになる(サービス・プレーンを形成する中継DCを経由せずに転送される場合もある)ため、その時々で最適な配信経路が形成されるIPマルチキャストやP2Pネットワーク等のオーバーレイ・ネットワークの技術を組み合わせて利用することも可能であり、それにより、ネットワークの輻輳低減を図ることも可能になる。宛先となるエンドユーザ収容DCが多数の場合、例えば、TVBank社のgridvodと呼ばれるストリーミング型VoD配信システムの技術を使ってデータを配信すると、比較的簡単に、サービスアンカーDCへの負荷集中を軽減することができる。
【0208】
図8の後半及び図16は、プログラム及び初期データのマイグレーション後に、最新データを配信する動作の一例を説明する。
【0209】
プロバイダ・プレーンは、自身の上で動作しているSA(コピー)から利用できるデータを、例えば、メニュー形式で、エンドユーザに対して提示する(S165)。エンドユーザがその中からサービス提供して欲しいデータを選択すると、プロバイダ・プレーンはその選択されたデータの初期データ(既にエンドユーザ収容DCにコピーがある)を呼び出すとともに、サービスボックス内に予め格納されていた「サービスアンカー」の情報が示すDCのオリジン・プレーンへ、選択されたデータにつき、最新データの転送要求を送信する(S170)。
【0210】
サービス提供に当たり、そのエンドユーザの過去のサービス利用情報が必要な場合には、上記転送要求の中に、そのデータを選択したエンドユーザを特定する情報も含ませて、そのエンドユーザの最新の利用記録に基づいたデータを配信するよう要求するか、あるいは、最新の利用記録の確認結果を配信するよう要求する。
【0211】
データ配信をサービス・プレーンに沿って行う場合は、最新データの転送要求も、「サービスアンカー」情報で特定される中継DCのミラー・プレーンを経由するように、経路情報を付加して送信するとよい。サービス・プレーンと関係なくデータ配信する場合は、最新データの転送要求も、宛先となるサービスアンカーDCを特定して送信するだけで構わない。
【0212】
オリジン・プレーンでは、エンドユーザ収容DCのプロバイダ・プレーンから、データを利用するサービスのエンドユーザへの提供を開始するに当たって、そのサービス提供に利用するデータにつき、最新データの転送要求を受け取る(S350)。
【0213】
オリジン・プレーンは、上記の要求に応答して、以下の2つの処理のうちいずれかもしくは両方を行う(S355)。1つは、動的データ(例えば、SAの動作につれて変化するアプリケーションのステイタス情報等)の最新のもの(コピー)を、エンドユーザ収容DCへ送る処理である。もう1つは、エンドユーザに対してサービスを提供するに際し、そのエンドユーザがそのサービスを過去に利用していたときの状態等のデータが必要である場合、後述するようにサービスアンカーDCに各エンドユーザのサービス利用情報が記録されているため、これを読み出して必要なデータを作成し、エンドユーザ収容DCへ送る処理である。
【0214】
プロバイダ・プレーンは、送られてきた最新の動的データ(コピー)及び/又はエンドユーザのサービス利用記録が反映されたデータを受け取り、SA(コピー)によりそのデータについてエンドユーザへのサービス提供を開始する(S175)。
【0215】
なお、最新データを配信する場合も、上述した初期データの配信と同様に、サービス・プレーン上で行ってもよいし、サービス・プレーンと関係なく行ってもよい。また、サービス・プレーン上の途中のDCに存在するミラーリングデータを活用してもよいし、上述したオーバーレイ・ネットワークの技術を利用してもよい。
【0216】
図17は、エンドユーザへデータを利用したサービスを提供中に、最新データを配信する動作の一例を説明する。
【0217】
エンドユーザ収容DCに対して、上述した最新データを配信して、エンドユーザへのサービス提供が開始された後、そのデータを利用するサービス提供を終了したという通知を受け取るまでの間(エンドユーザへのサービス提供中)、動的データはその間も変化する可能性があるため、オリジン・プレーンから、定期的に、最新の動的データ(コピー)を、エンドユーザ収容DCへ送り続けるようにしてもよい。
【0218】
プロバイダ・プレーンでは、エンドユーザへのサービス提供中に、最新の動的データ(コピー)が継続して送られてくるならば、これを受け取り、SA(コピー)から利用できるようにする。
【0219】
サービス提供中の最新の動的データの配信は、上述したようにプッシュ型で行ってもよいし、サービス提供開始時と同様にオンデマンド型で行ってもよい。図17には、データD1を、オンデマンド型で配信する例が示されている。
【0220】
動的に生成され、サービス利用時に必要となるデータの配信には、P2Pオーバーレイ・ネットワークの技術を用いると、IPマルチキャスト等の他の配信方法に比べて、特殊なハードウェア機材が不要である、インタラクティブなアプリケーションに対応可能である等の利点がある。
【0221】
以上のように、データを利用したサービス提供が開始される都度、サービスアンカーへそのデータにつき初期参照するようにすると、エンドユーザ収容DCでは、配信データの管理面でのサービスの運用作業が不要になる。また、データが必要になったときに送られてくるので、資源効率に優れており、プロバイダ・プレーンが有するべき平均的なリソースを少なく抑えることが可能になる。
【0222】
図17には、データD2として、もう一つ別のデータ配信方法も示されている。データD1の方法によるべきか、D2の方法によるべきかは、データの属性によって定まる。動的データが、例えば、オンラインで複数エンドユーザにより共有されるデータである等、サービスアンカーDCのみで(他のDCにコピーを置かずに)管理すべきデータである場合は、データD2のように配信することになる。
【0223】
具体的には、オリジン・プレーンは、エンドユーザへのサービス提供中に、そのサービス提供に利用するデータにつき、エンドユーザ収容DCのプロバイダ・プレーンからのアクセス要求を受け付け、サービスアンカーDCにあるデータを直接参照もしくは書き込みさせる。つまり、データD2については、オリジン・プレーンを固定位置とし、その存在場所が仮想環境上を動かさないように、管理する。
【0224】
プロバイダ・プレーンは、データD2については、サービスボックス内に予め格納されていた「サービスアンカー」の情報が示すDCのオリジン・プレーンへアクセスし、サービスアンカーDCにあるデータを直接参照もしくは書き込みする。つまり、サービスアンカーDCにあるデータをオリジン・プレーンを介して読み出して自身(プロバイダ・プレーン)の上で動作しているSA(コピー)へ渡したり、そのSA(コピー)から出力されるデータをオリジン・プレーンを介してサービスアンカーDCのストレージに記入したりする。
【0225】
初期データは、例えば、アプリケーションの背景、メニュー起動直後の表示、共通機能として常時表示されている内容等である。ロールプレイングゲーム等のオンラインゲームでは、例えば、ゲームの場面や登場人物の基本データ、選択メニューにあたるものが初期データとなる。
【0226】
動的データは、例えば、アプリケーションの進捗や変化により随時変わって提供されるものであり、アプリケーションのステイタス(状況、フェーズ、段階等)に合わせて随時利用者へ提供されるデータである。ロールプレイングゲームの例では、ゲームの場面が開始時から変わった場合、登場人物の動き(何かを殴る)などによって変化する次のデータ(殴ったものが壊れる)などにあたるものが動的データとなる。
【0227】
事例のロールプレイングゲームのようなアプリケーションの場合、利用者が前回どこまで進んでいたか、次回どの場面どの状況からかなどの利用履歴が必要になる。したがって、初期データの後に配信される最初の動的データとともに、最新の利用記録に基づいたデータがプロバイダ・プレーンへ送られることが必要となる。
【0228】
図9及び図18は、エンドユーザへのサービス提供中もしくは提供終了後に、サービス利用情報をサービス提供元へ還流する動作の一例を説明する。
【0229】
サービス利用情報を提供元にフィードバックするタイミングとして、終了時還流が適しているアプリケーションと、随時還流が適しているアプリケーションとがあり得る(S185)。
【0230】
また、フィードバックの方式として、還流先のサービスアンカーDCを宛先として利用情報を送信し、これを受信したサービスアンカーDCがオリジン・プレーンの定めた格納場所に書き込む送信方式と、エンドユーザ収容DCで動作しているSA(コピー)が、ローカルディスクに書き込む如くに、サービスアンカーDC内の上記格納場所に利用情報を書き込む直接方式とがあり得る。
【0231】
送信方式の場合、利用情報は、上述したデータの呼び出し要求や最新データの転送要求と同様、サービス・プレーンに沿って転送されてもよいし、サービス・プレーンに関係なく転送されてもよい。
【0232】
直接方式の場合、サービスボックスには、「サービスアンカー」情報の一部として、利用情報を格納するためのディスクの場所やディスク名が、予め格納されている。そして、「サービスアンカー」情報で特定されるサービスアンカーDCのディスクにネットワークを介して利用情報を書き込むために、その場所まで、ネットワークマウント先を伸ばす。つまり、遠隔地にあるサービスアンカーDCの物理ディスクのスペースを、エンドユーザ収容DCの仮想ディスクとしてマウントする。
【0233】
エンドユーザ収容DCからサービスアンカーDCへの利用情報の転送は、サービス・プレーンに関係ない経路で行ってもよいが、例えば、ストレージの仮想化技術を用いて、オリジン・プレーンの利用する仮想ディスク(サービスアンカーDC内にあるディスクとは限らない)がプロバイダ・プレーン上で動作するSA(コピー)から利用されるようにする場合には、サービス・プレーン上で行うとよい。この場合、プロバイダ・プレーン上のSA(コピー)は、利用記録に関してローカルのディスクに書き込むような振る舞いをするが、仮想環境下なので、そのポインタは実際にオリジン・プレーンで管理するハードウェアリソースを指しており、利用記録がサービス・プレーン上をフィードバックして書き込み動作をするように見える。
【0234】
なお、データD1のような例えばP2P配信でも、データD2のような直接参照でも、同じ「サービスアンカー」情報に基づいて行われるため、データの配信方法には依存せずに、利用記録はサービスアンカーDCへ戻される。
【0235】
具体的には、プロバイダ・プレーンは、終了時還流では、自身の上で動作しているSA(コピー)が、エンドユーザにより選択されたデータについてのサービス提供を終了すると、そのエンドユーザの利用情報(いつどのデータをどのように利用したか)を作成し(S190)、サービスボックス内に予め格納されていた「サービスアンカー」の情報が示すDCのオリジン・プレーンへ向けて、作成した利用情報を出力する(S195)。すなわち、送信方式の場合は送信し、直接方式の場合は書き込むことによって、オリジン・プレーンに受け取らせる。
【0236】
随時還流では、プロバイダ・プレーンは、自身の上で動作しているSA(コピー)が、予め定められた一定の間隔又は予めアプリケーション内で定められているフィードバック点に達するごとに、サービスボックス内に予め格納されていた「サービスアンカー」の情報が示す格納場所に、そのエンドユーザの利用情報(いつどのデータをどのように利用したか)を書き込む(直接方式での出力となる)。
【0237】
随時還流は、SA(コピー)が動作中のフィードバックであり、利用情報の内容が、即時性の高いものや経時に依存するものである可能性が高いため、複数回のやりとりをする送信方式よりも、ディスクに書き込む直接方式をとるのが好ましい。終了時還流を終了時に行われる随時還流としてもよい。
【0238】
オリジン・プレーンは、エンドユーザ収容DCのプロバイダ・プレーンから、データを利用したサービスのエンドユーザへの提供を終了するに当たって、そのサービス提供に利用したデータにつき、そのエンドユーザの利用情報を受け取る。さらに、サービスの提供中も、随時、利用情報を受け取るようにしてもよい(S360)。
【0239】
そして、オリジン・プレーンは、受け取った利用情報を、当該サービス毎、エンドユーザ毎に記録しておく(S365)。いずれのエンドユーザ収容DCに接続しているエンドユーザについても、同一のサービスの利用情報(いつどのデータをどのように利用したか)は、同一のサービスアンカーDCにフィードバックされて管理される。
【0240】
図19は、本システムにおいて、サービス利用情報が全体的にどのように管理されることになるかを俯瞰する図である。
【0241】
サービスは、上位のデータ配信事業者から制限的に重なるようにしてその配下の端末へ届く。しかし、端末にはユーザ情報や記録を残さず、全ての利用記録がサービスアンカーへその利用者情報とともに返される。
【0242】
各コンテンツのサービスアンカーへエンドユーザの利用記録及び利用者情報(プロファイル)を返す処理は、エンドユーザ収容DCのプロバイダ・プレーンの制御で行われるため、その先に接続するエンドユーザの端末、通信機器、表示機器等には依存しない。
【0243】
結果として、エンドユーザによるサービス利用の記録は、サービス提供元へ集約される。これにより、層状の木構造で重畳するサービス提供を行っても、サービス提供元へその利用記録が漏れなく還流し、また、各サービスアンカーとなる事業者の主体性、自主性を保ちつつ、上流からの利用制御をサービス毎に独立して行うことが可能になる。
【0244】
最後に、ミラー・プレーンの機能をまとめて説明しておく。ミラー・プレーンは、定常的に上位サービスの共有領域として用いられる。
【0245】
ミラー・プレーンは、オリジン・プレーンとプロバイダ・プレーンのブリッジとして働くため、オリジン・プレーンにより発行される命令の実行と、その命令に従ってオリジン・プレーンとプロバイダ・プレーンとの間のルートを維持することを基本機能としている。さらに、プログラムのマイグレーションでは、利用予測に基づいた一定期間のミラーリングデータ保持を行い、データ配信では、データD1についてのP2Pホップの管理等を行う。
【0246】
サービス提供主(サービスアンカーDCの運用者の顧客に相当する)かサービスアンカーDCの運用者自身が、当該サービスについて予め多くの中間や末端DCがエンドユーザ収容DCになることを求めるとわかっている場合、サービス開始時に発生するサービスアンカーDCへの集中的なアクセスを避けるため、中継DCに、通信負荷の大きいプログラムのマイグレーションが多く行われる一定期間(例えば、サービス開始直後から1週間など)、移動のみであれば他のサービス用に割り当てられるリソースをそのまま当該サービス用に維持し、ミラーリングデータを保持することで、ミラー・プレーンとプロバイダ・プレーン間だけでプログラムのマイグレーションが行われるようにする。これにより、人気のあるアプリケーション公開当初のつながりにくく、時間がかかり利用しにくいという問題を解消することが可能になる。
【0247】
具体的には、中継DCの運用者は、初期設定として、各サービスについて、配下のDCに置かれる予定のサービスボックス(プロバイダ・プレーン)の数や、そのサービスで利用されるデータ(コンテンツ)の容量や、そのサービスの予想される利用率等を考慮し、これらのサービスから共有される「ミラー・プレーン」のリソースとして割り出された容量のリソースを、中継DCのリソースプールに追加する。
【0248】
なお、共有のリソースは、後述するプログラムのマイグレーションが現に行われようとしているサービスに対して優先的に確保され、そのサービスに係るSAのマイグレーションが完了し、後述するミラーリングデータを保持しておく必要もなくなったときに、他のサービスに対して割り当て可能になるよう解放される。
【0249】
ミラー・プレーンは、第1の中継機能として、プログラムの動的なマイグレーションを中継する機能を有することが好ましい。
【0250】
この場合、ミラー・プレーンは、サービスアンカーDCもしくは自身よりサービスアンカー寄りの中継DC(上位のDC)で稼動しているSAのコピーを、徐々にミラー・プレーン上に作り出していき、完全なコピーができると、ミラー・プレーン上のSAのコピーが制御権を獲得する。
【0251】
作り出されたSAのコピーは、サービスアンカーDCで付加されたアプリケーション配信条件情報を伴っている。このアプリケーション配信条件情報がミラーリングデータを保持することを指示している場合は、指示されている保持期間(利用予測に基づいて定められた期間)の間は、制御権を獲得したSAのコピーが、ミラー・プレーン上で動作し続ける。
【0252】
ミラー・プレーン上に完全なSAのコピーができて制御権を獲得すると、次は、配下のエンドユーザ収容DCもしくはそこへ向かう次の中継DC(下位のDC)のプレーン上に、SAのコピーのコピーを徐々に作り出していく。どのDCが下位のDCとなるかは、上記アプリケーション配信条件情報を参照して定める。
【0253】
SAのコピーのコピーには、アプリケーション配信条件情報をそのまま付随させるか、あるいは、下位のDCでは使用しない部分(自身のDC名や自身でのミラーリングデータ保持期間等)を削除して付随させる。
【0254】
下位のDCのプレーン上にSAのコピーのコピーが完全に作り出されてそちらが制御権を獲得したときに、アプリケーション配信条件情報がミラーリングデータを保持しないことを指示している場合は、自身の上にできていた完全なコピーを消去する。
【0255】
以上のようにすることで、サービスアンカーDCで稼動中のSAが、停止することなく、ミラー・プレーンを介して移動し、エンドユーザ収容DCに稼動中の分身を作り出すことができる。
【0256】
ミラー・プレーンは、アプリケーション配信条件情報で指示された期間、ミラーリングデータ(SAのコピー)を保持する。その期間に、配下のエンドユーザ収容DCからサービスアンカーDCへのSAのマイグレーション要求を受け取った場合、これをサービスアンカーDCへ転送する代わりに、自身の上で動作しているSAのコピーを、要求を送信してきたエンドユーザ収容DCもしくはそこへ向かう次の中継DC(下位のDC)へ、マイグレーション(移動)して、その移動先のDCにSA(コピー)のコピーを作り出す。
【0257】
一方で、自身の上で動作しているSA(コピー)は、そのまま動作を続け、また別のエンドユーザ収容DCからSAのマイグレーション要求を受け取ると、そこへも同様にSA(コピー)のコピーを作り出す。このようにミラーリングデータを利用することも、プログラムのマイグレーションについて、サービスアンカーDCへの負荷集中を軽減するのに寄与する。
【0258】
ミラー・プレーンは、第2の中継機能として、サービス・プレーン上を転送される各種データやメッセージ(上位から下位へは初期データや最新データと新着通知等のメッセージ、下位から上位へは利用情報のデータと要求等のメッセージ)、プログラムの静的なマイグレーションを中継する機能(S210、S215、S270、S280、S285、S290等)を有してもよい。
【0259】
サービスアンカーDCでは、オリジン・プレーンが、各エンドユーザ収容DCとそこに至るまでに経由する中継DCの情報を記憶しており、各エンドユーザ収容DCでは、サービスボックスに、サービスアンカーDCとそこに至るまでに経由する中継DCの情報が格納されているから、サービスアンカーDCと各エンドユーザ収容DCとの間で送受信されるデータやメッセージには、宛先DCと経由すべき中継DCが順番に記述されたヘッダを付加することができる。ミラー・プレーンは、具体的には、このヘッダに従って、受信したデータやメッセージを次のDCへ送信すればよい。
【0260】
ミラー・プレーンは、第3の中継機能として、P2Pネットワークの配信技術を用い、サービス・プレーンに関係なく、初期データや動的データを中継する機能を有してもよい(フローチャートには図示していない)。
【0261】
具体的には、サービスアンカーDCもしくは中継DCから、初期データや動的データを受信すると、その受け取りが終了する前に、そのデータの宛先のエンドユーザ収容DCもしくはそこへ向かう中継DCへ、当該データを送信し始める。また、それぞれの配信データにつき、P2Pホップの管理等を行う。
【0262】
なお、本システムにおける各DCは、木構造に配置されるが、この木構造の接続とは別に、インターネット接続等を有していてもよく、その場合は、サービスアンカーDCとエンドユーザ収容DCとの間で送受信される各種データやメッセージは、中継DCを経由せずに、インターネット経由で転送されてもよい。そのインターネットにおいて、P2Pオーバーレイの技術が採用されるようにしてもよい。
【0263】
図20は、各DCとプレーンの組合せについて説明する図である。この例では、中央DCには、オリジン・プレーンだけが存在するものとする。つまり、中央DCは、エンドユーザを直接かかえる運用者ではなく、多くのアプリケーションサービスプロバイダやコンテンツサービスプロバイダを集積するサービスアカーバーとして存在する。
【0264】
この例ではまた、中間DCは、3つのプレーンのうちミラーは必ず持つものとする。ミラーに加えて、直接エンドユーザを抱えてサービス提供をしたい場合は、プロバイダ・プレーンを設けることが可能である。末端DCは、上位のDCからのコピーを提供するプロバイダ・プレーンを必ず持つものとする。
【0265】
そして、中間と末端の両DCは、中央DCと同じように、自らのアプリケーションサービスプロバイダやコンテンツサービスプロバイダを募ることで、オリジン・プレーンを持つことができる。
【0266】
以上をまとめると、図20に示すように、中央DCは1通り、中間DCは3通り、末端DCは2通りのプレーンの組み合わせを持つことが可能である。DCが、3層の木構造をとるとすると、サービス・プレーンの構成は、図示のとおり、7通りがあり得る。なお、末端DCのオリジン・プレーンは、エンドユーザへの接続も有するオリジン兼プロバイダ・プレーンとなる。
【0267】
図21は、図20の(3)の場合のシステムの状態の一例を説明する図である。
【0268】
図22は、本システムが、サービス・プレーン間で、DCのリソースを融通する機能を有する場合を例示する図である。
【0269】
例えば、図21のように、サービスA及びサービスBが既に運用されている状態で、新たに中間DCがサービスXを開始すべくオリジン・プレーンを新設したときに、中間DCで行われる処理を説明する。
【0270】
中間DCのミラー・プレーンは、サービスAとサービスBの末端DC(サービスBの末端DCは図示せず)への移動用に共用されている。サービスAについては、既に末端DCへアプリケーションが移動し終わっており、アプリケーション配信条件情報に書かれているミラーリングデータ保持期間も過ぎているとする。
【0271】
この場合、これまでサービスAのミラー用に割り当てられてきたリソースを含むミラー・プレーンの一部が、別のサービスのプレーン(ここでは、サービスCのオリジン・プレーン)として流用される。
【0272】
このように、同じDCの中で、互いに異なるサービスが利用しているプレーン同士が共同的に働くことにより、あるサービスの配信経路の途中にあるDCが、別のサービスの提供元になることが、より簡易に実現できるようになる。
【0273】
また、例えば、図14のように、中間DCが、サービスA及びサービスBのミラー・プレーンとして既に運用され、且つ、サービスAのプロバイダ・プレーンとしても既に運用されている状態で、中間DCが直接抱えるエンドユーザからサービスAへのアクセスが急増し、サービスAのプロバイダ・プレーンのリソースが不足し出したときに、中間DCで行われる処理は次のようになる。
【0274】
中間DCは、元々は末端DCへのミラー用の共用領域として割り当てていたサービスAのミラー・プレーンの一部を、サービスAのプロバイダ・プレーンへ流用する。この流用は、サービスAについて、既に末端DCへアプリケーションが移動し終わっており、アプリケーション配信条件情報に書かれているミラーリングデータ保持期間も過ぎて、優先占有から外れたミラー・プレーンのリソースを、異なるサービス・プレーンへ流用するものである。
【0275】
図22では、3つのサービスA,B,Xが木構造になっており、これらの木構造は別々のサービス・プレーンとして構成されているが、同一DC内であるプレーンがリソース不足をきたすと、占有の必要性の低くなった別のプレーンからそのリソースがまわされて不足を補うような、プレーン間協調がとられる。これは、同一のオリジン・プレーンに対して設けられたミラー・プレーン(サービス・プレーンA2)とプロバイダ・プレーン(サービス・プレーンA1)間でも、同様である。
【0276】
こうしたリソースの動的最適配分により、協調関係のあるサービスの重畳を実現することは、3種類のプレーンが共通の仮想化ミドルウエア上に構成されるために可能になっている。
【0277】
本システムにより、例えば、各DCの運営者は、次のような事業を行うことが可能になる。概略的には、中央に近いDCは、多数の利用者に同種類のコンテンツを提供するのに対し、末端に近いDCは、少数の利用者毎に異なるコンテンツを提供することができる。
【0278】
まず、中央DCの運営者は、全国レベルでのコンテンツの配布を行うことができ、例えは、全国テレビスポットコマーシャル、映画等のPRビデオ、映画やテレビ番組の再配信、買い物チャンネル、汎用ゲーム機のオンラインゲーム、メジャーレーベルのコンテンツホルダのアーカイブ系等を提供することができる。
【0279】
そして、中間DCの運営者は、例えば、キャリアやキャリア運用サービスのテレビコマーシャル、イベントやインフォマーシャル連動などの提携コンテンツ、キャリアAPIでのオンラインゲーム、マイナーレーベルのコンテンツホルダのアーカイブ系等を提供することができる。
【0280】
さらに、末端DCの運営者は、地方に特化したコンテンツの配布を行うことができ、例えば、地域テレビコマーシャル、地域ケーブルテレビ独自番組、自治体などのPRや広報ビデオ、地域レーベルのコンテンツホルダのアーカイブ系等を提供することができる。
【0281】
以上、本発明の一実施形態について説明したが、上述の実施形態を本発明の範囲内で当業者が種々に変形、応用して実施できることは勿論である。
【図面の簡単な説明】
【0282】
【図1】本発明の一実施形態に係るサービス提供システムの全体構成を俯瞰した一例を示す図。
【図2】本発明の一実施形態に係るサービス提供システムの各構成要素の機能を説明する図。
【図3】本発明の一実施形態に係るサービス提供システムの動きの概要を説明する図。
【図4】本発明の一実施形態に係るサービス提供システムを構成する各DCの内部構成の一例を説明する図。
【図5】サービスボックスがエンドユーザ収容DCに設置されたときの各DCのプレーンの動作の一つの例を示すフローチャート。
【図6】サービスボックスがエンドユーザ収容DCに設置されたときの各DCのプレーンの動作の別の例を示すフローチャート。
【図7】サービスボックスがエンドユーザ収容DCに設置されたときの各DCのプレーンの動作のさらに別の例を示すフローチャート。
【図8】サービスで利用されるデータがサービスアンカーDCに登録された後の各DCのプレーンの動作の一例を示すフローチャート。
【図9】エンドユーザのサービス利用情報がサービスアンカーDCへフィードバックされるときの各DCのプレーンの動作の一例を示すフローチャート。
【図10】各プレーンによるリソースの利用の一例について説明する図。
【図11】サービスボックスが設置されたときの各DCの動作の一つの例を説明する図。
【図12】サービスボックスが設置されたときの各DCの動作の別の例を説明する図。
【図13】サービスボックスが設置されたときの各DCの動作のさらに別の例を説明する図。
【図14】図13の例の場合のシステムの状態について説明する図。
【図15】サービスで利用されるデータが登録されたときの各DCの動作の一例を説明する図。
【図16】エンドユーザにより選択されたサービスの提供が開始されるまでの各DCの動作の一例を説明する図。
【図17】エンドユーザへのサービスの提供中の各DCの動作の一例を説明する図。
【図18】エンドユーザのサービス利用情報がフィードバックされるときの各DCの動作の一例を説明する図。
【図19】システム全体でのサービス利用情報の管理状況について説明する図。
【図20】各DCとプレーンの組み合わせについて説明する図。
【図21】図20の(3)の場合のシステムの状態について説明する図。
【図22】プレーン間でのリソースを融通する一例について説明する図。
【符号の説明】
【0283】
101 中央DC
201〜202 中間DC
301〜304 末端DC
411〜451 エンドユーザ端末
【特許請求の範囲】
【請求項1】
特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、
エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、
前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備え、
前記サービスアンカー装置にオリジナルが保持されているアプリケーションプログラムのコピーを、前記中継装置を介して前記エンドユーザ収容装置内に作り出す手段を含み、
前記エンドユーザ収容装置が前記アプリケーションプログラムの前記コピーを動作させることにより、前記特定のサービスを前記エンドユーザの端末へ提供することを特徴とするサービス提供システム。
【請求項2】
前記サービスアンカー装置、前記エンドユーザ収容装置、及び前記中継装置に、仮想化ミドルウェアがインストールされており、前記アプリケーションプログラムの同一のコピーが、いずれの装置でも動作可能であることを特徴とする請求項1記載のサービス提供システム。
【請求項3】
前記アプリケーションプログラムのコピーを作り出す手段は、
前記サービスアンカー装置において前記アプリケーションプログラムのオリジナルを動作させたまま、動作中の前記アプリケーションプログラムのコピーを前記中継装置内に作り出し、
前記中継装置において前記アプリケーションプログラムのコピーを動作させたまま、動作中の前記アプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出し、
前記サービスアンカー装置において前記アプリケーションプログラムのオリジナルが動作を継続する一方で、前記エンドユーザ収容装置において前記アプリケーションプログラムのコピーが前記オリジナルの動作を引き継いで動作を開始するようにするものであることを特徴とする請求項1記載のサービス提供システム。
【請求項4】
前記エンドユーザ収容装置は、自身が接続するエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段をさらに有し、
前記アプリケーションプログラムのコピーを作り出す手段は、
前記エンドユーザ収容装置において前記情報に基づいて前記サービスアンカー装置へ前記アプリケーションプログラムを要求する手段と、
前記サービスアンカー装置において前記要求に応じて前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段と、
前記中継装置において自身内に作り出されたコピーを利用して自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段とを含むことを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項5】
前記エンドユーザ収容装置が前記情報を取得する手段は、前記決定に応じて前記エンドユーザ収容装置に設置されるサービスボックスに格納された前記情報を参照する手段を含み、
前記サービスボックスは、前記情報と、前記サービスアンカー装置へ前記アプリケーションプログラムを要求する手段を実現するためのソフトウェアとを格納し、前記特定のサービスを前記エンドユーザの端末へ提供するのに利用するリソースを備えることを特徴とする請求項4記載のサービス提供システム。
【請求項6】
前記中継装置が、前記特定のサービスとは別の第二のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有し、第二のサービスアンカー装置として機能することを特徴とする請求項4記載のサービス提供システム。
【請求項7】
前記第二のサービスアンカー装置としても機能する前記中継装置が、
前記サービスアンカー装置がオリジナルを保持している前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第一のソフトウェアと、
前記第二のサービスをエンドユーザの端末へ提供することが決定されたエンドユーザ収容装置からの要求に応じて、自身がオリジナルを保持している前記第二のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第二のソフトウェアと、
前記第一のソフトウェアにより利用されていたリソースの一部を前記第二のソフトウェアにより利用されるべきリソースとして割り当てる手段とを備えることを特徴とする請求項6記載のサービス提供システム。
【請求項8】
前記中継装置が、前記エンドユーザとは別の第二のエンドユーザの端末に接続する手段を有し、第二のエンドユーザ収容装置として機能することを特徴とする請求項4記載のサービス提供システム。
【請求項9】
前記第二のエンドユーザ収容装置としても機能する前記中継装置が、
前記サービスアンカー装置がオリジナルを保持している前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第一のソフトウェアと、
自身が接続する第二のエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段と、前記アプリケーションプログラムのコピーを動作させることにより、前記特定のサービスを前記第二のエンドユーザの端末へ提供する手段とを実現するための第二のソフトウェアと、
前記第一のソフトウェアにより利用されていたリソースの一部を前記第二のソフトウェアにより利用されるべきリソースとして割り当てる手段とを備えることを特徴とする請求項8記載のサービス提供システム。
【請求項10】
前記サービスアンカー装置は、前記エンドユーザ収容装置及び前記中継装置を特定するための情報を格納する手段をさらに有し、
前記サービスアンカー装置が前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段は、前記情報を前記コピーに付加する手段を含み、
前記中継装置が自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段は、付加された前記情報を参照してコピー先を決める手段を含むことを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項11】
前記中継装置は、
自身内に作り出された前記アプリケーションプログラムのコピーを保持するための手段と、
前記エンドユーザ収容装置とは別の第二のエンドユーザ収容装置から前記サービスアンカー装置への前記アプリケーションプログラムの要求の受信に応じて、前記アプリケーションプログラムのコピーが保持されているか否かを調べる手段と、
保持されていないならば、前記サービスアンカー装置へ受信した前記要求を転送する手段とを有し、
保持されているならば、保持されているコピーを利用して自身より前記第二のエンドユーザ収容装置寄りに存在する中継装置内もしくは前記第二のエンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出すものであることを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項12】
前記サービスアンカー装置が前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段は、前記コピーを保持すべき期間を示す情報を付加する手段を含み、
前記中継装置における前記コピーを保持するための手段は、付加された前記情報を参照して定められる期間、前記コピーを保持するものであることを特徴とする請求項11記載のサービス提供システム。
【請求項13】
前記中継装置は、
前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段と、前記特定のサービスとは別の第二のサービスを提供するためのアプリケーションプログラムのコピーを前記エンドユーザ収容装置内もしくはそれとは別の第二のエンドユーザ収容装置内に作り出す手段とを実現するためのソフトウェアと、
前記特定のサービスについて前記期間が経過した後は、前記コピーを保持するための手段を前記第二のサービスに係るアプリケーションプログラムのコピーを保持するために利用できるようにする手段とを備えることを特徴とする請求項12記載のサービス提供システム。
【請求項14】
前記エンドユーザ収容装置は、
前記エンドユーザとは別の第二のエンドユーザの端末に接続する第二のエンドユーザ収容装置から、前記アプリケーションプログラムの要求を受信する手段と、
前記要求に応じて自身より前記第二のエンドユーザ収容装置寄りに存在する中継装置内もしくは前記第二のエンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段と、
前記サービスアンカー装置と前記第二のエンドユーザ収容装置との間の経路上に存在する中継装置として機能する手段とをさらに有し、
前記第二のエンドユーザ収容装置は、
自身が接続する第二のエンドユーザの端末への前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための第一の情報と、前記エンドユーザ収容装置へアクセスするための第二の情報とを取得する手段と、
前記第二の情報に基づいて前記エンドユーザ収容装置へ前記要求を送信する手段と、
前記第一の情報に基づいて前記サービスアンカー装置へ前記エンドユーザ収容装置の中継装置として機能する手段を介してアクセスする手段とを備えることを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項15】
前記サービスアンカー装置は、
前記エンドユーザ収容装置を特定するための情報を格納する手段と、
前記特定のサービスにより利用可能なデータのオリジナルを保持する手段と、
前記情報を参照して、前記データのコピーを、前記中継装置を介して前記エンドユーザ収容装置内に作り出す手段とをさらに有し、
前記エンドユーザ収容装置は、
作り出された前記データのコピーを前記アプリケーションプログラムのコピーにより利用可能なデータとして記憶する手段をさらに有し、
記憶されたデータのうちエンドユーザにより選択されたデータを利用して前記特定のサービスを前記エンドユーザの端末へ提供するものであることを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項16】
前記エンドユーザ収容装置は、
前記サービスアンカー装置に保持されている前記データの最新版を要求し、この要求に応じて受信される最新データのコピーを前記アプリケーションプログラムのコピーにより利用可能なデータとして記憶する手段と、
前記アプリケーションプログラムのコピーに前記サービスアンカー装置に保持されている前記データのオリジナルを参照させる手段とを備えることを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項17】
前記エンドユーザ収容装置は、
自身が接続するエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段と、
前記特定のサービスを前記エンドユーザの端末へ提供する際に得られる利用情報を、前記情報に基づいて前記サービスアンカー装置へ向けて出力する手段とをさらに有し、
前記サービスアンカー装置は、
前記特定のサービスの利用情報を各エンドユーザについて記録する手段と、
前記エンドユーザ収容装置から出力された前記エンドユーザについての利用情報を前記記録手段に入力する手段とをさらに有することを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項18】
特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記サービスアンカー装置を出現させるソフトウェアであって、
前記装置に、
前記アプリケーションプログラムのオリジナルを保持させ、
前記エンドユーザ収容装置からの前記アプリケーションプログラムの要求を受信させ、
前記要求に応じ、前記中継装置を介して前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出すための動作をさせることを特徴とするソフトウェア。
【請求項19】
特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記エンドユーザ収容装置を出現させるソフトウェアであって、
前記装置に、
前記エンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得させ、
前記情報に基づいて前記サービスアンカー装置へ向けて前記アプリケーションプログラムの要求を送信させ、
前記要求に応じて前記中継装置を介して自身内に作り出される前記アプリケーションプログラムのコピーにより、前記特定のサービスを前記エンドユーザの端末へ提供させることを特徴とするソフトウェア。
【請求項20】
特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記中継装置を出現させるソフトウェアであって、
前記装置に、
前記サービスアンカー装置もしくは自身より前記サービスアンカー装置寄りに存在する中継装置により自身内に作り出されたコピーを保持させ、
保持されたコピーを利用して自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出させることを特徴とするソフトウェア。
【請求項1】
特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、
エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、
前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備え、
前記サービスアンカー装置にオリジナルが保持されているアプリケーションプログラムのコピーを、前記中継装置を介して前記エンドユーザ収容装置内に作り出す手段を含み、
前記エンドユーザ収容装置が前記アプリケーションプログラムの前記コピーを動作させることにより、前記特定のサービスを前記エンドユーザの端末へ提供することを特徴とするサービス提供システム。
【請求項2】
前記サービスアンカー装置、前記エンドユーザ収容装置、及び前記中継装置に、仮想化ミドルウェアがインストールされており、前記アプリケーションプログラムの同一のコピーが、いずれの装置でも動作可能であることを特徴とする請求項1記載のサービス提供システム。
【請求項3】
前記アプリケーションプログラムのコピーを作り出す手段は、
前記サービスアンカー装置において前記アプリケーションプログラムのオリジナルを動作させたまま、動作中の前記アプリケーションプログラムのコピーを前記中継装置内に作り出し、
前記中継装置において前記アプリケーションプログラムのコピーを動作させたまま、動作中の前記アプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出し、
前記サービスアンカー装置において前記アプリケーションプログラムのオリジナルが動作を継続する一方で、前記エンドユーザ収容装置において前記アプリケーションプログラムのコピーが前記オリジナルの動作を引き継いで動作を開始するようにするものであることを特徴とする請求項1記載のサービス提供システム。
【請求項4】
前記エンドユーザ収容装置は、自身が接続するエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段をさらに有し、
前記アプリケーションプログラムのコピーを作り出す手段は、
前記エンドユーザ収容装置において前記情報に基づいて前記サービスアンカー装置へ前記アプリケーションプログラムを要求する手段と、
前記サービスアンカー装置において前記要求に応じて前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段と、
前記中継装置において自身内に作り出されたコピーを利用して自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段とを含むことを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項5】
前記エンドユーザ収容装置が前記情報を取得する手段は、前記決定に応じて前記エンドユーザ収容装置に設置されるサービスボックスに格納された前記情報を参照する手段を含み、
前記サービスボックスは、前記情報と、前記サービスアンカー装置へ前記アプリケーションプログラムを要求する手段を実現するためのソフトウェアとを格納し、前記特定のサービスを前記エンドユーザの端末へ提供するのに利用するリソースを備えることを特徴とする請求項4記載のサービス提供システム。
【請求項6】
前記中継装置が、前記特定のサービスとは別の第二のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有し、第二のサービスアンカー装置として機能することを特徴とする請求項4記載のサービス提供システム。
【請求項7】
前記第二のサービスアンカー装置としても機能する前記中継装置が、
前記サービスアンカー装置がオリジナルを保持している前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第一のソフトウェアと、
前記第二のサービスをエンドユーザの端末へ提供することが決定されたエンドユーザ収容装置からの要求に応じて、自身がオリジナルを保持している前記第二のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第二のソフトウェアと、
前記第一のソフトウェアにより利用されていたリソースの一部を前記第二のソフトウェアにより利用されるべきリソースとして割り当てる手段とを備えることを特徴とする請求項6記載のサービス提供システム。
【請求項8】
前記中継装置が、前記エンドユーザとは別の第二のエンドユーザの端末に接続する手段を有し、第二のエンドユーザ収容装置として機能することを特徴とする請求項4記載のサービス提供システム。
【請求項9】
前記第二のエンドユーザ収容装置としても機能する前記中継装置が、
前記サービスアンカー装置がオリジナルを保持している前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段を実現するための第一のソフトウェアと、
自身が接続する第二のエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段と、前記アプリケーションプログラムのコピーを動作させることにより、前記特定のサービスを前記第二のエンドユーザの端末へ提供する手段とを実現するための第二のソフトウェアと、
前記第一のソフトウェアにより利用されていたリソースの一部を前記第二のソフトウェアにより利用されるべきリソースとして割り当てる手段とを備えることを特徴とする請求項8記載のサービス提供システム。
【請求項10】
前記サービスアンカー装置は、前記エンドユーザ収容装置及び前記中継装置を特定するための情報を格納する手段をさらに有し、
前記サービスアンカー装置が前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段は、前記情報を前記コピーに付加する手段を含み、
前記中継装置が自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段は、付加された前記情報を参照してコピー先を決める手段を含むことを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項11】
前記中継装置は、
自身内に作り出された前記アプリケーションプログラムのコピーを保持するための手段と、
前記エンドユーザ収容装置とは別の第二のエンドユーザ収容装置から前記サービスアンカー装置への前記アプリケーションプログラムの要求の受信に応じて、前記アプリケーションプログラムのコピーが保持されているか否かを調べる手段と、
保持されていないならば、前記サービスアンカー装置へ受信した前記要求を転送する手段とを有し、
保持されているならば、保持されているコピーを利用して自身より前記第二のエンドユーザ収容装置寄りに存在する中継装置内もしくは前記第二のエンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出すものであることを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項12】
前記サービスアンカー装置が前記中継装置内に前記アプリケーションプログラムのコピーを作り出す手段は、前記コピーを保持すべき期間を示す情報を付加する手段を含み、
前記中継装置における前記コピーを保持するための手段は、付加された前記情報を参照して定められる期間、前記コピーを保持するものであることを特徴とする請求項11記載のサービス提供システム。
【請求項13】
前記中継装置は、
前記特定のサービスに係るアプリケーションプログラムのコピーを前記エンドユーザ収容装置内に作り出す手段と、前記特定のサービスとは別の第二のサービスを提供するためのアプリケーションプログラムのコピーを前記エンドユーザ収容装置内もしくはそれとは別の第二のエンドユーザ収容装置内に作り出す手段とを実現するためのソフトウェアと、
前記特定のサービスについて前記期間が経過した後は、前記コピーを保持するための手段を前記第二のサービスに係るアプリケーションプログラムのコピーを保持するために利用できるようにする手段とを備えることを特徴とする請求項12記載のサービス提供システム。
【請求項14】
前記エンドユーザ収容装置は、
前記エンドユーザとは別の第二のエンドユーザの端末に接続する第二のエンドユーザ収容装置から、前記アプリケーションプログラムの要求を受信する手段と、
前記要求に応じて自身より前記第二のエンドユーザ収容装置寄りに存在する中継装置内もしくは前記第二のエンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出す手段と、
前記サービスアンカー装置と前記第二のエンドユーザ収容装置との間の経路上に存在する中継装置として機能する手段とをさらに有し、
前記第二のエンドユーザ収容装置は、
自身が接続する第二のエンドユーザの端末への前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための第一の情報と、前記エンドユーザ収容装置へアクセスするための第二の情報とを取得する手段と、
前記第二の情報に基づいて前記エンドユーザ収容装置へ前記要求を送信する手段と、
前記第一の情報に基づいて前記サービスアンカー装置へ前記エンドユーザ収容装置の中継装置として機能する手段を介してアクセスする手段とを備えることを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項15】
前記サービスアンカー装置は、
前記エンドユーザ収容装置を特定するための情報を格納する手段と、
前記特定のサービスにより利用可能なデータのオリジナルを保持する手段と、
前記情報を参照して、前記データのコピーを、前記中継装置を介して前記エンドユーザ収容装置内に作り出す手段とをさらに有し、
前記エンドユーザ収容装置は、
作り出された前記データのコピーを前記アプリケーションプログラムのコピーにより利用可能なデータとして記憶する手段をさらに有し、
記憶されたデータのうちエンドユーザにより選択されたデータを利用して前記特定のサービスを前記エンドユーザの端末へ提供するものであることを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項16】
前記エンドユーザ収容装置は、
前記サービスアンカー装置に保持されている前記データの最新版を要求し、この要求に応じて受信される最新データのコピーを前記アプリケーションプログラムのコピーにより利用可能なデータとして記憶する手段と、
前記アプリケーションプログラムのコピーに前記サービスアンカー装置に保持されている前記データのオリジナルを参照させる手段とを備えることを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項17】
前記エンドユーザ収容装置は、
自身が接続するエンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得する手段と、
前記特定のサービスを前記エンドユーザの端末へ提供する際に得られる利用情報を、前記情報に基づいて前記サービスアンカー装置へ向けて出力する手段とをさらに有し、
前記サービスアンカー装置は、
前記特定のサービスの利用情報を各エンドユーザについて記録する手段と、
前記エンドユーザ収容装置から出力された前記エンドユーザについての利用情報を前記記録手段に入力する手段とをさらに有することを特徴とする請求項1〜3のいずれか1項に記載のサービス提供システム。
【請求項18】
特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記サービスアンカー装置を出現させるソフトウェアであって、
前記装置に、
前記アプリケーションプログラムのオリジナルを保持させ、
前記エンドユーザ収容装置からの前記アプリケーションプログラムの要求を受信させ、
前記要求に応じ、前記中継装置を介して前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出すための動作をさせることを特徴とするソフトウェア。
【請求項19】
特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記エンドユーザ収容装置を出現させるソフトウェアであって、
前記装置に、
前記エンドユーザの端末へ前記特定のサービスを提供することの決定に応じて、前記サービスアンカー装置へアクセスするための情報を取得させ、
前記情報に基づいて前記サービスアンカー装置へ向けて前記アプリケーションプログラムの要求を送信させ、
前記要求に応じて前記中継装置を介して自身内に作り出される前記アプリケーションプログラムのコピーにより、前記特定のサービスを前記エンドユーザの端末へ提供させることを特徴とするソフトウェア。
【請求項20】
特定のサービスを提供するためのアプリケーションプログラムのオリジナルを保持する手段を有するサービスアンカー装置と、エンドユーザの端末に接続する手段を有するエンドユーザ収容装置と、前記サービスアンカー装置と前記エンドユーザ収容装置との間の経路上に存在する中継装置とを備えるサービス提供システムを実現するために、仮想化ミドルウェアがインストールされた装置に組み込まれることにより前記中継装置を出現させるソフトウェアであって、
前記装置に、
前記サービスアンカー装置もしくは自身より前記サービスアンカー装置寄りに存在する中継装置により自身内に作り出されたコピーを保持させ、
保持されたコピーを利用して自身より前記エンドユーザ収容装置寄りに存在する中継装置内もしくは前記エンドユーザ収容装置内に前記アプリケーションプログラムのコピーを作り出させることを特徴とするソフトウェア。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2009−157768(P2009−157768A)
【公開日】平成21年7月16日(2009.7.16)
【国際特許分類】
【出願番号】特願2007−336981(P2007−336981)
【出願日】平成19年12月27日(2007.12.27)
【出願人】(502456574)株式会社 インテック・ネットコア (15)
【Fターム(参考)】
【公開日】平成21年7月16日(2009.7.16)
【国際特許分類】
【出願日】平成19年12月27日(2007.12.27)
【出願人】(502456574)株式会社 インテック・ネットコア (15)
【Fターム(参考)】
[ Back to top ]