データ処理装置、データ処理装置の制御方法、及びプログラム
【課題】 データ処理装置の操作部を介してユーザが指示した処理を、外部装置からの処理要求に従って実行する場合に、当該処理要求がセッション不足によって実行されないことを未然に防ぐことができる。
【解決手段】 ネットワークを介して外部装置に接続されたデータ処理装置であって、外部装置が備えるユーザインタフェースを取得して表示する表示手段と、表示手段によって表示されたユーザインタフェースを介してユーザから指示を受付ける受付手段と、受付手段によって受付けた指示を外部装置に送信する指示送信手段と、データ処理装置を操作するユーザの認証に成功した場合に、外部装置との通信を行うためのセッションを確保する確保手段と、指示送信手段によって外部装置に送信された指示に対応する処理要求を、確保手段によって確保されたセッションを用いて外部装置から受信するよう制御する制御手段とを有する。
【解決手段】 ネットワークを介して外部装置に接続されたデータ処理装置であって、外部装置が備えるユーザインタフェースを取得して表示する表示手段と、表示手段によって表示されたユーザインタフェースを介してユーザから指示を受付ける受付手段と、受付手段によって受付けた指示を外部装置に送信する指示送信手段と、データ処理装置を操作するユーザの認証に成功した場合に、外部装置との通信を行うためのセッションを確保する確保手段と、指示送信手段によって外部装置に送信された指示に対応する処理要求を、確保手段によって確保されたセッションを用いて外部装置から受信するよう制御する制御手段とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置、データ処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【0002】
近年、プリンタ、コピー、ファクシミリ、スキャナ等の機能を有するデータ処理装置が一般的に知られている。MFP(Multi Function Peripheral)はその一例であるこのようなデータ処理装置は、プリンタ、コピーおよびファクシミリ、スキャナ等の機能をユーザの指示に基づいて実行する。
また、データ処理装置の中には、ブラウザを備え、ネットワーク上のウェブサーバにアクセスすることができるものがある。
さらに、ウェブサーバ等の外部装置に、データ処理装置を操作するためのユーザインタフェースを実装し、ユーザが、データ処理装置のブラウザをから当該ウェブサーバのユーザインタフェースを利用する方法が考えられている。
このような方法を用いた場合、データ処理装置のブラウザから外部装置のユーザインタフェースを介して行われた指示は、外部からの処理要求(印刷要求等)としてデータ処理装置に受信される。このようなデータ処理装置において、例えば、外部装置を識別する識別情報(ホスト名など)をデータ処理装置と外部装置間でやり取りすることで、正当な外部装置からの処理要求のみを実行するものがある。(特許文献1参照)
ここで、上記のようなデータ処理装置と外部装置とを用いるシステムにおいては、HTTP(Hyper Text Markup Language)プロトコルを用いる。当該HTTPプロトコルでは、外部装置が、データ処理装置からの処理要求があるたびにデータ処理装置とのコネクションを確立する。そして、外部装置は、データ処理装置からの処理要求に対してレスポンスを行う。そして、データ処理装置は、レスポンスがあると、ユーザのログイン情報やユーザ情報をセッション領域にセッション情報として記憶させ、一連の処理が終了した後に当該コネクションを切断する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−003834号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、データ処理装置の中には、一般的なウェブサーバ等の外部装置に比べて、セッション情報の管理に費やすことのできるメモリリソースが少ないものがあり、そのようなデータ処理装置で確保できるセッションの数には限りが有る。
このような、データ処理装置は、ネットワークを介して複数のPCに接続されていることがあり、それらのPCからの処理要求を受付けた場合に、その処理要求のためにセッションを確保することがある。
そのため、ユーザがデータ処理装置にログインした後、データ処理装置の操作部から外部装置のインタフェースを介して、データ処理装置に処理要求を送信した場合に、データ処理装置で管理できるセッションが不足している場合がある。その場合、セッション不足が原因で、データ処理装置によって処理要求が正常に受付けられず、エラーが発生してしまう。
【0005】
その場合、ユーザは、データ処理装置にログインした後、外部装置にアクセスし、外部装置上のユーザインタフェースを介してデータ処理装置に処理要求を送信するまで、セッション情報を記憶するためのリソースが不足していることに気付くことができない
本発明は、上記の課題を解決するためになされたものである。本発明の目的は、データ処理装置の操作部を介してユーザが指示した処理を、外部装置からの処理要求に従って実行する場合に、当該処理要求がセッション不足によって実行されないことを未然に防ぐ仕組みを提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成する本発明のデータ処理装置は以下に示す構成を備える。
ネットワークを介して外部装置に接続されたデータ処理装置であって、外部装置が備えるユーザインタフェースを取得して表示する表示手段と、表示手段によって表示されたユーザインタフェースを介してユーザから指示を受付ける受付手段と、受付手段によって受付けた指示を外部装置に送信する指示送信手段と、データ処理装置を操作するユーザの認証に成功した場合に、外部装置との通信を行うためのセッションを確保する確保手段と、指示送信手段によって外部装置に送信された指示に対応する処理要求を、確保手段によって確保されたセッションを用いて外部装置から受信するよう制御する制御手段とを有する。
【発明の効果】
【0007】
本発明によれば、データ処理装置の操作部を介してユーザが指示した処理を、外部装置からの処理要求に従って実行する場合に、当該処理要求がセッション不足によって実行されないことを未然に防ぐことができる。
【図面の簡単な説明】
【0008】
【図1】画像処理システムの一例を示すブロック図である。
【図2】画像処理装置のソフトウェア構成を示すブロック図である。
【図3】画像処理装置の詳細構成を示すブロック図である。
【図4】画像処理装置の外観を示す図である。
【図5】操作部の外観構成を示す図である。
【図6】操作部の詳細構成を示すブロック図である。
【図7】HTTPプロトコルによる要求と応答の処理の流れを示す図である。
【図8】LCD表示部に表示されるUIの一例を示す図である。
【図9】画像処理システムの認証コンテキストのデータ構造を示す図である。
【図10】WASに対する処理の一例を説明する図である。
【図11】サーバの詳細構成を示すブロック図である。
【図12】画像処理システムのセッションデータ構造を示す図である。
【図13】操作部に表示されるログイン画面の一例を示す図である。
【図14】画像処理システムの処理手順を示すフローチャートである。
【図15】画像処理システムの処理手順を示すフローチャートである。
【図16】操作部に表示されるUIの一例を示す図である。
【図17】画像処理システムの処理手順を示すフローチャートである。
【図18】画像処理システムの処理手順を示すフローチャートである。
【図19】画像処理システムの処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
次に本発明を実施するための最良の形態について図面を参照して説明する。
図1は、本発明の実施形態を示すデータ処理システムの構成を説明するブロック図である。なお、本実施形態では、データ処理システムの一例として画像処理システムを、データ処理装置として画像処理装置を例に説明する。また、本実施形態では、画像処理装置が、いわゆる複合機(MFP(Multi Function Peripheral)である場合を示すが、SFP(Single Function Peripheral:単一機能周辺機器)であってもよい。
【0010】
図1において、100はLAN(Local Area Network)で、WAN(Wide Area Network)やインターネットに接続されている。ホストコンピュータ120は、LAN100に接続されている。ホストコンピュータ120は、ウェブブラウザを備え、画像処理装置110、サーバ130にHTTP接続してサービスの提供を受けることができる。
サーバ130は、ウェブアプリケーションサーバを実現するためのソフトウェアプロセス群を備える。具体的に、サーバ130は、以下のソフトウェアモジュールを備える。当該サーバ130は、ネットワーク上の複数の装置からアクセスすることができ、それら複数の装置は、当該サーバ130の機能を利用することができる。例えば、サーバ130は、ネットワークに接続されたホストコンピュータ120や、画像処理装置110、あるいは不図示の他の装置からアクセスされ、その機能が利用される。
【0011】
131はウェブサーバ部で、クライアントからのHTTPプロトコルによる要求に応答してHTMLなどのコンテンツを伝送するモジュールである。132はアプリケーションサーバ部で、HTTP要求に応じて所定の処理と、HTTP応答とを行うCGI(Common Gateway Interfaces)プログラムやサーブレット(Servlet)などの形態で実装されたモジュールである。133はデータ管理部で、アプリケーションサーバ部132から呼び出されるスクリプトデータの保存や、受信したデータの格納を行うモジュールである。
【0012】
認証サーバ140は、画像処理装置110のユーザ認証及びユーザ情報管理を行う。具体的に、認証サーバ140は画像処理装置110、サーバ130からユーザ名、ドメイン名、パスワード等のCredentialを用いてユーザ認証を行う。そして、認証サーバ140は、ユーザ認証に成功すると、Security Token(以下ST)を認証の要求元に返す。すなわち、STは、Credentialが正当なものであることが確認されてユーザ認証に成功した場合に返される、認証済みであることを示す情報である。そして、認証サーバ140によってユーザ認証する機器間であれば、このSTをやり取りすることによって、再度認証サーバ140によるユーザ認証を受ける必要がなくなる。このような認証サーバ140によれば、LAN100に接続された機器間で統一的にユーザ認証を行うことができ、さらに機器間でユーザを一意に特定することができる。
【0013】
画像処理装置110は、画像の入出力と送受信および各種の画像処理を行う複合機(MFP:Multi Function Peripheral)である。画像処理装置110は、画像入力デバイスであるスキャナ113、画像出力デバイスであるプリンタ114、コントローラユニット111、操作部112を備える。
スキャナ113、プリンタ114、操作部112は、それぞれ、コントローラユニット111に接続され、コントローラユニット111からの命令によって制御される。コントローラユニット111は、LAN100に接続されている。
【0014】
[画像処理装置110のソフトウェア構成について]
次に、画像処理装置110のソフトウェア構成について図2を参照しながら説明する。
図2は、図1の画像処理装置110のソフトウェア構成を示すブロック図である。
図2において、ユーザインタフェース(以下、UI)モジュール201は、オペレータが画像処理装置110に対する各種操作・設定を行う際に、機器とユーザ操作との仲介を行うモジュールである。このUIモジュール201は、オペレータの操作に従い、後述の各種モジュールに入力情報を転送して処理の依頼、またはデータの設定などを行う。
【0015】
ウェブサーバ(Web-Server)モジュール203は、ウェブクライアント(例えばホストコンピュータ120)からのHTTP要求を受け付ける。以下、ウェブサーバ(Web-Server)モジュール203を、ウェブサーバ(Web-Server)203と略記する。そして、ウェブサーバ203は、クライアントからのHTTP要求に対して、HTTPモジュール214、TCP/IP通信モジュール217、ネットワークドライバ(Network-Driver)221を介してウェブクライアントにHTTPで応答する。ここで、応答される内容は、画像処理装置110の管理情報等が含まれる。
【0016】
ウェブブラウザ(Web-Browser)モジュール209は、インターネットまたはイントラネット上の各種ウェブページを読み込んで表示を行うものである。以下、ウェブブラウザ(Web-Browser)モジュール209をウェブブラウザ209と略記し、そのの詳細な構成は後述する。
HTTPモジュール214は、画像処理装置110がHTTPによる通信を行う際に使用される。HTTPモジュール214は後述のTCP/IP通信モジュール217を使って、ウェブサーバ203やウェブブラウザ209、後述のウェブサービスプロバイダ(Web-Service-Provider)モジュール207に通信機能を提供する。
また、HTTPモジュール214は、HTTPをはじめとするウェブで用いられる各種プロトコルに対応し、特にセキュリティ対応したプロトコルによる通信機能を提供する。
TCP/IP通信モジュール217は、ネットワークドライバ(Network Driver)221を用いて、前述の各種モジュールにネットワーク通信機能を提供する。ネットワークドライバ221は、ネットワークに物理的に接続され、データの入出力を制御するものである。認証サービス(Authentication-Service)モジュール205は、ユーザが画像処理装置の機能を利用するためのユーザ認証処理を管理・制御するものである。
【0017】
ローカル認証サービス(LAS)モジュール210はUIモジュール201から行われるユーザ認証に対する認証処理の管理・制御を行う。以下、ローカル認証サービス(LAS)モジュールをLASと略記する。LAS210はUIモジュール201から入力されたCredentialを受けると、認証サーバ140に対して認証処理を行う。
なお、認証サーバ140の認証方式が異なると、ユーザ認証のためのデータ通信プロトコルやユーザ認証に必要なCredentialは異なる。そのため、LAS210は入れ替え可能であり、LAS210を入れ替えることにより認証サーバ140の様々な認証方式に対応することができる。ここで、認証方式には、例えばNTLM認証やケルベロス認証などがある。また、LAS210の入れ替えにより、認証サーバ140で行う認証の代わりに画像処理装置110内の簡易認証サービスモジュール213で認証を行う構成をとることもできる。以下、簡易認証サービスモジュールをSASと略記する。
【0018】
さらに、LAS210の入れ替えによりタッチパネルやソフトキーボードによる認証情報入力のほかにUSBキーボードやUSBカードリーダによるCredential入力など、さまざまな入力の受け付けが可能になる。
リモート認証サービス(RAS)モジュール211はウェブクライアントからウェブサーバモジュール203経由で行われるユーザ認証に対する認証処理の管理・制御を行う。以下、リモート認証サービス(RAS)モジュールをRASと略記する。
【0019】
RAS211はウェブサーバ203からのCredentialを受けると、認証サーバ140と認証処理を行う。LAS210と同様に入れ替え可能であり、RAS211を入れ替えることにより認証サーバ140の様々な認証方式に対応することができる。
ウェブサービス認証モジュール(WAS)モジュール212は、後述のウェブサービスプロバイダモジュール207経由で画像処理装置の機能を利用するための認証処理の管理・制御を行う。以下、ウェブサービス認証モジュール(WAS)モジュールをWASと略記する。
なお、WAS212は、認証処理を行うためのインタフェースをウェブサービスとしてネットワークに公開している。
認証コンテキスト管理(ACM)モジュール206はユーザ認証成功後に認証サーバ140から返されるST及びに認証サーバ140から取得可能なユーザ情報を管理する。以下、認証コンテキスト管理(ACM)モジュールをACMと略記する。なお、ACM206の詳細説明は後述する。
【0020】
ウェブサービスプロバイダ(Web-Service-Privider)モジュール207は、ウェブサービスとしてデバイスの機能を提供する。ウェブサービスプロバイダ(Web-Service-Privider)モジュール207は、LAN100を介して受信したコマンドを解釈して実行する。このコマンドには、例えばSOAP等のコマンドを適用することができる。以下、ウェブサービスプロバイダ(Web-Service-Privider)モジュールをWSPと略記する。
【0021】
ユーザ設定情報管理(UPM)モジュール208は、ユーザの設定情報・管理情報をユーザ単位で管理する。以下、ユーザ設定情報管理(UPM)モジュールをUPMと略記する。UPM208は、設定情報を取得するためにはSTを必要とし、STをアクセスキーとして各ユーザの設定情報を取得する。SAS213は、画像処理装置110内でユーザ認証及びユーザ情報管理を行うモジュールである。
このように認証サービス(Authentication-Service)モジュール205は、認証サービスをLAS210,RAS211、WAS212のいずれかを入れ替えることにより認証サーバ140で認証を行う。また、認証サービス(Authentication-Service)モジュール205は、認証サービスをLAS210,RAS211、WAS212以外の簡易認証サービスモジュール213で認証を行うように切り替えることが可能である。
【0022】
セッション管理(Session−Manager)モジュール204は、ウェブサーバモジュール203や認証サービスモジュール205やウェブサービスプロバイダモジュール207から呼び出され、セッションの管理・制御を行う。セッション管理モジュール204についての詳細は後述する。なお、セッション管理モジュール204をSM204と略記する。ここで、SM204は、後述するセッションとユーザ認証された認証情報とを関連付けて管理している。
【0023】
制御API(Control API)218は、ウェブサーバ203やウェブブラウザ209、WSP207などの上流モジュールに、Job-Manager219などの下流モジュールに対するインタフェースを提供する。これによって、上流および下流のモジュール間の依存関係が軽減され、それぞれの流用性を高めることができる。以下、ジョブマネージャ(Job-Manager)モジュールをJob-Managerと略記する。
【0024】
Job-Manager219は、前述の各種モジュールから制御API218を介して指示される様々な処理を解釈し、後述の各モジュール220,224,226に指示を与えるものである。また、Job-Manager219は、画像処理装置110内で実行されるハード的な処理を一元管理するものである。
コーデックマネージャ(CODEC-Manager)モジュール220は、Job-Manager219が指示する処理の中で、データの各種圧縮・伸長を管理・制御するものである。以下、コーデックマネージャ(CODEC-Manager)モジュールをCODEC-Managerと略記する。
FBEエンコーダ(FBE-EncoDer)モジュール229は、スキャン処理によって読み込まれたデータを、FBEフォーマットを用いて圧縮する。具体的には、Job-Manager219や後述のScan-Manager224によって実行されたスキャン処理によって読み込まれたデータを、FBEフォーマットを用いて圧縮する。
【0025】
JPEG-CODEC222は、読み込まれたデータのJPEG圧縮および印刷データのJPEG展開処理を行う。
ここで、読み込まれたデータとは、Job-Manager219やScanner-Manager224によって実行されたスキャン処理に基づくデータである。また、印刷データとは、Print-Manager226によって実行された印刷データである。
MMRコーデック(MMR-CODEC)モジュール223は、読み込まれたデータのMMR圧縮および印刷データのMMR伸長処理を行う。ここで、読み込まれたデータとは、Job-Manager219やScanner-Manager224によって実行されたスキャン処理に基づくデータが含まれる。また、読み込まれたデータとは、Print-Manager226によって実行された印刷処理に基づくデータが含まれる。
【0026】
MMRコーデック(MMR-CODEC)モジュール223は、読み込まれたデータのMMR圧縮および印刷データのMMR伸長処理を行う。ここで、読み込まれたデータとは、Job-Manager219やScanner-Manager224によって実行されたスキャン処理に基づくデータが含まれる。また、読み込まれたデータとは、Print-Manager226によって実行された印刷処理に基づくデータが含まれる。
Scanner-Manager224は、Job-Manager219が指示するスキャン処理を管理・制御するものである。スScanner-Manager224と画像処理装置110に内部的に接続しているスキャナ113との間の通信が、SCSIドライバ225を介して行われる。
【0027】
Print-Manager226は、Job-Manager219が指示する印刷処理を管理・制御するものである。Print-Manager226とプリンタ114との間のインタフェースがEngine-I/F227により提供される。
また、パラレルポートドライバ(Parallel)228が搭載されており、Parallel228を介して不図示の出力機器にデータを出力する際のI/Fを提供する。
[画像処理装置110の詳細構成について]
図3は、図1に示した画像処理装置110の詳細構成を示すブロック図である。
図3において、111はコントローラユニットで、装置全体を制御する。コントローラユニット111は、画像入力デバイスであるスキャナ113や画像出力デバイスであるプリンタ114を接続し、これらを制御する。さらに、コントローラユニット111は、LAN100や公衆回線と接続され、これらを介して画像情報やデバイス情報の入出力を外部の機器との間で行う。ここで、公衆回線に接続される機器には、ファクシミリ装置、あるいはファクシミリ機能を備える情報処理装置が含まれる。
コントローラユニット111は、システムバス307を介して以下のデバイスと接続される。ここで、デバイスとは、CPU301、RAM302、ROM303、HDD(ハードディスク装置)304、イメージバスI/F305、操作部I/F306、ネットワークI/F308、およびモデム(MODEM)309が含まれる。
【0028】
RAM302は、CPU301の作業領域を提供するためのメモリであり、また、画像データを一時記憶するための画像メモリとしても使用される。ROM303はブートROMであり、ROM303には、システムのブートプログラムが格納されている。HDD304には、システムソフトウェア、画像データなどが格納される。
操作部I/F306は、操作部112との間で入出力を行うためのインタフェースであり、操作部112に表示する画像データを操作部112に対して出力する。また、操作部I/F306は、ユーザが操作部112を介して入力した情報を、CPU301に伝送するなどの役割を果たす。
NetworkI/F308は、LANと接続され、LANに対して情報の入出力を行う。MODEM309は、公衆回線と接続され、公衆回線に対して情報の入出力を行う。ImageBusI/F305は、システムバス307と画像データを高速で転送する画像バス310とを接続し、データ構造を変換するバスブリッジである。
【0029】
画像バス310には、RIP(ラスタイメージプロセッサ)311、デバイスI/F312、スキャナ画像処理部313、プリンタ画像処理部314、画像回転部315、および画像圧縮部316が接続されている。
RIP311は、LANから受信されたPDLコードをビットマップイメージに展開する。デバイスI/F312は、スキャナ113およびプリンタ114とコントローラユニット111とを接続し、画像データの同期系/非同期系の変換を行う。
スキャナ画像処理部313は、入力画像データに対し補正、加工、編集などを行う。プリンタ画像処理部314は、プリント出力画像データに対して、プリンタの補正、解像度変換などを行う。画像回転部315は、画像データの回転を行う。
【0030】
画像圧縮部316は、多値画像データに対してはJPEG圧縮伸長処理を行い、2値画像データに対してはJBIG,MMR,MHなどの圧縮伸長処理を行う。
[画像処理装置110の外観構成について]
画像処理装置の外観構成について図4を参照しながら説明する。
図4は、図1に示した画像処理装置110の外観を示す図である。
図4において、画像処理装置110において、スキャナ113は、原稿となる紙上の画像を照明し、CCDラインセンサ(図示せず)を走査することによって、ラスタイメージデータを生成する。使用者が原稿用紙を原稿フィーダ405のトレイ406にセットして、操作部112において読み取りの起動を指示すると、コントローラユニット111のCPU301がスキャナ113に指示を与える。そして、原稿フィーダ405が原稿用紙を1枚ずつフィードし、スキャナ113は原稿フィーダ405からフィードされた原稿画像の読み取り動作を行う。
【0031】
プリンタ114は、ラスタイメージデータを、用紙カセット401,402,403から給紙した用紙上の印刷し、排紙トレイ404に排紙するものであり、その印刷方式として、感光体ドラムや感光体ベルトを用いた電子写真方式が用いられている。
[画像処理装置110の操作部112の外観構成について]
次に、操作部112の構成について図5を参照しながら説明する。
図5は、図1に示した操作部112の外観構成を示す図である。
図5において、操作部112には、LCD上にタッチパネル502が貼られているLCD表示部501を有する。
【0032】
このLCD表示部501には、システムの操作画面およびソフトキーが表示されるとともに、表示されているキーが押されると、押された位置を示す位置情報がCPU301に伝えられる。また、操作部112には、スタートキー505、ストップキー503、IDキー507、リセットキー504の各種ハードキーが設けられている。
スタートキー505は、原稿画像の読み取り動作の開始を指示するためのキーであり、スタートキー505の中央部には、緑と赤の2色のLED表示部506が設けられている。2色のLED表示部506は、その色によってスタートキー505が使用可能な状態にあるか否かを表す。ストップキー503は、稼働中の動作を止めるためのキーである。IDキー507は、使用者のユーザIDを入力するときに用いられるキーである。リセットキー504は操作部112からの設定を初期化するときに用いられるキーである。
【0033】
[画像処理装置110の操作部112の構成について]
次に、操作部112の構成について図6を参照しながら説明する。
図6は、図1の操作部112の詳細構成を示すブロック図である。
図6において、操作部112は、操作部I/F306を介してシステムバス307に接続される。システムバス307には、上述したように、CPU301、RAM302、ROM303、HDD304などが接続されている。操作部I/F306は、ユーザからの入力を制御するための入力ポート601と、画面出力デバイスを制御するための出力ポート602とを有する。入力ポート601は、タッチパネル502、各種キー503,504,505,507を含むキー群からのユーザ入力をCPU301に渡す。CPU301は、ユーザ入力の内容と制御プログラムとに基づいて表示画面データを生成し、出力ポート602を介して、LCD表示部501に表示画面を出力する。また、CPU301は、出力ポート602を介して必要に応じてLED表示部506を制御する。
【0034】
[画像処理装置110のウェブブラウザ209の構成について]
ウェブブラウザ209は、HTTPモジュール214を介して、他のネットワークノードとの間に接続を確立し通信する。この通信においては、URLによって記述されたリソースに対してHTTP要求が発行され、その応答が得られる。この過程で、各種符号化形式に則した通信データの符号化・復号化も行われる。
イベント処理部(不図示)は、操作部112上のタッチパネルシートや各キーなどに対してユーザが行った操作のイベントを受信して、各イベントに対応した処理を行う。また、イベント処理部は、制御API218から装置やジョブなどの状態遷移イベントを受信して、各イベントに対応した処理を行う。スクリプトインタプリタ(不図示)は、Java(登録商標)Script(ECMA Script)などのスクリプトを解釈し実行するインタプリタである。スクリプトは、文書に埋め込まれているか、または文書からリンクされた別ファイル中に記述される。コンテンツの提供者は、スクリプトによって、提供する文書の動的な挙動をプログラムできる。
【0035】
図2に示すウェブブラウザ209は、HTTPモジュール214を介して、他のネットワークノードとの間に接続を確立し通信する。この通信においては、URLによって記述されたリソースに対してHTTP要求が発行され、その応答が得られる。この過程で、各種符号化形式に則した通信データの符号化・復号化も行われる。
イベント処理部(不図示)は、操作部112上のタッチパネル502や各キーなどに対してユーザが行った操作のイベントを受信して、各イベントに対応した処理を行う。また、イベント処理部は、制御API218から装置やジョブなどの状態遷移イベントを受信して、各イベントに対応した処理を行う。
【0036】
スクリプトインタプリタ(不図示)は、Java(登録商標)Script(ECMA Script)などのスクリプトを解釈し実行するインタプリタである。スクリプトは、文書に埋め込まれているか、または文書からリンクされた別ファイル中に記述される。コンテンツの提供者は、スクリプトによって、提供する文書の動的な挙動をプログラムできる。
[HTTPプロトコルによる要求と応答の流れ]
図7は、図2に示したHTTPモジュール214によるHTTPプロトコルによる要求と応答の処理の流れを示す図である。
【0037】
図7において、クライアント701は、図7に示すように、HTTP要求を送信しHTTP応答を受信するソフトウェアが実装された装置である。本実施態では、ウェブブラウザ209が実装された画像処理装置110や、ウェブブラウザが実装されたホストコンピュータ120に相当する。
サーバ702は、HTTP要求を受信して対応する処理を行い、さらにHTTP応答を返信するソフトウェアであり、本実施形態では、図1に示したサーバ130に相当するものである。
クライアント701は、HTTP要求をGETメソッドまたはPOSTメソッドのいずれかの方法で送信することができる。ここで、クライアント701が所望のリソースに対するHTTP要求703をGETメソッドでサーバ702に送信する場合、リソースは一般にURI(特にURL)形式によって指定される。そして、サーバ702は、HTTP要求703により指定されたリソースに対応するデータを取得または生成し、このデータをHTTP応答704によって返送する。
【0038】
次に、HTTP要求をPOSTメソッドで送信する場合を説明する。
HTML文書にフォーム(form)が含まれ、その送信方法にPOSTメソッドが指定されている場合、以下のような処理が行われる。
すなわち、クライアント701のウェブブラウザにより表示されたフォームにユーザにより入力された情報は符号化される。そして、クライアント701は、その符号化された情報、すなわちフォームの入力内容を、HTTP要求705に添付してサーバ702に送信する。
【0039】
サーバ702においては、指定されたリソースが、クライアント701から送られたデータを受信して処理を行い、HTTP応答706を生成し、クライアント701に返信する。
[画像処理装置110のブラウザ画面構成について]
次に、UIモジュール201により表示されるウェブブラウザの画面構成について図8を参照しながら説明する。以下、サーバ130から取得するウェブブラウザの画面を用いて、ユーザからの処理要求を受付ける処理について説明する。
【0040】
図8は、図6に示すLCD表示部501に表示されるユーザインタフェースの一例を示す図である。本例は、UIモジュール201により表示されるウェブブラウザの画面に対応する。
図8において、ブラウザ画面800には、URL入力フィールド808、コンテンツ表示領域802、およびステータス領域807が表示される。また、ブラウザ画面800には、タブ801、OKボタン809、プログレスバー、戻るボタン803、進むボタン804、リロードボタン806、中止ボタン805等のボタン類が表示される。なお、ボタン類の表示形態、表示位置は本表示画面例に限定されるものではない。
【0041】
タブ801は、ウェブブラウザ機能と他の機能(コピー、ボックス、送信、拡張)との画面切り替えを行うボタンとして機能するものである。URL入力フィールド808は、ユーザが所望のリソースのURLを入力するフィールドであり、当該フィールドをユーザが押すと、文字入力を行うための仮想的なフルキーボード(不図示)が表示される。ユーザは、仮想的なフルキーボード上に配置されたキートップを模したソフトキーによって所望の文字列を入力することができる。
OKボタン809は、入力したURL文字列を確定するソフトキーである。URLが確定されると、ウェブブラウザモジュール209は、当該リソースの取得を行うためのHTTP要求を発行する。
【0042】
プログレスバーは、HTTP要求応答によるコンテンツ取得処理の進捗状況を示す。コンテンツ表示領域802は、取得したリソースが表示される領域である。戻るボタン803は、コンテンツ表示の履歴をさかのぼり、現時点で表示しているコンテンツの前に表示したコンテンツを表示し直すためのソフトキーである。
進むボタン804は、コンテンツ表示の履歴をさかのぼって表示しているときに、その時点で表示しているコンテンツの後に表示したコンテンツの表示に戻るためのソフトキーである。
リロードボタン806は、現時点で表示しているコンテンツの再取得と再表示を行う。中止ボタン805は、実行中のコンテンツ取得処理を中止するソフトキーである。
ステータス領域810は、画像処理装置の各種機能からのメッセージを表示する領域である。このステータス領域810には、ブラウザ画面800を表示中であっても、スキャナやプリンタや他の機能などから、ユーザの注意を促すためのメッセージを表示することができる。
【0043】
また、同様にウェブブラウザ機能からもメッセージの表示を行うことができる。ウェブブラウザ機能は、リンク先のURL文字列、コンテンツのタイトル文字列、スクリプトによって指示されたメッセージなどを表示する。
[認証コンテキスト管理モジュールについて]
図2に示すACM206は、以下の各認証サービスモジュールから受け取る認証コンテキストを管理する。ここで、各認証サービスには、LAS210、RAS211、WAS212が含まれる。LAS210、RAS211、WAS212は、認証に成功すると認証コンテキストとして必要な情報をACM206に渡す。ACM206は認証コンテキストを作成し、ユーザ情報を書き込む。このようにして、認証に成功し認証コンテキストにユーザ情報が書き込まれると、それ以降のユーザの操作はすべて認証コンテキストに書き込まれたユーザの権限で動作する。
さらに、ACM206は、認証コンテキストを管理する。ACM206によって認証コンテキストが管理される期間は、上述のように、ユーザの認証に成功し、認証コンテキストが作成されてから、ユーザのログアウト処理が行われるまでの期間である。
【0044】
また、ログアウト条件としては、ユーザによりログアウト処理がされる、設定されたタイムアウト時間の間に何も操作を行われない、各種デバイス設定情報の変更がされる、低電力モードへの移行、デバイス再起動等がある。
次に、認証コンテキストのデータ構造について図9を用いて説明する。図9は、図2に示したACM206が作成して管理する認証コンテキストのデータ構造を説明する図である。
【0045】
図9において、属性(Attribute)列901は認証コンテキストが持つ属性を示している。またデータタイプ(DataType)列902は各属性に対応したデータタイプを示している。
認証サービスタイプ属性(AuthSvcType)904は、どの認証サービス(LAS210、RAS211、WAS212)から作られた認証コンテキストであるかを識別するための情報を格納する。
【0046】
認証サーバアドレス属性(AuthSerIP)905は、認証サーバ140のIPアドレスを格納する。ST属性(SecurityToken)906は、認証サーバ140から取得したSTを格納する。
ユーザ名属性(UserName)907は、認証サーバ140から取得したユーザ名を格納する。ユーザID属性(UserID)908は、認証サーバ140から取得したユーザのユーザIDを格納する。
グループ名属性(GroupName)909は、認証サーバ140から取得したユーザが所属するグループ名を格納する。グループID属性(GroupID)910は、認証サーバ140から取得したグループのグループIDを格納する。
【0047】
ドメイン名属性(DomainName)911は、認証サーバ140から取得したユーザが所属するドメイン名を格納する。メールアドレス属性(Email)912は、認証サーバ140から取得したユーザのメールアドレスを格納する。
権限属性(AccessRight)913は、認証サーバ140から取得したユーザがコピー操作やスキャン操作などに対する操作権限を持っているかどうかを表す情報を格納する。セッションID参照属性(RefSessionID)914は認証コンテキストをキーに作成したセッションリソースへの参照情報を格納する。
【0048】
[ウェブWAS212に対する処理の流れ]
図10は、図2に示したWAS212に対する処理の一例を説明する図である。なお、S1002〜S1009は各ステップを示す。
図10において、クライアント1001は、WAS212に対してウェブサービスとしてHTTP要求を送信し、HTTP応答を受信するソフトウェアを実装する端末であり、本実施形態ではサーバ130に相当する。
【0049】
まず、S1002で、クライアント1001は、画像処理装置110のWAS212に対して認証方式の問い合わせるためのHTTP要求を送る。次に、S1003で、クライアント1001によるS1002の要求に対して、WAS212はクライアント1001に対して認証方式を返信する。
そして、WAS212は、クライアント1001から受け取るCredentialに対するユーザ認証を行う。クライアント1001からWAS212に対してSTを渡しユーザ認証を行うと、WAS212は、S1004で、認証サーバに対してそのSTが正当であるかどうかの確認を行う。ここで、STが正当な場合は認証サーバ140からOKが返る。
【0050】
ユーザ認証に成功すると、WAS212はACM206に対して認証コンテキスト作成を依頼する。ACM206はSTとユーザ情報を元に認証コンテキストを作成し保存する。このようにして、認証コンテキストが作成されると、ユーザは認証コンテキストに基づいた権限で画像処理装置110のサービスをウェブサービス経由で利用することができる。
そして、S1005で、WAS212は、クライアント1001に対してSTを返信する。次に、S1006で、クライアント1001はウェブサービス記述のヘッダ部分にSTを付加する形式で挿入し、画像処理装置110に対してHTTP要求を送る。
【0051】
WAS212は、クライアント1001から受け取るHTTP要求のヘッダ部のSTを読み取り、STが正当なものであるかを判断する。ここで、受け取ったSTが正しくないと判断した場合は、S1007でクライアント1001に対してエラーを返信する。ここで、STが正当なものであるとWAS212が判断した場合、ローカル認証サービス経由で作成した認証コンテキストと、ウェブサービス経由で作成した認証コンテキストが一致しているかどうかをWAS212が確認する。
【0052】
ここで、WAS212が2つの認証コンテキストが一致していると判断した場合は、WSP207に対してウェブサービス呼び出しを行う。一方、WAS212が2つの認証コンテキストが一致していないと判断した場合は、S1007で、WAS212はエラーをクライアント1001に返す。
次に、S1008で、クライアント1001はログアウトのHTTP要求をWAS212へ送る。WAS212はログアウト要求を受け取ると、ACM206に対応した認証コンテキストを破棄するように依頼し、ACM206は認証コンテキストを破棄する。
【0053】
そして、S1009で、認証コンテキストが破棄されたら、WAS212からクライアント1001にOKが返り、失敗したらNGが返信される。
[サーバ130の詳細構成について]
図11は、図1に示したサーバ130の詳細構成を示すブロック図である。
図11において、アプリケーションサーバ部132のビジネスロジック部1103は、HTTP要求に応じてウェブサーバ部131から呼び出されて処理を実行する。ビジネスロジック部1103は、処理結果として、動的に生成したHTMLをウェブサーバ部131に返す。
アプリケーションサーバ部132のスクリプトエンジン部1102は、ビジネスロジック部から呼び出され、後述するプログラム管理領域1105からスクリプトを読み込んでビジネスロジック部1103に返す。ここで、スクリプトとは、プログラム実行記述書に対応するものである。
【0054】
ビジネスロジック部1103は、スクリプトエンジン部1102によって読み込まれたスクリプトを順次実行する。そして、ウェブサービスリクエスタ部1101は、ビジネスロジック部1103から呼び出され、外部のウェブサービスプロバイダ(例えば、WSP207)に対してウェブサービス呼び出しを行う。
認証部1104は、ビジネスロジック部1103から呼び出され、ユーザ認証処理の管理・制御及びにユーザ情報管理、ユーザ設定管理を行う。プログラム管理領域1105は、各種スクリプト及びスクリプトから呼び出されるプログラムを管理する。プログラム管理領域1105のデータはプラグイン機構(不図示)により追加や変更可能である。このプラグイン機構により、サーバ130の機能カスタマイズを可能にする。データ格納領域1106は、文書などのデータを格納する領域である。プリファレンスデータ領域1107は、ユーザ毎の設定情報を格納する領域である。
【0055】
ビジネスロジック部1103は、認証部1104より取得したSTをアクセスキーとしてプリファレンスデータ領域1107に格納されたユーザ毎の設定情報を取得する。そして、ビジネスロジック部1103は、さらに取得したユーザ毎の設定情報を用いて、ユーザ毎にカスタマイズした画面や機能を提供する。
上述したようなシステムの構成にて、画像処理装置110を操作するユーザは、サーバ130に実装されたユーザインタフェースを取得し、取得したユーザインタフェースを画像処理装置110の操作部112に表示させる。そして、操作部112に表示されたユーザインタフェースを用いて、ユーザは、画像処理装置110に所望の処理を実行させるための指示を行う。ユーザによって行われた指示は、画像処理装置110によってサーバ130に送信される。サーバ130は、ユーザによって行われた指示の処理内容を判断し、当該指示内容に対応する処理要求を画像処理装置110に送信する。画像処理装置110は、サーバ130によって送信された処理要求を受信し、当該処理要求に従って動作する。このように動作させることによって、ユーザは、サーバ130に実装されたインタフェースを用いて、画像処理装置110に所望の動作を行わせることができる。この処理要求は、サーバ130がユーザインタフェースを送信することによって開始されたセッションにて行ってもよいし、そのセッションとは異なるセッションを開始して行ってもよい。
【0056】
なお、この処理要求には、画像処理装置110を特定する情報も含まれており、これにより、画像処理装置110に処理を実行させるものである。
また、ユーザは、画像処理装置110を次のように動作させることもできる。例えば、ユーザは、サーバ130に実装されたユーザインタフェースによって、サーバ130以外の外部装置に処理要求を送信し、当該外部装置が処理要求の結果を画像処理装置110に送信するように制御させることができる。ここでいう外部装置の処理とは、例えば、データのダウンロード要求等があり、外部装置がユーザによって指定された場所からデータをダウンロードし、ダウンロードが完了した場合に、画像処理装置110にダウンロードしたデータを送信する。
【0057】
[セッション管理モジュール204の詳細について]
図12は、図2に示したセッション管理モジュール204が管理するセッション1200のデータ構造を説明する図である。図12において、属性(Attribute)列1201は、各セッションが固定で持つ属性を示している。また、データタイプ(DataType)列1202は、各属性に対応したデータタイプを示している。
セッションID属性(SessionID)1203は、各セッションを一意に識別するための識別番号である。セッションタイプ属性(SessionType)1204は、どの認証サービス(LAS210、RAS211、WAS212)経由で作られたセッションであるかを識別するための情報を格納する。ここで、LAS210経由で作られた場合、1ビット目のフラグが立つ。また、RAS211経由で作られた場合は2ビット目のフラグが立つ。
【0058】
さらに、WAS212経由で作られた場合は3ビット目のフラグが立つ。例えば、LAS210経由でセッションのリソースが確保されて、ウェブサービス認証サービス経由でセッションが参照された場合、1ビット目と3ビット目のフラグが立つ。このフラグはリソース解放時の情報として利用され、値が0になった場合にリソースの解放を行う。
操作種別属性(OperateKind)1205は、どの操作を行うためにセッションのリソースを確保したかの操作種別を識別するための情報を格納する。操作種別としてはプリント操作、スキャン操作、ファックス操作、機器設定情報アップロード操作、機器設定情報ダウンロード操作、機器状態取得操作、その他がある。
【0059】
セッション状態属性(SessionState)1206は、セッションの状態を識別するための情報を格納する。とりうる状態としては"リソース確保状態"、"処理待ち状態"、"処理実行中状態"がある。認証コンテキストをキーに空のセッションリソースを確保したときの状態が、"リソース確保状態"である。外部からの処理要求を実行する直前の状態が"処理実行中状態"である。処理が終了した状態が"処理待ち状態"である。
ラストアクセスタイム属性(LastAccessTime)1207は、最後にセッションに対して参照、書き込み、あるいは読み込みが行われた時間を格納する。
セッション情報属性(SessionInfo)1208は、必要に応じて自由にプログラムより利用される。セッション情報属性(SessionInfo)1208は、プログラムにより動的属性として生成される。プログラムによりセッションID属性1203とユーザが設定した動的属性キーで動的属性値は自由に呼び出し可能である
また、SM204では、セッション1200を用いてセッションの優先順位管理を行う。セッション状態属性1206に格納されたセッション状態で、優先順位は高い順に(1)"処理実行中状態">(2)"リソース確保状態">(3)"処理待ち状態"のように設定されている。
【0060】
さらに、各セッション状態で操作種別属性1205に格納された操作種別で優先順位が決められている。具体的には、優先順位は高い順に、(1)プリント操作、スキャン操作、ファックス操作>(2)機器設定情報アップロード操作、機器設定情報ダウンロード操作>(3)機器状態取得操作>(4)その他のように設定されている。さらに、各操作種別でラストアクセスタイム属性1207に格納されたラストアクセスタイムが現在時間に近い方ものが優先順位は高い。また、セッション管理モジュール204は、LAS210、RAS212経由で呼び出され、セッションのリソース確保/解放の管理・制御を行う。
【0061】
また、セッション管理モジュール204は、セッション情報の読み取り/書き込み管理・制御を行う。さらに、セッション管理モジュール204は、セッション数を管理するためにセッションカウンタを保持し、画像処理装置110で確保可能なセッション数の上限を管理・制御する。セッション管理モジュール204は、外部の装置と通信を行う際に、セッションを確保して通信を行う。各セッションは、セッション管理モジュール204が、RAM302等のメモリにセッション情報を記憶することによって管理される。また、同時に確保可能なセッション数には上限が設けられている。なぜならば、同時に無制限にセッションを確保すると、セッション情報を確保するために大きなメモリの容量が必要になるためである。また、同時に無制限にセッションを確保すると、それらのセッションを用いて同時に多くの外部装置と通信を行う必要があり、処理の負荷が大きくなってしまうからである。
【0062】
[第1の実施形態に係る第1のフロー]
図13は、図1に示した画像処理装置110が備える操作部112に表示されるログイン画面の一例を示す図である。本例では、ユーザがユーザ名、ドメイン名、パスワードのCredentialを入力して画像処理装置110にログインする。画像処理装置110にログインした場合に、ユーザは、画像処理装置110の使用を許可される。また、本実施形態では、認証サーバ140を画像処理システムとして独立した情報処理装置で構成する場合について説明するが、認証サーバ140の機能と同様の機能を画像処理装置110、あるいは、サーバ130が備えていてもよい。
【0063】
図14は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、S1501、S1502、S1506〜S1510は画像処理装置110のCPU301がRAM302にモジュールをロードして実行することで実現される。また、S1503〜S1505は認証サーバ140のCPUがRAMにモジュールをロードして実行することで実現される。
S1501で、ユーザは、操作部112に表示される図13に示すユーザインタフェースを用いて、ユーザ名、ドメイン名、パスワードを入力する。
図13において、テキストボックス1301は、ユーザ名を入力するためのテキストボックス領域である。ここで、ユーザがテキストボックス1301を選択すると、CPU301により実行されるUIモジュール201は、ソフトキーボードを操作部112に表示する。これにより、ユーザはソフトキーボードを用いてユーザ名を文字入力できる。
【0064】
テキストボックス1302は、ドメイン名を入力するためのテキストボックス領域である。テキストボックス1302は選択式になっており、ここに表示されるドメインの個数は画像処理装置110が対応する認証サーバ140に対応している。
つまり、画像処理装置110は複数の認証サーバとやり取り可能である。テキストボックス1303はパスワードを入力するためのテキストボックス領域である。これらの情報が入力された後、ユーザによりOKボタン1304が押下されると、ユーザ名、ドメイン名、パスワードのCredentialがUIモジュール201からLAS210に渡される。次に、S1502で、LAS210はLAN100を介して認証サーバ140に対してCredentialを送信する。
【0065】
次に、S1503で、認証サーバ140は、LAS210から受信したCredentialでユーザ認証を行う。ここで、認証サーバ140がユーザ認証に成功したと判断した場合には、S1504に遷移し、それ以外であると判断した場合は、S1501へ進む。この場合、認証サーバ140は、LAS210から受信したCredentialが正しくないので、認証サーバ140からLAS210に対して認証失敗が返信され、再度認証画面が操作部112に表示されて、S1501に遷移する。
【0066】
次に、S1504で、認証サーバ140はCredentialに対応したSTを発行し、S1505で、認証サーバ140は、LAS210に対し発行したSTを返信する。
そして、画像処理装置110に戻り、S1506で、LAS210は認証サーバ140から受信したSTをキーとして再度認証サーバ140に問い合わせを行い、ユーザ情報を取得する。
次に、S1507で、ACM206は認証コンテキストを作成してRAM302上に保存する。そして、S1508で、SM204は、セッションのリソース数を管理しているセッションカウンタが上限に達しているか(所定の数以上か、上限を超えているかどうか)どうか判断する。ここで、セッションカウンタが上限に達していないとSM204が判断した場合は、S1509に遷移し、上限に達していると判断した場合は、本処理を終了する。ここで、S1508で、SM204は、セッションカウンタが上限に達していると判断した場合、その旨をユーザに通知するようにしてもよい。
【0067】
そして、S1509で、SM204はセッションのためのリソースを確保する。次に、S1510で、SM204は、S1507で作成した認証コンテキストのセッションID参照属性914の値に確保したセッション1200のセッションID属性1203の値を格納する。
これにより、認証コンテキストをキーにセッション1200にアクセス可能となる。さらに、SM204は、セッション1200のセッション状態属性1206に"リソース確保状態"を格納する。さらにセッション管理モジュール204は、セッション1200のセッションタイプ属性1204の1ビット目を立てる。
【0068】
[第1の実施形態に係る第2のフロー]
次に、第1のフローから続く、第2のフローを図15に示すフローチャートを参照しながら説明する。なお、上述した第1のフローは、ユーザが画像処理装置110にログインする際の処理を示し、以下に説明する第2のフローは、ユーザが画像処理装置110のブラウザ画面800を起動させてサーバ130と通信を行う際の処理を示す。
図15は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140とサーバ130との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、各ステップは、それぞれ、画像処理装置110、認証サーバ140、サーバ130のCPUによって、それぞれのROMに記憶されたプログラムを実行することによって行われる。
【0069】
また、本処理は、ユーザが操作部112でユーザ認証を行い、ブラウザ画面800を選択すると、UPM208で管理されている初期表示URL情報に基づき、ウェブブラウザモジュール209はサーバ130のURLに対してメソッドのHTTP要求を送信する。
サーバ130はユーザ認証を前提で動作するため、HTTP要求にSTが含まれていないと、HTTP要求してきたクライアントとのユーザ認証が行われていないと判断し、ログイン画面にリダイレクトする。
【0070】
そのためサーバ130からはログイン画面に対応したHTTP応答が画像処理装置110のウェブブラウザモジュール209に返され、ブラウザ画面800ではサーバ130へのログイン画面が表示される。
【0071】
ただし、サーバ130がSSO(シングル・サイン・オン)に対応している場合、すでに認証サーバ140のSTを画像処理装置110の認証コンテキスト管理モジュール206で保持している。このため、STをHTTP要求に含めてサーバ130に送信することにより下記S1601からS1608は省略可能である。S1601からS1608を省略した場合、S1601からS1609に処理を進める。以下、S1601以降の処理を説明する。
まず、S1601で、操作部112を操作するユーザから画像処理装置110の操作部112に表示されるブラウザログイン画面(不図示)でユーザ名、ドメイン名、パスワードのCredentialの入力を受付ける。すると、S1602へ進む。
【0072】
そして、S1602で、画像処理装置110のウェブブラウザモジュール209はHTTPモジュール214を通してCredentialをPUTメソッドのHTTP要求としてサーバ130に送信する。
次に、S1603で、サーバ130のウェブサーバ部131は画像処理装置110からのCredentialをHTTP要求として受信する。そして、S1604で、サーバ130の認証部1104は、ウェブサーバ部131からビジネスロジック部1103経由でCredentialを受け取り、認証サーバ140に対してCredentialを送信する。
【0073】
すると、S1605で、認証サーバ140は、予めユーザごとに登録しておいたCredentialと、サーバ130の認証部1104から受信したCredentialとを用いてユーザ認証を行う。ここで、認証サーバ140がユーザ認証に成功したと判断した場合は、S1607に遷移し、サーバ130の認証部1104から受信したCredentialが正しくないと認証サーバ140が判断した場合は、S1606に遷移する。
そして、S1606で、サーバ130の認証部1104から受信したCredentialが正しくないことが返信された場合は、サーバ130のウェブサーバ部131は次のように制御する。ウェブサーバ部160は、画像処理装置110に対して認証失敗であることを示すメッセージと認証画面を合成したHTMLを作成し、HTTP応答として画像処理装置110に返信する。
【0074】
一方、S1607で、認証に成功した場合、認証サーバ140はCredentialに対応したST(認証トークン)を発行して、S1608で、認証サーバ140はサーバ130の認証部1104に対しSTを返信する。
そして、サーバ130の認証部1104は受信したSTを用いて、再度認証サーバ140に問い合わせを行い、ユーザ情報を取得する。サーバ130の認証部1104は、認証サーバ140から取得したST及びユーザ情報をプリファレンスデータ領域1107に格納する。
【0075】
そして、サーバ130のビジネスロジック部1103はユーザ認証に成功すると、ユーザのSTをアクセスキーにデータ管理領域133のプリファレンスデータ領域1107からユーザの画面作成に必要なユーザ情報を取り出す。そして、S1609で、ビジネスロジック部1103は以前に失敗した処理が残っているかどうかを判断する。ここで、以前に失敗した処理が残っていないと判断した場合は、S1610へ遷移し、失敗した処理が残っていると判断した場合は、S1611へ遷移する。なお、残っている処理タスクとは、図16に示すボタン1401〜1404のいずれかのボタンがユーザに押下されたが、機能実行に失敗した場合に、S1643でサーバ130に残される処理タスクをいう。また、後述するS1643で保存される内容は、上記ボタンを操作したユーザを示すユーザ情報と、「ボタンに対応したスクリプト」とである。これにより、ユーザの次回ログイン時に認証情報からユーザを特定し、そのユーザに対してだけ、残っている処理タスクを表示することが可能となる。
【0076】
つまり、上記ユーザ情報と、「ボタンに対応したスクリプト」をサーバ130で保存して管理することで、再度ユーザがログインした場合に、ボタンに対応する機能を実行できるようになる。一例を挙げれば、図16に示すボタン1403、すなわち、Scan to フォルダAに対応する機能を実行させる際に、当該ボタン1403をユーザが押下したのち、認証処理の途中で処理が中断する場合がある。なお、図16に示す各ボタンの説明については後述する。このような場合に、当該機能のために設定するストレージへのパス等の情報が保持されることとなり、次回、ユーザがログインした場合に、そのようなパス設定等の処理が不要となり、ユーザによる操作負担を軽減できる。
そして、S1610で、ビジネスロジック部1103はユーザ情報を元にユーザに対応した画面構築を行い、実行画面情報(Webページ)を作成する。
一方、S1611では、ビジネスロジック部1103は、残処理の表示画面とユーザ情報を元にユーザに対応した画面の2つを合わせた画面構築を行い、(Webページ)画面を作成して、S1612へ進む。
【0077】
そして、S1612で、サーバ130のウェブサーバ部131は、ビジネスロジック部1103が作成した画面をステップ1602の画像処理装置110からのHTTP要求のHTTP応答として画像処理装置110に返信する。
図16は、図1に示した画像処理装置110の操作部112に表示されるユーザインタフェースの一例を示す図である。本例は、画像処理装置110がサーバ130から受信したHTTP応答をブラウザ画面800で表示した画面の一例である。なお、図8と同一のものには同一の符号を付してある。また、後述するボタンは、サーバ130が提供するサービスで表示されるボタンであって、ユーザ認証後に表示されるボタンである。
図16において、ボタン1401は、画像処理装置110で紙原稿をスキャンし、画像処理装置110でカラー印刷を行うためのボタンである。
ボタン1402は、画像処理装置110で紙原稿をスキャンし、画像処理装置110で白黒印刷を行うためのボタンである。また、ボタン1403は、画像処理装置110で紙原稿をスキャンし、スキャンした画像データを画像処理装置110でPDF形式のデータに変換する。そして、PDF形式のデータに変換された画像データを画像処理装置110からサーバ130のデータ格納領域1106のフォルダA(論理領域)へデータ格納するためのボタンである。
【0078】
ボタン1404は、サーバ130のデータ格納領域1106に保存された"XXX文書.PDF"文書を画像処理装置110で印刷するためのボタンである。これらボタンが画像処理装置110の操作部112からユーザの操作に基づいて押下される。そして、画像処理装置110の操作部112で押下されたボタン情報がサーバ130に通知されると、サーバ130のビジネスロジック部1103でボタンに対応したロジックを動作させる。
そして、ビジネスロジック部1103でボタンに対応したロジックを動作させると、ウェブサービスリクエスタ部1101を通して画像処理装置110の各機能に対応したウェブサービスが呼び出されて処理が実行される。各ボタンに対応したビジネスロジックは、スクリプトにより表現されるため、スクリプトの表現により様々なパターンの機能ボタンの提供が可能である。つまり、複数の機能を連携した機能ボタンを表示することも可能である。例えばボタン1401〜1404を組み合わせたボタン等が考えられる。この図14に示される画面は、ホストコンピュータ120が備える表示部にも表示することができる。具体的な手順として、まず、ホストコンピュータ120は、サーバ130にアクセスする際に、Webブラウザ120Aを介してユーザによって入力されたユーザIDや、パスワード等の情報をサーバ130に送信する。サーバ130は、送信されたユーザIDや、パスワード等の情報をもとに、認証サーバ140によって認証を行わせる。認証に成功した場合に、サーバ130は、図16のような画面をホストコンピュータ120のWebブラウザ120Aに送信し、表示させる。そして、ユーザは、表示された画面に表示されたボタン1401〜1404を用いて、画像処理装置110に対する指示を行うことができる。このように、ホストコンピュータ120から画像処理装置110に対して指示を行うこともできる。
【0079】
これらボタンが画像処理装置110の操作部112からユーザにより押下されると、サーバ130のビジネスロジック部1103でボタンに対応したロジックが動作する。
そして、図11に示すサーバ130のウェブサービスリクエスタ部1101を通して画像処理装置110の各機能に対応したウェブサービスが呼び出されて処理が実行される。なお、ボタンに対応したビジネスロジックはスクリプトにより表現されるため、スクリプトの表現により様々なパターンの機能ボタンの提供が可能である。
次に、S1613で、S1612でサーバ130から取得する実行画面に基づいて操作部112にユーザインタフェースを表示する表示制御が実行される。そして、その後、画像処理装置110の操作部112に表示された当該ユーザインタフェースからユーザにより、図16に示したいずれかのボタンが押下されると、S1614へ進む。
【0080】
そして、S1614で、操作部112のボタンの押下イベントが図2に示したUIモジュール201からウェブブラウザモジュール209に通知される。そして、ウェブブラウザモジュール209からボタン押下されたことを意味するPUTメソッドのHTTP要求がHTTPモジュール214を通してサーバ130に送信される。つまり、ユーザが操作部112のボタンを押下した指示の内容が押下イベントとしてサーバ130に指示送信される。
次に、S1615で、サーバ130のウェブサーバ部131は、画像処理装置110からボタン1401が押下されたことを意味するHTTP要求を受け、ビジネスロジック部1103にボタンに対応したロジック処理を依頼する。
【0081】
次に、S1616で、ビジネスロジック部1103は受信したボタンに対応したスクリプトをプログラム管理領域1105から取り出し、スクリプトエンジン部1102にスクリプト処理を依頼する。そして、S1617で、スクリプトエンジン部1102はスクリプトの内容から画像処理装置110に対する処理内容及びに設定情報等を読み込み、ビジネスロジック部1103に返す。
次に、S1618で、サーバ130のビジネスロジック部1103は、ウェブサービスリクエスタ部1101から画像処理装置110に対してウェブサービスを用いて画像処理装置110の機能利用するための認証処理を行う。なお、サーバ130が保持しているSTを送信する場合はS1619からS1623は省略できる。
【0082】
次に、S1619で、画像処理装置110のWAS212は、サーバ130から受け取ったCredentialを認証サーバ140に対して送信する。そして、認証サーバ140は、WAS212から受信したCredentialでユーザ認証を行う。そして、S1620で、ユーザ認証に成功しているかどうかを判断する。ここで、認証サーバ140が認証に成功していると判断した場合は、S1622に遷移する。
一方、S1620で、WAS212から受信したCredentialが正しくないと判断した場合は、認証サーバ140からWAS212に対して認証失敗が返信され、S1621に遷移する。
【0083】
そして、S1621で、画像処理装置110のWAS212からサーバ130に対して認証失敗が返信される。S1622に遷移した場合、認証サーバ140はCredentialに対応したSTを発行して、S1623で、認証サーバ140はWAS212に対しSTを画像処理装置110に返信する。
次に、S1624で、画像処理装置110のWAS212は認証サーバ140から受信したSTをキーとして再度認証サーバ140に問い合わせを行い、ユーザ情報を取得する。そして、S1625で、ACM206は認証コンテキストを作成し保存する。
【0084】
次に、サーバ130のビジネスロジック部1103は、認証に成功すると、スクリプトエンジンから返されたスクリプトの実行処理を順次実行する。
そして、S1626で、ビジネスロジック部1103は、画像処理装置110に対する実行処理要求があるかどうかを判断する。ここで、実行処理要求があるとビジネスロジック部1103が判断した場合はS1627へ遷移する。一方、S1626で、実行処理要求がないとビジネスロジック部1103が判断した場合は、本処理を終了する。
そして、S1627で、STと実行処理要求のウェブサービスのHTTP要求を画像処理装置110に送信する。
次に、S1628で、画像処理装置110のWAS212は、サーバ130からSTと実行処理要求を受け取る。そして、WAS212が受け取ったSTが正当であるかを判断する。ここで、STが正しくないとWAS212が判断した場合は、画像処理装置110は、サーバ130にエラーを返信する。
【0085】
次に、S1629で、画像処理装置110のWAS212は、図示しないステップでローカル認証サービス経由で作成した認証コンテキストとS1625でウェブサービス経由で作成した認証コンテキストが一致しているかどうかを判断する。ここで、一致しているかどうかの判断方法にはST属性905、ユーザ名属性906、ユーザID属性907、グループ名属性908、グループID属性909、ドメイン名属性910、メールアドレス属性911のいずれかで比較を行う方法がある。なお、これらの属性を組み合わせて比較する方法を用いてもよい。
【0086】
ここで、認証コンテキストの比較の結果、各認証コンテキストが一致していないとWAS212が判断した場合は、S1637に遷移し、一致していると判断した場合は、S1630へ遷移する。また、ローカル認証サービス経由で作成された認証コンテキストがないとWAS212が判断した場合は、S1637へ遷移する。
次に、WAS212は、LAS210経由で作成した認証コンテキストに対応したセッションが確保してあるかどうかをSM204に問い合わせる。そして、S1630で、WAS212は、SM204ですでに対応したセッションを確保しているかどうかを判断する。ここで、SM204ですでに対応したセッションを確保しているとWAS212が判断した場合は、S1631に遷移し、確保していないと判断した場合はS1633に遷移する。
【0087】
そして、S1631で、SM204は、セッション1200のセッションタイプ属性1204にWAS212経由で参照されたことを表すために3ビット目のフラグを立てる。
さらに、SM204は、セッション1200の操作種別属性1205に実行処理要求が何であるかの情報を格納する。さらに、SM204は、セッション1200のセッション状態属性1206に"処理実行中状態"を格納する。
次に、S1632で、画像処理装置110は、スキャン(読取処理)やプリント(印刷処理)などの処理要求を実行する。なお、処理要求は、これ以外に、例えば、HDD304に格納されたデータを印刷するための要求やその他の処理要求であってもよい。また、本実施形態においては、サーバ130がユーザインタフェース送信を行い、送信されたユーザインタフェースを介してユーザが行った指示を、画像処理装置110がサーバ130に対して指示送信を行う場合について説明した。そして、当該送信された指示をサーバ130が直接、指示受信を行う例について説明した。しかしながら、指示送信によって送信される指示は、サーバ130以外の装置を経由してサーバ130に到達する構成であってもよい。
【0088】
一方、S1630ですでに確保したセッションがないと判断した場合は、S1633で、SM204は、セッションのリソース数を管理しているセッションカウンタが上限数に達しているかどうか判断する。ここで、セッションカウンタが上限数に達していないとSM204が判断した場合は、S1635に遷移し、上限数に達していると判断した場合は、S1634に遷移する。
そして、S1634で、SM204は、優先順位が一番低いセッションのリソースを解放する。そして、S1635で、SM204はセッションのためのリソースを確保する。そして、S1636で、SM204は、LAS210で作られた認証コンテキストのセッションID参照属性914の値に確保したセッション1200のセッションID属性1203の値を格納する。
【0089】
さらに、SM204は、WAS212で作られた認証コンテキストのセッションID参照属性914の値に確保したセッション1200のセッションID属性1203の値を格納する。さらに、SM204は、セッション1200のセッション状態属性1206に"リソース確保状態"を格納する。
さらに、SM204は、セッション1200のセッションタイプ属性1204の1ビット目と3ビット目を立てる。
一方、S1629で、各認証コンテキストが一致しないとWAS212が判断した場合は、S1637で、SM204は、セッションのリソース数を管理しているセッションカウンタが上限数に達しているかどうか判断する。ここで、セッションカウンタが上限数に達していないとSM204が判断した場合は、S1638に遷移し、上限数に達していると判断した場合は、S1642に遷移する。
【0090】
そして、S1638で、SM204はセッションのためのリソースを確保する。次に、S1639で、SM204は、WAS212で作られた認証コンテキストのセッションID参照属性914の値に確保したセッション1200のセッションID属性1203の値を格納する。
さらに、SM204は、セッション1200のセッション状態属性1206に"リソース確保状態"を格納する。さらに、SM204は、セッション1200のセッションタイプ属性1204の3ビット目を立てる。
【0091】
次に、S1640で、SM204は、セッション1200のセッション状態属性1206に"処理待ち"を格納する。S1641で、SM204は、S1632に対応する処理が正常に終了したかどうかを判断する。ここで、処理が正常に終了したとSM204が判断した場合は、S1626に遷移し、処理が正常に終了していないと判断した場合は、S1642に遷移する。
そして、S1642で、画像処理装置110はサーバ130にエラーを返信し、、S1643で、サーバ130のビジネスロジック部1103はプリファレンスデータ領域1107に処理が失敗したことを保存して、本処理を終了する。
【0092】
以上のように、サーバ130等の外部装置にユーザインタフェースを実装することによって、画像処理装置110にユーザインタフェースを実装する場合に比べて、ソフトウェアの実装が容易であるというメリットがある。画像処理装置110のユーザインタフェースを実装する場合には、画像処理装置110特有のプログラミング方法について習熟していなければならない。一方、サーバ130にユーザインタフェースを実装する場合には、Webアプリケーション用のソフトウェアを実装できれば充分であるためである。
【0093】
また、以上のように、あらかじめ画像処理装置110の操作部112でユーザ認証時にユーザ認証情報をキーにしてセッションのリソースを確保する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。具体的に、例えば、ユーザが画像処理装置110にログインした後、画像処理装置110の操作部を介して行った指示に対応する処理要求を外部のサーバ130から受付ける段階で、セッションを確保できないことを防止することができる。
【0094】
〔第2実施形態〕
以下、第2実施形態を図17のフローチャートを参照しながら説明する。
図17は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、S1701、S1702、S1706〜S1711は画像処理装置110のCPU301がRAM302にモジュールをロードして実行することで実現される。
また、S1703〜S1705は認証サーバ140のCPUがRAMにモジュールをロードして実行することで実現される。なお、各ステップは、説明上、画像処理装置110からの操作に基づいて連携される認証サーバ140の処理を説明するため各ステップが一連のステップとして示す例である。
【0095】
また、図17に示すS1701からS1707は、図14に示したS1501からS1507に対応する。以下、第1実施形態との違いのみを説明する。
ユーザ認証に成功すると画像処理装置110の操作部112はデフォルト画面としてアプリケーション選択画面(不図示)を表示する。ユーザは各アプリケーションを選択することによりコピーやファックス、ブラウザなどのアプリケーションを利用することができる。そして、S1708で、ユーザはブラウザアプリケーションを選択する。そして、S1709からS1711は、S1508からS1510に対応する。
以上、説明したように、あらかじめ画像処理装置110の操作部112でアプリケーション選択時にユーザ認証情報をキーにセッションのリソースを確保する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。
【0096】
〔第3実施形態〕
本発明の第3の実施形態を図18のフローチャートを参照しながら説明する。
図18は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、S1801、S1802、S1806〜S1811は画像処理装置110のCPU301がRAM302にモジュールをロードして実行することで実現される。
【0097】
また、S1803〜S1805は認証サーバ140のCPUがRAMにモジュールをロードして実行することで実現される。なお、各ステップは、説明上、画像処理装置110からの操作に基づいて連携される認証サーバ140の処理を説明するため各ステップが一連のステップとして示す例である。以下、第1実施形態との違いのみを説明する。
S1808で、SM204は、セッションのリソース数を管理しているセッションカウンタが上限数に達しているかどうか判断する。ここで、セッションカウンタが上限数に達していないとSM204が判断した場合は、S1810に遷移し、上限数に達しているとSM204が判断した場合は、S1809に遷移する。そして、S1809で、SM204は、一定時間待機した後、S1808へ戻る。
【0098】
以上、説明したように、あらかじめ画像処理装置110の操作部112でユーザ認証終了後にセッションを確保するリソースの上限数を監視し、空きがあれば、ユーザ認証情報をキーにセッションのリソースを確保する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。
【0099】
〔第4実施形態〕
以下、第4実施形態を図19のフローチャートを参照しながら説明する。
図19は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、S1901、S1902、S1906〜S1912は画像処理装置110のCPU301がRAM302にモジュールをロードして実行することで実現される。以下、第1実施形態との違いのみを説明する。
S1909で、SM204はセッションのためのリソースを確保する。そして、S1910で、SM204は、S1907で作成した認証コンテキストのセッションID参照属性914の値に、確保した複数のセッション1200のセッションID属性1203の値を格納する。
【0100】
これにより認証コンテキストをキーに複数のセッション1200にアクセス可能となる。
さらに、SM204は、セッション1200のセッション状態属性1206に"リソース確保状態"を格納する。さらに、SM204は、セッション1200のセッションタイプ属性1204の1ビット目を立てる。
ユーザ認証に成功すると画像処理装置110の操作部112はデフォルト画面としてアプリケーション選択画面(不図示)を表示する。ユーザは各アプリケーションを選択することによりコピーやファックス、ブラウザなどのアプリケーションを利用することができる。
【0101】
次に、S1911で、ユーザはブラウザアプリケーションを選択する。そして、S1912で、SM204は不要なセッションを解放して、本処理を終了する。
以上説明したように、あらかじめ画像処理装置110の操作部112でユーザ認証したときにユーザ認証情報をキーにセッションのリソースを複数確保し、必要なリソース決定時(アプリケーション選択時)に必要なリソース以外を解放する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。
なお、上述した実施形態の場合、認証サーバ140とサーバ130が別の装置である場合について説明したが、これらのサーバは同じ装置で構成されていてもよい。
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【符号の説明】
【0102】
110 画像処理装置
130 サーバ
140 認証サーバ
【技術分野】
【0001】
本発明は、データ処理装置、データ処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【0002】
近年、プリンタ、コピー、ファクシミリ、スキャナ等の機能を有するデータ処理装置が一般的に知られている。MFP(Multi Function Peripheral)はその一例であるこのようなデータ処理装置は、プリンタ、コピーおよびファクシミリ、スキャナ等の機能をユーザの指示に基づいて実行する。
また、データ処理装置の中には、ブラウザを備え、ネットワーク上のウェブサーバにアクセスすることができるものがある。
さらに、ウェブサーバ等の外部装置に、データ処理装置を操作するためのユーザインタフェースを実装し、ユーザが、データ処理装置のブラウザをから当該ウェブサーバのユーザインタフェースを利用する方法が考えられている。
このような方法を用いた場合、データ処理装置のブラウザから外部装置のユーザインタフェースを介して行われた指示は、外部からの処理要求(印刷要求等)としてデータ処理装置に受信される。このようなデータ処理装置において、例えば、外部装置を識別する識別情報(ホスト名など)をデータ処理装置と外部装置間でやり取りすることで、正当な外部装置からの処理要求のみを実行するものがある。(特許文献1参照)
ここで、上記のようなデータ処理装置と外部装置とを用いるシステムにおいては、HTTP(Hyper Text Markup Language)プロトコルを用いる。当該HTTPプロトコルでは、外部装置が、データ処理装置からの処理要求があるたびにデータ処理装置とのコネクションを確立する。そして、外部装置は、データ処理装置からの処理要求に対してレスポンスを行う。そして、データ処理装置は、レスポンスがあると、ユーザのログイン情報やユーザ情報をセッション領域にセッション情報として記憶させ、一連の処理が終了した後に当該コネクションを切断する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−003834号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、データ処理装置の中には、一般的なウェブサーバ等の外部装置に比べて、セッション情報の管理に費やすことのできるメモリリソースが少ないものがあり、そのようなデータ処理装置で確保できるセッションの数には限りが有る。
このような、データ処理装置は、ネットワークを介して複数のPCに接続されていることがあり、それらのPCからの処理要求を受付けた場合に、その処理要求のためにセッションを確保することがある。
そのため、ユーザがデータ処理装置にログインした後、データ処理装置の操作部から外部装置のインタフェースを介して、データ処理装置に処理要求を送信した場合に、データ処理装置で管理できるセッションが不足している場合がある。その場合、セッション不足が原因で、データ処理装置によって処理要求が正常に受付けられず、エラーが発生してしまう。
【0005】
その場合、ユーザは、データ処理装置にログインした後、外部装置にアクセスし、外部装置上のユーザインタフェースを介してデータ処理装置に処理要求を送信するまで、セッション情報を記憶するためのリソースが不足していることに気付くことができない
本発明は、上記の課題を解決するためになされたものである。本発明の目的は、データ処理装置の操作部を介してユーザが指示した処理を、外部装置からの処理要求に従って実行する場合に、当該処理要求がセッション不足によって実行されないことを未然に防ぐ仕組みを提供することである。
【課題を解決するための手段】
【0006】
上記目的を達成する本発明のデータ処理装置は以下に示す構成を備える。
ネットワークを介して外部装置に接続されたデータ処理装置であって、外部装置が備えるユーザインタフェースを取得して表示する表示手段と、表示手段によって表示されたユーザインタフェースを介してユーザから指示を受付ける受付手段と、受付手段によって受付けた指示を外部装置に送信する指示送信手段と、データ処理装置を操作するユーザの認証に成功した場合に、外部装置との通信を行うためのセッションを確保する確保手段と、指示送信手段によって外部装置に送信された指示に対応する処理要求を、確保手段によって確保されたセッションを用いて外部装置から受信するよう制御する制御手段とを有する。
【発明の効果】
【0007】
本発明によれば、データ処理装置の操作部を介してユーザが指示した処理を、外部装置からの処理要求に従って実行する場合に、当該処理要求がセッション不足によって実行されないことを未然に防ぐことができる。
【図面の簡単な説明】
【0008】
【図1】画像処理システムの一例を示すブロック図である。
【図2】画像処理装置のソフトウェア構成を示すブロック図である。
【図3】画像処理装置の詳細構成を示すブロック図である。
【図4】画像処理装置の外観を示す図である。
【図5】操作部の外観構成を示す図である。
【図6】操作部の詳細構成を示すブロック図である。
【図7】HTTPプロトコルによる要求と応答の処理の流れを示す図である。
【図8】LCD表示部に表示されるUIの一例を示す図である。
【図9】画像処理システムの認証コンテキストのデータ構造を示す図である。
【図10】WASに対する処理の一例を説明する図である。
【図11】サーバの詳細構成を示すブロック図である。
【図12】画像処理システムのセッションデータ構造を示す図である。
【図13】操作部に表示されるログイン画面の一例を示す図である。
【図14】画像処理システムの処理手順を示すフローチャートである。
【図15】画像処理システムの処理手順を示すフローチャートである。
【図16】操作部に表示されるUIの一例を示す図である。
【図17】画像処理システムの処理手順を示すフローチャートである。
【図18】画像処理システムの処理手順を示すフローチャートである。
【図19】画像処理システムの処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
次に本発明を実施するための最良の形態について図面を参照して説明する。
図1は、本発明の実施形態を示すデータ処理システムの構成を説明するブロック図である。なお、本実施形態では、データ処理システムの一例として画像処理システムを、データ処理装置として画像処理装置を例に説明する。また、本実施形態では、画像処理装置が、いわゆる複合機(MFP(Multi Function Peripheral)である場合を示すが、SFP(Single Function Peripheral:単一機能周辺機器)であってもよい。
【0010】
図1において、100はLAN(Local Area Network)で、WAN(Wide Area Network)やインターネットに接続されている。ホストコンピュータ120は、LAN100に接続されている。ホストコンピュータ120は、ウェブブラウザを備え、画像処理装置110、サーバ130にHTTP接続してサービスの提供を受けることができる。
サーバ130は、ウェブアプリケーションサーバを実現するためのソフトウェアプロセス群を備える。具体的に、サーバ130は、以下のソフトウェアモジュールを備える。当該サーバ130は、ネットワーク上の複数の装置からアクセスすることができ、それら複数の装置は、当該サーバ130の機能を利用することができる。例えば、サーバ130は、ネットワークに接続されたホストコンピュータ120や、画像処理装置110、あるいは不図示の他の装置からアクセスされ、その機能が利用される。
【0011】
131はウェブサーバ部で、クライアントからのHTTPプロトコルによる要求に応答してHTMLなどのコンテンツを伝送するモジュールである。132はアプリケーションサーバ部で、HTTP要求に応じて所定の処理と、HTTP応答とを行うCGI(Common Gateway Interfaces)プログラムやサーブレット(Servlet)などの形態で実装されたモジュールである。133はデータ管理部で、アプリケーションサーバ部132から呼び出されるスクリプトデータの保存や、受信したデータの格納を行うモジュールである。
【0012】
認証サーバ140は、画像処理装置110のユーザ認証及びユーザ情報管理を行う。具体的に、認証サーバ140は画像処理装置110、サーバ130からユーザ名、ドメイン名、パスワード等のCredentialを用いてユーザ認証を行う。そして、認証サーバ140は、ユーザ認証に成功すると、Security Token(以下ST)を認証の要求元に返す。すなわち、STは、Credentialが正当なものであることが確認されてユーザ認証に成功した場合に返される、認証済みであることを示す情報である。そして、認証サーバ140によってユーザ認証する機器間であれば、このSTをやり取りすることによって、再度認証サーバ140によるユーザ認証を受ける必要がなくなる。このような認証サーバ140によれば、LAN100に接続された機器間で統一的にユーザ認証を行うことができ、さらに機器間でユーザを一意に特定することができる。
【0013】
画像処理装置110は、画像の入出力と送受信および各種の画像処理を行う複合機(MFP:Multi Function Peripheral)である。画像処理装置110は、画像入力デバイスであるスキャナ113、画像出力デバイスであるプリンタ114、コントローラユニット111、操作部112を備える。
スキャナ113、プリンタ114、操作部112は、それぞれ、コントローラユニット111に接続され、コントローラユニット111からの命令によって制御される。コントローラユニット111は、LAN100に接続されている。
【0014】
[画像処理装置110のソフトウェア構成について]
次に、画像処理装置110のソフトウェア構成について図2を参照しながら説明する。
図2は、図1の画像処理装置110のソフトウェア構成を示すブロック図である。
図2において、ユーザインタフェース(以下、UI)モジュール201は、オペレータが画像処理装置110に対する各種操作・設定を行う際に、機器とユーザ操作との仲介を行うモジュールである。このUIモジュール201は、オペレータの操作に従い、後述の各種モジュールに入力情報を転送して処理の依頼、またはデータの設定などを行う。
【0015】
ウェブサーバ(Web-Server)モジュール203は、ウェブクライアント(例えばホストコンピュータ120)からのHTTP要求を受け付ける。以下、ウェブサーバ(Web-Server)モジュール203を、ウェブサーバ(Web-Server)203と略記する。そして、ウェブサーバ203は、クライアントからのHTTP要求に対して、HTTPモジュール214、TCP/IP通信モジュール217、ネットワークドライバ(Network-Driver)221を介してウェブクライアントにHTTPで応答する。ここで、応答される内容は、画像処理装置110の管理情報等が含まれる。
【0016】
ウェブブラウザ(Web-Browser)モジュール209は、インターネットまたはイントラネット上の各種ウェブページを読み込んで表示を行うものである。以下、ウェブブラウザ(Web-Browser)モジュール209をウェブブラウザ209と略記し、そのの詳細な構成は後述する。
HTTPモジュール214は、画像処理装置110がHTTPによる通信を行う際に使用される。HTTPモジュール214は後述のTCP/IP通信モジュール217を使って、ウェブサーバ203やウェブブラウザ209、後述のウェブサービスプロバイダ(Web-Service-Provider)モジュール207に通信機能を提供する。
また、HTTPモジュール214は、HTTPをはじめとするウェブで用いられる各種プロトコルに対応し、特にセキュリティ対応したプロトコルによる通信機能を提供する。
TCP/IP通信モジュール217は、ネットワークドライバ(Network Driver)221を用いて、前述の各種モジュールにネットワーク通信機能を提供する。ネットワークドライバ221は、ネットワークに物理的に接続され、データの入出力を制御するものである。認証サービス(Authentication-Service)モジュール205は、ユーザが画像処理装置の機能を利用するためのユーザ認証処理を管理・制御するものである。
【0017】
ローカル認証サービス(LAS)モジュール210はUIモジュール201から行われるユーザ認証に対する認証処理の管理・制御を行う。以下、ローカル認証サービス(LAS)モジュールをLASと略記する。LAS210はUIモジュール201から入力されたCredentialを受けると、認証サーバ140に対して認証処理を行う。
なお、認証サーバ140の認証方式が異なると、ユーザ認証のためのデータ通信プロトコルやユーザ認証に必要なCredentialは異なる。そのため、LAS210は入れ替え可能であり、LAS210を入れ替えることにより認証サーバ140の様々な認証方式に対応することができる。ここで、認証方式には、例えばNTLM認証やケルベロス認証などがある。また、LAS210の入れ替えにより、認証サーバ140で行う認証の代わりに画像処理装置110内の簡易認証サービスモジュール213で認証を行う構成をとることもできる。以下、簡易認証サービスモジュールをSASと略記する。
【0018】
さらに、LAS210の入れ替えによりタッチパネルやソフトキーボードによる認証情報入力のほかにUSBキーボードやUSBカードリーダによるCredential入力など、さまざまな入力の受け付けが可能になる。
リモート認証サービス(RAS)モジュール211はウェブクライアントからウェブサーバモジュール203経由で行われるユーザ認証に対する認証処理の管理・制御を行う。以下、リモート認証サービス(RAS)モジュールをRASと略記する。
【0019】
RAS211はウェブサーバ203からのCredentialを受けると、認証サーバ140と認証処理を行う。LAS210と同様に入れ替え可能であり、RAS211を入れ替えることにより認証サーバ140の様々な認証方式に対応することができる。
ウェブサービス認証モジュール(WAS)モジュール212は、後述のウェブサービスプロバイダモジュール207経由で画像処理装置の機能を利用するための認証処理の管理・制御を行う。以下、ウェブサービス認証モジュール(WAS)モジュールをWASと略記する。
なお、WAS212は、認証処理を行うためのインタフェースをウェブサービスとしてネットワークに公開している。
認証コンテキスト管理(ACM)モジュール206はユーザ認証成功後に認証サーバ140から返されるST及びに認証サーバ140から取得可能なユーザ情報を管理する。以下、認証コンテキスト管理(ACM)モジュールをACMと略記する。なお、ACM206の詳細説明は後述する。
【0020】
ウェブサービスプロバイダ(Web-Service-Privider)モジュール207は、ウェブサービスとしてデバイスの機能を提供する。ウェブサービスプロバイダ(Web-Service-Privider)モジュール207は、LAN100を介して受信したコマンドを解釈して実行する。このコマンドには、例えばSOAP等のコマンドを適用することができる。以下、ウェブサービスプロバイダ(Web-Service-Privider)モジュールをWSPと略記する。
【0021】
ユーザ設定情報管理(UPM)モジュール208は、ユーザの設定情報・管理情報をユーザ単位で管理する。以下、ユーザ設定情報管理(UPM)モジュールをUPMと略記する。UPM208は、設定情報を取得するためにはSTを必要とし、STをアクセスキーとして各ユーザの設定情報を取得する。SAS213は、画像処理装置110内でユーザ認証及びユーザ情報管理を行うモジュールである。
このように認証サービス(Authentication-Service)モジュール205は、認証サービスをLAS210,RAS211、WAS212のいずれかを入れ替えることにより認証サーバ140で認証を行う。また、認証サービス(Authentication-Service)モジュール205は、認証サービスをLAS210,RAS211、WAS212以外の簡易認証サービスモジュール213で認証を行うように切り替えることが可能である。
【0022】
セッション管理(Session−Manager)モジュール204は、ウェブサーバモジュール203や認証サービスモジュール205やウェブサービスプロバイダモジュール207から呼び出され、セッションの管理・制御を行う。セッション管理モジュール204についての詳細は後述する。なお、セッション管理モジュール204をSM204と略記する。ここで、SM204は、後述するセッションとユーザ認証された認証情報とを関連付けて管理している。
【0023】
制御API(Control API)218は、ウェブサーバ203やウェブブラウザ209、WSP207などの上流モジュールに、Job-Manager219などの下流モジュールに対するインタフェースを提供する。これによって、上流および下流のモジュール間の依存関係が軽減され、それぞれの流用性を高めることができる。以下、ジョブマネージャ(Job-Manager)モジュールをJob-Managerと略記する。
【0024】
Job-Manager219は、前述の各種モジュールから制御API218を介して指示される様々な処理を解釈し、後述の各モジュール220,224,226に指示を与えるものである。また、Job-Manager219は、画像処理装置110内で実行されるハード的な処理を一元管理するものである。
コーデックマネージャ(CODEC-Manager)モジュール220は、Job-Manager219が指示する処理の中で、データの各種圧縮・伸長を管理・制御するものである。以下、コーデックマネージャ(CODEC-Manager)モジュールをCODEC-Managerと略記する。
FBEエンコーダ(FBE-EncoDer)モジュール229は、スキャン処理によって読み込まれたデータを、FBEフォーマットを用いて圧縮する。具体的には、Job-Manager219や後述のScan-Manager224によって実行されたスキャン処理によって読み込まれたデータを、FBEフォーマットを用いて圧縮する。
【0025】
JPEG-CODEC222は、読み込まれたデータのJPEG圧縮および印刷データのJPEG展開処理を行う。
ここで、読み込まれたデータとは、Job-Manager219やScanner-Manager224によって実行されたスキャン処理に基づくデータである。また、印刷データとは、Print-Manager226によって実行された印刷データである。
MMRコーデック(MMR-CODEC)モジュール223は、読み込まれたデータのMMR圧縮および印刷データのMMR伸長処理を行う。ここで、読み込まれたデータとは、Job-Manager219やScanner-Manager224によって実行されたスキャン処理に基づくデータが含まれる。また、読み込まれたデータとは、Print-Manager226によって実行された印刷処理に基づくデータが含まれる。
【0026】
MMRコーデック(MMR-CODEC)モジュール223は、読み込まれたデータのMMR圧縮および印刷データのMMR伸長処理を行う。ここで、読み込まれたデータとは、Job-Manager219やScanner-Manager224によって実行されたスキャン処理に基づくデータが含まれる。また、読み込まれたデータとは、Print-Manager226によって実行された印刷処理に基づくデータが含まれる。
Scanner-Manager224は、Job-Manager219が指示するスキャン処理を管理・制御するものである。スScanner-Manager224と画像処理装置110に内部的に接続しているスキャナ113との間の通信が、SCSIドライバ225を介して行われる。
【0027】
Print-Manager226は、Job-Manager219が指示する印刷処理を管理・制御するものである。Print-Manager226とプリンタ114との間のインタフェースがEngine-I/F227により提供される。
また、パラレルポートドライバ(Parallel)228が搭載されており、Parallel228を介して不図示の出力機器にデータを出力する際のI/Fを提供する。
[画像処理装置110の詳細構成について]
図3は、図1に示した画像処理装置110の詳細構成を示すブロック図である。
図3において、111はコントローラユニットで、装置全体を制御する。コントローラユニット111は、画像入力デバイスであるスキャナ113や画像出力デバイスであるプリンタ114を接続し、これらを制御する。さらに、コントローラユニット111は、LAN100や公衆回線と接続され、これらを介して画像情報やデバイス情報の入出力を外部の機器との間で行う。ここで、公衆回線に接続される機器には、ファクシミリ装置、あるいはファクシミリ機能を備える情報処理装置が含まれる。
コントローラユニット111は、システムバス307を介して以下のデバイスと接続される。ここで、デバイスとは、CPU301、RAM302、ROM303、HDD(ハードディスク装置)304、イメージバスI/F305、操作部I/F306、ネットワークI/F308、およびモデム(MODEM)309が含まれる。
【0028】
RAM302は、CPU301の作業領域を提供するためのメモリであり、また、画像データを一時記憶するための画像メモリとしても使用される。ROM303はブートROMであり、ROM303には、システムのブートプログラムが格納されている。HDD304には、システムソフトウェア、画像データなどが格納される。
操作部I/F306は、操作部112との間で入出力を行うためのインタフェースであり、操作部112に表示する画像データを操作部112に対して出力する。また、操作部I/F306は、ユーザが操作部112を介して入力した情報を、CPU301に伝送するなどの役割を果たす。
NetworkI/F308は、LANと接続され、LANに対して情報の入出力を行う。MODEM309は、公衆回線と接続され、公衆回線に対して情報の入出力を行う。ImageBusI/F305は、システムバス307と画像データを高速で転送する画像バス310とを接続し、データ構造を変換するバスブリッジである。
【0029】
画像バス310には、RIP(ラスタイメージプロセッサ)311、デバイスI/F312、スキャナ画像処理部313、プリンタ画像処理部314、画像回転部315、および画像圧縮部316が接続されている。
RIP311は、LANから受信されたPDLコードをビットマップイメージに展開する。デバイスI/F312は、スキャナ113およびプリンタ114とコントローラユニット111とを接続し、画像データの同期系/非同期系の変換を行う。
スキャナ画像処理部313は、入力画像データに対し補正、加工、編集などを行う。プリンタ画像処理部314は、プリント出力画像データに対して、プリンタの補正、解像度変換などを行う。画像回転部315は、画像データの回転を行う。
【0030】
画像圧縮部316は、多値画像データに対してはJPEG圧縮伸長処理を行い、2値画像データに対してはJBIG,MMR,MHなどの圧縮伸長処理を行う。
[画像処理装置110の外観構成について]
画像処理装置の外観構成について図4を参照しながら説明する。
図4は、図1に示した画像処理装置110の外観を示す図である。
図4において、画像処理装置110において、スキャナ113は、原稿となる紙上の画像を照明し、CCDラインセンサ(図示せず)を走査することによって、ラスタイメージデータを生成する。使用者が原稿用紙を原稿フィーダ405のトレイ406にセットして、操作部112において読み取りの起動を指示すると、コントローラユニット111のCPU301がスキャナ113に指示を与える。そして、原稿フィーダ405が原稿用紙を1枚ずつフィードし、スキャナ113は原稿フィーダ405からフィードされた原稿画像の読み取り動作を行う。
【0031】
プリンタ114は、ラスタイメージデータを、用紙カセット401,402,403から給紙した用紙上の印刷し、排紙トレイ404に排紙するものであり、その印刷方式として、感光体ドラムや感光体ベルトを用いた電子写真方式が用いられている。
[画像処理装置110の操作部112の外観構成について]
次に、操作部112の構成について図5を参照しながら説明する。
図5は、図1に示した操作部112の外観構成を示す図である。
図5において、操作部112には、LCD上にタッチパネル502が貼られているLCD表示部501を有する。
【0032】
このLCD表示部501には、システムの操作画面およびソフトキーが表示されるとともに、表示されているキーが押されると、押された位置を示す位置情報がCPU301に伝えられる。また、操作部112には、スタートキー505、ストップキー503、IDキー507、リセットキー504の各種ハードキーが設けられている。
スタートキー505は、原稿画像の読み取り動作の開始を指示するためのキーであり、スタートキー505の中央部には、緑と赤の2色のLED表示部506が設けられている。2色のLED表示部506は、その色によってスタートキー505が使用可能な状態にあるか否かを表す。ストップキー503は、稼働中の動作を止めるためのキーである。IDキー507は、使用者のユーザIDを入力するときに用いられるキーである。リセットキー504は操作部112からの設定を初期化するときに用いられるキーである。
【0033】
[画像処理装置110の操作部112の構成について]
次に、操作部112の構成について図6を参照しながら説明する。
図6は、図1の操作部112の詳細構成を示すブロック図である。
図6において、操作部112は、操作部I/F306を介してシステムバス307に接続される。システムバス307には、上述したように、CPU301、RAM302、ROM303、HDD304などが接続されている。操作部I/F306は、ユーザからの入力を制御するための入力ポート601と、画面出力デバイスを制御するための出力ポート602とを有する。入力ポート601は、タッチパネル502、各種キー503,504,505,507を含むキー群からのユーザ入力をCPU301に渡す。CPU301は、ユーザ入力の内容と制御プログラムとに基づいて表示画面データを生成し、出力ポート602を介して、LCD表示部501に表示画面を出力する。また、CPU301は、出力ポート602を介して必要に応じてLED表示部506を制御する。
【0034】
[画像処理装置110のウェブブラウザ209の構成について]
ウェブブラウザ209は、HTTPモジュール214を介して、他のネットワークノードとの間に接続を確立し通信する。この通信においては、URLによって記述されたリソースに対してHTTP要求が発行され、その応答が得られる。この過程で、各種符号化形式に則した通信データの符号化・復号化も行われる。
イベント処理部(不図示)は、操作部112上のタッチパネルシートや各キーなどに対してユーザが行った操作のイベントを受信して、各イベントに対応した処理を行う。また、イベント処理部は、制御API218から装置やジョブなどの状態遷移イベントを受信して、各イベントに対応した処理を行う。スクリプトインタプリタ(不図示)は、Java(登録商標)Script(ECMA Script)などのスクリプトを解釈し実行するインタプリタである。スクリプトは、文書に埋め込まれているか、または文書からリンクされた別ファイル中に記述される。コンテンツの提供者は、スクリプトによって、提供する文書の動的な挙動をプログラムできる。
【0035】
図2に示すウェブブラウザ209は、HTTPモジュール214を介して、他のネットワークノードとの間に接続を確立し通信する。この通信においては、URLによって記述されたリソースに対してHTTP要求が発行され、その応答が得られる。この過程で、各種符号化形式に則した通信データの符号化・復号化も行われる。
イベント処理部(不図示)は、操作部112上のタッチパネル502や各キーなどに対してユーザが行った操作のイベントを受信して、各イベントに対応した処理を行う。また、イベント処理部は、制御API218から装置やジョブなどの状態遷移イベントを受信して、各イベントに対応した処理を行う。
【0036】
スクリプトインタプリタ(不図示)は、Java(登録商標)Script(ECMA Script)などのスクリプトを解釈し実行するインタプリタである。スクリプトは、文書に埋め込まれているか、または文書からリンクされた別ファイル中に記述される。コンテンツの提供者は、スクリプトによって、提供する文書の動的な挙動をプログラムできる。
[HTTPプロトコルによる要求と応答の流れ]
図7は、図2に示したHTTPモジュール214によるHTTPプロトコルによる要求と応答の処理の流れを示す図である。
【0037】
図7において、クライアント701は、図7に示すように、HTTP要求を送信しHTTP応答を受信するソフトウェアが実装された装置である。本実施態では、ウェブブラウザ209が実装された画像処理装置110や、ウェブブラウザが実装されたホストコンピュータ120に相当する。
サーバ702は、HTTP要求を受信して対応する処理を行い、さらにHTTP応答を返信するソフトウェアであり、本実施形態では、図1に示したサーバ130に相当するものである。
クライアント701は、HTTP要求をGETメソッドまたはPOSTメソッドのいずれかの方法で送信することができる。ここで、クライアント701が所望のリソースに対するHTTP要求703をGETメソッドでサーバ702に送信する場合、リソースは一般にURI(特にURL)形式によって指定される。そして、サーバ702は、HTTP要求703により指定されたリソースに対応するデータを取得または生成し、このデータをHTTP応答704によって返送する。
【0038】
次に、HTTP要求をPOSTメソッドで送信する場合を説明する。
HTML文書にフォーム(form)が含まれ、その送信方法にPOSTメソッドが指定されている場合、以下のような処理が行われる。
すなわち、クライアント701のウェブブラウザにより表示されたフォームにユーザにより入力された情報は符号化される。そして、クライアント701は、その符号化された情報、すなわちフォームの入力内容を、HTTP要求705に添付してサーバ702に送信する。
【0039】
サーバ702においては、指定されたリソースが、クライアント701から送られたデータを受信して処理を行い、HTTP応答706を生成し、クライアント701に返信する。
[画像処理装置110のブラウザ画面構成について]
次に、UIモジュール201により表示されるウェブブラウザの画面構成について図8を参照しながら説明する。以下、サーバ130から取得するウェブブラウザの画面を用いて、ユーザからの処理要求を受付ける処理について説明する。
【0040】
図8は、図6に示すLCD表示部501に表示されるユーザインタフェースの一例を示す図である。本例は、UIモジュール201により表示されるウェブブラウザの画面に対応する。
図8において、ブラウザ画面800には、URL入力フィールド808、コンテンツ表示領域802、およびステータス領域807が表示される。また、ブラウザ画面800には、タブ801、OKボタン809、プログレスバー、戻るボタン803、進むボタン804、リロードボタン806、中止ボタン805等のボタン類が表示される。なお、ボタン類の表示形態、表示位置は本表示画面例に限定されるものではない。
【0041】
タブ801は、ウェブブラウザ機能と他の機能(コピー、ボックス、送信、拡張)との画面切り替えを行うボタンとして機能するものである。URL入力フィールド808は、ユーザが所望のリソースのURLを入力するフィールドであり、当該フィールドをユーザが押すと、文字入力を行うための仮想的なフルキーボード(不図示)が表示される。ユーザは、仮想的なフルキーボード上に配置されたキートップを模したソフトキーによって所望の文字列を入力することができる。
OKボタン809は、入力したURL文字列を確定するソフトキーである。URLが確定されると、ウェブブラウザモジュール209は、当該リソースの取得を行うためのHTTP要求を発行する。
【0042】
プログレスバーは、HTTP要求応答によるコンテンツ取得処理の進捗状況を示す。コンテンツ表示領域802は、取得したリソースが表示される領域である。戻るボタン803は、コンテンツ表示の履歴をさかのぼり、現時点で表示しているコンテンツの前に表示したコンテンツを表示し直すためのソフトキーである。
進むボタン804は、コンテンツ表示の履歴をさかのぼって表示しているときに、その時点で表示しているコンテンツの後に表示したコンテンツの表示に戻るためのソフトキーである。
リロードボタン806は、現時点で表示しているコンテンツの再取得と再表示を行う。中止ボタン805は、実行中のコンテンツ取得処理を中止するソフトキーである。
ステータス領域810は、画像処理装置の各種機能からのメッセージを表示する領域である。このステータス領域810には、ブラウザ画面800を表示中であっても、スキャナやプリンタや他の機能などから、ユーザの注意を促すためのメッセージを表示することができる。
【0043】
また、同様にウェブブラウザ機能からもメッセージの表示を行うことができる。ウェブブラウザ機能は、リンク先のURL文字列、コンテンツのタイトル文字列、スクリプトによって指示されたメッセージなどを表示する。
[認証コンテキスト管理モジュールについて]
図2に示すACM206は、以下の各認証サービスモジュールから受け取る認証コンテキストを管理する。ここで、各認証サービスには、LAS210、RAS211、WAS212が含まれる。LAS210、RAS211、WAS212は、認証に成功すると認証コンテキストとして必要な情報をACM206に渡す。ACM206は認証コンテキストを作成し、ユーザ情報を書き込む。このようにして、認証に成功し認証コンテキストにユーザ情報が書き込まれると、それ以降のユーザの操作はすべて認証コンテキストに書き込まれたユーザの権限で動作する。
さらに、ACM206は、認証コンテキストを管理する。ACM206によって認証コンテキストが管理される期間は、上述のように、ユーザの認証に成功し、認証コンテキストが作成されてから、ユーザのログアウト処理が行われるまでの期間である。
【0044】
また、ログアウト条件としては、ユーザによりログアウト処理がされる、設定されたタイムアウト時間の間に何も操作を行われない、各種デバイス設定情報の変更がされる、低電力モードへの移行、デバイス再起動等がある。
次に、認証コンテキストのデータ構造について図9を用いて説明する。図9は、図2に示したACM206が作成して管理する認証コンテキストのデータ構造を説明する図である。
【0045】
図9において、属性(Attribute)列901は認証コンテキストが持つ属性を示している。またデータタイプ(DataType)列902は各属性に対応したデータタイプを示している。
認証サービスタイプ属性(AuthSvcType)904は、どの認証サービス(LAS210、RAS211、WAS212)から作られた認証コンテキストであるかを識別するための情報を格納する。
【0046】
認証サーバアドレス属性(AuthSerIP)905は、認証サーバ140のIPアドレスを格納する。ST属性(SecurityToken)906は、認証サーバ140から取得したSTを格納する。
ユーザ名属性(UserName)907は、認証サーバ140から取得したユーザ名を格納する。ユーザID属性(UserID)908は、認証サーバ140から取得したユーザのユーザIDを格納する。
グループ名属性(GroupName)909は、認証サーバ140から取得したユーザが所属するグループ名を格納する。グループID属性(GroupID)910は、認証サーバ140から取得したグループのグループIDを格納する。
【0047】
ドメイン名属性(DomainName)911は、認証サーバ140から取得したユーザが所属するドメイン名を格納する。メールアドレス属性(Email)912は、認証サーバ140から取得したユーザのメールアドレスを格納する。
権限属性(AccessRight)913は、認証サーバ140から取得したユーザがコピー操作やスキャン操作などに対する操作権限を持っているかどうかを表す情報を格納する。セッションID参照属性(RefSessionID)914は認証コンテキストをキーに作成したセッションリソースへの参照情報を格納する。
【0048】
[ウェブWAS212に対する処理の流れ]
図10は、図2に示したWAS212に対する処理の一例を説明する図である。なお、S1002〜S1009は各ステップを示す。
図10において、クライアント1001は、WAS212に対してウェブサービスとしてHTTP要求を送信し、HTTP応答を受信するソフトウェアを実装する端末であり、本実施形態ではサーバ130に相当する。
【0049】
まず、S1002で、クライアント1001は、画像処理装置110のWAS212に対して認証方式の問い合わせるためのHTTP要求を送る。次に、S1003で、クライアント1001によるS1002の要求に対して、WAS212はクライアント1001に対して認証方式を返信する。
そして、WAS212は、クライアント1001から受け取るCredentialに対するユーザ認証を行う。クライアント1001からWAS212に対してSTを渡しユーザ認証を行うと、WAS212は、S1004で、認証サーバに対してそのSTが正当であるかどうかの確認を行う。ここで、STが正当な場合は認証サーバ140からOKが返る。
【0050】
ユーザ認証に成功すると、WAS212はACM206に対して認証コンテキスト作成を依頼する。ACM206はSTとユーザ情報を元に認証コンテキストを作成し保存する。このようにして、認証コンテキストが作成されると、ユーザは認証コンテキストに基づいた権限で画像処理装置110のサービスをウェブサービス経由で利用することができる。
そして、S1005で、WAS212は、クライアント1001に対してSTを返信する。次に、S1006で、クライアント1001はウェブサービス記述のヘッダ部分にSTを付加する形式で挿入し、画像処理装置110に対してHTTP要求を送る。
【0051】
WAS212は、クライアント1001から受け取るHTTP要求のヘッダ部のSTを読み取り、STが正当なものであるかを判断する。ここで、受け取ったSTが正しくないと判断した場合は、S1007でクライアント1001に対してエラーを返信する。ここで、STが正当なものであるとWAS212が判断した場合、ローカル認証サービス経由で作成した認証コンテキストと、ウェブサービス経由で作成した認証コンテキストが一致しているかどうかをWAS212が確認する。
【0052】
ここで、WAS212が2つの認証コンテキストが一致していると判断した場合は、WSP207に対してウェブサービス呼び出しを行う。一方、WAS212が2つの認証コンテキストが一致していないと判断した場合は、S1007で、WAS212はエラーをクライアント1001に返す。
次に、S1008で、クライアント1001はログアウトのHTTP要求をWAS212へ送る。WAS212はログアウト要求を受け取ると、ACM206に対応した認証コンテキストを破棄するように依頼し、ACM206は認証コンテキストを破棄する。
【0053】
そして、S1009で、認証コンテキストが破棄されたら、WAS212からクライアント1001にOKが返り、失敗したらNGが返信される。
[サーバ130の詳細構成について]
図11は、図1に示したサーバ130の詳細構成を示すブロック図である。
図11において、アプリケーションサーバ部132のビジネスロジック部1103は、HTTP要求に応じてウェブサーバ部131から呼び出されて処理を実行する。ビジネスロジック部1103は、処理結果として、動的に生成したHTMLをウェブサーバ部131に返す。
アプリケーションサーバ部132のスクリプトエンジン部1102は、ビジネスロジック部から呼び出され、後述するプログラム管理領域1105からスクリプトを読み込んでビジネスロジック部1103に返す。ここで、スクリプトとは、プログラム実行記述書に対応するものである。
【0054】
ビジネスロジック部1103は、スクリプトエンジン部1102によって読み込まれたスクリプトを順次実行する。そして、ウェブサービスリクエスタ部1101は、ビジネスロジック部1103から呼び出され、外部のウェブサービスプロバイダ(例えば、WSP207)に対してウェブサービス呼び出しを行う。
認証部1104は、ビジネスロジック部1103から呼び出され、ユーザ認証処理の管理・制御及びにユーザ情報管理、ユーザ設定管理を行う。プログラム管理領域1105は、各種スクリプト及びスクリプトから呼び出されるプログラムを管理する。プログラム管理領域1105のデータはプラグイン機構(不図示)により追加や変更可能である。このプラグイン機構により、サーバ130の機能カスタマイズを可能にする。データ格納領域1106は、文書などのデータを格納する領域である。プリファレンスデータ領域1107は、ユーザ毎の設定情報を格納する領域である。
【0055】
ビジネスロジック部1103は、認証部1104より取得したSTをアクセスキーとしてプリファレンスデータ領域1107に格納されたユーザ毎の設定情報を取得する。そして、ビジネスロジック部1103は、さらに取得したユーザ毎の設定情報を用いて、ユーザ毎にカスタマイズした画面や機能を提供する。
上述したようなシステムの構成にて、画像処理装置110を操作するユーザは、サーバ130に実装されたユーザインタフェースを取得し、取得したユーザインタフェースを画像処理装置110の操作部112に表示させる。そして、操作部112に表示されたユーザインタフェースを用いて、ユーザは、画像処理装置110に所望の処理を実行させるための指示を行う。ユーザによって行われた指示は、画像処理装置110によってサーバ130に送信される。サーバ130は、ユーザによって行われた指示の処理内容を判断し、当該指示内容に対応する処理要求を画像処理装置110に送信する。画像処理装置110は、サーバ130によって送信された処理要求を受信し、当該処理要求に従って動作する。このように動作させることによって、ユーザは、サーバ130に実装されたインタフェースを用いて、画像処理装置110に所望の動作を行わせることができる。この処理要求は、サーバ130がユーザインタフェースを送信することによって開始されたセッションにて行ってもよいし、そのセッションとは異なるセッションを開始して行ってもよい。
【0056】
なお、この処理要求には、画像処理装置110を特定する情報も含まれており、これにより、画像処理装置110に処理を実行させるものである。
また、ユーザは、画像処理装置110を次のように動作させることもできる。例えば、ユーザは、サーバ130に実装されたユーザインタフェースによって、サーバ130以外の外部装置に処理要求を送信し、当該外部装置が処理要求の結果を画像処理装置110に送信するように制御させることができる。ここでいう外部装置の処理とは、例えば、データのダウンロード要求等があり、外部装置がユーザによって指定された場所からデータをダウンロードし、ダウンロードが完了した場合に、画像処理装置110にダウンロードしたデータを送信する。
【0057】
[セッション管理モジュール204の詳細について]
図12は、図2に示したセッション管理モジュール204が管理するセッション1200のデータ構造を説明する図である。図12において、属性(Attribute)列1201は、各セッションが固定で持つ属性を示している。また、データタイプ(DataType)列1202は、各属性に対応したデータタイプを示している。
セッションID属性(SessionID)1203は、各セッションを一意に識別するための識別番号である。セッションタイプ属性(SessionType)1204は、どの認証サービス(LAS210、RAS211、WAS212)経由で作られたセッションであるかを識別するための情報を格納する。ここで、LAS210経由で作られた場合、1ビット目のフラグが立つ。また、RAS211経由で作られた場合は2ビット目のフラグが立つ。
【0058】
さらに、WAS212経由で作られた場合は3ビット目のフラグが立つ。例えば、LAS210経由でセッションのリソースが確保されて、ウェブサービス認証サービス経由でセッションが参照された場合、1ビット目と3ビット目のフラグが立つ。このフラグはリソース解放時の情報として利用され、値が0になった場合にリソースの解放を行う。
操作種別属性(OperateKind)1205は、どの操作を行うためにセッションのリソースを確保したかの操作種別を識別するための情報を格納する。操作種別としてはプリント操作、スキャン操作、ファックス操作、機器設定情報アップロード操作、機器設定情報ダウンロード操作、機器状態取得操作、その他がある。
【0059】
セッション状態属性(SessionState)1206は、セッションの状態を識別するための情報を格納する。とりうる状態としては"リソース確保状態"、"処理待ち状態"、"処理実行中状態"がある。認証コンテキストをキーに空のセッションリソースを確保したときの状態が、"リソース確保状態"である。外部からの処理要求を実行する直前の状態が"処理実行中状態"である。処理が終了した状態が"処理待ち状態"である。
ラストアクセスタイム属性(LastAccessTime)1207は、最後にセッションに対して参照、書き込み、あるいは読み込みが行われた時間を格納する。
セッション情報属性(SessionInfo)1208は、必要に応じて自由にプログラムより利用される。セッション情報属性(SessionInfo)1208は、プログラムにより動的属性として生成される。プログラムによりセッションID属性1203とユーザが設定した動的属性キーで動的属性値は自由に呼び出し可能である
また、SM204では、セッション1200を用いてセッションの優先順位管理を行う。セッション状態属性1206に格納されたセッション状態で、優先順位は高い順に(1)"処理実行中状態">(2)"リソース確保状態">(3)"処理待ち状態"のように設定されている。
【0060】
さらに、各セッション状態で操作種別属性1205に格納された操作種別で優先順位が決められている。具体的には、優先順位は高い順に、(1)プリント操作、スキャン操作、ファックス操作>(2)機器設定情報アップロード操作、機器設定情報ダウンロード操作>(3)機器状態取得操作>(4)その他のように設定されている。さらに、各操作種別でラストアクセスタイム属性1207に格納されたラストアクセスタイムが現在時間に近い方ものが優先順位は高い。また、セッション管理モジュール204は、LAS210、RAS212経由で呼び出され、セッションのリソース確保/解放の管理・制御を行う。
【0061】
また、セッション管理モジュール204は、セッション情報の読み取り/書き込み管理・制御を行う。さらに、セッション管理モジュール204は、セッション数を管理するためにセッションカウンタを保持し、画像処理装置110で確保可能なセッション数の上限を管理・制御する。セッション管理モジュール204は、外部の装置と通信を行う際に、セッションを確保して通信を行う。各セッションは、セッション管理モジュール204が、RAM302等のメモリにセッション情報を記憶することによって管理される。また、同時に確保可能なセッション数には上限が設けられている。なぜならば、同時に無制限にセッションを確保すると、セッション情報を確保するために大きなメモリの容量が必要になるためである。また、同時に無制限にセッションを確保すると、それらのセッションを用いて同時に多くの外部装置と通信を行う必要があり、処理の負荷が大きくなってしまうからである。
【0062】
[第1の実施形態に係る第1のフロー]
図13は、図1に示した画像処理装置110が備える操作部112に表示されるログイン画面の一例を示す図である。本例では、ユーザがユーザ名、ドメイン名、パスワードのCredentialを入力して画像処理装置110にログインする。画像処理装置110にログインした場合に、ユーザは、画像処理装置110の使用を許可される。また、本実施形態では、認証サーバ140を画像処理システムとして独立した情報処理装置で構成する場合について説明するが、認証サーバ140の機能と同様の機能を画像処理装置110、あるいは、サーバ130が備えていてもよい。
【0063】
図14は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、S1501、S1502、S1506〜S1510は画像処理装置110のCPU301がRAM302にモジュールをロードして実行することで実現される。また、S1503〜S1505は認証サーバ140のCPUがRAMにモジュールをロードして実行することで実現される。
S1501で、ユーザは、操作部112に表示される図13に示すユーザインタフェースを用いて、ユーザ名、ドメイン名、パスワードを入力する。
図13において、テキストボックス1301は、ユーザ名を入力するためのテキストボックス領域である。ここで、ユーザがテキストボックス1301を選択すると、CPU301により実行されるUIモジュール201は、ソフトキーボードを操作部112に表示する。これにより、ユーザはソフトキーボードを用いてユーザ名を文字入力できる。
【0064】
テキストボックス1302は、ドメイン名を入力するためのテキストボックス領域である。テキストボックス1302は選択式になっており、ここに表示されるドメインの個数は画像処理装置110が対応する認証サーバ140に対応している。
つまり、画像処理装置110は複数の認証サーバとやり取り可能である。テキストボックス1303はパスワードを入力するためのテキストボックス領域である。これらの情報が入力された後、ユーザによりOKボタン1304が押下されると、ユーザ名、ドメイン名、パスワードのCredentialがUIモジュール201からLAS210に渡される。次に、S1502で、LAS210はLAN100を介して認証サーバ140に対してCredentialを送信する。
【0065】
次に、S1503で、認証サーバ140は、LAS210から受信したCredentialでユーザ認証を行う。ここで、認証サーバ140がユーザ認証に成功したと判断した場合には、S1504に遷移し、それ以外であると判断した場合は、S1501へ進む。この場合、認証サーバ140は、LAS210から受信したCredentialが正しくないので、認証サーバ140からLAS210に対して認証失敗が返信され、再度認証画面が操作部112に表示されて、S1501に遷移する。
【0066】
次に、S1504で、認証サーバ140はCredentialに対応したSTを発行し、S1505で、認証サーバ140は、LAS210に対し発行したSTを返信する。
そして、画像処理装置110に戻り、S1506で、LAS210は認証サーバ140から受信したSTをキーとして再度認証サーバ140に問い合わせを行い、ユーザ情報を取得する。
次に、S1507で、ACM206は認証コンテキストを作成してRAM302上に保存する。そして、S1508で、SM204は、セッションのリソース数を管理しているセッションカウンタが上限に達しているか(所定の数以上か、上限を超えているかどうか)どうか判断する。ここで、セッションカウンタが上限に達していないとSM204が判断した場合は、S1509に遷移し、上限に達していると判断した場合は、本処理を終了する。ここで、S1508で、SM204は、セッションカウンタが上限に達していると判断した場合、その旨をユーザに通知するようにしてもよい。
【0067】
そして、S1509で、SM204はセッションのためのリソースを確保する。次に、S1510で、SM204は、S1507で作成した認証コンテキストのセッションID参照属性914の値に確保したセッション1200のセッションID属性1203の値を格納する。
これにより、認証コンテキストをキーにセッション1200にアクセス可能となる。さらに、SM204は、セッション1200のセッション状態属性1206に"リソース確保状態"を格納する。さらにセッション管理モジュール204は、セッション1200のセッションタイプ属性1204の1ビット目を立てる。
【0068】
[第1の実施形態に係る第2のフロー]
次に、第1のフローから続く、第2のフローを図15に示すフローチャートを参照しながら説明する。なお、上述した第1のフローは、ユーザが画像処理装置110にログインする際の処理を示し、以下に説明する第2のフローは、ユーザが画像処理装置110のブラウザ画面800を起動させてサーバ130と通信を行う際の処理を示す。
図15は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140とサーバ130との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、各ステップは、それぞれ、画像処理装置110、認証サーバ140、サーバ130のCPUによって、それぞれのROMに記憶されたプログラムを実行することによって行われる。
【0069】
また、本処理は、ユーザが操作部112でユーザ認証を行い、ブラウザ画面800を選択すると、UPM208で管理されている初期表示URL情報に基づき、ウェブブラウザモジュール209はサーバ130のURLに対してメソッドのHTTP要求を送信する。
サーバ130はユーザ認証を前提で動作するため、HTTP要求にSTが含まれていないと、HTTP要求してきたクライアントとのユーザ認証が行われていないと判断し、ログイン画面にリダイレクトする。
【0070】
そのためサーバ130からはログイン画面に対応したHTTP応答が画像処理装置110のウェブブラウザモジュール209に返され、ブラウザ画面800ではサーバ130へのログイン画面が表示される。
【0071】
ただし、サーバ130がSSO(シングル・サイン・オン)に対応している場合、すでに認証サーバ140のSTを画像処理装置110の認証コンテキスト管理モジュール206で保持している。このため、STをHTTP要求に含めてサーバ130に送信することにより下記S1601からS1608は省略可能である。S1601からS1608を省略した場合、S1601からS1609に処理を進める。以下、S1601以降の処理を説明する。
まず、S1601で、操作部112を操作するユーザから画像処理装置110の操作部112に表示されるブラウザログイン画面(不図示)でユーザ名、ドメイン名、パスワードのCredentialの入力を受付ける。すると、S1602へ進む。
【0072】
そして、S1602で、画像処理装置110のウェブブラウザモジュール209はHTTPモジュール214を通してCredentialをPUTメソッドのHTTP要求としてサーバ130に送信する。
次に、S1603で、サーバ130のウェブサーバ部131は画像処理装置110からのCredentialをHTTP要求として受信する。そして、S1604で、サーバ130の認証部1104は、ウェブサーバ部131からビジネスロジック部1103経由でCredentialを受け取り、認証サーバ140に対してCredentialを送信する。
【0073】
すると、S1605で、認証サーバ140は、予めユーザごとに登録しておいたCredentialと、サーバ130の認証部1104から受信したCredentialとを用いてユーザ認証を行う。ここで、認証サーバ140がユーザ認証に成功したと判断した場合は、S1607に遷移し、サーバ130の認証部1104から受信したCredentialが正しくないと認証サーバ140が判断した場合は、S1606に遷移する。
そして、S1606で、サーバ130の認証部1104から受信したCredentialが正しくないことが返信された場合は、サーバ130のウェブサーバ部131は次のように制御する。ウェブサーバ部160は、画像処理装置110に対して認証失敗であることを示すメッセージと認証画面を合成したHTMLを作成し、HTTP応答として画像処理装置110に返信する。
【0074】
一方、S1607で、認証に成功した場合、認証サーバ140はCredentialに対応したST(認証トークン)を発行して、S1608で、認証サーバ140はサーバ130の認証部1104に対しSTを返信する。
そして、サーバ130の認証部1104は受信したSTを用いて、再度認証サーバ140に問い合わせを行い、ユーザ情報を取得する。サーバ130の認証部1104は、認証サーバ140から取得したST及びユーザ情報をプリファレンスデータ領域1107に格納する。
【0075】
そして、サーバ130のビジネスロジック部1103はユーザ認証に成功すると、ユーザのSTをアクセスキーにデータ管理領域133のプリファレンスデータ領域1107からユーザの画面作成に必要なユーザ情報を取り出す。そして、S1609で、ビジネスロジック部1103は以前に失敗した処理が残っているかどうかを判断する。ここで、以前に失敗した処理が残っていないと判断した場合は、S1610へ遷移し、失敗した処理が残っていると判断した場合は、S1611へ遷移する。なお、残っている処理タスクとは、図16に示すボタン1401〜1404のいずれかのボタンがユーザに押下されたが、機能実行に失敗した場合に、S1643でサーバ130に残される処理タスクをいう。また、後述するS1643で保存される内容は、上記ボタンを操作したユーザを示すユーザ情報と、「ボタンに対応したスクリプト」とである。これにより、ユーザの次回ログイン時に認証情報からユーザを特定し、そのユーザに対してだけ、残っている処理タスクを表示することが可能となる。
【0076】
つまり、上記ユーザ情報と、「ボタンに対応したスクリプト」をサーバ130で保存して管理することで、再度ユーザがログインした場合に、ボタンに対応する機能を実行できるようになる。一例を挙げれば、図16に示すボタン1403、すなわち、Scan to フォルダAに対応する機能を実行させる際に、当該ボタン1403をユーザが押下したのち、認証処理の途中で処理が中断する場合がある。なお、図16に示す各ボタンの説明については後述する。このような場合に、当該機能のために設定するストレージへのパス等の情報が保持されることとなり、次回、ユーザがログインした場合に、そのようなパス設定等の処理が不要となり、ユーザによる操作負担を軽減できる。
そして、S1610で、ビジネスロジック部1103はユーザ情報を元にユーザに対応した画面構築を行い、実行画面情報(Webページ)を作成する。
一方、S1611では、ビジネスロジック部1103は、残処理の表示画面とユーザ情報を元にユーザに対応した画面の2つを合わせた画面構築を行い、(Webページ)画面を作成して、S1612へ進む。
【0077】
そして、S1612で、サーバ130のウェブサーバ部131は、ビジネスロジック部1103が作成した画面をステップ1602の画像処理装置110からのHTTP要求のHTTP応答として画像処理装置110に返信する。
図16は、図1に示した画像処理装置110の操作部112に表示されるユーザインタフェースの一例を示す図である。本例は、画像処理装置110がサーバ130から受信したHTTP応答をブラウザ画面800で表示した画面の一例である。なお、図8と同一のものには同一の符号を付してある。また、後述するボタンは、サーバ130が提供するサービスで表示されるボタンであって、ユーザ認証後に表示されるボタンである。
図16において、ボタン1401は、画像処理装置110で紙原稿をスキャンし、画像処理装置110でカラー印刷を行うためのボタンである。
ボタン1402は、画像処理装置110で紙原稿をスキャンし、画像処理装置110で白黒印刷を行うためのボタンである。また、ボタン1403は、画像処理装置110で紙原稿をスキャンし、スキャンした画像データを画像処理装置110でPDF形式のデータに変換する。そして、PDF形式のデータに変換された画像データを画像処理装置110からサーバ130のデータ格納領域1106のフォルダA(論理領域)へデータ格納するためのボタンである。
【0078】
ボタン1404は、サーバ130のデータ格納領域1106に保存された"XXX文書.PDF"文書を画像処理装置110で印刷するためのボタンである。これらボタンが画像処理装置110の操作部112からユーザの操作に基づいて押下される。そして、画像処理装置110の操作部112で押下されたボタン情報がサーバ130に通知されると、サーバ130のビジネスロジック部1103でボタンに対応したロジックを動作させる。
そして、ビジネスロジック部1103でボタンに対応したロジックを動作させると、ウェブサービスリクエスタ部1101を通して画像処理装置110の各機能に対応したウェブサービスが呼び出されて処理が実行される。各ボタンに対応したビジネスロジックは、スクリプトにより表現されるため、スクリプトの表現により様々なパターンの機能ボタンの提供が可能である。つまり、複数の機能を連携した機能ボタンを表示することも可能である。例えばボタン1401〜1404を組み合わせたボタン等が考えられる。この図14に示される画面は、ホストコンピュータ120が備える表示部にも表示することができる。具体的な手順として、まず、ホストコンピュータ120は、サーバ130にアクセスする際に、Webブラウザ120Aを介してユーザによって入力されたユーザIDや、パスワード等の情報をサーバ130に送信する。サーバ130は、送信されたユーザIDや、パスワード等の情報をもとに、認証サーバ140によって認証を行わせる。認証に成功した場合に、サーバ130は、図16のような画面をホストコンピュータ120のWebブラウザ120Aに送信し、表示させる。そして、ユーザは、表示された画面に表示されたボタン1401〜1404を用いて、画像処理装置110に対する指示を行うことができる。このように、ホストコンピュータ120から画像処理装置110に対して指示を行うこともできる。
【0079】
これらボタンが画像処理装置110の操作部112からユーザにより押下されると、サーバ130のビジネスロジック部1103でボタンに対応したロジックが動作する。
そして、図11に示すサーバ130のウェブサービスリクエスタ部1101を通して画像処理装置110の各機能に対応したウェブサービスが呼び出されて処理が実行される。なお、ボタンに対応したビジネスロジックはスクリプトにより表現されるため、スクリプトの表現により様々なパターンの機能ボタンの提供が可能である。
次に、S1613で、S1612でサーバ130から取得する実行画面に基づいて操作部112にユーザインタフェースを表示する表示制御が実行される。そして、その後、画像処理装置110の操作部112に表示された当該ユーザインタフェースからユーザにより、図16に示したいずれかのボタンが押下されると、S1614へ進む。
【0080】
そして、S1614で、操作部112のボタンの押下イベントが図2に示したUIモジュール201からウェブブラウザモジュール209に通知される。そして、ウェブブラウザモジュール209からボタン押下されたことを意味するPUTメソッドのHTTP要求がHTTPモジュール214を通してサーバ130に送信される。つまり、ユーザが操作部112のボタンを押下した指示の内容が押下イベントとしてサーバ130に指示送信される。
次に、S1615で、サーバ130のウェブサーバ部131は、画像処理装置110からボタン1401が押下されたことを意味するHTTP要求を受け、ビジネスロジック部1103にボタンに対応したロジック処理を依頼する。
【0081】
次に、S1616で、ビジネスロジック部1103は受信したボタンに対応したスクリプトをプログラム管理領域1105から取り出し、スクリプトエンジン部1102にスクリプト処理を依頼する。そして、S1617で、スクリプトエンジン部1102はスクリプトの内容から画像処理装置110に対する処理内容及びに設定情報等を読み込み、ビジネスロジック部1103に返す。
次に、S1618で、サーバ130のビジネスロジック部1103は、ウェブサービスリクエスタ部1101から画像処理装置110に対してウェブサービスを用いて画像処理装置110の機能利用するための認証処理を行う。なお、サーバ130が保持しているSTを送信する場合はS1619からS1623は省略できる。
【0082】
次に、S1619で、画像処理装置110のWAS212は、サーバ130から受け取ったCredentialを認証サーバ140に対して送信する。そして、認証サーバ140は、WAS212から受信したCredentialでユーザ認証を行う。そして、S1620で、ユーザ認証に成功しているかどうかを判断する。ここで、認証サーバ140が認証に成功していると判断した場合は、S1622に遷移する。
一方、S1620で、WAS212から受信したCredentialが正しくないと判断した場合は、認証サーバ140からWAS212に対して認証失敗が返信され、S1621に遷移する。
【0083】
そして、S1621で、画像処理装置110のWAS212からサーバ130に対して認証失敗が返信される。S1622に遷移した場合、認証サーバ140はCredentialに対応したSTを発行して、S1623で、認証サーバ140はWAS212に対しSTを画像処理装置110に返信する。
次に、S1624で、画像処理装置110のWAS212は認証サーバ140から受信したSTをキーとして再度認証サーバ140に問い合わせを行い、ユーザ情報を取得する。そして、S1625で、ACM206は認証コンテキストを作成し保存する。
【0084】
次に、サーバ130のビジネスロジック部1103は、認証に成功すると、スクリプトエンジンから返されたスクリプトの実行処理を順次実行する。
そして、S1626で、ビジネスロジック部1103は、画像処理装置110に対する実行処理要求があるかどうかを判断する。ここで、実行処理要求があるとビジネスロジック部1103が判断した場合はS1627へ遷移する。一方、S1626で、実行処理要求がないとビジネスロジック部1103が判断した場合は、本処理を終了する。
そして、S1627で、STと実行処理要求のウェブサービスのHTTP要求を画像処理装置110に送信する。
次に、S1628で、画像処理装置110のWAS212は、サーバ130からSTと実行処理要求を受け取る。そして、WAS212が受け取ったSTが正当であるかを判断する。ここで、STが正しくないとWAS212が判断した場合は、画像処理装置110は、サーバ130にエラーを返信する。
【0085】
次に、S1629で、画像処理装置110のWAS212は、図示しないステップでローカル認証サービス経由で作成した認証コンテキストとS1625でウェブサービス経由で作成した認証コンテキストが一致しているかどうかを判断する。ここで、一致しているかどうかの判断方法にはST属性905、ユーザ名属性906、ユーザID属性907、グループ名属性908、グループID属性909、ドメイン名属性910、メールアドレス属性911のいずれかで比較を行う方法がある。なお、これらの属性を組み合わせて比較する方法を用いてもよい。
【0086】
ここで、認証コンテキストの比較の結果、各認証コンテキストが一致していないとWAS212が判断した場合は、S1637に遷移し、一致していると判断した場合は、S1630へ遷移する。また、ローカル認証サービス経由で作成された認証コンテキストがないとWAS212が判断した場合は、S1637へ遷移する。
次に、WAS212は、LAS210経由で作成した認証コンテキストに対応したセッションが確保してあるかどうかをSM204に問い合わせる。そして、S1630で、WAS212は、SM204ですでに対応したセッションを確保しているかどうかを判断する。ここで、SM204ですでに対応したセッションを確保しているとWAS212が判断した場合は、S1631に遷移し、確保していないと判断した場合はS1633に遷移する。
【0087】
そして、S1631で、SM204は、セッション1200のセッションタイプ属性1204にWAS212経由で参照されたことを表すために3ビット目のフラグを立てる。
さらに、SM204は、セッション1200の操作種別属性1205に実行処理要求が何であるかの情報を格納する。さらに、SM204は、セッション1200のセッション状態属性1206に"処理実行中状態"を格納する。
次に、S1632で、画像処理装置110は、スキャン(読取処理)やプリント(印刷処理)などの処理要求を実行する。なお、処理要求は、これ以外に、例えば、HDD304に格納されたデータを印刷するための要求やその他の処理要求であってもよい。また、本実施形態においては、サーバ130がユーザインタフェース送信を行い、送信されたユーザインタフェースを介してユーザが行った指示を、画像処理装置110がサーバ130に対して指示送信を行う場合について説明した。そして、当該送信された指示をサーバ130が直接、指示受信を行う例について説明した。しかしながら、指示送信によって送信される指示は、サーバ130以外の装置を経由してサーバ130に到達する構成であってもよい。
【0088】
一方、S1630ですでに確保したセッションがないと判断した場合は、S1633で、SM204は、セッションのリソース数を管理しているセッションカウンタが上限数に達しているかどうか判断する。ここで、セッションカウンタが上限数に達していないとSM204が判断した場合は、S1635に遷移し、上限数に達していると判断した場合は、S1634に遷移する。
そして、S1634で、SM204は、優先順位が一番低いセッションのリソースを解放する。そして、S1635で、SM204はセッションのためのリソースを確保する。そして、S1636で、SM204は、LAS210で作られた認証コンテキストのセッションID参照属性914の値に確保したセッション1200のセッションID属性1203の値を格納する。
【0089】
さらに、SM204は、WAS212で作られた認証コンテキストのセッションID参照属性914の値に確保したセッション1200のセッションID属性1203の値を格納する。さらに、SM204は、セッション1200のセッション状態属性1206に"リソース確保状態"を格納する。
さらに、SM204は、セッション1200のセッションタイプ属性1204の1ビット目と3ビット目を立てる。
一方、S1629で、各認証コンテキストが一致しないとWAS212が判断した場合は、S1637で、SM204は、セッションのリソース数を管理しているセッションカウンタが上限数に達しているかどうか判断する。ここで、セッションカウンタが上限数に達していないとSM204が判断した場合は、S1638に遷移し、上限数に達していると判断した場合は、S1642に遷移する。
【0090】
そして、S1638で、SM204はセッションのためのリソースを確保する。次に、S1639で、SM204は、WAS212で作られた認証コンテキストのセッションID参照属性914の値に確保したセッション1200のセッションID属性1203の値を格納する。
さらに、SM204は、セッション1200のセッション状態属性1206に"リソース確保状態"を格納する。さらに、SM204は、セッション1200のセッションタイプ属性1204の3ビット目を立てる。
【0091】
次に、S1640で、SM204は、セッション1200のセッション状態属性1206に"処理待ち"を格納する。S1641で、SM204は、S1632に対応する処理が正常に終了したかどうかを判断する。ここで、処理が正常に終了したとSM204が判断した場合は、S1626に遷移し、処理が正常に終了していないと判断した場合は、S1642に遷移する。
そして、S1642で、画像処理装置110はサーバ130にエラーを返信し、、S1643で、サーバ130のビジネスロジック部1103はプリファレンスデータ領域1107に処理が失敗したことを保存して、本処理を終了する。
【0092】
以上のように、サーバ130等の外部装置にユーザインタフェースを実装することによって、画像処理装置110にユーザインタフェースを実装する場合に比べて、ソフトウェアの実装が容易であるというメリットがある。画像処理装置110のユーザインタフェースを実装する場合には、画像処理装置110特有のプログラミング方法について習熟していなければならない。一方、サーバ130にユーザインタフェースを実装する場合には、Webアプリケーション用のソフトウェアを実装できれば充分であるためである。
【0093】
また、以上のように、あらかじめ画像処理装置110の操作部112でユーザ認証時にユーザ認証情報をキーにしてセッションのリソースを確保する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。具体的に、例えば、ユーザが画像処理装置110にログインした後、画像処理装置110の操作部を介して行った指示に対応する処理要求を外部のサーバ130から受付ける段階で、セッションを確保できないことを防止することができる。
【0094】
〔第2実施形態〕
以下、第2実施形態を図17のフローチャートを参照しながら説明する。
図17は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、S1701、S1702、S1706〜S1711は画像処理装置110のCPU301がRAM302にモジュールをロードして実行することで実現される。
また、S1703〜S1705は認証サーバ140のCPUがRAMにモジュールをロードして実行することで実現される。なお、各ステップは、説明上、画像処理装置110からの操作に基づいて連携される認証サーバ140の処理を説明するため各ステップが一連のステップとして示す例である。
【0095】
また、図17に示すS1701からS1707は、図14に示したS1501からS1507に対応する。以下、第1実施形態との違いのみを説明する。
ユーザ認証に成功すると画像処理装置110の操作部112はデフォルト画面としてアプリケーション選択画面(不図示)を表示する。ユーザは各アプリケーションを選択することによりコピーやファックス、ブラウザなどのアプリケーションを利用することができる。そして、S1708で、ユーザはブラウザアプリケーションを選択する。そして、S1709からS1711は、S1508からS1510に対応する。
以上、説明したように、あらかじめ画像処理装置110の操作部112でアプリケーション選択時にユーザ認証情報をキーにセッションのリソースを確保する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。
【0096】
〔第3実施形態〕
本発明の第3の実施形態を図18のフローチャートを参照しながら説明する。
図18は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、S1801、S1802、S1806〜S1811は画像処理装置110のCPU301がRAM302にモジュールをロードして実行することで実現される。
【0097】
また、S1803〜S1805は認証サーバ140のCPUがRAMにモジュールをロードして実行することで実現される。なお、各ステップは、説明上、画像処理装置110からの操作に基づいて連携される認証サーバ140の処理を説明するため各ステップが一連のステップとして示す例である。以下、第1実施形態との違いのみを説明する。
S1808で、SM204は、セッションのリソース数を管理しているセッションカウンタが上限数に達しているかどうか判断する。ここで、セッションカウンタが上限数に達していないとSM204が判断した場合は、S1810に遷移し、上限数に達しているとSM204が判断した場合は、S1809に遷移する。そして、S1809で、SM204は、一定時間待機した後、S1808へ戻る。
【0098】
以上、説明したように、あらかじめ画像処理装置110の操作部112でユーザ認証終了後にセッションを確保するリソースの上限数を監視し、空きがあれば、ユーザ認証情報をキーにセッションのリソースを確保する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。
【0099】
〔第4実施形態〕
以下、第4実施形態を図19のフローチャートを参照しながら説明する。
図19は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置110と認証サーバ140との間のデータ処理例であって、認証サーバ140を用いてユーザ認証処理する例である。なお、S1901、S1902、S1906〜S1912は画像処理装置110のCPU301がRAM302にモジュールをロードして実行することで実現される。以下、第1実施形態との違いのみを説明する。
S1909で、SM204はセッションのためのリソースを確保する。そして、S1910で、SM204は、S1907で作成した認証コンテキストのセッションID参照属性914の値に、確保した複数のセッション1200のセッションID属性1203の値を格納する。
【0100】
これにより認証コンテキストをキーに複数のセッション1200にアクセス可能となる。
さらに、SM204は、セッション1200のセッション状態属性1206に"リソース確保状態"を格納する。さらに、SM204は、セッション1200のセッションタイプ属性1204の1ビット目を立てる。
ユーザ認証に成功すると画像処理装置110の操作部112はデフォルト画面としてアプリケーション選択画面(不図示)を表示する。ユーザは各アプリケーションを選択することによりコピーやファックス、ブラウザなどのアプリケーションを利用することができる。
【0101】
次に、S1911で、ユーザはブラウザアプリケーションを選択する。そして、S1912で、SM204は不要なセッションを解放して、本処理を終了する。
以上説明したように、あらかじめ画像処理装置110の操作部112でユーザ認証したときにユーザ認証情報をキーにセッションのリソースを複数確保し、必要なリソース決定時(アプリケーション選択時)に必要なリソース以外を解放する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。
なお、上述した実施形態の場合、認証サーバ140とサーバ130が別の装置である場合について説明したが、これらのサーバは同じ装置で構成されていてもよい。
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【符号の説明】
【0102】
110 画像処理装置
130 サーバ
140 認証サーバ
【特許請求の範囲】
【請求項1】
ネットワークを介して外部装置に接続されたデータ処理装置であって、
前記外部装置が備えるユーザインタフェースを取得して表示する表示手段と、
前記表示手段によって表示されたユーザインタフェースを介してユーザから指示を受付ける受付手段と、
前記受付手段によって受付けた指示を前記外部装置に送信する指示送信手段と、
前記データ処理装置を操作するユーザの認証に成功した場合に、前記外部装置との通信を行うためのセッションを確保する確保手段と、
前記指示送信手段によって前記外部装置に送信された指示に対応する処理要求を、前記確保手段によって確保されたセッションを用いて前記外部装置から受信するよう制御する制御手段とを有することを特徴とするデータ処理装置。
【請求項2】
前記データ処理装置を操作するユーザの認証は、前記データ処理装置を当該ユーザが使用することを許可するために行われることを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記データ処理装置を操作するユーザの認証は、前記データ処理装置と前記ネットワークを介して接続された外部の認証サーバによって行われることを特徴とする請求項1または2に記載のデータ処理装置。
【請求項4】
原稿の画像を読み取る読取手段をさらに備え、
前記指示送信手段によって送信された指示に対応する処理要求に基づく処理は、前記読取手段による読取処理であることを特徴とする請求項1乃至3のいずれかに記載のデータ処理装置。
【請求項5】
前記確保手段は、ユーザの認証時又はアプリケーションの選択時に前記セッションのためのリソースを確保することを特徴とする請求項1乃至4のいずれかに記載のデータ処理装置。
【請求項6】
前記確保手段により前記セッションを確保した後、前記ユーザインタフェースで選択される処理に従って、使用しないリソースを解放する解放手段を備えることを特徴とする請求項1乃至5のいずれかに記載のデータ処理装置。
【請求項7】
前記解放手段は、前記確保手段によって確保されたセッション数が、所定の数以上である場合、優先順位の低いセッションを解放することを特徴とする請求項6記載のデータ処理装置。
【請求項8】
ネットワークを介して外部装置に接続されたデータ処理装置の制御方法であって、
前記外部装置が備えるユーザインタフェースを取得して表示する表示工程と、
前記表示工程にて表示されたユーザインタフェースを介してユーザから指示を受付ける受付工程と、
前記受付工程にて受付けた指示を前記外部装置に送信する指示送信工程と、
前記データ処理装置を操作するユーザの認証に成功した場合に、前記外部装置との通信を行うためのセッションを確保する確保工程と、
前記外部装置から、前記指示送信工程にて前記外部装置に送信された指示に対応する処理要求を、前記確保工程にて確保されたセッションを用いて前記外部装置から受信するよう制御する制御工程とを有することを特徴とするデータ処理装置の制御方法。
【請求項9】
請求項8に記載のデータ処理装置の制御方法を、コンピュータに実行させるためのプログラム。
【請求項1】
ネットワークを介して外部装置に接続されたデータ処理装置であって、
前記外部装置が備えるユーザインタフェースを取得して表示する表示手段と、
前記表示手段によって表示されたユーザインタフェースを介してユーザから指示を受付ける受付手段と、
前記受付手段によって受付けた指示を前記外部装置に送信する指示送信手段と、
前記データ処理装置を操作するユーザの認証に成功した場合に、前記外部装置との通信を行うためのセッションを確保する確保手段と、
前記指示送信手段によって前記外部装置に送信された指示に対応する処理要求を、前記確保手段によって確保されたセッションを用いて前記外部装置から受信するよう制御する制御手段とを有することを特徴とするデータ処理装置。
【請求項2】
前記データ処理装置を操作するユーザの認証は、前記データ処理装置を当該ユーザが使用することを許可するために行われることを特徴とする請求項1に記載のデータ処理装置。
【請求項3】
前記データ処理装置を操作するユーザの認証は、前記データ処理装置と前記ネットワークを介して接続された外部の認証サーバによって行われることを特徴とする請求項1または2に記載のデータ処理装置。
【請求項4】
原稿の画像を読み取る読取手段をさらに備え、
前記指示送信手段によって送信された指示に対応する処理要求に基づく処理は、前記読取手段による読取処理であることを特徴とする請求項1乃至3のいずれかに記載のデータ処理装置。
【請求項5】
前記確保手段は、ユーザの認証時又はアプリケーションの選択時に前記セッションのためのリソースを確保することを特徴とする請求項1乃至4のいずれかに記載のデータ処理装置。
【請求項6】
前記確保手段により前記セッションを確保した後、前記ユーザインタフェースで選択される処理に従って、使用しないリソースを解放する解放手段を備えることを特徴とする請求項1乃至5のいずれかに記載のデータ処理装置。
【請求項7】
前記解放手段は、前記確保手段によって確保されたセッション数が、所定の数以上である場合、優先順位の低いセッションを解放することを特徴とする請求項6記載のデータ処理装置。
【請求項8】
ネットワークを介して外部装置に接続されたデータ処理装置の制御方法であって、
前記外部装置が備えるユーザインタフェースを取得して表示する表示工程と、
前記表示工程にて表示されたユーザインタフェースを介してユーザから指示を受付ける受付工程と、
前記受付工程にて受付けた指示を前記外部装置に送信する指示送信工程と、
前記データ処理装置を操作するユーザの認証に成功した場合に、前記外部装置との通信を行うためのセッションを確保する確保工程と、
前記外部装置から、前記指示送信工程にて前記外部装置に送信された指示に対応する処理要求を、前記確保工程にて確保されたセッションを用いて前記外部装置から受信するよう制御する制御工程とを有することを特徴とするデータ処理装置の制御方法。
【請求項9】
請求項8に記載のデータ処理装置の制御方法を、コンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2011−13892(P2011−13892A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−156890(P2009−156890)
【出願日】平成21年7月1日(2009.7.1)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願日】平成21年7月1日(2009.7.1)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]