(57)【要約】【課題】  ユーザのリクエストに対して提供する拡張プログラムの実行タイミングを、簡単でかつ適確に制御することができる情報処理装置及びその制御方法、プログラムを提供する。【解決手段】  提供対象のサービスを実現する拡張プログラムと、リクエストの受付と、そのリクエストに対する拡張プログラムによる処理を制御する実処理プログラムと、拡張プログラムと実処理プログラムを自身に登録して、両者の実行環境を構成する窓口プログラムとを記憶する。窓口プログラムを起動し、拡張プログラムを起動して窓口プログラムに登録し、実処理プログラムを起動して窓口プログラムに登録し、窓口プログラムに登録された実処理プログラムに対して窓口プログラムに登録された拡張プログラムを登録することで、リクエストの受付と拡張プログラムが実現するサービスを有効状態にする。【選択図】  図１０
2006146512.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現する情報処理装置であって、
提供対象のサービスを実現する拡張プログラムと、前記リクエストの受付と、そのリクエストに対する前記拡張プログラムによる処理を制御する実処理プログラムと、前記拡張プログラムと前記実処理プログラムを自身に登録して、両者の実行環境を構成する窓口プログラムとを記憶する記憶手段と、
前記窓口プログラムを起動し、前記拡張プログラムを起動して前記窓口プログラムに登録し、前記実処理プログラムを起動して前記窓口プログラムに登録し、前記窓口プログラムに登録された実処理プログラムに対して前記窓口プログラムに登録された拡張プログラムを登録することで、前記リクエストの受付を、前記拡張プログラムが実現するサービスが有効な状態で実行するように制御する制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記窓口プログラムは、
前記拡張プログラムを記憶する拡張プログラム記憶手段と、
前記実処理プログラムを登録する実処理プログラム登録手段と、
前記実処理プログラム登録手段で登録された実処理プログラムを記憶する実処理プログラム記憶手段と、
前記実処理プログラムに対して、前記拡張プログラム記憶手段に記憶された拡張プログラムを登録する登録手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記実処理プログラムは、
前記拡張プログラムを登録する登録手段と、
前記登録手段で登録された拡張プログラムを記憶する拡張プログラム記憶手段と、
当該実処理プログラム自身を前記窓口プログラムに登録する実処理プログラム登録手段と、
前記リクエストに応じて、前記拡張プログラム記憶手段に記憶された拡張プログラムを呼び出し実行する実行手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記拡張プログラムは、ＨＴＴＰサービスを実現するプログラムであり、
前記窓口プログラムは、ＨＴＴＰプロトコルの処理を行わず、かつ前記実処理プログラムと連携して処理を実行するプログラムであり、
前記実処理プログラムは、ＨＴＴＰプロトコルの処理を行い、かつ前記窓口プログラムと連携して処理を実行するプログラムである
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記拡張プログラムには、自身が動作するネットワークポートが指定されている場合、
前記窓口プログラムは、前記拡張プログラムが指定するネットワークポートに関する情報と該拡張プログラムを管理する第１管理手段と、
前記実処理プログラムは、前記リクエストを受け取るネットワークポート毎に、対応する拡張プログラムを前記窓口プログラムより登録し、管理する第２管理手段と
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項６】
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現する情報処理装置の制御方法であって、
提供対象のサービスを実現する拡張プログラムと、前記リクエストの受付と、そのリクエストに対する前記拡張プログラムによる処理を制御する実処理プログラムと、前記拡張プログラムと前記実処理プログラムを自身に登録して、両者の実行環境を構成する窓口プログラムとを記憶部に記憶する記憶工程と、
前記窓口プログラムを起動し、前記拡張プログラムを起動して前記窓口プログラムに登録し、前記実処理プログラムを起動して前記窓口プログラムに登録し、前記窓口プログラムに登録された実処理プログラムに対して前記窓口プログラムに登録された拡張プログラムを登録することで、前記リクエストの受付を、前記拡張プログラムが実現するサービスが有効な状態で実行するように制御する制御工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項７】
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現するプログラムであって、
提供対象のサービスを実現する拡張プログラムと、前記リクエストの受付と、そのリクエストに対する前記拡張プログラムによる処理を制御する実処理プログラムと、前記拡張プログラムと前記実処理プログラムを自身に登録して、両者の実行環境を構成する窓口プログラムとを記憶部に記憶する記憶工程のプログラムコードと、
前記窓口プログラムを起動し、前記拡張プログラムを起動して前記窓口プログラムに登録し、前記実処理プログラムを起動して前記窓口プログラムに登録し、前記窓口プログラムに登録された実処理プログラムに対して前記窓口プログラムに登録された拡張プログラムを登録することで、前記リクエストの受付を、前記拡張プログラムが実現するサービスが有効な状態で実行するように制御する制御工程のプログラムコードと
を備えることを特徴とするプログラム。
【請求項８】
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現するためのプログラムであって、
提供対象のサービスを実現する拡張プログラムを記憶する拡張プログラム記憶手段と、
前記リクエストの受付と、そのリクエストに対する前記拡張プログラムによる処理を制御する実処理プログラムを登録する実処理プログラム登録手段と、
前記実処理プログラム登録手段で登録された実処理プログラムを記憶する実処理プログラム記憶手段と、
前記実処理プログラムに対して、前記拡張プログラム記憶手段に記憶された拡張プログラムを登録する登録手段とを備え、
当該プログラムは、前記拡張プログラムと前記実処理プログラムを自身に登録して、両者の実行環境を構成する
ことを特徴とするプログラム。
【請求項９】
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現するためのプログラムであって、
提供対象のサービスを実現する拡張プログラムを登録する登録手段と、
前記登録手段で登録された拡張プログラムを記憶する拡張プログラム記憶手段と、
当該プログラムと前記拡張プログラムを登録して、両者の実行環境を構成する窓口プログラムに、当該プログラムを登録するプログラム登録手段と、
前記リクエストに応じて、前記拡張プログラム記憶手段に記憶された拡張プログラムを呼び出し実行する実行手段と
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現する情報処理装置及びその制御方法、プログラムに関するものである。
【背景技術】
【０００２】
（１）アプリケーション実行サーバ
図１７において、メモリやＣＰＵといったリソースに制限が多い組込機器１０１では、複数のプログラムの実行を行う場合、単純に個々のプログラムをそれぞれ別プロセスとして動作させるのではなく、実行管理するためのアプリケーション実行サーバ１０２を用いて、アプリケーション実行サーバ１０２のプロセス上で各種アプリケーションプログラムを実行することが多い。そのようなアプリケーション実行サーバの例としては、ＯＳＧｉサーバ（注１）などが挙げられる。
【０００３】
このアプリケーション実行サーバ１０２にとっては、ＨＴＴＰサーバを実現するＨＴＴＰサービス１０３とＨＴＴＰサーバの拡張プログラムであるＳｅｒｖｌｅｔ（注２）やＨＴＭＬデータ等のコンテンツサービス１０４（以下、コンテンツサービス１０４と略称する）、その他のサービス１０５は、等しく一つのサービスプログラムとして扱われ、アプリケーション実行サーバ１０２によって、起動・停止される。
【０００４】
ＨＴＴＰサービス１０３は、コンテンツサービス１０４を登録するＡＰＩ（Application Program Interface）を持っている。コンテンツサービス１０４は、起動されるとこのＡＰＩを使用してＨＴＴＰサービス１０３に登録を行うことにより、ユーザは、ＨＴＴＰサービス１０３を通じてコンテンツサービス１０４を使用することが可能である。
【０００５】
ＨＴＴＰサービス１０３は、コンテンツサービス１０４を登録するＡＰＩを持っているので、動作しているＨＴＴＰサービス１０３に対して動的に、ＳｅｒｖｌｅｔやＨＴＭＬデータ等のコンテンツサービスを登録、削除することが可能となっている。
【０００６】
（２）ＨＴＴＰサーバの拡張プログラム
現在、実装されているＨＴＴＰサーバの多くは、クライアントに対してサーバに保存されているＨＴＭＬや画像ファイル等の静的なファイルの転送を行うだけでなく、動的にデータを生成し、クライアントに対して転送を行う機能を有している。代表的な拡張プログラムインターフェイスとして、ＳｅｒｖｌｅｔやＣＧＩ等があげられる。ＳｅｒｖｌｅｔやＣＧＩ等の機能を用いることにより、クライアントを利用するユーザと対話的な処理を行うことが可能になる。
【０００７】
（３）ＨＴＭＬフォーム
現在のＷｅｂクライアントは、構造記述言語の１つであるＨＴＭＬで規定されたフォームをブラウザ上に表示することができる。ユーザは、Ｗｅｂクライアントのブラウザ上に表示されたフォームに入力を行い、それをＨＴＴＰサーバに送信することが可能である。このフォームには、テキストフィールド、パスワード入力用テキストフィールド、ラジオボタン、リスト、チェックボックス、ファイル転送用フォーム、サブミットボタン、キャンセルボタン等の各種コントロールが規定されている。
【０００８】
（４）スクリプト言語
現在のＷｅｂクライアントは、ＨＴＴＰサーバから送られてきたＨＴＭＬデータ内に記述されているスクリプト言語を実行できるものが多い。さらに、このスクリプト言語は、ユーザによるフォームへの入力に対して暗号化等の処理を施して生成したデータを、ＨＴＴＰサーバに対して送信することが可能である。このようなスクリプト言語の一例として、ＥＣＭＡＳｃｒｉｐｔ（Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ）等があげられる。
【０００９】
（５）Ｗｅｂの認証機構
Ｗｅｂの認証機構としては、ＲＦＣ２０６８で規定されているＢＡＳＩＣ認証とＤｉｇｅｓｔ認証が広くサポートされている（例えば、特許文献１参照）。その他に、ＳｅｒｖｌｅｔやＣＧＩを使用するＳｅｒｖｌｅｔ認証が広く使用されている。ＢＡＳＩＣ認証、Ｄｉｇｅｓｔ認証は、ＨＴＴＰサーバ内で実装される認証機構であるが、ユーザ側のＵＩとしてＷｅｂブラウザに組み込まれたＩＤとパスワードの２つの値を入力するＵＩしか使用できない。また、ＨＴＴＰサーバとブラウザ（Ｗｅｂクライアント）間でＩＤとパスワード、もしくはＩＤとパスワードをＤｉｇｅｓｔ化したものしか交換できない、より強力な認証機構を追加することができない等の様々な制限がある。
【００１０】
一方、Ｓｅｒｖｌｅｔ認証は、認証機構を実現するためにＳｅｒｖｌｅｔやＣＧＩ等の拡張プログラムとして認証プログラムをＨＴＴＰサーバに追加することが必要であるが、認証ＵＩを実現するＨＴＭＬフォームデータを自由に作ることが可能であるだけでなく、さらにユーザの入力をスクリプト言語を用いてユーザのニーズにあった暗号化方法で暗号化し、ＨＴＴＰサーバに送信するといったことや、ユーザがログインするときに使用する認証サーバを指定する等が可能であり、ユーザにとってより使いやすく、セキュアな認証機構を提供することが可能である。
【００１１】
さらに、認証用のＳｅｒｖｌｅｔ（認証Ｓｅｒｖｌｅｔ）を交換することにより、機器の使用目的に応じた様々な認証機構を使用することが可能である。
【００１２】
アプリケーション実行サーバ１０２上のＨＴＴＰサービス１０３でも、コンテンツサービスとして認証Ｓｅｒｖｌｅｔサービスを登録、実行することにより、ユーザにとってより使いやすい認証機構を提供することが可能となる。
【００１３】
従来のＨＴＴＰサーバでも、上記技術を使用することによって、柔軟な認証機構を提供することが可能である。しかし、認証Ｓｅｒｖｌｅｔを含む拡張プログラムは、サーバプログラムの一部としてサーバの起動時に起動され、起動しているＨＴＴＰサーバに対して動的に認証Ｓｅｒｖｌｅｔを含む拡張プログラムを登録することはできなかった。
【００１４】
そのため、認証Ｓｅｒｖｌｅｔを含む拡張プログラムの交換等に柔軟性がなかったり、さらに組込機器１０１のようにリソースが限られた機器では、サーバプログラムの設定を書き換えて異なる認証Ｓｅｒｖｌｅｔを含む拡張プログラムを実行することはできないものが多い。
【００１５】
そういった問題に対応するためアプリケーション実行サーバの一つであるＯＳＧｉサーバ上で動作するＨＴＴＰサービスでは、起動しているＨＴＴＰサービスに対して動的に認証Ｓｅｒｖｌｅｔを含む拡張プログラムを追加することができるが、後の「発明が解決しようとする課題」の項で述べるような欠点をもっており、それを解決できる技術は現在のところ提案されていない。
【００１６】
（注１）ＯＳＧｉサーバは、ホームゲートウェイといった組込機器上で複数のＪａｖａ（登録商標）（注３）プログラムの実行を管理するアプリケーション実行サーバであり、ＯＳＧｉ  Ａｌｉａｎｃｅによって仕様が規定されている。
【００１７】
（注２）米国Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓによって仕様が規定されているＨＴＴＰサーバ拡張インターフェイス、ＳｅｒｖｌｅｔはＪａｖａ（登録商標）で記述される。
【００１８】
（注３）  米国Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓによって仕様が規定されているプログラミング言語、およびプログラム実行環境。
【特許文献１】特開２００１−５１９４６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
従来技術で述べたように、認証Ｓｅｒｖｌｅｔサービスによる認証には、様々な利点があるが、アプリケーション実行サーバ１０２上で従来のＨＴＴＰサービス１０３と認証Ｓｅｒｖｌｅｔサービスとを組み合わせると、図１８に示すような問題が発生する。
【００２０】
認証Ｓｅｒｖｌｅｔサービスは、起動時にアプリケーション実行サーバ１０２に登録されているＨＴＴＰサービス１０３を取得し、自身をＨＴＴＰサービス１０３に登録する必要がある。そのため、認証Ｓｅｒｖｌｅｔサービスが起動するためには、その前にＨＴＴＰサービス１０３が起動していなくてはならない。よって、まず、ＨＴＴＰサービス１０３が生成・起動される（Ｓ２０１）。
【００２１】
次に、認証Ｓｅｒｖｌｅｔサービスを登録する（Ｓ２０３）。認証Ｓｅｒｖｌｅｔサービスが起動したあとに、クライアントからアクセスされた場合は認証がおこなわれる（Ｓ２０４）が、ＨＴＴＰサービスの生成・起動（Ｓ２０１）と認証Ｓｅｒｖｌｅｔサービスの起動（Ｓ２０３）の間に、クライアントからのアクセスがあると、まだ、認証Ｓｅｒｖｌｅｔサービスが起動していないため、認証なしでＨＴＴＰサービスに対するアクセスが可能になってしまう（Ｓ２０２）という問題が発生する。
【００２２】
一方、図１９のように、ＨＴＴＰサービス１０３の生成と起動をわけ、まず、ＨＴＴＰサービス１０３を生成し（Ｓ３０１）、次に、認証ＳｅｒｖｌｅｔサービスをＨＴＴＰサービス１０３に登録する（Ｓ３０３）。次に、ＨＴＴＰサービス１０３を起動し（Ｓ３０５）、その後に、一般のコンテンツサービス１０４を登録する（Ｓ３０７）。
【００２３】
この場合、ＨＴＴＰサービス１０３の生成後は、まだ、ＨＴＴＰサービス１０３が起動していないので、クライアントのアクセスを受付けない（Ｓ３０２）。さらに、認証Ｓｅｒｖｌｅｔサービス登録後もＨＴＴＰサービス１０３が起動していないので、クライアントのアクセスを受付けない（Ｓ３０４）。そして、ＨＴＴＰサービス１０３が起動後は、クライアントからのアクセスがおこなわれると、認証Ｓｅｒｖｌｅｔサービス認証がおこなわれるようになる（Ｓ３０６）。
【００２４】
しかし、この方法では、アプリケーション実行サーバ１０２による認証Ｓｅｒｖｌｅｔサービスの登録に係る処理手順がより複雑化するという欠点がある。
【００２５】
更に、ＨＴＴＰサービス１０３の生成と起動を分けるということで、アプリケーション実行サーバ１０２が管理しなくてはならないサービスの状態が増えてしまう。
【００２６】
また、さらに、認証Ｓｅｒｖｌｅｔサービスは、ＨＴＴＰサービスの生成と起動の間に登録を行う必要があるが、そのためには、アプリケーション実行サーバ１０２は、各種サービスの起動処理の中で、ＨＴＴＰサービス１０３の生成→認証Ｓｅｒｖｌｅｔサービスの登録→ＨＴＴＰサービス１０３の起動といった、一連のシーケンスを管理しなくてはいけない。
【００２７】
本発明は上記の課題を解決するためになされたものであり、ユーザのリクエストに対して提供する拡張プログラムの実行タイミングを、簡単でかつ適確に制御することができる情報処理装置及びその制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００２８】
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現する情報処理装置であって、
提供対象のサービスを実現する拡張プログラムと、前記リクエストの受付と、そのリクエストに対する前記拡張プログラムによる処理を制御する実処理プログラムと、前記拡張プログラムと前記実処理プログラムを自身に登録して、両者の実行環境を構成する窓口プログラムとを記憶する記憶手段と、
前記窓口プログラムを起動し、前記拡張プログラムを起動して前記窓口プログラムに登録し、前記実処理プログラムを起動して前記窓口プログラムに登録し、前記窓口プログラムに登録された実処理プログラムに対して前記窓口プログラムに登録された拡張プログラムを登録することで、前記リクエストの受付を、前記拡張プログラムが実現するサービスが有効な状態で実行するように制御する制御手段と
を備えることを特徴とする情報処理装置。
【００２９】
また、好ましくは、前記窓口プログラムは、
前記拡張プログラムを記憶する拡張プログラム記憶手段と、
前記実処理プログラムを登録する実処理プログラム登録手段と、
前記実処理プログラム登録手段で登録された実処理プログラムを記憶する実処理プログラム記憶手段と、
前記実処理プログラムに対して、前記拡張プログラム記憶手段に記憶された拡張プログラムを登録する登録手段と
を備える。
【００３０】
また、好ましくは、前記実処理プログラムは、
前記拡張プログラムを登録する登録手段と、
前記登録手段で登録された拡張プログラムを記憶する拡張プログラム記憶手段と、
当該実処理プログラム自身を前記窓口プログラムに登録する実処理プログラム登録手段と、
前記リクエストに応じて、前記拡張プログラム記憶手段に記憶された拡張プログラムを呼び出し実行する実行手段と
を備える。
【００３１】
また、好ましくは、前記拡張プログラムは、ＨＴＴＰサービスを実現するプログラムであり、
前記窓口プログラムは、ＨＴＴＰプロトコルの処理を行わず、かつ前記実処理プログラムと連携して処理を実行するプログラムであり、
前記実処理プログラムは、ＨＴＴＰプロトコルの処理を行い、かつ前記窓口プログラムと連携して処理を実行するプログラムである。
【００３２】
また、好ましくは、前記拡張プログラムには、自身が動作するネットワークポートが指定されている場合、
前記窓口プログラムは、前記拡張プログラムが指定するネットワークポートに関する情報と該拡張プログラムを管理する第１管理手段と、
前記実処理プログラムは、前記リクエストを受け取るネットワークポート毎に、対応する拡張プログラムを前記窓口プログラムより登録し、管理する第２管理手段と
を備える。
【００３３】
上記の目的を達成するための本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現する情報処理装置の制御方法であって、
提供対象のサービスを実現する拡張プログラムと、前記リクエストの受付と、そのリクエストに対する前記拡張プログラムによる処理を制御する実処理プログラムと、前記拡張プログラムと前記実処理プログラムを自身に登録して、両者の実行環境を構成する窓口プログラムとを記憶部に記憶する記憶工程と、
前記窓口プログラムを起動し、前記拡張プログラムを起動して前記窓口プログラムに登録し、前記実処理プログラムを起動して前記窓口プログラムに登録し、前記窓口プログラムに登録された実処理プログラムに対して前記窓口プログラムに登録された拡張プログラムを登録することで、前記リクエストの受付を、前記拡張プログラムが実現するサービスが有効な状態で実行するように制御する制御工程と
を備える。
【００３４】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現するプログラムであって、
提供対象のサービスを実現する拡張プログラムと、前記リクエストの受付と、そのリクエストに対する前記拡張プログラムによる処理を制御する実処理プログラムと、前記拡張プログラムと前記実処理プログラムを自身に登録して、両者の実行環境を構成する窓口プログラムとを記憶部に記憶する記憶工程のプログラムコードと、
前記窓口プログラムを起動し、前記拡張プログラムを起動して前記窓口プログラムに登録し、前記実処理プログラムを起動して前記窓口プログラムに登録し、前記窓口プログラムに登録された実処理プログラムに対して前記窓口プログラムに登録された拡張プログラムを登録することで、前記リクエストの受付を、前記拡張プログラムが実現するサービスが有効な状態で実行するように制御する制御工程のプログラムコードと
を備える。
【００３５】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現するためのプログラムであって、
提供対象のサービスを実現する拡張プログラムを記憶する拡張プログラム記憶手段と、
前記リクエストの受付と、そのリクエストに対する前記拡張プログラムによる処理を制御する実処理プログラムを登録する実処理プログラム登録手段と、
前記実処理プログラム登録手段で登録された実処理プログラムを記憶する実処理プログラム記憶手段と、
前記実処理プログラムに対して、前記拡張プログラム記憶手段に記憶された拡張プログラムを登録する登録手段とを備え、
当該プログラムは、前記拡張プログラムと前記実処理プログラムを自身に登録して、両者の実行環境を構成する。
【００３６】
上記の目的を達成するための本発明によるプログラムは以下の構成を備える。即ち、
ユーザからのリクエストに対して、サービスを提供するサーバ機能を実現するためのプログラムであって、
提供対象のサービスを実現する拡張プログラムを登録する登録手段と、
前記登録手段で登録された拡張プログラムを記憶する拡張プログラム記憶手段と、
当該プログラムと前記拡張プログラムを登録して、両者の実行環境を構成する窓口プログラムに、当該プログラムを登録するプログラム登録手段と、
前記リクエストに応じて、前記拡張プログラム記憶手段に記憶された拡張プログラムを呼び出し実行する実行手段と
を備える。
【発明の効果】
【００３７】
本発明によれば、ユーザのリクエストに対して提供する拡張プログラムの実行タイミングを、簡単でかつ適確に制御することができる情報処理装置及びその制御方法、プログラムを提供できる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施の形態について図面を用いて詳細に説明する。
【００３９】
尚、以下の説明において、「サーバ」とは、ＷＷＷシステムにおいてＨＴＭＬ文書や画像などの情報を蓄積しておき、Ｗｅｂブラウザなどのクライアントソフトウェアからの要求を受けて、ネットワークを通じて情報送信を行うＷｅｂサーバ（ウェブサーバ（ＨＴＴＰサーバを含む））や、ネットワークを通じてユーザからの要求を受けて、データベースシステムなどの処理に橋渡しを行う機能を備えたアプリケーションサーバ（または、Ｗｅｂアプリケーションサーバ）を意味するものである。
【００４０】
また、「クライアント」とは、ネットワークにおいてサーバの提供する機能やデータを利用するコンピュータ、およびソフトウェアを意味するものである。このクライアントとしては、例えば、ネットワークに接続されたコンピュータ、家庭用のパーソナルコンピュータ、およびコンピュータ上で動作するＷｅｂブラウザ、ビューワ等が該当する。
【００４１】
尚、ネットワークは、典型的にはインターネットやＬＡＮやＷＡＮや電話回線、専用デジタル回線、ＡＴＭやフレームリレー回線、通信衛星回線、ケーブルテレビ回線、データ放送用無線回線等のいずれか、またはこれらの組み合わせにより実現されるいわゆる通信ネットワークであり、データの送受信が可能であれば良い。
【００４２】
＜実施形態１＞
リソースが限定されている組込機器等で、複数のプログラムを動作させる場合、プログラム毎に複数のプロセスを割り当てるといったＰＣ（パーソナルコンピュータ）などでは一般的な手法をとることは困難である。そのため、単独のプロセス上で複数のプログラムの実行管理を行うアプリケーション実行サーバを用意し、その上で複数のプログラムを実行するということがよくおこなわれる。
【００４３】
ここで、ＰＣ等の組込機器を実現する情報処理装置の基本構成について、図１を用いて説明する。
【００４４】
図１は本発明の実施形態１の情報処理装置の基本構成を示す図である。
【００４５】
図１のように、ハードウェア８０１上でオペーレーティングシステム（ＯＳ）８０２が動作し、その上でアプリケーション実行サーバ８０３が動作している。尚、オペーレーティングシステム８０２とアプリケーション実行サーバ８０３は、統合されて一つのものになっていてもよい。
【００４６】
アプリケーション実行サーバ８０３上では、サービス（サービスＡ〜サービスＤ）とよばれる複数のプログラムが実行される。アプリケーション実行サーバ８０３は、インストール、実行、停止、アンインストールといったサービスのライフサイクルの管理やサービスの使用するリソースの管理などを行う。
【００４７】
また、アプリケーション実行サーバ８０３は、サービスのライフサイクルを管理するだけでなく、サービス間で機能を共有するための仲介役も果たしている。
【００４８】
尚、ハードウェア８０１は、汎用コンピュータに搭載される標準的な構成要素（例えば、ＣＰＵ、ＲＡＭ、ＲＯＭ、ハードディスク、外部記憶装置、ネットワークインタフェース、ディスプレイ、キーボード、マウス等）を有している。
【００４９】
また、以下に説明する各種プログラム（拡張プログラム、窓口ＨＴＴＰサーバプログラム、実ＨＴＴＰサーバプログラム）は、例えば、ハードディスクやＲＯＭ等の記憶媒体に記憶され、ＣＰＵがこれらのプログラムを記憶媒体から読み出して、メモリ（ＲＡＭ等）に展開して記憶し、それらのプログラムの実行を制御する。
【００５０】
次に、アプリケーション実行サーバ８０３の動作例について、図２を用いて説明する。
【００５１】
図２は本発明の実施形態１のアプリケーション実行サーバの動作例を示す図である。
【００５２】
図２のように、サービスＡ（９０２）が、サービスＡ（９０２）の機能を他のサービスで使えるようアプリケーション実行サーバ８０３に登録を行う（Ｓ９０３）。アプリケーション実行サーバ８０３は、登録された機能の情報を機能リスト９０４に記憶する。
【００５３】
サービスＡ（９０２）が提供する機能を使用したいサービスＢ（９０５）は、アプリケーション実行サーバ８０３に対して機能の検索を依頼する（Ｓ９０６）。これにより、アプリケーション実行サーバ８０３は、機能リスト９０４を検索し、希望の機能を提供しているサービスが存在すれば、それをサービスＢ（９０５）に通知する（Ｓ９０７）。また、サービスＢ（９０５）は、アプリケーション実行サーバ８０３から通知された機能を有するサービスＡ（９０２）に対して、機能の提供の依頼を行う（Ｓ９０８）。
【００５４】
次に、実施形態１の特徴的なシステム構成について、図３を用いて説明する。
【００５５】
図３は本発明の実施形態１のシステム構成を示す図である。
【００５６】
特に、実施形態１では、ＨＴＴＰサーバプログラムを、コンテンツサービスに代表される拡張プログラムの登録窓口となる窓口ＨＴＴＰサーバ（窓口プログラム）４０１と、クライアントからのリクエストを受け付けてＨＴＴＰ処理（ＨＴＴＰプロトコルの処理）を行う実ＨＴＴＰサーバ４０５（実処理プログラム）に分離することにより、認証機構（認証プログラム）が動作する前にクライアントからのアクセスを受付けることを禁止（防止）する構成について説明する。
【００５７】
窓口ＨＴＴＰサーバ４０１は、ＳｅｒｖｌｅｔやＨＴＭＬデータといったコンテンツサービス４０３を登録する窓口であり、ネットワークを介してのクライアントからのリクエストの受付、ＨＴＴＰプロトコルの処理、レスポンスの送信等の機能は持たない。
【００５８】
つまり、窓口プログラムは、ＨＴＴＰプロトコルの処理を行わず、かつ実処理プログラムと連携して処理を実行するプログラムであり、かつ拡張プログラムと前記実処理プログラムを自身に登録して、両者の実行環境を構成するプログラムである。一方、実処理プログラムは、ＨＴＴＰプロトコルの処理を行い、かつ窓口プログラムと連携して処理を実行するプログラムである。
【００５９】
図３において、窓口ＨＴＴＰサーバ４０１は、コンテンツサービス４０３を登録するコンテンツサービス登録インターフェイス４０２と、実ＨＴＴＰサーバ４０５（実ＨＴＴＰサーバサービス）を登録するためのサーバ登録インターフェイス４０４を有している。そして、図２で示すアプリケーション実行サーバ８０３に、これらの登録インターフェイスを登録している。
【００６０】
コンテンツサービス登録インターフェイス４０２は、図４のようなインターフェイス記述によって提供され、アプリケーション実行サーバ８０３に登録されている。
【００６１】
サーバ登録インターフェイス４０４は、実ＨＴＴＰサーバ４０５が一つの場合は、例えば、図５のようなインターフェイス記述によって提供され、アプリケーション実行サーバ８０３に登録されている。実ＨＴＴＰサーバ４０５がいくつかのネットワークポートを使用して実行される場合は、例えば、図６や図７のようなインターフェイス記述によって提供され、アプリケーション実行サーバ８０３に登録されている。
【００６２】
さらに、窓口ＨＴＴＰサーバ４０１は、コンテンツサービス登録インターフェイス４０２で登録された、コンテンツサービスを保存するサービスリスト４０８と、サーバ登録インターフェイス４０４で登録された実ＨＴＴＰサーバ４０５を保存する実サーバリスト４０７を有している。
【００６３】
一方、実ＨＴＴＰサーバ４０５は、コンテンツサービスを登録するコンテンツサービス登録インターフェイス４０６と、コンテンツサービス登録インターフェイス４０６で登録されたコンテンツサービスを記憶するサービスリスト４１５、ＨＴＴＰプロトコルのハンドリングを行うＨＴＴＰ処理部４１４から構成される。
【００６４】
ＨＴＴＰ処理部４１４は、起動が終了すると、サーバソケットをオープンし、クライアントからのリクエストを待機する。クライアントからリクエストを受け付けると、そのリクエストの内容を解析し、リクエストに対応するコンテンツサービスをサービスリスト４１５から検索する。次に、そのリクエストに対応したコンテンツサービスからクライアントに送信すべきデータを取得、もしくはリクエストデータをコンテンツサービスに引数として渡し、コンテンツサービスからその結果となるデータの取得を行う。
【００６５】
そして、その取得したデータにＨＴＴＰのヘッダーデータを付加し、クライアントに対して送信を行う。もし、リクエストに対応するコンテンツサービスをサービスリスト４１５から検索できなかった場合や、コンテンツサービスからエラーが返された場合は、クライアントに対してエラーの送信を行う。
【００６６】
コンテンツサービス登録インターフェイス４０２は、起動されると、窓口ＨＴＴＰサーバ４０１（窓口ＨＴＴＰサーバサービス）を取得し、取得した窓口ＨＴＴＰサーバ４０１に対して、コンテンツサービス４０３の登録を行う。また、窓口ＨＴＴＰサーバ４０１は、クライアントからのリクエストによる実ＨＴＴＰサーバ４０５からの呼出に応じて、クライアントに送信するデータの生成を行う。
【００６７】
アプリケーション実行サーバ８０３は、サービスプログラムを起動する順序のみを記憶しており、その順序に従って、まず、窓口ＨＴＴＰサーバ４０１を起動する。次に、コンテンツサービス４０３を起動する。コンテンツサービス４０３は、自身の起動シーケンスの中で、アプリケーション実行サーバ８０３に登録されている窓口ＨＴＴＰサーバ４０１のコンテンツサービス登録インターフェイス４０２を取得し、窓口ＨＴＴＰサーバ４０１に対し、取得したコンテンツサービス登録インターフェイス４０２を用いて自身を登録する（Ｓ４０９）。
【００６８】
このとき起動されるコンテンツサービス４０３は、認証Ｓｅｒｖｌｅｔサービスであってもよいし、一般のコンテンツサービスであってもよいし、それらの両方であってもよい。
【００６９】
ここで、実施形態１のコンテンツサービス４０３の登録手順及び実ＨＴＴＰサーバ４０５の登録手順について、図８及び図９を用いて説明する。
【００７０】
図８は本発明の実施形態１のコンテンツサービスの登録手順を示すフローチャートである。また、図９は本発明の実施形態１の実ＨＴＴＰサーバの登録手順を示すフローチャートである。
【００７１】
図８において、窓口ＨＴＴＰサーバ４０１に、コンテンツサービス４０３が登録される（ステップＳ６０１）と、窓口ＨＴＴＰサーバ４０１は、窓口ＨＴＴＰサーバ４０１の実サーバリスト４０７に実ＨＴＴＰサーバ４０５が登録されているか否かを判定する（ステップＳ６０２）。この時点では、実ＨＴＴＰサーバ４０５は、まだ、起動しておらず、実サーバリスト４０７に登録されている実ＨＴＴＰサーバ４０５はないので（ステップＳ６０２でＮＯ）、コンテンツサービス４０３をサービスリスト４０８に登録する（ステップＳ６０４、図３のＳ４１０）。
【００７２】
一方、コンテンツサービス４０３の起動が終了すると、次に、実ＨＴＴＰサーバ４０５が起動される。図９において、実ＨＴＴＰサーバ４０５は、自身の起動シーケンスの中で、アプリケーション実行サーバ８０３に登録されている窓口ＨＴＴＰサーバ４０１のサーバ登録インターフェイス４０４を取得し、そのサーバ登録インターフェイス４０４を用いて、自身を窓口ＨＴＴＰサーバ４０１に登録する（ステップＳ７０１、図３のＳ４１１）。
【００７３】
実ＨＴＴＰサーバ４０５が登録されると、窓口ＨＴＴＰサーバ４０１は、サービスリスト４０８が空であるか否かを判定する（ステップＳ７０２）。サービスリスト４０８が空でない場合（ステップＳ７０２でＹＥＳ）、実ＨＴＴＰサーバ４０５のコンテンツサービス登録インターフェイス４０６を用いて、ステップＳ７０１で登録された実ＨＴＴＰサーバ４０５に対して、サービスリスト４０８に登録されているコンテンツサービスを登録する（ステップＳ７０３、図３のＳ４１３）。さらに、実サーバリスト４０９に、ステップＳ７０１で登録された実ＨＴＴＰサーバ４０５を登録する（ステップＳ７０４、図３のＳ４１２）。
【００７４】
一方、サービスリスト４０８が空である場合（ステップＳ７０２でＮＯ）、実サーバリスト４０９に、ステップＳ７０１で登録された実ＨＴＴＰサーバ４０５を登録する（ステップＳ７０４、図３のＳ４１２）。
【００７５】
尚、実ＨＴＴＰサーバ４０５は、ステップＳ７０３の時点で、窓口ＨＴＴＰサーバ４０１から登録されたコンテンツサービスをサービスリスト４１５に記憶する（図３のＳ４１６）。実ＨＴＴＰサーバ４０５に対するコンテンツサービス４０３の登録が終了すると、実ＨＴＴＰサーバ４０５はサーバポートをオープンし、クライアントからのアクセスの受付けを開始する。
【００７６】
ここで、登録される実ＨＴＴＰサーバ４０５は、一つであってもよいし、ＨＴＴＰのリクエストを受け取るネットワークポート毎に複数あってもよい。
【００７７】
実ＨＴＴＰサーバ４０５の起動シーケンスは、実ＨＴＴＰサーバ４０５で実装され、窓口ＨＴＴＰサーバ４０１への実ＨＴＴＰサーバ４０５の登録も窓口ＨＴＴＰサーバ４０１と実ＨＴＴＰサーバ４０５間で閉じた処理である。そのため、アプリケーション実行サーバ８０３は、実ＨＴＴＰサーバ４０５の起動を行うだけでよい。
【００７８】
実ＨＴＴＰサーバ４０５が起動されたあとに、コンテンツサービス４０３が起動されると、コンテンツサービス４０３は自身の起動シーケンスの中で、窓口ＨＴＴＰサーバ４０１に対しコンテンツサービス登録インターフェイス４０２を用いて自身を登録する。
【００７９】
つまり、図８において、窓口ＨＴＴＰサーバ４０１に、コンテンツサービス４０３が登録される（ステップＳ６０１）。次に、窓口ＨＴＴＰサーバ４０１は、窓口ＨＴＴＰサーバ４０１の実サーバリスト４０９に、実ＨＴＴＰサーバ４０５が登録されているか否かを判定する（ステップＳ６０２）。この時点では、実ＨＴＴＰサーバ４０５は、すでに起動していて登録されているので（ステップＳ６０２でＹＥＳ）、コンテンツサービス４０３を実ＨＴＴＰサーバ４０５のコンテンツサービス登録インターフェイス４０６を用いて実ＨＴＴＰサーバ４０５に登録する（ステップＳ６０３）。続いて、そのコンテンツサービス４０３をサービスリスト４０８に登録する（ステップＳ６０４）。
【００８０】
図１０は、本発明の実施形態１のシステムの動作フローを示す図である。以上のような窓口ＨＴＴＰサーバ４０１と実ＨＴＴＰサーバ４０５を構成すると、図１０のように、まず、窓口ＨＴＴＰサーバ４０１が起動される（Ｓ５０１）。このとき、実際に、ＨＴＴＰのリクエストを受ける実ＨＴＴＰサーバ４０５はまだ存在していないので、クライアントからのリクエストが受付されることはなく、クライアントにはサーバが存在しないという情報が返される（Ｓ５０２）。
【００８１】
次に、認証Ｓｅｒｖｌｅｔや一般のコンテンツサービスを含むコンテンツサービス４０３が起動し、窓口ＨＴＴＰサーバ４０１に登録される（Ｓ５０３）。このときも、実際にＨＴＴＰのリクエストを受ける実ＨＴＴＰサーバ４０５は、まだ存在していないので、クライアントからのリクエストが受付されることはない（Ｓ５０４）。
【００８２】
次に、実ＨＴＴＰサーバ４０５を起動して、窓口ＨＴＴＰサーバ４０１への登録（Ｓ５０５）、窓口ＨＴＴＰサーバ４０１から実ＨＴＴＰサーバ４０５へのコンテンツサービス４０３の登録（Ｓ５０６）、実ＨＴＴＰサーバ４０５の起動（Ｓ５０７）が、実ＨＴＴＰサーバ４０５の起動シーケンスの中で、アトミックにおこなわれて実ＨＴＴＰサーバ４０５の起動（ＨＴＴＰサーバ機能の起動）が完了する。実ＨＴＴＰサーバ４０５の起動が完了したときには、コンテンツサービス４０３である認証Ｓｅｒｖｌｅｔが、実ＨＴＴＰサーバ４０５に既に登録されているので、認証機構が有効の状態でクライアントからのアクセスを受付けることが可能になる（Ｓ５０８）。
【００８３】
以上説明したように、実施形態１によれば、ＨＴＴＰサーバプログラムを、コンテンツサービスに代表される拡張プログラムの登録窓口となる窓口ＨＴＴＰサーバと、クライアントからのリクエストを受け付けてＨＴＴＰ処理を行う実ＨＴＴＰサーバ４０５に分離することにより、認証機構（認証プログラム）が動作する前にクライアントからのアクセスを受付けることは禁止することができる。
【００８４】
つまり、ＨＴＴＰサーバプログラムを２つの機能のＨＴＴＰサーバに分けることにより、アプリケーション実行サーバを複雑化しなくても、認証ＳｅｒｖｌｅｔなしにＨＴＴＰサービスが実行されることを防止し、セキュアなＨＴＴＰサービスを実現することができる。
【００８５】
また、アプリケーション実行サーバ上で、起動される各種サービスの複雑な状態管理を行う必要がなくなり、単にサービスの起動の順序のみを管理すればよいので、アプリケーション実行サーバの実装を単純にすることができる。アプリケーション実行サーバは、サービス全体の管理を行うものであるため、アプリケーション実行サーバの実装を単純にできるということは、システム全体のパフォーマンスやバグを減らすことにつながる。
【００８６】
＜実施形態２＞
実施形態２は、実施形態１の応用例であり、コンテンツサービスを呼び出すことの可能な実ＨＴＴＰサーバ４０５の動作するネットワークポート番号を指定する環境での構成について説明する。
【００８７】
尚、実施形態２では、実施形態１と共通の構成については、共通の参照番号を用いて説明する。
【００８８】
実施形態２では、図３に示したように、窓口ＨＴＴＰサーバ４０１は、コンテンツサービス４０３を登録するコンテンツサービス登録インターフェイス４０２と、実ＨＴＴＰサーバ４０５を登録するためのサーバ登録インターフェイス４０４を有している。そして、図２で示すアプリケーション実行サーバ８０３に、これらの登録インターフェイスを登録している。
【００８９】
コンテンツサービス登録インターフェイス４０２は、コンテンツサービスを呼び出すことの可能な実ＨＴＴＰサーバ４０５の動作するネットワークポート番号を指定することが可能なインターフェイスである。引数として、ネットワークポート番号を指定してもよいし、ネットワークポート毎に違う登録インターフェイスをもっていてもよい。
【００９０】
例えば、コンテンツサービス登録インターフェイス４０２は、引数としてネットワークポート番号を指定する場合は、例えば、図１１のようなインターフェイス記述によって提供され、アプリケーション実行サーバ８０３に登録されている。また、ネットワークポート毎に違う登録インターフェイスにする場合は、例えば、図１２のようなインターフェイス記述によって提供され、アプリケーション実行サーバ８０３に登録されている。
【００９１】
サーバ登録インターフェイス４０４は、実ＨＴＴＰサーバ４０５と、実ＨＴＴＰサーバ４０５の動作するネットワークポート番号を登録できるインターフェイスである。引数としてネットワークポート番号を指定してもよいし、ネットワークポート毎に違う登録インターフェイスを持っていてもよい。
【００９２】
サーバ登録インターフェイス４０４は、実ＨＴＴＰサーバ４０５がいくつかのネットワークポートを使用して実行される場合において、実ＨＴＴＰサーバ４０５の動作するネットワークポート番号を引数としてネットワークポート番号を指定する場合は、例えば、図６のようなインターフェイス記述によって提供され、アプリケーション実行サーバ８０３に登録されている。また、ネットワークポート毎に違う登録インターフェイスにする場合は、例えば、図７のようなインターフェイス記述によって提供され、アプリケーション実行サーバ８０３に登録されている。
【００９３】
さらに、窓口サーバ４０１は、コンテンツサービス登録インターフェイス４０２で登録されたコンテンツサービスを保存する、例えば、図１３のようなサービスリスト４０８と、サーバ登録インターフェイス４０４で登録された実ＨＴＴＰサーバ４０５を保存する、図１４のような実サーバリスト４０７を有している。
【００９４】
サービスリスト４０８では、図１３のように、コンテンツサービスに関する情報１６０１（例えば、コンテンツサービス名）だけでなく、それに対応するコンテンツサービスを呼び出すことの可能な実ＨＴＴＰサーバの動作するネットワークポート番号に関する情報１６０２（例えば、ポート番号）も保持している。
【００９５】
また、実サーバリスト４０７では、図１４のように、実ＨＴＴＰサーバに関する情報１７０１（例えば、実ＨＴＴＰサーバ名）だけでなく、それに対応する実ＨＴＴＰサーバの動作するネットワークポート番号の情報１７０２（例えば、ポート番号）も保持している。
【００９６】
窓口ＨＴＴＰサーバ４０１は、コンテンツサービス４０３を登録する窓口であり、クライアントからのリクエストの受付け、ＨＴＴＰプロトコルの処理、レスポンスの送信などの機能は持たない。
【００９７】
実ＨＴＴＰサーバ４０５は、窓口ＨＴＴＰサーバ４０１からコンテンツサービス４０３を登録するコンテンツサービス登録インターフェイス４０６と、コンテンツサービス登録インターフェイス４０６で登録されたコンテンツサービスを記憶するサービスリスト４１５、ＨＴＴＰプロトコルのハンドリングを行うＨＴＴＰ処理部４１４から構成される。
【００９８】
ＨＴＴＰ処理部４１４は、起動が終了すると、サーバソケットをオープンし、クライアントからのリクエストを待機する。クライアントからのリクエスト受け付けると、そのリクエストの内容を解析し、リクエストに対応するコンテンツサービスをサービスリスト４１５から検索する。次に、そのリクエストに対応したコンテンツサービスからクライアントに送信すべきデータを取得、もしくはリクエストデータをコンテンツサービスに引数として渡しコンテンツサービスからその結果となるデータの取得を行う。
【００９９】
そして、その取得したデータに、ＨＴＴＰのヘッダーデータを付加して、クライアントに対して送信を行う。もし、リクエストに対応するコンテンツサービスをサービスリスト４１５から検索できなかった場合や、コンテンツサービスからエラーが返された場合は、クライアントに対してエラーの送信を行う。
【０１００】
コンテンツサービス登録インターフェイス４０２は起動されると、窓口ＨＴＴＰサーバ４０１（窓口ＨＴＴＰサーバサービス）を取得し、取得した窓口ＨＴＴＰサーバ４０１に対して、コンテンツサービス４０３の登録を行う。また、窓口ＨＴＴＰサーバ４０１は、クライアントからのリクエストによる実ＨＴＴＰサーバ４０５からの呼出に応じてクライアントに送信するデータの生成を行う。
【０１０１】
アプリケーション実行サーバ８０３は、サービスプログラムを起動する順序のみを記憶しており、その順序に従って、まず、窓口ＨＴＴＰサーバ４０１を起動する。次に、コンテンツサービス４０３が起動される。コンテンツサービス４０３は、自身の起動シーケンスの中で、アプリケーション実行サーバ８０３に登録されている窓口ＨＴＴＰサーバ４０１のコンテンツサービス登録インターフェイス４０２を取得し、窓口ＨＴＴＰサーバ４０１に対し、取得したコンテンツサービス登録インターフェイス４０２を用いて自身を登録する（Ｓ４０９）。
【０１０２】
このとき起動されるコンテンツサービス４０３は、認証Ｓｅｒｖｌｅｔサービスであってもよいし、一般のコンテンツサービスであってもよいし、その両方であってもよい。
【０１０３】
ここで、実施形態２のコンテンツサービス４０３の登録手順及び実ＨＴＴＰサーバ４０５の登録手順について、図１５及び図１６を用いて説明する。
【０１０４】
図１５は本発明の実施形態２のコンテンツサービスの登録手順を示すフローチャートである。また、図１６は本発明の実施形態２の実ＨＴＴＰサーバの登録手順を示すフローチャートである。
【０１０５】
図１５において、窓口ＨＴＴＰサーバ４０１に、コンテンツサービス４０３が登録される（ステップＳ１９０１）と、窓口ＨＴＴＰサーバ４０１は、窓口ＨＴＴＰサーバ４０１の図１４の実サーバリスト４０７を参照して、その実サーバリスト４０７のポート番号の欄（１６０２）で、コンテンツサービスが指定するネットワークポートの番号と等しい実ＨＴＴＰサーバを検索する（ステップＳ１９０２）。この時点では、実ＨＴＴＰサーバサービス４０５は、まだ一つも起動しておらず、実サーバリスト４０７に登録されている実ＨＴＴＰサーバ４０５はないので（ステップＳ１９０２でＮＯ）、コンテンツサービス４０３を、図１６のサービスリスト４０８に、ネットワークポート番号の情報とともに登録する（ステップＳ１９０４）。
【０１０６】
一方、コンテンツサービス４０３の起動が終了すると、次に、実ＨＴＴＰサーバ４０５が起動される。図１６において、実ＨＴＴＰサーバ４０５は、自身の起動シーケンスの中で、アプリケーション実行サーバ８０３に登録されている窓口ＨＴＴＰサーバ４０１のサーバ登録インターフェイス４０４を取得し、そのサーバ登録インターフェイス４０４を用いて、自身と動作するネットワークポートの情報を窓口ＨＴＴＰサーバ４０１に登録する（ステップＳ１８０１、図３のＳ４１１）。
【０１０７】
実ＨＴＴＰサーバ４０５が登録されると、窓口ＨＴＴＰサーバ４０１は、図１６のサービスリスト４０８から、コンテンツサービス４０３のＥｎｕｍａｔｉｏｎ（列挙リスト）を取得する（ステップＳ１８０２）。ここで、Ｅｎｕｍａｔｉｏｎ（列挙リスト）は次の項目を要求するとリストの先頭からひとつづつ項目を返す機能と、次の項目が存在するかを返す機能をもつリストである。
【０１０８】
次に、列挙リストに次の項目があるか否かを判定する（ステップＳ１８０３）。次の項目がない場合（ステップ１８０３でＮＯ）、実ＨＴＴＰサーバ４０５を、図１７の実サーバリスト４０７に登録する（ステップＳ１８０７）。更に、実ＨＴＴＰサーバ４０５の起動を行う（ステップＳ１８０８）。
【０１０９】
一方、列挙リストに次の項目がある場合（ステップＳ１８０３でＹＥＳ）、列挙リストの次の項目を取得する（ステップＳ１８０４）。次に、取得されたコンテンツサービスのネットワークポート番号が登録をおこなっている実ＨＴＴＰサーバサービス４０５のネットワークポート番号と等しいか否かを判定する（ステップＳ１８０５）。
【０１１０】
等しくない場合（ステップＳ１８０５でＮＯ）、ステップＳ１８０３に戻る。一方、等しい場合（ステップＳ１８０５でＹＥＳ）、実ＨＴＴＰサーバ４０５にコンテンツサービス４０３を登録する（ステップＳ１８０６）。その後、ステップＳ１８０３に戻る。
【０１１１】
尚、実ＨＴＴＰサーバサービス４０５は、ステップＳ１８０６の時点で、窓口ＨＴＴＰサーバサービスから登録されたコンテンツサービス４０３を図１３のサービスリスト４１５に記憶する（図３のＳ４１６）。実ＨＴＴＰサーバサービス４０５に対するコンテンツサービス４０３の登録が終了すると、実ＨＴＴＰサーバ４０５は、サーバポートをオープンし、クライアントからのアクセスの受付けを開始する。
【０１１２】
ここで、登録される実ＨＴＴＰサーバ４０５は、一つであってもよいし、ＨＴＴＰのリクエストを受け取るネットワークポート毎に複数あってもよい。
【０１１３】
実ＨＴＴＰサーバサービス４０５の起動シーケンスは、実ＨＴＴＰサーバ４０５で実装され、窓口ＨＴＴＰサーバ４０１への実ＨＴＴＰサーバ４０５の登録も窓口ＨＴＴＰサーバ４０１と実ＨＴＴＰサーバ４０５間で閉じた処理である。そのため、アプリケーション実行サーバ８０３は、実ＨＴＴＰサーバ４０５の起動を行うだけでよい。
【０１１４】
実ＨＴＴＰサーバ４０５が起動されたあとに、コンテンツサービス４０３が起動されると、コンテンツサービス４０３は自身の起動シーケンスの中で、窓口ＨＴＴＰサーバ４０１に対しコンテンツサービス登録インターフェイス４０２を用いて自身を登録する。
【０１１５】
つまり、図１５において、窓口ＨＴＴＰサーバ４０１に、コンテンツサービス４０３が登録される（ステップＳ１９０１）。次に、窓口ＨＴＴＰサーバ４０１は、窓口ＨＴＴＰサーバ４０１の図１４の実サーバリスト４０９を参照して、その実サーバリスト４０７のポート番号の欄（１６０２）で、コンテンツサービスが指定するネットワークポートの番号と等しい実ＨＴＴＰサーバを検索する（ステップＳ１９０２）。この時点では、コンテンツサービス４０３が指定するネットワークポートで動作する実ＨＴＴＰサーバ４０５がすでに登録されているので（ステップＳ１９０２でＹＥＳ）、図１７の実サーバリスト４０７からコンテンツサービス４０３が指定するネットワークポートで動作する実ＨＴＴＰサーバ４０５を取得して、コンテンツサービス４０３を実ＨＴＴＰサーバサービス４０５のコンテンツサービス登録インターフェイス４０６を用いて実ＨＴＴＰサーバ４０５に登録する（ステップＳ１９０３）。続いて、そのコンテンツサービス４０３を図１６のサービスリスト４０８に登録する（ステップＳ１９０４）。
【０１１６】
以上のような窓口ＨＴＴＰサーバ４０１と実ＨＴＴＰサーバ４０５を構成すると、図１０のように、まず、窓口ＨＴＴＰサーバ４０１が起動される（Ｓ５０１）。このとき、実際に、ＨＴＴＰのリクエストを受ける実ＨＴＴＰサーバ４０５はまだ存在していないので、クライアントからのリクエストが受付されることはなく、クライアントにはサーバが存在しないという情報が返される（Ｓ５０２）。
【０１１７】
次に、認証Ｓｅｒｖｌｅｔや一般のコンテンツサービスを含むコンテンツサービス４０３が起動し、窓口ＨＴＴＰサーバ４０１に登録される（Ｓ５０３）。このときも、実際にＨＴＴＰのリクエストを受ける実ＨＴＴＰサーバ４０５はまだ存在していないので、クライアントからのリクエストが受付されることはない（Ｓ５０４）。
【０１１８】
次に、実ＨＴＴＰサーバ４０５を生成して、窓口ＨＴＴＰサーバ４０１への登録（Ｓ５０５）、窓口ＨＴＴＰサーバ４０１から実ＨＴＴＰサーバ４０５へのコンテンツサービス４０３の登録（Ｓ５０６）、実ＨＴＴＰサーバ４０５の起動（Ｓ５０７）が、実ＨＴＴＰサーバ４０５の起動シーケンスの中で、アトミックにおこなわれてＨＴＴＰサーバ４０５の起動（ＨＴＴＰサーバ機能の起動）が完了する。ＨＴＴＰサーバ４０５の起動が完了したときには、コンテンツサービス４０３である認証Ｓｅｒｖｌｅｔが、ＨＴＴＰサーバ４０５に既に登録されているので、認証機構が有効の状態でクライアントからのアクセスを受付けることが可能になる（Ｓ５０８）。
【０１１９】
以上説明したように、実施形態２によれば、コンテンツサービスを呼び出すことの可能な実ＨＴＴＰサーバ４０５の動作するネットワークポート番号を指定する環境においても、実施形態１で説明した効果を実現することができる。
【０１２０】
＜実施形態３＞
実施形態１や２の窓口ＨＴＴＰサーバ４０１と実ＨＴＴＰサーバ４０５は、例えば、プログラムとして実現され、このプログラムが保存された記録媒体としては、ＣＤ−ＲＯＭやフロッピー（登録商標）ディスクドライブ、ハードディスク、メモリカード等が使用される。
【０１２１】
以上、実施形態例を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１２２】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【０１２３】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１２４】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であっても良い。
【０１２５】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などがある。
【０１２６】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１２７】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１２８】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。
【０１２９】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１３０】
【図１】本発明の実施形態１の情報処理装置の基本構成を示す図である。
【図２】本発明の実施形態１のアプリケーション実行サーバの動作例を示す図である。
【図３】本発明の実施形態１のシステム構成を示す図である。
【図４】本発明の実施形態１のコンテンツサービス登録インターフェイスのインターフェイス記述例を示す図である。
【図５】本発明の実施形態１のサーバ登録インターフェイスのインターフェイス記述例を示す図である。
【図６】本発明の実施形態１のサーバ登録インターフェイスのインターフェイス記述例を示す図である。
【図７】本発明の実施形態１のサーバ登録インターフェイスのインターフェイス記述例を示す図である。
【図８】本発明の実施形態１の実ＨＴＴＰサーバの登録手順を示すフローチャートである。
【図９】本発明の実施形態１の実ＨＴＴＰサーバの登録手順を示すフローチャートである。
【図１０】本発明の実施形態１のシステムの動作フローを示す図である。
【図１１】本発明の実施形態２のコンテンツサービス登録インターフェイスのインターフェイス記述例を示す図である。
【図１２】本発明の実施形態２のコンテンツサービス登録インターフェイスのインターフェイス記述例を示す図である。
【図１３】本発明の実施形態２のサービスリストの一例を示す図である。
【図１４】本発明の実施形態２の実サーバリストの一例を示す図である。
【図１５】本発明の実施形態２のコンテンツサービスの登録手順を示すフローチャートである。
【図１６】本発明の実施形態２の実ＨＴＴＰサーバの登録手順を示すフローチャートである。
【図１７】アプリケーション実行サーバの構成例を示す図である。
【図１８】従来の構成における課題を説明するための図である。
【図１９】従来の構成における課題を説明するための図である。
【符号の説明】
【０１３１】
４０１  窓口ＨＴＴＰサーバ
４０２  コンテンツサービス登録インターフェイス
４０３  コンテンツサービス
４０４  サーバ登録インターフェイス
４０５  実ＨＴＴＰサーバ
４０６  コンテンツサービス登録インターフェイス
４０７  実サーバリスト
４０８  サービスリスト
４１４  ＨＴＴＰ処理部
４１５  サービスリスト
【図１】
2006146512.tif 000003
【図２】
2006146512.tif 000004
【図３】
2006146512.tif 000005
【図４】
2006146512.tif 000006
【図５】
2006146512.tif 000007
【図６】
2006146512.tif 000008
【図７】
2006146512.tif 000009
【図８】
2006146512.tif 000010
【図９】
2006146512.tif 000011
【図１０】
2006146512.tif 000012
【図１１】
2006146512.tif 000013
【図１２】
2006146512.tif 000014
【図１３】
2006146512.tif 000015
【図１４】
2006146512.tif 000016
【図１５】
2006146512.tif 000017
【図１６】
2006146512.tif 000018
【図１７】
2006146512.tif 000019
【図１８】
2006146512.tif 000020
【図１９】
2006146512.tif 000021