以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における情報処理システムの構成例を示す図である。同図の情報処理システム1において、一台以上の画像形成装置10と、一台以上のユーザPC20と、ネットアプリ管理サーバ30とは、LAN(Local Area Network)等のネットワーク40(有線又は無線の別は問わない。)によって接続されている。
ユーザPC20は、ユーザごとに割り当てられたPC(Personal Computer)であり、画像形成装置10との連携により所定のサービスを提供するアプリケーション(以下、「ネットアプリ」という。)を有する。同図では、ネットアプリの一例として印刷アプリ21及びスキャンアプリ22が示されている。印刷アプリ21は、ネットワーク40を介して通信可能な画像形成装置10に印刷ジョブを実行させるネットアプリであり、UI制御部211、アプリ情報送信部212、連携部213、印刷データ生成部214、及び属性情報管理ファイル215等を有する。
UI制御部211は、印刷アプリ21に関する各種の表示画面をユーザPCの表示装置に表示させる。アプリ情報送信部212は、印刷指示の入力に応じ印刷アプリ21のアプリ情報の登録要求をネットアプリ管理サーバ30に送信する。アプリ情報には、印刷アプリ21の実行に必要な情報が含まれる。なお、本実施の形態において印刷アプリ21のアプリ情報は、画像形成装置10に対する印刷要求に相当する。連携部213は、画像形成装置10との連携のためのコミュニケーション(情報のやりとり等)を制御する。印刷データ生成部214は、画像形成装置10に印刷させる文書ファイル(電子データ)の印刷データ(PDL(Page Description Language)データ)を、PC20にインストールされているプリンタドライバを利用して生成する。属性情報管理ファイル215は、印刷アプリ21の属性情報を格納するファイルである。属性情報には、例えば、印刷アプリ21の識別子(アプリID)や、印刷アプリ21の所有者であるユーザのユーザIDや、印刷設定情報(印刷条件を示す情報)の初期値等が含まれる。
一方、スキャンアプリ22は、画像形成装置10においてスキャンされた画像データに対して所定の処理(例えば、配信又は保存等)を実行するネットアプリである。スキャンアプリ22は、UI制御部221、アプリ情報送信部222、連携部223、スキャンデータ処理部224、及び属性情報管理ファイル225等を有する。
UI制御部221は、スキャンアプリ22に関する各種の表示画面をユーザPCの表示装置に表示させる。アプリ情報送信部222は、スキャンアプリ22が起動されたときに、スキャンアプリ22のアプリ情報の登録要求をネットアプリ管理サーバ30に送信する。アプリ情報にはスキャンアプリ22の実行に必要な情報が含まれる。連携部223は、画像形成装置10との連携のためのコミュニケーション(情報のやりとり等)を制御する。属性情報管理ファイル225は、スキャンアプリ22に対する設定情報を格納するファイルである。スキャンデータ処理部224は、画像形成装置10においてスキャンされ、ユーザPC20に転送された画像データに対して所定の処理(配信又は保存等)を実行する。属性情報管理ファイル225は、スキャンアプリ22の属性情報を格納するファイルである。属性情報には、例えば、スキャンアプリ22の識別子(アプリID)や、スキャンアプリ22の所有者であるユーザのユーザIDや、スキャン設定情報(スキャン条件を示す情報)の初期値等が含まれる。
印刷アプリ21及びスキャンアプリ22の属性情報管理ファイル215又は属性情報管理ファイル225において各ネットアプリの所有者のユーザIDが記録されていることからも分かるように、各ネットアプリはユーザに属する。したがって、同一のネットアプリであっても、各ネットアプリが属するユーザが異なる場合、各ネットアプリは異なるものとして区別される。例えば、ユーザAに属するネットアプリは、基本的にユーザAに対してのみ利用が許可される。ユーザBに属するネットアプリは、基本的にユーザBに対してのみ利用が許可される。但し、例えば、アクセス制御機能によって他のユーザに対して利用権限を与えることにより、他人が所有者であるネットアプリの利用を可能としてもよい。
なお、同図では、一つのユーザPC20のみが示されているが、複数のユーザPC20がネットワーク40に接続されていてもよい。また、各ユーザPC20が有するネットアプリの機能はそれぞれ異なっていてもよい。
ネットアプリ管理サーバ30は、アプリ情報登録部31、広告部32、アプリ情報提供部32、及び仲介部34等を有するコンピュータである。アプリ情報登録部31は、ユーザPC20より送信されるアプリ情報の登録要求を受信し、当該アプリ情報をアプリ情報管理テーブル35に保存する。アプリ情報管理テーブル35は、ユーザごとにネットアプリ管理サーバ30の記憶装置に生成される。すなわち、各アプリ情報管理テーブル35は、対応するユーザに属するネットアプリのアプリ情報を管理する。広告部32は、アプリ情報登録部31によって受信されたアプリ情報に含まれるユーザIDをネットワーク40上に広告(ブロードキャスト又はマルチキャスト等)する。広告は、ユーザ単位(ユーザID単位)で行われる。具体的には、ユーザAに関して広告された後、ユーザAに属する新たなアプリ情報が受信されたとしても当該アプリ情報に応じた広告は行われない。すなわち、広告部32による広告は、何らかのネットアプリを利用可能になったユーザが新たに発生したことを画像形成装置10に通知するための情報である。但し、アプリ情報単位で広告が行われてもよい。この場合、同一ユーザについて重複して広告が発行されることになるが、重複の排除は画像形成装置10側で行えばよい。アプリ情報提供部33は、画像形成装置10からの要求に応じ、アプリ情報管理テーブル35に登録されているアプリ情報を画像形成装置10に提供(送信)する。仲介部34は、ネットアプリと画像形成装置10とのコミュニケーションを仲介する。
なお、いずれかのユーザPC20が、ネットアプリ管理サーバ30を兼ねてもよい。すなわち、いずれかのユーザPC20に、アプリ情報登録部31、広告部32、アプリ情報提供部33、及び仲介部34等が実装されていてもよい。
画像形成装置10は、印刷、スキャン、コピー、及びFAX送受信等の機能を一台の筐体によって実現する複合機である。但し、いずれか一つの機能を実現する装置(プリンタ、スキャナ、コピー機、ファクシミリ等)を画像形成装置10として用いてもよい。画像形成装置10は、ユーザ検知部121、UI制御部122、アプリ情報取得部123、ネットアプリ連携部124、機能制御部125、及びユーザ管理テーブル126等を有する。
ユーザ検知部121は、ネットアプリ管理サーバ30より発行される広告に基づいて、ネットアプリを利用可能なユーザの存在を検知し、広告に含まれているユーザID等をユーザ管理テーブル126に登録する。ユーザ管理テーブル126は、利用可能なネットアプリがネットワーク40上に存在するユーザの一覧を管理するテーブルである。UI制御部122は、ユーザよりネットアプリの操作指示等の入力を受け付ける。すなわち、ネットアプリは、ユーザPC20に配置されているが、画像形成装置10の操作パネルからも操作されうる。アプリ情報取得部123は、ユーザ管理テーブル126に登録されているユーザの中から選択されたユーザに属するネットアプリのアプリ情報をネットアプリ管理サーバ30より取得する。ネットアプリ連携部124は、ネットアプリとのコミュニケーションを制御する。機能制御部125は、ネットアプリから要求された機能の実行を制御する。例えば、機能制御部125の制御により印刷又はスキャン等が実行される。
続いて、各装置のハードウェア構成について説明する。図2は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図2において、画像形成装置10は、コントローラ11、スキャナ12、プリンタ13、モデム14、操作パネル15、ネットワークインタフェース16、及びSDカードスロット17等のハードウェアを有する。
コントローラ11は、CPU111、RAM112、ROM113、及びHDD114等を有する。ROM113には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。RAM112は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。CPU111は、RAM112にロードされたプログラムを処理することにより、各種の機能を実現する。HDD114には、プログラムやプログラムが利用する各種のデータ等が記録される。
スキャナ12は、原稿より画像データを読み取るためのハードウェアである。プリンタは13、印刷データを印刷用紙に印刷するためのハードウェアである。モデム14は、電話回線に接続するためのハードウェアであり、FAX通信による画像データの送受信を実行するために用いられる。操作パネル15は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段を備えたハードウェアである。ネットワークインタフェース16は、LAN等のネットワーク(有線又は無線の別は問わない。)に接続するためのハードウェアである。SDカードスロット17は、SDカード80に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置10では、ROM113に記録されたプログラムだけでなく、SDカード80に記録されたプログラムもRAM112にロードされ、実行されうる。
図3は、本発明の実施の形態におけるユーザPCのハードウェア構成例を示す図である。図3のユーザPC20は、それぞれバスBで相互に接続されているドライブ装置200と、補助記憶装置202と、メモリ装置203と、CPU204と、インタフェース装置205と、表示装置206と、入力装置207とを有する。
ユーザPC20での処理を実現するプログラムは、CD−ROM等の記録媒体201によって提供される。プログラムを記録した記録媒体201がドライブ装置200にセットされると、プログラムが記録媒体201からドライブ装置200を介して補助記憶装置202にインストールされる。但し、プログラムのインストールは必ずしも記録媒体201より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置202は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置203は、プログラムの起動指示があった場合に、補助記憶装置202からプログラムを読み出して格納する。CPU204は、メモリ装置203に格納されたプログラムに従ってユーザPC20に係る機能を実現する。インタフェース装置205は、ネットワークに接続するためのインタフェースとして用いられる。表示装置206はプログラムによるGUI(Graphical User Interface)等を表示する。入力装置207はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
以下、情報処理システム1の処理手順について説明する。本実施の形態では、特にスキャンアプリ22に関する処理手順について説明する。
ユーザPC20においてユーザによって入力されるスキャンアプリ22の起動指示に応じ、UI制御部221は、スキャンアプリ22のメイン画面を表示装置206に表示させる。
図4は、スキャンアプリのメイン画面の表示例を示す図である。同図において、スキャンアプリ22のメイン画面530の右隣には、スキャン設定画面540が付属している。スキャン設定画面540の詳細な表示例は図中右側に示されている。同図の例では、スキャン設定画面540において、解像度、カラーモード(カラー又はモノクロの別)、及びスキャンされた画像データ(スキャン画像)の保存場所としてユーザPC20のファイルシステム上におけるパス名等の設定が可能とされている。但し、これらの設定項目はあくまでも例示であり、設定項目の種類は所定のものに限定されない。
スキャン設定画面540において各設定項目の値が設定されると、UI制御部221は、設定された情報(以下、「スキャン設定情報」という。)をメモリ装置203に記録しておく。
なお、スキャン設定画面540の各項目に表示される初期値は、属性情報管理ファイル225より取得される。すなわち、属性情報管理ファイル225には、ユーザ所望のスキャン設定情報が予め含まれている。したがって、必ずしもスキャン設定画面540は表示されなくてもよい。スキャン設定画面540を表示させない場合、属性情報管理ファイル225より取得されたスキャン設定情報がメモリ装置203にロードされればよい。
続いて、アプリ情報送信部222は、上記のステップにおいて取得された情報に基づいてスキャンアプリ22のアプリ情報を生成し、当該アプリ情報(画像形成装置10に対するスキャンの実行要求)の登録要求をネットアプリ管理サーバ30に送信する。
図5は、スキャンアプリのアプリ情報の例を示す図である。同図において、スキャンアプリ22のアプリ情報は、アプリID、ユーザID、連携機能識別子、ネットアプリアドレス、表示名、及びスキャン設定情報等を含む。
アプリIDは、各ネットアプリを一意に識別する識別情報である。ユーザIDは、スキャンアプリ22の所有者であるユーザの識別情報である。連携機能識別子は、ネットアプリと連携する画像形成装置10が有している必要のある機能(換言すれば、ネットアプリが利用する機能)を識別するための情報である。連携機能識別子の一例として「print」、「scan」等が挙げられる。「print」は、印刷機能を示す。「scan」は、スキャン機能を示す。スキャンアプリ22は、画像形成装置10のスキャン機能を利用する。したがって、図5の例では、「scan」が連携機能識別子とされている。ネットアプリアドレスは、ネットワーク通信において各ネットアプリを一意に識別するための識別情報(例えば、URL等)である。表示名は、ネットアプリの名前の表示用の文字列である。なお、アプリID、ユーザID、連携機能識別子、ネットアプリアドレス、及び表示名は、例えば、属性情報管理ファイル225より取得される。
スキャン設定情報は、スキャン設定画面540において設定されたスキャン設定情報、又は属性情報管理ファイル225より取得されたスキャン設定情報である。
続いて、アプリ情報の送信に応じて実行される処理手順について説明する。図6は、アプリ情報の送信時の処理手順を説明するためのシーケンス図である。
ステップS111において、アプリ情報送信部222より送信されたアプリ情報(図5参照)は、ネットアプリ管理サーバ30のアプリ情報登録部31によって受信される。アプリ情報登録部31は、受信されたアプリ情報に含まれているユーザIDに対応するアプリ情報管理テーブル35に当該アプリ情報を登録する。当該ユーザIDに対応するアプリ情報管理テーブル35が存在しない場合、アプリ情報登録部31は、当該ユーザIDに対応するアプリ情報管理テーブル35を生成し、生成されたアプリ情報管理テーブル35にアプリ情報を登録する(S112)。
アプリ情報管理テーブル35が新たに生成された場合(すなわち、受信されたアプリ情報に含まれているユーザIDに係るユーザについて、初めてアプリ情報が登録された場合)、広告部32は、受信されたアプリ情報に含まれているユーザIDと、アプリ情報取得用URL(Uniform Resource Locator)とを含む広告をネットワーク40上に発行する(S113)。アプリ情報取得用URLとは、アプリ情報管理テーブル35ごとに一意なURLである。例えば、アプリ情報登録部31は、アプリ情報管理テーブル35を生成した際に、当該アプリ情報管理テーブル35に対するアプリ情報取得用URLを生成する。ここで、アプリ情報管理テーブル35は、ユーザごとに生成される。したがって、アプリ情報取得用URLはユーザごとに一意となる。
続いて、画像形成装置10のユーザ検知部121は、広告を受信すると、当該広告に含まれているユーザID及びアプリ情報取得用URLをユーザ管理テーブル126に登録する(S114)。
図7は、ユーザ管理テーブルの構成例を示す図である。同図に示されるように、ユーザ管理テーブル126は、ユーザIDとアプリ情報取得用URLとの組(ペア)を管理する。同図では、ユーザA及びユーザBについてレコードが登録されている例が示されている。なお、ユーザ管理テーブル126は、例えば、HDD114に記憶されている。
一方、スキャンアプリ22は、アプリ情報を送信した後、画像形成装置10において画像データがスキャンされたことを確認するためのポーリングを一定間隔Aごとに行う。具体的には、スキャンアプリ22の連携部223は、スキャンされた画像データ(スキャン画像)の取得要求をネットアプリ管理サーバ30の仲介部34に送信する(S115)。仲介部34は、当該取得要求に対する応答を行う(S116)。この段階では、画像データはスキャンされていないため、スキャン画像は無いことを示す応答が返信される。スキャン画像の取得要求は一定間隔Aごとに繰り返し行われる(S117、S118等)。なお、スキャン画像の取得要求には、ユーザIDを含めるようにしてもよい。
例えば、その後、ユーザPC20において印刷アプリ21が起動され、印刷アプリ21のUI制御部211が表示させる印刷アプリ21のメイン画面に対して文書ファイルがドラッグ&ドロップされると、印刷アプリ21のアプリ情報送信部212は、印刷アプリ21に関するアプリ情報をネットアプリ管理サーバ30のアプリ情報登録部31に送信する。その結果、印刷アプリ21のアプリ情報に関して図6と同様の処理が実行され、当該アプリ情報は当該ユーザのアプリ情報管理テーブル35に登録される。但し、当該ユーザに関する広告(図6のステップS113)は行われない。スキャンアプリ22の起動に応じて既に実行されているからである。また、印刷アプリ21の処理は、画像形成装置10より画像データを引き取るという手順は含まない。したがって、ステップS115以降のポーリングも行われない。なお、印刷アプリ21のアプリ情報は、印刷ジョブごとにネットアプリ管理サーバ30に送信され、登録される。具体的には、印刷アプリ21のメイン画面に文書ファイルがドラッグ&ドロップされるたびに、当該文書ファイルに関する印刷アプリ21のアプリ情報がネットアプリ管理サーバ30に登録される。
ユーザPC20においてスキャンアプリ22を起動させた後、ユーザは、スキャンアプリ22を動作させるために画像形成装置10の設置場所へ移動する。なお、複数の画像形成装置10がネットワーク40に接続されている場合、同一の広告が各画像形成装置10のユーザ検知部121によって受信され、それぞれの画像形成装置10のユーザ管理テーブル126にユーザID及びアプリ情報取得用URLが登録される。したがって、ユーザは、複数の画像形成装置10のいずれからも各ネットアプリを動作させることができる。
続いて、画像形成装置10におけるユーザによる操作に応じて実行される処理について説明する。図8は、スキャンアプリ実行時の処理手順を説明するためのシーケンス図である。
ユーザによって操作パネル15を介してネットアプリの利用指示が入力されると(S201)、画像形成装置10のUI制御部122は、ユーザ管理テーブル126に登録されている情報に基づいてユーザ選択画面を操作パネル15に表示させる(S202)。なお、ステップS202において、UI制御部122は、ネットアプリ管理サーバ30よりユーザ情報を取得し、取得されたユーザ情報に基づいてユーザ選択画面を表示させるようにしてもよい。この場合、図6のステップS113は必ずしも行われなくてもよい。但し、例えば、ネットアプリ管理サーバ30とサブネットが異なる特定の(予め、ネットアプリ管理サーバ30にIPアドレスが登録されている)画像形成装置10に対してユニキャストによってステップS113が実行されてもよい。
図9は、ユーザ選択画面の表示例を示す図である。同図に示されるユーザ選択画面610には、ユーザIDごとにボタンが表示されている。同図では、ユーザAに対応するボタン611とユーザBに対応するボタン612とが表示されている。
続いて、ユーザは、ユーザ選択画面610において自らのユーザIDに対応するボタンを押下する(S203)。ボタンの押下に応じ、アプリ情報取得部123は、選択されたボタンに対応するユーザIDに関連付けられているアプリ情報取得用URLをユーザ管理テーブル126より取得する。なお、ユーザIDに対応するボタンの押下に応じ、ユーザの認証を行い、ユーザが認証された場合にのみ、以降の処理が実行されるようにしてもよい。
続いて、アプリ情報取得部123は、アプリ情報取得用URL宛に、アプリ情報の取得要求を送信する(S204)。アプリ情報の取得要求は、ネットアプリ管理サーバ30のアプリ情報提供部33によって受信される。アプリ情報提供部33は、アプリ情報取得用URLに対応するアプリ情報管理テーブル35(すなわち、画像形成装置10を操作中のユーザに対応するアプリ情報管理テーブル35)に登録されている全てのネットアプリのアプリ情報を取得し、取得されたアプリ情報の一覧を画像形成装置10に送信する(S205)。アプリ情報の一覧の送信に際し、アプリ情報提供部33は、画像形成装置10と各ネットアプリとの通信を中継するためのURL(以下、「ネットアプリ中継用URL」という。)をネットアプリごと(アプリ情報ごと)に一意に生成する。アプリ情報提供部33は、ネットアプリごとに生成されたネットアプリ中継用URLを、各ネットアプリに対応するアプリ情報に付加し、ネットアプリ中継用URLが付加されたアプリ情報の一覧を画像形成装置10に送信する。したがって、ステップS205において送信されるアプリ情報は、例えば、図10に示されるような構成を有する。
図10は、ネットアプリ管理サーバから画像形成装置に送信されるスキャンアプリのアプリ情報の構成例を示す図である。
図10に示されるアプリ情報は、図5のアプリ情報に対してネットアプリ中継用URLが付加されたものである。ステップS205では、同図に示されるようなアプリ情報の一覧が送信される。ここでは、アプリ情報が一つしか含まれないものもアプリ情報の一覧という。
なお、ネットアプリ中継用URLは、アプリ情報登録部31が、アプリ情報をアプリ情報管理テーブル35に登録する際に生成し、アプリ情報に付加しておいてもよい。
一方、ネットアプリ管理サーバ30の仲介部34は、画像形成装置10によってアプリ情報が取得された後、スキャンアプリ22の連携部223からのスキャン画像データの取得要求を受信すると(S301)、画像形成装置10によってアプリ情報の取得が実行されたことを示す応答を連携部223に返信する(S302)。
当該応答に応じ、連携部223は、ポーリングの周期を短くする(S303、S304)。具体的には、ポーリングの間隔が一定間隔Aから一定間隔B(A>B)に変更される。すなわち、アプリ情報が画像形成装置10によって取得されたことにより、スキャンアプリ22が実行される可能性が高まるからである。但し、画像形成装置10に取得されるアプリ情報の一覧には、スキャンアプリ22以外のネットアプリに関するものも含まれている可能性がある。したがって、この段階では、スキャンアプリ22が実行されることが確定したわけではない。
なお、スキャン画像の取得要求にユーザIDが含まれている場合、仲介部34は、当該ユーザIDによってフィルタリングを行ってもよい。具体的には、仲介部34は、アプリ情報の取得対象とされたユーザIDを含むスキャン画像の取得要求(ポーリング)に対して、画像形成装置10によってアプリ情報の取得が実行されたことを示す応答を返信する。そうすることにより、他のユーザのユーザPC20におけるスキャンアプリ22からのポーリング間隔が短縮され、ネットワーク負荷が高まるのを防止することができる。
続いて、画像形成装置10のUI制御部122は、受信されたアプリ情報の一覧をRAM112に記録しておき、当該アプリ情報の一覧に基づいて、ユーザに利用可能なネットアプリの一覧を含む画面(ネットアプリ選択画面)を表示させる(S206)。
図11は、ネットアプリ選択画面の表示例を示す図である。同図においてネットアプリ選択画面620には、ネットアプリごとにボタンが表示されている。同図では、スキャンアプリ22に対応するボタン621と、ファイルAの印刷要求に係る印刷アプリ21に対応するボタン622と、ファイルBの印刷要求に係る印刷アプリ22に対応するボタン623とが表示されている。
ネットアプリ選択画面620において、スキャンアプリ22に対応するボタン621が選択されると(S207)、画像形成装置10のネットアプリ連携部124は、押下されたボタンに対応するアプリ情報(以下、「カレントアプリ情報」という。)に含まれているネットアプリ中継用URL宛に、スキャン開始通知を送信する(S208)。当該ネットアプリ中継用URL宛に送信されたスキャン開始通知は、ネットアプリ管理サーバ30の仲介部34によって受信される。
仲介部34は、スキャン開始通知の受信に応じ、連携部223からのポーリングを受信してから応答するまでの時間をスキャン開始通知が受信される前より長くする。図8では、応答時間Cから応答時間D(C<D)に変更される例が示されている。すなわち、ステップS305において、仲介部34は、当該ネットアプリ中継用URLに対応するスキャンアプリ22の連携部223よりスキャン画像の取得要求を受信すると応答時間Dの間応答を待機した後、スキャンが開始されることを示す応答を連携部223に返信する(S306)。仲介部34による応答時間が長くなることにより、実質的にポーリング間隔を長くすることができる。その結果、ポーリングによるネットワーク負荷の増加が抑制される。なお、連携部223からのスキャン画像の取得要求には、当該スキャンアプリ22のアプリIDを含めておいてもよい。当該ネットアプリ中継用URLに対応するスキャンアプリ22であるか否かの判定は、当該ネットアプリ中継用URLが関連付いているアプリIDと、スキャン画像の取得要求に含まれているアプリIDとを照合することにより行えばよい。
スキャンが開始されることを示す応答を受信した連携部223は、スキャン画像の取得要求のポーリングを継続する(S307)。この段階(スキャン開始通知後)においては、仲介部34によってポーリング間隔が調整されているため、ステップS307以降、スキャン画像が受信されるまでの連携部223によるポーリング間隔は、一定間隔Bのままでもよいし、一定間隔Bより短くされてもよい。例えば、仲介部34からの応答の受信後、直ちにポーリングが行われてもよい。
一方、画像形成装置10において、原稿がセットされ、操作パネル15のスタートキーが押下されると(S209)、ネットアプリ連携部124は、カレントアプリ情報に含まれている連携機能識別子(「scan」)に基づいて、スキャンを実行すべきことを認識する。そこで、ネットアプリ連携部124は、スキャンの実行を機能制御部125に要求する。
機能制御部125は、カレントアプリ情報に含まれているスキャン設定情報に基づいて、原稿からの画像データの読み取りを制御する(S210)。より詳しくは、機能制御部125は、ユーザによって画像形成装置10にセットされた原稿に対するスキャンをスキャナ12に実行させ、その結果得られる画像データ(スキャン画像)をネットアプリ連携部124に出力する。
ネットアプリ連携部124は、当該スキャン画像をカレントアプリ情報に含まれているネットアプリ中継用URL宛に送信する(S211)。ネットアプリ中継用URL宛に送信されたスキャン画像は、ネットアプリ管理サーバ30の仲介部34によって受信される。続いて、仲介部34は、ステップS307において受信されたスキャン画像の取得要求に対する応答として(ステップS307において受信されたスキャン画像の取得要求に係るセッションにおいて)、スキャン画像を連携部223に転送する(S308)。なお、スキャン画像の転送の際には、仲介部34は、応答時間Dの間待機することなく、スキャン画像の受信に応じて直ちに連携部223に対する応答(スキャン画像)を返信する。
ところで、仲介部34は、ステップS208におけるスキャン開始通知を受信後に受信されたスキャン画像の取得要求(S305)に対する応答を、ステップS211まで待機するようにしてもよい。そうする場合、図8では、ステップS306及びS307に関する通信量を削減することができる。但し、ポーリングにおいて連携部223が仲介部34からの応答を待っている間、連携部223と仲介部34との間のセッションは接続されたままになっている。通常、斯かるセッションにはタイムアウト時間が設定されており、仲介部34からの応答がタイムアウト時間を超えると、セッションが切断されてしまい、仲介部34は応答ができなくなってしまう。そうすると、ネットワーク負荷の軽減の観点において、応答時間Dは、タイムアウト時間の範囲内において最大の値が好適であると考えられる。
但し、図8では便宜上、一つのスキャンアプリ22(ユーザPC20)しか示されていないが、実際の運用においては、一つの仲介部34に関して、複数のスキャンアプリ22(ユーザPC20)との通信(ポーリング及びそれに対する応答)が並行して行われうる。このような状況において、応答時間Dがタイムアウト時間の範囲内において長くされ過ぎると、同時に接続可能なセッション数の制限により、仲介部34は、一部のスキャンアプリ22からのポーリングを受信できなくなってしまう可能性がある。したがって、応答時間Dは、タイムアウト時間と運用上発生しうるスキャンアプリ22の同時使用数と等を考慮して、適切な値を設定するとよい。なお、同時に接続可能なセッション数の制限とは、例えば、ソケット通信の場合、同時に開く(オープンする)ことのできるソケット数(ファイルディスクリプタ数)の制限に相当する。なお、上記より明らかなように、連携部223は、ポーリングのたびにセッションを接続し、応答が受信されるたびに当該セッションを切断する。
ステップS308においてネットアプリアドレス宛に送信されたスキャン画像は、ユーザPC20におけるスキャンアプリ22の連携部223によって受信される。続いて、連携部223は、スキャン画像をスキャンデータ処理部224に入力する。スキャンデータ処理部224は、スキャン画像を処理対象として、自らに実装されている処理(ロジック)を実行する(S310)。例えば、スキャンデータ処理部224は、属性情報管理ファイル225に設定されている保存先にスキャン画像を保存する。
続いて、連携部223は、次のスキャンアプリ22の実行に備えて、スキャン画像取要求のポーリングを再開する(S311〜S314等)。この際のポーリング間隔は、一定間隔A(元の間隔)に戻される。また、スキャン画像の転送後、仲介部34は、ポーリングに対する応答時間を元に(例えば、応答時間Cに)戻す。
なお、図8の処理の実行中において、図6の処理も並列的に実行されうる。具体的には、画像形成装置10を現在操作中のユーザとは異なるユーザに係るユーザPC20が有するネットアプリからのアプリ情報の登録要求に基づいて、画像形成装置10のユーザ管理テーブル126には、当該アプリ情報に含まれているユーザID等が登録されうる。
続いて、図8のステップS207においてスキャンの実行指示が入力される代わりに、スキャンアプリ22の実行のキャンセルが入力された場合について説明する。
図12は、スキャンアプリの実行がキャンセルされた場合の処理手順を説明するためのシーケンス図である。図12中、図8と同一ステップ(S311〜S314)には同一ステップ番号を付し、その説明は省略する。
スキャンアプリ22に対応するボタン621が選択された後、スキャンアプリ22の実行のキャンセルが操作パネル15を介して入力されると(S221)、ネットアプリ連携部124は、スキャンアプリ22のキャンセル通知をカレントアプリ情報に含まれているネットアプリ中継用URL宛に送信する(S222)。ネットアプリ中継用URL宛に送信されたキャンセル通知は、ネットアプリ管理サーバ30の仲介部34によって受信される。仲介部34は、ステップS307において受信されたスキャン画像の取得要求に対する応答として、キャンセル通知を連携部223に転送する(S321)。当該ネットアプリアドレス宛に送信されたキャンセル通知は、ユーザPC20におけるスキャンアプリ22の連携部223によって受信される。したがって、スキャンアプリ22の実行がキャンセルされた場合にも、スキャンアプリ22が開設したセッションを適切に終了させることができる。
なお、連携部223は、セッションを開設後、所定時間が経過しても何も受信されない場合にも、当該セッションを終了させるようにしてもよい。そうすることにより、ネットワーク異常が発生した場合等において、セッションが開設されたままになること(連携部223の待機状態が長期に継続すること)を防止することができる。
続いて、ネットアプリ選択画面620が表示されている状態において、スキャンアプリ22以外のネットアプリが選択された場合について説明する。
図13は、スキャンアプリ以外のネットアプリが実行対象とされた場合の処理手順を説明するためのシーケンス図である。
ネットアプリ選択画面620において、例えば、印刷アプリ21に対応するボタン622が選択されると(S231)、画像形成装置10のネットアプリ連携部124は、スキャンアプリ22のアプリ情報に含まれているネットアプリ中継用URL宛に、別アプリケーションの開始通知(スキャンの実行要求に応じた処理とは異なる処理が開始されることの通知)を送信する(S232)。当該ネットアプリ中継用URL宛に送信された別アプリケーションの開始通知は、ネットアプリ管理サーバ30の仲介部34によって受信される。仲介部34は、当該ネットアプリ中継用URLに対応するスキャンアプリ22の連携部223よりスキャン画像の取得要求を受信すると(S331)、別アプリケーションの開始通知を示す応答を連携部223に返信する(S332)。
別アプリケーションが開始通知を受信した連携部223は、一定間隔Bに短くしていたポーリング間隔を元の間隔(一定間隔A)に戻す(S333〜S336)。すなわち、別アプリケーションが実行されている間は、スキャン画像が転送されてくる可能性は無い(低い)からである。図13の処理手順は、ネットアプリ以外の標準のアプリケーション(例えば、コピーアプリケーションやFAXアプリケーション等)が実行対象とされた場合にも行われてもよい。
続いて、ポーリング間隔が短くなっているとき(一定間隔Bになっているとき)に、ユーザPC20においてスキャンアプリ22に関する操作が行われた場合の処理手順について説明する。図14は、ポーリング間隔が短くなっているときにユーザPCにおいてスキャンアプリに関する操作を行われた場合の処理手順を説明するためのシーケンス図である。
ポーリング間隔が短くなっているときに(S341〜S344)、スキャンアプリ22のユーザによってスキャン設定情報の編集が行われると(S345)、連携部223は、更新されたスキャン設定情報を含むスキャンアプリ22のアプリ情報をネットアプリ管理サーバ30のアプリ情報登録部31に送信する(S346)。アプリ情報登録部31は、受信されたアプリ情報によって、当該ユーザに対するアプリ情報管理テーブル35を更新する。
続いて、連携部213は、短くなっていたポーリング間隔を元の一定間隔Aに戻す(S347〜S350)。この場合、ユーザは、画像形成装置10から離れ、ユーザPC20において作業中であるため、スキャンが開始され、スキャン画像が転送される可能性は低いからである。
ところで、本実施の形態では、ネットアプリ管理装置30がユーザPC20と画像形成装置10との間を仲介する例について説明した。斯かる形態は、画像形成装置10と通信する装置をネットアプリ管理装置30に集約することで、画像形成装置10との間の通信プロトコルの対応をネットアプリ管理装置30に限定することができるといった利点がある。また、画像形成装置10への通信量を低減させることができるといった利点がある。但し、各ユーザPC20と画像形成装置10とが直接やりとりするようにしてもよい。この場合、各ユーザPC20がネットアプリ管理装置30の機能を有していればよい。
上述したように、本実施の形態によれば、スキャン画像が転送される可能性が低いときはスキャンアプリ22によるポーリングの間隔は長くされる。したがって、不必要に多量のパケットがネットワーク40上に送出されることが適切に抑制され、ネットワーク負荷の異常な増加が防止される。特に、ネットアプリは、各ユーザPC20ごとに配置されるため、複数のユーザPC20のスキャンアプリ22から同時期にポーリングが行われる可能性がある。したがって、スキャンアプリ22のポーリングによるネットワーク負荷の減少は重要な課題である。
また、スキャン画像が転送される可能性が高くなったときは、スキャンアプリ22によるポーリングの間隔は短くされる。したがって、スキャン画像がネットワークアプリ管理サーバ30に転送されてから、ユーザPC20に転送されるまでの時間を短縮化することができる。
また、スキャン画像が転送される可能性が更に高くなったとき(仲介部34がスキャン開始通知を受信したとき)は、仲介部34によってポーリングに対する応答間隔が長くされる。その結果、スキャン画像がスキャンアプリ側22に転送されるまでのポーリング回数を削減することができ、ネットワーク負荷を軽減させることができる。
このように、本実施の形態によれば、スキャンアプリ22と仲介部34との双方の協働した処理によって、スキャン画像の取得要求に関するポーリング間隔が適切に調節される。
また、本実施の形態によれば、画像形成装置10の操作パネル15から、当該画像形成装置10の機能を組み込んだ任意のネットアプリに実装されたワークフローを実行することが可能である。この際、画像形成装置10の機能については、ユーザに関連付けられたネットアプリ単位で設定情報を保持しているため、より個人的な(ユーザごとに固有の)ワークフローを実現することができる。
また、各ネットアプリを実行させるための操作は、異なる機能又はワークフローであっても、統一的である(ネットアプリ選択画面620におけるボタンの選択とスタートキーの押下)であるため、操作者は、機能やワークフローごとに実行のための操作を覚える必要はない。
更に、画像形成装置10はシンプルな画像入出力機能を提供するのみでよく、付加的な処理はクライアントPC20上で実行される。このため、画像形成装置10の機能の複雑化を回避することができると共に、あらゆる意味において制約の少ないクライアントPC20上に複雑な機能を実装することができる。
また、各ネットアプリは、自動的に検知され画像形成装置10に登録される。したがって、ユーザが画像形成装置10に対して各ネットアプリの登録作業を行う必要はない。また、不在のクライアントPC20上のネットアプリを登録対象から除外することができるため、画像形成装置10においてネットアプリを選択させる際、余分な実行候補が提示されることを回避することができる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。