説明

データ処理装置、データ処理方法、及びコンピュータプログラム

【課題】画像処理装置の内外から出される処理要求のうち、画像処理装置のユーザインタフェースを操作してユーザが指示した処理要求を画像処理装置が優先的に処理できるようにする。
【解決手段】ユーザが、ウェブサーバ130から送信されたアプリケーション画面(UI)を操作すると、画像処理装置110は、画像処理装置110の前に立つユーザによって出されたことを識別する識別IDを生成・格納する。その後、画像処理装置110は、ウェブサーバ130から受信した識別IDと、画像処理装置110内に格納されている識別IDとが一致しているか否かを判定する。そして、これらの識別IDが一致していない場合には、画像処理装置110内に格納されている識別IDが削除されるまで、他にウェブサービスの呼び出し要求がウェブサーバ130からあったとしても、そのウェブサービスの呼び出し要求を保留する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、データ処理方法、及びコンピュータプログラムに関し、特に、外部装置からの制御要求に基づいて処理を実行するために用いて好適なものである。
【背景技術】
【0002】
近年、プリンタ、コピー、ファクシミリ、スキャナ等の各装置の機能を1つの筐体内に収納した複合型の画像処理装置(いわゆるデジタル複合機)が一般的に知られている。
このような複合型の画像処理装置は、表示部、印刷部及び撮像部等を1つの筐体内に有すると共に、プリンタ、コピー及びファクシミリの夫々に対応する3種類のアプリケーションを有する。
そして、このような複合型の画像処理装置は、アプリケーションの切り替えによって、当該画像処理装置を、プリンタ、コピー、ファクシミリ、又はスキャナとして動作させるものである。
【0003】
更に、画像処理装置が、当該画像処理装置本来の機能に加えてウェブサーバ機能を兼ね備え、当該画像処理装置のユーザインタフェースを遠隔のウェブブラウザに提供できるようにするためのリモートユーザインタフェースが知られている。また、画像処理装置が、当該画像処理装置本来の機能に加えてウェブクライアント機能としてウェブブラウザを兼ね備え、遠隔のウェブサーバから様々なコンテンツを取得(ダウンロード)してブラウジングを行い、当該画像処理装置の機能に役立てる技術がある。
【0004】
更に、画像処理装置アプリケーションのユーザインタフェースとロジックとをウェブサーバに実装し、画像処理装置のウェブブラウザを利用して表示を行う方法が知られている。画像処理装置のウェブブラウザで行われた操作は、ウェブサーバを通してリモート要求(例えばウェブサービス)として外部から画像処理装置に処理要求が出される。
このような構成において、特許文献1では、ウェブサーバを特定する情報(ホスト名等)を画像処理装置とウェブサーバとでやりとりすることで、ウェブサーバからの処理要求が正当な要求かどうかを判断し、正当な要求である場合に処理を実行するようにしている。また、特許文献2では、外部及び装置内部からの処理要求の一方が実行中の場合には、当該装置における競合操作を防止するために、他方の処理要求を制御するようにしている。
【0005】
【特許文献1】特開2008−003834号公報
【特許文献2】特開2002−359718号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
以上のような背景技術に記載の構成において、画像処理装置が受信する外部処理要求は、当該画像処理装置のユーザインタフェースの操作の結果として生じるものと、当該画像処理装置以外での操作の結果として生じるものとが混在する。また、画像処理装置が、ユーザインタフェースの操作があってから実際に外部処理要求を受信するまでに、ウェブサーバでの処理にかかる分の時間が生じる。結果として、画像処理装置の前に立ち、直接ユーザインタフェースを操作するユーザが居た場合でも、それとは異なるユーザの操作から生じた外部処理要求が画像処理装置で先に受信され処理されてしまう場合がある。
【0007】
特許文献1に記載の技術では、外部処理要求をウェブサーバの情報をもとに、画像処理装置が受信した要求が正当であるかどうかを判断する。そのため、正当な外部処理要求であれば画像処理装置はその処理要求が、当該画像処理装置を起点として出されたものであっても、当該画像処理装置以外のクライアントPC等の外部装置を起点として出されたものであっても、全て受け入れてしまう。結果として、特許文献1に記載の技術では、デバイスの前に立つユーザが指示した外部処理要求を優先的に処理させることは出来ない。
また、特許文献2に記載の技術では、画像処理装置の内外で一方が競合する処理を実行していた場合に、他方の処理要求の実行を制御するものである。そのため、必ずしもデバイスの前に立つユーザが指示した外部処理要求が優先的に実行されるわけではない。
【0008】
本発明は、このような問題点に鑑みてなされたものであり、装置の内外から出される処理要求のうち、当該装置のユーザインタフェースを操作してユーザが指示した処理要求を当該装置で優先的に処理できるようにすることを目的とする。
【課題を解決するための手段】
【0009】
本発明のデータ処理装置は、一連の処理における一部の実行を外部装置に依頼し、その一部の処理の実行の結果に基づく制御要求を当該外部装置から受け取って当該一連の処理を実行するデータ処理装置であって、前記外部装置への処理の実行の依頼が、前記データ処理装置の操作部を通して出されたことを識別する識別情報を生成する生成手段と、前記生成手段により生成された識別情報を記憶媒体に格納する格納手段と、前記生成手段により生成された識別情報を前記外部装置へ送信する送信手段と、前記外部装置から前記制御要求を受信する受信手段と、前記格納手段により格納された識別情報と、前記受信手段により受信された制御要求に付与されている識別情報とが一致するか否かを判定する判定手段と、前記判定手段により識別情報が一致すると判定されると、前記制御要求に基づく処理を実行する実行手段とを有し、前記実行手段は、前記判定手段により識別情報が一致しないと判定されると、前記格納手段により格納された識別情報に基づく処理の実行が終了した後に、前記制御要求に基づく処理を実行することを特徴とする。
【0010】
本発明のデータ処理方法は、一連の処理における一部の実行を外部装置に依頼し、その一部の処理の実行の結果に基づく制御要求を当該外部装置から受け取って当該一連の処理を実行するデータ処理方法であって、前記外部装置への処理の実行の依頼が、データ処理装置の操作部を通して出されたことを識別する識別情報を生成する生成ステップと、前記生成ステップにより生成された識別情報を記憶媒体に格納する格納ステップと、前記生成ステップにより生成された識別情報を前記外部装置へ送信するための処理を行う送信ステップと、前記外部装置から前記制御要求を取得する取得ステップと、前記格納ステップにより格納された識別情報と、前記取得ステップにより取得された制御要求に付与されている識別情報とが一致するか否かを判定する判定ステップと、前記判定ステップにより識別情報が一致すると判定されると、前記制御要求に基づく処理を実行する実行ステップとを有し、前記実行ステップは、前記判定ステップにより識別情報が一致しないと判定されると、前記格納ステップにより格納された識別情報に基づく処理の実行が終了した後に、前記制御要求に基づく処理を実行することを特徴とする。
【0011】
本発明のコンピュータプログラムは、前記データ処理方法の各ステップをコンピュータに実行させることを特徴とする。
【発明の効果】
【0012】
本発明によれば、データ処理装置の操作部を通して出されたことを識別する識別情報を生成して格納しておく。その後、外部装置から制御要求があると、その制御要求に付与されている識別情報と、格納しておいた識別情報とが一致するか否かを判定する。この判定の結果、識別情報が一致する場合には、当該制御要求は、データ処理装置の操作部の操作に基づくものであると判定し、当該制御要求に基づく処理を実行する。一方、識別情報が一致しない場合には、当該制御要求は、データ処理装置の操作部の操作に基づくものでないと判定し、当該制御要求に基づく処理の実行を保留する。したがって、装置の内外から出される処理要求のうち、当該装置の操作部を操作してユーザが指示した処理要求を当該装置で優先的に処理できる。
【発明を実施するための最良の形態】
【0013】
(第1の実施形態)
以下に、図面を参照しながら、本発明の第1の実施形態について説明する。尚、各図面において同じ機能を有する箇所には必要に応じて同一の符号を付し、重複する説明を省略する。
[システム構成]
図1は、画像処理装置を含む画像処理システムの全体構成の一例を示すブロック図である。
図1において、LAN(Local Area Network)100は、WAN(Wide Area Network)やインターネットに接続されている。ホストコンピュータ120は、LAN100に接続されている。ホストコンピュータ120は、ウェブブラウザを備え、画像処理装置110、ウェブサーバ130にHTTP接続してサービスの提供を受けることができる。ホストコンピュータ120としては、例えばPC(パーソナルコンピュータ)やPDA(Personal Digital Assistant)や携帯電話がある。ウェブサーバ130では、ウェブアプリケーションサーバを実現するためのソフトウェアプロセス群が稼動する。ウェブサーバ130が有するソフトウェアモジュールには、ウェブサーバ部131と、アプリケーションサーバ部132と、データ管理部133とが含まれる。
【0014】
ウェブサーバ部131は、クライアントからのHTTPプロトコルによる要求(HTTP要求)に応答してHTML等のコンテンツを伝送する。アプリケーションサーバ部132は、HTTPプロトコルによる要求に応じて、所定の処理と、動的に変化する応答(HTTPプロトコルによる応答(HTTP応答))とを行う。具体的にアプリケーションサーバ部132は、CGI(Common Gateway Interface)プログラムやサーブレット(Servlet)等を実装する。データ管理部133は、アプリケーションサーバ部132から呼び出されるスクリプトデータの保存や、ウェブサーバ130が受信したデータの格納や、各種データの永続化を行う。
【0015】
認証サーバ140は、ユーザ認証及びユーザ情報管理を行う。認証サーバ140は、画像処理装置110、ウェブサーバ130から送信されるCredentialを使ってユーザ認証を行う。ユーザ認証に成功すると認証サーバ140は、Security Token(以下の説明ではSTと称する)を返す。Credentialとは、ユーザ認証に必要なユーザの信用情報であり、例えば、ユーザ名、ドメイン名、パスワード等を指す。STとは、Credentialが正当なものであることが確認されてユーザ認証に成功した場合に返される認証済みの印である。認証サーバ140によってユーザ認証が行われる機器間であれば、STを用いることにより再度Credentialによるユーザ認証を受ける必要がない。認証サーバ140により、LAN100に接続された機器間で統一的にユーザ認証を行うことができ、さらに機器間でユーザを一意に特定することができる。
【0016】
画像処理装置110は、画像等のデータの入出力・送受信と、各種の画像処理とを行うデジタル複合機(MFP;Multi Function Peripheral)である。画像処理装置110は、画像入力デバイスであるスキャナ113と、画像出力デバイスであるプリンタ114と、コントロールユニット111と、ユーザインタフェースである操作部112とを備える。スキャナ113、プリンタ114、及び操作部112は、夫々、コントロールユニット111に接続され、コントロールユニット111からの命令によって制御される。コントロールユニット111は、LAN100に接続されている。
【0017】
[画像処理装置110のソフトウェア構成]
次に、画像処理装置110のソフトウェア構成について図2を参照しながら説明する。図2は、画像処理装置110のソフトウェア構成の一例を示すブロック図である。
画像処理装置110において、ユーザインタフェース(UI)モジュール201は、オペレータが画像処理装置110に対する各種操作・設定を行う際に、画像処理装置110とユーザによる操作との仲介を行うモジュールである。このUIモジュール201は、オペレータの操作に従い、後述の各種モジュール203、205〜209に、入力した情報を転送して処理を依頼したり、データを設定したりする。
ウェブサーバ(Web Server)モジュール203は、ウェブクライアント(例えばホストコンピュータ120)からのHTTP要求に対して、画像処理装置110の管理情報等をウェブクライアントに送信することによりHTTP応答を行う。このHTTP応答は、後述のHTTPモジュール214、TCP/IP通信モジュール217、及びネットワークドライバ(Network Driver)221を介して行われる。
【0018】
ウェブブラウザ(Web Browser)モジュール209は、インターネット又はイントラネット上の各種ウェブサイト(ホームページ)の情報を読み出して表示を行うものである。このウェブブラウザモジュール209の詳細な構成は後述する。
HTTPモジュール214は、画像処理装置110がHTTPによる通信を行う際に使用される。HTTPモジュール214は、TCP/IP通信モジュール217を使って、ウェブサーバモジュール203、ウェブブラウザモジュール209、ウェブサービスプロバイダ(Web Service Provider)モジュール207に通信機能を提供する。
また、HTTPモジュール214は、HTTPをはじめとするウェブで用いられる各種プロトコル(特にセキュリティに対応したプロトコル)による通信機能を提供する。
【0019】
TCP/IP通信モジュール217は、ネットワークドライバ221を用いて、前述の各種モジュールにネットワーク通信機能を提供する。ネットワークドライバ221は、ネットワーク(例えばLAN100)に物理的に接続される部分を制御するものである。
認証サービス(Authentication Service)モジュール205は、ユーザが画像処理装置110の機能を利用するためのユーザ認証処理を管理・制御するものである。
ローカル認証サービス(LAS)モジュール210は、UIモジュール201から行われるユーザ認証に対する認証処理の管理・制御を行う。ローカル認証サービスモジュール210は、UIモジュール201からCredentialを受けると、認証サーバ140に対して認証処理を行う。認証サーバ140の認証方式により、ユーザ認証のためのデータ通信プロトコルやユーザ認証に必要なCredentialは異なる。そのためローカル認証サービスモジュール210は入れ替え可能である。ローカル認証サービスモジュール210を入れ替えることにより認証サーバ140の様々な認証方式に対応することができる。認証方式には、例えば、NTLM認証やKerberos認証等がある。また、ローカル認証サービスモジュール210の入れ替えにより、後述の簡易認証サービスモジュール213で、認証サーバ140を必要としない"画像処理装置110内の認証機能"を実行して認証を行うこともできる。更に、ローカル認証サービスモジュール210の入れ替えにより、タッチパネルやソフトキーボードによる認証情報の入力の他に、USBキーボードやUSBカードリーダによるCredentialの入力等、様々な形態で入力を受け付けることができる。
【0020】
リモート認証サービス(RAS)モジュール211は、ウェブクライアントからウェブサーバモジュール203を経由して行われるユーザ認証に対する認証処理の管理・制御を行う。リモート認証サービスモジュール211は、ウェブサーバモジュール203からCredentialを受けると認証サーバ140と認証処理を行う。リモート認証サービスモジュール211は、ローカル認証サービスモジュール210と同様に入れ替え可能である。リモート認証サービスモジュール211を入れ替えることにより認証サーバ140の様々な認証方式に対応することができる。
【0021】
ウェブサービス認証サービス(WAS)モジュール212は、後述のウェブサービスプロバイダモジュール207を経由して、画像処理装置110の機能を利用するための認証処理の管理・制御を行う。ウェブサービス認証サービスモジュール212は、認証処理を行うためのインタフェースをウェブサービスとしてネットワークに公開している。
認証コンテキスト管理(ACM)モジュール206は、ユーザ認証が成功した後に認証サーバ140から返されるSTと、認証サーバ140から取得可能なユーザ情報とを管理する。認証コンテキスト管理(ACM)モジュール206の詳細な説明は後述する。
ウェブサービスプロバイダ(Web Service Provider)モジュール207は、ウェブサービスとして、画像処理装置110(デバイス)の機能を提供する。
【0022】
ユーザ設定情報管理(UPM)モジュール208は、ユーザの設定情報・管理情報をユーザ単位で管理する。ユーザの設定情報を取得するためにはSTを必要とする。そこで、ユーザ設定情報管理モジュール208は、STをアクセスキーとして各ユーザの設定情報を取得する。
簡易認証サービス(SAS)モジュール213は、画像処理装置110内で、ユーザ認証とユーザ情報の管理とを行うモジュールである。認証サービス(モジュール210〜212)を入れ替えることにより、認証サーバ140及び簡易認証サービスモジュール213の何れで認証を行うかを切り替えられる。
【0023】
制御(Control)API218は、上流のモジュールに、下流のモジュールに対するインタフェースを提供するものである。ここで、上流のモジュールは、例えば、ウェブサーバモジュール203、ウェブブラウザモジュール209、ウェブサービスプロバイダモジュール207等である。一方、下流のモジュールは、例えば、後述のジョブマネージャ(Job Manager)モジュール219等である。この制御API218によって、上流及び下流のモジュール間の依存関係が軽減され、夫々の流用性を高めることができる。
ジョブマネージャ(Job Manager)モジュール219は、前述の各種モジュール201、203、205〜209から制御API218を介して指示される様々な処理を解釈し、後述の各モジュール220、224、226に指示を与える。また、ジョブマネージャモジュール219は、画像処理装置110内で実行されるハード的な処理を一元管理する。
【0024】
コーデックマネージャ(CODEC Manager)モジュール220は、ジョブマネージャモジュール219が指示する処理の中で、データの各種圧縮・伸長を管理・制御する。
FBEエンコーダ(FBE Encoder)モジュール221は、ジョブマネージャモジュール219や後述のスキャンマネージャ(Scan Manager)モジュール224によって実行されたスキャン処理によって読み出されたデータを圧縮する。この圧縮は、例えばFBEフォーマットを用いることにより実行される。
JPEGコーデック(JPEG CODEC)モジュール222は、ジョブマネージャモジュール219やスキャンマネージャモジュール224によって実行されたスキャン処理で読み出されたデータのJPEG圧縮等を行う。また、JPEGコーデックモジュール222は、プリントマネージャ(Print Manager)モジュール226によって実行された印刷処理で得られた印刷データのJPEG圧縮やJPEG展開処理等を行う。
MMRコーデック(MMR CODEC)モジュール223は、ジョブマネージャモジュール219やスキャンマネージャモジュール224によって実行されたスキャン処理で読み出されたデータのMMR圧縮等を行う。また、MMRコーデックモジュール223は、プリントマネージャモジュール226によって実行された印刷処理で得られた印刷データのMMR圧縮やMMR伸長処理等を行う。
【0025】
スキャンマネージャ(Scan Manager)モジュール224は、ジョブマネージャモジュール219が指示するスキャン処理を管理・制御する。スキャンマネージャモジュール224と、画像処理装置110に内部的に接続しているスキャナ113との間の通信が、SCSIドライバ225を介して行われる。
プリントマネージャ(Print Manager)モジュール226は、ジョブマネージャモジュール219が指示する印刷処理を管理・制御する。プリントマネージャモジュール226とプリンタ114との間のインタフェースが、エンジンインタフェース(Engine I/F)モジュール227により提供される。
また、画像処理装置110には、パラレルポートドライバ(Parallel Port Driver)228が搭載されている。パラレルポートドライバ228により不図示の出力機器にデータを出力する際のI/Fが提供される。
【0026】
[画像処理装置110の詳細構成]
次に、画像処理装置110のハードウェア構成について図3を参照しながら説明する。図3は、画像処理装置110のハードウェア構成の一例を示すブロック図である。
図3において、画像処理装置110は、画像処理装置110の全体を制御するコントロールユニット111を備える。コントロールユニット111は、画像入力デバイスであるスキャナ113や画像出力デバイスであるプリンタ114と相互に接続され、これらを制御する。また、コントロールユニット111は、LAN100や公衆回線320に接続され、これらを介して画像情報やデバイス情報等の入出力を行う。
【0027】
コントロールユニット111は、CPU301を有する。CPU301は、システムバス307を介して、RAM302、ROM303、HDD(ハードディスク装置)304、イメージバスI/F305、操作部I/F306、ネットワークI/F308、及びモデム309と相互に接続される。
RAM302は、CPU301の作業領域を提供するためのメモリである。また、RAM302は、画像データを一時的に記憶するための画像メモリとしても使用される。ROM303はブートROMである。ROM303には、システムのブートプログラムが格納されている。HDD304には、システムソフトウェアや、画像データ等が格納される。
【0028】
操作部I/F306は、操作部112との間で入出力を行うためのインタフェースである。例えば、操作部I/F306は、操作部112に表示される画像データを操作部112に対して出力する。また、操作部I/F306は、ユーザが操作部112を操作して入力した情報をCPU301に伝送する。
ネットワークI/F308は、LAN100と相互に接続され、LAN100を介して外部装置と情報の入出力を行う。モデム309は、公衆回線320と相互に接続され、公衆回線320を介して外部装置と情報の入出力を行う。
イメージバスI/F305は、システムバス307と、画像データを高速で転送する画像バス310とを相互に接続し、データ構造を変換するバスブリッジである。
【0029】
画像バス310には、RIP(ラスタイメージプロセッサ)311、デバイスI/F312、スキャナ画像処理部313、プリンタ画像処理部314、画像回転部315、及び画像圧縮部316が接続されている。
RIP311は、LAN100から受信されたPDLコードをビットマップイメージに展開する。デバイスI/F312は、スキャナ113及びプリンタ114とコントロールユニット111とを相互に接続し、画像データの同期系/非同期系の変換を行う。スキャナ画像処理部313は、入力された画像データに対し、補正、加工、編集等を行う。プリンタ画像処理部314は、プリンタ114で出力される画像データに対して、補正、解像度変換等を行う。画像回転部315は、画像データの回転を行う。画像圧縮部316は、多値画像データに対してはJPEG圧縮伸長処理を行い、2値画像データに対してはJBIG、MMR、MH等の圧縮伸長処理を行う。
【0030】
[画像処理装置110の外観構成]
次に、画像処理装置110の外観構成について図4を参照しながら説明する。図4は、画像処理装置110の外観構成の一例を示す図である。
画像処理装置110が備えるスキャナ113は、原稿となる紙上の画像を照明し、CCDラインセンサ(図示せず)を走査することによって、ラスタイメージデータを生成する。ユーザが原稿用紙を原稿フィーダ405のトレイ406にセットして、操作部112において読み取りの起動を指示する。すると、コントロールユニット111のCPU301がスキャナ113に指示を与える。この指示に基づいて、原稿フィーダ405が原稿用紙を1枚ずつフィードする。スキャナ113は原稿フィーダ405によってフィードされた原稿用紙の画像の読み取り動作を行う。
【0031】
プリンタ114は、ラスタイメージデータを用紙上に印刷する。印刷方式としては、感光体ドラムや感光体ベルトを用いた電子写真方式が用いられている。尚、印刷方式はこれらに限定されない。微少ノズルアレイからインクを吐出して用紙上に直接画像を印字するインクジェット方式等の他の印刷方式を用いてもよい。プリンタ114のプリント動作は、CPU301からの指示によって起動される。プリンタ114は、異なる用紙サイズ又は異なる用紙向きを選択可能なように複数の給紙段を有し、夫々に対応した用紙カセット401、402、403を搭載している。また、プリンタ114には排紙トレイ404が設けられており、この排紙トレイ404には、印字し終わった用紙が排紙される。
【0032】
[画像処理装置110の操作部112の外観構成]
次に、操作部112の構成について図5を参照しながら説明する。図5は、画像処理装置110が備える操作部112の外観構成の一例を示す図である。
操作部112は、図5に示すように、LCD上にタッチパネルシート502が貼られているLCD表示部501を有する。このLCD表示部501には、システムの操作画面及びソフトキーが表示される。LCD表示部501に表示されているソフトキーがユーザによって押されると、押された位置を示す位置情報がCPU301に伝えられる。
また、操作部112には、スタートキー503a、ストップキー503b、IDキー503c、及びリセットキー503d等の各種ハードキーが設けられている。スタートキー503aは、原稿画像の読み取り動作の開始を指示するためのキーであり、スタートキー503aの中央部には、緑と赤の2色LED表示部506が設けられている。2色LED表示部506は、その色によってスタートキー505が使用可能な状態にあるか否かを表す。ストップキー503bは、稼働中の動作を止めるためのキーである。IDキー503cは、ユーザがユーザIDを入力するときに用いられるキーである。リセットキー503dは操作部112からの設定を初期化するときに用いられるキーである。
【0033】
[画像処理装置110の操作部112の構成]
次に、操作部112の構成について図6を参照しながら説明する。図6は、操作部112の詳細な構成の一例を示すブロック図である。
操作部112は、図6に示すように、操作部I/F306を介してシステムバス307に接続される。システムバス307には、前述したように、CPU301、RAM302、ROM303、HDD304等が接続されている(図3を参照)。
操作部I/F306は、ユーザからの入力を制御するための入力ポート601と、画面出力デバイスを制御するための出力ポート602とを有する。入力ポート601は、ユーザが、タッチパネルシート502や、各種ハードキーを含むキー群503を操作して入力した情報をCPU301に渡す。CPU301は、ユーザが入力した情報と、制御プログラムとに基づいて表示画面データを生成し、出力ポート602を介して、LCD表示部501に表示画面を出力する。また、CPU301は、出力ポート602を介して必要に応じて2色LED表示部506を制御する。
【0034】
[画像処理装置110のウェブブラウザモジュール209の構成]
ウェブブラウザモジュール209は、HTTPモジュール214を介して、他のネットワークノードとの間で接続を確立し通信する。この通信においては、URLによって記述されたリソースに対してHTTP要求が発行され、その応答が得られる。この過程で、各種符号化形式に則した通信データの符号化・復号化も行われる。
イベント処理部(図示せず)は、操作部112に設けられているタッチパネルシート502や各キー(ソフトキーやハードキー)等に対してユーザが行った操作のイベントを受信して、各イベントに対応した処理を行う。また、イベント処理部は、制御API218から、画像処理装置110やジョブ等の状態遷移のイベントを受信して、各イベントに対応した処理を行う。スクリプトインタプリタ(図示せず)は、JavaScript(登録商標、ECMA Script)等のスクリプトを解釈し実行する。スクリプトは、文書に埋め込まれていたり、文書からリンクされた別ファイル中に記述されていたりする。コンテンツの提供者は、スクリプトによって、提供する文書の動的な挙動をプログラムできる。
【0035】
[HTTPプロトコルによる要求と応答の流れ]
図7は、HTTPプロトコルによる要求と応答の処理の流れの一例を説明する図である。図7に示すように、クライアント701は、HTTP要求を送信しHTTP応答を受信するソフトウェアである。クライアント701は、画像処理装置110に内蔵されているウェブブラウザや、ホストコンピュータ120で稼動する一般的なウェブブラウザに相当する。サーバ702は、HTTP要求を受信して対応する処理を行い、更にHTTP応答を返信するソフトウェアである。サーバ702は、ウェブサーバ130に相当するものである。
【0036】
クライアント701は、HTTP要求をGETメソッド又はPOSTメソッドの何れかの方法で送信することができる。
まず、クライアント701がHTTP要求をGETメソッドでサーバ702に送信する場合を説明する。クライアント701が所望のリソースに対するHTTP要求703をGETメソッドでサーバ702に送信する場合、リソースは一般にURI(特にURL)形式によって指定される。サーバ702は、HTTP要求703により指定されたリソースに対応するデータを取得又は生成し、このデータをHTTP応答704によって返送する。
【0037】
次に、クライアント701がHTTP要求をPOSTメソッドでサーバ702に送信する場合を説明する。HTML文書にフォーム(form)が含まれ、その送信方法にPOSTメソッドが指定されている場合、以下のような処理が行われる。すなわち、クライアント701のウェブブラウザにより表示されたフォームにユーザにより入力された情報が符号化され、その符号化された情報(すなわちフォームへの入力内容)はHTTP要求705に添付されてサーバ702に送信される。サーバ702は、指定されたリソースが、クライアント701から送られたデータを受信して処理を行い、HTTP応答706を生成し、クライアント701に返信する。
【0038】
[画像処理装置110のウェブブラウザ画面構成]
次に、UIモジュール201により画像処理装置110のLCD表示部501に表示されるウェブブラウザの画面構成について図8を参照しながら説明する。図8は、画像処理装置110に表示されるウェブブラウザの画面構成の一例を示す図である。
ブラウザ画面800には、タブ801、URL入力フィールド808、OKボタン809、プログレスバー807、及びコンテンツ表示領域802が表示される。また、ブラウザ画面800には、戻るボタン803、進むボタン804、リロードボタン806、中止ボタン805、及びステータス領域810が表示される。
【0039】
タブ801は、ウェブブラウザ機能を実行するための画面(ブラウザ画面800)と、他の機能(コピー、ボックス、送信、拡張)を実行するための画面との切り替えを行うためのものである。URL入力フィールド808は、ユーザが所望のリソースのURLを入力するフィールドである。URL入力フィールド808をユーザが押すと、文字入力を行うための仮想的なフルキーボード(不図示)が、ブラウザ画面800に表示される。ユーザは、この仮想的なフルキーボード上に配置されたキートップを模したソフトキーを操作することによって所望の文字列を入力することができる。
【0040】
OKボタン809は、ユーザが入力したURLの文字列を確定するソフトキーである。OKボタン809が押下されてURLが確定されると、ウェブブラウザモジュール209は、例えば、当該URLで特定されるリソースの取得を行うためのHTTP要求を発行する。
プログレスバー807は、HTTP要求、HTTP応答による"コンテンツの取得処理"の進捗状況を示す。コンテンツ表示領域802は、取得したリソース等が表示される領域である。戻るボタン803は、コンテンツの表示の履歴を遡り、現時点で表示されているコンテンツの前に表示したコンテンツを表示し直すためにユーザによって押下されるソフトキーである。進むボタン804は、コンテンツの表示の履歴を遡って表示しているときに、現時点で表示しているコンテンツの後に表示したコンテンツの表示に戻るためにユーザによって押下されるソフトキーである。
【0041】
リロードボタン806は、現時点で表示しているコンテンツの再取得と再表示とを行うためにユーザによって押下されるソフトキーである。中止ボタン805は、実行中のコンテンツの取得処理を中止するためにユーザによって押下されるソフトキーである。ステータス領域810は、画像処理装置110の各種機能からのメッセージを表示する領域である。このステータス領域810には、ブラウザ画面800を表示中であっても、スキャナ113やプリンタ114や他の機能等から、ユーザの注意を促すためのメッセージを表示することができる。また、ウェブブラウザ機能からも、ステータス領域810にメッセージの表示を行うことができる。ウェブブラウザ機能は、リンク先のURL文字列、コンテンツのタイトル文字列、スクリプトによって指示されたメッセージ等を、ステータス領域810に表示することができる。
【0042】
[認証コンテキスト管理モジュール206]
図2に示した認証コンテキスト管理モジュール206は、認証コンテキストを管理する。各認証サービスモジュール210、211、212は、認証に成功すると認証コンテキストとして必要な情報を認証コンテキスト管理モジュール206に渡す。認証コンテキスト管理モジュール206は、各認証サービスモジュール210、211、212から受け取った情報に基づいて認証コンテキストを作成し、作成した認証コンテキストにユーザ情報を書き込む。認証に成功して認証コンテキストにユーザ情報が書き込まれると、それ以降のユーザの操作は全て認証コンテキストに書き込まれたユーザの権限で動作する。更に認証コンテキスト管理モジュール206は、認証コンテキストのライフサイクルを管理する。認証コンテキストのライフサイクルは認証コンテキストが作成されてからユーザのログアウト処理が行われるまでである。ログアウトの条件としては、ユーザによりログアウト処理がされることや、設定されたタイムアウト時間の間に何も操作が行われないことが挙げられる。この他、ログアウトの条件として、各種デバイス設定情報が変更されることや、低電力モードにモードが移行したことや、画像処理装置110が再起動したこと等が挙げられる。
【0043】
次に、認証コンテキストのデータ構造について図9を用いて説明する。図9は、認証コンテキストのデータ構造の一例を概念的に示す図である。
図9において、属性(Attribute)901の列には、認証コンテキストが持つ属性が示されている。データタイプ(DataType)902の列には、各属性に対応したデータタイプが示されている。
認証サービスタイプ属性(AuthSvcType)903は、どの認証サービスモジュール210、211、212で作られた認証コンテキストであるかを識別するための情報を格納する。認証サーバアドレス属性(AuthSerIP)904は、認証サーバ140のIPアドレスを格納する。ST属性(SecurityToken)905は、認証サーバ140から取得したSTを格納する。ユーザ名属性(UserName)906は、認証サーバ140から取得したユーザ名を格納する。ユーザID属性(UserID)907は、認証サーバ140から取得したユーザのユーザIDを格納する。
【0044】
グループ名属性(GroupName)908は、認証サーバ140から取得したユーザが所属するグループ名を格納する。グループID属性(GroupID)909は、認証サーバ140から取得したグループのグループIDを格納する。ドメイン名属性(DomainName)910は、認証サーバ140から取得したユーザが所属するドメイン名を格納する。メールアドレス属性(Email)911は、認証サーバ140から取得したユーザのメールアドレスを格納する。
【0045】
[ウェブサービス認証サービスモジュール212に対する処理の流れ]
図10は、ウェブサービス認証サービスモジュール212に対する処理の流れの一例を説明する図である。
クライアント1000は、ウェブサービス認証サービスモジュール212に対してウェブサービスとしてHTTP要求を送信し、ウェブサービス認証サービスモジュール212からHTTP応答を受信するソフトウェアであり、ウェブサーバ130に相当する。
【0046】
まず、ステップS1001において、クライアント1000は、画像処理装置110(ウェブサービス認証サービスモジュール212)に対して、認証方式を問い合わせるためのHTTP要求を送信する。
次に、ステップS1002において、ウェブサービス認証サービスモジュール212は、クライアント1001に対して認証方式を返信する。
【0047】
次に、ステップ1003において、クライアント1000は、ユーザ認証を依頼する。クライアント1000がウェブサービス認証サービスモジュール212に対してCredentialを渡してユーザ認証を依頼すると、ウェブサービス認証サービスモジュール212は、認証サーバ140に対してCredentialを送信する。認証サーバ140は、受信したCredentialを用いてユーザ認証を行う。ユーザ認証に成功すると認証サーバ140からSTが返される。
また、ステップS1003でクライアント1001からウェブサービス認証サービスモジュール212に対してSTが渡されると、ウェブサービス認証サービスモジュール212は、認証サーバ140に対してそのSTが正当であるかどうかの確認を依頼する。クライアント1001から渡されたSTが正当な場合には、認証サーバ140からOKが返る。
【0048】
ユーザ認証に成功するとウェブサービス認証サービスモジュール212は認証コンテキスト管理モジュール206に対して認証コンテキストの作成を依頼する。
認証コンテキスト管理モジュール206は、STとユーザ情報とを元に認証コンテキストを作成し保存する。
認証コンテキストが作成されると、ユーザは認証コンテキストに基づいた権限で画像処理装置110のサービスをウェブサービス経由で利用することができる。
【0049】
次に、ステップS1004において、ウェブサービス認証サービスモジュール212は、クライアント1001に対してSTを返す。
次に、ステップS1005において、クライアント1001は、ウェブサービス記述のヘッダ部分にSTを挿入し、画像処理装置110に対してウェブサービスについてのHTTP要求を送る。ウェブサービス認証サービスモジュール212は、HTTP要求のヘッダ部のSTを読み取り、STが正当なものであるかを判断する。この判断の結果、STが不正である場合にはステップS1006において、ウェブサービス認証サービスモジュール212は、クライアント1001に対してエラーを返す。
【0050】
一方、STが正当なものである場合は、次の処理を行う。すなわち、ウェブサービス認証サービスモジュール212は、ローカル認証サービスモジュール210経由で作成した認証コンテキストとウェブサービス認証サービスモジュール212経由で作成した認証コンテキストとが一致しているかどうかを確認する。この確認の結果、これらの認証コンテキストが一致していれば、ウェブサービス認証サービスモジュール212は、ウェブサービスプロバイダモジュール207に対してウェブサービスの呼び出しを行う。一方、これらの認証コンテキストが一致していなければ、ステップS1006において、ウェブサービス認証サービスモジュール212は、クライアント1001に対してエラーを返す。
【0051】
ステップS1007において、クライアント1001は、画像処理装置110に対して、ログアウトのHTTP要求を送る。ウェブサービス認証サービスモジュール212は、ログアウト要求を受け取ると、HTTP要求に対応する認証コンテキストを破棄することを認証コンテキスト管理モジュール206に依頼する。認証コンテキスト管理モジュール206は、該当する認証コンテキストを破棄する。
ステップS1008において、ウェブサービス認証サービスモジュール212は、ステップS1007で認証コンテキストが破棄されたらOKをクライアント1001に返す。一方、ステップS1007で認証コンテキストが破棄されなかったら、ウェブサービス認証サービスモジュール212は、NGをクライアント1001に返す。
【0052】
[ウェブサーバ130の詳細構成]
次に、ウェブサーバ130の詳細な機能構成について図11を参照しながら説明する。図11は、ウェブサーバ130の機能構成の一例を示すブロック図である。
図11において、ビジネスロジック部1103は、HTTP要求に応じてウェブサーバ部131から呼び出されて処理を実行する。ビジネスロジック部1103は、動的に生成したHTMLを処理結果としてウェブサーバ部131に返す。
【0053】
スクリプトエンジン部1102は、ビジネスロジック部1103から呼び出され、後述のプログラム管理領域1105からスクリプト(プログラム実行記述書)を読み出してビジネスロジック部1103に返す。ビジネスロジック部1103は、スクリプトエンジン部1102で読み出されたスクリプトを順次実行する。
ウェブサービスリクエスタ部1101は、ビジネスロジック部1103から呼び出される。ウェブサービスリクエスタ部1101は、外部のウェブサービスプロバイダ(例えばウェブサービスプロバイダモジュール207)に対してウェブサービスの呼び出しを行う。
【0054】
認証部1104は、ビジネスロジック部1103から呼び出される。認証部1104は、ユーザ認証処理の管理・制御と、ユーザ情報の管理と、ユーザ設定の管理とを行う。
プログラム管理領域1105は、各種スクリプトと、スクリプトから呼び出されるプログラムとを管理する。プログラム管理領域1105のデータは、プラグイン機構(不図示)により追加や変更が可能である。このプラグイン機構により、ウェブサーバ130の機能のカスタマイズを可能にする。
データ格納領域1106は文書等のデータを格納する領域である。
プリファレンスデータ管理領域1107は、ユーザ毎の設定情報を格納する領域である。ビジネスロジック部1103は、認証部1104より取得したSTをアクセスキーとしてプリファレンスデータ管理領域1107に格納されたユーザ毎の設定情報を取得し、取得したユーザ毎の設定情報を用いて、ユーザ毎にカスタマイズした画面や機能を提供する。
【0055】
次に、図12に示すフローチャートを用いて、画像処理システムの処理の一例について説明する。図12に示すフローチャートの処理は、認証処理の有無に関わらず実行することが可能であるので、図12では、図9、図10に示した認証関連の処理の説明を省略する。
まず、ステップS1201において、画像処理装置110は、操作部112を通してユーザからの指示を検出すると、ブラウザ画面800を起動する。ブラウザ画面800が起動すると、ウェブブラウザモジュール209は、ユーザ設定情報管理モジュール208で管理されている初期表示URL情報に基づき、ウェブサーバ130のURLに対して、GETメソッドのHTTP要求を送信する。
【0056】
次に、ステップS1202において、ウェブサーバ130のウェブサーバ部131は、画像処理装置110からGETメソッドのHTTP要求を受信する。すると、ビジネスロジック部1103がユーザに対応したアプリケーション画面(UI)の構築を行い、画面UIを作成する。ビジネスロジック部1103が作成したアプリケーション画面(UI)を、ステップS1201で行われたHTTP要求に対するHTTP応答として、ウェブサーバ部131は、画像処理装置110に送信(返信)する。このアプリケーション画面(UI)は、例えばHTMLのようにウェブブラウザモジュール209が解釈及び実行可能な形式で作成されるものとする。
【0057】
また、ビジネスロジック部1103は、このアプリケーション画面(UI)に加えて、次の2つのスクリプトを生成する。1つは、アプリケーション画面(UI)への指示が画像処理装置110の前に立つユーザによって出されたことを識別する識別IDを発行するスクリプトである。以下の説明では、このスクリプトを必要に応じて識別ID発行スクリプトと称する。
もう1つは、発行した識別IDを画像処理装置110のHDD304に格納するスクリプトである。以下の説明では、このスクリプトを必要に応じて識別ID格納スクリプトと称する。
これらの各スクリプトは、画像処理装置110のウェブブラウザモジュール209によって実行される。スクリプトは、アプリケーション画面(UI)と関連付けられて、ウェブサーバ部131によって画像処理装置110に送信される。
【0058】
次に、ステップS1203において、画像処理装置110のウェブブラウザモジュール209は、ウェブサーバ130がHTTP応答として送信したアプリケーション画面(UI)と、識別ID発行スクリプトと、識別ID格納スクリプトを受信する。そして、ウェブブラウザモジュール209は、受信したアプリケーション画面(UI)をブラウザ画面800に表示する。
図13は、アプリケーション画面(UI)の一例を示す図である。
図13において、ソフトボタン1301〜1304は、画像処理装置110の操作部112を通して、ユーザからの指示を検出する。すると、ウェブサーバ130のビジネスロジック部1103で、ユーザによって押下されたソフトボタンに対応したビジネスロジックが動作する。ビジネスロジックの動作が完了すると、ウェブサービスリクエスタ部1101は、画像処理装置110のウェブサービスプロバイダモジュール207を通して、各機能に対応したウェブサービスを呼び出す。
【0059】
ソフトボタン1301は、画像処理装置110で紙原稿をスキャンした後に、カラー印刷を行うためにユーザによって押下されるボタンである。ソフトボタン1302は、画像処理装置110で紙原稿をスキャンした後、白黒印刷を行うためにユーザによって押下されるボタンである。ソフトボタン1303は、画像処理装置110で紙原稿をスキャンした後、スキャンした画像データをPDFに変換し、ウェブサーバ130のデータ格納領域1106の論理領域(例えばフォルダA)に格納するためにユーザによって押下されるボタンである。ソフトボタン1304は、ウェブサーバ130のデータ格納領域1106に格納されているPDF文書(例えばファイル名が"XXX文書.pdf"の文書)を画像処理装置110で印刷するためにユーザによって押下されるボタンである。
【0060】
各ソフトボタンに対応したビジネスロジックはスクリプトによって定義されるものである。したがって、ソフトボタン1301〜1304以外にも、スクリプトによる定義次第で様々な動作パターンのソフトボタンを提供することが可能である。
以上のように本実施形態では、例えば、ステップS1203の処理を行うことにより第2の受信手段(第2の取得ステップ)の一例が実現される。また、例えば、アプリケーション画面(UI)の情報がユーザインタフェースの情報に相当し、識別ID発行スクリプトが生成手段の実行を指示する情報に相当し、識別ID格納スクリプトが格納手段の実行を指示する情報に相当する。
【0061】
図14は、識別IDの一例を示す図である。図14に示す識別IDは、後述のステップS1207で発行される。
図14において、情報1401は、識別IDを構成する情報の一例を示す。画像処理装置110の名称(IPアドレス)、 アプリケーション画面(UI)を実行した日時、及びランダムな文字列等から、少なくとも1つを利用して識別IDを発行する。
情報1402は、識別IDの一例を示す。後述のステップS1207で発行された識別IDは、後述のステップS1208において、画像処理装置110のHDD304に格納される。画像処理装置110の操作部112を通して、ユーザからのアプリケーション画面(UI)の実行指示を検出すると、UIモジュール201はウェブブラウザモジュール209にボタン押下イベントを通知する。すると、ウェブブラウザモジュール209は、アプリケーション画面(UI)に関連付いている識別ID発行スクリプトを実行する。本実施形態では、画像処理装置110のウェブブラウザモジュール209に対応して、JavaScript関数の形式でウェブサーバ130のビジネスロジック部1103が識別ID発行スクリプトを生成する。
【0062】
図12の説明に戻り、ステップS1204において、画像処理装置110のUIモジュール201は、ユーザからの画面UI実行指示を検出すると、ウェブブラウザモジュール209にボタン押下イベント(UI実行イベント)を通知する。ウェブブラウザモジュール209は、ボタン押下イベント(UI実行イベント)を受信すると、アプリケーション画面(UI)に関連付いた識別ID発行スクリプトの実行を開始する。
次に、ステップS1205において、ウェブブラウザモジュール209は、画像処理装置110のHDD304に既に識別IDが格納されているか否かを判定する。この判定の結果、既にHDD304に識別IDが格納されている場合には、ステップS1206に進む。ステップS1206に進むと、ウェブブラウザモジュール209は、既にウェブサーバ130で処理が実行中であること示す情報をブラウザ画面800に表示して(不図示)、アプリケーション画面(UI)の実行を中断する。
【0063】
一方、画像処理装置110のHDD304に識別IDが格納されていない場合には、ステップS1207に進む。ステップS1207に進むと、ウェブブラウザモジュール209は、識別ID発行スクリプトを実行して、識別IDを発行する。
以上のように本実施形態では、例えば、ステップS1207の処理を行うことにより生成手段の一例が実現される。また、例えば、識別IDが識別情報に相当する。
次に、ステップS1208において、ウェブブラウザモジュール209は、識別ID格納スクリプトを実行して、ステップS1207で発行された識別IDを画像処理装置110のHDD304に格納する。
以上のように本実施形態では、例えば、ステップS1208の処理を行うことにより格納手段の一例が実現される。
【0064】
次に、ステップS1209において、HTTPモジュール214は、ステップS1204で発生したボタン押下イベント(UI実行イベント)を意味するPUTメソッドのHTTP要求を、ウェブサーバ130のウェブサーバ部131に送信する。このとき、HTTPモジュール214は、ステップS1207で発行された識別IDもウェブサーバ130に送信する。
以上のように本実施形態では、例えば、ステップS1209の処理を行うことにより送信手段の一例が実現される。
次に、ステップS1210において、ウェブサーバ130のウェブサーバ部131は、ステップS1209でHTTPモジュール214が送信したHTTP要求と識別IDを受信する。このとき、ウェブサーバ部131は、受信した識別IDをデータ格納領域1106に格納する。
【0065】
次に、ステップS1211において、ウェブサーバ部131は、ステップS1210で受信したHTTP要求に対応するロジックの処理を、ビジネスロジック部1103に依頼する。
次に、ステップS1212において、ビジネスロジック部1103は、ボタン押下イベント(押下されたボタン)に対応するスクリプトをプログラム管理領域1105から取得する。そして、ビジネスロジック部1103は、スクリプトエンジン部1102に、取得したスクリプトの実行処理を指示する。
次に、ステップS1213において、スクリプトエンジン部1102は、スクリプトの内容から、画像処理装置110に対する処理内容及び設定情報等を読み出す。そして、スクリプトエンジン部1102は、ビジネスロジック部1103にその結果を返す。
【0066】
次に、ステップS1214において、ビジネスロジック部1103は、ステップS1209で行われたHTTP要求に対応する処理(プログラム)を順次実行していく。
次に、ステップS1215において、ウェブサービスリクエスタ部1101は、画像処理装置110のウェブサービスプロバイダモジュール207に対して、ステップS1214の実行結果に対応したウェブサービスの呼び出しを行うHTTP要求を送信する。このとき、ウェブサービスリクエスタ部1101は、データ格納領域1106に識別IDが格納されている場合には、当該識別IDも画像処理装置110に返信する。このようにして識別IDが返信された後、当該識別IDはデータ格納領域1106から削除される。
【0067】
次に、ステップS1216において、画像処理装置110のウェブサービスプロバイダモジュール207は、ステップS1215で送信されたウェブサービスの呼び出し要求を受信する。前述したように、データ格納領域1106に識別IDが格納されている場合、ウェブサービスプロバイダモジュール207は、当該識別IDも受信する。
以上のように本実施形態では、例えば、ステップS1216の処理を行うことにより受信手段(取得ステップ)の一例が実現される。また、ウェブサービスの呼び出し要求が制御要求に相当する。
次に、ステップS1217において、画像処理装置110は、ステップS1216で受信した識別IDと、画像処理装置110のHDD304に格納されている識別IDとの照合を行う。
以上のように本実施形態では、例えば、ステップS1217の処理を行うことにより判定手段の一例が実現される。
【0068】
図15は、図2に示した画像処理装置110のソフトウェア構成に、図12のステップS1217で識別IDの照合を行う識別ID照合モジュールを追加した図である。
識別ID照合モジュール(IM)1501は、ウェブサービスプロバイダモジュール207が、ウェブサービスの呼び出し要求を含むHTTP要求をウェブサーバ130から受信すると、HTTP要求及び画像処理装置110のHDD304から識別IDを取得する。そして、識別ID照合モジュール(IM)1501は、取得した識別IDの値が一致するか否かを判定する。
【0069】
この判定の結果、HTTP要求から取得した識別IDと、画像処理装置110のHDD304から取得した識別IDとが一致する場合には、ステップS1219に進み、ウェブサービスの呼び出し処理を進める。
【0070】
ステップS1219に進むと、ウェブサービスプロバイダモジュール207は、HTTP要求に含まれるウェブサービスの呼び出し要求(外部処理要求)に対応するウェブサービスを呼び出す。
次に、ステップS1220において、ウェブサービスプロバイダモジュール207は、ステップS1219で呼び出したウェブサービスを実行する。
以上のように本実施形態では、例えば、ステップS1220の処理を行うことにより実行手段の一例が実現される。
次に、ステップS1221において、ウェブブラウザモジュール209は、ウェブサービスの実行が終了したのを確認した後、画像処理装置110のHDD304に格納されている識別IDを削除する。
以上のように本実施形態では、例えば、ステップS1221の処理を行うことにより削除手段の一例が実現される。
【0071】
一方、ステップS1217において、ウェブサーバ130から受信したHTTP要求から取得した識別IDと、画像処理装置110のHDD304から取得した識別IDとが異なると判定された場合には、ステップS1218に進む。この場合、識別ID照合モジュール(IM)1501は、ウェブサーバ130から受信したHTTP要求が、ステップS1204で発生したボタン押下イベントに起因するものではないと判断する。つまり、識別ID照合モジュール(IM)1501は、ウェブサーバ130から受信したHTTP要求が、画像処理装置110の前にいるユーザの操作によるものではないと判断する。尚、ウェブサーバ130から受信したHTTP要求から取得した識別IDと、画像処理装置110のHDD304から取得した識別IDとが異なる場合には、ウェブサーバ130から受信したHTTP要求に識別IDが付与されていない場合もある。
【0072】
図16は、図12のステップS1218で行われる排他処理の一例を説明するフローチャートである。
まず、ステップS1601において、ウェブサービスプロバイダモジュール207は、画像処理装置110のHDD304に識別IDが格納されているか否かを判定する。この判定の結果、画像処理装置110のHDD304に識別IDが格納されていない場合には、ステップS1602を省略して後述のステップS1603に進む。
一方、画像処理装置110のHDD304に識別IDが格納されている場合には、ステップS1602に進む。ステップS1602に進むと、ウェブサービスプロバイダモジュール207は、画像処理装置110のHDD304に格納されている識別IDに対応するウェブサービスの実行が終了し、当該識別IDが削除されるまで待機する。これにより、ウェブサービスの呼び出し要求を含むHTTP要求をウェブサーバ130から受信しても、当該ウェブサービスは実行されずに保留される。
【0073】
そして、画像処理装置110のHDD304に格納されている識別IDが削除されると、ステップS1603に進む。ステップS1603に進むと、ウェブサービスプロバイダモジュール207は、HTTP要求に含まれるウェブサービスの呼び出し要求(外部処理要求)に対応するウェブサービスを呼び出す。
次に、ステップS1604において、ウェブサービスプロバイダモジュール207は、ステップS1603で呼び出したウェブサービスを実行する。
以上のように本実施形態では、例えば、ステップS1604の処理を行うことにより実行手段の一例が実現される。
【0074】
以上のように本実施形態では、ユーザが、ウェブサーバ130から送信されたアプリケーション画面(UI)を操作すると、ウェブブラウザモジュール209は、画像処理装置110の前に立つユーザによって出されたことを識別する識別IDを生成・格納する。そして、HTTPモジュール214は、そのUIの操作内容を示すUI実行イベントと共に、生成した識別IDをウェブサーバ130に送信する。ウェブサーバ130は、受信した識別IDを一時的に格納すると共に、受信したUI実行イベントに対応する処理を実行する。そして、ウェブサーバ130は、実行した結果に対応するウェブサービスの呼び出し要求を一時的に格納した識別IDと共に画像処理装置110に送信する。画像処理装置110の識別ID照合モジュール(IM)1501は、ウェブサーバ130から受信した識別IDと、画像処理装置110内に格納されている識別IDとが一致しているか否かを判定する。そして、これらの識別IDが一致していない場合には、画像処理装置110内に格納されている識別IDが削除されるまで、他にウェブサービスの呼び出し要求がウェブサーバ130からあったとしても、そのウェブサービスの呼び出し要求を保留する。
【0075】
このように本実施形態では、画像処理装置110の前に立つユーザが指示した外部処理要求に対応した"画像処理装置110の各機能へのウェブサービスの呼び出し要求"に、識別IDが添付される。この識別IDは、ウェブサーバ130から画像処理装置110にのみ配信される画面UIを実行することによって画像処理装置110で発行及び保存される情報である。すなわち、画像処理装置110以外の装置から画像処理装置110に対して出されるウェブサービスの呼び出しには含まれない情報である。
したがって、画像処理装置110は、ウェブサーバ130から受信した外部処理要求(ウェブサービスの呼び出し要求)が、画像処理装置の前に立つユーザから指示されたものであるか否かを識別IDの有無で判別することができる。よって、画像処理装置の前に立つユーザが指示した外部処理要求を優先的に且つ安全に実行することが可能となる。
【0076】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。前述した第1の実施形態では、ウェブサーバ130のウェブサービスリクエスタ部1101から画像処理装置110のウェブサービスプロバイダモジュール207に送信されるウェブサービスの呼び出し要求が単一の場合について説明した。これに対し本実施形態では、ウェブサービスの呼び出し要求が連続して複数回行われる場合について説明する。このように本実施形態と前述した第1の実施形態とは、ウェブサーバ130がウェブサービスの呼び出し要求を行う際の処理の一部と、画像処理装置110がウェブサービスを呼び出して実行する際の処理の一部とが主として異なる。したがって、本実施形態の説明において、前述した第1の実施形態と同一の部分については詳細な説明を省略する。
【0077】
図17は、画像処理システムの本実施形態における処理の一例について説明するフローチャートである。前述したように本実施形態では、ウェブサーバ130のウェブサービスリクエスタ部1101から画像処理装置110のウェブサービスプロバイダモジュール207に対して送信される"ウェブサービスの呼び出し要求"が連続して行われる。
ウェブサービスの呼び出し要求が連続して行われる場合とは、図12のステップS1204からステップS1221までに、ステップS1220におけるウェブサービスの実行が複数回行われる状況を指す。
【0078】
図17のフローチャートは、ウェブサービス呼び出しが単一の場合である図12のフローチャートと重複する点が多い。そのため、図17のフローチャートの説明に当たっては、図12のフローチャートと差異が生じる部分のみ説明する。
図17のステップS1701〜S1712は、ステップS1201〜S1212と同様のため、その詳細な説明を省略する。
したがって、本実施形態では、例えば、ステップS1703の処理を行うことにより、第2の受信手段(第2の取得ステップ)の一例が実現され、ステップS1707の処理を行うことにより、生成手段の一例が実現される。また、例えば、ステップS1708の処理を行うことにより、格納手段の一例が実現され、ステップS1709の処理を行うことにより、送信手段の一例が実現される。
【0079】
ステップS1713において、ウェブサーバ130のスクリプトエンジン部1102は、スクリプトの内容から、画像処理装置110に対する処理内容及び設定情報等を読み出す。そして、スクリプトエンジン部1102は、ビジネスロジック部1103にその結果を返す。このとき、スクリプトエンジン部1102は、スクリプトの内容から、処理中にウェブサービスの呼び出しが連続して実行されるかどうかの情報を取得して、ビジネスロジック部1103にその結果を返す。
【0080】
次に、ステップS1714において、ビジネスロジック部1103は、ステップS1713でスクリプトエンジン部1102から受け取った情報に基づいて、連続してウェブサービスの呼び出しを実行するか否かを判定する。この判定の結果、連続してウェブサービスの呼び出しを実行しない場合には、ステップS1715を省略してステップS1716に進む。一方、連続してウェブサービスの呼び出しを実行する場合には、ステップS1715に進む。
ステップS1715に進むと、ビジネスロジック部1103は継続IDを発行する。継続IDは、画像処理装置110に対して、一連の処理の実行中に、ウェブサーバ130から連続してウェブサービスの呼び出しが実行されることを示す情報である。この継続IDは、ステップS1717においてHTTP要求と共にウェブサーバ130から画像処理装置110に対して送信される。
【0081】
ステップS1716〜S1723は、ステップS1214〜S1221と同様のため、その詳細な説明を省略する。
したがって、本実施形態では、例えば、ステップS1718の処理を行うことにより受信手段(取得ステップ)の一例が実現され、ステップS1722の処理を行うことにより実行手段の一例が実現される。また、例えば、ステップS1723の処理を行うことにより、削除手段の一例が実現される。
【0082】
ステップS1724において、画像処理装置110のウェブブラウザモジュール209は、ステップS1718において画像処理装置110のウェブサービスプロバイダモジュール207が受信したHTTP要求に継続IDが含まれているか否かを判定する。この判定の結果、HTTP要求に継続IDが含まれていない場合には、ステップS1725〜S1727を省略して図17のフローチャートによる処理を終了する。
【0083】
一方、HTTP要求に継続IDが含まれている場合には、ステップS1725に進む。ステップS1725に進むと、ウェブブラウザモジュール209は、識別IDを再度発行する。
以上のように本実施形態では、例えば、ステップS1725の処理を行うことにより生成手段の一例が実現される。
次に、ステップS1726において、ウェブブラウザモジュール209は、識別IDを画像処理装置110のHDD304に保存する。
以上のように本実施形態では、例えば、ステップS1726の処理を行うことにより格納手段の一例が実現される。
次に、ステップS1727において、HTTPモジュール214は、ステップS1725で発行した識別IDをウェブサーバ130に送信して、ステップS1710以降の一連の処理の実行を継続する。
以上のように本実施形態では、例えば、ステップS1727の処理を行うことにより送信手段の一例が実現される。
【0084】
以上のように本実施形態では、ウェブサーバ130は、画像処理装置110から送信された識別IDを含むHTTP要求に基づいて、連続してウェブサービスの呼び出しを実行するか否かを判定する。この判定の結果、連続してウェブサービスの呼び出しを実行する場合、ウェブサーバ130は、HTTP要求と共に識別IDと継続IDを画像処理装置110に送信する。画像処理装置110は、HTTP要求に継続IDが含まれている場合には、識別IDを再度発行してウェブサーバ130に送信する。よって、ウェブサーバ130で実行される一連の処理の過程で連続してウェブサービスの呼び出しが画像処理装置110に送信される場合でも、画像処理装置110以外の装置からのウェブサービスの呼び出しが一連の処理の実行中に割り込まれることを防止できる。
【0085】
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。第1の実施形態では、画像処理装置110に送信されるウェブサービスの呼び出しが単一の場合、第2の実施形態では、ウェブサービスの呼び出しが連続する場合に関して説明した。これに対し、本実施形態では、画像処理装置110が発行及び保存する識別IDを、画像処理装置110の各機能に対応するウェブサービス毎に管理する場合を例に挙げて説明する。このように本実施形態と前述した第1、第2の実施形態とは、識別IDに関わる処理の一部が主として異なる。したがって、本実施形態の説明において、前述した第1、第2の実施形態と同一の部分については詳細な説明を省略する。
【0086】
図18は、画像処理システムの本実施形態における処理の一例について説明するフローチャートである。図18のフローチャートは、ウェブサービスの呼び出しが単一の場合である図12のフローチャートと重複する点が多い。そのため、図18のフローチャートの説明に当たっては、図12のフローチャートと差異が生じる部分のみ説明する。
図18のステップS1801は、ステップS1201と同様のため、その詳細な説明を省略する。
次に、ステップS1802において、ウェブサーバ130のウェブサーバ部131は、画像処理装置110からGETメソッドのHTTP要求を受信する。すると、ビジネスロジック部1103がユーザに対応したアプリケーション画面(UI)の構築を行い、画面UIを作成する。ビジネスロジック部1103が作成したアプリケーション画面(UI)を、ステップS1801で行われたHTTP要求に対するHTTP応答として、ウェブサーバ部131は、画像処理装置110に送信(返信)する。
【0087】
また、ビジネスロジック部1103は、このアプリケーション画面(UI)に加えて、次の2つのスクリプトを生成する。1つは、このアプリケーション画面(UI)への指示が画像処理装置110の前に立つユーザによって出されたことを識別する識別IDを発行する識別ID発行スクリプトである。
もう1つは、発行した識別IDを画像処理装置110のHDD304に格納する識別ID格納スクリプトである。
これらの各スクリプトは、画像処理装置110のウェブブラウザモジュール209によって実行される。更に本実施形態では、ビジネスロジック部1103は、これらのスクリプトに加えて、スクリプトの実行時に、画像処理装置110に対して、予め呼び出されるウェブサービスの種類を通知するスクリプトも生成する。スクリプトは、アプリケーション画面(UI)と関連付けられて、ウェブサーバ部131によって画像処理装置110に送信される。
【0088】
次のステップS1803〜S1805は、ステップS1203〜S1205と同様のため、その詳細な説明を省略する。
したがって、本実施形態では、例えば、ステップS1803の処理を行うことにより、第2の受信手段(第2の取得ステップ)の一例が実現される。
ステップS1806に進むと、ウェブブラウザモジュール209は、画像処理装置110のHDD304に格納済みである識別IDが、画像処理装置110のどの機能のウェブサービスの呼び出しに関連付いているか(外部処理要求)を判別する。ここで識別IDに関連付く機能とは、例えば、プリント機能、コピー機能、スキャン機能を指すものとする。
【0089】
次に、ステップS1807において、ウェブブラウザモジュール209は、UIモジュール201が検出した"ユーザからの画面UI実行指示"に対応するウェブサービスの呼び出しと同一のウェブサービスの呼び出しを行う識別IDが発行済みか否かを判定する。
この判定の結果、識別IDが発行済みである場合には、ステップS1808に進む。
ステップS1808に進むと、ウェブブラウザモジュール209は、既にウェブサーバ130で処理が実行中であること示す情報をブラウザ画面800に表示して(不図示)、アプリケーション画面(UI)の実行を中断する。一方、識別IDが発行済みでない場合には、ステップS1809に進み、ウェブブラウザモジュール209は、識別ID発行スクリプトを実行して、識別IDを発行する。このとき、ウェブブラウザモジュール209は、実行するウェブサービスの種類を判別するための情報も生成し、生成した情報を識別IDに関連付ける。
以上のように本実施形態では、例えば、ステップS1809の処理を行うことにより生成手段の一例が実現される。また、例えば、識別IDが識別情報に対応し、実行するウェブサービスの種類を判別するための情報が、処理判別情報に対応する。
【0090】
ステップS1809〜S1819は、ステップS1207〜S1217と同様のため、その詳細な説明を省略する。ただし、前述したように、ステップS1809では、識別IDに加えて、画像処理装置110のどの機能のウェブサービスを呼び出すかを示す情報を生成する。また、ステップS1810では、これら識別IDと、画像処理装置110のどの機能のウェブサービスを呼び出すかを示す情報をHDD304に格納する。
したがって、本実施形態では、例えば、ステップS1810の処理を行うことにより格納手段の一例が実現され、ステップS1811の処理を行うことにより送信手段の一例が実現される。また、例えば、ステップS1818の処理を行うことにより、受信手段(取得ステップ)の一例が実現される。
【0091】
ステップS1819の判定の結果、画像処理装置110のHDD304に格納した識別IDと、ウェブサーバ130から受信したHTTP要求に含まれる識別IDとが異なる場合には、ステップS1820に進み、排他処理が行われる。
以上のように本実施形態では、例えば、ステップS1819の処理を行うことにより第1の判定手段の一例が実現される。
【0092】
図19は、図18のステップS1820で行われる排他処理の一例を説明するフローチャートである。
まず、ステップS1901において、ウェブブラウザモジュール209は、画像処理装置110のHDD304に識別IDが格納されているか否かを判定する。この判定の結果、識別IDが格納されていない場合には、ステップS1908に進む。ステップS1908に進むと、ウェブサービスプロバイダモジュール207は、HTTP要求に含まれるウェブサービスの呼び出し要求(外部処理要求)に対応するウェブサービスを呼び出す。
次に、ステップS1909において、ウェブサービスプロバイダモジュール207は、ステップS1908で呼び出したウェブサービスを実行する。
【0093】
一方、ステップS1901において、識別IDが格納されていると判定された場合には、ステップS1902に進む。そして、ウェブブラウザモジュール209は、HDD304に格納されている識別IDに関連付くウェブサービスの呼び出しの種類に応じて、外部処理要求の実行を保留するかどうかを決定する。
まず、ステップS1902において、ウェブブラウザモジュール209は、HDD304に格納されている識別IDに関連付くウェブサービスの呼び出しがスキャンサービスの呼び出しか否か(識別IDがスキャン処理に対応するものか否か)を判定する。
この判定の結果、HDD304に格納されている識別IDに関連付くウェブサービスの呼び出しがスキャンサービスの呼び出しの場合でない場合には、後述するステップS1903に進む。一方、HDD304に格納されている識別IDに関連付くウェブサービスの呼び出しがスキャンサービスの呼び出しの場合である場合には、ステップS1905に進む。ステップS1905に進むと、ウェブサービスプロバイダモジュール207は、ウェブサービスリクエスタ部1101から受信したウェブサービスの呼び出し(外部処理要求)が、スキャンサービスの呼び出し又はコピーサービスの呼び出しであるか否かを判定する。
【0094】
この判定の結果、ウェブサービスリクエスタ部1101から受信したウェブサービスの呼び出しが、スキャンサービスの呼び出し又はコピーサービスの呼び出しである場合には、ステップS1906に進む。ステップS1906に進むと、ウェブサービスプロバイダモジュール207は、画像処理装置110のHDD304に識別IDが格納されているか否かを判定する。この判定の結果、画像処理装置110のHDD304に識別IDが格納されていない場合には、ステップS1907を省略して後述のステップS1908に進む。
一方、画像処理装置110のHDD304に識別IDが格納されている場合には、ステップS1907に進む。ステップS1907に進むと、ウェブサービスプロバイダモジュール207は、画像処理装置110のHDD304に格納されている識別IDに対応するウェブサービスの実行が終了し、当該識別IDが削除されるまで待機する。これにより、ウェブサービスの呼び出し要求を含むHTTP要求をウェブサーバ130から受信しても、当該ウェブサービスは実行されずに保留される。そして、ステップS1908に進む。
【0095】
ステップS1908に進むと、ウェブサービスプロバイダモジュール207は、HTTP要求に含まれるウェブサービスの呼び出し要求(外部処理要求)に対応するウェブサービスを呼び出す。
次に、ステップS1909において、ウェブサービスプロバイダモジュール207は、ステップS1908で呼び出したウェブサービスを実行する。
【0096】
前述したように、ステップS1902において、HDD304に格納されている識別IDに関連付くウェブサービスの呼び出しがスキャンサービスの呼び出しの場合でないと判定された場合には、ステップS1903に進む。ステップS1903に進むと、ウェブブラウザモジュール209は、HDD304に格納されている識別IDに関連付くウェブサービスの呼び出しがコピーサービスの呼び出しか否か(識別IDがコピー処理に対応するものか否か)を判定する。
この判定の結果、HDD304に格納されている識別IDに関連付くウェブサービスの呼び出しがコピーサービスの呼び出しである場合には、ステップS1905に進む。そして、前述したように、ウェブサービスプロバイダモジュール207は、ウェブサービスリクエスタ部1101から受信したウェブサービス呼び出し(外部処理要求)が、スキャンサービスの呼び出し又はコピーサービスの呼び出しであるか否かを判定する。
【0097】
一方、ステップS1903において、結果、HDD304に格納されている識別IDに関連付くウェブサービスの呼び出しがコピーサービスの呼び出しでないと判定されると、ステップS1904に進む。この場合には、ステップS1902、S1903の判定の結果、HDD304に格納されている識別IDに関連付くウェブサービスの呼び出しはプリントサービスとなる。そのため、ステップS1904において、ウェブサービスプロバイダモジュール207は、ウェブサービスリクエスタ部1101から受信したウェブサービスの呼び出し(外部処理要求)が、プリントサービスであるか否かを判定する。
この判定の結果、ウェブサービスリクエスタ部1101から受信したウェブサービスの呼び出しが、プリントサービスである場合には、ステップS1906に進み、HDD304に格納されている識別IDが削除されるまで処理の実行を保留する。一方、ウェブサービスリクエスタ部1101から受信したウェブサービスの呼び出しが、プリントサービスでない場合には、前述したステップS1908に進み、外部処理要求(プリント処理)を実行する。
【0098】
以上のように本実施形態では、例えば、ステップS1902〜S1905の処理を行うことにより第2の判定手段の一例が実現され、ステップS1909の処理を行うことにより実行手段の一例が実現される。
【0099】
図20は、識別IDの一例を示す図である。図20に示す識別IDは、ステップS1707、S1725で発行される。図20において、情報2001は、識別IDを構成する情報の一例を示す。また、情報2002は、識別IDの一例を示す。図20に示すように、本実施形態では、図14に示した情報1401に、実行するウェブサービスの種類を判別するための情報を付与した識別ID2002が発行される。
【0100】
以上のように本実施形態では、アプリケーション画面(UI)への指示が画像処理装置110の前に立つユーザによって出されたことを識別する識別IDに、実行するウェブサービスの種類を判別するための情報を付与する。そして、実行するウェブサービスの種類を判別するための情報を比較し、同じ種類のウェブサービスを実行している場合に、外部処理要求に基づく処理を保留する。したがって、画像処理装置110のHDD304に識別IDが格納されている場合でも、ウェブサービスの呼び出しが重複しない場合には、不必要に処理の実行を排他的に制御することを防止することができる。
尚、本実施形態では、第1の実施形態だけでなく、第2の実施形態にも適用することができる。
【0101】
(第4の実施形態)
次に、本発明の第4の実施形態について説明する。ウェブサーバ130のビジネスロジック部1103が、画像処理装置110のHTTPモジュール214から受信したHTTP要求に対応する処理の実行に長時間を要する場合、ウェブサーバ130でタイムアウトが発生する。そうすると、画像処理装置110とウェブサーバ130とのHTTP接続が解除される。このとき、画像処理装置110は、HDD304に格納された識別IDに対応する外部処理要求を、ウェブサーバ130から受信することがない。このため、HDD304に格納された識別IDは削除されずに残ってしまい、他の外部処理要求の実行を妨害してしまう。
そこで、本実施形態では、ウェブサーバ130でタイムアウトが発生した場合でも、画像処理装置110に格納された識別IDを削除できるようにする。このように本実施形態は、前述した第1〜第3の実施形態に、ウェブサーバ130でタイムアウトが発生した場合の処理が追加されたものである。したがって、本実施形態の説明において、第1〜第3の実施形態と同一の部分についての詳細な説明を省略する。
【0102】
図21は、画像処理システムの本実施形態における処理の一例について説明するフローチャートである。前述したように、本実施形態では、ウェブサーバ130でタイムアウトが発生した場合に復旧処理を行うようにしている。
図21のフローチャートは、ウェブサービスの呼び出しが単一の場合である図12のフローチャートに対して、タイムアウト発生時の処理を追加したものである。そのため、図21のフローチャートの説明に当たっては、図12のフローチャートと差異が生じる部分のみ説明する。
【0103】
図21のステップS2101〜S2114は、ステップS1201〜S1214と同様のため、その詳細な説明を省略する。
したがって、本実施形態では、例えば、ステップS2103の処理を行うことにより、第2の受信手段(第2の取得ステップ)の一例が実現され、ステップS2107の処理を行うことにより、生成手段の一例が実現される。また、例えば、ステップS2108の処理を行うことにより、格納手段の一例が実現され、ステップS2109の処理を行うことにより、送信手段の一例が実現される。
【0104】
ステップS2114において、ウェブサーバ130のビジネスロジック部1103は、処理の実行中にタイムアウトが発生すると、ウェブサーバ部131にタイムアウト発生通知を出す。
次に、ステップS2115において、ビジネスロジック部1103は、タイムアウトが発生したか否かを判定する。この判定の結果、タイムアウトが発生した場合には、ステップS2116に進み、ウェブサーバ部131は、画像処理装置110に対してタイムアウト通知を送信する。
一方、タイムアウトが発生せずに、ビジネスロジック部1103での処理が完了した場合には、ステップS2117に進む。ステップS2117に進むと、ウェブサービスリクエスタ部1101は、画像処理装置110のウェブサービスプロバイダモジュール207に対して、外部処理要求(ウェブサービスの呼び出しを行うHTTP要求)と識別IDを送信する。このステップS2117の処理は、ステップS1215と同様である。
【0105】
次に、ステップS2118において、画像処理装置110のウェブサービスプロバイダモジュール207は、ステップS2116又はS2117で送信された情報(UI実行結果)を受信する。具体的には、識別IDが付与された外部処理要求、又はタイムアウト通知を受信する。
以上のように本実施形態では、例えば、ステップS2118の処理を行うことにより受信手段、第3の受信手段(取得ステップ、第3の取得ステップ)の一例が実現される。
次に、ステップS2119において、画像処理装置110のウェブブラウザモジュール209は、ステップS2118でウェブサーバ130から受信したUI実行結果がタイムアウト通知か否かを判定する。この判定の結果、UI実行結果が、正常な外部処理要求及び識別IDである場合には、ステップS2120に進む。ステップS2120以降の処理に関してはステップS1217〜S1221と同様である。
したがって、本実施形態では、例えば、ステップS2123の処理を行うことにより実行手段の一例が実現される。
【0106】
一方、UI実行結果が、タイムアウト通知である場合には、ステップS2124に進み、ウェブブラウザモジュール209は、画像処理装置110のHDD304に格納されている識別IDを削除して、処理を終了する。このとき、ウェブブラウザモジュール209は、ウェブサーバ130でのタイムアウトの発生により、処理が中断したことを示す情報を画像処理装置110のブラウザ画面800に表示する。
以上のように本実施形態では、例えば、ステップS2124の処理を行うことにより第2の削除手段の一例が実現される。
【0107】
以上のように本実施形態では、ウェブサーバ130でタイムアウトが発生した場合には、その旨を画像処理装置110に送信する。画像処理装置110は、ウェブサーバ130でタイムアウトが発生したことを知らされると、自身に格納している識別IDを削除する。したがって、ウェブサーバ130で処理が中断し、画像処理装置110に対して実行結果が送信されない場合に、画像処理装置110のHDD304に保存された識別IDが削除されずに残ることを防止することができる。したがって、その他の外部要求処理の実行を妨害することを防ぐことができる。
尚、本実施形態は、第1の実施形態だけでなく、第2、第3の実施形態にも適用することができる。
【0108】
(変形例)
前述した各実施形態では、図15に示すウェブブラウザモジュール209が解釈及び実行可能なHTML等によってウェブサーバ130が作成したアプリケーション画面(UI)を用いるようにした。しかしながら、画面UIはウェブサーバ130から画像処理装置110のウェブブラウザモジュール209に対して配信されるものに限らない。画面UIは、画像処理装置110のUIモジュール201に直接表示され、ユーザが実行するローカルユーザインタフェースであってもよい。
【0109】
以上、説明したように本発明を実施することによって、画像処理装置の前に立つユーザが指示した外部処理要求及びそれに対応するサーバから受信するウェブサービス呼び出しにのみ識別IDが付与されることになる。識別IDによって、画像処理装置の各機能のウェブサービスを利用するユーザが画像処理装置の前にいるか否かを判別することが可能となり、画像処理装置の前に立つユーザが指示した外部処理要求を優先的且つ安全に実行することが出来る。
【0110】
(本発明の他の実施形態)
前述した本発明の実施形態におけるデータ処理装置を構成する各手段、並びにデータ処理方法の各ステップは、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【0111】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0112】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図12、図16〜図19、図21に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【0113】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0114】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0115】
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
【0116】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【0117】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0118】
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0119】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0120】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【0121】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【0122】
【図1】本発明の第1の実施形態を示し、画像処理装置を含む画像処理システムの全体構成の一例を示すブロック図である。
【図2】本発明の第1の実施形態を示し、画像処理装置のソフトウェア構成の一例を示すブロック図である。
【図3】本発明の第1の実施形態を示し、画像処理装置のハードウェア構成の一例を示すブロック図である。
【図4】本発明の第1の実施形態を示し、画像処理装置の外観構成の一例を示す図である。
【図5】本発明の第1の実施形態を示し、画像処理装置が備える操作部の外観構成の一例を示す図である。
【図6】本発明の第1の実施形態を示し、操作部の詳細な構成の一例を示すブロック図である。
【図7】本発明の第1の実施形態を示し、HTTPプロトコルによる要求と応答の処理の流れの一例を説明する図である。
【図8】本発明の第1の実施形態を示し、画像処理装置に表示されるウェブブラウザの画面構成の一例を示す図である。
【図9】本発明の第1の実施形態を示し、認証コンテキストのデータ構造の一例を概念的に示す図である。
【図10】本発明の第1の実施形態を示し、ウェブサービス認証サービスモジュール212に対する処理の流れの一例を説明する図である。
【図11】本発明の第1の実施形態を示し、ウェブサーバの機能構成の一例を示すブロック図である。
【図12】本発明の第1の実施形態を示し、画像処理システムの処理の一例について説明するフローチャートである。
【図13】本発明の第1の実施形態を示し、アプリケーション画面(UI)の一例を示す図である。
【図14】本発明の第1の実施形態を示し、識別IDの一例を示す図である。
【図15】本発明の第1の実施形態を示し、図2に示した画像処理装置のソフトウェア構成に、識別IDの照合を行う識別ID照合モジュールを追加した図である。
【図16】本発明の第1の実施形態を示し、図12のステップS1218で行われる排他処理の一例を説明するフローチャートである。
【図17】本発明の第2の実施形態を示し、画像処理システムの処理の一例について説明するフローチャートである。
【図18】本発明の第3の実施形態を示し、画像処理システムの処理の一例について説明するフローチャートである。
【図19】本発明の第3の実施形態を示し、図18のステップS1820で行われる排他処理の一例を説明するフローチャートである。
【図20】本発明の第3の実施形態を示し、識別IDの一例を示す図である。
【図21】本発明の第4の実施形態を示し、画像処理システムの処理の一例について説明するフローチャートである。
【符号の説明】
【0123】
100 LAN
110 画像処理装置
112 操作部
113 スキャナ
114 プリンタ
120 ホストコンピュータ
130 ウェブサーバ

【特許請求の範囲】
【請求項1】
一連の処理における一部の実行を外部装置に依頼し、その一部の処理の実行の結果に基づく制御要求を当該外部装置から受け取って当該一連の処理を実行するデータ処理装置であって、
前記外部装置への処理の実行の依頼が、前記データ処理装置の操作部を通して出されたことを識別する識別情報を生成する生成手段と、
前記生成手段により生成された識別情報を記憶媒体に格納する格納手段と、
前記生成手段により生成された識別情報を前記外部装置へ送信する送信手段と、
前記外部装置から前記制御要求を受信する受信手段と、
前記格納手段により格納された識別情報と、前記受信手段により受信された制御要求に付与されている識別情報とが一致するか否かを判定する判定手段と、
前記判定手段により識別情報が一致すると判定されると、前記制御要求に基づく処理を実行する実行手段とを有し、
前記実行手段は、前記判定手段により識別情報が一致しないと判定されると、前記格納手段により格納された識別情報に基づく処理の実行が終了した後に、前記制御要求に基づく処理を実行することを特徴とするデータ処理装置。
【請求項2】
前記生成手段及び前記格納手段の実行を指示する情報と、ユーザインタフェースの情報とを前記外部装置から受信する第2の受信手段と、
前記第2の受信手段により受信されたユーザインタフェースの情報を、前記操作部に表示する表示手段とを有し、
前記生成手段は、前記外部装置への処理の実行の依頼が、前記表示手段により表示されたユーザインタフェースを通して出されたことを識別する識別情報を、前記第2の受信手段により受信された前記生成手段の実行を指示する情報に基づいて生成し、
前記格納手段は、前記生成手段により生成された識別情報を、前記第2の受信手段により受信された前記格納手段の実行を指示する情報に基づいて記憶媒体に格納することを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記判定手段により識別情報が一致すると判定され、前記実行手段により前記制御要求に基づく処理の実行が終了すると、前記格納手段により格納された識別情報を削除する削除手段を有することを特徴とする請求項1又は2に記載のデータ処理装置。
【請求項4】
前記実行手段は、前記格納手段により格納された識別情報が前記削除手段により削除されてから、前記制御要求に基づく処理を実行することを特徴とする請求項3に記載のデータ処理装置。
【請求項5】
前記生成手段は、前記外部装置への処理の実行の依頼が、前記データ処理装置の操作部を通して出されたことを識別する識別情報と、当該処理の種類を判別するための処理判別情報とを生成し、
前記格納手段は、前記生成手段により生成された識別情報と処理判別情報とを記憶媒体に格納し、
前記判定手段は、前記格納手段により格納された識別情報と、前記受信手段により受信された制御要求に付与されている識別情報とが一致するか否かを判定する第1の判定手段と、
前記第1の判定手段により識別情報が一致しないと判定されると、前記格納手段により格納された処理判別情報により判別される種類の処理が、前記受信手段により受信された制御要求に従って行う処理と一致するか否かを判定する第2の判定手段とを有し、
前記実行手段は、前記第1の判定手段により識別情報が一致すると判定された場合と、前記第2の判定手段により、前記格納手段により格納された処理判別情報により判別される種類の処理が、前記受信手段により受信された制御要求に従って行う処理と一致しないと判定された場合に、前記制御要求に基づく処理を実行し、
前記第2の判定手段により、前記格納手段により格納された処理判別情報により判別される種類の処理が、前記受信手段により受信された制御要求に従って行う処理と一致すると判定された場合には、前記格納手段により格納された識別情報に基づく処理の実行が終了した後に、前記制御要求に基づく処理を実行することを特徴とする請求項1〜4の何れか1項に記載のデータ処理装置。
【請求項6】
前記外部装置から、当該外部装置でタイムアウトが発生したことを示す通知を受信する第3の受信手段と、
前記第3の受信手段により、前記外部装置でタイムアウトが発生したことを示す通知が受信されると、前記格納手段により格納された識別情報を削除する第2の削除手段を有することを特徴とする請求項1〜5の何れか1項に記載のデータ処理装置。
【請求項7】
一連の処理における一部の実行を外部装置に依頼し、その一部の処理の実行の結果に基づく制御要求を当該外部装置から受け取って当該一連の処理を実行するデータ処理方法であって、
前記外部装置への処理の実行の依頼が、データ処理装置の操作部を通して出されたことを識別する識別情報を生成する生成ステップと、
前記生成ステップにより生成された識別情報を記憶媒体に格納する格納ステップと、
前記生成ステップにより生成された識別情報を前記外部装置へ送信するための処理を行う送信ステップと、
前記外部装置から前記制御要求を取得する取得ステップと、
前記格納ステップにより格納された識別情報と、前記取得ステップにより取得された制御要求に付与されている識別情報とが一致するか否かを判定する判定ステップと、
前記判定ステップにより識別情報が一致すると判定されると、前記制御要求に基づく処理を実行する実行ステップとを有し、
前記実行ステップは、前記判定ステップにより識別情報が一致しないと判定されると、前記格納ステップにより格納された識別情報に基づく処理の実行が終了した後に、前記制御要求に基づく処理を実行することを特徴とするデータ処理方法。
【請求項8】
前記生成ステップ及び前記格納ステップの実行を指示する情報と、ユーザインタフェースの情報とを前記外部装置から取得する第2の取得ステップと、
前記第2の取得ステップにより受信されたユーザインタフェースの情報を、前記操作部に表示する表示ステップとを有し、
前記生成ステップは、前記外部装置への処理の実行の依頼が、前記表示ステップにより表示されたユーザインタフェースを通して出されたことを識別する識別情報を、前記第2の取得ステップにより取得された前記生成ステップの実行を指示する情報に基づいて生成し、
前記格納ステップは、前記生成ステップにより生成された識別情報を、前記第2の取得ステップにより受信された前記格納ステップの実行を指示する情報に基づいて記憶媒体に格納することを特徴とする請求項7に記載のデータ処理方法。
【請求項9】
前記判定ステップにより識別情報が一致すると判定され、前記実行ステップにより前記制御要求に基づく処理の実行が終了すると、前記格納ステップにより格納された識別情報を削除する削除ステップを有することを特徴とする請求項7又は8に記載のデータ処理方法。
【請求項10】
前記実行ステップは、前記格納ステップにより格納された識別情報が前記削除ステップにより削除されてから、前記制御要求に基づく処理を実行することを特徴とする請求項9に記載のデータ処理方法。
【請求項11】
前記生成ステップは、前記外部装置への処理の実行の依頼が、前記データ処理方法の操作部を通して出されたことを識別する識別情報と、当該処理の種類を判別するための処理判別情報とを生成し、
前記格納ステップは、前記生成ステップにより生成された識別情報と処理判別情報とを記憶媒体に格納し、
前記判定ステップは、前記格納ステップにより格納された識別情報と、前記受信ステップにより受信された制御要求に付与されている識別情報とが一致するか否かを判定する第1の判定ステップと、
前記第1の判定ステップにより識別情報が一致しないと判定されると、前記格納ステップにより格納された処理判別情報により判別される種類の処理が、前記受信ステップにより受信された制御要求に従って行う処理と一致するか否かを判定する第2の判定ステップとを有し、
前記実行ステップは、前記第1の判定ステップにより識別情報が一致すると判定された場合と、前記第2の判定ステップにより、前記格納ステップにより格納された処理判別情報により判別される種類の処理が、前記受信ステップにより受信された制御要求に従って行う処理と一致しないと判定された場合に、前記制御要求に基づく処理を実行し、
前記第2の判定ステップにより、前記格納ステップにより格納された処理判別情報により判別される種類の処理が、前記受信ステップにより受信された制御要求に従って行う処理と一致すると判定された場合には、前記格納ステップにより格納された識別情報に基づく処理の実行が終了した後に、前記制御要求に基づく処理を実行することを特徴とする請求項7〜10の何れか1項に記載のデータ処理方法。
【請求項12】
前記外部装置から、当該外部装置でタイムアウトが発生したことを示す通知を取得する第3の取得ステップと、
前記第3の取得ステップにより、前記外部装置でタイムアウトが発生したことを示す通知が取得されると、前記格納ステップにより格納された識別情報を削除する第2の削除ステップとを有することを特徴とする請求項7〜11の何れか1項に記載のデータ処理方法。
【請求項13】
請求項7〜12の何れか1項に記載のデータ処理方法の各ステップをコンピュータに実行させることを特徴とするコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2010−157905(P2010−157905A)
【公開日】平成22年7月15日(2010.7.15)
【国際特許分類】
【出願番号】特願2008−335039(P2008−335039)
【出願日】平成20年12月26日(2008.12.26)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】