(57)【特許請求の範囲】
【請求項１】
１または複数のアプリケーションを記憶した記憶部と、上記記憶部に記憶されたアプリケーションの中から選択される１または複数のアプリケーションを実行する制御部とを備えたサーバ装置であって、
上記各アプリケーションには、それぞれ個別の識別情報が対応付けられており、
上記記憶部は、
ネットワークファイアウォールの外部に配置された第１クライアント装置からのＨＴＴＰリクエストに応じて起動される第１アプリケーションと、
当該サーバ装置に備えられる操作パネルに対する指示入力、または上記ネットワークファイアウォール内に備えられる第２クライアント装置からの指示に応じて起動される第２アプリケーションとを記憶しており、
上記制御部は、
上記第１クライアント装置からのＨＴＴＰリクエストにより特定される識別情報に基づいて上記記憶部に記憶されている上記１または複数の第１アプリケーションの中から選択される１または複数の第１アプリケーションを起動し、
起動した上記１または複数の第１アプリケーションを、当該第１アプリケーションの機能が制限された環境下で実行し、
上記第１アプリケーションを実行する際の機能の制限内容を上記第２アプリケーションを実行する際の機能の制限内容よりも厳しい制限内容に設定することを特徴とするサーバ装置。
【請求項２】
上記制御部は、起動した上記１または複数のアプリケーションのうちの少なくとも１つのアプリケーションを、当該サーバ装置のオペレーティングシステムのバックグラウンドで実行することを特徴とする請求項１に記載のサーバ装置。
【請求項３】
複数の装置機能を有する複合機であることを特徴とする請求項１または２に記載のサーバ装置。
【請求項４】
上記第１アプリケーションの少なくとも１つは上記複合機で実行するプリント枚数およびスキャン枚数の管理を行う第１枚数管理アプリケーションであり、
上記第２アプリケーションの少なくとも１つは上記複合機で実行するプリント枚数およびスキャン枚数の管理を行う第２枚数管理アプリケーションであり、
上記第１枚数管理アプリケーションを実行する際には特定のアクセス先以外のアクセス先との通信を禁止することを特徴とする請求項３に記載のサーバ装置。
【請求項５】
請求項１から４のいずれか１項に記載のサーバ装置と、上記サーバ装置にＨＴＴＰリクエストを送信するクライアント装置とを備えていることを特徴とするアプリケーション実行システム。
【請求項６】
１または複数のアプリケーションをネットワークファイアウォール内に配置されたサーバ装置に実行させるアプリケーション実行方法であって、
上記各アプリケーションには、それぞれ個別の識別情報が対応付けられており、かつ、
上記アプリケーションには、上記ネットワークファイアウォールの外部に配置された第１クライアント装置から上記サーバ装置へのＨＴＴＰリクエストに応じて起動される第１アプリケーションと、上記サーバ装置に備えられる操作パネルに対する指示入力、または上記ネットワークファイアウォール内に備えられる第２クライアント装置から上記サーバ装置への指示に応じて起動される第２アプリケーションとがあり、
上記サーバ装置が、上記第１クライアント装置からのＨＴＴＰリクエストにより特定される識別情報に基づいて上記１または複数の第１アプリケーションの中から１または複数の第１アプリケーションを選択し、選択した第１アプリケーションを起動する起動工程と、
上記サーバ装置が、起動した上記１または複数の第１アプリケーションを、当該第１アプリケーションの機能が制限された環境下で実行する実行工程とを含み、
上記第１アプリケーションを実行する際の機能の制限内容を上記第２アプリケーションを実行する際の機能の制限内容よりも厳しい制限内容に設定することを特徴とするアプリケーション実行方法。
【請求項７】
上記サーバ装置は、複数の装置機能を有する複合機であり、
上記第１アプリケーションの少なくとも１つは上記複合機で実行するプリント枚数およびスキャン枚数の管理を行う第１枚数管理アプリケーションであり、
上記第２アプリケーションの少なくとも１つは上記複合機で実行するプリント枚数およびスキャン枚数の管理を行う第２枚数管理アプリケーションであり、
上記第１枚数管理アプリケーションを実行する際には特定のアクセス先以外のアクセス先との通信を禁止することを特徴とする請求項６に記載のアプリケーション実行方法。
【請求項８】
請求項１から４のいずれか１項に記載のサーバ装置を動作させるプログラムであって、コンピュータを上記制御部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置からのＨＴＴＰリクエストに応じてアプリケーションを実行するサーバ装置、上記サーバ装置と上記クライアント装置とを備えたアプリケーション実行システム、および上記サーバ装置と上記クライアント装置とを用いるアプリケーション実行方法に関するものである。
【背景技術】
【０００２】
デーモンプロセスは、コンピュータのオペレーティングシステムのバックグラウンドで動作するアプリケーションであり、通常、初期設定時にオペレーティングシステムによって大量に作り出される。
【０００３】
また、デーモンプロセスは、サンドボックス内（デーモンプロセスの機能が制限された環境下）で動作する場合がある。サンドボックスとは、プログラムを保護された領域で動作させることによりシステムが不正に操作されることを防ぐセキュリティモデルであり、実行されるプログラムは保護された領域に入り、他のプログラムやデータなどを操作できない状態で動作するので、プログラムが暴走したりウィルスを動作させたりしようとしてもシステムに影響が及ばないようにできる。
【０００４】
なお、特許文献１には、クライアントマシンのウェブ（Ｗｅｂ）ブラウザ経由でサーバ上の文書管理を行う文書管理システムにおいて、ユーザからロック要求がなされたフォルダに格納された文書に対して更新禁止等の処理の制限を設定することが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２５９５９０号公報（平成１４年９月１３日公開）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の技術では、ユーザからロック要求がなされたフォルダに格納された文書（処理対象データ）に対する他のユーザによる処理を制限することができるものの、サーバ上で動作するアプリケーション（例えばデーモンプロセスなど）の機能自体を制限することができない。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、サーバ装置上で動作するアプリケーションの機能を制限できるようにすることにある。
【課題を解決するための手段】
【０００８】
本発明のサーバ装置は、１または複数のアプリケーションを記憶した記憶部と、上記記憶部に記憶されたアプリケーションの中から選択される１または複数のアプリケーションを実行する制御部とを備えたサーバ装置であって、上記各アプリケーションには、それぞれ個別の識別情報が対応付けられており、上記制御部は、クライアント装置からのＨＴＴＰリクエストにより特定される識別情報に基づいて上記記憶部に記憶されている上記１または複数のアプリケーションの中から選択される１または複数のアプリケーションを起動し、起動した上記１または複数のアプリケーションのうちの少なくとも１つのアプリケーションを、当該アプリケーションの機能が制限された環境下で実行することを特徴としている。
【０００９】
上記の構成によれば、サーバ装置に、クライアント装置からのＨＴＴＰリクエストに応じたアプリケーションを、当該アプリケーションの機能が制限された環境下で実行させることができる。これにより、サーバ装置に備えられるアプリケーションを、セキュリティ不安なく実行させることができる。
【００１０】
例えば、悪意の第三者がクライアント装置からＨＴＴＰリクエストを介してデーモンプロセスを実行し、サーバ装置内の何らかのデータをＨＴＴＰレスポンスを介して入手しようとしても、正当でないＵＲＬへのデータ送信を禁止するようにアプリケーションの機能を制限しておくことにより、サーバ装置内のデータの漏えいを防止できる。したがって、例えば、サーバ装置（例えば複合機）の機能を当該サーバ装置に対して遠隔地に設置されたクライアント装置（例えば上記サーバ装置を保護するファイアウォールの外部に設置されたクライアント装置）から管理するとともに、サーバ装置に対する外部からの不正アクセスによる情報漏えいを防止することができる。
【００１１】
また、上記制御部は、起動した上記１または複数のアプリケーションのうちの少なくとも１つのアプリケーションを、当該サーバ装置のオペレーティングシステムのバックグラウンドで実行する構成としてもよい。
【００１２】
上記の構成によれば、サーバ装置のオペレーションシステムのバックラウンドで実行されるアプリケーションを、セキュリティ不安なく実行させることができる。
【００１３】
また、上記クライアント装置は、上記サーバ装置の外部に備えられていてもよい。
【００１４】
上記の構成によれば、サーバ装置の外部に備えられたクライアント装置から上記サーバ装置にＨＴＴＰリクエストを送信することにより、所望するアプリケーションを上記サーバ装置に実行させることができる。
【００１５】
また、上記クライアント装置は、ネットワークファイアウォールの外部に配置されていてもよい。
【００１６】
上記の構成によれば、クライアント装置がネットワークファイアウォールの外部に配置されている場合であっても、ＨＴＴＰリクエストを用いてサーバ装置に所望するアプリケーションを起動・実行させることができる。
【００１７】
また、上記サーバ装置は、複数の装置機能を有する複合機であってもよい。
【００１８】
上記の構成によれば、複合機に備えられるアプリケーションをクライアント装置から利用することができる。
【００１９】
本発明のアプリケーション実行システムは、上記したいずれかのサーバ装置と、上記サーバ装置にＨＴＴＰリクエストを送信するクライアント装置とを備えていることを特徴としている。
【００２０】
上記の構成によれば、サーバ装置に、クライアント装置からのＨＴＴＰリクエストに応じたアプリケーションを、当該アプリケーションの機能が制限された環境下、かつ当該サーバ装置のオペレーティングシステムのバックグラウンドで実行させることができる。これにより、サーバ装置に備えられるアプリケーションを、セキュリティ不安なく実行させることができる。
【００２１】
本発明のアプリケーション利用方法は、１または複数のアプリケーションを実行するアプリケーション実行方法であって、上記各アプリケーションには、それぞれ個別の識別情報が対応付けられており、サーバ装置が、クライアント装置からのＨＴＴＰリクエストにより特定される識別情報に基づいて上記１または複数のアプリケーションの中から１または複数のアプリケーションを選択し、選択したアプリケーションを起動する工程と、上記サーバ装置が、起動した上記１または複数のアプリケーションのうちの少なくとも１つのアプリケーションを、当該アプリケーションの機能が制限された環境下で実行する工程とを含むことを特徴としている。
【００２２】
上記の方法によれば、サーバ装置に、クライアント装置からのＨＴＴＰリクエストに応じたアプリケーションを、当該アプリケーションの機能が制限された環境下で実行させることができる。これにより、サーバ装置に備えられるアプリケーションを、セキュリティ不安なく実行させることができる。
【００２３】
また、本発明のサーバ装置は、コンピュータによって実現されてもよく、この場合には、コンピュータを上記制御部として動作させることにより、上記サーバ装置をコンピュータにて実現させるプログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に含まれる。
【発明の効果】
【００２４】
以上のように、本発明のサーバ装置、アプリケーション実行システム、およびアプリケーション実行方法によれば、サーバ装置上で動作するアプリケーションの機能を制限することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施例にかかるアプリケーション実行システムの構成を示す説明図である。
【図２】本発明の他の実施例にかかるアプリケーション実行システムの構成を示す説明図である。
【図３】上記各アプリケーション実行システムにおいて実行されるデーモンプロセスの流れの一例を示すフローチャートである
【図４】本発明のさらに他の実施例にかかるアプリケーション実行システムの構成を示す説明図である。
【図５】本発明のさらに他の実施例にかかるアプリケーション実行システムの構成を示す説明図である。
【図６】上記各実施例にかかるサーバ装置として用いられるコンピュータ装置の構成例を示す説明図である。
【発明を実施するための形態】
【００２６】
コンピュータネットワーク環境において、第１コンピュータ装置はサーバ装置（例えば仮想ネットワークサーバ）として機能し、第２コンピュータ装置は上記サーバ装置へのアクセスおよび上記サーバ装置へのコマンドの送信が可能なクライアント装置（例えば仮想ネットワーククライアント）として機能する。例えば、上記第１コンピュータ装置および上記第２コンピュータ装置の少なくとも一方として、ネットワーク等を介して通信可能に接続されたコンピュータ装置からの情報を印刷あるいはＦＡＸする複合機（ＭＦＰ；multi-function peripheral）を用いてもよい。また、上記複合機は、原稿を読み取る機能（スキャン機能）、および読み取った原稿の電子データをコンピュータ装置に送信する機能を備えていてもよい。上記複合機は、プロセッサ（制御部）およびメモリ（記憶部）を有する一般的なコンピュータ装置と同様の機能を有する周辺装置としてコンピュータネットワークに配置されていてもよい。また、上記複合機は、当該複合機において１または複数のスクリプトを実行してもよい。また、複合機が、上記サーバ装置および上記クライアントとしての機能を当該複合機の一部として備えていてもよい。
【００２７】
図１は、本発明の一実施例にかかるコンピュータシステム（アプリケーション実行システム）１００の構成を示す説明図である。この図に示すように、コンピュータシステム１００は、クライアント装置（ＨＴＴＰ（hypertext transfer protocol）クライアントノード）１１０と、サーバ装置（サーバノード）１２０とを備えている。コンピュータシステム１００では、例えば、ＨＴＴＰリクエスト１１５およびＨＴＴＰレスポンス１４５がクライアント装置１１０とサーバ装置１２０のオペレーティングシステム（ＯＳ）１３０との間で通信される。サーバ装置１２０は、１または複数のアプリケーションをサーバ装置１２０上で動作するＯＳ１３０を介して実行する。アプリケーションセット１５０は、所定のルールセットに基づいて機能（例えばメモリやオペレーティングシステムサービスへのアクセス機能など）が制限されている。上記ルールセットは、アプリケーション毎に設定されてもよく、アプリケーションセット毎に設定されてもよく、サーバ装置毎に設定されてもよい。上記アプリケーションは、ルールセットが設定され、当該アプリケーションが利用可能な範囲および資源が制限された機能制限環境１４０で実行される。機能制限環境１４０の例としては、例えば、仮想環境やサンドボックス環境などが挙げられる。また、上記の制限される機能としては、例えば、書き込み、読み出し、処理サイクルの終了、繰り返しなどのコマンドを実行する機能などが挙げられる。アプリケーションセット１５０は、それぞれが固有の識別情報（例えばＵＲＬ（Uniform Resource Locator））に関連付けられた１または複数のアプリケーションを含んでいる。アプリケーションの機能を制限する上記ルールセットは、プログラムのコンパイル前に決定されていてもよく、アプリケーションによって動的にロードされてもよい。クライアント装置１１０は、１または複数のアプリケーションの初期設定を行うために、アプリケーションセット１５０に含まれる各アプリケーションに関連付けられたＵＲＬにＨＴＴＰリクエストを送信する。また、上記アプリケーションは、ＯＳ１３０によってサーバ装置１２０のバックグラウンドで実行される。
【００２８】
サーバ装置１２０においてデーモンプロセスとして実行されるアプリケーションは、特に限定されるものではないが、例えば、サーバ装置１２０が複合機である場合、複合機が実行するプリント枚数やスキャン枚数の管理を行うアプリケーション、あるいは、複合機の状態(紙切れ、紙詰まり等)の管理アプリケーション（管理プログラム）などであってもよい。具体的には、例えば、上記アプリケーションは、複合機の装置機能部からオペレーションシステム（ＯＳ）でプリント枚数、スキャン枚数、装置の状態を示す情報などを取得し、それらの情報を記録したり、クライアント装置からのリクエストに応じてそれらの情報を送信したりする。上記の情報を送信する場合、送信先は送信のリクエストを行ったクライアント装置であってもよく、当該クライアントからのリクエストを介して指定された別の装置であってもよい。また、プリント枚あるいはスキャン枚数が所定の枚数に到達したときに上記アプリケーションがその後のプリント処理やスキャン処理を制限するようにしてもよい。また、上記アプリケーションが、プリント枚数やスキャン枚数を複合機のユーザ毎に管理するようにしてもよい。
【００２９】
上記の制限される機能として、例えば、アプリケーションからアクセスできるファイルの領域を制限するようにしてもよい。具体的には、例えば、制限対象のアプリケーションに対応して準備されたフォルダに対してのみ当該アプリケーションからの書き込みおよびお読み出しを可能とし、他のアプリケーションに対応するフォルダやシステム領域のフォルダへのアクセスを禁止したり、書き込みを禁止（読み出しのみ可能）にしたりしてもよい。
【００３０】
また、アプリケーションからサーバ装置の外部へのアクセス機能を制限するようにしてもよい。例えば、アプリケーションから外部へのアクセスを全て禁止するようにしてもよく、外部からのリクエストに対するレスポンスのみ許可するようにしてもよい。また、アプリケーションからアクセス可能な外部リソースを制限するようにしてもよい。具体的には、例えば、ＨＴＴＰ経由でアクセスできる外部リソース(通信ネットワークを介して接続された各装置。例えば、サーバ装置、クライアント装置。)について、ＵＲＬのブラックリスト（アクセスを禁止する装置のリスト）、ホワイトリスト（アクセスを許可する装置のリスト）、ドメイン制限リスト（アクセスを禁止するドメイン、あるいはアクセスを許可するドメインのリスト）などを設け、これらのリストに基づいてアクセスを制限するようにしてもよい。このような制限を設けることで、例えば、マルウエアをサーバ装置にインストールしてサーバ装置に保存してあるデータ（例えばメールアドレスの一覧等）に不正アクセスし、データを外部に漏洩させるといった不正行為を防止できる。
【００３１】
また、上記ルールセットは、例えば、上記アプリケーションが複合機におけるプリント枚数・スキャン枚数の管理アプリケーションである場合、当該アプリケーションからアクセス可能なファイルを当該アプリケーション自身が作成したファイルが保存される特定フォルダ内のファイルのみとし、他のフォルダ内のファイルへのアクセスを禁止するものであってもよい。また、外部との通信を、予め設定されたクライアント装置からのリクエストに対するレスポンスについてのみ送信を許可するものであってもよい。
【００３２】
また、上記アプリケーションが複合機の装置状態の管理アプリケーションである場合、当該アプリケーションからアクセス可能なファイルを当該アプリケーション自身が作成したファイルが保存される特定フォルダ内のファイルのみとし、他のフォルダ内のファイルへのアクセスを禁止するものであってもよい。また、外部との通信については、予め設定された特定のＵＲＬ／ドメインについてのみ許可するようにしてもよい。これにより、複合機に装置エラー（例えば紙詰まり、トナー・インク切れ、用紙切れなど）が発生したときに上記の特定のＵＲＬ／ドメインに通知することができる。
【００３３】
また、ＨＴＴＰを用いた外部との通信を介して実行されるアプリケーションと、それ以外のアプリケーション（例えば、複合機の操作パネルを操作することで起動するアプリケーション、ＳＯＡＰ（Simple Object Access Protocol）を介してファイアウォール内のクライアント装置から起動するアプリケーションなど）とで異なる機能制限環境を適用してもよい。
【００３４】
例えば、前述の枚数管理のアプリケーションをＨＴＴＰ経由で起動するものと操作パネルから起動するものの２種類インストールしておき、ＨＴＴＰ経由で起動する方のアプリケーションについては、特定のＵＲＬとの通信のみを許可し、複合機内の他のファイル（アドレス帳など）へのアクセスを禁止する環境下で動作させる。一方、操作パネルから起動するアプリケーションについてはそのような制限は設けないか、あるいは緩い制限の環境で動作させる。
【００３５】
これにより、例えば、複合機のサービスマンが遠隔地から管理する場合には、機能制限された環境下で管理を行うことにより、情報のセキュリテイ性は高めることができる。また、サービスマンが複合機の設置箇所に赴いてメンテナンスを行う場合には、操作パネルから起動するので、機能制限を受けることなく管理を行うことができ、現地でのメンテナンス作業の作業効率を向上させることができる。例えば、サービスマンが複合機の操作パネルを操作するなどして送信先のＵＲＬを入力する作業を行うことにより、当該作業後にアプリケーションが一定時間間隔でプリント枚数を上記ＵＲＬに送信するようにすることもできる。
【００３６】
図２は、本発明の他の実施例にかかるクライアントサーバシステム（アプリケーション実行システム）２００の構成を示す説明図である。この図に示すように、クライアントサーバシステム２００は、クライアント装置（クライアントノード）２１０と、サーバ装置（サーバノード）２２０とを備えている。これら各ノードには、第２コンピュータノードを介した第１コンピュータノードへのアクセス（遠隔アクセス）を可能にするためのコンピュータコマンドが提供される。クライアント装置２１０は、ユーザインターフェースと、データ記憶部と、通信インターフェースと、遠隔アクセスクライアント装置の機能を実行するＯＳを有する制御部（例えばＣＰＵ（central processing unit、中央演算処理装置）とを備えている。サーバ装置２２０は、通信インターフェースと、データ記憶部と、サーバ装置としての機能を実行するＯＳを有する制御部（例えばＣＰＵ）とを備えている。
【００３７】
図２に示したクライアントサーバシステム２００は、ＨＴＴＰカプセル化処理を用いてクライアント装置２１０とサーバ装置２２０との間の双方向通信を確立する。例えば、クライアント装置２１０とサーバ装置２２０との間の通信を確立するためにＨＴＴＰリクエスト２１５およびＨＴＴＰレスポンス２４５が用いられる。サーバ装置２２０が、当該サーバ装置２２０上で動作するＯＳ２３０を介して１または複数のアプリケーションを実行してもよい。アプリケーションセット２５０は、アプリケーション毎、アプリケーションセット毎、あるいはサーバ装置毎に定義されたルールセットに応じて機能（例えばメモリやオペレーティングシステムサービスへのアクセス機能など）が制限される。また、上記アプリケーションセットは、上記ルールセットが付加され、当該アプリケーションが利用可能な範囲および資源が制限された機能制限環境２４０（例えば仮想環境あるいはサンドボックス環境）で実行される。また、上記アプリケーションセットは、それぞれが個別の識別情報（例えばＵＲＬ）を有する１または複数のアプリケーションを含んでいる。アプリケーションの機能を制限する上記ルールセットは、プログラムをコンパイルする前に決定されていてもよく、アプリケーションが動的にロードしてもよい。サーバ装置２２０のＯＳ２３０が各アプリケーションにＵＲＬを割り当て、クライアント装置２１０がアプリケーションに割り当てられたＵＲＬにＨＴＴＰリクエスト２１５を送信するようにしてもよい。また、１つのアプリケーションが終了したとき（例えば処理が正常に完了した場合、あるいはエラーが生じた場合など）に、当該アプリケーションがクライアント装置２１０にＨＴＴＰレスポンスを返信するようにしてもよい。また、クライアント装置２１０は、サーバ装置２２０の外部に備えられていてもよく、ネットワークファイアウォール２６０の外側に配置されていてもよい。クライアント装置２１０がネットワークファイアウォール２６０の外側に配置されている場合、ＨＴＴＰカプセル化技術を用いてクライアント装置２１０からサーバ装置２２０にアクセスするようにしてもよい。
【００３８】
図３は、コンピュータおよび／または演算回路を含むシステム（例えば上述したコンピュータシステム１００あるいはクライアントサーバシステム２００など）において実行されるサンドボックス化されたデーモンプロセス３００の流れを示すフローチャートである。この図に示す方法は、（ａ）それぞれにＵＲＬが関連付けられた１または複数のアプリケーションを、クライアント装置からサーバ装置へのＨＴＴＰリクエストに基づいて起動させる工程（ステップ３１０）と、上記１または複数のアプリケーションのうちの少なくとも１つのアプリケーションを、所定のルールセットに基づいて、サーバのオペレーティングシステムのバックグラウンドで、かつ当該アプリケーションの機能を制限する環境下で実行する工程（ステップ３２０）とを含む。
【００３９】
図４は、本発明の他の実施例にかかるシステム（アプリケーション実行システム）４００の構成を示す説明図である。この図に示すように、システム４００は、コンピュータ装置（クライアント装置）４１０、複合機（サーバ装置）４２０、および複合機（サーバ装置）４３０がネットワークリンク４１５，４２５，４３５および通信媒体４４０（例えばＬＡＮ（local area network）あるいはインターネットなど）を介して互いに通信可能に接続されている。なお、ネットワークリンク４１５，４２５，４３５は並列接続であってもよい。また、ネットワークリンク４１５，４２５，４３５としては、例えば、無線通信接続、ワイヤー接続、光ファイバ接続、あるいはこれらの組み合わせなどを用いることができる。複合機４２０，４３０は、当該各複合機で動作するＯＳを介して１または複数のアプリケーションを実行する（図２参照）。コンピュータ装置４１０は、各複合機の各アプリケーションに関連付けられたＵＲＬに基づいてこれら各複合機とＨＴＴＰコマンドを用いた通信を行うことにより、１または複数のアプリケーション（例えばデーモンアプリケーションなど）を起動して複合機４２０，４３０のＯＳのバックグラウンドで動作させる。
【００４０】
上記各複合機が、ウェブアプリケーション実行環境およびウェブブラウザクライアントの機能を有していてもよい。ウェブブラウザクライアントは、実装されているアプリケーションに対するユーザインターフェース（ＵＩ）として機能する。ウェブアプリケーション実行環境は、実装されたアプリケーションを実行するプラットフォームとして機能する。アプリケーションは、ウェブブラウザが特定のＵＲＬにＨＴＴＰリクエストを送信することによって起動されてもよい。各ＵＲＬは、複合機用に開発された特定のウェブアプリケーションに対応している。例えば、複合機に実装されたアプリケーションは、サーバ側スクリプト言語を用いて開発されたものであってもよい。上記サーバ側スクリプトは、アプリケーションの機能が制限された環境（例えばサンドボックス環境）においてウェブアプリケーション実行プラットフォーム上で実行されるものであってもよい。
【００４１】
各複合機は、アプリケーションあるいはスクリプト（例えばＥＪＳ（Embedded Java（登録商標） Script））を当該複合機で実行できるようにするための埋め込み型のウェブアプリケーションサーバを備えていてもよい。アプリケーションはＥＪＳを用いて開発されたものであってもよく、複合機４２０，４３０に直接インストールされ、実行されるものであってもよい。
【００４２】
図５は、本発明の他の実施例にかかるシステム（アプリケーション利用システム）５００の構成を示す説明図である。この図に示すように、システム５００は、複合機（ローカルサーバノード）５１０とクライアント装置５３０とを備えている。クライアント装置５３０とサーバ装置５１２とは、例えば有線あるいは無線ネットワークセグメントなどの手段を介して互いに通信可能に接続されている。クライアント装置５３０とサーバ装置５１２との間の通信には、各種プロトコルおよびマークアップ言語を用いることができる。例えば、ＴＣＰ／ＩＰ（transmission control protocol (TCP) over Internet Protocol (IP)）、ＨＴＭＬ（hypertext markup language）を用いたＨＴＴＰ（hypertext transfer protocol）、ＸＭＬ（extensible markup language）を用いたＳＯＡＰ（simple object access protocol）、およびクライアント装置５３０をサーバ装置５１２およびシステム５００内の他の装置に操作可能に接続するのに適した他の通信手段などを用いることができる。クライアント装置５３０は、ユーザがサーバ装置５１２との通信を開始させることを可能にするためのユーザインターフェース５４０を備えている。クライアント装置５３０は、ソケット接続を介してサーバ装置５１２との通信を行い、データ（例えばＨＴＴＰリクエスト５２０）をサーバ装置５１２に送信する。クライアント装置５３０が、ＨＴＴＰカプセル化技術を用いてサーバ装置５１２に接続されてもよい。クライアント装置５３０が外部ネットワークホスト上に存在しており、保護されたネットワーク資源上に存在するサーバ装置５１２と通信を行う構成としてもよい。また、クライアント装置５３０は、サーバ装置５１２がネットワークファイアウォール５５０によって保護されたネットワーク環境に備えられていてもよい。クライアント装置５３０は、所定のルールセットに応じて機能が制限されたアプリケーション５１１を実行する。また、クライアント装置５３０が、各アプリケーションに個別に関連付けられたＵＲＬにＨＴＴＰリクエスト５２０を送信するようにしてもよい。また、複合機５１０の電源オフ動作が開始された場合や、アプリケーションのアンインストールが行われた場合には、ＨＴＴＰレスポンス５２２は受け取られない。
【００４３】
バックグラウンドプロセス（例えばデーモンプロセス）は、例えばデーモンプロセスを広く利用するＵＮＩＸ（登録商標）オペレーティングシステムなど、種々のオペレーティングシステムで用いられている。バックグラウンドプロセスは、Ｗｉｎｄｏｗｓ（登録商標）オペレーティングシステム（システムサービス）でも用いられている。デーモンプロセスは、バックグラウンドで動作し、入力されてくる印刷要求（例えば、Ｌｉｎｕｘ（登録商標）オペレーティングシステムにおいてｌｐｒプロトコルを用いて操作されるラインプリンティングデーモンなど）を処理するものであってもよい。デーモンプロセスによって行われる処理としては、例えば、ｌｐｒコマンドの解析および処理、プリントデータの配列（キューリング）、正しいプリンタへのプリントデータの出力などが挙げられる。デーモンは、システムがシャットダウンされるか、あるいは終了指示が行われるまで動作し続けてもよい。デーモンプロセスは、ユーザとの対話を行わない構成であってもよく、ユーザインターフェースを有していなくてもよい。
【００４４】
ウェブアプリケーションプラットフォームで実行されるサンドボックス化されたデーモンプロセスを埋め込み型のシステムで実行してもよい。また、上記デーモンプロセスを標準的なＨＴＴＰリクエストによって起動してもよい。例えば、モニタリングサービスを提供するために、サンドボックス化されたデーモンプロセスをウェブベースのアプリケーションプラットフォーム上で用いてもよい。デーモンプロセスは、埋め込み型のシステムでスクリプトエンジンを介して実行されるサーバ側スクリプトにおいて実行されてもよい。デーモンプロセスは、装置のファームウェアの更新を必要としないオンデマンドで配備してもよい。デーモンプロセスは、処理対象画像データに予めコンパイルされたバイナリーデータとの接続や装置のファームウェアの再プログラミングを行うことなく新たに作成されるものであってもよい。フラットメモリモデルを有するオペレーティングシステムにおいて、デーモンプロセスは、システムＡＰＩ（アプリケーションインターフェース）を読み出したり、非常用メモリ領域に書き込みを行ったり、システムを破壊したりしてしまう場合がある。ウェブベースのアプリケーション実行環境で、デーモンプロセスを、当該デーモンプロセスに許可されたアクセス方法のみを用いることができるサンドボックス内で動作させてもよい。サンドボックス環境は、対象となる埋め込み型のシステムのセキュリティ性をより高めることができる。ウェブアプリケーション実行プラットフォームによって提供されるサンドボックス環境により、不適切なデーモンに対してシステムが危険にさらされることを防止できる。
【００４５】
アプリケーションが、ウェブページ（例えば、標準的なウェブアプリケーション）上で標準的な入力制御方法を用いてユーザと対話できるようにしてもよく、特定の機能を実行できるようにしてもよく、標準的なウェブページを介して実行結果を返信できるようにしてもよい。また、アプリケーション（例えばＵＮＩＸ（登録商標）デーモン）が、バックグラウンドで実行され、実行結果を即座に返す必要がない構成としてもよく、実行結果を全く返さない構成としてもよい。
【００４６】
バックグラウンドで実行される各アプリケーションは、非同期で実行されてもよく、１または複数の機能を長期間にわたって実行してもよく、全てのタスクが完了したときに終了するようにしてもよい。一例として、ファイアウォールの外部からネットワーク環境内に存在する複合機の監視および管理（例えばプリント枚数やスキャン枚数の監視など）を行うためのデーモンアプリケーションを作成してもよい。この場合、当該アプリケーションは、バックグラウンドで動作し、指定された外部のコンピュータ装置と周期的に通信を行う。
【００４７】
ＨＴＴＰリクエストを用いてバックグラウンドプロセスを起動する場合、遠隔クラウドアプリケーションがデーモンプロセス（例えばプリント処理あるいはスキャン処理の監視のためのデーモンプロセスなど）を開始させるようにしてもよい。デーモンプロセスは、ジョブの正常な完了や端末エラーを監視するために十分な期間、実行されている必要がある。また、クラウドアプリケーションがアプリケーションのインストールを監視するためのデーモンプロセスを開始させるようにしてもよい。上記デーモンプロセスは、アプリケーションのインストールが完了するか、あるいは回復不可能なエラーによりインストールが異常終了するまで実行される。また、クリック回数を集計する埋め込み型のアプリケーションがデーモンプロセスを開始するようにしてもよい。アプリケーションがインストールされた後、所定の条件を満たした場合に当該アプリケーションがバックグラウンドで起動される構成としてもよい。例えば、特定のアプリケーションに対応するＵＲＬにＨＴＴＰリクエストメッセージが送信されることにより、上記アプリケーションが起動される構成としてもよい。その後、上記のクリック回数を集計するデーモンプロセスを、複合機の電源が切られるか、アプリケーションがアンインストールされるか、あるいはアプリケーションの終了指示が行われるまで実行するようにしてもよい。
【００４８】
ウェブアプリケーション実行環境が、サンドボックス環境内でサーバ側スクリプトの実行を開始させるためのＨＴＴＰリクエストをサーバ装置に要求するようにしてもよい。サーバ側スクリプトは、ＨＴＴＰクエリ  ストリングスを介して、あるいはＰＯＳＴパラメータから入力パラメータを取得する。システムの電源投入時に開始させる必要がある、長期間実行されるデーモンプロセスを、一般的なＴＣＰ（transmission control protocol）クライアント装置を用いて開始させるようにしてもよい。実行期間が比較的短いデーモンプロセスを、関連付けられたＵＲＬにＨＴＴＰリクエストを必要に応じて送信することによりオンデマンドで開始させるようにしてもよい。ウェブベースのアプリケーションプラットフォームについて、関連付けられたＵＲＬにＨＴＴＰリクエストを送信することにより実行可能な構成要素を開始させるようにしてもよい。このようなＨＴＴＰによる起動は、コマンドラインを介してアプリケーションを起動させるシェルコマンドプロセッサに似ている。アプリケーションの引数を、コマンドラインの引数と同様、クエリ  ストリングスあるいはＰＯＳＴ要素を介して入力するようにしてもよい。
【００４９】
上記アプリケーションを、コマンドを受信して処理させるためにバックグラウンドで動作させ続けてもよい。また、他の実施例として、上記アプリケーションが、クライアント装置から提供される開始ＩＰアドレスおよび終了ＩＰアドレスに対応する装置を発見する処理を行うようにしてもよい。また、アプリケーションが、ネットワーク内の複合機の存在を探索するために、特定のＩＰアドレスの範囲をスキャンするようにしてもよい。上記の発見アプリケーションは、ＩＰアドレスの全範囲のスキャンが完了するまで、あるいは探索がキャンセルされるまでバックグラウンドで動作する。
【００５０】
図６は、上述した各サーバ装置として用いられるサーバコンピュータ装置６００の機能ブロック図である。この図に示すように、サーバコンピュータ装置６００の典型的な処理環境はコンピュータ装置６２０として示されている。コンピュータ装置６２０は、例えばＣＰＵ等からなる制御部（プロセッサ）６２４と、アドレス指定可能な記憶部（メモリ）６２７と、外部装置インターフェース６２６（例えばユニバーサルシリアルバスポートおよびそれに関連する処理部、および／またはイーサネット（登録商標）ポートおよびそれに関連する処理部）と、ユーザインターフェース６２９（例えば、ステータスライトアレイ、１または複数のトグルスイッチ、表示部、キーボード、マウスポインター、タッチスクリーン、あるいはこれらの組み合わせなど）とを備えている。記憶部６２７としては、例えば、フラッシュメモリ、ＥＰＲＯＭ（登録商標）、ディスクドライブ、他のハードドライブ、あるいはこれらの組み合わせなどを用いることができる。これら各部材が、データバス６２８を介して互いに通信可能に接続されている。制御部６２４は、ウェブブラウザ６２３およびアプリケーション６２２の機能を有するオペレーティングスステム６２５を介して、上述した典型的な実施例に対応するサンドボックス化されたデーモンプロセスの処理を実行する。
【００５１】
最後に、上述した各サーバ装置の制御部は、集積回路（ＩＣチップ）上に形成された論理回路によってハードウェア的に実現してもよいし、ＣＰＵ（Central Processing Unit）やＭＰＵ（microprocessing unit）などを用いてソフトウェア的に実現してもよい。
【００５２】
後者の場合、サーバ装置は、各機能を実現するプログラムの命令を実行するＣＰＵ、上記プログラムを格納したＲＯＭ（Read Only Memory）、上記プログラムを展開するＲＡＭ（Random Access Memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるサーバ装置の制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、上記サーバ装置に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【００５３】
上記記録媒体としては、一時的でない有形の媒体（non-transitory tangible medium）、例えば、磁気テープやカセットテープ等のテープ類、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク類、ＩＣカード（メモリカードを含む）／光カード等のカード類、マスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ（登録商標）／フラッシュＲＯＭ等の半導体メモリ類、あるいはＰＬＤ（Programmable logic device）やＦＰＧＡ（Field Programmable Gate Array）等の論理回路類などを用いることができる。
【００５４】
また、サーバ装置を通信ネットワークと接続可能に構成し、上記プログラムコードを、通信ネットワークを介して供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（Virtual Private Network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ（Asymmetric Digital Subscriber Line）回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＩＥＥＥ８０２．１１無線、ＨＤＲ（High Data Rate）、ＮＦＣ（Near Field Communication）、ＤＬＮＡ（Digital Living Network Alliance）、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【００５５】
本発明は上述した各実施例に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施例にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【００５６】
本発明は、クライアント装置からのＨＴＴＰリクエストに応じてアプリケーションを実行するサーバ装置、上記サーバ装置と上記クライアント装置とを備えたアプリケーション実行システム、および上記サーバ装置と上記クライアント装置とを用いるアプリケーション実行方法に適用できる。
【符号の説明】
【００５７】
１００  コンピュータシステム（アプリケーション実行システム）
１１０  クライアント装置
１２０  サーバ装置
１３０  オペレーティングシステム（ＯＳ）
１４０  機能制限環境
１５０  アプリケーションセット
２００  クライアントサーバシステム（アプリケーション実行システム）
２１０  クライアント装置
２２０  サーバ装置
２４０  機能制限環境
２５０  アプリケーションセット
２６０  ネットワークファイアウォール
４００  システム（アプリケーション実行システム）
４１０  コンピュータ装置（クライアント装置）
４２０，４３０  複合機（サーバ装置）
５００  システム（アプリケーション実行システム）
５１０  複合機（サーバ装置）
５１１  アプリケーション
５１２  サーバ装置
５３０  クライアント装置
５４０  ユーザインターフェース
５５０  ネットワークファイアウォール
６２０  コンピュータ装置（サーバ装置）
６２２  アプリケーション
６２３  ウェブブラウザ
６２４  制御部
６２５  オペレーティングスステム
６２７  記憶部
【図１】
0005475064.tif 000002
【図２】
0005475064.tif 000003
【図３】
0005475064.tif 000004
【図４】
0005475064.tif 000005
【図５】
0005475064.tif 000006
【図６】
0005475064.tif 000007