(57)【要約】【課題】サービスを利用して登録したコンテンツに対してネットワークインタフェース毎にアクセス制御を可能にする。【解決手段】サービス実装提供機能１１がＨｔｔｐ  Ｓｅｒｖｉｃｅに対応するＨＴＴＰサーバを起動する際に、ネットワークインタフェースをバインドしてＨＴＴＰサーバを起動することにより、ＨＴＴＰサーバはバインドしたネットワークインタフェース経由のアクセスに対してのみコンテンツを公開することになるので、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録するバンドルは、ネットワークインタフェース毎のアクセス制御が可能となる。【選択図】図１
2011039819.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツを公開するサーバがアクセスを受け付けるネットワークインタフェースを選択するネットワークインタフェース選択手段と、
選択された前記ネットワークインタフェースに割り当てられたＩＰアドレス宛のアクセスを受け付けるように前記サーバを起動するサーバ起動手段と、
前記サーバにより公開されるコンテンツの登録を受け付けるサービスを生成するサービス生成手段と、
前記サービスの設定及び前記ネットワークインタフェースの情報を記載したサービスプロパティを生成するプロパティ生成手段と、
前記サービスに前記サービスプロパティを付与してサービスレジストリに登録するサービス登録手段と、
を有することを特徴とするサービス登録装置。
【請求項２】
前記サービス登録手段は、前記サーバの起動の完了を待たずに前記サービスをサービスレジストリに登録することを特徴とする請求項１記載のサービス登録装置。
【請求項３】
前記サーバ起動手段は、前記サービスがコンテンツの登録を受け付けたときに前記サーバを起動することを特徴とする請求項１記載のサービス登録装置。
【請求項４】
前記サービスと当該サービスに対応する前記サーバがアクセスを受け付けるネットワークインタフェースの情報との対応を記憶する情報管理手段を有し、
前記サーバ起動手段は、前記情報管理手段から前記ネットワークインタフェースの情報を読み出して当該ネットワークインタフェース経由のアクセスのみを受け付けるように前記サーバを起動することを特徴とする請求項３記載のサービス登録装置。
【請求項５】
前記サーバがアクセスを受け付けるネットワークインタフェースに割り当てられたＩＰアドレスの変更を検出し、前記ネットワークインタフェースに割り当てられたＩＰアドレスに変更があった場合には、新しいＩＰアドレス宛のアクセスを受け付けるように前記サーバを再起動することを特徴とする請求項１乃至４のいずれかに記載のサービス登録装置。
【請求項６】
サービス登録装置に登録されたサービスを取得してコンテンツを登録するコンテンツ登録装置であって、
前記コンテンツを公開するネットワークインタフェースを選択するネットワークインタフェース選択手段と、
選択した前記ネットワークインタフェースの情報に基づいて前記サービス登録装置から所望のサービスを検索するための条件検索式を作成する条件検索式作成手段と、
前記条件検索式を用いて前記サービス登録装置から前記サービスを取得するサービス取得手段と、
取得した前記サービスを用いて前記コンテンツを登録するコンテンツ登録手段と、
を有することを特徴とするコンテンツ登録装置。
【請求項７】
コンテンツを公開するサーバがアクセスを受け付けるネットワークインタフェースを選択するステップと、
選択された前記ネットワークインタフェースに割り当てられたＩＰアドレス宛のアクセスを受け付けるように前記サーバを起動するステップと、
当該サーバにより公開されるコンテンツの登録を受け付けるサービスを生成するステップと、
前記サービスの設定及び前記ネットワークインタフェースの情報を記載したサービスプロパティを生成するステップと、
前記サービスに前記サービスプロパティを付与してサービスレジストリに登録するステップと、
を有することを特徴とするサービス登録方法。
【請求項８】
前記サーバの起動の完了を待たずに前記サービスをサービスレジストリに登録することを特徴とする請求項７記載のサービス登録方法。
【請求項９】
前記サービスがコンテンツの登録を受け付けたときに前記サーバを起動することを特徴とする請求項７記載のサービス登録方法。
【請求項１０】
前記サービスと当該サービスに対応する前記サーバがアクセスを受け付けるネットワークインタフェースの情報との対応を記憶する情報管理手段から前記ネットワークインタフェースの情報を読み出して当該ネットワークインタフェース経由のアクセスのみを受け付けるように前記サーバを起動することを特徴とする請求項９記載のサービス登録方法。
【請求項１１】
前記サーバがアクセスを受け付けるネットワークインタフェースに割り当てられたＩＰアドレスの変更を検出するステップと、
前記ネットワークインタフェースに割り当てられたＩＰアドレスに変更があった場合には、新しいＩＰアドレス宛のアクセスを受け付けるように前記サーバを再起動するステップと、
を有することを特徴とする請求項７乃至１０のいずれかに記載のサービス登録方法。
【請求項１２】
サービス登録装置に登録されたサービスを取得してコンテンツを登録するコンテンツ登録方法であって、
前記コンテンツを公開するネットワークインタフェースを選択するステップと、
選択した前記ネットワークインタフェースの情報に基づいて前記サービス登録装置から所望のサービスを検索するための条件検索式を作成するステップと、
前記条件検索式を用いて前記サービス登録装置から前記サービスを取得するステップと、
取得した前記サービスを用いて前記コンテンツを登録するステップと、
を有することを特徴とするコンテンツ登録方法。
【請求項１３】
請求項１乃至６のいずれかに記載のサービス登録装置又はコンテンツ登録装置を構成する各手段としてコンピュータを機能させるためのプログラム。
【請求項１４】
請求項１３に記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、公開するコンテンツを登録するためのＨｔｔｐ  ＳｅｒｖｉｃｅをＯＳＧｉフレームワークのサービスレジストリに登録する技術に関する。
【背景技術】
【０００２】
ＯＳＧｉ（Ｏｐｅｎ  Ｓｅｒｖｉｃｅ  Ｇａｔｅｗａｙ  ｉｎｉｔｉａｔｉｖｅ）フレームワークは、ソフトウェアコンポーネントの動的追加、削除、あるいは実行を管理する枠組みである。ＯＳＧｉフレームワーク上で動作するソフトウェアコンポーネントの単位をバンドルと呼ぶ。バンドルはＪａｖａ（登録商標）で書かれたプログラムであり、ＪＡＲ（Ｊａｖａ  Ａｒｃｈｉｖｅ）形式の圧縮ファイルである。バンドルは、例えばネットワークを介して配信される。バンドルは、ＯＳＧｉフレームワークを実装した機器により受信されて実行される。
【０００３】
ＯＳＧｉ仕様では、Ｒｅｌｅａｓｅ１からＨｔｔｐ  ＳｅｒｖｉｃｅというＯＳＧｉサービス仕様が定義されている。Ｈｔｔｐ  Ｓｅｒｖｉｃｅは、ＨＴＴＰサーバおよびその上で動作するＪａｖａ  Ｓｅｒｖｌｅｔコンテナを提供する。バンドルは、Ｈｔｔｐ  Ｓｅｒｖｉｃｅで定義されたメソッドを用い、ＨＴＴＰサーバに対してＨＴＭＬファイルや画像などのリソースやＪａｖａ  Ｓｅｒｖｌｅｔの登録を動的に行うことが可能である。バンドルがＨｔｔｐ  Ｓｅｒｖｉｃｅで定義されたメソッドを用いて登録したリソースやＪａｖａ  Ｓｅｒｖｌｅｔは、Ｈｔｔｐ  Ｓｅｒｖｉｃｅが提供するＨＴＴＰサーバによりＨＴＴＰプロトコルに従って公開される。
【０００４】
図１６に、従来のサービス登録装置の構成を示すブロック図を示す。同図に示すサービス登録装置１００は、サービス実装提供機能１１０、サービスプロパティ作成機能１２０、サービス登録機能１３０、およびサービスレジストリ１４０を備える。以下、Ｈｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトを登録する処理について説明する。
【０００５】
まず、サービス実装提供機能１１０が、Ｈｔｔｐ  Ｓｅｒｖｉｃｅインタフェースを実装したオブジェクトを作成するとともに、サービスプロパティ作成機能１２０が、ポート番号などの設定を記述したサービスプロパティを作成し、サービス実装提供機能１１０が、ＨＴＴＰサーバを起動する。これらの処理は平行して行われるが、ＨＴＴＰサーバの起動時期を遅らせてもよい。
【０００６】
続いて、サービス実装提供機能１１０は、作成したＨｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトへの参照をサービス登録機能１３０へ渡し、サービスプロパティ作成機能１２０は、作成したサービスプロパティをサービス登録機能１３０へ渡す。このとき渡すサービスプロパティはｎｕｌｌであってもよい。
【０００７】
サービス登録機能１３０は、受け取ったＨｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトへの参照にサービスプロパティを付与し、ＯＳＧｉフレームワークのＢｕｎｄｌｅＣｏｎｔｅｘｔインタフェースのメソッドを呼び出すことにより、サービスレジストリにサービスを登録する。
【０００８】
次に、バンドル２００がＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する処理について説明する。図１６に示すように、バンドル２００は、サービス取得機能２１０およびコンテンツ登録機能２２０を有する。ここでは、リソースやＪａｖａ  Ｓｅｒｖｌｅｔなどをまとめてコンテンツと呼ぶ。
【０００９】
まず、サービス取得機能２１０が、ＯＳＧｉの仕様に沿った方式、つまり、ＢｕｎｄｌｅＣｏｎｔｅｘｔインタフェースのメソッドを用いて、サービス名を指定することによりサービスレジストリ１４０に登録されたＨｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトを取得し、コンテンツ登録機能２２０に渡す。
【００１０】
コンテンツ登録機能２２０は、渡されたＨｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトのメソッドを呼ぶことでコンテンツの登録を行う。より具体的には、コンテンツとそのコンテンツのＨＴＴＰサーバ上でのアクセス先を示すａｌｉａｓを指定してＨｔｔｐ  Ｓｅｒｖｉｃｅインタフェースのメソッドを呼びコンテンツ登録の要求を出す。
【００１１】
サービス実装提供機能１１０は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅインタフェースを介してコンテンツ登録の要求を受け付けると、指定のａｌｉａｓにアクセスした場合に該当するコンテンツを返すようにＨＴＴＰサーバを設定する。これにより、ＨＴＴＰクライアント３００がＨＴＴＰサーバに対してＨＴＴＰプロトコルによるアクセスをすると、サービス実装提供機能１１０がそのアクセスを受け付けてコンテンツを返す状態となる。該当するコンテンツが存在しない場合は、ＨＴＴＰプロトコルに従ったエラーコードを返す。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】OSGi, "OSGi Service Platform: Release 3, March 2003", ２００３年３月
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら、サービス登録装置１００が複数のネットワークインタフェースを有するときに、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録した場合、複数のネットワークインタフェースからのアクセスに対して公開されてしまう。つまり、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用して登録したコンテンツを、特定のネットワークインタフェースからのアクセスに対してのみ公開させ、そのネットワークインタフェース以外からのアクセスに対しては公開させない、という公開制限を行うことができないという問題がある。より具体的に説明すると、例えば、ＬＡＮ側とＷＡＮ側のネットワークインタフェースを有するホームゲートウェイ装置がサービス登録装置１００を備えるものであって、ＬＡＮ側に対してのみ公開したいコンテンツを含むバンドル２００がサービス登録装置１００のＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録した場合、ＷＡＮ側からもバンドル２００が登録したコンテンツにアクセスできてしまうという問題がある。この問題の解決手段の一つとして、バンドル２００が登録するＳｅｒｖｌｅｔが、リクエストを送ってきたＨＴＴＰクライアント３００のＩＰアドレスやＦＱＤＮ（Fully Qualified Domain Name）を取得し、個別にアクセス制限を行うことは可能であるが、Ｓｅｒｖｌｅｔ実装のプログラムが複雑化するという問題がある。
また，ＨＴＭＬファイルや画像など静的なコンテンツであるリソースに関しては、コンテンツの公開先を制限することは不可能である。
【００１４】
本発明は、上記に鑑みてなされたものであり、サービスを利用して登録したコンテンツに対してネットワークインタフェース毎にアクセス制御を可能にすることを目的とする。
【課題を解決するための手段】
【００１５】
第１の本発明に係るサービス登録装置は、コンテンツを公開するサーバがアクセスを受け付けるネットワークインタフェースを選択するネットワークインタフェース選択手段と、選択された前記ネットワークインタフェースに割り当てられたＩＰアドレス宛のアクセスを受け付けるように前記サーバを起動するサーバ起動手段と、前記サーバにより公開されるコンテンツの登録を受け付けるサービスを生成するサービス生成手段と、前記サービスの設定及び前記ネットワークインタフェースの情報を記載したサービスプロパティを生成するプロパティ生成手段と、前記サービスに前記サービスプロパティを付与してサービスレジストリに登録するサービス登録手段と、を有することを特徴とする。
【００１６】
上記サービス登録装置において、前記サービス登録手段は、前記サーバの起動の完了を待たずに前記サービスをサービスレジストリに登録することを特徴とする。
【００１７】
上記サービス登録装置において、前記サーバ起動手段は、前記サービスがコンテンツの登録を受け付けたときに前記サーバを起動することを特徴とする。
【００１８】
上記サービス登録装置において、前記サービスと当該サービスに対応する前記サーバがアクセスを受け付けるネットワークインタフェースの情報との対応を記憶する情報管理手段を有し、前記サーバ起動手段は、前記情報管理手段から前記ネットワークインタフェースの情報を読み出して当該ネットワークインタフェース経由のアクセスのみを受け付けるように前記サーバを起動することを特徴とする。
【００１９】
上記サービス登録装置において、前記サーバがアクセスを受け付けるネットワークインタフェースに割り当てられたＩＰアドレスの変更を検出し、前記ネットワークインタフェースに割り当てられたＩＰアドレスに変更があった場合には、新しいＩＰアドレス宛のアクセスを受け付けるように前記サーバを再起動することを特徴とする。
【００２０】
第２の本発明に係るコンテンツ登録装置は、サービス登録装置に登録されたサービスを取得してコンテンツを登録するコンテンツ登録装置であって、前記コンテンツを公開するネットワークインタフェースを選択するネットワークインタフェース選択手段と、選択した前記ネットワークインタフェースの情報に基づいて前記サービス登録装置から所望のサービスを検索するための条件検索式を作成する条件検索式作成手段と、前記条件検索式を用いて前記サービス登録装置から前記サービスを取得するサービス取得手段と、取得した前記サービスを用いて前記コンテンツを登録するコンテンツ登録手段と、を有することを特徴とする。
【００２１】
第３の本発明に係るサービス登録方法は、コンテンツを公開するサーバがアクセスを受け付けるネットワークインタフェースを選択するステップと、選択された前記ネットワークインタフェースに割り当てられたＩＰアドレス宛のアクセスを受け付けるように前記サーバを起動するステップと、当該サーバにより公開されるコンテンツの登録を受け付けるサービスを生成するステップと、前記サービスの設定及び前記ネットワークインタフェースの情報を記載したサービスプロパティを生成するステップと、前記サービスに前記サービスプロパティを付与してサービスレジストリに登録するステップと、を有することを特徴とする。
【００２２】
上記サービス登録方法において、前記サーバの起動の完了を待たずに前記サービスをサービスレジストリに登録することを特徴とする。
【００２３】
上記サービス登録方法において、前記サービスがコンテンツの登録を受け付けたときに前記サーバを起動することを特徴とする。
【００２４】
上記サービス登録方法において、前記サービスと当該サービスに対応する前記サーバがアクセスを受け付けるネットワークインタフェースの情報との対応を記憶する情報管理手段から前記ネットワークインタフェースの情報を読み出して当該ネットワークインタフェース経由のアクセスのみを受け付けるように前記サーバを起動することを特徴とする。
【００２５】
上記サービス登録方法において、前記サーバがアクセスを受け付けるネットワークインタフェースに割り当てられたＩＰアドレスの変更を検出するステップと、前記ネットワークインタフェースに割り当てられたＩＰアドレスに変更があった場合には、新しいＩＰアドレス宛のアクセスを受け付けるように前記サーバを再起動するステップと、を有することを特徴とする。
【００２６】
第４の本発明に係るコンテンツ登録方法は、サービス登録装置に登録されたサービスを取得してコンテンツを登録するコンテンツ登録方法であって、前記コンテンツを公開するネットワークインタフェースを選択するステップと、選択した前記ネットワークインタフェースの情報に基づいて前記サービス登録装置から所望のサービスを検索するための条件検索式を作成するステップと、前記条件検索式を用いて前記サービス登録装置から前記サービスを取得するステップと、取得した前記サービスを用いて前記コンテンツを登録するステップと、を有することを特徴とする。
【００２７】
第５の本発明に係るプログラムは、上記サービス登録装置又は上記コンテンツ登録装置を構成する各手段としてコンピュータを機能させることを特徴とする。
【００２８】
第６の発明に係る記録媒体は、上記プログラムを記録したことを特徴とする。
【発明の効果】
【００２９】
本発明によれば、サービスを利用して登録したコンテンツに対してネットワークインタフェース毎にアクセス制御が可能になる。
【図面の簡単な説明】
【００３０】
【図１】第１の実施の形態におけるサービス登録装置の構成を示すブロック図である。
【図２】第１の実施の形態においてサービスを登録する処理の流れを示すフローチャートである。
【図３】第１の実施の形態においてバンドルがサービスを利用してコンテンツを登録する処理の流れを示すフローチャートである。
【図４】第２の実施の形態においてサービスを登録する処理の流れを示すフローチャートである。
【図５】第３の実施の形態においてサービスを登録する処理の流れを示すフローチャートである。
【図６】第３の実施の形態においてバンドルがサービスを利用してコンテンツを登録する処理の流れを示すフローチャートである。
【図７】第４の実施の形態におけるサービス登録装置の構成を示すブロック図である。
【図８】第４の実施の形態においてサービスを登録する処理の流れを示すフローチャートである。
【図９】情報管理機能が保持する管理テーブルの例を示す図である。
【図１０】第５の実施の形態においてＨＴＴＰサーバの起動処理の流れを示すフローチャートである。
【図１１】第５の実施の形態においてＩＰアドレスの変更を検知した後の処理の流れを示すフローチャートである。
【図１２】第５の実施の形態においてバンドルがサービスを利用してコンテンツを登録する処理の流れを示すフローチャートである。
【図１３】第６の実施の形態においてバンドルがサービスを利用してコンテンツを登録する処理の流れを示すフローチャートである。
【図１４】バンドルの構成を示すブロック図である。
【図１５】バンドルがサービスを取得してコンテンツの登録要求を出す処理の流れを示すフローチャートである。
【図１６】従来のサービス登録装置の構成を示すブロック図である。
【発明を実施するための形態】
【００３１】
以下、本発明の実施の形態について図面を用いて説明する。
【００３２】
［第１の実施の形態］
図１は、第１の実施の形態におけるサービス登録装置の構成を示すブロック図である。同図に示すサービス登録装置１は、サービス実装提供機能１１、サービスプロパティ作成機能１２、サービス登録機能１３、サービスレジストリ１４、およびネットワークインタフェース情報取得機能１５を備える。なお、サービス登録装置１は、演算処理装置、記憶装置、メモリ等を備えたコンピュータにより構成して、各機能の処理がプログラムによって実行されるものとしてもよい。このプログラムはサービス登録装置１が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。以下、各機能について説明する。
【００３３】
サービス実装提供機能１１は、ＨＴＴＰサーバの起動およびＨｔｔｐ  Ｓｅｒｖｉｃｅインタフェースを実装したオブジェクトの生成を行う。Ｈｔｔｐ  Ｓｅｒｖｉｃｅは、ＯＳＧｉで仕様が定義されており、ＨＴＴＰサーバにより公開されるコンテンツを動的に登録するサービスである。バンドルが、サービス実装提供機能１１が生成したＨｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトのメソッドを呼ぶことでコンテンツの登録が行われる。以下、Ｈｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトを単に「Ｈｔｔｐ  Ｓｅｒｖｉｃｅ」と称することもある。
【００３４】
サービス実装提供機能１１は、所定のネットワークインタフェースのＩＰアドレスをバインドしてＨＴＴＰサーバを起動する。バインドするネットワークインタフェースの情報は、ネットワークインタフェース情報取得機能１５から得る。
【００３５】
ＨＴＴＰサーバの起動に際して、ＴＣＰのサーバソケットの設立方法として、どのネットワークインタフェースのＩＰアドレスにもバインドしない方法と、特定のネットワークインタフェースのＩＰアドレスにバインドする方法がある。ＨＴＴＰサーバをネットワークインタフェースのＩＰアドレスにバインドしない場合、つまり、図１６に示す従来のサービス登録装置１００の場合、ＨＴＴＰサーバは任意のネットワークインタフェース経由のＴＣＰコネクション接続要求を受け付けることが可能である。例えば、サービス登録装置１００がＬＡＮ側とＷＡＮ側の２つのネットワークインタフェースを備えていたとすると、ＨＴＴＰサーバへの接続はいずれのネットワークインタフェースのＩＰアドレス宛のアクセスも受け付け、ＬＡＮ側、ＷＡＮ側双方に対してコンテンツを公開することになる。
【００３６】
一方、ＨＴＴＰサーバを特定のネットワークインタフェースのＩＰアドレスにバインドする場合、つまり、本実施の形態におけるサービス登録装置１の場合、ＨＴＴＰサーバはバインドされたネットワークインタフェース経由のＴＣＰコネクション接続要求のみを受け付けることが可能となり、ＨＴＴＰサーバがバインドしたネットワークインタフェース経由のアクセスに対してのみコンテンツを公開することになる。図１に示す実施例では、一方のＨＴＴＰサーバがネットワークインタフェースｅｔｈ０にバインドされ、他方のＨＴＴＰサーバがネットワークインタフェースｐｐｐ０にバインドされている。なお、ここでのネットワークインタフェースとは、物理的なネットワークインタフェースではなく、論理的なネットワークインタフェースを意味する。例えば、127.0.0.1 で表されるループバックインタフェースも該当する。
【００３７】
サービスプロパティ作成機能１２は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅの設定を記載したサービスプロパティを作成する。サービスプロパティには、バインドするネットワークインタフェースの識別子を特定キー名に対するサービスプロパティ値として付与する。バインドするネットワークインタフェースの情報は、ネットワークインタフェース情報取得機能１５から得る。なお、サービスプロパティのキー名としては、例えば”ＢｏｕｎｄＮｗＩｆＩｄ”が、サービスプロパティの値としては、ｅｔｈ０やｐｐｐ０などのネットワークインタフェースの名前の文字列である場合や、０，１，２，３などの数字である場合が考えられる。
【００３８】
サービス登録機能１３は、サービス実装提供機能１１からＨｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトへの参照を受け取り、サービスプロパティ作成機能１２からサービスプロパティを受け取る。そして、Ｈｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトへの参照にサービスプロパティを付与してサービスレジストリ１４に登録する。サービスレジストリ１４へのサービス登録は、ＯＳＧｉフレームワークのＢｕｎｄｌｅＣｏｎｔｅｘｔインタフェースのメソッドを呼び出すことにより行う。
【００３９】
サービスレジストリ１４には、サービスプロパティが付与されたＨｔｔｐ  Ｓｅｒｖｉｃｅが登録される。バンドル２は、サービスレジストリ１４からＨｔｔｐ  Ｓｅｒｖｉｃｅを取得し、そのＨｔｔｐ  Ｓｅｒｖｉｃｅのメソッドを呼び出すことでコンテンツを登録する。バンドル２がサービスレジストリ１４からＨｔｔｐ  Ｓｅｒｖｉｃｅを取得する際には、バンドル２が登録するコンテンツを公開したいネットワークインタフェースの識別子が特定キー名のサービスプロパティ値として付与されているＨｔｔｐ  Ｓｅｒｖｉｃｅを取得する。バンドル２によるＨｔｔｐ  Ｓｅｒｖｉｃｅの取得については後述する。
【００４０】
ネットワークインタフェース情報取得機能１５は、ＨＴＴＰサーバにバインドするネットワークインタフェースの情報を取得する。ネットワークインタフェース情報の取得方法としては、特定のシステムプロパティや設定ファイルなどから読み込む方法が考えられるが、これに限定するものではない。ネットワークインタフェース情報取得機能１５が取得した情報の中には、サービスプロパティ値として付与するネットワークインタフェースの識別子が含まれる。
【００４１】
次に、サービス登録装置１によるサービス登録処理について説明する。サービスレジストリ１４へのＨｔｔｐ  Ｓｅｒｖｉｃｅの登録はバンドルにより開始される。バンドルは、例えばネットワークを介してサービス登録装置１により受信され、受信されたバンドルによりサービスの登録処理が開始される。サービスレジストリ１４に登録されたサービスは、別のバンドルも利用可能である。
【００４２】
図２は、第１の実施の形態におけるサービス登録装置がＨｔｔｐ  Ｓｅｒｖｉｃｅを登録する処理の流れを示すフローチャートである。
【００４３】
Ｈｔｔｐ  Ｓｅｒｖｉｃｅの登録処理を開始すると、サービス実装提供機能１１は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅインタフェースを実装したオブジェクトを作成する（ステップＳ１１）。
【００４４】
ネットワークインタフェース情報取得機能１５は、バインド対象のネットワークインタフェースの情報を取得してサービス実装提供機能１１とサービスプロパティ作成機能１２に送信する（ステップＳ１２）。
【００４５】
サービスプロパティ作成機能１２は、ネットワークインタフェース情報取得機能１５から受信した情報、具体的には、ネットワークインタフェースの識別子を特定キー名に対するサービスプロパティ値として付与したサービスプロパティを作成する（ステップＳ１３）。
【００４６】
サービス実装提供機能１１は、作成するＨｔｔｐ  Ｓｅｒｖｉｃｅに対応するＨＴＴＰサーバを起動する（ステップＳ１４）。ＨＴＴＰサーバを起動する際には、ネットワークインタフェース情報取得機能１５から受信した情報に基づいて、所定のネットワークインタフェースに割り当てられたＩＰアドレスに対してＨＴＴＰサーバのサーバソケットをバインドする。
【００４７】
オブジェクトの作成、サービスプロパティの作成、およびＨＴＴＰサーバの起動が完了すると、サービス登録機能１３は、サービスレジストリ１４にＨｔｔｐ  Ｓｅｒｖｉｃｅを登録する（ステップＳ１５）。サービス登録機能１３は、サービス実装提供機能１１からＨｔｔｐ  Ｓｅｒｖｉｃｅへの参照を受け取り、サービスプロパティ作成機能１２から受け取ったサービスプロパティを付与して、サービスレジストリ１４に登録する。サービスレジストリ１４へのサービス登録は、ＯＳＧｉフレームワークのＢｕｎｄｌｅＣｏｎｔｅｘｔインタフェースのメソッドを呼び出すことにより行う。
【００４８】
このように、Ｈｔｔｐ  Ｓｅｒｖｉｃｅはサービスレジストリ１４へ登録される。サービスレジストリ１４に登録されたＨｔｔｐ  Ｓｅｒｖｉｃｅは自他のバンドルが取得して利用することが可能になる。
【００４９】
次に、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する処理について説明する。バンドル２は、登録するコンテンツを公開したいネットワークインタフェースをバインドしたＨＴＴＰサーバに対応するＨｔｔｐ  Ｓｅｒｖｉｃｅをサービスレジストリ１４から取得し、そのＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する。より具体的には、所望のネットワークインタフェースの識別子が特定キー名のサービスプロパティ値として付与されているＨｔｔｐ  Ｓｅｒｖｉｃｅをサービスレジストリ１４から取得し、コンテンツとそのコンテンツのＨＴＴＰサーバ上でのアクセス先を示すａｌｉａｓを指定して取得したＨｔｔｐ  Ｓｅｒｖｉｃｅのメソッドを呼びコンテンツ登録の要求を出す。コンテンツは、ＨＴＭＬファイルや画像などのリソースやＳｅｒｖｌｅｔを含むものである。
【００５０】
図３は、バンドル２がＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する際に、サービス実装提供機能１１が行う処理の流れを示すフローチャートである。バンドル２により、コンテンツの登録が依頼されると、サービス実装提供機能１１は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを通じてコンテンツ登録の要求を受け付け、メソッドが呼び出されたＨｔｔｐ  Ｓｅｒｖｉｃｅに対応するＨＴＴＰサーバについて、ＨＴＴＰクライアント３００がＨＴＴＰプロトコルにより指定したａｌｉａｓにアクセスした場合に、指定のコンテンツを返すようにＨＴＴＰサーバを設定する（ステップＳ２１）。
【００５１】
このように、バンドル２は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅのメソッドを呼び出してコンテンツを登録する。登録したコンテンツを公開するＨＴＴＰサーバは、特定のネットワークインタフェースにバインドされているため、そのネットワークインタフェースを経由したアクセスに対してのみ登録されたコンテンツが公開される。
【００５２】
［第２の実施の形態］
次に、第２の実施の形態について説明する。第２の実施の形態におけるサービス登録装置の構成は、第１の実施の形態におけるサービス登録装置の構成とほぼ同様であるので詳細な説明は省略する。第２の実施の形態は、ＨＴＴＰサーバの起動完了を待たずにサービスレジストリ１４にＨｔｔｐ  Ｓｅｒｖｉｃｅを登録する点で第１の実施の形態と異なる。以下、第２の実施の形態におけるサービス登録処理について図を用いて説明する。
【００５３】
図４は、第２の実施の形態におけるサービス登録装置がＨｔｔｐ  Ｓｅｒｖｉｃｅを登録する処理の流れを示すフローチャートである。
【００５４】
Ｈｔｔｐ  Ｓｅｒｖｉｃｅの登録処理を開始すると、サービス実装提供機能１１は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅインタフェースを実装したオブジェクトを作成する（ステップＳ３１）。
【００５５】
ネットワークインタフェース情報取得機能１５は、バインド対象のネットワークインタフェースの情報を取得してサービス実装提供機能１１とサービスプロパティ作成機能１２に送信する（ステップＳ３２）。
【００５６】
サービスプロパティ作成機能１２は、ネットワークインタフェース情報取得機能１５から受信した情報、具体的には、ネットワークインタフェースの識別子を特定キー名に対するサービスプロパティ値として付与したサービスプロパティを作成する（ステップＳ３３）。
【００５７】
サービス実装提供機能１１は、作成するＨｔｔｐ  Ｓｅｒｖｉｃｅに対応するＨＴＴＰサーバを起動する（ステップＳ３４）。ＨＴＴＰサーバを起動する際には、ネットワークインタフェース情報取得機能１５から受信した情報に基づいて、所定のネットワークインタフェースのＩＰアドレスにＨＴＴＰサーバをバインドする。
【００５８】
ここで、サービス登録機能１３は、ＨＴＴＰサーバの起動の完了を待たずに、サービスレジストリ１４にＨｔｔｐ  Ｓｅｒｖｉｃｅを登録する（ステップＳ３５）。Ｈｔｔｐ  Ｓｅｒｖｉｃｅがサービスレジストリ１４に登録されると、バンドル２は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録することができるが、そのときにＨＴＴＰサーバの起動が完了していない場合には、ＨＴＴＰサーバに対するＨＴＴＰプロトコルによるアクセスはできない。なお、Ｈｔｔｐ  Ｓｅｒｖｉｃｅの登録後にＨＴＴＰサーバの起動を開始してもよい。
【００５９】
Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する処理は、第１の実施の形態と同様であるので説明は省略する。
【００６０】
［第３の実施の形態］
次に、第３の実施の形態について説明する。第３の実施の形態におけるサービス登録装置の構成は、第１の実施の形態におけるサービス登録装置の構成とほぼ同様であるので詳細な説明は省略する。第３の実施の形態では、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを登録するときにはＨＴＴＰサーバを起動せず、バンドルがＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録するときにＨＴＴＰサーバを起動する点で第１の実施の形態と異なる。以下、第３の実施の形態におけるサービス登録処理について図を用いて説明する。
【００６１】
図５は、第３の実施の形態におけるサービス登録装置がＨｔｔｐ  Ｓｅｒｖｉｃｅを登録する処理の流れを示すフローチャートである。
【００６２】
Ｈｔｔｐ  Ｓｅｒｖｉｃｅの登録処理を開始すると、ネットワークインタフェース情報取得機能１５は、バインド対象のネットワークインタフェースの情報を取得してサービス実装提供機能１１とサービスプロパティ作成機能１２に送信する（ステップＳ４１）。
【００６３】
サービス実装提供機能１１は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅインタフェースを実装したオブジェクトを作成する（ステップＳ４２）。このとき、サービス実装提供機能１１は、ＨＴＴＰサーバを起動せずに、作成するＨｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトの中にバインド対象のネットワークインタフェースの情報を保存しておく。
【００６４】
サービスプロパティ作成機能１２は、ネットワークインタフェース情報取得機能１５から受信した情報、具体的には、ネットワークインタフェースの識別子を特定キー名に対するサービスプロパティ値として付与したサービスプロパティを作成する（ステップＳ４３）。
【００６５】
オブジェクトの作成、サービスプロパティの作成が完了すると、サービス登録機能１３は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅにサービスプロパティを付与してサービスレジストリ１４に登録する（ステップＳ４４）。
【００６６】
このように、Ｈｔｔｐ  Ｓｅｒｖｉｃｅはサービスレジストリ１４に登録される。Ｈｔｔｐ  Ｓｅｒｖｉｃｅが登録された時点では、ＨＴＴＰサーバは起動されていない。第３の実施の形態では、バンドル２がＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録するときにＨＴＴＰサーバを起動する。以下、バンドル２がＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する際のサービス実装提供機能１１が行う処理について説明する。
【００６７】
図６は、バンドル２がＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する処理の流れを示すフローチャートである。
【００６８】
バンドル２がＨｔｔｐ  Ｓｅｒｖｉｃｅのメソッドを呼ぶことでコンテンツ登録の要求を出すと、サービス実装提供機能１１は、そのＨｔｔｐ  Ｓｅｒｖｉｃｅに既にコンテンツが登録されているか否かを判定する（ステップＳ５１）。コンテンツが登録されていない場合、つまり、登録済みのコンテンツ数が０の場合は、ＨＴＴＰサーバはまだ起動されていないので、ステップＳ５２のＨＴＴＰサーバ起動処理へ進む。コンテンツが既に登録されている場合、つまり、登録済みのコンテンツ数が０でない場合は、ＨＴＴＰサーバは起動されているので、ステップＳ５４のコンテンツ公開処理へ進む。
【００６９】
ＨＴＴＰサーバを起動する場合、サービス実装提供機能１１は、コンテンツ登録の要求があったＨｔｔｐ  Ｓｅｒｖｉｃｅが保持するネットワークインタフェースの情報を取得する（ステップＳ５２）。このネットワークインタフェースの情報は、Ｈｔｔｐ  Ｓｅｔｖｉｃｅ登録時にネットワークインタフェース情報取得機能１５から受け取ったバインド対象のネットワークインタフェースの情報である。
【００７０】
そして、サービス実装提供機能１１は、コンテンツ登録の要求があったＨｔｔｐ  Ｓｅｒｖｉｃｅに対応するＨＴＴＰサーバを起動する（ステップＳ５３）。ＨＴＴＰサーバを起動する際には、ステップＳ５２で取得したネットワークインタフェースの情報に基づいて、ＨＴＴＰサーバを所定のネットワークインタフェースのＩＰアドレスにバインドする。ＨＴＴＰサーバ起動後、コンテンツの公開処理へ進む。
【００７１】
ＨＴＴＰサーバが起動されると、Ｈｔｔｐ  Ｓｅｒｖｉｃｅは、バンドル２が指定したａｌｉａｓへのアクセスに対して指定のコンテンツが公開される状態にＨＴＴＰサーバを設定する（ステップＳ５４）。
【００７２】
このように、第３の実施の形態では、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用して実際にコンテンツが登録されるまでＨＴＴＰサーバを起動しない。つまり、必要に応じてＨＴＴＰサーバを起動するため、消費メモリなどコンピュータのリソース消費を削減することができる。なお、登録されたコンテンツが削除され、コンテンツの登録数が０となったときには、ＨＴＴＰサーバを停止することも可能である。
【００７３】
［第４の実施の形態］
次に、第４の実施の形態について説明する。第４の実施の形態は、第３の実施の形態と同様に、必要に応じてＨＴＴＰサーバを起動するものである。第４の実施の形態におけるサービス登録装置の構成は、図７に示すように、Ｈｔｔｐ  Ｓｅｒｖｉｃｅとそれに対応するバインド対象のネットワークインタフェースの情報とを対として記憶させる情報管理機能１６を有する点で、第１〜３の実施の形態におけるサービス登録装置と異なる。
【００７４】
図８は、第４の実施の形態におけるサービス登録装置がＨｔｔｐ  Ｓｅｒｖｉｃｅを登録する処理の流れを示すフローチャートである。
【００７５】
Ｈｔｔｐ  Ｓｅｒｖｉｃｅの登録処理を開始すると、ネットワークインタフェース情報取得機能１５は、バインド対象のネットワークインタフェースの情報を取得してサービス実装提供機能１１とサービスプロパティ作成機能１２に送信する（ステップＳ６１）。
【００７６】
サービス実装提供機能１１は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅインタフェースを実装したオブジェクトを作成する（ステップＳ６２）。そして、作成したＨｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトとそれに対応するバインド対象のネットワークインタフェースを対応付けて情報管理機能１６に登録する（ステップＳ６３）。図９に、情報管理機能１６が保持する管理テーブルの例を示す。同図に示す管理テーブルでは、左側にキーとしてＨｔｔｐ  Ｓｅｒｖｉｃｅ実装オブジェクトが置かれ、右側にその値として対応するネットワークインタフェース情報が置かれている。
【００７７】
サービスプロパティ作成機能１２は、ネットワークインタフェース情報取得機能１５から受信した情報、具体的には、ネットワークインタフェースの識別子を特定キー名に対するサービスプロパティ値として付与したサービスプロパティを作成する（ステップＳ６４）。
【００７８】
オブジェクトの作成、サービスプロパティの作成が完了すると、サービス登録機能１３は、サービスレジストリ１４にＨｔｔｐ  Ｓｅｒｖｉｃｅを登録する（ステップＳ６５）。
【００７９】
このように、Ｈｔｔｐ  Ｓｅｒｖｉｃｅはサービスレジストリ１４に登録される。ＨＴＴＰ  Ｓｅｒｖｉｃｅが登録された時点では、ＨＴＴＰサーバは起動されていない。第４の実施の形態では、第３の実施の形態と同様に、バンドル２がＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録するときにＨＴＴＰサーバを起動する。
【００８０】
Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する処理は、ネットワークインタフェースの情報の取得方法以外の処理については、第３の実施の形態と同様であるため詳細な説明は省略する。
【００８１】
第４の実施の形態では、ＨＴＴＰサーバを起動する際にネットワークインタフェースの情報を取得するため、サービス実装提供機能１１が、コンテンツ登録の要求があったＨｔｔｐ  Ｓｅｒｖｉｃｅをキーとして情報管理機能１６に問い合わせる。そして、情報管理機能１６からバインドするネットワークインタフェースの情報を取得する。
【００８２】
［第５の実施の形態］
次に、第５の実施の形態について説明する。第５の実施の形態は、第１の実施の形態と同様にＨｔｔｐ  Ｓｅｒｖｉｃｅの作成、サービスプロパティの作成を行うが、ＨＴＴＰサーバの起動の際に、バインド対象のネットワークインタフェースにＩＰアドレスが割り当てられているか否かを判定する処理を行う点で異なる。例えば、ネットワークインタフェースがＤＨＣＰサーバを利用してＩＰアドレスを取得する場合など、ＩＰアドレスが割り当てられていない場合が考えられる。ＩＰアドレスが割り当てられていない場合は、ネットワークインタフェースのＩＰアドレスをバインドしてＨＴＴＰサーバを起動することができないので、第５の実施の形態では、ＨＴＴＰサーバ起動時にバインドするネットワークインタフェースにＩＰアドレスが割り当てられているか否かを判定する。ここでは、Ｈｔｔｐ  Ｓｅｒｖｉｃｅの作成、サービスプロパティの作成などの処理は、第１の実施の形態と同様であるので説明を省略し、ＨＴＴＰサーバの起動処理について説明する。
【００８３】
図１０は、第５の実施の形態におけるＨＴＴＰサーバの起動処理を示すフローチャートである。
【００８４】
まず、サービス実装提供機能１１は、起動するＨＴＴＰサーバがバインドするネットワークインタフェースにＩＰアドレスが割り当てられているか否か判定する（ステップＳ７１）。ネットワークインタフェースにＩＰアドレスが割り当てられていない場合は、ステップＳ７３へ進みＩＰアドレスが割り当てられるのを待つ。
【００８５】
ネットワークインタフェースにＩＰアドレスが割り当てられている場合は、割り当てられたＩＰアドレスに対してサーバソケットをバインドしたＨＴＴＰサーバを起動する（ステップＳ７２）。
【００８６】
ネットワークインタフェースにＩＰアドレスが割り当てられていない場合、あるいは、ＨＴＴＰサーバ起動後に、バインド対象のネットワークインタフェースのＩＰアドレスの変更を検知する待ち受け処理に入る（ステップＳ７３）。
【００８７】
ネットワークインタフェースに割り当てられたＩＰアドレスが変更されると、古いＩＰアドレスにバインドしたＨＴＴＰサーバにアクセスできなくなるので、第５の実施の形態では、ＩＰアドレスの変更を検知する待ち受け処理を行う。ネットワークインタフェースのＩＰアドレスが変更される例としては、ネットワークインタフェースがＤＨＣＰサーバからＩＰアドレスを取得し、取得したＩＰアドレスの有効期限後に再びＩＰアドレスを取得したときにＩＰアドレスが変わることがある。以下、ＩＰアドレスの変更を検知する待ち受け処理について説明する。
【００８８】
ネットワークインタフェースでＩＰアドレスが変更されたか否かは、例えば、ＯＳ依存のネイティブプログラムを使ってＩＰアドレスの変更があったときにイベントとして検出する方法や、定期的にネットワークインタフェースのＩＰアドレスを調べる方法が考えられる。図１１は、ネットワークインタフェースのＩＰアドレスの変更を検知した後の処理の流れを示すフローチャートである。ここでのＩＰアドレスの変更は、ＩＰアドレスが割り当てられていないネットワークインタフェースにたにＩＰアドレスが割り当てられた場合、およびネットワークインタフェースに割り当てられたＩＰアドレスが無効になった場合も含む。
【００８９】
まず、変更前のＩＰアドレスにバインドしたＨＴＴＰサーバが起動されているか否か判定する（ステップＳ８１）。変更前のＩＰアドレスにバインドしたＨＴＴＰサーバが起動されている場合、そのＨＴＴＰサーバを停止する（ステップＳ８２）。
【００９０】
続いて、ネットワークインタフェースに新たなＩＰアドレスが割り当てられているか否か判定する（ステップＳ８３）。新たなＩＰアドレスが割り当てられている場合、その新たなＩＰアドレスにバインドしたＨＴＴＰサーバを起動する（ステップＳ８４）。ＨＴＴＰサーバの起動後には、ＨＴＴＰサーバに対応するＨｔｔｐ  Ｓｅｒｖｉｃｅに登録されているａｌｉａｓとコンテンツの情報を元に、指定のａｌｉａｓへのアクセスに対して指定のコンテンツが公開されるようにＨＴＴＰサーバを設定する。
【００９１】
そして、再びＩＰアドレスの変更を検知する待ち受け処理に入る（ステップＳ８５）。
【００９２】
このように、バインドされたネットワークインタフェースのＩＰアドレスの変更を検知し、ＨＴＴＰサーバを再起動することにより、ネットワークインタフェースのＩＰアドレスが変更された場合でも継続的にコンテンツを公開することが可能となる。
【００９３】
次に、バンドル２がＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する際に、サービス実装提供機能１１が行う処理について説明する。図１２は、第５の実施の形態におけるコンテンツ登録処理の流れを示すフローチャートである。
【００９４】
バンドル２がＨｔｔｐ  Ｓｅｒｖｉｃｅのメソッドを呼ぶことでコンテンツ登録の要求を出すと、サービス実装提供機能１１は、コンテンツ登録の要求に含まれるａｌｉａｓとコンテンツの情報を保持する（ステップＳ９１）。
【００９５】
続いて、コンテンツ登録の要求があったＨｔｔｐ  Ｓｅｒｖｉｃｅに対応するＨＴＴＰサーバが起動済みか否かを判定する（ステップＳ９２）。対応するＨＴＴＰサーバが起動済みであった場合、指定のａｌｉａｓへのアクセスに対して指定のコンテンツが公開されるようにＨＴＴＰサーバを設定する（ステップＳ９３）。
【００９６】
なお、ＨＴＴＰサーバが起動しておらず、その時点では公開されない状態のコンテンツは、前述のバインド対象のネットワークインタフェースのＩＰアドレスの変更を検知する待ち受け処理によって、コンテンツを登録したＨｔｔｐ  Ｓｅｒｖｉｃｅに対応するＨＴＴＰサーバが将来起動したときに、指定のａｌｉａｓへのアクセスに対して公開されるように設定される。
【００９７】
［第６の実施の形態］
次に、第６の実施の形態について説明する。第６の実施の形態は、第３，４の実施の形態と同様に、コンテンツ登録の要求を受けるまではＨＴＴＰサーバを起動しないものであり、第５の実施の形態と同様に、ネットワークインタフェースのＩＰアドレスの変更に対応したものである。Ｈｔｔｐ  Ｓｅｒｖｉｃｅの登録処理は、第３，４の実施の形態と同様であるので説明を省略する。以下、コンテンツの登録時にＨＴＴＰサーバを起動する処理について説明する。
【００９８】
図１３は、第６の実施の形態におけるサービス実装提供機能１１が行うコンテンツ登録処理の流れを示すフローチャートである。
【００９９】
バンドル２がＨｔｔｐ  Ｓｅｒｖｉｃｅのメソッドを呼ぶことでにコンテンツ登録の要求を出すと、サービス実装提供機能１１は、コンテンツ登録の要求に含まれるａｌｉａｓとコンテンツの情報を保持する（ステップＳ１０１）。
【０１００】
続いて、サービス実装提供機能１１は、コンテンツ登録の要求があったＨｔｔｐ  Ｓｅｒｖｉｃｅに既にコンテンツが登録されているか否かを判定する。（ステップＳ１０２）。コンテンツが登録されていない場合、つまり、登録済みのコンテンツ数が０の場合は、ＨＴＴＰサーバはまだ起動されていないので、ステップＳ１０５のＨＴＴＰサーバの起動処理へ進む。
【０１０１】
コンテンツが既に登録されている場合、つまり、登録済みのコンテンツ数が０でない場合は、ＨＴＴＰサーバの起動済みか否か判定する（ステップＳ１０３）。コンテンツが既に登録されている場合は、ＨＴＴＰサーバの起動処理は完了しているが、ネットワークインタフェースにＩＰアドレスが割り当てられていないなどの状況では、ＨＴＴＰサーバはまだ起動されていない。
【０１０２】
ＨＴＴＰサーバが起動済みの場合、Ｈｔｔｐ  Ｓｅｒｖｉｃｅは、バンドル２が指定したａｌｉａｓへのアクセスに対して指定のコンテンツが公開される状態にＨＴＴＰサーバを設定する（ステップＳ１０４）。
【０１０３】
一方、ＨＴＴＰサーバの起動処理を行う場合は、まず、サービス実装提供機能１１がＨｔｔｐ  Ｓｅｒｖｉｃｅが保持するバインド対象のネットワークインタフェースの情報を取得する（ステップＳ１０５）。なお、第４の実施の形態のように、情報管理機能１６を備え、情報管理機能１６からネットワークインタフェースの情報を取得するものでもよい。
【０１０４】
続いて、サービス実装提供機能１１は、起動するＨＴＴＰサーバがバインドするネットワークインタフェースにＩＰアドレスが割り当てられているか否か判定する（ステップＳ１０６）。ネットワークインタフェースにＩＰアドレスが割り当てられていない場合は、ステップＳ１０８へ進みＩＰアドレスが割り当てられるのを待つ。
【０１０５】
ネットワークインタフェースにＩＰアドレスが割り当てられている場合は、割り当てられたＩＰアドレスに対してサーバソケットをバインドしたＨＴＴＰサーバを起動する（ステップＳ１０７）。ＨＴＴＰサーバの起動が完了すると、ステップＳ１０４と同様に、バンドル２が指定したａｌｉａｓへのアクセスに対して指定のコンテンツが公開されるようにＨＴＴＰサーバを設定する。
【０１０６】
ネットワークインタフェースにＩＰアドレスが割り当てられていない場合、あるいは、ＨＴＴＰサーバ起動後、バインド対象のネットワークインタフェースのＩＰアドレスの変更を検知する待ち受け処理に入る（ステップＳ１０８）。
【０１０７】
［バンドルによるＨｔｔｐ  Ｓｅｒｖｉｃｅの取得について］
次に、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録するバンドルについて説明する。上述したサービス登録装置は、所定のネットワークインタフェースのＩＰアドレスにバインドしてＨＴＴＰサーバを起動するので、バンドル２は、ネットワークインタフェース単位でコンテンツの公開の可否を指定できる。ここでは、バンドル２が所望のＨｔｔｐ  Ｓｅｒｖｉｃｅを取得する処理について説明する。
【０１０８】
図１４は、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録するバンドルの構成を示すブロック図である。同図に示すバンドル２は、サービス取得機能２１、コンテンツ登録機能２２、ネットワークインタフェース決定機能２３、および検索条件作成機能２４を有する。
【０１０９】
ネットワークインタフェース決定機能２３は、どのネットワークインタフェース経由のアクセスに対してコンテンツを公開したいか決定し、検索条件作成機能２４に渡す。対象のネットワークインタフェースの決定方法は、例えば、バンドル２にハードコーディングする方法や、設定ファイルやシステムプロパティにより設定する方法などが考えられるがこれに限定しない。
【０１１０】
検索条件作成機能２４は、受け取ったネットワークインタフェースの情報を元に、所定のキー値に対応するサービスプロパティの値が指定のネットワークインタフェースになるような条件検索式を作成し、サービス取得機能２１に渡す。
【０１１１】
サービス取得機能２１は、ＯＳＧｉの仕様に従った方法、例えば、ＢｕｎｄｌｅＣｏｎｔｅｘｔインタフェースのメソッドを呼び出すことにより、Ｈｔｔｐ  Ｓｅｒｖｉｃｅのサービス名と検索条件作成機能２４から受け取った条件検索式とを指定し、サービスレジストリ１４に登録されたＨｔｔｐ  Ｓｅｒｖｉｃｅのうち、条件検索式に合致したＨｔｔｐ  Ｓｅｒｖｉｃｅを取得する。
【０１１２】
コンテンツ登録機能２２は、サービス取得機能２１が取得したＨｔｔｐ  Ｓｅｒｖｉｃｅのメソッドを呼ぶことにより、コンテンツの登録を行う。
【０１１３】
次に、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを取得する処理の流れについて説明する。
【０１１４】
図１５は、バンドル２がネットワークインタフェースを指定してＨｔｔｐ  Ｓｅｒｖｉｃｅを取得する処理の流れを示すフローチャートである。
【０１１５】
まず、ネットワークインタフェース決定機能２３が公開対象のネットワークインタフェースの情報を取得する（ステップＳ１１１）。
【０１１６】
続いて、検索条件作成機能２４が受け取ったネットワークインタフェースの情報に基づいて条件検索式を作成する（ステップＳ１１２）。条件検索式の作成方法は、ＯＳＧｉの仕様に従う。例えば、所定のサービスプロパティのキーを”ＢｏｕｎｄＮｗＩｆＩｄ”として、指定するネットワークインタフェースに該当する値が”１”の場合には、以下の文字列を検索式として生成する。
【０１１７】
"(&(objectClass=org.osgi.service.http.HttpService)(BoundNwIfId=1))"
続いて、サービス取得機能２１が条件検索式に合致するＨｔｔｐ  Ｓｅｒｖｉｃｅをサービスレジストリ１４から取得する（ステップＳ１１３）。
【０１１８】
そして、コンテンツ登録機能２２は、取得したＨｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録する（ステップＳ１１４）。
【０１１９】
以上説明したように、本実施の形態によれば、サービス実装提供機能１１がＨｔｔｐ  Ｓｅｒｖｉｃｅに対応するＨＴＴＰサーバを起動する際に、ネットワークインタフェースのＩＰアドレスをバインドしてＨＴＴＰサーバを起動することにより、ＨＴＴＰサーバはバインドしたネットワークインタフェース経由のアクセスに対してのみコンテンツを公開することになるので、Ｈｔｔｐ  Ｓｅｒｖｉｃｅを利用してコンテンツを登録するバンドルは、ネットワークインタフェース毎のアクセス制御が可能となる。
【０１２０】
また、本実施の形態によれば、Ｈｔｔｐ  Ｓｅｔｖｉｃｅを利用して実際にコンテンツが登録されるまでＨＴＴＰサーバを起動させないことで、消費メモリなどコンピュータのリソース消費を削減することができる。
【０１２１】
また、本実施の形態によれば、ＨＴＴＰサーバがバインドしたネットワークインタフェースのＩＰアドレスの変更を検出し、ＩＰアドレスの変更を検知した場合に、新しいＩＰアドレスにバインドしてＨＴＴＰサーバを再起動することにより、ネットワークインタフェースのＩＰアドレスが変更されたとしても、ＨＴＴＰサーバはバインドしたネットワークインタフェース経由で継続的にコンテンツを公開することが可能である。
【符号の説明】
【０１２２】
１…サービス登録装置
１１…サービス実装提供機能
１２…サービスプロパティ作成機能
１３…サービス登録機能
１４…サービスレジストリ
１５…ネットワークインタフェース情報取得機能
１６…情報管理機能
２…バンドル
２１…サービス取得機能
２２…コンテンツ登録機能
２３…ネットワークインタフェース決定機能
２４…検索条件作成機能
１００…サービス登録装置
１１０…サービス実装提供機能
１２０…サービスプロパティ作成機能
１３０…サービス登録機能
１４０…サービスレジストリ
２００…バンドル
２１０…サービス取得機能
２２０…コンテンツ登録機能
３００…ＨＴＴＰクライアント
【図１】
2011039819.tif 000003
【図２】
2011039819.tif 000004
【図３】
2011039819.tif 000005
【図４】
2011039819.tif 000006
【図５】
2011039819.tif 000007
【図６】
2011039819.tif 000008
【図７】
2011039819.tif 000009
【図８】
2011039819.tif 000010
【図９】
2011039819.tif 000011
【図１０】
2011039819.tif 000012
【図１１】
2011039819.tif 000013
【図１２】
2011039819.tif 000014
【図１３】
2011039819.tif 000015
【図１４】
2011039819.tif 000016
【図１５】
2011039819.tif 000017
【図１６】
2011039819.tif 000018