(57)【要約】【課題】サービスを提供する装置とサービスを利用する装置とがネットワークを介して接続されたサービスシステムにおいて、サービス利用中にサービス利用装置の位置や通信パス等のサービス利用環境が頻繁に変更される場合でも、各環境に応じて常に適切なサービスレベルを保証したサービスを継続的に利用可能であることを特徴とする、制御プログラム配信方法を提供する。【解決手段】サービス利用中に、通信ヘッダ情報等からサービス利用者側の利用環境情報を随時取得する。サービス提供装置上にある制御プログラム選択部１０４０では、概情報の変化に応じてサービス品質を制御する適切な制御プログラム１０６０を選択する。概制御プログラムを、サービス利用装置上にある制御プログラム受信部１０９０によってダウンロードした後、制御プログラム実行部１０８０にて実行する。【選択図】　図１
2004102741.tif 000002
【特許請求の範囲】
【請求項１】
サービス提供装置からサービス利用装置へ、前記サービス利用装置が前記サービス提供装置からサービスの提供を受けるために必要な制御プログラムを配信するための、コンピュータによる制御プログラム配信方法において、
前記サービス利用装置のサービスの利用中に、前記サービスの利用に対応して変化する前記サービス利用装置の利用環境情報を取得するための第１の処理ステップと、
予め保持する複数の制御プログラムの中から、前記第１の処理ステップにより取得された前記利用環境情報に基づき、前記制御プログラムを選択するための第２の処理ステップと、
前記サービス利用装置のサービスの利用中に、第２の処理ステップにより選択された制御プログラムを、前記サービス利用装置へ配信するための第３の処理ステップを備える制御プログラム配信方法。
【請求項２】
前記サービス利用装置がサービスの提供を受けるために必要な制御プログラムを、サービス利用装置へ配信するための、制御プログラム配信装置において、
複数の前記制御プログラムを格納する記憶手段と、
前記サービス利用装置のサービスの利用中に、前記サービスの利用に対応して変化する前記サービス利用装置の利用環境情報を取得するための第１の処理手段と、
予め格納する複数の制御プログラムの中から、前記第１の処理ステップにより取得された前記利用環境情報に基づき、前記制御プログラムを選択するための第２の処理手段と、
前記サービス利用装置のサービスの利用中に、第２の処理ステップにより選択された制御プログラムを、前記サービス利用装置へ配信するための第３の処理手段を備える制御プログラム配信装置。
【請求項３】
第１の処理手段は、前記サービス利用装置が、ＨＴＴＰを用いて当該制御プログラム配信装置と通信する場合に、ＨＴＴＰのヘッダ情報から前記利用環境情報を取得する請求項２に記載の制御プログラム配信装置。
【請求項４】
前記制御プログラムは、前記サービスの品質を制御するためのプログラムである請求項２に記載の制御プログラム配信装置。
【請求項５】
前記利用環境情報は、前記サービス利用装置へ提供するサービスの当該サービス提供装置内の提供元のアドレスと、前記サービス利用装置の位置情報との、少なくとも１つを含む請求項２に記載の制御プログラム配信装置。
【請求項６】
前記第２の処理手段は、予め保持する複数の制御プログラムの中から、前記サービスの利用に対応して変化する前記サービスの制御レベルに基づき、前記制御プログラムを選択する請求項２に記載の制御プログラム配信装置。
【請求項７】
前記サービスの制御レベルは、前記サービスのセキュリティレベルと、前記サービス利用装置に対する対通信障害レベルとの、少なくとも１つを含む請求項６に記載の制御プログラム配信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サービス利用装置がサービスの提供を受けるために必要な制御プログラムを、サービス利用装置へ配信するための、制御プログラム配信方法及び装置に係り、特に、ワークステーションやパーソナルコンピュータ、ハンドヘルドコンピュータなどの複数の情報処理装置により実現される制御プログラム配信方法及び装置に関する。
【０００２】
【従来の技術】
近年、携帯電話やＰＤＡ（Ｐｅｒｓｏｎａｌ　Ｄｉｇｉｔａｌ　Ａｓｓｉｓｔａｎｔｓ）などの小型かつ高性能な情報処理装置が急速に普及している。これに伴い、例えば携帯電話の画面上から電車の切符を購入してチケットレスで乗車できるサービスや、動画や音楽などのストリーミングコンテンツをダウンロードしてＰＤＡ上で再生可能なサービスなど、様々なモバイルサービスが実用化されつつある。
【０００３】
これらの情報処理装置は持ち運びが容易なため、出先からＰＨＳデータ通信や無線ＬＡＮなどのワイヤレス通信を経由してサービスを利用するような使い方が多い。一方、ワイヤレス通信を経由してサービスを利用する場合、ネットワークケーブルを介して接続された従来の環境とは異なり、通信の一時的な切断や、電波傍受による情報漏洩が発生する可能性が高い。そのため、対障害性やセキュリティなどの通信品質を向上するための機能を、サービス利用中の利用環境に合わせて、適宜追加したり、変更したりする手段が重要となる。
【０００４】
ＱｏＳ（Ｑｕａｌｉｔｙ　ｏｆ　Ｓｅｒｖｉｃｅ）保証した通信パスを設定するためのプログラムを動的にダウンロードして実行する技術としては、特開２０００−２５３０５３号公報に記載の技術がある。本技術では、ネットワークを構成するルータにおいて、サービス要求と運用ポリシーに基づき、サービス実現手段（ソフトウェア）を動的にダウンロードする。これにより、新サービスを迅速に提供可能となり、サービスレベルを向上することができる。以下、従来技術１という。
【０００５】
一方、利用者の要求や属性情報に応じて、適切なサービスを選択して提供する技術としては、特開平１１−９６０９９号公報に記載の技術がある。本技術では、利用者が要求サービス内容を明示すると、サービス媒介サーバが利用者の嗜好や利用履歴等の属性情報を評価し、それらにマッチするサービスを選択して提供する。これにより、利用者は各自の要求に合ったサービスを利用することができる。以下、従来技術２という。
【０００６】
また、特開平８−２６３４０９号公報には、端末が通信ノードを介して相互に接続され、テレビ電話などのディジタル通信を行い、通信サーバが、端末の呼設定などの通信制御を行う通信ソフトウェアを、各種バージョンについて蓄積しており、該通信サーバが、ソフトウェアを端末側にダウンロードするに先立って、端末側に環境探索プログラムを送信し、端末側が自ハードウェア・ソフトウェア環境を調査し、通信サーバに報告し、通信サーバが、端末側からの報告結果を分析して、端末側に送信する最適ソフトウェアを決定し、該ソフトウェアを端末側にダウンロードすることが記載されている。以下、従来技術３という。
【０００７】
【特許文献１】
特開２０００−２５３０５３号公報
【特許文献２】
特開平１１−９６０９９号公報
【特許文献３】
特開平８−２６３４０９号公報
【０００８】
【発明が解決しようとする課題】
しかしながら、従来技術１においては、主に設置場所が固定であるルータに関するものであり、持ち運びが容易な情報処理装置については特に考慮していない。また、主にサービス管理者からの要求をトリガとしてサービス実現手段をダウンロードするものであり、サービス利用中の利用環境が変更された時に、その環境に合わせて適宜サービス実現手段を変更するような手段は備わっていない。したがって、サービス利用中に利用環境が頻繁に変更され易いモバイルサービスに適用する場合には、利用環境が変更されても同一のサービス実現手段を使用し続けるか、変更される度にサービス管理者へ連絡する等の手段を用いて、適切なサービス実現手段の配信を再度要求しなければならない。
【０００９】
一方、従来技術２においては、サービス媒介サーバにおいて、利用者の要求サービス内容や嗜好などの属性情報に基づき、適切なサービス提供装置を探索するため、本マッチング処理はサービスの利用開始前に行なう必要がある。したがって、サービス利用中に利用環境が変更された場合には、一旦サービス利用を中止して属性情報等を更新した後、再度マッチング処理を行なってからサービスを利用しなければならない。
【００１０】
本発明の目的は、サービス利用中の利用環境の変更に合わせて、サービスの質を制御するための適切なプログラムを配信して実行することにより、モバイルサービスのように頻繁に利用環境が変更される場合でも、サービスの品質を向上できることを特徴とする、制御プログラム配信方法および装置を提供することである。
【００１１】
【課題を解決するための手段】
本発明は、サービス利用装置のサービスの利用中に、サービスの利用に対応して変化するサービス利用装置の利用環境情報を取得し、予め保持する複数の制御プログラムの中から、第１の処理ステップにより取得された利用環境情報に基づき、制御プログラムを選択し、サービス利用装置のサービスの利用中に、第２の処理ステップにより選択された制御プログラムを、サービス利用装置へ配信する。
【００１２】
【発明の実施の形態】
以下、本発明の実施例を図面により説明する。
【００１３】
図１は、本発明のサービスシステムにおける制御プログラム配信方法に係る構成の一実施例を示すブロック図である。１０１０、１０２０はワークステーション、パーソナルコンピュータ、ハンドヘルドコンピュータ、携帯電話などの情報処理装置であり、有線、無線、またはそれらの混在により構築されるネットワーク１０３０を介して複数の情報処理装置が接続される。
【００１４】
サービスを提供する情報処理装置１０１０は、サービスの品質を制御するプログラム１０６０、サービスを利用する各情報処理装置やネットワークの環境情報を取得して、適切な制御プログラムを選択する制御プログラム選択部１０４０、選択した制御プログラムを他の情報処理装置へ配信する制御プログラム配信部１０５０、サービスを提供するアプリケーション１１１０、サービス利用中の各利用環境条件に応じて、サービス品質を保証する適切なサービス制御レベルを定義するサービス制御レベル定義テーブル１１２０からなる。
【００１５】
サービスを利用する情報処理装置１０２０は、サービスを利用するアプリケーション１０７０、情報処理装置１０１０から制御プログラムをダウンロードする制御プログラム受信部１０９０、制御プログラム受信部によりダウンロードされた制御プログラム１１００を実行する制御プログラム実行部１０８０からなる。
【００１６】
本構成は、例えば制御プログラム配信部１０５０をＷｅｂサーバソフトで、サービス提供アプリケーション１１１０をＷｅｂサーバ上で動作するＣＧＩ（Ｃｏｍｍｏｎ　Ｇａｔｅｗａｙ　Ｉｎｔｅｒｆａｃｅ）プログラムで、サービス利用アプリケーション１０７０をＷｅｂブラウザソフトで、制御プログラム選択部１０４０、制御プログラム受信部１０９０、制御プログラム実行部１０８０を常駐プログラムで、制御プログラム１０６０、１１００をモバイルエージェントのプログラムコードでそれぞれ構成することにより、既知のソフトウェア開発手法を用いて簡単に実現できる。
【００１７】
続いて、図１中の制御プログラム選択部１０４０の処理例を、図２のフローチャートを用いて説明する。最初に、情報処理装置１０１０の管理者からのユーザ入力等による、プログラム終了指示が検出されたら（ステップ２０１０）、制御プログラム選択部の処理を終了する。終了指示が検出されなければ、次にサービス提供アプリケーション１１１０からの通信データの入出力とログの更新を監視する（ステップ２０２０）。通信データの入出力の監視方法については、システムコールをフックする等の方法により容易に実現可能である。また、サービス提供アプリケーション１１１０がＷｅｂサーバ上で動作するアプリケーションの場合、Ｗｅｂサーバが出力するログファイルのタイムスタンプを調べることにより、通信データの入出力を監視することも可能である。
【００１８】
通信データの入出力が検出されたら（ステップ２０３０）、受信データ中のヘッダ情報やログファイル中のエントリ情報から、サービス利用環境情報を取得する（ステップ２０４０）。サービス利用環境情報については、例えばＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ　Ｔｒａｎｓｆｅｒ　Ｐｒｏｔｏｃｏｌ）を介してサービスを利用している場合には、ＨＴＴＰリクエストヘッダ中のＲＥＭＯＴＥ＿ＡＤＤＲ情報を取得することにより、サービス利用元のＩＰアドレスを取得可能である。また、位置情報対応の携帯電話の場合には、基地局から位置情報を取得することにより、情報処理装置が存在するエリアコード等の情報を取得可能である。更に、ＨＴＴＰ／１．１ではエンティティヘッダを拡張可能なため、バッテリー残量等のデータを格納するためのヘッダ領域を新たに定義して送信することにより、その他の利用環境情報を取得することも可能である。
【００１９】
次に、取得したサービス利用環境情報の値が、以前に取得した値から変更されているか否かを調べる（ステップ２０５０）。例えばＷｅｂベースアプリケーションの場合には、サービス利用装置側のＷｅｂブラウザのＣｏｏｋｉｅに以前取得した値を保存しておき、Ｗｅｂサーバ側でその値を取得して最新の値と比較することにより、サービス利用環境情報の値が変更されたか否かを判定可能である。サービス利用環境情報の値が以前と異なる場合は、サービス制御レベル定義テーブルを読み込み、適切なサービス制御レベルを決定する（ステップ２０６０）。
【００２０】
図３にサービス制御レベル定義テーブルの構成例を示す。サービス制御レベル定義テーブル３０００は、サービス利用元ＩＰアドレスや位置情報などのサービス利用環境情報３０１０と、各利用環境に対するセキュリティや対通信障害などのサービス品質レベルを規定するサービス制御レベル３０２０からなる行のリストである。３０１０にはサービス利用環境情報が取り得る値の範囲や条件等を、３０２０にはＱｏＳレベルや制御プログラムに関連付けられた属性情報等を、それぞれ指定する。
【００２１】
サービス制御レベルを決定した後に、そのレベルに合わせてサービス品質を制御可能な制御プログラムを選択する（ステップ２０７０）。サービス制御レベルの値を検索キーとして、各制御プログラムのプロファイル（属性）情報を検索するなどの方法により、適切な制御プログラムを選択可能である。
【００２２】
ここで、サービス制御レベルに合わせてサービス品質を制御可能な制御プログラムを選択する方法の一例を、より詳細に説明する。サービス制御レベルを決定した後、サービス対応定義テーブル７０００より、サービス制御レベルの値を検索キーとして、そのサービス制御レベルに対応するプロファイル情報を取得する。図７にサービス対応定義テーブルの構成例を示す。サービス対応定義テーブル７０００は、各利用環境に対するサービス品質レベルを表すサービス制御レベル７０１０と、各サービス制御レベルを実現するためのサービス内容を表すプロファイル情報７０２０からなる行のリストである。例えばサービス制御レベルが「セキュリティ：高」ならば、暗号化方式としてＲＳＡやＤＳＡなどをサポートする制御プログラムを使用するか、もしくは３ＤＥＳなどの中レベルの暗号化をサポートする制御プログラムを２つ組み合わせて使用する必要があることを本テーブルにより規定する。次に、取得したプロファイル情報を検索キーとして、プロファイル情報定義テーブル８０００より、そのプロファイル情報にマッチする制御プログラム名を取得する。図８にプロファイル情報定義テーブルの構成例を示す。プロファイル情報定義テーブル８０００は、制御プログラム名（制御プログラムの格納場所を含む）８０１０と、各制御プログラム毎のプログラム内容を表すプロファイル情報８０２０からなる行のリストである。例えば制御プログラム「ｌａｎ１．ｐｒｇ（Ｃ：￥ｓｅｒｖｉｃｅ＿ｃｏｍｐｏｎｅｎｔｓ￥ｎｅｔｗｏｒｋディレクトリに格納）」については、通信時の接続経路がＬＡＮ経由で、通信切断時の再送信試行回数が１回であることを示す。これらのプロファイル情報については、テーブル形式でなくＸＭＬ形式で格納するようにしても良い。
【００２３】
次に、送信データのヘッダ情報中に、選択した制御プログラムへのＵＲＬ（Ｕｎｉｆｏｒｍ　Ｒｅｓｏｕｒｃｅ　Ｌｏｃａｔｏｒ）のリストを追加して送信する（ステップ２０８０）。例えばＨＴＴＰ／１．１を介してサービスを利用している場合には、エンティティヘッダを拡張して定義した新たなヘッダ領域に、制御プログラムへのＵＲＬのリストを格納して送信可能である。
【００２４】
ステップ２０８０で制御プログラムへのＵＲＬリストを送信した後、またはステップ２０３０で通信データの入出力やログ更新が検出されない場合、あるいはステップ２０５０でサービス利用環境情報が変更されていない場合には、再びステップ２０１０からの処理を繰り返す。
【００２５】
続いて、図１中の制御プログラム受信部１０９０の処理例を、図４のフローチャートを用いて説明する。最初に、情報処理装置１０１０の管理者からのユーザ入力等による、プログラム終了指示が検出されたら（ステップ４０１０）、制御プログラム受信部の処理を終了する。終了指示が検出されなければ、次にサービス利用アプリケーション１０７０からの通信データの入出力を監視する（ステップ４０２０）。通信データの入出力が検出されたら（ステップ４０３０）、受信データ中のヘッダ情報中に、前記ステップ２０８０で追加した制御プログラムへのＵＲＬのリスト情報が含まれているか否かを調べる（ステップ４０４０）。リスト情報が含まれている場合は、順次そのＵＲＬにアクセスして情報処理装置１０１０から制御プログラムをダウンロードした後、制御プログラム実行部１０８０に出力する（ステップ４０５０）。ステップ４０５０の完了後、またはステップ４０３０で通信データの入出力が検出されない場合、あるいはステップ４０４０でリスト情報が含まれていない場合には、再び４０１０からの処理を繰り返す。
【００２６】
続いて、図１中の制御プログラム実行部１０８０の処理例を、図５のフローチャートを用いて説明する。最初に、制御プログラム受信部１０９０から受け取った制御プログラム１１００を、情報処理装置１０２０上でロードする（ステップ５０１０）。次に、各々の制御プログラムの初期化処理における、イベント発生時に呼び出す処理の関連付け要求を受け付け、管理テーブルに登録する（ステップ５０２０）。次に、サービス利用アプリケーション１０７０からの通信データの入出力を監視する（ステップ５０３０）。情報処理装置１０２０の利用者からのユーザ入力等による、プログラム終了指示が検出されたら（ステップ５０４０）、制御プログラム実行部の処理を終了する。通信データの入出力が検出されたら（ステップ５０５０）、通信データを取得し、管理テーブルを参照してそのイベントに対応する制御プログラムの処理を呼び出した後（ステップ５０６０）、再びサービス利用アプリケーションからの通信データの入出力を監視する（ステップ５０３０）。
【００２７】
以上、本実施例ではサービスを提供するアプリケーションと、制御プログラムを配信する処理部とが、同一の情報処理装置上に存在する場合について説明した。しかしながら図６のブロック図に示すように、それぞれが異なる情報処理装置上にあっても良い。
【００２８】
また、本実施例では制御プログラム受信部および制御プログラム実行部が、サービスを利用する情報処理装置上にサービスを利用する前から存在し実行されている場合について説明した。しかしながら本方式のみに限定されるものではなく、例えばサービス利用アプリケーションがＷｅｂブラウザの場合には、プラグインコンポーネントとして制御プログラム実行部を配信するようにしても良い。
【００２９】
また、本実施例では制御プログラムを配信する際に、選択した制御プログラムへのＵＲＬのリストを送信し、そのＵＲＬにアクセスすることによって制御プログラムをダウンロードする場合について説明した。しかしながら本方式のみに限定されるものではなく、例えばリストではなく制御プログラムのバイナリデータをそのまま送付することも可能である。また、必要に応じて制御プログラム実行時に渡すパラメータや、複数の制御プログラムの処理の優先度を制御するためのルールなどの付加情報を同時に配信しても良い。
【００３０】
また、本実施例では制御プログラムを全てダウンロードして実行する場合について説明した。しかしながら必ずしも全ての制御プログラムをダウンロードする必要はなく、例えば同レベル以上のサービス品質を実現可能な制御プログラムが既にサービスを利用する情報処理装置に備わっている場合には、制御プログラムをダウンロードする代わりにその機能を用いるようにしても良い。
【００３１】
【発明の効果】
本発明によれば、サービス利用中の利用環境の変化に合わせて、サービス品質を制御するための適切なプログラムを配信して実行することにより、モバイルサービスのように頻繁に利用環境が変更される場合でも、サービス品質を向上することができる。したがって、サービス利用者にとっては高信頼なサービスを利用可能となる。また、サービス開発者やサービス運用者にとっては個々の利用者の利用環境に合わせてカスタマイズしたサービスを容易に提供できる。
【図面の簡単な説明】
【図１】図１は、本発明の実施例に係る制御プログラム配信方法の一つ目の構成例を示す模式図である。
【図２】図２は、図１中の制御プログラム選択部１０４０の動作例を示すフローチャートである。
【図３】図３は、図１中のサービス制御レベル定義テーブル１１２０の構成例を示す図である。
【図４】図４は、図１中の制御プログラム受信部１０９０の動作例を示すフローチャートである。
【図５】図５は、図１中の制御プログラム実行部１０８０の動作例を示すフローチャートである。
【図６】図６は、本発明の実施例に係る制御プログラム配信方法の二つ目の構成例を示す模式図である。
【図７】図７は、サービス対応定義の構成例を示す図である。
【図８】図８は、プロファイル情報定義テーブルの構成例を示す図である。
【符号の説明】
１０１０〜１０２０…情報処理装置、１０３０…ネットワーク、１０４０…制御プログラム選択部、１０５０…制御プログラム配信部、１０６０…制御プログラム、１０７０…サービス利用アプリケーション、１０８０…制御プログラム実行部、１０９０…制御プログラム受信部、１１００…制御プログラム、１１１０…サービス提供アプリケーション、１１２０…サービス制御レベル定義テーブル、３０００…サービス制御レベル定義テーブル、６０００〜６０２０…情報処理装置、６０３０…ネットワーク、６０４０…制御プログラム選択部、６０５０…制御プログラム配信部、６０６０…制御プログラム、６０７０…サービス利用アプリケーション、６０８０…制御プログラム実行部、６０９０…制御プログラム受信部、６１００…制御プログラム、６１１０…サービス提供アプリケーション、６１２０…サービス制御レベル定義テーブル、７０００…サービス対応定義テーブル、８０００…プロファイル情報定義テーブル。
【図１】
2004102741.tif 000003
【図２】
2004102741.tif 000004
【図３】
2004102741.tif 000005
【図４】
2004102741.tif 000006
【図５】
2004102741.tif 000007
【図６】
2004102741.tif 000008
【図７】
2004102741.tif 000009
【図８】
2004102741.tif 000010