以下に添付図面を参照して、データ処理システム、データ処理装置、データ処理方法およびプログラムの実施の形態を詳細に説明する。
(第1の実施の形態)
図1は、第1の実施の形態にかかるクラウドプリントシステム1の構成の一例を示す構成図である。図1に示すように、データ処理システムであるクラウドプリントシステム1は、データ処理装置であるMFP(Multifunction Peripheral)100,200と、外部装置であるファイルサーバ300とを、有線方式または無線方式のLAN(Local Area Network)やインターネット等のネットワーク500を介して接続している。MFP100,200とファイルサーバ300との間の通信には、例えば、ネットワークファイル共有プロトコルとして広く利用されているSMB(Server Message Block)が用いられている。
また、図1に示すように、ネットワーク500は、PC(Personal Computer)、スマートフォン、タブレット端末等の端末装置400を、有線または無線によりファイルサーバ300に接続する。端末装置400は、ネットワーク500を介してファイルサーバ300に保存する文書ファイルや画像ファイルなどの処理対象ファイル(印刷データ)を送信する。処理対象ファイルは、処理対象データである。
MFP100,200は、コピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を有する装置(複合機)であって、データ処理装置の一例である。図1に示すクラウドプリントシステム1では、2台のMFP100,200が接続されているが、MFPの台数は任意であって、1台または3台以上設置されていてもよい。また、MFP100,200には、印刷アプリケーション(以下、「印刷アプリ」と称する。)50がインストールされている。印刷アプリケーション50(印刷アプリ50)がアプリケーションの一例である。
印刷アプリ50は、MFP100,200の機能を利用して、文書ファイルや画像ファイルなどの処理対象ファイルを用紙などの記録媒体に印刷(出力の一例)する機能を提供するためのソフトウェアである。印刷アプリ50は、例えば、操作部20(図4等参照)で実行されるAndroid(登録商標)上で動作するJava(登録商標)のアプリケーションである。本実施の形態では、印刷アプリ50は、MFP100,200にインストールするタイプのアプリケーションであるが、ブラウザアプリケーションを介してMFP100,200にて操作可能なWebタイプのアプリケーションでもよい。印刷アプリ50は、処理対象ファイルを出力する機能を提供するアプリケーションの一例である。なお、出力には印刷以外の例として、処理対象ファイルを添付したメール送信や、ファイル転送、FAX送信などがある。
ファイルサーバ300は、MFP100,200によって印刷可能な形式の画像や文書等の処理対象ファイルや当該処理対象ファイルに関する情報等を保存する装置であって、外部装置の一例である。ファイルサーバ300は、MFP100,200からの要求により、処理対象ファイル等を送信したり、処理対象ファイルに関する各種情報を保存したりする装置である。
本実施の形態のクラウドプリントシステム1は、例えば、MFP100,200が、ネットワーク500を介して端末装置400から送信された処理対象ファイル(文書ファイル、画像ファイル等)をファイルサーバ300からダウンロードして取得する。そして、MFP100,200において、取得した処理対象ファイルを印刷する。
次に、ファイルサーバ300のハードウェア構成について説明する。
図2は、ファイルサーバ300のハードウェア構成の一例を示すブロック図である。図2に示すように、ファイルサーバ300は、CPU(Central Processing Unit)301と、ROM(Read Only Memory)302と、RAM(Random Access Memory)303と、HDD(Hard Disk Drive)304と、ディスプレイ305と、通信I/F(インターフェース)306と、キーボード307と、マウス308と、を備えている。
CPU301は、ファイルサーバ300全体の動作を制御する。具体的には、CPU301は、RAM303をワークエリアとしてROM302またはHDD304等に格納されたプログラムを実行することで、ファイルサーバ300全体の動作を制御する。
本実施の形態のファイルサーバ300で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施の形態のファイルサーバ300で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態のファイルサーバ300で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、本実施の形態のファイルサーバ300で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
ディスプレイ305は、文字または画像等の各種情報を表示する表示部である。ディスプレイ305は、例えば、LCD(Liquid Crystal Display)、または有機EL(Electro−Luminescence)ディスプレイ等である。
通信I/F306は、ネットワーク500と接続してデータ通信をするためのインターフェースである。キーボード307は、文字、数字、各種指示の選択等を行う入力装置である。マウス308は、各種指示の選択および実行、処理対象の選択等を行うための入力装置である。
上述のCPU301、ROM302、RAM303、HDD304、ディスプレイ305、通信I/F306、キーボード307、およびマウス308は、アドレスバスおよびデータバス等のバス309によって互いに通信可能に接続されている。
次に、端末装置400のハードウェア構成について説明する。
図3は、端末装置400のハードウェア構成の一例を示すブロック図である。図3に示すように、端末装置400は、CPU401と、ROM402と、RAM403と、フラッシュメモリやHDDである記憶装置404と、ディスプレイ405と、通信I/F(インターフェース)406と、タッチパネルやキーボードである入力装置407と、近距離無線通信機408と、を備えている。
CPU401は、端末装置400全体の動作を制御する。具体的には、CPU401は、RAM403をワークエリアとしてROM402または記憶装置404等に格納されたプログラムを実行することで、端末装置400全体の動作を制御する。
本実施の形態の端末装置400で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施の形態の端末装置400で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態の端末装置400で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、本実施の形態の端末装置400で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
ディスプレイ405は、文字または画像等の各種情報を表示する表示部である。ディスプレイ405は、例えば、LCD、または有機ELディスプレイ等である。
通信I/F406は、ネットワーク500と接続してデータ通信をするためのインターフェースである。
入力装置407は、文字、数字、各種指示の選択等を行う入力装置である。
近距離無線通信機408は、近距離無線通信規格の一つであるBluetooth(登録商標)を利用して近距離無線通信を行う。
上述のCPU401、ROM402、RAM403、記憶装置404、ディスプレイ405、通信I/F406、入力装置407、近距離無線通信機408は、アドレスバスおよびデータバス等のバス409によって互いに通信可能に接続されている。
次に、MFP100,200のハードウェア構成について説明する。なお、MFP100とMFP200とは同様の構成であるため、ここではMFP100を例に挙げて説明する。
図4は、MFP100のハードウェア構成の一例を示すブロック図である。図4に示すように、MFP100は、コピー機能、スキャナ機能、ファクス機能、およびプリンタ機能などの各種の機能を実現可能な本体10と、ユーザによる操作入力を受け付ける操作部20とを備えている。
なお、「ユーザによる操作入力を受け付ける」とは、ユーザの操作に応じて入力される情報(画面の座標値を示す信号等を含む)を受け付けることを含む概念である。本体10と操作部20は、専用の通信路40を介して相互に通信可能に接続されている。通信路40は、例えばUSB(Universal Serial Bus)規格のものを用いることもできるが、有線か無線かを問わず任意の規格のものであってよい。
また、本体10は、操作部20で受け付けた操作入力に応じた動作を行うことができる。本体10は、ファイルサーバ300等の外部装置とも通信可能であり、外部装置から受信した指示に応じた動作を行うこともできる。
まず、本体10のハードウェア構成例について説明する。
図4に示すように、本体10は、CPU11と、ROM12と、RAM13と、HDD14と、通信I/F15と、接続I/F16と、エンジン部17とを備えている。CPU11と、ROM12と、RAM13と、HDD14と、通信I/F15と、接続I/F16と、エンジン部17とは、システムバス18を介して相互に接続されている。
CPU11は、本体10の動作を統括的に制御する。具体的には、CPU11は、RAM13をワークエリア(作業領域)としてROM12またはHDD14等に格納されたプログラムを実行することで、本体10全体の動作を制御し、上述したコピー機能、スキャナ機能、ファクス機能、プリンタ機能などの各種機能を実現する。
本実施の形態の本体10で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施の形態の本体10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態の本体10で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、本実施の形態の本体10で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
通信I/F15は、ネットワーク500と接続するためのインターフェースである。接続I/F16は、通信路40を介して操作部20と通信するためのインターフェースである。
エンジン部17は、コピー機能、スキャナ機能、ファクス機能、および、プリンタ機能を実現させるための、汎用的な情報処理および通信以外の処理を行うハードウェアである。例えば、原稿の画像をスキャンして読み取るスキャナ(画像読取部)、用紙等の記録媒体への印刷を行うプロッタ(画像形成部)、ファクス通信を行うファクスなどを備えている。さらに、印刷済み記録媒体を仕分けるフィニッシャや、原稿を自動給送するADF(自動原稿給送装置:Auto Document Feeder)のような特定のオプションを備えることもできる。
次に、操作部20のハードウェア構成例について説明する。
図4に示すように、操作部20は、CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27と、近距離無線通信機28とを備えている。CPU21と、ROM22と、RAM23と、フラッシュメモリ24と、通信I/F25と、接続I/F26と、操作パネル27と、近距離無線通信機28とは、システムバス29を介して相互に接続されている。
CPU21は、操作部20の動作を統括的に制御する。CPU21は、RAM23をワークエリア(作業領域)としてROM22またはフラッシュメモリ24等に格納されたプログラムや印刷アプリ50を実行することで、操作部20全体の動作を制御し、ユーザから受け付けた入力に応じた情報(画像)の表示などの後述する各種機能を実現する。
本実施の形態の操作部20で実行されるプログラムや印刷アプリ50は、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施の形態の操作部20で実行されるプログラムや印刷アプリ50を、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態の操作部20で実行されるプログラムや印刷アプリ50をインターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、本実施の形態の操作部20で実行されるプログラムや印刷アプリ50を、ROM等に予め組み込んで提供するように構成してもよい。
通信I/F25は、ネットワーク500と接続するためのインターフェースである。接続I/F26は、通信路40を介して本体10と通信するためのインターフェースである。
操作パネル27は、ユーザの操作に応じた各種の入力を受け付けるとともに、各種の情報(例えば、受け付けた操作入力に応じた情報、各種画面など)を表示する。本実施の形態では、操作パネル27は、タッチパネル機能を搭載した液晶表示装置(LCD)で構成されるが、これに限られるものではない。例えばタッチパネル機能が搭載された有機EL表示装置で構成されてもよい。さらに、これに加えてまたはこれに代えて、ハードウェアキー等の操作部やランプ等の表示部を設けることもできる。なお、操作パネル27は表示部の一例である。
近距離無線通信機28は、所定の範囲内にあるICカードに内蔵されたRFIDタグ(無線タグの一例)105(図5参照)から認証情報(ユーザIDおよびパスワード)を受信する。ここで、RFIDとは、認証情報(ユーザIDおよびパスワード)を記憶したRFIDタグ105と近距離無線通信機28との間で、電磁波または電波等を用いた近距離無線通信を行う技術であり、近距離無線通信の一例である。
近距離無線通信機28は、例えば、RFIDタグ105がパッシブタグである場合、所定の検知範囲に電波を放射して、RFIDタグ105から特定の情報を受信する装置である。また、RFIDタグ105は、近距離無線通信機28から放射された電波を受信すると、受信した電波を電力として動作し、予め記憶した特定の情報を近距離無線通信機28に送信する。
次に、MFP100,200のソフトウェア構成例について説明する。なお、MFP100とMFP200とは同様の構成であるため、ここではMFP100を例に挙げて説明する。
図5は、MFP100のソフトウェア構成の一例を示す図である。図5に示すように、MFP100の本体10は、アプリ層101と、サービス層102と、OS層103と、を含む。アプリ層101、サービス層102、およびOS層103の実体は、ROM12またはHDD14等に格納されている各種ソフトウェアである。CPU11が、これらのソフトウェア(プログラム)を実行することにより、本体10の各種の機能が提供される。
アプリ層101は、ハードウェア資源を動作させて所定の機能を提供するためのアプリケーションソフトウェア(以下、単に「アプリ」という場合がある)である。アプリとしては、例えば、コピー機能を提供するためのコピーアプリ、スキャナ機能を提供するためのスキャナアプリ、ファクス機能を提供するためのファクスアプリ、プリンタ機能を提供するためのプリンタアプリなどが挙げられる。
サービス層102は、アプリ層101とOS層103との間に介在し、アプリ層101のアプリに対し、本体10が備えるハードウェア資源を利用するためのインターフェースを提供するソフトウェアである。具体的には、サービス層102は、ハードウェア資源に対する動作要求を受け付け、動作要求の調停を行う機能を提供する。サービス層102が受け付ける動作要求としては、スキャナによる読み取りおよびプロッタによる印刷等の要求が挙げられる。なお、サービス層102によるインターフェースの機能は、本体10のアプリ層101だけではなく、操作部20のアプリ層201に対しても提供される。すなわち、操作部20のアプリ層201も、本体10のサービス層102のインターフェース機能を介して、本体10のハードウェア資源(例えば、エンジン部17)を利用した機能を実現することができる。
OS層103は、本体10が備えるハードウェアを制御する基本機能を提供するための基本ソフトウェア(オペレーティングシステム)である。サービス層102は、各種アプリからのハードウェア資源の利用要求を、OS層103が解釈可能なコマンドに変換してOS層103に渡す。そして、OS層103によりコマンドが実行されることにより、ハードウェア資源は、アプリの要求に従った動作を行う。
図5に示すように、MFP100の操作部20は、アプリ層201と、サービス層202と、OS層203と、を含む。操作部20が含むアプリ層201、サービス層202、およびOS層203も、階層構造については本体10側と同様である。ただし、アプリ層201のアプリにより提供される機能や、サービス層202が受け付け可能な動作要求の種類は、本体10側とは異なる。
アプリ層201のアプリは、操作部20が備えるハードウェア資源を動作させて所定の機能を提供するためのソフトウェアであってもよいが、主として本体10が備える機能に関する操作および表示を行うためのUI(User Interface)の機能やブラウザの機能を提供する。また、アプリ層201のアプリは、操作部20が備える近距離無線通信機28を用いた認証機能の一部を提供する。
なお、本実施の形態では、機能の独立性を保つために、本体10側のOS層103のソフトウェアと、操作部20側のOS層203のソフトウェアとが互いに異なる。つまり、本体10および操作部20は、別々のオペレーティングシステムにより互いに独立して動作する。例えば、本体10側のOS層103のソフトウェアとしてLinux(登録商標)を用い、操作部20側のOS層203のソフトウェアとしてAndroid(登録商標)を用いることも可能である。
以上のように、本実施の形態のMFP100において、本体10と操作部20は別々のオペレーティングシステムで動作するため、本体10と操作部20との間の通信は、共通の装置内のプロセス間通信ではなく、異なる装置間の通信として行われる。操作部20が受け付けた情報(ユーザからの指示内容)を本体10へ伝達する動作(コマンド通信)、および、本体10が操作部20へ情報を送信する動作等がこれに該当する。
ここでは、操作部20が本体10へコマンド通信を行うことにより、本体10の機能を使用することができる。また、本体10から操作部20に送信する情報には、例えば、本体10における動作の実行状況、および本体10側で設定された内容等が含まれる。
次に、ファイルサーバ300の機能構成について説明する。
図6は、クラウドプリントシステム1の機能構成を示す機能ブロック図である。図6に示すように、ファイルサーバ300は、CPU301がHDD304に記憶されているプログラムに従って動作することで、印刷ジョブ蓄積部311と、印刷ジョブ取得部312と、印刷ジョブ一覧送信部313と、認証部314と、印刷ジョブ送信部315とを実現する。
印刷ジョブ蓄積部311は、ROM302やHDD304を制御し、端末装置400から受信した印刷ジョブを蓄積する。本実施の形態では、印刷ジョブ蓄積部311は、画像や文書等の処理対象ファイルおよび当該処理対象ファイルを識別するファイル識別情報などを印刷ジョブとして蓄積する。処理対象ファイルは、画像データやドキュメントなどのファイルである。
印刷ジョブ蓄積部311は、処理対象ファイルを、処理対象ファイルを識別するファイル識別情報に関連付けて蓄積する。印刷ジョブ蓄積部311は、処理対象ファイル等の保存や更新、削除を行う。なお、処理対象ファイルには、後述するように、暗号化処理を施されている処理対象ファイルが含まれている。
また、印刷ジョブ蓄積部311は、処理対象ファイルを識別するファイル識別情報に関連付けて付加的な書誌情報(メタデータ)を蓄積する。ここで、図7は印刷ジョブ蓄積部311が蓄積する印刷ジョブテーブルT1のデータ構成の一例を示す図である。図7を参照しながら、処理対象ファイルを識別するファイル識別情報に関連付けて蓄積される付加的な書誌情報(メタデータ)について説明する。
図7に示すように、印刷ジョブテーブルT1には、例えば、「ファイル識別情報」、「企業ID」、「ユーザID」、「暗号鍵」、「暗号化フラグ」、「ファイル名」、「作成日」、「印刷部数」、「片面/両面」、「用紙サイズ」等の情報が互いに関連付けられたレコードとして含まれている。
「ファイル識別情報」は、処理対象ファイルを識別する固有の識別情報である。「企業ID」は、利用者毎に固有の識別情報である。「ユーザID」は、利用者毎に固有の識別情報である。また、「ユーザID」は、例えば、社員ID等のような利用者の識別情報であってもよい。
「暗号鍵」は、処理対象ファイルに対して暗号化処理を施した際に用いた暗号鍵である。「暗号化フラグ」は、処理対象ファイルに対する暗号化処理の有無を示すものである。したがって、「暗号化フラグ」において暗号化処理について「あり」の場合、「暗号鍵」は必須である。
「ファイル名」は、処理対象ファイルの固有のファイル名である。「作成日」は、処理対象ファイルの作成日である。「印刷部数」は、処理対象ファイルについて印刷する部数である。「片面/両面」は、印刷態様を片面印刷とするか、両面印刷とするかを示す。「用紙サイズ」は、処理対象ファイルについて印刷する部数である。
なお、印刷ジョブテーブルT1で管理される付加的な書誌情報(メタデータ)は、処理対象ファイルが暗号化処理を施されている場合であっても、暗号化処理を施されていない。
印刷ジョブ取得部312は、ネットワーク500を介して接続された端末装置400から印刷ジョブを受信し、受信した当該印刷ジョブを印刷ジョブ蓄積部311に送信する。
印刷ジョブ一覧送信部313は、ネットワーク500を介して接続されたMFP100,200から、処理対象ファイルのファイル名の一覧の取得要求をユーザIDとともに受信した場合、印刷ジョブ蓄積部311を参照し、受信したユーザIDに関連する処理対象ファイルのファイル名の一覧をMFP100,200に送信する。
また、印刷ジョブ送信部315は、ネットワーク500を介して接続されたMFP100,200から、印刷ジョブの取得要求を受信した場合、印刷ジョブ蓄積部311を参照し、要求された印刷ジョブをMFP100,200に送信する。
認証部314は、ROM302やHDD304を制御し、予め登録されたファイルサーバ300の利用者を示す情報を含む利用者情報Aを管理する。
ここで、図8は利用者情報Aのデータ構成の一例を示す図である。図8を参照しながら、認証部314に管理された利用者情報Aのデータ構成について説明する。
図8に示すように、利用者情報Aには、例えば、「ユーザID」、「名前」、「パスワード」、等の情報が互いに関連付けられたレコードとして含まれている。
「ユーザID」は、利用者のデータ毎に固有の識別番号等である。また、「ユーザID」は、例えば、社員ID等のような利用者の識別情報であってもよい。
「名前」は、利用者の名前である。「パスワード」は、利用者がファイルサーバ300にログインするための認証情報の一例である。
図8に示す利用者情報Aには、例えば、データ種別が「データ2」である場合、利用者番号が「101002」、名前が「BBBB」、パスワードが「abcdef」であり、各情報が対応付けられて記憶されている。
なお、図8に示す利用者情報Aは、いずれもレコードの情報を集約したテーブル形式の情報としているが、これに限定されるものではなく、各フィールドの値を互いに関連付けて管理することができれば、どのような形式の情報であってもよい。例えば、図8に示す利用者情報Aを構成するレコードを、1利用者分に関するテキストファイル等のファイルとして記憶されているものとしてもよい。
また、認証部314は、上述したような端末装置400からの印刷ジョブの受信に応じた情報の登録や、MFP100,200からの処理対象ファイルのファイル名の一覧の取得要求の受信に応じた情報の送信を行う際には、ユーザが権限を有するか否かを判断する認証処理を行う。このため、認証部314は、端末装置400からの印刷ジョブの受信を行う場合、まずは、端末装置400からユーザによって入力された認証情報を受信する。また、認証部314は、MFP100,200との間で情報の要求および送信を行う場合、まずは、MFP100,200からユーザによって入力された認証情報を受信する。認証情報とは、ユーザを識別可能な情報であって、例えば、ユーザIDおよびパスワードなどである。
そして、認証部314は、受信した認証情報を用いて認証処理を行う。認証部314は、認証成功した場合に、端末装置400からの印刷ジョブの受信に応じた情報の登録やMFP100,200から要求された情報の送信を行う。
本実施の形態の認証部314は、例えば、MFP100,200から認証情報を受信すると、その受信した認証情報と、利用者情報Aに登録されている認証情報(ユーザIDおよびパスワード)とを比較する。そして、認証部314は、受信した認証情報と利用者情報Aに登録されている認証情報とが一致する場合、ユーザは権限を有すると判断する。一方、認証部314は、受信した認証情報と利用者情報Aに登録されている認証情報とが一致しない場合、ユーザは権限を有していないと判断する。そして、認証部314は、その判断結果を端末装置400やMFP100,200に送信する。
次に、端末装置400の機能構成について説明する。
図6に示すように、端末装置400は、CPU401が記憶装置404に記憶されているプログラムに従って動作することで、印刷設定部411と、ファイルアップロード部412と、鍵生成部413と、暗号化処理部414と、ログイン処理部415と、を実現する。
印刷設定部411は、図3に示すディスプレイ405および入力装置407を制御し、利用者の操作に応じた各種の印刷設定を受け付ける設定部である。
ファイルアップロード部412は、処理対象ファイル、当該処理対象ファイルを識別するファイル識別情報、当該ファイル識別情報に関連付けて蓄積される付加的な書誌情報(メタデータ)を、ファイルサーバ300に対してアップロードする。
鍵生成部413は、処理対象ファイルに対して暗号化処理を施す場合に用いる暗号鍵を生成する。
暗号化処理部414は、鍵生成部413で生成した暗号鍵を用いて処理対象ファイルに対して暗号化処理を施す。
ログイン処理部415は、ファイルサーバ300に対して識別情報(ユーザIDおよびパスワード)を送信する。
次に、MFP100の機能構成について説明する。なお、MFP200もMFP100と同様の構成となっているため、MFP200についての説明は省略する。
図6に示すように、MFP100の本体10は、CPU11がHDD14に記憶されているプログラムに従って動作することで、画像形成部111と、実行指示解析部112と、を実現する。
画像形成部111は、図4に示すエンジン部17を制御し、MFP100が備える各種の画像形成機能(例えば、プリンタ機能、コピー機能、スキャナ機能、およびファクス機能等)を実行する処理実行部である。
実行指示解析部112は、操作部20から送信された印刷実行指示を解析し、画像形成部111を制御する機能部である。
また、本体10の画像形成部111の一部または全部は、ソフトウェアであるプログラムではなく、FPGA(Field-Programmable Gate Array)またはASIC(Application Specific Integrated Circuit)等のハードウェア回路によって実現されてもよい。
図6に示すように、MFP100の操作部20は、CPU21がフラッシュメモリ24に記憶されているプログラムに従って動作することで、入力部211と、表示制御部212と、無線通信部213と、情報要求部214と、印刷ジョブ取得部215と、復号化処理部216と、印刷実行指示部217と、ログイン処理部218と、を実現する。
入力部211は、図4に示す操作パネル27を制御し、利用者の操作に応じた各種の入力を受け付ける機能部である。
表示制御部212は、図4に示す操作パネル27を制御し、各種の情報(例えば、入力部211により受け付けた操作に応じた情報、MFP100の動作状況を示す情報、および設定情報等)を表示する機能部である。
無線通信部213は、図4に示す近距離無線通信機28を制御し、近距離無線通信機28を用いた近距離無線通信により、所定の範囲内のRFIDタグ(無線タグの一例)から識別情報(ユーザIDおよびパスワード)を受信する機能部である。
情報要求部214は、要求部として機能するものであって、無線通信部213により受信した識別情報(ユーザIDおよびパスワード)を用いた認証により権限ありとされたことを条件として、ファイルサーバ300に蓄積されている印刷ジョブの一覧の送信を要求する。
印刷ジョブ取得部215は、受信部として機能するものであって、入力部211および表示制御部212の機能を用いて選択された所望の処理対象ファイルをファイルサーバ300に要求して受信する。
復号化処理部216は、印刷ジョブ取得部215により受信した処理対象ファイルの書誌情報(メタデータ)に含まれる暗号鍵を用いて処理対象ファイルに対して復号化処理を施す。
印刷実行指示部217は、本体10に対して印刷実行指示を送信する機能部である。
ログイン処理部218は、ファイルサーバ300に対して識別情報(ユーザIDおよびパスワード)を送信する。
また、操作部20の入力部211、表示制御部212および無線通信部213の一部または全部は、ソフトウェアであるプログラムではなく、FPGAまたはASIC等のハードウェア回路によって実現されてもよい。
また、MFP100の本体10および操作部20がそれぞれ含む各機能部は、図6に示すような構成で本体10または操作部20に含まれることに限定されない。
次に、クラウドプリントシステム1における処理の流れについて説明する。図9は、クラウドプリントシステム1における処理の一例を示すフローチャートである。
(ファイルアップロード処理の流れ)
まず、図9を参照しながら、端末装置400によるファイルサーバ300に対するファイルアップロード処理の流れについて説明する。
まず、端末装置400のログイン処理部415は、ファイルサーバ300に対してログイン処理を実行する(ステップS1)。具体的には、端末装置400は、ファイルサーバ300に対して識別情報(ユーザIDおよびパスワード)を送信する。
ファイルサーバ300の認証部314は、端末装置400から識別情報(ユーザIDおよびパスワード)を受信すると(ステップS11)、認証処理を実行する(ステップS12)。具体的には、ファイルサーバ300は、受信した識別情報(ユーザIDおよびパスワード)と、予め登録された利用者情報Aとに基づいて、端末装置400を認証する。
ファイルサーバ300の認証部314は、受信した識別情報(ユーザIDおよびパスワード)が利用者情報Aに含まれる場合、端末装置400の認証を許可する。一方、ファイルサーバ300は、受信した識別情報(ユーザIDおよびパスワード)が利用者情報Aに含まれない場合、端末装置400の認証を許可しない。
端末装置400のログイン処理部415は、ファイルサーバ300による認証の結果、端末装置400の認証を許可する場合(認証結果が「OK」である場合)(ステップS2:Yes)、ステップS3へ移行する。一方、端末装置400のログイン処理部415は、ファイルサーバ300による認証の結果、端末装置400の認証を許可しない場合(認証結果が「OK」でない場合)(ステップS2:No)、ログイン処理を終了する。図9に示すログイン処理が一度終了した場合、ログイン処理は最初から行われる。
次に、端末装置400の印刷設定部411は、印刷設定処理を実行する(ステップS3)。具体的には、端末装置400の印刷設定部411は、ディスプレイ405および入力装置407を制御し、所定の処理対象ファイルに対する各種の印刷設定をユーザに実行させる印刷設定画面P1(図10参照)をディスプレイ405に表示し、入力装置407を介した設定を受け付ける。
ここで、図10は印刷設定画面P1の一例を示す正面図である。図10に示すように、印刷設定画面P1は、カラー/白黒、部数、用紙サイズ、原稿方向、片面/両面、集約設定等の各種を受け付ける。また、印刷設定画面P1は、文字コードの自動判別、ユーザコードの入力などの各種の印刷設定を受け付ける。加えて、印刷設定画面P1は、暗号化処理のあり/なしの指定を受け付ける。
端末装置400の印刷設定部411は、暗号化処理について「あり」が指定された場合、端末装置400の機種IDに応じて予め定められた暗号化方式を選択して表示する。ここで、図11は端末装置400の種別に対応した暗号化方式の一例を示す図である。端末装置400の印刷設定部411は、図11に示すテーブルT2を参照する。図11に示すように、テーブルT2は、端末装置400の機種IDに対応付けて、処理可能な1または複数の暗号化方式を保持する。
端末装置400の印刷設定部411は、当該端末装置400の機種IDに対応する暗号化方式が複数存在する場合には、端末装置400により提供可能なサービスの判断や端末装置400の記憶可能容量(キャパシティ)を参照することで、最適な暗号化方式を選択する。具体的には、端末装置400の印刷設定部411は、予め設定されている優先種別に応じて最適な暗号化方式を選択する。優先種別は、速度優先、強度優先、個別設定である。速度優先は、暗号化処理の処理速度が速い暗号化方式を優先する。強度優先は、暗号化処理の暗号化強度が高い暗号化方式を優先する。個別設定は、ユーザ等が設定した優先度が高い暗号化方式を優先する。
端末装置400の印刷設定部411は、例えば機種IDが「AAAAAAAA」の場合の暗号化方式である「方式1」「方式2」のうち、強度優先で暗号化方式を選択する。
このように、端末装置400から機種IDを取得して、端末装置400の機種毎に最適な暗号化方式を決定することにより、最適な暗号方式を利用することができる。
なお、図11に示すテーブルT2をファイルサーバ300が保持するようにして、端末装置400の印刷設定部411は、ファイルサーバ300が保持するテーブルT2を参照するようにしても良い。これにより、端末装置400の印刷設定部411がテーブルT2を保持しなくとも、最適な暗号方式を決定することができる。
なお、端末装置400の機種IDに対応する暗号化方式が存在しない場合、端末装置400の印刷設定部411は、エラー通知を行う。例えば、端末装置400の機種IDがソフトウェアのバージョン毎に決められる場合、端末装置400の印刷設定部411は、図12に示すようなエラー通知をディスプレイ405に表示する。図12に示すエラー通知は、端末装置400のソフトウェアのバージョンアップを促すものである。これにより、印刷失敗を防止することができる。
なお、暗号化処理について「あり」が指定された場合、端末装置400の印刷設定部411は、図13に示すような暗号化要否確認画面P2をディスプレイ405にポップアップ表示する。図13に示すように、暗号化要否確認画面P2は、処理対象ファイルについて暗号化してしまうと「文字コードの自動判別」等は選択不可となるため、「暗号化しますか? 暗号化する場合、利用できなくなるサービスがあります」というメッセージMを表示して注意喚起を行う。その上で、暗号化要否確認画面P2に設けられた「いいえボタン」B2が操作された場合、暗号化処理について「なし」を指定したことになる。一方、暗号化要否確認画面P2に設けられた「はいボタン」B3が操作された場合、暗号化処理について「あり」を指定したことになる。
また、印刷設定画面P1は、後述する処理対象ファイルのアップロード処理の開始を宣言するための「アップロード開始ボタン」B1を有している。
次に、ステップS4において暗号化処理について「あり」を指定した場合(ステップS4:Yes)、端末装置400の鍵生成部413が暗号鍵を生成するとともに、暗号化処理部414が当該暗号鍵を用いた暗号化処理を実行し(ステップS5)、ステップS6に進む。なお、端末装置400の暗号化処理部414は、処理対象ファイルにのみ暗号化処理を施し、付加的な書誌情報(メタデータ)である印刷設定(カラー/白黒、部数、用紙サイズ、原稿方向、片面/両面、集約設定等)に対しては暗号化処理を施さない。
一方、端末装置400は、ステップS3において暗号化処理について「なし」を指定した場合(ステップS4:No)、そのままステップS6に進む。
その後、端末装置400のファイルアップロード部412は、印刷設定画面P1の「アップロード開始ボタン」B1が操作されると、識別情報、処理対象ファイル、および当該処理対象ファイルを識別するファイル識別情報を含む書誌情報(メタデータ)をファイルサーバ300に対してアップロードする(ステップS6)。すなわち、暗号化処理について「あり」を指定した場合には(ステップS4:Yes)、暗号化処理が施された処理対象ファイルがアップロードされ、暗号化処理について「なし」を指定した場合には(ステップS4:No)、暗号化処理が施されていない処理対象ファイルがアップロードされる。
ファイルサーバ300の印刷ジョブ取得部312は、アップロードされた識別情報、処理対象ファイルおよび当該処理対象ファイルを識別するファイル識別情報を含む書誌情報(メタデータ)を印刷ジョブとして取得する(ステップS13)。そして、ファイルサーバ300の印刷ジョブ蓄積部311が、取得した印刷ジョブを印刷ジョブテーブルT1に登録する(ステップS14)。
(印刷処理の流れ)
次に、図9を参照しながら、MFP100によるファイルサーバ300に対する処理対象ファイルの印刷処理の流れについて説明する。なお、本実施の形態においては、ユーザが所持するICカードをMFP100の操作部20にかざすことにより、ICカードのRFIDタグ105から識別情報(ユーザIDおよびパスワード)を受信するものとして説明する。
なお、以下に説明する処理においては、MFP100の操作部20の印刷アプリ50が起動していることを前提とする。
次に、MFP100の操作部20の無線通信部213は、ユーザが所持するICカードがかざされると、近距離無線通信機28を介して所定の範囲内のRFIDタグ105から識別情報(ユーザIDおよびパスワード)を受信する(ステップS21)。
次いで、操作部20のログイン処理部218は、ファイルサーバ300に対してログイン処理を実行する(ステップS22)。具体的には、操作部20のログイン処理部218は、RFIDタグ105から受信した識別情報(ユーザIDおよびパスワード)をファイルサーバ300に対して送信する。
ファイルサーバ300の認証部314は、操作部20から識別情報(ユーザIDおよびパスワード)を受信すると(ステップS15)、認証処理を実行する(ステップS16)。具体的には、ファイルサーバ300は、受信した識別情報(ユーザIDおよびパスワード)と、予め登録された利用者情報Aとに基づいて、MFP100の操作部20を認証する。
ファイルサーバ300の認証部314は、受信した識別情報(ユーザIDおよびパスワード)が利用者情報Aに含まれる場合、MFP100の操作部20の認証を許可する。一方、ファイルサーバ300は、受信した識別情報(ユーザIDおよびパスワード)が利用者情報Aに含まれない場合、MFP100の操作部20の認証を許可しない。
操作部20のログイン処理部218は、ファイルサーバ300による認証の結果、MFP100の操作部20の認証を許可する場合(認証結果が「OK」である場合)(ステップS23:Yes)、ステップS24へ移行する。一方、操作部20のログイン処理部218は、ファイルサーバ300による認証の結果、MFP100の操作部20の認証を許可しない場合(認証結果が「OK」でない場合)(ステップS23:No)、ログイン処理を終了する。図9に示すログイン処理が一度終了した場合、ログイン処理は最初から行われる。
認証を許可する場合、MFP100の操作部20の情報要求部214は、ファイルサーバ300に対して印刷ジョブの一覧の取得要求を送信する(ステップS24)。この時、印刷ジョブの一覧の取得要求に識別情報(ユーザIDおよびパスワード)を含める。
ファイルサーバ300の印刷ジョブ一覧送信部313は、操作部20からの印刷ジョブの一覧の取得要求を受信すると、識別情報に関連する印刷ジョブのリストを、取得要求を送信したMFP100の操作部20に対して送信する(ステップS17)。
その後、MFP100の操作部20の表示制御部212は、受信した印刷ジョブのリストを用いて、ジョブ選択画面P11(図14参照)を操作パネル27に表示する(ステップS25)。
ここで、図14はジョブ選択画面P11の一例を示す正面図である。図14に示すように、ジョブ選択画面P11は、受信した印刷ジョブのリストを表示する。ジョブ選択画面P11は、印刷ジョブ毎に、ファイル名、作成日、ページ数、印刷部数、片面/両面を表示する。また、ジョブ選択画面P11は、印刷ジョブ毎に、印刷指示を受け付ける「印刷可ボタン」B11を設けている。ジョブ選択画面P11は、ユーザにより印刷ジョブのリストから印刷を所望する印刷ジョブの指定を受け付ける。印刷ジョブの指定は、「印刷可ボタン」B11の操作により印刷ジョブを指定するものであっても良いし、印刷設定画面P1に設けられた「全選択ボタン」B12の操作により全ての印刷ジョブを指定するものであっても良い。
ジョブ選択画面P11から印刷ジョブが選択されてジョブ選択画面P11に設けられた「印刷」B13が操作されると、MFP100の操作部20の印刷ジョブ取得部215は、ジョブ選択画面P11で選択された印刷ジョブの取得要求をファイルサーバ300に送信する(ステップS26)。
ファイルサーバ300の印刷ジョブ送信部315は、MFP100の操作部20から取得要求された印刷ジョブを操作部20に送信する(ステップS18)。
MFP100の操作部20の復号化処理部216は、所望の印刷ジョブを受信すると、暗号化処理が施された処理対象ファイルを、当該処理対象ファイルの書誌情報(メタデータ)に含まれる暗号鍵を用いて復号化処理して元の処理対象ファイルに戻し(ステップS27)、ステップS28に進む。
なお、MFP100の操作部20の復号化処理部216は、処理対象ファイルが暗号化されていない場合、復号化処理を実行せずに、次のステップS28に進む。
次いで、MFP100の操作部20の印刷実行指示部217は、印刷ジョブの印刷実行指示を本体10に送信する(ステップS28)。
MFP100の本体10の実行指示解析部112は、MFP100の操作部20(印刷アプリ50)からの印刷実行指示に基づいて画像形成部111を制御し、操作部20と非同期で、指定された印刷ジョブの印刷を実行する(ステップS31)。
このように本実施の形態によれば、たとえ処理対象ファイルが第三者の手に渡っても、情報漏えいのリスクを低減することができる、という効果を奏する。
なお、本実施の形態においては、操作部20は、近距離無線通信機28によりICカードに内蔵されたRFIDタグ105から認証情報(ユーザIDおよびパスワード)を受信するようにしたが、これに限るものではない。例えば、端末装置400に認証情報(ユーザIDおよびパスワード)を記憶したRFIDタグ105を内蔵しておき、操作部20は、近距離無線通信機28によりRFIDタグ105から認証情報(ユーザIDおよびパスワード)を受信するようにしても良い。
また、近距離無線通信機28は、RFIDに限るものではなく、近距離無線通信規格の一つであるBluetooth(登録商標)であっても良い。この場合、例えば、端末装置400に認証情報(ユーザIDおよびパスワード)を記憶しておき、操作部20は、Bluetoothにより端末装置400の近距離無線通信機408から認証情報(ユーザIDおよびパスワード)を受信するようにしても良い。
(第2の実施の形態)
次に、第2の実施の形態について説明する。なお、前述した第1の実施の形態と同じ部分は同じ符号で示し説明も省略する。
本実施の形態においては、端末装置400毎に固有の識別情報である鍵認証コードを暗号鍵に対応付けて発行するようにしたものである。
ここで、図15は第2の実施の形態にかかるクラウドプリントシステム1の機能構成を示す機能ブロック図である。図15に示すように、端末装置400は、CPU401が記憶装置404に記憶されているプログラムに従って動作することで、鍵認証コード発行部416を実現する。
鍵認証コード発行部416は、鍵生成部413により暗号鍵を生成する際に、端末装置400の機器IDを関連付けたパスワードである鍵認証コードを発行する。なお、鍵認証コードは、一定時間ごとに自動的に変更され、しかも、一度しか使うことが出来ないワンタイムパスワードが望ましい。
なお、鍵認証コード発行部416は、鍵認証コードを自動的に発行するものであっても良いし、暗号化処理について「あり」を指定した場合、鍵認証コード入力画面をポップアップ表示して所望のコードを入力させるものであっても良い。
そして、端末装置400のファイルアップロード部412は、書誌情報(メタデータ)に鍵認証コードを含めてファイルサーバ300に対してアップロードする。図16に示すように、印刷ジョブテーブルT1には、例えば、「鍵認証コード」がレコードとして含まれている。「鍵認証コード」は、上述したように、端末装置400毎に固有の識別情報である。
次に、クラウドプリントシステム1における処理の流れについて説明する。図17は、クラウドプリントシステム1における処理の一例を示すフローチャートである。
図17に示すように、端末装置400のログイン処理部415は、MFP100の操作部20に対してログイン処理を実行する(ステップS7)。具体的には、端末装置400は、MFP100の操作部20に対して識別情報(ユーザIDおよびパスワード)および鍵認証コードを近距離無線通信機408を介して送信する。
MFP100の操作部20の無線通信部213は、近距離無線通信機28を介した近距離無線通信によってユーザが所持する端末装置400から識別情報(ユーザIDおよびパスワード)および鍵認証コードを受信する(ステップS21)。
次いで、操作部20のログイン処理部218は、ファイルサーバ300に対してログイン処理を実行する(ステップS22)。具体的には、操作部20のログイン処理部218は、RFIDタグ105から受信した識別情報(ユーザIDおよびパスワード)をファイルサーバ300に対して送信する。
ファイルサーバ300の認証部314は、操作部20から識別情報(ユーザIDおよびパスワード)を受信すると(ステップS15)、認証処理を実行する(ステップS16)。具体的には、ファイルサーバ300は、受信した識別情報(ユーザIDおよびパスワード)と、予め登録された利用者情報Aとに基づいて、MFP100の操作部20を認証する。
操作部20のログイン処理部218は、ファイルサーバ300による認証の結果、MFP100の操作部20の認証を許可する場合(認証結果が「OK」である場合)(ステップS23:Yes)、ステップS24へ移行する。
認証を許可する場合、MFP100の操作部20の情報要求部214は、ファイルサーバ300に対して印刷ジョブの一覧の取得要求を送信する(ステップS24)。この時、印刷ジョブの一覧の取得要求に識別情報(ユーザIDおよびパスワード)および鍵認証コードを含める。
ファイルサーバ300の印刷ジョブ一覧送信部313は、操作部20からの印刷ジョブの一覧の取得要求を受信すると、識別情報(ユーザIDおよびパスワード)および鍵認証コードに関連する印刷ジョブのリストを、取得要求を送信したMFP100の操作部20に対して送信する(ステップS17)。
このように本実施の形態によれば、操作部20を介した端末装置400からの印刷ジョブの一覧の取得要求に際して、暗号鍵を生成する際に発行した鍵認証コードを含めることにより、暗号鍵を生成した端末装置400に限定することができるので、セキュリティ強度を向上させることができる。
(第3の実施の形態)
次に、第3の実施の形態について説明する。なお、前述した第1の実施の形態または第2の実施の形態と同じ部分は同じ符号で示し説明も省略する。
第1の実施の形態では、MFP100,200の操作部20において復号化処理を実行するようにしたが、本実施の形態においては、MFP100,200の本体10において復号化処理を実行するようにしたものである。
ここで、図18は第3の実施の形態にかかるクラウドプリントシステム1の機能構成を示す機能ブロック図である。図18に示すように、MFP100の本体10は、CPU11がHDD14に記憶されているプログラムに従って動作することで、復号化処理部113を実現する。
復号化処理部113は、受信した処理対象ファイルの書誌情報(メタデータ)に含まれる暗号鍵を用いて処理対象ファイルに対して復号化処理を施す。
次に、クラウドプリントシステム1における処理の流れについて説明する。図19は、クラウドプリントシステム1における処理の一例を示すフローチャートである。
図19に示すように、MFP100の操作部20の印刷実行指示部217は、所望の印刷ジョブを受信すると(ステップS29)、印刷ジョブの印刷実行指示を本体10に送信する(ステップS28)。
MFP100の本体10の復号化処理部113は、所望の印刷ジョブを受信すると、暗号化処理が施された処理対象ファイルを、当該処理対象ファイルの書誌情報(メタデータ)に含まれる暗号鍵を用いて復号化処理して元の処理対象ファイルに戻し(ステップS32)、ステップS31に進む。
なお、MFP100の本体10の復号化処理部113は、処理対象ファイルが暗号化されていない場合、復号化処理を実行せずに、次のステップS31に進む。
MFP100の本体10の実行指示解析部112は、MFP100の操作部20(印刷アプリ50)からの印刷実行指示に基づいて画像形成部111を制御し、操作部20と非同期で、指定された印刷ジョブの印刷を実行する(ステップS31)。
このように本実施の形態によれば、MFP100の本体10側において、復号化処理を可能にしている。
なお、各実施の形態においては、処理対象データとして文書ファイルや画像ファイルなどの印刷データを例にして説明したが、これに限るものではなく、例えば音楽データ等も処理対象データとして適用可能である。