(57)【要約】      （修正有）【課題】リソースの少ない組込み機器上でアプリケーションプログラムを切り替えて起動できるようにする。【解決手段】アプリケーションプログラム管理装置は、起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶部２０２と、アプリケーションプログラムの起動をおこなうアプリケーションプログラム起動部２０１と、アプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶部２０３と、アプリケーションプログラムを実行するアプリケーションプログラム実行部２０４から構成される。さらに、装置の設定情報を記憶する装置情報記憶部２０５を有し、アプリケーションプログラムは、装置情報記憶部２０５から機器の設定情報を取得して判定し実行モードを決定する。【選択図】図２
2006277246.tif 000002
【特許請求の範囲】
【請求項１】
複数のアプリケーションプログラムを実行可能なアプリケーションプログラム管理装置で、
起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶手段とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動手段とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶手段と起動したアプリケーションプログラムを実行するアプリケーションプログラム実行手段から構成されるアプリケーションプログラム管理装置と、
装置の設定情報を記憶する装置情報記憶手段と、
前記装置情報記憶手段から機器の設定情報を取得する装置情報取得手段と前記取得した装置情報を判定する装置情報判定手段をもつ0個以上のアプリケーションプログラムから構成され、
前記アプリケーションプログラムは起動すべきアプリケーションプログラムとして前記起動アプリケーションプログラム情報記憶手段に記憶されており、
前記アプリケーションプログラムのプログラムコードは前記アプリケーションプログラムコード記憶手段に記憶されており、
前記アプリケーションプログラムは前記アプリケーションプログラム起動手段で起動されると前記アプリケーションプログラムコード記憶手段からコードがロードされ、前記アプリケーションプログラム実行手段で実行されると前記アプリケーションプログラムは前記装置情報取得手段で前記装置情報記憶手段から装置の設定情報を取得し、前記装置情報判定手段で装置の設定情報を判定し、前記判定手段での判定に応じて実行モードを決定することを特徴とするアプリケーションプログラム管理装置。
【請求項２】
複数のアプリケーションプログラムを実行可能なアプリケーションプログラム管理装置の制御方法において、
起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶工程とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動工程とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶工程と起動したアプリケーションプログラムを実行するアプリケーションプログラム実行工程から構成されるアプリケーションプログラム管理工程と、
装置の設定情報を記憶する装置情報記憶工程と、
前記装置情報記憶工程から機器の設定情報を取得する装置情報取得工程と前記取得した装置情報を判定する装置情報判定工程をもつ0個以上のアプリケーションプログラムから構成され、
前記アプリケーションプログラムは起動すべきアプリケーションプログラムとして前記起動アプリケーションプログラム情報記憶工程に記憶されており、
前記アプリケーションプログラムのプログラムコードは前記アプリケーションプログラムコード記憶工程に記憶されており、
前記アプリケーションプログラムは前記アプリケーションプログラム起動工程で起動されると前記アプリケーションプログラムコード記憶工程からコードがロードされ、前記アプリケーションプログラム実行工程で実行されると前記アプリケーションプログラムは前記装置情報取得工程で前記装置情報記憶工程から装置の設定情報を取得し、前記装置情報判定工程で装置の設定情報を判定し、前記判定工程での判定に応じて実行モードを決定することを特徴とするアプリケーションプログラム管理装置の制御方法。
【請求項３】
複数のアプリケーションプログラムを実行可能なアプリケーションプログラム管理装置によって実行されるプログラムコードが格納された記憶媒体において、
起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶手順とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動手順とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶手順と起動したアプリケーションプログラムを実行するアプリケーションプログラム実行手順から構成されるアプリケーションプログラム管理手順と、
装置の設定情報を記憶する装置情報記憶手順と、
前記装置情報記憶手順から機器の設定情報を取得する装置情報取得手順と前記取得した装置情報を判定する装置情報判定手順をもつ0個以上のアプリケーションプログラムから構成され、
前記アプリケーションプログラムは起動すべきアプリケーションプログラムとして前記起動アプリケーションプログラム情報記憶手順に記憶されており、
前記アプリケーションプログラムのプログラムコードは前記アプリケーションプログラムコード記憶手順に記憶されており、
前記アプリケーションプログラムは前記アプリケーションプログラム起動手順で起動されると前記アプリケーションプログラムコード記憶手順からコードがロードされ、前記アプリケーションプログラム実行手順で実行されると前記アプリケーションプログラムは前記装置情報取得手順で前記装置情報記憶手順から装置の設定情報を取得し、前記装置情報判定手順で装置の設定情報を判定し、前記判定手順での判定に応じて実行モードを決定することを特徴とするプログラムコードが格納された記憶媒体。
【請求項４】
HTTPサーバ実行装置で、
起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶手段とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動手段とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶手段と起動したアプリケーションプログラムを実行するアプリケーションプログラム実行手段から構成されるアプリケーションプログラム管理装置と、
装置の設定情報を記憶する装置情報記憶手段と、
前記装置情報記憶手段から機器の設定情報を取得する装置情報取得手段と前記取得した装置情報を判定する装置情報判定手段をもつHTTPサーバと、
前記装置情報記憶手段から機器の設定情報を取得する装置情報取得手段と前記取得した装置情報を判定する装置情報判定手段をもつ転送用HTTPサーバから構成され、
前記転送用HTTPサーバはクライアントからリクエストとがあると前記HTTPサーバにリクエストを転送することを特徴とし、
前記HTTPサーバと前記転送用HTTPサーバは起動すべきアプリケーションプログラムとして前記起動アプリケーションプログラム情報記憶手段に記憶されており、
前記HTTPサーバと前記転送用HTTPサーバのプログラムコードは前記アプリケーションプログラムコード記憶手段に記憶されており、
前記装置情報記憶手段は装置の設定情報としてSSLを使用するか否かの情報を記憶しており、
前記HTTPサーバと前記転送用HTTPサーバは前記アプリケーションプログラム起動手段で起動されると、前記アプリケーションプログラムコード記憶手段からコードがロードされ、前記アプリケーションプログラム実行手段で実行されると、
前記HTTPサーバは前記装置情報取得手段で前記装置情報記憶手段からSSLを使用するか否かの情報を取得し、前記装置情報判定手段でSSLの使用、不使用を判定し、前記判定手段でSSL使用と判定された場合はSSLを使用したHTTPSサーバとして前記アプリケーションプログラム実行手段で実行し、前記判定手段でSSL不使用と判定された場合は通常のHTTPサーバとして前記アプリケーションプログラム実行手段で実行し、
前記転送用HTTPサーバは前記装置情報取得手段で前記装置情報記憶手段からSSLを使用するか否か情報を取得し、前記装置情報判定手段でSSL使用、不使用を判定し、前記判定手段でSSL使用と判定された場合は転送用HTTPサーバとして前記アプリケーションプログラム実行手段で実行し、前記判定手段でSSL不使用と判定された場合は実行を中断することを特徴とするHTTPサーバ実行装置。
【請求項５】
HTTPサーバ実行装置の制御方法において、
起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶工程とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動工程とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶工程と起動したアプリケーションプログラムを実行するアプリケーションプログラム実行工程から構成されるアプリケーションプログラム管理工程と、
装置の設定情報を記憶する装置情報記憶工程と、
前記装置情報記憶工程から機器の設定情報を取得する装置情報取得工程と前記取得した装置情報を判定する装置情報判定工程をもつHTTPサーバと、
前記装置情報記憶工程から機器の設定情報を取得する装置情報取得工程と前記取得した装置情報を判定する装置情報判定工程をもつ転送用HTTPサーバから構成され、
前記転送用HTTPサーバはクライアントからリクエストとがあると前記HTTPサーバにリクエストを転送することを特徴とし、
前記HTTPサーバと前記転送用HTTPサーバは起動すべきアプリケーションプログラムとして前記起動アプリケーションプログラム情報記憶工程に記憶されており、
前記HTTPサーバと前記転送用HTTPサーバのプログラムコードは前記アプリケーションプログラムコード記憶工程に記憶されており、
前記装置情報記憶工程は装置の設定情報としてSSLを使用するか否かの情報を記憶しており、
前記HTTPサーバと前記転送用HTTPサーバは前記アプリケーションプログラム起動工程で起動されると、前記アプリケーションプログラムコード記憶工程からコードがロードされ、前記アプリケーションプログラム実行工程で実行されると、
前記HTTPサーバは前記装置情報取得工程で前記装置情報記憶工程からSSLを使用するか可か否情報を取得し、前記装置情報判定工程でSSLの使用、不使用を判定し、前記判定工程でSSL使用と判定された場合はSSLを使用したHTTPSサーバとして前記アプリケーションプログラム実行工程で実行し、前記判定工程でSSL不使用と判定された場合は通常のHTTPサーバとして前記アプリケーションプログラム実行工程で実行し、
前記転送用HTTPサーバは前記装置情報取得工程で前記装置情報記憶工程からSSL使用の可否情報を取得し、前記装置情報判定工程でSSLの使用、不使用を判定し、前記判定工程でSSL使用と判定された場合は転送用HTTPサーバとして前記アプリケーションプログラム実行工程で実行し、前記判定工程でSSL不使用と判定された場合は実行を中断することを特徴とするHTTPサーバ実行装置の制御方法。
【請求項６】
HTTPサーバ実行装置によって実行されるプログラムコードが格納された記憶媒体において、
起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶手順とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動手順とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶手順と起動したアプリケーションプログラムを実行するアプリケーションプログラム実行手順をから構成されるアプリケーションプログラム管理手順と、
装置の設定情報を記憶する装置情報記憶手順と、
前記装置情報記憶手順から機器の設定情報を取得する装置情報取得手順と前記取得した装置情報を判定する装置情報判定手順をもつHTTPサーバと、
前記装置情報記憶手順から機器の設定情報を取得する装置情報取得手順と前記取得した装置情報を判定する装置情報判定手順をもつ転送用HTTPサーバから構成され、
前記転送用HTTPサーバはクライアントからリクエストとがあると前記HTTPサーバにリクエストを転送することを特徴とし、
前記HTTPサーバと前記転送用HTTPサーバは起動すべきアプリケーションプログラムとして前記起動アプリケーションプログラム情報記憶手順に記憶されており、
前記HTTPサーバと前記転送用HTTPサーバのプログラムコードはするアプリケーションプログラムコード記憶手順に記憶されており、
前記装置情報記憶手順は装置の設定情報としてSSLを使用するか否かの情報を記憶しており、
前記HTTPサーバと前記転送用HTTPサーバは前記アプリケーションプログラム起動手順で起動されると、前記アプリケーションプログラムコード記憶手順からコードがロードされ、前記アプリケーションプログラム実行手順で実行されると、
前記HTTPサーバは前記装置情報取得手順で前記装置情報記憶手順からSSLを使用するか否か情報を取得し、前記装置情報判定手順でSSLの使用、不使用を判定し、前記判定手順でSSL使用と判定された場合はSSLを使用したHTTPSサーバとして前記アプリケーションプログラム実行手順で実行し、前記判定手順でSSL不使用と判定された場合は通常のHTTPサーバとして前記アプリケーションプログラム実行手順で実行し、
前記転送用HTTPサーバは前記装置情報取得手順で前記装置情報記憶手順からSSL使用の可否情報を取得し、前記装置情報判定手順でSSLの使用、不使用を判定し、前記判定手順でSSL使用と判定された場合は転送用HTTPサーバとして前記アプリケーションプログラム実行手順で実行し、前記判定手順でSSL不使用と判定された場合は実行を中断することを特徴とするHTTPサーバ実行手順を特徴とするプログラムコードが格納された記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
デジタル複写機といった組込み機器上でのHTTPサーバもしくはSSLを使用したHTTPSサーバの実行と、SSLを使用したHTTPSサーバ実行時に通常のHTTPサーバへのアクセスを、SSLを使用したHTTPSサーバに転送する転送用HTTPサーバの実行において、起動処理の複雑化を抑え、機器設定の変更を最小限に抑え、さらに起動するHTTPサーバの数を最小限に抑えることを目的とする技術である。
【背景技術】
【０００２】
(1)アプリケーションプログラム管理装置
メモリやCPUといったリソースに制限が多い組込み機器などでは複数のプログラムの実行をおこなう場合、単純に個々のプログラムをそれぞれ別プロセスとして動作させるのではなく、実行管理するためのアプリケーションプログラム管理装置(101)を用いて、アプリケーションプログラム管理装置(101)のプロセス上でアプリケーションプログラムを実行することが多い。そのようなアプリケーションプログラム管理装置の例としてはOSGiサーバなどがあげられる。なお、OSGiサーバはホームゲートウェイといった組込み機器上で複数のJava（登録商標）（米国Sun Microsystemsによって仕様が規定されているプログラミング言語、およびプログラム実行環境。米国Sun Microsystemsの登録商標である）プログラムの実行を管理するアプリケーションプログラム実行サーバで、OSGi Allianceによって仕様が規定されている。
【０００３】
上記アプリケーションプログラム管理装置(101)では、機器が起動したときに起動すべきアプリケーションプログラムの情報を記憶しており、その情報の順序に従いアプリケーションプログラムの起動をおこなう。
【０００４】
(2)HTTPサービス
HTTPサービスはServletやHTMLデータなどのコンテンツサービスを登録するAPIをもち、コンテンツサービスは起動されると前記APIを使用してHTTPサービスに登録をおこなうことにより、ユーザはHTTPサービスを通じてコンテンツサービスを使用することが可能である。なお、Servletは、米国Sun Microsystemsによって仕様が規定されているHTTPサーバ拡張インターフェイスであり、Java（登録商標）で記述される。ＨＴＴＰサービスは、特許文献１に記載されている。
【０００５】
HTTPサービスはServletやHTMLデータなどのコンテンツサービスを登録するAPIを持っているので動作しているHTTPサービスに対して動的にServletやHTMLデータなどのコンテンツサービスを登録、削除することが可能となっている。
【０００６】
上記、アプリケーションプログラム管理装置(101)にとっては、HTTPサーバを実現するHTTPサービス(102)とHTTPサーバの拡張プログラムであるServlet(105)やHTMLデータなどのコンテンツサービス(106)は等しく一つのサービスプログラムとして扱われ、アプリケーションプログラム管理装置(101)において、起動・停止される。
【０００７】
(3)HTTPサーバの拡張プログラム
現在、実装されているHTTPサーバの多くはクライアントに対してサーバに保存されているHTMLや画像ファイルなど静的なファイルの転送をおこなうだけでなく動的にデータを生成し、クライアントに対して転送をおこなう機能をもつ。代表的な拡張プログラムインターフェイスとしてServletやCGIなどがあげられる。ServletやCGIいった機能を用いることにより、クライアントを利用するユーザと対話的な処理をおこなうことが可能になる。
【０００８】
(4)HTTPS
HTTPの通信は暗号化されていないため、通信経路の途中で傍受、改変することが可能である。プライバシー情報やクレジットカード番号などを安全に送信するために、OSI参照モデルのトランスポート層で暗号化をおこなうSSL(Secure Socket Layer)を使用したものがHTTPSである。
【特許文献１】特開2002-196931号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上記従来例において、機器の設定により、あるアプリケーションプログラムとそれとは別のアプリケーションプログラムを切り替えて起動しようとする場合、いくつかの問題が発生していた。
【００１０】
たとえば、HTTPサーバプログラムとSSLを使用するHTTPSサーバプログラムの両方を用意し、アプリケーションプログラム起動時に、SSLを使用するか否かの設定情報に従ってどちらか一方を起動するという方法が考えられるが、HTTPサーバとHTTPSサーバ両方のアプリケーションプログラムのコードを記憶するためのストレージが必要になるだけでなく、アプリケーションプログラムを起動するときの処理に設定情報を判定し起動するプログラムを決定するという処理が加わることになり、起動処理が複雑化してしまう。さらに、HTTPサーバとSSLを使用するHTTPSサーバの切り替えだけでなく、他のアプリケーションプログラムで同様のことをおこなう場合、起動処理に判定条件の異なる複数の設定情報判定処理が追加されることになり、アプリケーションプログラム起動処理を汎用的に実装することができなくなる。
【００１１】
また、HTTPサーバプログラムとSSLを使用するHTTPSサーバプログラムの両方を用意し、SSLを使用する否かの設定情報を設定したときに、どちらか一方しか起動しないように、起動すべきアプリケーションプログラムを記憶している起動アプリケーションプログラム情報記憶部に保存されているアプリケーションプログラムのリストを変更するという手法も考えられるが、一般的に組込み機器においては機器の安定性を図るため、ユーザのアプリケーションプログラムと異なり、機器起動時に起動される基本的なアプリケーションプログラムに関して、どのアプリケーションプログラムをどの順序で起動していくかという情報を変更することは望まれない。更に他のアプリケーションプログラムで同様のことをおこなう場合、他のアプリケーションプログラムに影響を与えることなく、起動アプリケーションプログラム情報記憶部を変更する処理は複雑かつ非汎用的なものとなってしまう。
【００１２】
そして、上記のような方法を機器のリソース(CPUパワー、メモリ、ストレージ)などに制限のある組込み機器においておこなうのは非常に困難である。
【００１３】
本発明は、このような背景の下になされたもので、その課題は、リソースの少ない組込み機器上で効率良く、より高速に、起動するアプリケーションプログラムを変更するアプリケーションプログラム管理装置を提供することにある。
【００１４】
さらに、もう一つの課題は、上記アプリケーションプログラム管理装置と、機器の設定情報によりSSLを使用したHTTPSサーバもしくは通常のHTTPサーバとして起動するHTTPサーバと、機器の設定情報により転送用HTTPサーバもしくはサーバの起動をおこなわない転送用HTTPサーバから構成され、SSL使用設定時に、ユーザから通常のポートにたいしてアクセスがあると自動的にSSLを使用したHTTPSサーバに転送することにより、より安全なアクセスをユーザに提供し、SSL不使用設定時には不要な転送用HTTPサーバを起動しないことにより機器のリソースを節約するHTTPサーバ実行装置を提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するため、本発明の請求項1に記載のアプリケーションプログラム管理装置は、起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶手段とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動手段とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶手段とアプリケーションプログラムを実行するアプリケーションプログラム実行手段から構成されるアプリケーションプログラム管理装置と、
装置の設定情報を記憶する装置情報記憶手段と、
前記装置情報記憶手段から機器の設定情報を取得する装置情報取得手段と前記取得した装置情報を判定する装置情報判定手段をもつ0個以上のアプリケーションプログラムから構成されることを特徴とする。
【００１６】
本発明の請求項２に記載のアプリケーションプログラム管理装置の制御方法は、起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶工程とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動工程とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶工程とアプリケーションプログラムを実行するアプリケーションプログラム実行工程から構成されるアプリケーションプログラム管理工程と、
装置の設定情報を記憶する装置情報記憶工程と、
前記装置情報記憶工程から機器の設定情報を取得する装置情報取得工程と前記取得した装置情報を判定する装置情報判定工程をもつ0個以上のアプリケーションプログラムから構成されることを特徴とする。
【００１７】
請求項３に記載のアプリケーションプログラム管理装置の制御プログラムを記憶した記憶媒体は、起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶手順とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動手順とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶手順とアプリケーションプログラムを実行するアプリケーションプログラム実行手順から構成されるアプリケーションプログラム管理手順と、
装置の設定情報を記憶する装置情報記憶手順と、
前記装置情報記憶手順から機器の設定情報を取得する装置情報取得手順と前記取得した装置情報を判定する装置情報判定手順をもつ0個以上のアプリケーションプログラムから構成されることを特徴とするプログラムを格納している。
【００１８】
上記目的を達成するため、本発明の請求項4に記載のHTTPサーバ実行装置は、起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶手段とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動手段とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶手段とアプリケーションプログラムを実行するアプリケーションプログラム実行手段から構成されるアプリケーションプログラム管理装置と、
装置の設定情報を記憶する装置情報記憶手段と、
前記装置情報記憶手段から機器の設定情報を取得する装置情報取得手段と前記取得した装置情報を判定する装置情報判定手段をもつHTTPサーバと、
前記装置情報記憶手段から機器の設定情報を取得する装置情報取得手段と前記取得した装置情報を判定する装置情報判定手段をもつ転送用HTTPサーバから構成されることを特徴とする。
【００１９】
本発明の請求項５に記載のHTTPサーバ実行装置の制御方法は、起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶工程とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動工程とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶工程と起動したアプリケーションプログラムを保持するアプリケーションプログラム実行工程から構成されるアプリケーションプログラム管理工程と、
装置の設定情報を記憶する装置情報記憶工程と、
前記装置情報記憶工程から機器の設定情報を取得する装置情報取得工程と前記取得した装置情報を判定する装置情報判定工程をもつHTTPサーバと、
前記装置情報記憶工程から機器の設定情報を取得する装置情報取得工程と前記取得した装置情報を判定する装置情報判定工程をもつ転送用HTTPサーバから構成されることを特徴とする。
【００２０】
請求項６に記載のHTTPサーバ実行装置の制御プログラムを記憶した記憶媒体は、起動すべきアプリケーションプログラムのリストを記憶する起動アプリケーションプログラム情報記憶手順とアプリケーションプログラムの起動をおこなうアプリケーションプログラム起動手順とアプリケーションプログラムのコードを記憶するアプリケーションプログラムコード記憶手順とアプリケーションプログラムを実行するアプリケーションプログラム実行手順から構成されるアプリケーションプログラム管理手順と、
装置の設定情報を記憶する装置情報記憶手順と、
前記装置情報記憶手順から機器の設定情報を取得する装置情報取得手順と前記取得した装置情報を判定する装置情報判定手順をもつHTTPサーバと、
前記装置情報記憶手順から機器の設定情報を取得する装置情報取得手順と前記取得した装置情報を判定する装置情報判定手順をもつ転送用HTTPサーバから構成されることを特徴とするプログラムを格納している。
【発明の効果】
【００２１】
本発明の請求項１に記載のアプリケーションプログラム管理装置、請求項２に記載のアプリケーションプログラム管理装置の制御方法、請求項３に記載の記憶媒体に格納されたアプリケーションプログラム管理装置によって実行されるプログラムコードにより、アプリケーションプログラム起動手段での処理を複雑化させること無く、起動すべきアプリケーションプログラムの情報を変更することも無く、インストールするアプリケーションプログラムの数を増やさずに、起動するアプリケーションプログラムの機能を変更し実行することを可能とする。
【００２２】
本発明の請求項４に記載のHTTPサーバ実行装置、請求項５に記載のHTTPサーバ実行装置の制御方法、請求項６に記載の記憶媒体に格納されたHTTPサーバ実行装置によって実行されるプログラムコードにより、アプリケーションプログラム起動手段での処理を複雑化させること無く、起動すべきアプリケーションプログラムの情報を変更することも無く、インストールするアプリケーションプログラムの数を増やさずに、機器に設定されたSSLの使用、不使用情報の変更だけで、
HTTPサーバを起動するか、SSLを用いたHTTPSサーバ及びSSLを用いたHTTPSサーバにリクエストを転送する転送用HTTPサーバを起動するか、を切り替えることができる。
【００２３】
さらにSSLを用いたHTTPSサーバとSSLを用いたHTTPSサーバにリクエストを転送する転送用HTTPサーバの2つのサーバを起動することにより、ユーザに負担をかけることなく、通常のHTTPサーバ用のポートにアクセスしたユーザに対してSSLを用いたHTTPSサーバを使用させ、より高いセキュリティに守られたアクセスを実現する。
【発明を実施するための最良の形態】
【００２４】
図1は本発明のHTTPサーバの構成を示す図である。本発明のHTTPサーバはHTTPサーバプログラムや他のアプリケーションプログラムを管理するアプリケーションプログラム管理装置(101)、HTTPサーバ(102)、転送用HTTPサーバ(103)、HTTPサーバ上で動作する0個以上のServlet(105)、HTTPサーバに登録された0個以上のHTMLコンテンツ(106)、HTTPサーバ以外の0個以上の他のアプリケーションプログラム(104)から構成されている。
【００２５】
その他のアプリケーションプログラムとしてはユーザインターフェイスをもつアプリケーションプログラムなどがある。
【００２６】
図1のアプリケーションプログラム管理装置は図2のブロック図で示されるように、アプリケーションプログラムの起動をおこなうアプリケーションプログラム起動部(201)、起動すべきアプリケーションプログラムのリストを記憶している起動アプリケーションプログラム情報記憶部(202)、アプリケーションプログラムのプログラムコードを格納するアプリケーションプログラムコード記憶部(203)、アプリケーションプログラムの実行をおこなうアプリケーションプログラム実行部(204)、アプリケーションプログラムが取得する機器などの情報を記憶する装置情報記憶部(205)から構成されている。
【００２７】
起動アプリケーションプログラム情報記憶部(202)は図3のように起動すべきアプリケーションプログラムの名前のリストである。
【００２８】
装置情報記憶部(205)は図4のように機器の情報をキーと値の対のデータとして記憶している。
【００２９】
アプリケーションプログラムコード記憶部(203)は図5のようにアプリケーションプログラムのプログラムコードを格納している。
【００３０】
アプリケーションプログラム起動部(201)は図6のような順序でアプリケーションプログラムの起動をおこなう。
【００３１】
まず、機器への電源投入やユーザの起動処理開始指示などによって起動処理を開始する(ステップ601)。次に起動アプリケーションプログラム情報記憶部(202)に保存されている起動すべきアプリケーションプログラムの名前のリストを取得する(ステップ602)。
【００３２】
ステップ602で取得したリストから起動すべきアプリケーションプログラム名を取得する(ステップ603)。
【００３３】
ステップ603で取得したアプリケーションプログラム名に対応するプログラムコードをアプリケーションプログラムコード記憶部(203)からロードし(ステップ604)、起動をおこなう(ステップ605)。
【００３４】
次にステップ602で取得したリストの最後にきたかをチェックし(ステップ606)、最後でなければステップ603に遷移し処理を続ける。最後であれば起動処理を終了する(ステップ607)。
【００３５】
アプリケーションプログラム起動部(201)は起動アプリケーションプログラム情報記憶部(202)に記憶されている起動すべきアプリケーションプログラムの名前のリストに記述された順序に従ってアプリケーションプログラムの起動をおこなう。組込み機器において起動アプリケーションプログラム情報記憶部(202)の内容やリスト順序の変更は困難なことが多い。
【００３６】
HTTPサーバ（102）は通常のHTTPサーバもしくはSSLソケットを使用するHTTPSサーバとして動作する機能をもっており、図7のような順序で起動される。
【００３７】
アプリケーションプログラム管理装置(101)のアプリケーションプログラム起動部(201)によってHTTPサーバの起動処理が開始されると(ステップ701)、機器情報記憶部(205)からキーが「SSL」の値を取得する(ステップ702)。
【００３８】
次にステップ702で取得した情報が「on」であるかを調べ(ステップ703)、「on」であればクライアントとの接続をおこなうためにSSL Socketライブラリ使用しサーバソケットを生成し(ステップ704)、HTTPSサーバのポート番号(例 443番)でサーバを起動する(ステップ706)。「on」でなければクライアントとの接続をおこなうために通常のSocketライブラリを使用しサーバソケットを生成し(ステップ705)通常のHTTPサーバのポート番号(例 80番)でサーバを起動する(ステップ706)。サーバを起動するとHTTPサーバの起動処理を終了する(707)。
【００３９】
HTTPS、HTTPのどちらのサーバとして起動しても使用するSocketライブラリ以外は同一なので前記HTTPサーバプログラムが使用するリソースが大きく異なることはない。
【００４０】
転送用HTTPサーバはHTTPサーバがHTTPSサーバと動作しているときに、クライアントから通常のポートに対してアクセスがあった場合、HTTPSサーバにリクエストを転送する機能を持っており、図8のような順序で起動処理をおこなう。
【００４１】
アプリケーションプログラム管理装置(101)のアプリケーションプログラム起動部(201)によって転送用HTTPサーバの起動処理が開始されると(ステップ801)、機器情報記憶部(205)からキーが「SSL」の値を取得する(ステップ802)。
【００４２】
次にステップ802で取得した情報が「on」であるかを調べ(ステップ803)、「on」であればクライアントとの接続をおこなうためにサーバソケットを生成しサーバを起動し (ステップ804)、転送用HTTPサーバの起動処理を終了する(ステップ805)。このとき転送用として必要最低限の機能をもったHTTPサーバが起動されるので機器のリソースの消費を抑えることができる。
【００４３】
「on」でなければサーバを起動せずに転送用HTTPサーバの起動処理を終了する(ステップ805)。このとき転送用HTTPサーバは起動されないので機器のリソースを消費しない。
【００４４】
ServletやHTMLコンテンツはプログラム起動部によって起動されると、起動しているHTTPサーバに登録される。このとき、ServletやHTMLコンテンツは自身が登録されたサーバが通常のSocketを使用するサーバなのかSSL Socketを使用するサーバなのかを感知する必要はない。
【００４５】
次に、クライアントからのリクエストがどのように転送用HTTPサーバからHTTPSサーバに転送されるかについて図9を用いて説明する。
【００４６】
機器情報記憶部(205)のキー「SSL」の値が「on」である場合、443番ポートでHTTPSサーバが、80番ポートで転送用HTTPサーバが起動している。443番ポートや80番ポートというのはその番号のポートが一般的にHTTPSサーバ、HTTPサーバでよく使用されるため、例として用いているだけで、他の番号のポートでHTTPSサーバや転送用HTTPサーバが動作していてもかまわない。
【００４７】
さらにHTTPSサーバには「ServletA」という名前のServletが登録されているとする。
【００４８】
ユーザがクライアントプログラムに「http://サーバアドレス/ServletA」に対してリクエストを発行するように指示すると(ステップ901)、HTTPにおいてサーバのポート番号が省略された場合、80番ポートで動作するサーバへのリクエストと解釈されるので、クライアントプログラムはサーバアドレスで示されるサーバの80番ポートに対して以下のようなリクエストを送信する(ステップ902)。
【００４９】
GET/ServletA
Host:サーバアドレス:80
機器情報記憶部のキー「SSL」の値が「on」である場合、80番ポートで起動しているのは転送用HTTPサーバであるため、上記リクエストは転送用HTTPサーバが受信する(ステップ903)。
【００５０】
転送用HTTPサーバはHTTPSサーバに対してリクエストの転送をおこなうために、クライアントに対して以下のレスポンスを返信する(ステップ904)。
【００５１】
302 Moved Temporarily
Location: http://サーバアドレス:443/ServletA
上記レスポンスを受信した(ステップ905)クライアントプログラムはレスポンスのLocationヘッダに記述されているURLを解釈し、サーバアドレスで示されるサーバの443番ポートに対して以下のようなリクエストを送信する(ステップ906)。
【００５２】
GET/ServletA
Host: サーバアドレス:443
機器情報記憶部のキー「SSL」の値が「on」である場合、443番ポートで起動しているのはHTTPSサーバであるため、上記リクエストはHTTPSサーバが受信する(ステップ907)。
【００５３】
HTTPSサーバはリクエストを受信すると。HTTPSサーバに登録されているServletに「ServletA」という名前のものが存在するかを調べる(ステップ908)。
【００５４】
存在すれば(ステップ909)ServletAにリクエストを渡しServletAはリクエストに対する処理をおこない(ステップ910)レスポンスデータを生成し、HTTPSサーバを通じてクライアントに以下のレスポンスを返信する(ステップ911)。
【００５５】
200 OK
データ・・・
存在しなければ(ステップ910)HTTPSサーバはクライアントにエラーレスポンスを返信する(ステップ912)。
【００５６】
クライアントはHTTPSサーバから返信されたレスポンスを受信し(ステップ913)、サーバに対するリクエスト処理を終了する(ステップ914)。
【００５７】
以上のように、組込み機器上で複数のアプリケーションプログラムを起動する場合に、アプリケーションプログラム起動部での処理を複雑化させること無く、起動すべきアプリケーションプログラムの情報を変更することも無く、インストールするアプリケーションプログラムの数を増やさずに、起動するアプリケーションプログラムの機能を変更し実行することを可能とする。
【図面の簡単な説明】
【００５８】
【図１】本発明のHTTPサーバ実行装置の構成を示す図である。
【図２】本発明のHTTPサーバ実行装置を構成するアプリケーションプログラム管理装置の構成を示す図である。
【図３】本発明のHTTPサーバ実行装置を構成する起動アプリケーションプログラム情報記憶部を示す図である。
【図４】本発明のHTTPサーバ実行装置を構成する装置情報記憶部を示す図である。
【図５】本発明のHTTPサーバ実行装置を構成する装置情報記憶部を示す図である。
【図６】本発明のHTTPサーバ実行装置のアプリケーションプログラム起動処理のフローチャートである。
【図７】HTTPサーバ起動処理のフローチャートである。
【図８】転送用HTTPサーバ起動処理のフローチャートである。
【図９】クライアントからのリクエスト処理のフローチャートである。
【符号の説明】
【００５９】
101  アプリケーションプログラム管理装置
102  HTTPサーバ
103  転送用HTTPサーバ
104  他のアプリケーションプログラム
105  Servlet
106  HTMLコンテンツ
【図１】
2006277246.tif 000003
【図２】
2006277246.tif 000004
【図３】
2006277246.tif 000005
【図４】
2006277246.tif 000006
【図５】
2006277246.tif 000007
【図６】
2006277246.tif 000008
【図７】
2006277246.tif 000009
【図８】
2006277246.tif 000010
【図９】
2006277246.tif 000011