(57)【要約】【課題】ファイアウォール等で保護された内部ネットワーク上のデバイスを外部ネットワーク上のサービスを用いて制御させることを可能とする。【解決手段】制御装置と、制御装置に対して、予め定められた、制限された通信が可能な通信手段を介して接続される情報処理装置と、情報処理装置に接続される制御対象装置と、を含む。情報処理装置は、利用者より指示された要求を制御装置に送信し、制御装置から処理結果を受け入れて、当該受け入れた処理結果に、制御対象装置との間で通信をするべき旨の指示が含まれるか否かを調べ、当該指示が含まれていれば、制御対象装置との間で通信を行う。【選択図】図１
2012064091.tif 000002
【特許請求の範囲】
【請求項１】
制御装置と、
前記制御装置に対して、予め定められた、制限された通信が可能な通信手段を介して接続される情報処理装置と、
前記情報処理装置に接続される、制御対象装置と、
を含み、
前記制御装置は、前記情報処理装置より要求を受け入れて、当該要求に関して予め定められた処理を実行して当該処理結果を要求元である情報処理装置に送信する手段と、
前記情報処理装置より、制御対象装置からの応答を受け入れて、当該応答に関して予め定められた処理を実行して当該処理結果を、当該応答の受け入れ元である情報処理装置に送信する手段と、を含み、
前記情報処理装置は、利用者より指示された要求を前記制御装置に送信し、当該制御装置から処理結果を受け入れる手段と、
前記受け入れた処理結果に、前記制御対象装置との間で通信をするべき旨の指示が含まれるか否かを調べ、当該指示が含まれていれば、制御対象装置との間で通信を行う手段と、
前記制御対象装置から応答を受け入れる手段と、
当該受け入れた応答を、前記制御装置に対して送信し、当該制御装置から処理結果を受け入れる手段と、を含む
情報処理システム。
【請求項２】
制御対象装置との間で通信を行う手段と、
受け入れた要求に関して予め定められた処理を実行して当該処理結果を要求元に送信するとともに、制御対象装置からの応答を含む情報を受け入れて、当該応答に関して予め定められた処理を実行して当該処理結果を、当該応答を含む情報の受け入れ元へ送信する制御装置との間で、予め定められた、制限された通信が可能な通信手段を介して通信を行う手段と、
利用者より指示された要求を前記制御装置に送信し、当該制御装置から処理結果を受け入れる手段と、
前記受け入れた処理結果に、前記制御対象装置との間で通信をするべき旨の指示が含まれるか否かを調べ、当該指示が含まれていれば、制御対象装置との間で通信を行う手段と、
前記制御対象装置から応答を受け入れる手段と、
当該受け入れた応答を、前記制御装置に対して送信し、当該制御装置から処理結果を受け入れる手段と、を含む情報処理装置。
【請求項３】
前記制御対象装置は、画像形成装置であり、
前記指示は、画像形成の指示であることを特徴とする請求項２記載の情報処理装置。
【請求項４】
制御対象装置に接続され、
受け入れた要求に関して予め定められた処理を実行して当該処理結果を要求元に送信するとともに、制御対象装置からの応答を含む情報を受け入れて、当該応答に関して予め定められた処理を実行して当該処理結果を、当該応答を含む情報の受け入れ元へ送信する制御装置に、予め定められた、制限された通信が可能な通信手段を介して接続されたコンピュータを、
利用者より指示された要求を前記制御装置に送信し、当該制御装置から処理結果を受け入れる手段と、
前記受け入れた処理結果に、前記制御対象装置との間で通信をするべき旨の指示が含まれるか否かを調べ、当該指示が含まれていれば、制御対象装置との間で通信を行う手段と、
前記制御対象装置から応答を受け入れる手段と、
当該受け入れた応答を、前記制御装置に対して送信し、当該制御装置から処理結果を受け入れる手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
所定のネットワーク印刷プロトコルに従って処理を行う情報処理装置において、外部情報処理装置に対して印刷処理に関する操作命令を電子メールで送信する電子メール送信部と、前記外部情報処理装置における前記操作命令実行の完了通知を含む電子メールを受信する電子メール受信部と、を有する情報処理装置が特許文献１に開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−０９４５３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ファイアウォール等で保護された内部ネットワーク上のデバイスを外部ネットワーク上のサービスを用いて制御させることを可能とする。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は情報処理システムであって、制御装置と、前記制御装置に対して、予め定められた、制限された通信が可能な通信手段を介して接続される情報処理装置と、前記情報処理装置に接続される、制御対象装置と、を含み、前記制御装置は、前記情報処理装置より要求を受け入れて、当該要求に関して予め定められた処理を実行して当該処理結果を要求元である情報処理装置に送信する手段と、前記情報処理装置より、制御対象装置からの応答を受け入れて、当該応答に関して予め定められた処理を実行して当該処理結果を、当該応答の受け入れ元である情報処理装置に送信する手段と、を含み、前記情報処理装置は、利用者より指示された要求を前記制御装置に送信し、当該制御装置から処理結果を受け入れる手段と、前記受け入れた処理結果に、前記制御対象装置との間で通信をするべき旨の指示が含まれるか否かを調べ、当該指示が含まれていれば、制御対象装置との間で通信を行う手段と、前記制御対象装置から応答を受け入れる手段と、当該受け入れた応答を、前記制御装置に対して送信し、当該制御装置から処理結果を受け入れる手段と、を含むこととしたものである。
【０００６】
請求項２記載の発明は情報処理装置であって、制御対象装置と通信を行う手段と、受け入れた要求に関して予め定められた処理を実行して当該処理結果を要求元に送信するとともに、制御対象装置からの応答を含む情報を受け入れて、当該応答に関して予め定められた処理を実行して当該処理結果を、当該応答を含む情報の受け入れ元へ送信する制御装置との間で、予め定められた、制限された通信が可能な通信手段を介して通信を行う手段と、利用者より指示された要求を前記制御装置に送信し、当該制御装置から処理結果を受け入れる手段と、前記受け入れた処理結果に、前記制御対象装置との間で通信をするべき旨の指示が含まれるか否かを調べ、当該指示が含まれていれば、制御対象装置との間で通信を行う手段と、前記制御対象装置から応答を受け入れる手段と、当該受け入れた応答を、前記制御装置に対して送信し、当該制御装置から処理結果を受け入れる手段と、を含むこととしたものである。
また請求項３記載の発明は、請求項２記載の情報処理装置であって、前記制御対象装置は、画像形成装置であり、前記指示は、画像形成の指示であることとしたものである。
【０００７】
請求項４記載の発明は、プログラムであって、制御対象装置に接続されるとともに、受け入れた要求に関して予め定められた処理を実行して当該処理結果を要求元に送信するとともに、制御対象装置からの応答を含む情報を受け入れて、当該応答に関して予め定められた処理を実行して当該処理結果を、当該応答を含む情報の受け入れ元へ送信する制御装置に予め定められた、制限された通信が可能な通信手段を介して接続されたコンピュータを、利用者より指示された要求を前記制御装置に送信し、当該制御装置から処理結果を受け入れる手段と、前記受け入れた処理結果に、前記制御対象装置との間で通信をするべき旨の指示が含まれるか否かを調べ、当該指示が含まれていれば、制御対象装置との間で通信を行う手段と、前記制御対象装置から応答を受け入れる手段と、当該受け入れた応答を、前記制御装置に対して送信し、当該制御装置から処理結果を受け入れる手段と、として機能させることとしたものである。
【発明の効果】
【０００８】
請求項１，２，４のそれぞれに記載の発明によると、ファイアウォール等で保護された内部ネットワーク上のデバイスであっても、外部ネットワーク上のサービスから、内部ネットワークにある情報処理装置にデバイスとの通信を行わせることにより、外部ネットワーク上のサービスから内部ネットワークにあるデバイスに対し処理を実行させることを可能としている。
また請求項３記載の発明によると、ファイアウォール等で保護された内部ネットワーク上の画像形成装置であっても、外部ネットワーク上のサービスから、内部ネットワークにある情報処理装置に画像形成装置との通信を行わせることにより、外部ネットワーク上のサービスから内部ネットワークにある画像形成装置に対して画像形成の処理を実行させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係る情報処理システムの例を表す構成ブロック図である。
【図２】本発明の実施の形態に係る情報処理装置の例を表す構成ブロック図である。
【図３】本発明の実施の形態に係る情報処理装置の動作例を表すフローチャート図である。
【図４】本発明の実施の形態に係る情報処理装置の別の動作例を表すフローチャート図である。
【図５】本発明の実施の形態に係る情報処理システムのサーバ装置が保持する情報の例を表す説明図である。
【図６】本発明の実施の形態に係る情報処理装置が提供するインタフェース例を表す説明図である。
【図７】本発明の実施の形態に係る情報処理装置が提供する別のインタフェースの例を表す説明図である。
【発明を実施するための形態】
【００１０】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理システムは、図１に例示するように内部通信手段としての内部ネットワーク１０と、インターネット等の外部通信手段としての外部ネットワーク２０とを含んだ環境において利用される。内部ネットワーク１０と外部ネットワーク２０との間には、ファイアウォール（ＦＷ）等のネットワーク保護手段が設けられ、相互に予め定められた、制限された通信のみが可能となっている。
【００１１】
このファイアウォールは、予め定められた制限された通信のみを可能とする。ここでは具体的に、外部ネットワーク２０上のサーバ装置２１から内部ネットワーク１０上にあるデバイス１３に対して、画像形成の指示を送信することができないように、かかる指示を内部ネットワーク１０に中継しない。またこのファイアウォールは、内部ネットワーク１０上にある情報処理装置１１からサーバ装置２１への情報の要求と、当該要求に対するサーバ装置２１から情報処理装置１１への情報送信は許可する。このように、予め定めた制限された通信のみを可能とするファイアウォールの設定は、一般的なものであるので、詳しい説明を省略する。
【００１２】
本実施の形態の情報処理システムは、内部ネットワーク１０に接続された情報処理装置１１と、ユーザ側装置１２と、デバイス１３と、外部ネットワーク２０に接続されたサーバ装置２１とを含んで構成される。
【００１３】
ここに情報処理装置１１は、図２に示すように、制御部３１と、記憶部３２と、通信部３３とを含む。制御部３１は、ＣＰＵ（Central Processing Unit）等のプログラム制御デバイスであり、記憶部３２に格納されたプログラムに従って動作する。本実施の形態では、この制御部３１は、フロントエンドモジュール４１と、エージェントモジュール４２とを含む処理を行っている。この制御部３１のフロントエンドモジュール４１は、ユーザ側装置１２からの要求を受け入れ、この要求を、外部ネットワーク２０を介して接続されたサーバ装置２１に送信して、予め定めた処理を実行させる。また制御部３１のフロントエンドモジュール４１は、サーバ装置２１が送信する処理結果を受け入れる。フロントエンドモジュール４１は、この処理結果にデバイス１３への要求が含まれるならば、当該要求をエージェントモジュール４２に出力する。
【００１４】
制御部３１のエージェントモジュール４２は、デバイス１３に対して要求を送信し、デバイス１３からの応答を受け入れる。そしてこの応答をフロントエンドモジュール４１に出力する。フロントエンドモジュール４１は、当該応答を、外部ネットワーク２０を介して接続されたサーバ装置２１に送信する。サーバ装置２１が当該応答に関する処理を行い、その結果を送信すると、制御部３１のフロントエンドモジュール４１が当該応答に関する処理の結果を受け入れ、当該受け入れた処理結果に基づき、ユーザ側装置１２に対して出力する情報を生成する。この制御部３１の具体的な処理の内容については後に述べる。
【００１５】
記憶部３２は、制御部３１によって実行されるプログラムを保持する。このプログラムは例えばＤＶＤ−ＲＯＭ（Digital Versatile Disc Read Only Memory）等のコンピュータ可読な記録媒体に格納されて提供され、この記憶部３２に複写される。また、この記憶部３２は、制御部３１のワークメモリとしても動作する。
【００１６】
通信部３３は、ネットワーク等の通信手段に接続される。本実施の形態の通信手段は、内部ネットワーク１０と、外部ネットワーク２０とにそれぞれ接続され、内部ネットワーク１０を介して、内部ネットワーク１０に接続されているデバイス１３等との間で情報を授受し、また、外部ネットワーク２０を介してサーバ装置２１との間で情報の授受を行う。
【００１７】
ユーザ側装置１２は、ウェブブラウザが動作するパーソナルコンピュータ等であり、利用者の指示に従い、情報処理装置１１に対して要求を送信し、また情報処理装置１１が送信する情報を受け入れて、当該情報をディスプレイ等に表示出力する。情報処理装置１１とユーザ側装置１２は、同一装置として構成するようにしても良い。この場合、情報処理装置１１のフロントエンドモジュール４１やエージェントモジュール４２との間で要求を送信しまた送信される情報を受け入れて表示や入力を行うことができるアプリケーションソフトウェアを情報処理装置１１に設けるように構成してもよい。デバイス１３は、プリンタ等の制御対象装置であり、情報処理装置１１から入力される要求を受け入れて当該要求に応じた処理を行い、また、その要求に対する応答を出力する。
【００１８】
サーバ装置２１は、本実施の形態において制御装置として機能する。具体的にこのサーバ装置２１は、ファイアウォール等で保護されたデバイス１３の制御を外部ネットワーク２０から行うものであり、本実施の形態では情報処理装置１１が、かかる処理を可能としている。
【００１９】
具体的にこのサーバ装置２１は、ユーザ装置１２から情報処理装置１１が受け入れた要求を受信すると、固有のセッション識別子（通信識別子）を発行し、当該要求に関連して予め定められた処理を実行する。この処理は、デバイス１３の一覧を生成すべき旨の要求、デバイス１３に対して画像を形成させるべき旨の要求…など、要求の種類ごとに予め定められており、サーバ装置２１において当該処理を規定するプログラムがサーバ装置２１に保持されている。
【００２０】
一例として、デバイス１３の一覧を生成すべき旨の要求を受けた場合、サーバ装置２１は、当該要求に関連づけて記憶されているプログラム（一覧生成プログラム）を読み出して処理を開始する。サーバ装置２１においては、実行中の処理が、それぞれに固有の処理識別情報によって識別される。サーバ装置２１は、先に発行したセッション識別子と、当該セッション識別子に係る要求に応じて開始した処理を識別する処理識別子とを関連づけて記憶する。
【００２１】
サーバ装置２１は、一覧生成プログラムに従い、要求元の情報処理装置１１を特定する情報（例えば情報処理装置１１のネットワークアドレスなどでよい）に関連づけて予めサーバ装置２１側で保持しているデバイス１３を特定する情報の一覧を含んだ情報をＨＴＭＬ（Hyper Text Markup Language）を用いて記述する。
【００２２】
またこのサーバ装置２１は、このＨＴＭＬで記述した情報に対して、一覧に含まれるデバイス１３に対してそれぞれの状態を取得させるスクリプト（状態取得スクリプト）をjavascript等の言語を用いて記述し、このスクリプトが、当該ＨＴＭＬで記述した情報が読み込まれるタイミングで実行されるように設定する。例えばjavascriptを用いる場合、この設定は状態取得スクリプトにonload属性を付しておけばよい。
【００２３】
すなわちサーバ装置２１は、要求に対する応答を、ＨＴＭＬで記述した情報として、発行したセッション識別子とともに返信する。この際、デバイス１３側に対して行うべき処理があれば、当該処理の内容をjavascript等のスクリプト言語で記述し、onload属性を設定するなど、当該ＨＴＭＬで記述した情報の読み込みのタイミングで実行されるように設定しておく。
【００２４】
また、このサーバ装置２１は、同じセッションとして（同じセッション識別子を用いた通信で）、デバイス１３からの応答を含んだ情報を、情報処理装置１１から取得すると、当該情報に係るセッション識別子を参照し、当該セッション識別子に関連づけて記憶している処理識別子で識別される処理を再開する。
【００２５】
ここではサーバ装置２１は、デバイス１３からの応答を利用した処理を行う。具体的にはデバイス１３の状態を表す情報と、デバイス１３のネットワークアドレスとを対応づけたテーブルを含むＨＴＭＬ文書を生成して、情報処理装置１１へ送信する。
【００２６】
なお、サーバ装置２１は、セッション識別子ごとに、当該セッション識別子に関連する情報を最後に受信した時刻を保持しておき、当該時刻からの経過時間が予め定めたしきい値を超えるセッション識別子については、当該セッション識別子に関連づけて記憶している処理識別子を参照し、当該処理識別子で識別される処理を中断するなど、セッションを中断する処理（いわゆるセッション・タイムアウト）を行う。
【００２７】
次に、本実施の形態に係る情報処理装置１１の制御部３１の処理の内容について説明する。既に述べたように、制御部３１は、フロントエンドモジュール４１と、エージェントモジュール４２とを含んで構成される。これらフロントエンドモジュール４１とエージェントモジュール４２とは一つのプロセスとして処理されてもよいし、別のプロセスとして実行され、相互にプロセス間通信を行うものであってもよい。
【００２８】
一つのプロセスとして処理される場合とは、例えばフロントエンドモジュール４１がウェブページにアクセスするブラウザ機能を有するモジュールであり、エージェントモジュール４２が当該ブラウザ機能に対する、いわゆるプラグインモジュールである例などがある。この例では、フロントエンドモジュール４１は、図３に例示するように、ユーザ側装置１２から受信した要求をサーバ装置２１に送出する（Ｓ１）。そして、セッション識別子とＨＴＭＬ文書とを受信する（Ｓ２）。フロントエンドモジュール４１は、このＨＴＭＬ文書をエージェントモジュール４２に出力する（Ｓ３）。
【００２９】
エージェントモジュール４２では、フロントエンドモジュール４１が出力するＨＴＭＬ文書に、読み込み時に実行するべき処理（デバイス１３と通信をするべき指示）があるか否かを調べる（Ｓ４）。ここで通信をするべき指示があれば（Yesならば）、エージェントモジュール４２は、当該指示に従ってデバイス１３との間で通信を行い、デバイス１３からの応答を受信する（Ｓ５）。なお、この指示に、複数のデバイス１３との通信を行うべき指示が含まれていれば、エージェントモジュール４２は、当該指示に従って複数のデバイス１３の各々との間で通信を行い、それぞれのデバイス１３から応答を受信する。
【００３０】
エージェントモジュール４２は、ここでデバイス１３から得た応答を、フロントエンドモジュール４１に出力し（Ｓ６）、フロントエンドモジュール４１は、この応答をサーバ装置２１に送信する（Ｓ７）。フロントエンドモジュール４１は、このとき送信する情報に、先にサーバ装置２１から受信したセッション識別子を含める。
【００３１】
そしてフロントエンドモジュール４１は、サーバ装置２１からの情報を受信し（Ｓ８）。この情報に基づく情報提示をユーザ側装置１２に対して行う（Ｓ９）。具体的に、サーバ装置２１からはＨＴＭＬで記述された情報を受信し、当該情報を、当初ユーザ装置１２から受信した要求に対する応答として、ユーザ側装置１２に送信すればよい。
【００３２】
また、処理Ｓ４において、通信をするべき指示がなければ（Noならば；Ａ）、エージェントモジュール４１は、当該サーバ装置２１から受信したＨＴＭＬ文書を、そのままユーザ装置１２に対して送信するようフロントエンドモジュール４１に指示する（Ｓ１０）。この場合も、フロントエンドモジュール４１は、処理Ｓ９におけると同様に、当該サーバ装置２１から受信したＨＴＭＬ文書を、当初ユーザ装置１２から受信した要求に対する応答として、ユーザ側装置１２に送信すればよい。
【００３３】
次に、フロントエンドモジュール４１とエージェントモジュール４２とを別々のプロセスとして実行する場合の処理について述べる。この例では、図４に例示するように、フロントエンドモジュール４１は、エージェントモジュール４２に対してユーザ側装置１２から受信した要求をサーバ装置２１に送出するよう指示する（Ｓ１′）。そして、エージェントモジュール４２が要求をサーバ装置２１に送信し、セッション識別子とＨＴＭＬ文書とをサーバ装置２１から受信する（Ｓ２′）。
【００３４】
エージェントモジュール４２では、サーバ装置２１から受信したＨＴＭＬ文書に、読み込み時に実行するべき処理（デバイス１３と通信をするべき指示）があるか否かを調べる（Ｓ４′）。ここで通信をするべき指示があれば（Yesならば）、エージェントモジュール４２は、当該指示に従ってデバイス１３との間で通信を行い、デバイス１３からの応答を受信する（Ｓ５）。なお、この指示に、複数のデバイス１３との通信を行うべき指示が含まれていれば、エージェントモジュール４２は、当該指示に従って複数のデバイス１３の各々との間で通信を行い、それぞれのデバイス１３から応答を受信する。
【００３５】
エージェントモジュール４２は、ここでデバイス１３から得た応答をサーバ装置２１に送信する（Ｓ７′）。エージェントモジュール４２は、このとき送信する情報に、先にサーバ装置２１から受信したセッション識別子を含める。
【００３６】
そしてエージェントモジュール４２は、サーバ装置２１からの情報を受信し（Ｓ８-1′）。この情報を、フロントエンドモジュール４１に出力する（Ｓ８-2′）。そしてフロントエンドモジュール４１が、当該エージェントモジュール４２から入力される情報に基づく情報提示をユーザ側装置１２に対して行う（Ｓ９′）。この処理Ｓ９′の内容は、図３に示した処理Ｓ９と同様のものである。
【００３７】
また、処理Ｓ４′において、通信をするべき指示がなければ（Noならば；Ｂ）、エージェントモジュール４２は、当該サーバ装置２１から受信したＨＴＭＬ文書を、フロントエンドモジュール４１を介してそのままユーザ装置１２に対して送信する（Ｓ１０′）。この処理も図３の処理Ｓ１０におけると同様の処理とすることができる。
【００３８】
本実施の形態は以上のような構成を備えてなり、以下具体的に、（ａ）デバイス１３としてのプリンタの一覧を提供する処理、（ｂ）デバイス１３としてのプリンタに画像を形成させる処理、そして（ｃ）デバイス１３の設定を変更する処理をそれぞれサーバ装置２１を制御装置として機能させて行う例について述べる。なお、ここではデバイス１３としてプリンタを例としているが、画像形成を行う機能を備えた装置（画像形成装置）であれば、スキャナ等他の機能を併せ持つ複合機等であってもよい。
【００３９】
なお、以下の例ではサーバ装置２１が組織ごとに、組織で利用されているプリンタを管理する機能を提供するものとする。これは例えば、プリンタメーカーなどが組織に納入したプリンタを遠隔から一括管理する場合を想定したものである。この例では図５に例示するように、サーバ装置２１には予め組織ごと（ここでは情報処理装置１１を特定する情報に関連づけて）、プリンタの一覧情報が保持されているものとする。ここでプリンタの一覧情報とは、機器名、ネットワークアドレス（内部ネットワーク１０上のアドレス）、機種名を含む情報であるとする。また、情報処理装置１１を特定する情報は、例えば情報処理装置１１のネットワークアドレス（外部ネットワーク２０上のアドレス）でよい。
【００４０】
（ａ）プリンタ一覧を提供する処理
ユーザ側装置１２の利用者は、プリンタ一覧の要求を、情報処理装置１１に対して送信する。この要求は、例えば情報処理装置１１内のプリンタ一覧生成のプログラムを指すＵＲＬ（Uniform Resource Locator）とする。情報処理装置１１は、当該プリンタ一覧の要求を受け入れると、当該要求をサーバ装置２１に送出する。
【００４１】
サーバ装置２１は、固有のセッション識別子を発行する。そしてサーバ装置２１は、当該要求に関連づけて記憶されているプログラム（一覧生成プログラム）を読み出して処理を開始する。サーバ装置２１は、先に発行したセッション識別子と、ここで開始した処理を識別する処理識別子とを関連づけて記憶する。
【００４２】
サーバ装置２１は、一覧生成プログラムに従い、要求元の情報処理装置１１を特定する情報に関連づけて予めサーバ装置２１側で保持しているプリンタの一覧情報をＨＴＭＬ（Hyper Text Markup Language）を用いて記述し、このＨＴＭＬで記述した情報（ＨＴＭＬ文書）に対して、一覧に含まれるプリンタに対してそれぞれの状態を取得させるスクリプト（状態取得スクリプト）をjavascript等の言語を用いて記述したものを含め、このスクリプトが、当該ＨＴＭＬで記述した情報が読み込まれるタイミングで実行されるように設定して、要求元の情報処理装置１１に対して応答する。具体的にここでは、状態取得スクリプトにonload属性を付しておく。
【００４３】
情報処理装置１１は、セッション識別子とＨＴＭＬ文書とを受信し、このＨＴＭＬ文書に、読み込み時に実行するべき処理（プリンタと通信をするべき指示）があるか否かを調べる。ここでは、onload属性が付された処理（デバイス１３と通信をするべき旨の指示を含んだスクリプト）が存在するので、情報処理装置１１は、当該指示に従い、一覧に含まれる各プリンタとの間で通信を行い、各プリンタからの応答を受信する。
【００４４】
情報処理装置１１は、ここでプリンタから得た応答をサーバ装置２１に送信する。このとき送信する情報に、先にサーバ装置２１から受信したセッション識別子を含める。
【００４５】
サーバ装置２１は、プリンタからの応答と、セッション識別子とを受け入れ、当該セッション識別子に関連づけて記憶している処理識別子で識別される処理を再開する。ここでサーバ装置２１は、プリンタの一覧の情報に、各プリンタの状態を表す情報を関連づけたテーブルを生成し、当該テーブルを含んだＨＴＭＬ文書を生成して、情報処理装置１１へ送信する。
【００４６】
情報処理装置１１は、サーバ装置２１から、このＨＴＭＬ文書を受信し、当初ユーザ装置１２から受信した要求に対する応答として、ユーザ側装置１２に送信する。そうしてユーザ側装置１２が、プリンタの一覧の情報に、各プリンタの状態を表す情報（Ｓ）を関連づけたテーブルを含んだＨＴＭＬ文書を表示する。この表示内容は、例えば、図６に例示するようなものとなる。
【００４７】
（ｂ）プリンタに画像を形成させる処理
次に利用者がプリンタに画像を形成させる処理を要求する例について述べる。この要求は、例えば情報処理装置１１内の画像を形成するためのプログラムを指すＵＲＬとする。情報処理装置１１は、この要求に対応するＵＲＬに予め、画像形成の対象となるファイルを指定させ、アップロードを受ける処理を含んだＨＴＭＬ文書を関連づけて保持しているものとする。このようなＨＴＭＬ文書の例は、広く知られているので、ここでの詳しい説明を省略する。
【００４８】
情報処理装置１１は、このＨＴＭＬ文書に記述された指示に従い、利用者からファイルの指定を受け入れ、当該指定されたファイルのアップロードを受け入れると、画像形成の要求とともに、当該アップロードを受けたファイルをサーバ装置２１に送出する。
【００４９】
サーバ装置２１は、固有のセッション識別子を発行する。そしてサーバ装置２１は、当該要求に関連づけて記憶されているプログラム（画像形成プログラム）を読み出して処理を開始する。サーバ装置２１は、先に発行したセッション識別子と、ここで開始した処理を識別する処理識別子とを関連づけて記憶する。
【００５０】
サーバ装置２１は、画像形成プログラムに従い、情報処理装置１１から受信したファイルに基づいて画像形成用の画像データを生成する。一例として、ファイルがマイクロソフト社が提供するワードプロセッサ「ワード」の生成するアプリケーションファイル（いわゆるＤＯＣファイル）であるとすると、サーバ装置２１は、このアプリケーションファイルをページごとに描画データをプリンタで印刷処理を行うことができるページ記述言語等で記述されたデータ形式へ変換し、画像形成用の画像データとして生成する。
【００５１】
サーバ装置２１は、こうして生成した画像データを記憶し、この画像データの記憶先のＵＲＬから画像データを取得させ、取得した画像データをプリンタに出力させるスクリプト（データ取得スクリプト）をjavascript等の言語を用いて記述したものを含むＨＴＭＬ文書を生成する。このとき、上記データ取得スクリプトが、ＨＴＭＬ文書を読み込むタイミングで実行されるように設定して、要求元の情報処理装置１１に対して応答する。具体的にここでは、データ取得スクリプトにonload属性を付しておく。
【００５２】
情報処理装置１１は、セッション識別子とＨＴＭＬ文書とを受信し、このＨＴＭＬ文書に、読み込み時に実行するべき処理（プリンタと通信をするべき指示）があるか否かを調べる。ここでは、onload属性が付された処理（デバイス１３と通信をするべき旨の指示を含んだスクリプト）が存在するので、情報処理装置１１は、当該指示に従い、指定されたＵＲＬから画像データをダウンロードし、当該ダウンロードした画像データを、プリンタに送信出力する。プリンタは、情報処理装置１１から送信された画像データを受信する。プリンタは、画像データの受信に応じてジョブ識別子を発行し、情報処理装置１１へ送信する。情報処理装置１１では、セッション識別子とプリンタから送信されたジョブ識別子とを関連させて記憶する。次に、プリンタは、画像データを解釈し、印刷処理を行う。そして、この印刷処理の結果（出力完了や異常終了等）を前記したジョブ識別子とともに情報処理装置へ送信する。
【００５３】
情報処理装置１１は、そしてプリンタからの応答であるジョブ識別子と画像形成処理の結果を取得する。この画像処理結果を、ジョブ識別子に対応したセッション識別子とともにサーバ装置２１に送信する。なお、情報処理装置１１は、先にダウンロードした画像データをここで削除してもよいし、後に再印刷等を可能とするために、保持してもよい。保持する場合、当該保持している画像データの一覧を、ユーザ側装置１２からの要求に応じて送信し、また、このユーザ側装置１２から当該一覧に含まれる画像データの印刷指示を受けて、当該指示された画像データを、再度デバイス１３としてのプリンタに送信出力して画像形成を行わせてもよい。
【００５４】
サーバ装置２１は、プリンタからの応答と、セッション識別子とを受け入れ、当該セッション識別子に関連づけて記憶している処理識別子で識別される処理を再開する。ここでサーバ装置２１は、プリンタからの応答を表示するＨＴＭＬ文書を生成して、情報処理装置１１へ送信する。
【００５５】
情報処理装置１１は、サーバ装置２１から、このＨＴＭＬ文書を受信し、当初ユーザ装置１２から受信した要求に対する応答として、ユーザ側装置１２に送信する。そうしてユーザ側装置１２が、画像形成処理の結果を表示する。
【００５６】
（ｃ）デバイス１３の設定を変更する処理
ユーザ側装置１２の利用者がデバイス１３としてのプリンタの設定を変更する要求を行う例について次に述べる。この例では、利用者は設定変更の要求を情報処理装置１１に対して送信する。この要求は、例えば情報処理装置１１内の設定変更のプログラムを指すＵＲＬとして送信される。情報処理装置１１は、当該要求を受け入れる（対応するＵＲＬへのアクセスを受ける）と、この対応するＵＲＬに関連づけて予め保持しているウェブページをユーザ側装置１２に送信する。
【００５７】
このウェブページには、プリンタの指定を入力する欄と、各種設定を表示するとともに各種設定の変更を受け入れるインタフェースを含む（図７）。具体的に図７の例では、必須入力欄としてのプリンタの名称またはネットワークアドレス（内部ネットワーク１０上のアドレス）を含む。また、機種名などの情報をデバイスから取得するか否かの設定（Ｘ）を含む。
【００５８】
ここで利用者が機種名等の情報をデバイスから取得する設定を行い、対象となるプリンタの名称など、処理の対象となるプリンタを特定するために必要な情報を入力して、このウェブページ内のフォームを提出（サブミット）する指示を行うと、情報処理装置１１は、このフォームの内容を受け入れて、設定変更開始の要求をサーバ装置２１に送出する。
【００５９】
ここで情報処理装置１１は、設定変更開始の要求に、機種名などの情報をデバイスから取得する旨の要求を含める。
【００６０】
サーバ装置２１は、要求を受け入れて固有のセッション識別子を発行する。そしてサーバ装置２１は、当該要求に関連づけて記憶されているプログラム（設定変更開始プログラム）を読み出して処理を開始する。サーバ装置２１は、先に発行したセッション識別子と、ここで開始した処理を識別する処理識別子とを関連づけて記憶する。
【００６１】
サーバ装置２１は、設定変更開始プログラムに従い、要求元の情報処理装置１１を特定する情報に関連づけて予めサーバ装置２１側で保持しているプリンタの一覧情報から、要求に係るプリンタの情報を参照し、当該要求に係るプリンタの情報を含んだＨＴＭＬ（Hyper Text Markup Language）を記述するとともに、このＨＴＭＬで記述した情報（ＨＴＭＬ文書）に対して、要求に係るプリンタに対して現在の設定内容を取得させるスクリプト（設定取得スクリプト）をjavascript等の言語を用いて記述したものを含め、このスクリプトが、当該ＨＴＭＬで記述した情報が読み込まれるタイミングで実行されるように設定して、要求元の情報処理装置１１に対して応答する。具体的にここでは、状態取得スクリプトにonload属性を付しておく。
【００６２】
情報処理装置１１は、セッション識別子とＨＴＭＬ文書とを受信し、このＨＴＭＬ文書に、読み込み時に実行するべき処理（プリンタと通信をするべき指示）があるか否かを調べる。ここでは、onload属性が付された処理（デバイス１３と通信をするべき旨の指示を含んだスクリプト）が存在するので、情報処理装置１１は、当該指示に従い、指定されたプリンタとの間で通信を行い、当該プリンタからの応答を受信する。ここでは、指定されたプリンタに対して現在の設定内容を要求し、応答として、現在の設定内容を表す情報を受け入れる。
【００６３】
情報処理装置１１は、ここでプリンタから得た応答をサーバ装置２１に送信する。このとき送信する情報に、先にサーバ装置２１から受信したセッション識別子を含める。
【００６４】
サーバ装置２１は、プリンタからの応答と、セッション識別子とを受け入れ、当該セッション識別子に関連づけて記憶している処理識別子で識別される処理を再開する。ここでサーバ装置２１はＨＴＭＬ文書を生成して、情報処理装置１１へ送信する。
【００６５】
このＨＴＭＬ文書は、例えば図７に例示した画面と同様の画面を記述したものであるが、機種名など、利用者がプリンタから取得するよう要求した情報や、現在の設定の内容を表す情報などが含まれる（図７）。
【００６６】
情報処理装置１１は、サーバ装置２１から、このＨＴＭＬ文書を受信し、当初ユーザ装置１２から受信した要求に対する応答として、ユーザ側装置１２に送信する。そうしてユーザ側装置１２が、プリンタの現在の設定内容を表す情報を含んだＨＴＭＬ文書を表示する。
【００６７】
次に、このＨＴＭＬ文書において、利用者が現在の設定内容とは異なる設定を入力して、当該入力済みのフォームを提出（サブミット）する指示を行うと、情報処理装置１１は、このフォームの内容を受け入れて、設定変更の要求をサーバ装置２１に送出する。ここで情報処理装置１１は、設定変更の要求に、ユーザ側装置１２から受け入れたフォームの内容を含める。
【００６８】
サーバ装置２１は、要求を受け入れて固有のセッション識別子を発行する。そしてサーバ装置２１は、当該要求に関連づけて記憶されているプログラム（設定変更プログラム）を読み出して処理を開始する。サーバ装置２１は、先に発行したセッション識別子と、ここで開始した処理を識別する処理識別子とを関連づけて記憶する。
【００６９】
サーバ装置２１は、設定変更プログラムに従い、要求に係るプリンタに対して、フォームの内容として受信した変更後の設定内容を送信し、プリンタの設定を更新するべき旨の指示（例えばＳＮＭＰ（Simple Network Management Protocol）を用いて行うことができる）を含んだスクリプト（設定変更スクリプト）をjavascript等の言語を用いて記述したものを含むＨＴＭＬ文書を生成し、このスクリプトが、当該ＨＴＭＬで記述した情報が読み込まれるタイミングで実行されるように設定して、要求元の情報処理装置１１に対して応答する。具体的にここでは、状態取得スクリプトにonload属性を付しておく。
【００７０】
情報処理装置１１は、セッション識別子とＨＴＭＬ文書とを受信し、このＨＴＭＬ文書に、読み込み時に実行するべき処理（プリンタと通信をするべき指示）があるか否かを調べる。ここでは、onload属性が付された処理（デバイス１３と通信をするべき旨の指示を含んだスクリプト）が存在するので、情報処理装置１１は、当該指示に従い、指定されたプリンタとの間で通信を行い、プリンタに対して利用者から指定された設定内容を伝達し、設定を変更する指示を送信する。そして当該プリンタからの応答を受信する。この応答は、ここではプリンタにおける設定変更指示に対する応答となる。
【００７１】
情報処理装置１１は、ここでプリンタから得た応答をサーバ装置２１に送信する。このとき送信する情報に、先にサーバ装置２１から受信したセッション識別子を含める。
【００７２】
サーバ装置２１は、プリンタからの応答と、セッション識別子とを受け入れ、当該セッション識別子に関連づけて記憶している処理識別子で識別される処理を再開する。ここでサーバ装置２１は、プリンタの一覧の情報に、各プリンタの設定変更指示に対する応答の情報を含んだＨＴＭＬ文書を生成して、情報処理装置１１へ送信する。
【００７３】
情報処理装置１１は、サーバ装置２１から、このＨＴＭＬ文書を受信し、当初ユーザ装置１２から受信した要求に対する応答として、ユーザ側装置１２に送信する。そうしてユーザ側装置１２が、プリンタの現在の設定内容を表す情報を含んだＨＴＭＬ文書を表示する。
【００７４】
また、これらの処理例において、サーバ装置２１から受信したＨＴＭＬ文書に含まれるスクリプトに従い、デバイス１３（プリンタ等）と通信し、デバイス１３からの応答を受けてサーバ装置２１に送信するまでの間に、サーバ装置２１がセッションタイムアウトとなることはないものとしていたが、セッションタイムアウトになる可能性がある場合は、情報処理装置１１は、例えば複数のデバイス１３からの応答をサーバ装置２１に送信するべき場合は、各デバイス１３からの応答を記憶するとともに、セッションタイムアウトとなる前（サーバ装置２１からＨＴＭＬ文書を受信してからの時間を計時することで判断できる）にそれまでに受信した応答をサーバ装置２１に対して送信出力することとしてもよい。このように、前回サーバ装置２１への情報送信を行ってから、セッションタイムアウトとなるタイミングより前に、送信の対象となる情報を部分ごとに送信することで、セッションタイムアウトとなることを防止するようにしてもよい。
【００７５】
なお、ここまでの説明において、ＨＴＭＬ文書を用いていたものについては、ＨＴＭＬ文書に代えて、他の、スクリプトプログラムを含むことが可能な文書を用いても構わない。この場合、ファイアウォールは、情報処理装置１１からの求めによってサーバ装置２１が送信する当該文書を外部ネットワーク２０から内部ネットワーク１０へ中継できるように設定しておく。
【００７６】
このように、本実施の形態によると、ファイアウォール等で保護された内部ネットワーク上のデバイスを外部ネットワーク上のサービスを用いて制御させることが可能となる。
【符号の説明】
【００７７】
１０  内部ネットワーク、１１  情報処理装置、１２  ユーザ側装置、１３  デバイス、２０  外部ネットワーク、２１  サーバ装置、３１  制御部、３２  記憶部、３３  通信部、４１  フロントエンドモジュール、４２  エージェントモジュール。
【図１】
2012064091.tif 000003
【図２】
2012064091.tif 000004
【図３】
2012064091.tif 000005
【図４】
2012064091.tif 000006
【図５】
2012064091.tif 000007
【図６】
2012064091.tif 000008
【図７】
2012064091.tif 000009