(57)【特許請求の範囲】
【請求項１】
ネットワークを介して外部装置と通信するデータ処理装置であって、
前記外部装置が提供するユーザインタフェースを取得して表示する表示手段と、
前記表示手段によって表示されたユーザインタフェースを介してユーザから指示を受付ける受付手段と、
前記受付手段によって受付けた指示を前記外部装置に送信する指示送信手段と、
前記指示送信手段が送信した指示に基づく前記外部装置からの処理要求を受信する受信手段と、
前記受信手段が受信した処理要求を、前記外部装置との間で確立したセッションを用いて実行する実行手段と、
前記外部装置との間にセッションを確立するために必要な前記データ処理装置のリソースを、前記外部装置からの処理要求を受信する前に確保する確保手段と、
前記外部装置からの処理要求を受信した場合に、前記確保手段によって確保されたリソースを用いてセッションを確立し、当該確立したセッションを用いて前記受信した処理要求を実行するよう制御する制御手段と、
を有することを特徴とするデータ処理装置。
【請求項２】
前記外部装置からの処理要求は、原稿画像の読取処理または印刷処理を要求するものであることを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記確保手段は、前記データ処理装置にユーザをログインさせるための認証が成功したことに応じて前記リソースの確保を行うことを特徴とする請求項１または２に記載のデータ処理装置。
【請求項４】
前記確保手段は、前記データ処理装置で特定のアプリケーションが選択されたことに応じて前記リソースの確保を行うことを特徴とする請求項１または２に記載のデータ処理装置。
【請求項５】
前記特定のアプリケーションはブラウザであることを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
前記確保手段による前記リソースの確保ができない場合に、その旨をユーザに通知する通知手段を更に備えることを特徴とする請求項１乃至５のいずれか１項に記載のデータ処理装置。
【請求項７】
ネットワークを介して外部装置と通信するデータ処理装置の制御方法であって、
前記外部装置が提供するユーザインタフェースを取得して表示する表示工程と、
前記表示工程で表示されたユーザインタフェースを介してユーザから指示を受付ける受付工程と、
前記受付工程で受付けた指示を前記外部装置に送信する指示送信工程と、
前記指示送信工程で送信した指示に基づく前記外部装置からの処理要求を受信する受信工程と、
前記受信工程が受信した処理要求を、前記外部装置との間で確立したセッションを用いて実行する実行工程と、
前記外部装置との間にセッションを確立するために必要な前記データ処理装置のリソースを、前記外部装置からの処理要求を受信する前に確保する確保工程と、
前記外部装置からの処理要求を受信した場合に、前記確保工程で確保されたリソースを用いてセッションを確立し、当該確立したセッションを用いて前記受信した処理要求を実行するよう制御する制御工程と、
を有することを特徴とするデータ処理装置。
【請求項８】
コンピュータを請求項１乃至６のいずれか１項に記載のデータ処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
近年、プリンタ、コピー、ファクシミリ、スキャナ等の機能を有するデータ処理装置が一般的に知られている。ＭＦＰ（Multi Function Peripheral）はその一例であるこのようなデータ処理装置は、プリンタ、コピーおよびファクシミリ、スキャナ等の機能をユーザの指示に基づいて実行する。
また、データ処理装置の中には、ブラウザを備え、ネットワーク上のウェブサーバにアクセスすることができるものがある。
さらに、ウェブサーバ等の外部装置に、データ処理装置を操作するためのユーザインタフェースを実装し、ユーザが、データ処理装置のブラウザをから当該ウェブサーバのユーザインタフェースを利用する方法が考えられている。
このような方法を用いた場合、データ処理装置のブラウザから外部装置のユーザインタフェースを介して行われた指示は、外部からの処理要求（印刷要求等）としてデータ処理装置に受信される。このようなデータ処理装置において、例えば、外部装置を識別する識別情報（ホスト名など）をデータ処理装置と外部装置間でやり取りすることで、正当な外部装置からの処理要求のみを実行するものがある。（特許文献１参照）
ここで、上記のようなデータ処理装置と外部装置とを用いるシステムにおいては、ＨＴＴＰ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）プロトコルを用いる。当該ＨＴＴＰプロトコルでは、外部装置が、データ処理装置からの処理要求があるたびにデータ処理装置とのコネクションを確立する。そして、外部装置は、データ処理装置からの処理要求に対してレスポンスを行う。そして、データ処理装置は、レスポンスがあると、ユーザのログイン情報やユーザ情報をセッション領域にセッション情報として記憶させ、一連の処理が終了した後に当該コネクションを切断する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−００３８３４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、データ処理装置の中には、一般的なウェブサーバ等の外部装置に比べて、セッション情報の管理に費やすことのできるメモリリソースが少ないものがあり、そのようなデータ処理装置で確保できるセッションの数には限りが有る。
このような、データ処理装置は、ネットワークを介して複数のＰＣに接続されていることがあり、それらのＰＣからの処理要求を受付けた場合に、その処理要求のためにセッションを確保することがある。
そのため、ユーザがデータ処理装置にログインした後、データ処理装置の操作部から外部装置のインタフェースを介して、データ処理装置に処理要求を送信した場合に、データ処理装置で管理できるセッションが不足している場合がある。その場合、セッション不足が原因で、データ処理装置によって処理要求が正常に受付けられず、エラーが発生してしまう。
【０００５】
その場合、ユーザは、データ処理装置にログインした後、外部装置にアクセスし、外部装置上のユーザインタフェースを介してデータ処理装置に処理要求を送信するまで、セッション情報を記憶するためのリソースが不足していることに気付くことができない
本発明は、上記の課題を解決するためになされたものである。本発明の目的は、データ処理装置の操作部を介してユーザが指示した処理を、外部装置からの処理要求に従って実行する場合に、当該処理要求がセッション不足によって実行されないことを未然に防ぐ仕組みを提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成する本発明のデータ処理装置は、ネットワークを介して外部装置と通信するデータ処理装置であって、前記外部装置が提供するユーザインタフェースを取得して表示する表示手段と、前記表示手段によって表示されたユーザインタフェースを介してユーザから指示を受付ける受付手段と、前記受付手段によって受付けた指示を前記外部装置に送信する指示送信手段と、前記指示送信手段が送信した指示に基づく前記外部装置からの処理要求を受信する受信手段と、前記受信手段が受信した処理要求を、前記外部装置との間で確立したセッションを用いて実行する実行手段と、前記外部装置との間にセッションを確立するために必要な前記データ処理装置のリソースを、前記外部装置からの処理要求を受信する前に確保する確保手段と、前記外部装置からの処理要求を受信した場合に、前記確保手段によって確保されたリソースを用いてセッションを確立し、当該確立したセッションを用いて前記受信した処理要求を実行するよう制御する制御手段とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、データ処理装置の操作部を介してユーザが指示した処理を、外部装置からの処理要求に従って実行する場合に、当該処理要求がセッション不足によって実行されないことを未然に防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】画像処理システムの一例を示すブロック図である。
【図２】画像処理装置のソフトウェア構成を示すブロック図である。
【図３】画像処理装置の詳細構成を示すブロック図である。
【図４】画像処理装置の外観を示す図である。
【図５】操作部の外観構成を示す図である。
【図６】操作部の詳細構成を示すブロック図である。
【図７】ＨＴＴＰプロトコルによる要求と応答の処理の流れを示す図である。
【図８】ＬＣＤ表示部に表示されるＵＩの一例を示す図である。
【図９】画像処理システムの認証コンテキストのデータ構造を示す図である。
【図１０】ＷＡＳに対する処理の一例を説明する図である。
【図１１】サーバの詳細構成を示すブロック図である。
【図１２】画像処理システムのセッションデータ構造を示す図である。
【図１３】操作部に表示されるログイン画面の一例を示す図である。
【図１４】画像処理システムの処理手順を示すフローチャートである。
【図１５】画像処理システムの処理手順を示すフローチャートである。
【図１６】操作部に表示されるＵＩの一例を示す図である。
【図１７】画像処理システムの処理手順を示すフローチャートである。
【図１８】画像処理システムの処理手順を示すフローチャートである。
【図１９】画像処理システムの処理手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
次に本発明を実施するための最良の形態について図面を参照して説明する。
図１は、本発明の実施形態を示すデータ処理システムの構成を説明するブロック図である。なお、本実施形態では、データ処理システムの一例として画像処理システムを、データ処理装置として画像処理装置を例に説明する。また、本実施形態では、画像処理装置が、いわゆる複合機（ＭＦＰ（Multi Function Peripheral）である場合を示すが、ＳＦＰ（Single Function Peripheral:単一機能周辺機器）であってもよい。
【００１０】
図１において、１００はＬＡＮ（Local Area Network）で、ＷＡＮ（Wide Area Network）やインターネットに接続されている。ホストコンピュータ１２０は、ＬＡＮ１００に接続されている。ホストコンピュータ１２０は、ウェブブラウザを備え、画像処理装置１１０、サーバ１３０にＨＴＴＰ接続してサービスの提供を受けることができる。
サーバ１３０は、ウェブアプリケーションサーバを実現するためのソフトウェアプロセス群を備える。具体的に、サーバ１３０は、以下のソフトウェアモジュールを備える。当該サーバ１３０は、ネットワーク上の複数の装置からアクセスすることができ、それら複数の装置は、当該サーバ１３０の機能を利用することができる。例えば、サーバ１３０は、ネットワークに接続されたホストコンピュータ１２０や、画像処理装置１１０、あるいは不図示の他の装置からアクセスされ、その機能が利用される。
【００１１】
１３１はウェブサーバ部で、クライアントからのＨＴＴＰプロトコルによる要求に応答してＨＴＭＬなどのコンテンツを伝送するモジュールである。１３２はアプリケーションサーバ部で、ＨＴＴＰ要求に応じて所定の処理と、ＨＴＴＰ応答とを行うＣＧＩ（Common Gateway Interfaces）プログラムやサーブレット（Servlet）などの形態で実装されたモジュールである。１３３はデータ管理部で、アプリケーションサーバ部１３２から呼び出されるスクリプトデータの保存や、受信したデータの格納を行うモジュールである。
【００１２】
認証サーバ１４０は、画像処理装置１１０のユーザ認証及びユーザ情報管理を行う。具体的に、認証サーバ１４０は画像処理装置１１０、サーバ１３０からユーザ名、ドメイン名、パスワード等のＣｒｅｄｅｎｔｉａｌを用いてユーザ認証を行う。そして、認証サーバ１４０は、ユーザ認証に成功すると、Security Token（以下ＳＴ）を認証の要求元に返す。すなわち、ＳＴは、Ｃｒｅｄｅｎｔｉａｌが正当なものであることが確認されてユーザ認証に成功した場合に返される、認証済みであることを示す情報である。そして、認証サーバ１４０によってユーザ認証する機器間であれば、このＳＴをやり取りすることによって、再度認証サーバ１４０によるユーザ認証を受ける必要がなくなる。このような認証サーバ１４０によれば、ＬＡＮ１００に接続された機器間で統一的にユーザ認証を行うことができ、さらに機器間でユーザを一意に特定することができる。
【００１３】
画像処理装置１１０は、画像の入出力と送受信および各種の画像処理を行う複合機（ＭＦＰ：Multi Function Peripheral）である。画像処理装置１１０は、画像入力デバイスであるスキャナ１１３、画像出力デバイスであるプリンタ１１４、コントローラユニット１１１、操作部１１２を備える。
スキャナ１１３、プリンタ１１４、操作部１１２は、それぞれ、コントローラユニット１１１に接続され、コントローラユニット１１１からの命令によって制御される。コントローラユニット１１１は、ＬＡＮ１００に接続されている。
【００１４】
［画像処理装置１１０のソフトウェア構成について］
次に、画像処理装置１１０のソフトウェア構成について図２を参照しながら説明する。
図２は、図１の画像処理装置１１０のソフトウェア構成を示すブロック図である。
図２において、ユーザインタフェース（以下、ＵＩ）モジュール２０１は、オペレータが画像処理装置１１０に対する各種操作・設定を行う際に、機器とユーザ操作との仲介を行うモジュールである。このＵＩモジュール２０１は、オペレータの操作に従い、後述の各種モジュールに入力情報を転送して処理の依頼、またはデータの設定などを行う。
【００１５】
ウェブサーバ（Web-Server）モジュール２０３は、ウェブクライアント（例えばホストコンピュータ１２０）からのＨＴＴＰ要求を受け付ける。以下、ウェブサーバ（Web-Server）モジュール２０３を、ウェブサーバ（Web-Server）２０３と略記する。そして、ウェブサーバ２０３は、クライアントからのＨＴＴＰ要求に対して、ＨＴＴＰモジュール２１４、ＴＣＰ／ＩＰ通信モジュール２１７、ネットワークドライバ（Network-Driver）２２１を介してウェブクライアントにＨＴＴＰで応答する。ここで、応答される内容は、画像処理装置１１０の管理情報等が含まれる。
【００１６】
ウェブブラウザ（Web-Browser）モジュール２０９は、インターネットまたはイントラネット上の各種ウェブページを読み込んで表示を行うものである。以下、ウェブブラウザ（Web-Browser）モジュール２０９をウェブブラウザ２０９と略記し、そのの詳細な構成は後述する。
ＨＴＴＰモジュール２１４は、画像処理装置１１０がＨＴＴＰによる通信を行う際に使用される。ＨＴＴＰモジュール２１４は後述のＴＣＰ／ＩＰ通信モジュール２１７を使って、ウェブサーバ２０３やウェブブラウザ２０９、後述のウェブサービスプロバイダ（Web-Service-Provider）モジュール２０７に通信機能を提供する。
また、ＨＴＴＰモジュール２１４は、ＨＴＴＰをはじめとするウェブで用いられる各種プロトコルに対応し、特にセキュリティ対応したプロトコルによる通信機能を提供する。
ＴＣＰ／ＩＰ通信モジュール２１７は、ネットワークドライバ（Network Driver）２２１を用いて、前述の各種モジュールにネットワーク通信機能を提供する。ネットワークドライバ２２１は、ネットワークに物理的に接続され、データの入出力を制御するものである。認証サービス（Authentication-Service）モジュール２０５は、ユーザが画像処理装置の機能を利用するためのユーザ認証処理を管理・制御するものである。
【００１７】
ローカル認証サービス（ＬＡＳ）モジュール２１０はＵＩモジュール２０１から行われるユーザ認証に対する認証処理の管理・制御を行う。以下、ローカル認証サービス（ＬＡＳ）モジュールをＬＡＳと略記する。ＬＡＳ２１０はＵＩモジュール２０１から入力されたＣｒｅｄｅｎｔｉａｌを受けると、認証サーバ１４０に対して認証処理を行う。
なお、認証サーバ１４０の認証方式が異なると、ユーザ認証のためのデータ通信プロトコルやユーザ認証に必要なＣｒｅｄｅｎｔｉａｌは異なる。そのため、ＬＡＳ２１０は入れ替え可能であり、ＬＡＳ２１０を入れ替えることにより認証サーバ１４０の様々な認証方式に対応することができる。ここで、認証方式には、例えばＮＴＬＭ認証やケルベロス認証などがある。また、ＬＡＳ２１０の入れ替えにより、認証サーバ１４０で行う認証の代わりに画像処理装置１１０内の簡易認証サービスモジュール２１３で認証を行う構成をとることもできる。以下、簡易認証サービスモジュールをＳＡＳと略記する。
【００１８】
さらに、ＬＡＳ２１０の入れ替えによりタッチパネルやソフトキーボードによる認証情報入力のほかにＵＳＢキーボードやＵＳＢカードリーダによるＣｒｅｄｅｎｔｉａｌ入力など、さまざまな入力の受け付けが可能になる。
リモート認証サービス（ＲＡＳ）モジュール２１１はウェブクライアントからウェブサーバモジュール２０３経由で行われるユーザ認証に対する認証処理の管理・制御を行う。以下、リモート認証サービス（ＲＡＳ）モジュールをＲＡＳと略記する。
【００１９】
ＲＡＳ２１１はウェブサーバ２０３からのＣｒｅｄｅｎｔｉａｌを受けると、認証サーバ１４０と認証処理を行う。ＬＡＳ２１０と同様に入れ替え可能であり、ＲＡＳ２１１を入れ替えることにより認証サーバ１４０の様々な認証方式に対応することができる。
ウェブサービス認証モジュール（ＷＡＳ）モジュール２１２は、後述のウェブサービスプロバイダモジュール２０７経由で画像処理装置の機能を利用するための認証処理の管理・制御を行う。以下、ウェブサービス認証モジュール（ＷＡＳ）モジュールをＷＡＳと略記する。
なお、ＷＡＳ２１２は、認証処理を行うためのインタフェースをウェブサービスとしてネットワークに公開している。
認証コンテキスト管理（ＡＣＭ）モジュール２０６はユーザ認証成功後に認証サーバ１４０から返されるＳＴ及びに認証サーバ１４０から取得可能なユーザ情報を管理する。以下、認証コンテキスト管理（ＡＣＭ）モジュールをＡＣＭと略記する。なお、ＡＣＭ２０６の詳細説明は後述する。
【００２０】
ウェブサービスプロバイダ（Ｗｅｂ-Ｓｅｒｖｉｃｅ-Ｐｒｉｖｉｄｅｒ）モジュール２０７は、ウェブサービスとしてデバイスの機能を提供する。ウェブサービスプロバイダ（Ｗｅｂ-Ｓｅｒｖｉｃｅ-Ｐｒｉｖｉｄｅｒ）モジュール２０７は、ＬＡＮ１００を介して受信したコマンドを解釈して実行する。このコマンドには、例えばＳＯＡＰ等のコマンドを適用することができる。以下、ウェブサービスプロバイダ（Ｗｅｂ-Ｓｅｒｖｉｃｅ-Ｐｒｉｖｉｄｅｒ）モジュールをＷＳＰと略記する。
【００２１】
ユーザ設定情報管理（ＵＰＭ）モジュール２０８は、ユーザの設定情報・管理情報をユーザ単位で管理する。以下、ユーザ設定情報管理（ＵＰＭ）モジュールをＵＰＭと略記する。ＵＰＭ２０８は、設定情報を取得するためにはＳＴを必要とし、ＳＴをアクセスキーとして各ユーザの設定情報を取得する。ＳＡＳ２１３は、画像処理装置１１０内でユーザ認証及びユーザ情報管理を行うモジュールである。
このように認証サービス（Authentication-Service）モジュール２０５は、認証サービスをＬＡＳ２１０，ＲＡＳ２１１、ＷＡＳ２１２のいずれかを入れ替えることにより認証サーバ１４０で認証を行う。また、認証サービス（Authentication-Service）モジュール２０５は、認証サービスをＬＡＳ２１０，ＲＡＳ２１１、ＷＡＳ２１２以外の簡易認証サービスモジュール２１３で認証を行うように切り替えることが可能である。
【００２２】
セッション管理（Ｓｅｓｓｉｏｎ−Ｍａｎａｇｅｒ）モジュール２０４は、ウェブサーバモジュール２０３や認証サービスモジュール２０５やウェブサービスプロバイダモジュール２０７から呼び出され、セッションの管理・制御を行う。セッション管理モジュール２０４についての詳細は後述する。なお、セッション管理モジュール２０４をＳＭ２０４と略記する。ここで、ＳＭ２０４は、後述するセッションとユーザ認証された認証情報とを関連付けて管理している。
【００２３】
制御ＡＰＩ（Control API）２１８は、ウェブサーバ２０３やウェブブラウザ２０９、ＷＳＰ２０７などの上流モジュールに、Ｊｏｂ-Ｍａｎａｇｅｒ２１９などの下流モジュールに対するインタフェースを提供する。これによって、上流および下流のモジュール間の依存関係が軽減され、それぞれの流用性を高めることができる。以下、ジョブマネージャ（Ｊｏｂ-Ｍａｎａｇｅｒ）モジュールをＪｏｂ-Ｍａｎａｇｅｒと略記する。
【００２４】
Ｊｏｂ-Ｍａｎａｇｅｒ２１９は、前述の各種モジュールから制御ＡＰＩ２１８を介して指示される様々な処理を解釈し、後述の各モジュール２２０，２２４，２２６に指示を与えるものである。また、Ｊｏｂ-Ｍａｎａｇｅｒ２１９は、画像処理装置１１０内で実行されるハード的な処理を一元管理するものである。
コーデックマネージャ（ＣＯＤＥＣ-Ｍａｎａｇｅｒ）モジュール２２０は、Ｊｏｂ-Ｍａｎａｇｅｒ２１９が指示する処理の中で、データの各種圧縮・伸長を管理・制御するものである。以下、コーデックマネージャ（ＣＯＤＥＣ-Ｍａｎａｇｅｒ）モジュールをＣＯＤＥＣ-Ｍａｎａｇｅｒと略記する。
ＦＢＥエンコーダ（ＦＢＥ-ＥｎｃｏＤｅｒ）モジュール２２９は、スキャン処理によって読み込まれたデータを、ＦＢＥフォーマットを用いて圧縮する。具体的には、Ｊｏｂ-Ｍａｎａｇｅｒ２１９や後述のＳｃａｎ-Ｍａｎａｇｅｒ２２４によって実行されたスキャン処理によって読み込まれたデータを、ＦＢＥフォーマットを用いて圧縮する。
【００２５】
ＪＰＥＧ-ＣＯＤＥＣ２２２は、読み込まれたデータのＪＰＥＧ圧縮および印刷データのＪＰＥＧ展開処理を行う。
ここで、読み込まれたデータとは、Ｊｏｂ-Ｍａｎａｇｅｒ２１９やＳｃａｎｎｅｒ-Ｍａｎａｇｅｒ２２４によって実行されたスキャン処理に基づくデータである。また、印刷データとは、Ｐｒｉｎｔ-Ｍａｎａｇｅｒ２２６によって実行された印刷データである。
ＭＭＲコーデック（ＭＭＲ-ＣＯＤＥＣ）モジュール２２３は、読み込まれたデータのＭＭＲ圧縮および印刷データのＭＭＲ伸長処理を行う。ここで、読み込まれたデータとは、Ｊｏｂ-Ｍａｎａｇｅｒ２１９やＳｃａｎｎｅｒ-Ｍａｎａｇｅｒ２２４によって実行されたスキャン処理に基づくデータが含まれる。また、読み込まれたデータとは、Ｐｒｉｎｔ-Ｍａｎａｇｅｒ２２６によって実行された印刷処理に基づくデータが含まれる。
【００２６】
ＭＭＲコーデック（ＭＭＲ-ＣＯＤＥＣ）モジュール２２３は、読み込まれたデータのＭＭＲ圧縮および印刷データのＭＭＲ伸長処理を行う。ここで、読み込まれたデータとは、Ｊｏｂ-Ｍａｎａｇｅｒ２１９やＳｃａｎｎｅｒ-Ｍａｎａｇｅｒ２２４によって実行されたスキャン処理に基づくデータが含まれる。また、読み込まれたデータとは、Ｐｒｉｎｔ-Ｍａｎａｇｅｒ２２６によって実行された印刷処理に基づくデータが含まれる。
Ｓｃａｎｎｅｒ-Ｍａｎａｇｅｒ２２４は、Ｊｏｂ-Ｍａｎａｇｅｒ２１９が指示するスキャン処理を管理・制御するものである。スＳｃａｎｎｅｒ-Ｍａｎａｇｅｒ２２４と画像処理装置１１０に内部的に接続しているスキャナ１１３との間の通信が、ＳＣＳＩドライバ２２５を介して行われる。
【００２７】
Ｐｒｉｎｔ-Ｍａｎａｇｅｒ２２６は、Ｊｏｂ-Ｍａｎａｇｅｒ２１９が指示する印刷処理を管理・制御するものである。Ｐｒｉｎｔ-Ｍａｎａｇｅｒ２２６とプリンタ１１４との間のインタフェースがＥｎｇｉｎｅ-Ｉ／Ｆ２２７により提供される。
また、パラレルポートドライバ（Ｐａｒａｌｌｅｌ）２２８が搭載されており、Ｐａｒａｌｌｅｌ２２８を介して不図示の出力機器にデータを出力する際のＩ／Ｆを提供する。
[画像処理装置１１０の詳細構成について]
図３は、図１に示した画像処理装置１１０の詳細構成を示すブロック図である。
図３において、１１１はコントローラユニットで、装置全体を制御する。コントローラユニット１１１は、画像入力デバイスであるスキャナ１１３や画像出力デバイスであるプリンタ１１４を接続し、これらを制御する。さらに、コントローラユニット１１１は、ＬＡＮ１００や公衆回線と接続され、これらを介して画像情報やデバイス情報の入出力を外部の機器との間で行う。ここで、公衆回線に接続される機器には、ファクシミリ装置、あるいはファクシミリ機能を備える情報処理装置が含まれる。
コントローラユニット１１１は、システムバス３０７を介して以下のデバイスと接続される。ここで、デバイスとは、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３、ＨＤＤ（ハードディスク装置）３０４、イメージバスＩ／Ｆ３０５、操作部Ｉ／Ｆ３０６、ネットワークＩ／Ｆ３０８、およびモデム（ＭＯＤＥＭ）３０９が含まれる。
【００２８】
ＲＡＭ３０２は、ＣＰＵ３０１の作業領域を提供するためのメモリであり、また、画像データを一時記憶するための画像メモリとしても使用される。ＲＯＭ３０３はブートＲＯＭであり、ＲＯＭ３０３には、システムのブートプログラムが格納されている。ＨＤＤ３０４には、システムソフトウェア、画像データなどが格納される。
操作部Ｉ／Ｆ３０６は、操作部１１２との間で入出力を行うためのインタフェースであり、操作部１１２に表示する画像データを操作部１１２に対して出力する。また、操作部Ｉ／Ｆ３０６は、ユーザが操作部１１２を介して入力した情報を、ＣＰＵ３０１に伝送するなどの役割を果たす。
ＮｅｔｗｏｒｋＩ／Ｆ３０８は、ＬＡＮと接続され、ＬＡＮに対して情報の入出力を行う。ＭＯＤＥＭ３０９は、公衆回線と接続され、公衆回線に対して情報の入出力を行う。ＩｍａｇｅＢｕｓＩ／Ｆ３０５は、システムバス３０７と画像データを高速で転送する画像バス３１０とを接続し、データ構造を変換するバスブリッジである。
【００２９】
画像バス３１０には、ＲＩＰ（ラスタイメージプロセッサ）３１１、デバイスＩ／Ｆ３１２、スキャナ画像処理部３１３、プリンタ画像処理部３１４、画像回転部３１５、および画像圧縮部３１６が接続されている。
ＲＩＰ３１１は、ＬＡＮから受信されたＰＤＬコードをビットマップイメージに展開する。デバイスＩ／Ｆ３１２は、スキャナ１１３およびプリンタ１１４とコントローラユニット１１１とを接続し、画像データの同期系／非同期系の変換を行う。
スキャナ画像処理部３１３は、入力画像データに対し補正、加工、編集などを行う。プリンタ画像処理部３１４は、プリント出力画像データに対して、プリンタの補正、解像度変換などを行う。画像回転部３１５は、画像データの回転を行う。
【００３０】
画像圧縮部３１６は、多値画像データに対してはＪＰＥＧ圧縮伸長処理を行い、２値画像データに対してはＪＢＩＧ，ＭＭＲ，ＭＨなどの圧縮伸長処理を行う。
[画像処理装置１１０の外観構成について]
画像処理装置の外観構成について図４を参照しながら説明する。
図４は、図１に示した画像処理装置１１０の外観を示す図である。
図４において、画像処理装置１１０において、スキャナ１１３は、原稿となる紙上の画像を照明し、ＣＣＤラインセンサ（図示せず）を走査することによって、ラスタイメージデータを生成する。使用者が原稿用紙を原稿フィーダ４０５のトレイ４０６にセットして、操作部１１２において読み取りの起動を指示すると、コントローラユニット１１１のＣＰＵ３０１がスキャナ１１３に指示を与える。そして、原稿フィーダ４０５が原稿用紙を１枚ずつフィードし、スキャナ１１３は原稿フィーダ４０５からフィードされた原稿画像の読み取り動作を行う。
【００３１】
プリンタ１１４は、ラスタイメージデータを、用紙カセット４０１，４０２，４０３から給紙した用紙上の印刷し、排紙トレイ４０４に排紙するものであり、その印刷方式として、感光体ドラムや感光体ベルトを用いた電子写真方式が用いられている。
[画像処理装置１１０の操作部１１２の外観構成について]
次に、操作部１１２の構成について図５を参照しながら説明する。
図５は、図１に示した操作部１１２の外観構成を示す図である。
図５において、操作部１１２には、ＬＣＤ上にタッチパネル５０２が貼られているＬＣＤ表示部５０１を有する。
【００３２】
このＬＣＤ表示部５０１には、システムの操作画面およびソフトキーが表示されるとともに、表示されているキーが押されると、押された位置を示す位置情報がＣＰＵ３０１に伝えられる。また、操作部１１２には、スタートキー５０５、ストップキー５０３、ＩＤキー５０７、リセットキー５０４の各種ハードキーが設けられている。
スタートキー５０５は、原稿画像の読み取り動作の開始を指示するためのキーであり、スタートキー５０５の中央部には、緑と赤の２色のＬＥＤ表示部５０６が設けられている。２色のＬＥＤ表示部５０６は、その色によってスタートキー５０５が使用可能な状態にあるか否かを表す。ストップキー５０３は、稼働中の動作を止めるためのキーである。ＩＤキー５０７は、使用者のユーザＩＤを入力するときに用いられるキーである。リセットキー５０４は操作部１１２からの設定を初期化するときに用いられるキーである。
【００３３】
[画像処理装置１１０の操作部１１２の構成について]
次に、操作部１１２の構成について図６を参照しながら説明する。
図６は、図１の操作部１１２の詳細構成を示すブロック図である。
図６において、操作部１１２は、操作部Ｉ／Ｆ３０６を介してシステムバス３０７に接続される。システムバス３０７には、上述したように、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３、ＨＤＤ３０４などが接続されている。操作部Ｉ／Ｆ３０６は、ユーザからの入力を制御するための入力ポート６０１と、画面出力デバイスを制御するための出力ポート６０２とを有する。入力ポート６０１は、タッチパネル５０２、各種キー５０３，５０４，５０５，５０７を含むキー群からのユーザ入力をＣＰＵ３０１に渡す。ＣＰＵ３０１は、ユーザ入力の内容と制御プログラムとに基づいて表示画面データを生成し、出力ポート６０２を介して、ＬＣＤ表示部５０１に表示画面を出力する。また、ＣＰＵ３０１は、出力ポート６０２を介して必要に応じてＬＥＤ表示部５０６を制御する。
【００３４】
［画像処理装置１１０のウェブブラウザ２０９の構成について］
ウェブブラウザ２０９は、ＨＴＴＰモジュール２１４を介して、他のネットワークノードとの間に接続を確立し通信する。この通信においては、ＵＲＬによって記述されたリソースに対してＨＴＴＰ要求が発行され、その応答が得られる。この過程で、各種符号化形式に則した通信データの符号化・復号化も行われる。
イベント処理部（不図示）は、操作部１１２上のタッチパネルシートや各キーなどに対してユーザが行った操作のイベントを受信して、各イベントに対応した処理を行う。また、イベント処理部は、制御ＡＰＩ２１８から装置やジョブなどの状態遷移イベントを受信して、各イベントに対応した処理を行う。スクリプトインタプリタ（不図示）は、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ（ＥＣＭＡ  Ｓｃｒｉｐｔ）などのスクリプトを解釈し実行するインタプリタである。スクリプトは、文書に埋め込まれているか、または文書からリンクされた別ファイル中に記述される。コンテンツの提供者は、スクリプトによって、提供する文書の動的な挙動をプログラムできる。
【００３５】
図２に示すウェブブラウザ２０９は、ＨＴＴＰモジュール２１４を介して、他のネットワークノードとの間に接続を確立し通信する。この通信においては、ＵＲＬによって記述されたリソースに対してＨＴＴＰ要求が発行され、その応答が得られる。この過程で、各種符号化形式に則した通信データの符号化・復号化も行われる。
イベント処理部（不図示）は、操作部１１２上のタッチパネル５０２や各キーなどに対してユーザが行った操作のイベントを受信して、各イベントに対応した処理を行う。また、イベント処理部は、制御ＡＰＩ２１８から装置やジョブなどの状態遷移イベントを受信して、各イベントに対応した処理を行う。
【００３６】
スクリプトインタプリタ（不図示）は、Ｊａｖａ（登録商標）Ｓｃｒｉｐｔ（ＥＣＭＡ Ｓｃｒｉｐｔ）などのスクリプトを解釈し実行するインタプリタである。スクリプトは、文書に埋め込まれているか、または文書からリンクされた別ファイル中に記述される。コンテンツの提供者は、スクリプトによって、提供する文書の動的な挙動をプログラムできる。
［ＨＴＴＰプロトコルによる要求と応答の流れ］
図７は、図２に示したＨＴＴＰモジュール２１４によるＨＴＴＰプロトコルによる要求と応答の処理の流れを示す図である。
【００３７】
図７において、クライアント７０１は、図７に示すように、ＨＴＴＰ要求を送信しＨＴＴＰ応答を受信するソフトウェアが実装された装置である。本実施態では、ウェブブラウザ２０９が実装された画像処理装置１１０や、ウェブブラウザが実装されたホストコンピュータ１２０に相当する。
サーバ７０２は、ＨＴＴＰ要求を受信して対応する処理を行い、さらにＨＴＴＰ応答を返信するソフトウェアであり、本実施形態では、図１に示したサーバ１３０に相当するものである。
クライアント７０１は、ＨＴＴＰ要求をＧＥＴメソッドまたはＰＯＳＴメソッドのいずれかの方法で送信することができる。ここで、クライアント７０１が所望のリソースに対するＨＴＴＰ要求７０３をＧＥＴメソッドでサーバ７０２に送信する場合、リソースは一般にＵＲＩ（特にＵＲＬ）形式によって指定される。そして、サーバ７０２は、ＨＴＴＰ要求７０３により指定されたリソースに対応するデータを取得または生成し、このデータをＨＴＴＰ応答７０４によって返送する。
【００３８】
次に、ＨＴＴＰ要求をＰＯＳＴメソッドで送信する場合を説明する。
ＨＴＭＬ文書にフォーム（ｆｏｒｍ）が含まれ、その送信方法にＰＯＳＴメソッドが指定されている場合、以下のような処理が行われる。
すなわち、クライアント７０１のウェブブラウザにより表示されたフォームにユーザにより入力された情報は符号化される。そして、クライアント７０１は、その符号化された情報、すなわちフォームの入力内容を、ＨＴＴＰ要求７０５に添付してサーバ７０２に送信する。
【００３９】
サーバ７０２においては、指定されたリソースが、クライアント７０１から送られたデータを受信して処理を行い、ＨＴＴＰ応答７０６を生成し、クライアント７０１に返信する。
[画像処理装置１１０のブラウザ画面構成について]
次に、ＵＩモジュール２０１により表示されるウェブブラウザの画面構成について図８を参照しながら説明する。以下、サーバ１３０から取得するウェブブラウザの画面を用いて、ユーザからの処理要求を受付ける処理について説明する。
【００４０】
図８は、図６に示すＬＣＤ表示部５０１に表示されるユーザインタフェースの一例を示す図である。本例は、ＵＩモジュール２０１により表示されるウェブブラウザの画面に対応する。
図８において、ブラウザ画面８００には、ＵＲＬ入力フィールド８０８、コンテンツ表示領域８０２、およびステータス領域８０７が表示される。また、ブラウザ画面８００には、タブ８０１、ＯＫボタン８０９、プログレスバー、戻るボタン８０３、進むボタン８０４、リロードボタン８０６、中止ボタン８０５等のボタン類が表示される。なお、ボタン類の表示形態、表示位置は本表示画面例に限定されるものではない。
【００４１】
タブ８０１は、ウェブブラウザ機能と他の機能（コピー、ボックス、送信、拡張）との画面切り替えを行うボタンとして機能するものである。ＵＲＬ入力フィールド８０８は、ユーザが所望のリソースのＵＲＬを入力するフィールドであり、当該フィールドをユーザが押すと、文字入力を行うための仮想的なフルキーボード（不図示）が表示される。ユーザは、仮想的なフルキーボード上に配置されたキートップを模したソフトキーによって所望の文字列を入力することができる。
ＯＫボタン８０９は、入力したＵＲＬ文字列を確定するソフトキーである。ＵＲＬが確定されると、ウェブブラウザモジュール２０９は、当該リソースの取得を行うためのＨＴＴＰ要求を発行する。
【００４２】
プログレスバーは、ＨＴＴＰ要求応答によるコンテンツ取得処理の進捗状況を示す。コンテンツ表示領域８０２は、取得したリソースが表示される領域である。戻るボタン８０３は、コンテンツ表示の履歴をさかのぼり、現時点で表示しているコンテンツの前に表示したコンテンツを表示し直すためのソフトキーである。
進むボタン８０４は、コンテンツ表示の履歴をさかのぼって表示しているときに、その時点で表示しているコンテンツの後に表示したコンテンツの表示に戻るためのソフトキーである。
リロードボタン８０６は、現時点で表示しているコンテンツの再取得と再表示を行う。中止ボタン８０５は、実行中のコンテンツ取得処理を中止するソフトキーである。
ステータス領域８１０は、画像処理装置の各種機能からのメッセージを表示する領域である。このステータス領域８１０には、ブラウザ画面８００を表示中であっても、スキャナやプリンタや他の機能などから、ユーザの注意を促すためのメッセージを表示することができる。
【００４３】
また、同様にウェブブラウザ機能からもメッセージの表示を行うことができる。ウェブブラウザ機能は、リンク先のＵＲＬ文字列、コンテンツのタイトル文字列、スクリプトによって指示されたメッセージなどを表示する。
[認証コンテキスト管理モジュールについて]
図２に示すＡＣＭ２０６は、以下の各認証サービスモジュールから受け取る認証コンテキストを管理する。ここで、各認証サービスには、ＬＡＳ２１０、ＲＡＳ２１１、ＷＡＳ２１２が含まれる。ＬＡＳ２１０、ＲＡＳ２１１、ＷＡＳ２１２は、認証に成功すると認証コンテキストとして必要な情報をＡＣＭ２０６に渡す。ＡＣＭ２０６は認証コンテキストを作成し、ユーザ情報を書き込む。このようにして、認証に成功し認証コンテキストにユーザ情報が書き込まれると、それ以降のユーザの操作はすべて認証コンテキストに書き込まれたユーザの権限で動作する。
さらに、ＡＣＭ２０６は、認証コンテキストを管理する。ＡＣＭ２０６によって認証コンテキストが管理される期間は、上述のように、ユーザの認証に成功し、認証コンテキストが作成されてから、ユーザのログアウト処理が行われるまでの期間である。
【００４４】
また、ログアウト条件としては、ユーザによりログアウト処理がされる、設定されたタイムアウト時間の間に何も操作を行われない、各種デバイス設定情報の変更がされる、低電力モードへの移行、デバイス再起動等がある。
次に、認証コンテキストのデータ構造について図９を用いて説明する。図９は、図２に示したＡＣＭ２０６が作成して管理する認証コンテキストのデータ構造を説明する図である。
【００４５】
図９において、属性（Ａｔｔｒｉｂｕｔｅ）列９０１は認証コンテキストが持つ属性を示している。またデータタイプ（ＤａｔaＴｙｐｅ）列９０２は各属性に対応したデータタイプを示している。
認証サービスタイプ属性（ＡｕｔｈＳｖｃＴｙｐｅ）９０４は、どの認証サービス（ＬＡＳ２１０、ＲＡＳ２１１、ＷＡＳ２１２）から作られた認証コンテキストであるかを識別するための情報を格納する。
【００４６】
認証サーバアドレス属性（ＡｕｔｈＳｅｒＩＰ）９０５は、認証サーバ１４０のＩＰアドレスを格納する。ＳＴ属性（ＳｅｃｕｒｉｔｙＴｏｋｅｎ）９０６は、認証サーバ１４０から取得したＳＴを格納する。
ユーザ名属性（ＵｓｅｒＮａｍｅ）９０７は、認証サーバ１４０から取得したユーザ名を格納する。ユーザＩＤ属性（ＵｓｅｒＩＤ）９０８は、認証サーバ１４０から取得したユーザのユーザＩＤを格納する。
グループ名属性（ＧｒｏｕｐＮａｍｅ）９０９は、認証サーバ１４０から取得したユーザが所属するグループ名を格納する。グループＩＤ属性（ＧｒｏｕｐＩＤ）９１０は、認証サーバ１４０から取得したグループのグループＩＤを格納する。
【００４７】
ドメイン名属性（ＤｏｍａｉｎＮａｍｅ）９１１は、認証サーバ１４０から取得したユーザが所属するドメイン名を格納する。メールアドレス属性（Ｅｍａｉｌ）９１２は、認証サーバ１４０から取得したユーザのメールアドレスを格納する。
権限属性（ＡｃｃｅｓｓＲｉｇｈｔ）９１３は、認証サーバ１４０から取得したユーザがコピー操作やスキャン操作などに対する操作権限を持っているかどうかを表す情報を格納する。セッションＩＤ参照属性（ＲｅｆＳｅｓｓｉｏｎＩＤ）９１４は認証コンテキストをキーに作成したセッションリソースへの参照情報を格納する。
【００４８】
［ウェブＷＡＳ２１２に対する処理の流れ］
図１０は、図２に示したＷＡＳ２１２に対する処理の一例を説明する図である。なお、Ｓ１００２〜Ｓ１００９は各ステップを示す。
図１０において、クライアント１００１は、ＷＡＳ２１２に対してウェブサービスとしてＨＴＴＰ要求を送信し、ＨＴＴＰ応答を受信するソフトウェアを実装する端末であり、本実施形態ではサーバ１３０に相当する。
【００４９】
まず、Ｓ１００２で、クライアント１００１は、画像処理装置１１０のＷＡＳ２１２に対して認証方式の問い合わせるためのＨＴＴＰ要求を送る。次に、Ｓ１００３で、クライアント１００１によるＳ１００２の要求に対して、ＷＡＳ２１２はクライアント１００１に対して認証方式を返信する。
そして、ＷＡＳ２１２は、クライアント１００１から受け取るＣｒｅｄｅｎｔｉａｌに対するユーザ認証を行う。クライアント１００１からＷＡＳ２１２に対してＳＴを渡しユーザ認証を行うと、ＷＡＳ２１２は、Ｓ１００４で、認証サーバに対してそのＳＴが正当であるかどうかの確認を行う。ここで、ＳＴが正当な場合は認証サーバ１４０からＯＫが返る。
【００５０】
ユーザ認証に成功すると、ＷＡＳ２１２はＡＣＭ２０６に対して認証コンテキスト作成を依頼する。ＡＣＭ２０６はＳＴとユーザ情報を元に認証コンテキストを作成し保存する。このようにして、認証コンテキストが作成されると、ユーザは認証コンテキストに基づいた権限で画像処理装置１１０のサービスをウェブサービス経由で利用することができる。
そして、Ｓ１００５で、ＷＡＳ２１２は、クライアント１００１に対してＳＴを返信する。次に、Ｓ１００６で、クライアント１００１はウェブサービス記述のヘッダ部分にＳＴを付加する形式で挿入し、画像処理装置１１０に対してＨＴＴＰ要求を送る。
【００５１】
ＷＡＳ２１２は、クライアント１００１から受け取るＨＴＴＰ要求のヘッダ部のＳＴを読み取り、ＳＴが正当なものであるかを判断する。ここで、受け取ったＳＴが正しくないと判断した場合は、Ｓ１００７でクライアント１００１に対してエラーを返信する。ここで、ＳＴが正当なものであるとＷＡＳ２１２が判断した場合、ローカル認証サービス経由で作成した認証コンテキストと、ウェブサービス経由で作成した認証コンテキストが一致しているかどうかをＷＡＳ２１２が確認する。
【００５２】
ここで、ＷＡＳ２１２が２つの認証コンテキストが一致していると判断した場合は、ＷＳＰ２０７に対してウェブサービス呼び出しを行う。一方、ＷＡＳ２１２が２つの認証コンテキストが一致していないと判断した場合は、Ｓ１００７で、ＷＡＳ２１２はエラーをクライアント１００１に返す。
次に、Ｓ１００８で、クライアント１００１はログアウトのＨＴＴＰ要求をＷＡＳ２１２へ送る。ＷＡＳ２１２はログアウト要求を受け取ると、ＡＣＭ２０６に対応した認証コンテキストを破棄するように依頼し、ＡＣＭ２０６は認証コンテキストを破棄する。
【００５３】
そして、Ｓ１００９で、認証コンテキストが破棄されたら、ＷＡＳ２１２からクライアント１００１にＯＫが返り、失敗したらＮＧが返信される。
［サーバ１３０の詳細構成について］
図１１は、図１に示したサーバ１３０の詳細構成を示すブロック図である。
図１１において、アプリケーションサーバ部１３２のビジネスロジック部１１０３は、ＨＴＴＰ要求に応じてウェブサーバ部１３１から呼び出されて処理を実行する。ビジネスロジック部１１０３は、処理結果として、動的に生成したＨＴＭＬをウェブサーバ部１３１に返す。
アプリケーションサーバ部１３２のスクリプトエンジン部１１０２は、ビジネスロジック部から呼び出され、後述するプログラム管理領域１１０５からスクリプトを読み込んでビジネスロジック部１１０３に返す。ここで、スクリプトとは、プログラム実行記述書に対応するものである。
【００５４】
ビジネスロジック部１１０３は、スクリプトエンジン部１１０２によって読み込まれたスクリプトを順次実行する。そして、ウェブサービスリクエスタ部１１０１は、ビジネスロジック部１１０３から呼び出され、外部のウェブサービスプロバイダ（例えば、ＷＳＰ２０７）に対してウェブサービス呼び出しを行う。
認証部１１０４は、ビジネスロジック部１１０３から呼び出され、ユーザ認証処理の管理・制御及びにユーザ情報管理、ユーザ設定管理を行う。プログラム管理領域１１０５は、各種スクリプト及びスクリプトから呼び出されるプログラムを管理する。プログラム管理領域１１０５のデータはプラグイン機構（不図示）により追加や変更可能である。このプラグイン機構により、サーバ１３０の機能カスタマイズを可能にする。データ格納領域１１０６は、文書などのデータを格納する領域である。プリファレンスデータ領域１１０７は、ユーザ毎の設定情報を格納する領域である。
【００５５】
ビジネスロジック部１１０３は、認証部１１０４より取得したＳＴをアクセスキーとしてプリファレンスデータ領域１１０７に格納されたユーザ毎の設定情報を取得する。そして、ビジネスロジック部１１０３は、さらに取得したユーザ毎の設定情報を用いて、ユーザ毎にカスタマイズした画面や機能を提供する。
上述したようなシステムの構成にて、画像処理装置１１０を操作するユーザは、サーバ１３０に実装されたユーザインタフェースを取得し、取得したユーザインタフェースを画像処理装置１１０の操作部１１２に表示させる。そして、操作部１１２に表示されたユーザインタフェースを用いて、ユーザは、画像処理装置１１０に所望の処理を実行させるための指示を行う。ユーザによって行われた指示は、画像処理装置１１０によってサーバ１３０に送信される。サーバ１３０は、ユーザによって行われた指示の処理内容を判断し、当該指示内容に対応する処理要求を画像処理装置１１０に送信する。画像処理装置１１０は、サーバ１３０によって送信された処理要求を受信し、当該処理要求に従って動作する。このように動作させることによって、ユーザは、サーバ１３０に実装されたインタフェースを用いて、画像処理装置１１０に所望の動作を行わせることができる。この処理要求は、サーバ１３０がユーザインタフェースを送信することによって開始されたセッションにて行ってもよいし、そのセッションとは異なるセッションを開始して行ってもよい。
【００５６】
なお、この処理要求には、画像処理装置１１０を特定する情報も含まれており、これにより、画像処理装置１１０に処理を実行させるものである。
また、ユーザは、画像処理装置１１０を次のように動作させることもできる。例えば、ユーザは、サーバ１３０に実装されたユーザインタフェースによって、サーバ１３０以外の外部装置に処理要求を送信し、当該外部装置が処理要求の結果を画像処理装置１１０に送信するように制御させることができる。ここでいう外部装置の処理とは、例えば、データのダウンロード要求等があり、外部装置がユーザによって指定された場所からデータをダウンロードし、ダウンロードが完了した場合に、画像処理装置１１０にダウンロードしたデータを送信する。
【００５７】
［セッション管理モジュール２０４の詳細について］
図１２は、図２に示したセッション管理モジュール２０４が管理するセッション１２００のデータ構造を説明する図である。図１２において、属性（Ａｔｔｒｉｂｕｔｅ）列１２０１は、各セッションが固定で持つ属性を示している。また、データタイプ（ＤａｔａＴｙｐｅ）列１２０２は、各属性に対応したデータタイプを示している。
セッションＩＤ属性（ＳｅｓｓｉｏｎＩＤ）１２０３は、各セッションを一意に識別するための識別番号である。セッションタイプ属性（ＳｅｓｓｉｏｎＴｙｐｅ）１２０４は、どの認証サービス（ＬＡＳ２１０、ＲＡＳ２１１、ＷＡＳ２１２）経由で作られたセッションであるかを識別するための情報を格納する。ここで、ＬＡＳ２１０経由で作られた場合、１ビット目のフラグが立つ。また、ＲＡＳ２１１経由で作られた場合は２ビット目のフラグが立つ。
【００５８】
さらに、ＷＡＳ２１２経由で作られた場合は３ビット目のフラグが立つ。例えば、ＬＡＳ２１０経由でセッションのリソースが確保されて、ウェブサービス認証サービス経由でセッションが参照された場合、１ビット目と３ビット目のフラグが立つ。このフラグはリソース解放時の情報として利用され、値が０になった場合にリソースの解放を行う。
操作種別属性（ＯｐｅｒａｔｅＫｉｎｄ）１２０５は、どの操作を行うためにセッションのリソースを確保したかの操作種別を識別するための情報を格納する。操作種別としてはプリント操作、スキャン操作、ファックス操作、機器設定情報アップロード操作、機器設定情報ダウンロード操作、機器状態取得操作、その他がある。
【００５９】
セッション状態属性（ＳｅｓｓｉｏｎＳｔａｔｅ）１２０６は、セッションの状態を識別するための情報を格納する。とりうる状態としては"リソース確保状態"、"処理待ち状態"、"処理実行中状態"がある。認証コンテキストをキーに空のセッションリソースを確保したときの状態が、"リソース確保状態"である。外部からの処理要求を実行する直前の状態が"処理実行中状態"である。処理が終了した状態が"処理待ち状態"である。
ラストアクセスタイム属性（ＬａｓｔＡｃｃｅｓｓＴｉｍｅ）１２０７は、最後にセッションに対して参照、書き込み、あるいは読み込みが行われた時間を格納する。
セッション情報属性（ＳｅｓｓｉｏｎＩｎｆｏ）１２０８は、必要に応じて自由にプログラムより利用される。セッション情報属性（ＳｅｓｓｉｏｎＩｎｆｏ）１２０８は、プログラムにより動的属性として生成される。プログラムによりセッションＩＤ属性１２０３とユーザが設定した動的属性キーで動的属性値は自由に呼び出し可能である
また、ＳＭ２０４では、セッション１２００を用いてセッションの優先順位管理を行う。セッション状態属性１２０６に格納されたセッション状態で、優先順位は高い順に（１）"処理実行中状態"＞（２）"リソース確保状態"＞（３）"処理待ち状態"のように設定されている。
【００６０】
さらに、各セッション状態で操作種別属性１２０５に格納された操作種別で優先順位が決められている。具体的には、優先順位は高い順に、（１）プリント操作、スキャン操作、ファックス操作＞（２）機器設定情報アップロード操作、機器設定情報ダウンロード操作＞（３）機器状態取得操作＞（４）その他のように設定されている。さらに、各操作種別でラストアクセスタイム属性１２０７に格納されたラストアクセスタイムが現在時間に近い方ものが優先順位は高い。また、セッション管理モジュール２０４は、ＬＡＳ２１０、ＲＡＳ２１２経由で呼び出され、セッションのリソース確保／解放の管理・制御を行う。
【００６１】
また、セッション管理モジュール２０４は、セッション情報の読み取り／書き込み管理・制御を行う。さらに、セッション管理モジュール２０４は、セッション数を管理するためにセッションカウンタを保持し、画像処理装置１１０で確保可能なセッション数の上限を管理・制御する。セッション管理モジュール２０４は、外部の装置と通信を行う際に、セッションを確保して通信を行う。各セッションは、セッション管理モジュール２０４が、ＲＡＭ３０２等のメモリにセッション情報を記憶することによって管理される。また、同時に確保可能なセッション数には上限が設けられている。なぜならば、同時に無制限にセッションを確保すると、セッション情報を確保するために大きなメモリの容量が必要になるためである。また、同時に無制限にセッションを確保すると、それらのセッションを用いて同時に多くの外部装置と通信を行う必要があり、処理の負荷が大きくなってしまうからである。
【００６２】
［第１の実施形態に係る第１のフロー］
図１３は、図１に示した画像処理装置１１０が備える操作部１１２に表示されるログイン画面の一例を示す図である。本例では、ユーザがユーザ名、ドメイン名、パスワードのＣｒｅｄｅｎｔｉａｌを入力して画像処理装置１１０にログインする。画像処理装置１１０にログインした場合に、ユーザは、画像処理装置１１０の使用を許可される。また、本実施形態では、認証サーバ１４０を画像処理システムとして独立した情報処理装置で構成する場合について説明するが、認証サーバ１４０の機能と同様の機能を画像処理装置１１０、あるいは、サーバ１３０が備えていてもよい。
【００６３】
図１４は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置１１０と認証サーバ１４０との間のデータ処理例であって、認証サーバ１４０を用いてユーザ認証処理する例である。なお、Ｓ１５０１、Ｓ１５０２、Ｓ１５０６〜Ｓ１５１０は画像処理装置１１０のＣＰＵ３０１がＲＡＭ３０２にモジュールをロードして実行することで実現される。また、Ｓ１５０３〜Ｓ１５０５は認証サーバ１４０のＣＰＵがＲＡＭにモジュールをロードして実行することで実現される。
Ｓ１５０１で、ユーザは、操作部１１２に表示される図１３に示すユーザインタフェースを用いて、ユーザ名、ドメイン名、パスワードを入力する。
図１３において、テキストボックス１３０１は、ユーザ名を入力するためのテキストボックス領域である。ここで、ユーザがテキストボックス１３０１を選択すると、ＣＰＵ３０１により実行されるＵＩモジュール２０１は、ソフトキーボードを操作部１１２に表示する。これにより、ユーザはソフトキーボードを用いてユーザ名を文字入力できる。
【００６４】
テキストボックス１３０２は、ドメイン名を入力するためのテキストボックス領域である。テキストボックス１３０２は選択式になっており、ここに表示されるドメインの個数は画像処理装置１１０が対応する認証サーバ１４０に対応している。
つまり、画像処理装置１１０は複数の認証サーバとやり取り可能である。テキストボックス１３０３はパスワードを入力するためのテキストボックス領域である。これらの情報が入力された後、ユーザによりＯＫボタン１３０４が押下されると、ユーザ名、ドメイン名、パスワードのＣｒｅｄｅｎｔｉａｌがＵＩモジュール２０１からＬＡＳ２１０に渡される。次に、Ｓ１５０２で、ＬＡＳ２１０はＬＡＮ１００を介して認証サーバ１４０に対してＣｒｅｄｅｎｔｉａｌを送信する。
【００６５】
次に、Ｓ１５０３で、認証サーバ１４０は、ＬＡＳ２１０から受信したＣｒｅｄｅｎｔｉａｌでユーザ認証を行う。ここで、認証サーバ１４０がユーザ認証に成功したと判断した場合には、Ｓ１５０４に遷移し、それ以外であると判断した場合は、Ｓ１５０１へ進む。この場合、認証サーバ１４０は、ＬＡＳ２１０から受信したＣｒｅｄｅｎｔｉａｌが正しくないので、認証サーバ１４０からＬＡＳ２１０に対して認証失敗が返信され、再度認証画面が操作部１１２に表示されて、Ｓ１５０１に遷移する。
【００６６】
次に、Ｓ１５０４で、認証サーバ１４０はＣｒｅｄｅｎｔｉａｌに対応したＳＴを発行し、Ｓ１５０５で、認証サーバ１４０は、ＬＡＳ２１０に対し発行したＳＴを返信する。
そして、画像処理装置１１０に戻り、Ｓ１５０６で、ＬＡＳ２１０は認証サーバ１４０から受信したＳＴをキーとして再度認証サーバ１４０に問い合わせを行い、ユーザ情報を取得する。
次に、Ｓ１５０７で、ＡＣＭ２０６は認証コンテキストを作成してＲＡＭ３０２上に保存する。そして、Ｓ１５０８で、ＳＭ２０４は、セッションのリソース数を管理しているセッションカウンタが上限に達しているか（所定の数以上か、上限を超えているかどうか）どうか判断する。ここで、セッションカウンタが上限に達していないとＳＭ２０４が判断した場合は、Ｓ１５０９に遷移し、上限に達していると判断した場合は、本処理を終了する。ここで、Ｓ１５０８で、ＳＭ２０４は、セッションカウンタが上限に達していると判断した場合、その旨をユーザに通知するようにしてもよい。
【００６７】
そして、Ｓ１５０９で、ＳＭ２０４はセッションのためのリソースを確保する。次に、Ｓ１５１０で、ＳＭ２０４は、Ｓ１５０７で作成した認証コンテキストのセッションＩＤ参照属性９１４の値に確保したセッション１２００のセッションＩＤ属性１２０３の値を格納する。
これにより、認証コンテキストをキーにセッション１２００にアクセス可能となる。さらに、ＳＭ２０４は、セッション１２００のセッション状態属性１２０６に"リソース確保状態"を格納する。さらにセッション管理モジュール２０４は、セッション１２００のセッションタイプ属性１２０４の１ビット目を立てる。
【００６８】
［第１の実施形態に係る第２のフロー］
次に、第１のフローから続く、第２のフローを図１５に示すフローチャートを参照しながら説明する。なお、上述した第１のフローは、ユーザが画像処理装置１１０にログインする際の処理を示し、以下に説明する第２のフローは、ユーザが画像処理装置１１０のブラウザ画面８００を起動させてサーバ１３０と通信を行う際の処理を示す。
図１５は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置１１０と認証サーバ１４０とサーバ１３０との間のデータ処理例であって、認証サーバ１４０を用いてユーザ認証処理する例である。なお、各ステップは、それぞれ、画像処理装置１１０、認証サーバ１４０、サーバ１３０のＣＰＵによって、それぞれのＲＯＭに記憶されたプログラムを実行することによって行われる。
【００６９】
また、本処理は、ユーザが操作部１１２でユーザ認証を行い、ブラウザ画面８００を選択すると、ＵＰＭ２０８で管理されている初期表示ＵＲＬ情報に基づき、ウェブブラウザモジュール２０９はサーバ１３０のＵＲＬに対してメソッドのＨＴＴＰ要求を送信する。
サーバ１３０はユーザ認証を前提で動作するため、ＨＴＴＰ要求にＳＴが含まれていないと、ＨＴＴＰ要求してきたクライアントとのユーザ認証が行われていないと判断し、ログイン画面にリダイレクトする。
【００７０】
そのためサーバ１３０からはログイン画面に対応したＨＴＴＰ応答が画像処理装置１１０のウェブブラウザモジュール２０９に返され、ブラウザ画面８００ではサーバ１３０へのログイン画面が表示される。
【００７１】
ただし、サーバ１３０がＳＳＯ（シングル・サイン・オン）に対応している場合、すでに認証サーバ１４０のＳＴを画像処理装置１１０の認証コンテキスト管理モジュール２０６で保持している。このため、ＳＴをＨＴＴＰ要求に含めてサーバ１３０に送信することにより下記Ｓ１６０１からＳ１６０８は省略可能である。Ｓ１６０１からＳ１６０８を省略した場合、Ｓ１６０１からＳ１６０９に処理を進める。以下、Ｓ１６０１以降の処理を説明する。
まず、Ｓ１６０１で、操作部１１２を操作するユーザから画像処理装置１１０の操作部１１２に表示されるブラウザログイン画面（不図示）でユーザ名、ドメイン名、パスワードのＣｒｅｄｅｎｔｉａｌの入力を受付ける。すると、Ｓ１６０２へ進む。
【００７２】
そして、Ｓ１６０２で、画像処理装置１１０のウェブブラウザモジュール２０９はＨＴＴＰモジュール２１４を通してＣｒｅｄｅｎｔｉａｌをＰＵＴメソッドのＨＴＴＰ要求としてサーバ１３０に送信する。
次に、Ｓ１６０３で、サーバ１３０のウェブサーバ部１３１は画像処理装置１１０からのＣｒｅｄｅｎｔｉａｌをＨＴＴＰ要求として受信する。そして、Ｓ１６０４で、サーバ１３０の認証部１１０４は、ウェブサーバ部１３１からビジネスロジック部１１０３経由でＣｒｅｄｅｎｔｉａｌを受け取り、認証サーバ１４０に対してＣｒｅｄｅｎｔｉａｌを送信する。
【００７３】
すると、Ｓ１６０５で、認証サーバ１４０は、予めユーザごとに登録しておいたＣｒｅｄｅｎｔｉａｌと、サーバ１３０の認証部１１０４から受信したＣｒｅｄｅｎｔｉａｌとを用いてユーザ認証を行う。ここで、認証サーバ１４０がユーザ認証に成功したと判断した場合は、Ｓ１６０７に遷移し、サーバ１３０の認証部１１０４から受信したＣｒｅｄｅｎｔｉａｌが正しくないと認証サーバ１４０が判断した場合は、Ｓ１６０６に遷移する。
そして、Ｓ１６０６で、サーバ１３０の認証部１１０４から受信したＣｒｅｄｅｎｔｉａｌが正しくないことが返信された場合は、サーバ１３０のウェブサーバ部１３１は次のように制御する。ウェブサーバ部１６０は、画像処理装置１１０に対して認証失敗であることを示すメッセージと認証画面を合成したＨＴＭＬを作成し、ＨＴＴＰ応答として画像処理装置１１０に返信する。
【００７４】
一方、Ｓ１６０７で、認証に成功した場合、認証サーバ１４０はＣｒｅｄｅｎｔｉａｌに対応したＳＴ（認証トークン）を発行して、Ｓ１６０８で、認証サーバ１４０はサーバ１３０の認証部１１０４に対しＳＴを返信する。
そして、サーバ１３０の認証部１１０４は受信したＳＴを用いて、再度認証サーバ１４０に問い合わせを行い、ユーザ情報を取得する。サーバ１３０の認証部１１０４は、認証サーバ１４０から取得したＳＴ及びユーザ情報をプリファレンスデータ領域１１０７に格納する。
【００７５】
そして、サーバ１３０のビジネスロジック部１１０３はユーザ認証に成功すると、ユーザのＳＴをアクセスキーにデータ管理領域１３３のプリファレンスデータ領域１１０７からユーザの画面作成に必要なユーザ情報を取り出す。そして、Ｓ１６０９で、ビジネスロジック部１１０３は以前に失敗した処理が残っているかどうかを判断する。ここで、以前に失敗した処理が残っていないと判断した場合は、Ｓ１６１０へ遷移し、失敗した処理が残っていると判断した場合は、Ｓ１６１１へ遷移する。なお、残っている処理タスクとは、図１６に示すボタン１４０１〜１４０４のいずれかのボタンがユーザに押下されたが、機能実行に失敗した場合に、Ｓ１６４３でサーバ１３０に残される処理タスクをいう。また、後述するＳ１６４３で保存される内容は、上記ボタンを操作したユーザを示すユーザ情報と、「ボタンに対応したスクリプト」とである。これにより、ユーザの次回ログイン時に認証情報からユーザを特定し、そのユーザに対してだけ、残っている処理タスクを表示することが可能となる。
【００７６】
つまり、上記ユーザ情報と、「ボタンに対応したスクリプト」をサーバ１３０で保存して管理することで、再度ユーザがログインした場合に、ボタンに対応する機能を実行できるようになる。一例を挙げれば、図１６に示すボタン１４０３、すなわち、Scan to フォルダＡに対応する機能を実行させる際に、当該ボタン１４０３をユーザが押下したのち、認証処理の途中で処理が中断する場合がある。なお、図１６に示す各ボタンの説明については後述する。このような場合に、当該機能のために設定するストレージへのパス等の情報が保持されることとなり、次回、ユーザがログインした場合に、そのようなパス設定等の処理が不要となり、ユーザによる操作負担を軽減できる。
そして、Ｓ１６１０で、ビジネスロジック部１１０３はユーザ情報を元にユーザに対応した画面構築を行い、実行画面情報（Ｗｅｂページ）を作成する。
一方、Ｓ１６１１では、ビジネスロジック部１１０３は、残処理の表示画面とユーザ情報を元にユーザに対応した画面の２つを合わせた画面構築を行い、（Ｗｅｂページ）画面を作成して、Ｓ１６１２へ進む。
【００７７】
そして、Ｓ１６１２で、サーバ１３０のウェブサーバ部１３１は、ビジネスロジック部１１０３が作成した画面をステップ１６０２の画像処理装置１１０からのＨＴＴＰ要求のＨＴＴＰ応答として画像処理装置１１０に返信する。
図１６は、図１に示した画像処理装置１１０の操作部１１２に表示されるユーザインタフェースの一例を示す図である。本例は、画像処理装置１１０がサーバ１３０から受信したＨＴＴＰ応答をブラウザ画面８００で表示した画面の一例である。なお、図８と同一のものには同一の符号を付してある。また、後述するボタンは、サーバ１３０が提供するサービスで表示されるボタンであって、ユーザ認証後に表示されるボタンである。
図１６において、ボタン１４０１は、画像処理装置１１０で紙原稿をスキャンし、画像処理装置１１０でカラー印刷を行うためのボタンである。
ボタン１４０２は、画像処理装置１１０で紙原稿をスキャンし、画像処理装置１１０で白黒印刷を行うためのボタンである。また、ボタン１４０３は、画像処理装置１１０で紙原稿をスキャンし、スキャンした画像データを画像処理装置１１０でＰＤＦ形式のデータに変換する。そして、ＰＤＦ形式のデータに変換された画像データを画像処理装置１１０からサーバ１３０のデータ格納領域１１０６のフォルダＡ（論理領域）へデータ格納するためのボタンである。
【００７８】
ボタン１４０４は、サーバ１３０のデータ格納領域１１０６に保存された"ＸＸＸ文書.PDF"文書を画像処理装置１１０で印刷するためのボタンである。これらボタンが画像処理装置１１０の操作部１１２からユーザの操作に基づいて押下される。そして、画像処理装置１１０の操作部１１２で押下されたボタン情報がサーバ１３０に通知されると、サーバ１３０のビジネスロジック部１１０３でボタンに対応したロジックを動作させる。
そして、ビジネスロジック部１１０３でボタンに対応したロジックを動作させると、ウェブサービスリクエスタ部１１０１を通して画像処理装置１１０の各機能に対応したウェブサービスが呼び出されて処理が実行される。各ボタンに対応したビジネスロジックは、スクリプトにより表現されるため、スクリプトの表現により様々なパターンの機能ボタンの提供が可能である。つまり、複数の機能を連携した機能ボタンを表示することも可能である。例えばボタン１４０１〜１４０４を組み合わせたボタン等が考えられる。この図１４に示される画面は、ホストコンピュータ１２０が備える表示部にも表示することができる。具体的な手順として、まず、ホストコンピュータ１２０は、サーバ１３０にアクセスする際に、Ｗｅｂブラウザ１２０Ａを介してユーザによって入力されたユーザＩＤや、パスワード等の情報をサーバ１３０に送信する。サーバ１３０は、送信されたユーザＩＤや、パスワード等の情報をもとに、認証サーバ１４０によって認証を行わせる。認証に成功した場合に、サーバ１３０は、図１６のような画面をホストコンピュータ１２０のＷｅｂブラウザ１２０Ａに送信し、表示させる。そして、ユーザは、表示された画面に表示されたボタン１４０１〜１４０４を用いて、画像処理装置１１０に対する指示を行うことができる。このように、ホストコンピュータ１２０から画像処理装置１１０に対して指示を行うこともできる。
【００７９】
これらボタンが画像処理装置１１０の操作部１１２からユーザにより押下されると、サーバ１３０のビジネスロジック部１１０３でボタンに対応したロジックが動作する。
そして、図１１に示すサーバ１３０のウェブサービスリクエスタ部１１０１を通して画像処理装置１１０の各機能に対応したウェブサービスが呼び出されて処理が実行される。なお、ボタンに対応したビジネスロジックはスクリプトにより表現されるため、スクリプトの表現により様々なパターンの機能ボタンの提供が可能である。
次に、Ｓ１６１３で、Ｓ１６１２でサーバ１３０から取得する実行画面に基づいて操作部１１２にユーザインタフェースを表示する表示制御が実行される。そして、その後、画像処理装置１１０の操作部１１２に表示された当該ユーザインタフェースからユーザにより、図１６に示したいずれかのボタンが押下されると、Ｓ１６１４へ進む。
【００８０】
そして、Ｓ１６１４で、操作部１１２のボタンの押下イベントが図２に示したＵＩモジュール２０１からウェブブラウザモジュール２０９に通知される。そして、ウェブブラウザモジュール２０９からボタン押下されたことを意味するＰＵＴメソッドのＨＴＴＰ要求がＨＴＴＰモジュール２１４を通してサーバ１３０に送信される。つまり、ユーザが操作部１１２のボタンを押下した指示の内容が押下イベントとしてサーバ１３０に指示送信される。
次に、Ｓ１６１５で、サーバ１３０のウェブサーバ部１３１は、画像処理装置１１０からボタン１４０１が押下されたことを意味するＨＴＴＰ要求を受け、ビジネスロジック部１１０３にボタンに対応したロジック処理を依頼する。
【００８１】
次に、Ｓ１６１６で、ビジネスロジック部１１０３は受信したボタンに対応したスクリプトをプログラム管理領域１１０５から取り出し、スクリプトエンジン部１１０２にスクリプト処理を依頼する。そして、Ｓ１６１７で、スクリプトエンジン部１１０２はスクリプトの内容から画像処理装置１１０に対する処理内容及びに設定情報等を読み込み、ビジネスロジック部１１０３に返す。
次に、Ｓ１６１８で、サーバ１３０のビジネスロジック部１１０３は、ウェブサービスリクエスタ部１１０１から画像処理装置１１０に対してウェブサービスを用いて画像処理装置１１０の機能利用するための認証処理を行う。なお、サーバ１３０が保持しているＳＴを送信する場合はＳ１６１９からＳ１６２３は省略できる。
【００８２】
次に、Ｓ１６１９で、画像処理装置１１０のＷＡＳ２１２は、サーバ１３０から受け取ったＣｒｅｄｅｎｔｉａｌを認証サーバ１４０に対して送信する。そして、認証サーバ１４０は、ＷＡＳ２１２から受信したＣｒｅｄｅｎｔｉａｌでユーザ認証を行う。そして、Ｓ１６２０で、ユーザ認証に成功しているかどうかを判断する。ここで、認証サーバ１４０が認証に成功していると判断した場合は、Ｓ１６２２に遷移する。
一方、Ｓ１６２０で、ＷＡＳ２１２から受信したＣｒｅｄｅｎｔｉａｌが正しくないと判断した場合は、認証サーバ１４０からＷＡＳ２１２に対して認証失敗が返信され、Ｓ１６２１に遷移する。
【００８３】
そして、Ｓ１６２１で、画像処理装置１１０のＷＡＳ２１２からサーバ１３０に対して認証失敗が返信される。Ｓ１６２２に遷移した場合、認証サーバ１４０はＣｒｅｄｅｎｔｉａｌに対応したＳＴを発行して、Ｓ１６２３で、認証サーバ１４０はＷＡＳ２１２に対しＳＴを画像処理装置１１０に返信する。
次に、Ｓ１６２４で、画像処理装置１１０のＷＡＳ２１２は認証サーバ１４０から受信したＳＴをキーとして再度認証サーバ１４０に問い合わせを行い、ユーザ情報を取得する。そして、Ｓ１６２５で、ＡＣＭ２０６は認証コンテキストを作成し保存する。
【００８４】
次に、サーバ１３０のビジネスロジック部１１０３は、認証に成功すると、スクリプトエンジンから返されたスクリプトの実行処理を順次実行する。
そして、Ｓ１６２６で、ビジネスロジック部１１０３は、画像処理装置１１０に対する実行処理要求があるかどうかを判断する。ここで、実行処理要求があるとビジネスロジック部１１０３が判断した場合はＳ１６２７へ遷移する。一方、Ｓ１６２６で、実行処理要求がないとビジネスロジック部１１０３が判断した場合は、本処理を終了する。
そして、Ｓ１６２７で、ＳＴと実行処理要求のウェブサービスのＨＴＴＰ要求を画像処理装置１１０に送信する。
次に、Ｓ１６２８で、画像処理装置１１０のＷＡＳ２１２は、サーバ１３０からＳＴと実行処理要求を受け取る。そして、ＷＡＳ２１２が受け取ったＳＴが正当であるかを判断する。ここで、ＳＴが正しくないとＷＡＳ２１２が判断した場合は、画像処理装置１１０は、サーバ１３０にエラーを返信する。
【００８５】
次に、Ｓ１６２９で、画像処理装置１１０のＷＡＳ２１２は、図示しないステップでローカル認証サービス経由で作成した認証コンテキストとＳ１６２５でウェブサービス経由で作成した認証コンテキストが一致しているかどうかを判断する。ここで、一致しているかどうかの判断方法にはＳＴ属性９０５、ユーザ名属性９０６、ユーザＩＤ属性９０７、グループ名属性９０８、グループＩＤ属性９０９、ドメイン名属性９１０、メールアドレス属性９１１のいずれかで比較を行う方法がある。なお、これらの属性を組み合わせて比較する方法を用いてもよい。
【００８６】
ここで、認証コンテキストの比較の結果、各認証コンテキストが一致していないとＷＡＳ２１２が判断した場合は、Ｓ１６３７に遷移し、一致していると判断した場合は、Ｓ１６３０へ遷移する。また、ローカル認証サービス経由で作成された認証コンテキストがないとＷＡＳ２１２が判断した場合は、Ｓ１６３７へ遷移する。
次に、ＷＡＳ２１２は、ＬＡＳ２１０経由で作成した認証コンテキストに対応したセッションが確保してあるかどうかをＳＭ２０４に問い合わせる。そして、Ｓ１６３０で、ＷＡＳ２１２は、ＳＭ２０４ですでに対応したセッションを確保しているかどうかを判断する。ここで、ＳＭ２０４ですでに対応したセッションを確保しているとＷＡＳ２１２が判断した場合は、Ｓ１６３１に遷移し、確保していないと判断した場合はＳ１６３３に遷移する。
【００８７】
そして、Ｓ１６３１で、ＳＭ２０４は、セッション１２００のセッションタイプ属性１２０４にＷＡＳ２１２経由で参照されたことを表すために３ビット目のフラグを立てる。
さらに、ＳＭ２０４は、セッション１２００の操作種別属性１２０５に実行処理要求が何であるかの情報を格納する。さらに、ＳＭ２０４は、セッション１２００のセッション状態属性１２０６に"処理実行中状態"を格納する。
次に、Ｓ１６３２で、画像処理装置１１０は、スキャン（読取処理）やプリント（印刷処理）などの処理要求を実行する。なお、処理要求は、これ以外に、例えば、ＨＤＤ３０４に格納されたデータを印刷するための要求やその他の処理要求であってもよい。また、本実施形態においては、サーバ１３０がユーザインタフェース送信を行い、送信されたユーザインタフェースを介してユーザが行った指示を、画像処理装置１１０がサーバ１３０に対して指示送信を行う場合について説明した。そして、当該送信された指示をサーバ１３０が直接、指示受信を行う例について説明した。しかしながら、指示送信によって送信される指示は、サーバ１３０以外の装置を経由してサーバ１３０に到達する構成であってもよい。
【００８８】
一方、Ｓ１６３０ですでに確保したセッションがないと判断した場合は、Ｓ１６３３で、ＳＭ２０４は、セッションのリソース数を管理しているセッションカウンタが上限数に達しているかどうか判断する。ここで、セッションカウンタが上限数に達していないとＳＭ２０４が判断した場合は、Ｓ１６３５に遷移し、上限数に達していると判断した場合は、Ｓ１６３４に遷移する。
そして、Ｓ１６３４で、ＳＭ２０４は、優先順位が一番低いセッションのリソースを解放する。そして、Ｓ１６３５で、ＳＭ２０４はセッションのためのリソースを確保する。そして、Ｓ１６３６で、ＳＭ２０４は、ＬＡＳ２１０で作られた認証コンテキストのセッションＩＤ参照属性９１４の値に確保したセッション１２００のセッションＩＤ属性１２０３の値を格納する。
【００８９】
さらに、ＳＭ２０４は、ＷＡＳ２１２で作られた認証コンテキストのセッションＩＤ参照属性９１４の値に確保したセッション１２００のセッションＩＤ属性１２０３の値を格納する。さらに、ＳＭ２０４は、セッション１２００のセッション状態属性１２０６に"リソース確保状態"を格納する。
さらに、ＳＭ２０４は、セッション１２００のセッションタイプ属性１２０４の１ビット目と３ビット目を立てる。
一方、Ｓ１６２９で、各認証コンテキストが一致しないとＷＡＳ２１２が判断した場合は、Ｓ１６３７で、ＳＭ２０４は、セッションのリソース数を管理しているセッションカウンタが上限数に達しているかどうか判断する。ここで、セッションカウンタが上限数に達していないとＳＭ２０４が判断した場合は、Ｓ１６３８に遷移し、上限数に達していると判断した場合は、Ｓ１６４２に遷移する。
【００９０】
そして、Ｓ１６３８で、ＳＭ２０４はセッションのためのリソースを確保する。次に、Ｓ１６３９で、ＳＭ２０４は、ＷＡＳ２１２で作られた認証コンテキストのセッションＩＤ参照属性９１４の値に確保したセッション１２００のセッションＩＤ属性１２０３の値を格納する。
さらに、ＳＭ２０４は、セッション１２００のセッション状態属性１２０６に"リソース確保状態"を格納する。さらに、ＳＭ２０４は、セッション１２００のセッションタイプ属性１２０４の３ビット目を立てる。
【００９１】
次に、Ｓ１６４０で、ＳＭ２０４は、セッション１２００のセッション状態属性１２０６に"処理待ち"を格納する。Ｓ１６４１で、ＳＭ２０４は、Ｓ１６３２に対応する処理が正常に終了したかどうかを判断する。ここで、処理が正常に終了したとＳＭ２０４が判断した場合は、Ｓ１６２６に遷移し、処理が正常に終了していないと判断した場合は、Ｓ１６４２に遷移する。
そして、Ｓ１６４２で、画像処理装置１１０はサーバ１３０にエラーを返信し、、Ｓ１６４３で、サーバ１３０のビジネスロジック部１１０３はプリファレンスデータ領域１１０７に処理が失敗したことを保存して、本処理を終了する。
【００９２】
以上のように、サーバ１３０等の外部装置にユーザインタフェースを実装することによって、画像処理装置１１０にユーザインタフェースを実装する場合に比べて、ソフトウェアの実装が容易であるというメリットがある。画像処理装置１１０のユーザインタフェースを実装する場合には、画像処理装置１１０特有のプログラミング方法について習熟していなければならない。一方、サーバ１３０にユーザインタフェースを実装する場合には、Ｗｅｂアプリケーション用のソフトウェアを実装できれば充分であるためである。
【００９３】
また、以上のように、あらかじめ画像処理装置１１０の操作部１１２でユーザ認証時にユーザ認証情報をキーにしてセッションのリソースを確保する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。具体的に、例えば、ユーザが画像処理装置１１０にログインした後、画像処理装置１１０の操作部を介して行った指示に対応する処理要求を外部のサーバ１３０から受付ける段階で、セッションを確保できないことを防止することができる。
【００９４】
〔第２実施形態〕
以下、第２実施形態を図１７のフローチャートを参照しながら説明する。
図１７は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置１１０と認証サーバ１４０との間のデータ処理例であって、認証サーバ１４０を用いてユーザ認証処理する例である。なお、Ｓ１７０１、Ｓ１７０２、Ｓ１７０６〜Ｓ１７１１は画像処理装置１１０のＣＰＵ３０１がＲＡＭ３０２にモジュールをロードして実行することで実現される。
また、Ｓ１７０３〜Ｓ１７０５は認証サーバ１４０のＣＰＵがＲＡＭにモジュールをロードして実行することで実現される。なお、各ステップは、説明上、画像処理装置１１０からの操作に基づいて連携される認証サーバ１４０の処理を説明するため各ステップが一連のステップとして示す例である。
【００９５】
また、図１７に示すＳ１７０１からＳ１７０７は、図１４に示したＳ１５０１からＳ１５０７に対応する。以下、第１実施形態との違いのみを説明する。
ユーザ認証に成功すると画像処理装置１１０の操作部１１２はデフォルト画面としてアプリケーション選択画面（不図示）を表示する。ユーザは各アプリケーションを選択することによりコピーやファックス、ブラウザなどのアプリケーションを利用することができる。そして、Ｓ１７０８で、ユーザはブラウザアプリケーションを選択する。そして、Ｓ１７０９からＳ１７１１は、Ｓ１５０８からＳ１５１０に対応する。
以上、説明したように、あらかじめ画像処理装置１１０の操作部１１２でアプリケーション選択時にユーザ認証情報をキーにセッションのリソースを確保する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。
【００９６】
〔第３実施形態〕
本発明の第３の実施形態を図１８のフローチャートを参照しながら説明する。
図１８は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置１１０と認証サーバ１４０との間のデータ処理例であって、認証サーバ１４０を用いてユーザ認証処理する例である。なお、Ｓ１８０１、Ｓ１８０２、Ｓ１８０６〜Ｓ１８１１は画像処理装置１１０のＣＰＵ３０１がＲＡＭ３０２にモジュールをロードして実行することで実現される。
【００９７】
また、Ｓ１８０３〜Ｓ１８０５は認証サーバ１４０のＣＰＵがＲＡＭにモジュールをロードして実行することで実現される。なお、各ステップは、説明上、画像処理装置１１０からの操作に基づいて連携される認証サーバ１４０の処理を説明するため各ステップが一連のステップとして示す例である。以下、第１実施形態との違いのみを説明する。
Ｓ１８０８で、ＳＭ２０４は、セッションのリソース数を管理しているセッションカウンタが上限数に達しているかどうか判断する。ここで、セッションカウンタが上限数に達していないとＳＭ２０４が判断した場合は、Ｓ１８１０に遷移し、上限数に達しているとＳＭ２０４が判断した場合は、Ｓ１８０９に遷移する。そして、Ｓ１８０９で、ＳＭ２０４は、一定時間待機した後、Ｓ１８０８へ戻る。
【００９８】
以上、説明したように、あらかじめ画像処理装置１１０の操作部１１２でユーザ認証終了後にセッションを確保するリソースの上限数を監視し、空きがあれば、ユーザ認証情報をキーにセッションのリソースを確保する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。
【００９９】
〔第４実施形態〕
以下、第４実施形態を図１９のフローチャートを参照しながら説明する。
図１９は、本実施形態を示す画像処理システムにおけるデータ処理手順の一例を示すフローチャートである。本例は、画像処理装置１１０と認証サーバ１４０との間のデータ処理例であって、認証サーバ１４０を用いてユーザ認証処理する例である。なお、Ｓ１９０１、Ｓ１９０２、Ｓ１９０６〜Ｓ１９１２は画像処理装置１１０のＣＰＵ３０１がＲＡＭ３０２にモジュールをロードして実行することで実現される。以下、第１実施形態との違いのみを説明する。
Ｓ１９０９で、ＳＭ２０４はセッションのためのリソースを確保する。そして、Ｓ１９１０で、ＳＭ２０４は、Ｓ１９０７で作成した認証コンテキストのセッションＩＤ参照属性９１４の値に、確保した複数のセッション１２００のセッションＩＤ属性１２０３の値を格納する。
【０１００】
これにより認証コンテキストをキーに複数のセッション１２００にアクセス可能となる。
さらに、ＳＭ２０４は、セッション１２００のセッション状態属性１２０６に"リソース確保状態"を格納する。さらに、ＳＭ２０４は、セッション１２００のセッションタイプ属性１２０４の１ビット目を立てる。
ユーザ認証に成功すると画像処理装置１１０の操作部１１２はデフォルト画面としてアプリケーション選択画面（不図示）を表示する。ユーザは各アプリケーションを選択することによりコピーやファックス、ブラウザなどのアプリケーションを利用することができる。
【０１０１】
次に、Ｓ１９１１で、ユーザはブラウザアプリケーションを選択する。そして、Ｓ１９１２で、ＳＭ２０４は不要なセッションを解放して、本処理を終了する。
以上説明したように、あらかじめ画像処理装置１１０の操作部１１２でユーザ認証したときにユーザ認証情報をキーにセッションのリソースを複数確保し、必要なリソース決定時（アプリケーション選択時）に必要なリソース以外を解放する。そうすることで、画像処理装置の前にいるユーザの指示した外部処理要求を確実に行わせることができる。
なお、上述した実施形態の場合、認証サーバ１４０とサーバ１３０が別の装置である場合について説明したが、これらのサーバは同じ装置で構成されていてもよい。
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【符号の説明】
【０１０２】
１１０  画像処理装置
１３０  サーバ
１４０  認証サーバ
【図１】
0005460145.tif 000002
【図２】
0005460145.tif 000003
【図３】
0005460145.tif 000004
【図４】
0005460145.tif 000005
【図５】
0005460145.tif 000006
【図６】
0005460145.tif 000007
【図７】
0005460145.tif 000008
【図８】
0005460145.tif 000009
【図９】
0005460145.tif 000010
【図１０】
0005460145.tif 000011
【図１１】
0005460145.tif 000012
【図１２】
0005460145.tif 000013
【図１３】
0005460145.tif 000014
【図１４】
0005460145.tif 000015
【図１５】
0005460145.tif 000016
【図１６】
0005460145.tif 000017
【図１７】
0005460145.tif 000018
【図１８】
0005460145.tif 000019
【図１９】
0005460145.tif 000020