(57)【要約】サービスゲートウェイ環境においてメモリ資源を管理する方法が提供される。この方法は、ゲートウェイ環境に関連する利用可能な総メモリ空間を超える関連メモリ空間を必要とするサービス要求を受け取る工程（３２）と、各サービスインスタンスの従属するサービスインスタンスの数を求める工程（３６）と、各サービスインスタンスについて累積必要メモリ空間を求める工程（３４）と、上記サービス要求の必要メモリ空間を超える必要メモリ空間を有するとともに、サービスインスタンス数が最小のサービスインスタンス部分集合を特定する工程と、特定されたサービスインスタンス部分集合に関してメモリ資源の管理操作を実行する工程（３９）を含んでいる。
2005505832.tif 000002
【特許請求の範囲】
【請求項１】
複数のサービスインスタンスを有し、そのうちの少なくとも１つのサービスインスタンスが別のサービスインスタンスに従属しているサービスゲートウェイ環境において、メモリ資源を管理する方法であって、
上記ゲートウェイ環境に関連する利用可能な総メモリ空間を超える関連メモリ空間を必要とするサービス要求を受け取る工程と、
上記各サービスインスタンスの従属するサービスインスタンスの数を求める工程と、
上記各サービスインスタンスについて、該サービスインスタンスに従属するサービスインスタンスの必要メモリ空間を計上した累積必要メモリ空間を求める工程と、
上記サービス要求の必要メモリ空間を超える必要メモリ空間を有するとともに、サービスインスタンス数が最小のサービスインスタンス部分集合を特定する工程と、
上記特定されたサービスインスタンス部分集合に関してメモリ資源の管理操作を実行する工程を含む方法。
【請求項２】
上記メモリ資源の管理操作を実行する工程は、上記特定されたサービスインスタンス部分集合を削除する工程をさらに含んでいる請求項１記載の方法。
【請求項３】
上記サービスインスタンス部分集合を特定する工程は、上記各サービスインスタンスについて、上記累積必要メモリ空間を上記従属するサービスインスタンスの数で除算したものとして定義される割合を求める工程と、上記割合が最大のサービスインスタンスと該割合が最大のサービスインスタンスに従属する各サービスインスタンスとを選択する工程をさらに含んでいる請求項１記載の方法。
【請求項４】
上記サービスインスタンス部分集合を特定する工程は、上記複数のサービスインスタンスを探索する順序を決定する工程と、該複数のサービスインスタンスについて、各項目がサービスインスタンス部分集合を削除することによって得られるメモリ空間量を示すように動的計画法テーブルを作成する工程と、該動的計画法テーブルを用いて、削除される１つまたは複数のサービスインスタンスを特定する工程をさらに含んでいる請求項１記載の方法。
【請求項５】
上記累積必要メモリ空間を求める工程は、実行中のサービスインスタンスの必要メモリ空間と、該実行中のサービスインスタンスに従属する実行中の各サービスインスタンスの必要メモリ空間とを合計する工程をさらに含んでいる請求項１記載の方法。
【請求項６】
複数のサービスインスタンスを有するサービスゲートウェイ環境において、メモリ資源を管理する方法であって、
（ａ）上記ゲートウェイ環境に関連する利用可能な総メモリ空間を超える関連メモリ空間を必要とするサービス要求を受け取る工程と、
（ｂ）上記各サービスインスタンスの累積必要メモリ空間を求める工程と、
（ｃ）上記各サービスインスタンスの従属するサービスインスタンスの数を求める工程と、
（ｄ）上記各サービスインスタンスについて、上記累積必要メモリ空間を上記従属するサービスインスタンスの数で除算したものとして定義される割合を求める工程と、
（ｅ）上記割合が最大のサービスインスタンスに関してメモリ資源の管理操作を実行する工程を含む方法。
【請求項７】
上記メモリ資源の管理操作を実行する工程は、上記割合が最大のサービスインスタンスと該割合が最大のサービスインスタンスに従属する各サービスインスタンスとを削除する工程をさらに含んでいる請求項６記載の方法。
【請求項８】
上記サービスインスタンスを削除する工程の後に、上記ゲートウェイ環境に関連する利用可能な総メモリ空間を求める工程と、
上記サービス要求の必要メモリ空間が上記ゲートウェイ環境に関連する利用可能な総メモリ空間を超えるか否かを判定する工程と、
上記サービス要求の必要メモリ空間が上記ゲートウェイ環境に関連する利用可能な総メモリ空間を超えるときは、上記工程（ｂ）から上記工程（ｅ）を繰り返す工程をさらに含んでいる請求項７記載の方法。
【請求項９】
上記サービス要求の必要メモリ空間が上記ゲートウェイ環境に関連する利用可能な総メモリ空間より小さいかそれと等しいときは、上記サービス要求を実行する工程をさらに含んでいる請求項８記載の方法。
【請求項１０】
上記累積必要メモリ空間を求める工程は、各サービスインスタンスの必要メモリ空間と、該サービスインスタンスに従属する各サービスインスタンスの必要メモリ空間とを合計する工程をさらに含んでいる請求項６記載の方法。
【請求項１１】
上記複数のサービスインスタンスについて、データ記憶装置が格納する各サービスインスタンスの識別子と、該サービスインスタンスの累積必要メモリ空間と、該サービスインスタンスに従属するサービスインスタンスの数とを維持する工程をさらに含んでいる請求項６記載の方法。
【請求項１２】
複数のサービスインスタンスを有するサービスゲートウェイ環境において、メモリ資源を管理する方法であって、
上記ゲートウェイ環境に関連する利用可能な総メモリ空間を超える関連メモリ空間を必要とするサービス要求を受け取る工程と、
上記ゲートウェイ環境の各サービスインスタンスの累積必要メモリ空間を求める工程と、
上記複数のサービスインスタンスを探索する順序を決定する工程と、
上記複数のサービスインスタンスについて、各項目がサービスインスタンス部分集合を削除することによって得られるメモリ空間量を示すように動的計画法テーブルを作成する工程と、
上記動的計画法テーブルを用いて、削除される１つまたは複数のサービスインスタンスを特定する工程を含む方法。
【請求項１３】
上記特定されたサービスインスタンスを削除することにより、上記ゲートウェイ環境のメモリ資源を管理する工程をさらに含んでいる請求項１２記載の方法。
【請求項１４】
上記累積必要メモリ空間を求める工程は、各サービスインスタンスの必要メモリ空間と、該サービスインスタンスに従属する各サービスインスタンスの必要メモリ空間とを合計する工程をさらに含んでいる請求項１２記載の方法。
【請求項１５】
上記探索する順序を決定する工程は、サービスインスタンスを後順で再帰的に探索する工程をさらに含んでいる請求項１２記載の方法。
【請求項１６】
上記動的計画法テーブルを作成する工程は、該テーブルの各項目が、対応するサービスインスタンス部分集合から対応する数のサービスインスタンスを削除することによって得られる最大メモリ空間量を示すように、上記テーブルの各行を後順に従ってサービスインスタンスの部分集合と対応付けるよう定義するとともに、上記テーブルの各列を上記サービスインスタンス部分集合から削除されるサービスインスタンスの数と対応付けるよう定義する工程をさらに含んでいる請求項１５記載の方法。
【請求項１７】
上記削除される１つまたは複数のサービスインスタンスを特定する工程は、上記動的計画法テーブルの最下位行の項目群を左から右に評価する工程と、上記サービス要求の必要メモリ空間を超えるメモリ空間を有する項目に対応するサービスインスタンスを選択する工程をさらに含んでいる請求項１２記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホームゲートウェイに関し、特に、ホームゲートウェイなどの限られたメモリ環境においてアプリケーションサービスを管理する効率的な方法に関する。
【背景技術】
【０００２】
ブロードバンドの家庭への導入が普及するにつれ、インタネットが家庭内でますます盛んになってきている。インタネットは、コンピュータ機器同士を接続するためのみならず、テレビ、ＤＶＤ、洗濯機などの家庭用機器にアクセスするためにも使用されている。近い将来、多数の家庭用機器がインタネットに接続されることが予想される。これら機器を遠隔で診断および設定することは、消費者がインタネットの接続性から得ることのできる多くの利点の一つである。また、電力会社も、エネルギー管理、遠隔計測、停電の可能性を低減させる電力需給バランスの向上などの付加価値サービスを提供できることから、ホームネットワーキングに注目している。
【０００３】
家庭内の環境に存在する複数のネットワークに対して仕様とプロトコルを規定する構想がいくつか存在し、例を挙げると、ＯＳＧｉ、ＨＡＶｉ、ＵＰｎＰ、Ｊｉｎｉ、ＨｏｍｅＲＦなどである。そのようなホームネットワーキングがホームゲートウェイを介して相互運用できることが期待されている。ホームゲートウェイは、インタネットと家庭との間の唯一の接続点となる。各種サービスは、インタネットから個別にダウンロードしてゲートウェイで実行することが可能なソフトウェアバンドルの形で実現される。
【０００４】
ホームゲートウェイを既存の家庭用機器に組み込むのか、いくつかの家庭用機器間で分散させるのか、別個のコンピュータ機器に集中させるのかについては、業界内で合意はない。いずれの場合も、おそらく、ホームゲートウェイは、資源、特にメインメモリが限られたものになるだろう。
【０００５】
従来のメモリ管理技術は、必ずしもホームゲートウェイに適したものではなかった。例えば、従来のコンピュータ環境でのメモリ単位はディスクページである。従来のメモリ管理技術は、一般に、ディスクページ同士が独立したものであることを想定している。
【０００６】
対照的に、ホームゲートウェイのサービスは、独立ではなく、互いに依存している場合がある。言い換えれば、１つのサービスを終了させると、実際には、そのサービスに従属する全てのサービスを終了させることになる。サービス間の従属関係があるため、従来のメモリ管理技術は、ゲートウェイ環境には適していない。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
したがって、ホームゲートウェイなどの限られたメモリ環境において、アプリケーションサービスを管理する効率的な方法を提供することが望ましい。
【課題を解決するための手段】
【０００８】
本発明によれば、サービスゲートウェイ環境においてメモリ資源を管理する方法が提供される。この方法は、上記ゲートウェイ環境に関連する利用可能な総メモリ空間を超える関連メモリ空間を必要とするサービス要求を受け取ることと、各サービスインスタンス毎に、従属するサービスインスタンスの数を求めることと、各サービスインスタンス毎に、累積必要メモリ空間を求めることと、上記サービス要求の必要メモリ空間を超える必要メモリ空間を有するとともに、サービスインスタンス数が最小のサービスインスタンス部分集合を特定することと、上記特定されたサービスインスタンス部分集合に関してメモリ資源の管理操作を実行することを含んでいる。
【０００９】
本発明、その目的および利点をより深く理解するため、以下の詳細な説明と添付の図面を参照する。
【発明を実施するための最良の形態】
【００１０】
図１は、ＯＳＧｉモデルに基づくサービスゲートウェイの一例のソフトウェアアーキテクチャを示す。ＯＳＧｉ仕様は、様々な異なるアプリケーションにおいてサービスゲートウェイに適した共通の実装ＡＰＩを規定している。以下の説明は、ＯＳＧｉモデル由来の特定のソフトウェアアーキテクチャに基づいて行われているが、本発明のより広い側面には、その他のソフトウェアアーキテクチャや他の公知のゲートウェイ仕様も包含されることは容易に理解できる。
【００１１】
サービスゲートウェイ環境では、アプリケーションはサービスの集合として設計され、各サービスは全体機能の１セグメントを実行する。その後、これらのサービスと他の拡張サービスは、バンドルと呼ばれるソフトウェアコンテナ内にパッケージ化される。ゲートウェイは、必要に応じて、対応するバンドルをダウンロードすることができる。フレームワークは、基本的なバンドル管理機能を取り扱う。バンドルは、そのサービスを他のバンドルと共有するために、フレームワークを用いてサービスをいくつでも登録することができる。フレームワーク内の１バンドルの実行スレッドをサービスインスタンスと呼ぶ。
【００１２】
ゲートウェイは、新しいサービスを受け入れるために、関連するメモリ空間を解放する必要がある場合がある。１つのサービスを実行するのに必要なメモリ量は時間とともに変化しているが、アプリケーションサービスの提供者（または、バンドルを提供する作成者）は、バンドル内のサービスを実行するのに必要なメモリ量の平均や最大値などの概算を提示することができる。この時、フレームワークは、要求を満たすために、犠牲となるサービスインスタンスを選択して終了させなければならない。犠牲となるサービスインスタンスは、現在要求中のサービスである場合も考えられる。
【００１３】
このメモリ資源問題を、図２に示す例によってさらに説明する。サービスゲートウェイ環境において、２つの代表的なアプリケーションが実行されている。第１のアプリケーションは、３０メモリ単位分のメモリを必要とするオーディオオンデマンドサービス２０である。オーディオオンデマンドサービス２０は、オーディオプレーヤーサービス２２に依存し、さらには、オーディオプレーヤーサービス２２がＵＤＰサービス２４に依存している。オーディオプレーヤーサービス２２とＵＤＰサービス２４は、それぞれ、５０メモリ単位と２５メモリ単位のメモリを必要としている。さらに、オーディオオンデマンドサービス２０は、１０５メモリ単位分のメモリを必要とするイコライザサービス２６にも依存している。第２のアプリケーションは、６５メモリ単位分のメモリを必要とするインタネットゲーム２７である。インタネットゲームサービス２７は、４５メモリ単位分のメモリを必要とするＨＴＴＰサービス２８に依存している。
【００１４】
さらに別のサービスが要求されている。この第３のサービスは、１００メモリ単位を必要とするホームセキュリティサービス２９である。ホームセキュリティサービスに対する必要メモリ空間が、このゲートウェイ環境に関連する利用可能な総メモリ空間を超えると仮定する。さらに、ホームセキュリティサービスが、オーディオオンデマンドサービスおよびゲームサービスよりも優先順位が高いと仮定する。この要求を満たすためには、少なくとも１つのサービスを終了させなければならない。この例の場合、イコライザサービス２６を終了させるべきであり、それにより、必要メモリ空間が満たされるとともに、終了させるサービスインスタンスの数を最小限にすることができるからである。
【００１５】
以下、上記の問題を形式的に記述する。現在ゲートウェイメモリ内に存在しているサービスインスタンスの集合は、Ｓ＝｛ｓi，．．．，ｓj｝と定義される。ディペンデンスグラフを利用して、各バンドルが別のバンドルによって提供されるサービスをインポートするバンドル間従属関係をモデル化することができる。例えば、Ｇ（Ｓ，Ｅ）を頂点集合Ｓと辺集合Ｅを有する有向非輪状グラフとすることにより、サービスインスタンス間従属関係が記述される。ｓiがｓjに依存する場合に限り、有向辺（ｓi，ｓj）∈Ｅである。当然、各アプリケーションがそれ自体のサービスのコピーのインスタンスを作成すると仮定されるので、ディペンデンスグラフは、各木がそのアプリケーションによって作成されたサービスインスタンスを表す根付き木からなる森から構成される。Ｇの頂点ｖについて、ｖを根とする（ｖ自体を含む）Ｇの部分木の頂点集合をＴ（ｖ）で表すものとし、頂点の部分集合Ｖ⊆Ｓについて、
【００１６】
【数１】
2005505832.tif 000003
とする。
【００１７】
ある必要メモリ空間Ｍ（ｓ）の新しいサービスインスタンスｓを作成しようとする場合、この新しいインスタンスのための場所をあけるためには、いくつかの既存のサービスインスタンスを終了させる必要がある場合がある。この作業に必要な追加のメモリがＭｔ単位分であると仮定すると、Ｍｔ＝Ｍ（ｓ）−Ｍｆのとき、Ｍｆは、現在の利用可能メモリ空間量である。１つのサービスインスタンスが終了すると、それに従属する全てのサービスインスタンスも終了させることになる。したがって、終了させるサービスインスタンスの数を減らすことが目的となる。より精確に言えば、従属インスタンスの全てと一緒に終了することによって少なくともＭｔ単位分の総メモリ空間を利用可能にさせるような、最少限の従属インスタンスからなる部分集合Ｖ⊆Ｓを求めることが必要とされる。Ｓ´⊆Ｓについて
【００１８】
【数２】
2005505832.tif 000004
とすると、この問題は、ｍｉｎ｛|Ｔ（Ｖ）|：Ｖ⊆Ｓ，Ｍ（Ｔ（Ｖ））≧Ｍｔ｝を求める問題として定式化することができる。言い換えると、この問題は、サービス要求の必要メモリ空間を超えるメモリ空間を必要とする最小限の数のサービスインスタンスを特定することである。
【００１９】
図３に基づいて、サービスインスタンスの少なくとも一部が他のサービスインスタンスに従属している、限られたメモリ環境でのメモリ資源管理方法を提供する。この方法は、上述の問題に対する１つの好ましい解となる。サービス要求を受け取ると、この方法がステップ３２で開始される。この場合、サービス要求は、ゲートウェイ環境に関連する利用可能な総メモリ空間を超えるメモリ空間を必要としている。サービス要求を満たすために、この方法は、この環境から終了させるべき１つまたは複数のサービスインスタンスを特定する。
【００２０】
最初に、ステップ３４で、ゲートウェイ環境に存在するサービスインスタンス毎に、累積必要メモリ空間Ｍ（ｓ*）を求める。ある１つのサービスインスタンスの累積必要メモリ空間は、そのサービスインスタンスおよびそれに従属する各サービスインスタンスに対する必要メモリに相当する。したがって、累積メモリ空間は、そのサービスインスタンスの必要メモリ空間とそれに従属する各サービスインスタンスの必要メモリ空間とを加算することによって算出される。
【００２１】
第２に、ステップ３６で、各サービスインスタンス毎に、従属するサービスインスタンスの数ｓ*を求める。代表的な実施形態では、その環境に関係するデータ記憶装置から検索される。データ記憶装置は、通常、そのゲートウェイ環境に現在存在するサービスインスタンスのそれぞれに関する従属関係情報を維持する。データ記憶装置は、サービスインスタンス毎に、そのサービスインスタンスの識別子と、そのサービスインスタンスの累積必要メモリ空間と、そのサービスインスタンスに従属するサービスインスタンスの数を格納していてもよい。それは現時点では好ましいが、サービスインスタンス毎に累積必要メモリ空間と従属インスタンス数とを求める他の技術を採用することも考えられる。
【００２２】
第３に、ステップ３８で、各サービスインスタンス毎に割合が求められる。この割合は、ある１つのサービスインスタンスの累積必要メモリ空間をそのサービスインスタンスに関する従属サービスインスタンスの数によって除算されたものとさらに定義される。この割合を最大化することは、終了させるサービスインスタンスの数を低減させることになる。
【００２３】
最後に、ステップ３９で、割合が最大のサービスインスタンスに関してメモリ資源の操作が実行される。具体的には、割合が最大のサービスインスタンスとそれに従属する各サービスインスタンスとが終了させられる。２つのサービスインスタンスが同じ割合の場合は、従属関係の少ないサービスインスタンスが選択されて終了させられる。当業者であれば、各サービスインスタンスの従属関係情報を維持するデータ記憶装置を更新して、終了したサービスインスタンスを明らかにすることは容易に理解できるであろう。
【００２４】
場合によっては、終了したサービスインスタンス（およびその従属インスタンス）の累積必要メモリ空間が、要求されたメモリ空間を超えない場合もある。この場合には、上述のプロセスを繰り返すことによって、さらに追加のサービスインスタンスが終了させられる。一方、総利用可能メモリ空間がサービス要求の必要メモリ空間に等しくなるか、あるいはそれを超えると、サービス要求が満たされる。
【００２５】
上記の問題の自然汎化も存在する。様々なサービスインスタンスがそれぞれ重要度において異なっており、したがって、異なる優先順位が割り当てられているものと仮定する。そのような場合には、インスタンス毎に重みＷ（ｓ）を割り当てることが合理的である。大きな重みをもつインスタンスはより重要であるとみなされる。メモリから一部のインスタンスを排除する必要がある場合、削除される高優先順位のインスタンスの数を減らすことが望ましい。したがって、この問題は、ｍｉｎ｛Ｗ（Ｔ（Ｖ））｜Ｖ⊆Ｓ，Ｍ（Ｔ（Ｖ））≧Ｍｔ｝を求める問題となる。
【００２６】
従属関係が存在しない場合、この問題は公知のナップザック問題に密接に関連している。ナップザック問題は、Ｗを最大重みとするとき、Ｏ（ｎ2Ｗ）で走る擬似多項式アルゴリズムを許容する。サービスインスタンス間に従属関係がある場合にも、以下に示すように、この問題と同様の結果が成立する。
【００２７】
以上のことに鑑みて、サービスゲートウェイなど、限られたメモリ環境における別のメモリ資源管理方法が提示される。図４に示すように、サービス要求を受け取ると、ステップ４２でこの方法が開始される。サービス要求を満足させるために、この方法は、メモリ環境から削除される１つまたは複数のサービスインスタンスを特定する。その技術には、通常、動的計画法を利用する。
【００２８】
最初に、ステップ４４で、ゲートウェイ環境に存在するサービスインスタンス毎に、累積必要メモリ空間Ｍ（ｓ*）を求める。次に、ステップ４６で、ゲートウェイ環境のサービスインスタンスを探索する順序を決定する。サービスインスタンスは、後順で再帰的に探索されることが好ましい。具体的には、Ｓ＝Ｓn＝｛ｓ1,…,ｓn｝を後順探索（すなわち、子を左から右へ探索した後、根に向かって再帰的に探索すること）でリスト化された現在のサービスインスタンスの集合とする。その集合を増分的に考えると、Ｓ1＝｛ｓ1｝,Ｓ2＝｛ｓ1,ｓ2｝,Ｓ3＝｛ｓ1，ｓ2，ｓ3｝,…,であり、各集合毎に、サービスインスタンス部分集合を所与の数の従属インスタンスだけ削除することによって得られる最大メモリ量を計算する。これら最大値を算出するため、各ノードｓi毎に、ｓkがｓiの子孫にならないように最大添字ｋ∈｛１，．．．，ｉ−１｝を算出する。Ｌ（ｓi）でそのような添字を示す。この手続により、所与の森の後順探索が得られ、ｉ＝１，．．．，ｎのそれぞれについて必要な添字Ｌ（ｓi）が算出される。
【００２９】
例えば、ｖを根とする従属森Ｇの任意の部分木の後順探索であって、ｋを整数とする場合の手続の一例は以下のとおりである。
【００３０】
2005505832.tif 000005
この手続により、Ｔ（ｖ）の後順探索｛ｓk, ｓk+1, ..., ｓ|T(v)|+k-1｝と添字集合｛Ｌ（ｓ）｜ｓ∈Ｔ（ｖ）｝が得られる。
【００３１】
森Ｇの連結成分がＣ1，Ｃ2，．．．，Ｃrであるとき、Ｇの後順探索を算出するためには、上記の手続がｒ回呼び出される。
【００３２】
2005505832.tif 000006
したがって、この手続により、Ｇの後順探索｛ｓ1,ｓ2，…,ｓn｝と、添字集合｛Ｌ（ｓ）｜ｓ∈Ｖ（Ｇ）｝が得られる。この手続を図５に簡単に示す。しかしながら、本発明の範囲において他の探索順序も考えられる。
【００３３】
図４に戻って、その後、ステップ４８で、サービスインスタンスの部分集合を削除することによって得られるメモリ空間量を各項目によって示すように、動的計画法テーブルが作成される。以下では、ノードｕ，ｖ∈Ｖ（Ｇ）は、いずれも他方の子孫ではない場合、すなわち、
【００３４】
【数３】
2005505832.tif 000007
の場合に、比較不可能であると言えるであろう。なお、ｎは、いかなる解によっても得られるインスタンスの総数（すなわち、重み）に関する自明の上界である。ｉ∈｛１，．．．，ｎ｝のそれぞれおよびｗ∈｛１，．．．，ｎ｝のそれぞれについて、Ｓi,wがＳi＝｛ｓ1，．．．，ｓj｝のうちの比較不可能な要素からなる部分集合を示すものとする。その総重みはまさにｗであり、総メモリは最大化される。集合Ｓi,wが存在する場合は、Ａ（ｉ，ｗ）＝Ｍ（Ｔ（Ｓi,w））であり、そうでない場合は、Ａ（ｉ，ｗ）＝−∞である。すなわち、
|T(S)|=wとなるような比較不可能な要素の集合S⊆Siが存在しない場合、A(i, w)=−∞
i=0またはw=0の場合、A(i, w)=0
その他の場合、A(i, w)=max[M(T(S))|S⊆Si,|T(S)|=w, Sの要素は比較不可能]
この動的計画表テーブルは、各行が後順に従ってサービスインスタンスの部分集合と対応関係にあり、各列がその部分集合から削除されるサービスインスタンスの数と対応関係にあるように作成される。具体的には、Ａ（１，ｗ）はｗ∈｛１，．．．，ｎ｝の全てについては既知であるが、Ａ（ｉ，ｗ）の他の値は、以下の再帰法、すなわち、|Ｔ（ｓi+1）|＜ｗの場合は、Ａ（ｉ＋１，ｗ）＝ｍａｘ｛Ａ（ｉ，ｗ），Ｍ（ｓi+1）＋Ａ（Ｌ（ｓi+1），Ｗ−|Ｔ（ｓi+1）|）｝を、それ以外の場合は、Ａ（ｉ＋１，ｗ）＝Ａ（ｉ，ｗ）を用いて増分的に算出することができる。その結果、テーブルの各項目は、対応するサービスインスタンスの部分集合から対応する数のサービスインスタンスを削除することによって得られる最大メモリ空間量を示す。動的計画法テーブルの一例を図６に示す。
【００３５】
最後に、ステップ５０で、動的計画法テーブルを用いて１つまたは複数のサービスインスタンスを特定する。特に、サービスインスタンスは、テーブルの最下位行を左から右に評価することによって特定される。サービス要求のメモリ空間を超える値（すなわち、メモリ空間）を有する最初のテーブル項目が選択される。この場合、そのテーブル項目は、削除されるサービスインスタンスの部分集合と対応関係にある。その後、ステップ５２で、該当するサービスインスタンス部分集合を削除することにより、サービス要求を満たす。
【００３６】
この別法のアルゴリズムのさらに形式的な記述は以下のとおりである。
【００３７】
2005505832.tif 000008
当業者にとって明らかなように、この別法のアルゴリズムに従ってこの問題を解くためには、Ｏ（ｎ2）の時間とＯ（ｎ2）の空間が必要である。
【００３８】
上記の説明は本発明の単なる例示の実施形態を開示および説明したに過ぎない。当業者であれば、そのような説明、添付の図面および請求の範囲から、本発明の精神および範囲から逸脱することなく様々な変更、改造および変形を行い得ることは容易に理解できるであろう。
【図面の簡単な説明】
【００３９】
【図１】ＯＳＧｉモデルに基づくサービスゲートウェイの一例のソフトウェアアーキテクチャを示すブロック図である。
【図２】本発明のメモリ資源問題を説明する図である。
【図３】本発明にかかる、サービスゲートウェイ環境におけるメモリ資源管理方法を示すフロー図である。
【図４】本発明にかかる、サービスゲートウェイ環境における別のメモリ資源管理方法を示すフロー図である。
【図５】本発明にかかる複数のサービスインスタンスの後順探索を説明する図である。
【図６】本発明にかかる動的計画法テーブルの一例を示す図である。
【図１】
2005505832.tif 000009
【図２】
2005505832.tif 000010
【図３】
2005505832.tif 000011
【図４】
2005505832.tif 000012
【図５】
2005505832.tif 000013
【図６】
2005505832.tif 000014
【国際公開パンフレット】
2005505832.tif 000015
2005505832.tif 000016
2005505832.tif 000017
2005505832.tif 000018
2005505832.tif 000019
2005505832.tif 000020
2005505832.tif 000021
2005505832.tif 000022
2005505832.tif 000023
2005505832.tif 000024
2005505832.tif 000025
2005505832.tif 000026
2005505832.tif 000027
2005505832.tif 000028
2005505832.tif 000029
2005505832.tif 000030
2005505832.tif 000031
2005505832.tif 000032
2005505832.tif 000033
2005505832.tif 000034
2005505832.tif 000035
2005505832.tif 000036
2005505832.tif 000037
【国際公開パンフレット（コレクトバージョン）】
2005505832.tif 000038
2005505832.tif 000039
【国際調査報告】
2005505832.tif 000040