以下、本発明につき、実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。図1は、本実施形態の画像形成装置100の機能ブロック図である。画像形成装置100は、ADF(Auto Document Feeder)を備えるスキャナ装置112から画像データを取得し、操作パネルおよび入力キー114などを含む入力要素から操作のためのデータを取得している。スキャナ装置112が取得した画像データは、スキャナI/F116を介して画像処理部122へと送られている。また、画像形成装置100は、システム・コントローラとして機能するCPU124を備えている。CPU124は、画像形成装置100の各アプリケーション処理部の実行を、メソッド呼出しなどを使用して管理する。
画像形成装置100は、ADFが取得した画像などを処理したり、アプリケーション・ソフトウェアの実行空間を与えるためのRAM126と、処理を行うためのデータ、プログラム、または初期設定条件などを格納したROM128とを備える。RAM126、ROM128は、CPU124による画像処理装置の初期設定を可能とし、またCPU124の処理に対応して機能提供を可能としている。
本発明の画像形成装置100が使用するCPUとしては、より具体的には、例えば、PENTIUM(登録商標)〜PENTIUM(登録商標)IV、PENTIUM(登録商標)互換CPU、POWER PC(登録商標)、MIPSなどを挙げることができる。
また、使用するオペレーティング・システム(OS)としては、MacOS(商標)、Windows(登録商標)、Windows(登録商標)200X Server、UNIX(登録商標)、LINUX(登録商標)またはそれ以外の適切なOSを挙げることができる。さらに、画像形成装置100は、上述したOS上で動作する、C、C++、Visual C++、Java(登録商標)などのオブジェクト指向のプログラミング言語により記述されたアプリケーション・プログラムを格納し、実行する。
画像処理部122は、スキャナ装置112により取得された画像データに対してフィルタリング処理、文字画像抽出処理、網点画像抽出処理などを実行し、その結果生成される各種の属性値に基づき画像処理を行い、プリント指令をエンジン・コントローラ132へと送出する。エンジン・コントローラ132は、画像形成装置100の仕様に応じて、USB(Universal Serial BUS)、PCI(Peripheral Component Interconnect)、またはIEEE1284などシリアルバスまたはパラレルバスを介して、感光体ドラム、現像装置、定着装置などを含むプリンタ142に対して作像を行わせている。
さらに、画像形成装置100は、ファクシミリ・コントローラ130またはネットワーク・インタフェース・カード(NIC)134、ATA、シリアルATA、ATAPI、ATA−4などの規格を有する記憶装置インタフェース136などを備えている。
ファクシミリ・コントローラ130は、取得した画像データをG3、G4などのファクシミリ・フォーマットへと変換させ、モデムなどのファクシミリ送受信装置138またはDSU/TA140を介してT.4、T.6、T.90などの通信プロトコルの下で、公衆電話網またはISDNなどを経由して、アナログまたはディジタル回線を介してファクシミリ通信を行っている。
また、NIC134は、100BASE−TXなどのイーサネット(登録商標)ケーブルを介してローカルエリア・ネットワーク(LAN)、ワイドエリア・ネットワーク(WAN)、またはインターネット(INET)などのネットワーク144へと接続されている。ネットワーク144により、画像形成装置100は、リモート・プリンタとして機能し、またSMTP、POPなどのプロトコルの下で電子メールなどのサービスを提供する。なお、電子メールなどのサービスは、NIC134を経由せず、モデムなどを介してPPP(Point-to-Point Protocol)のもと、ダイアルアップ接続で都度接続先を指定して送受信することもできる。
また、本発明の画像形成装置100は、ネットワーク144などの公共ネットワークに接続された、共用ストレージ機能または資源サーバ機能を提供する資源サーバ148および共用ストレージ150に接続されていて、種々のトランザクションを行う。画像形成装置100は、また、Apacheなどのサーバプログラムを実行できる機能を実装しており、RFC959などの規格によるFTP(File Transfer Protocol)プロトコル、RFC1945、RFC2616などの規格によるHTTP(Hypertext Transfer Protocol)を使用するファイル転送を可能としている。
さらに、画像形成措置100は、Java(登録商標)Scriptなどのスクリプト言語、VisualBasic、Perlなどのインタプリタ言語で記述されたプログラムを実行する機能も備えていて、操作履歴をマクロとしてコマンドライン単位での実行を可能としている。
記憶装置インタフェース136は、ハードディスクドライブ、SDカード、USBメモリといったメモリスティックなどの外部記憶装置を接続させ、スキャナ装置112により取得されたオリジナルの画像データなどをPDF(Portable Data Format)などのファイル形式に変換し、SCSI、USB、PCIなどのバスを介してフレキシブル・ディスク、CD−ROM、DVD、MOなどの記憶装置146に格納する。
図2は、画像形成装置100のソフトウェア構成200の実施形態を示す。画像形成装置100は、ユーザI/Fなどに実装される入力変換処理モジュール202を備えている。入力変換処理モジュール202は、タッチパネル、入力キー、スタートボタンなどとして操作パネル上に表示されるジョブ開始ボタンを介してユーザが入力したジョブ開始操作に対応する入力信号を、画像形成装置100が実行可能な装置固有コードにエンコードする。また、画像形成装置100が、VGAなどをサポートするCRT、LCD、PDなどのディスプレイ装置を含み、InternetExplorer(登録商標)、NetscapeNavigator(登録商標)、Mozilla、Operaなどのブラウザソフトウェアを実装する場合には、ユーザ入力は、マウスなどのポインティング手段によりディスプレイ上に表示された、ソフトウェアボタンを介して行われてもよい。
入力変換処理モジュール202によりエンコードされたジョブ種類指定および入力データは、バッファメモリおよびコントローラなどを含んで構成されるバッファリングモジュール204により一旦バッファリングされる。バッファリングモジュール204に格納された各データは、インタプリタモジュール206により読み出される。インタプリタモジュール206は、エンコードされた各データを読み込み、変換手段216を参照し、変換手段216に登録された値と、読み込んだ値とを比較し、当該比較が一致したレコードに登録されたテキストコード、変数名、変数の型宣言などを取得して、エンコードされたデータを逐次的にテキストコードに変換する。なお、エンコードされた値がアラビア数字に対応する場合には、対応するアラビア数字のテキストコードを取得してその他のテキストコードに連結して操作履歴を作成する。
エンコードされた各テキストコードは、テキストパーザ、HTMLパーザ、XMLパーザ、およびテキストエディタ、HTMLエディタ、またはXMLエディタなどを含んで構成される共用操作履歴管理モジュール208に渡され、共用操作履歴として作成され、ストレージ処理部210またはネットワーク処理部212を介して適切な記録領域に格納される。共用操作履歴は、プレーンテキストとして作成することもできるし、適切なテンプレートなどを使用してHTMLまたはXMLなどの構造化文書として作成することができる。
ユーザが共用操作履歴をSDカード、メモリスティック、カード型HDDなどの記憶装置146に格納を指令する場合、画像形成装置100は、操作履歴をストレージ処理部210に送信し、CSV、HTML、XMLなどの適切なファイル形式で記憶装置146に格納する。格納した共用操作履歴は、ユーザが後に画像形成装置100または他画像形成装置で操作履歴を使用して所定の処理を実行させるために利用することができる。
さらに他の実施形態では、作成した操作履歴は、ユーザ指令に対応してネットワークを使用して共用ストレージ150に、FTPプロトコルまたはHTTPでありプロトコルを使用してアップロードすることができる。共用ストレージ150は、ストレージサーバなどとして構成することができる。共用ストレージ150は画像形成装置100などから操作履歴要求を受け付け、ユーザIDおよびパスワードなどの認証結果に応じて、操作履歴ユーザIDに対応して登録された操作履歴を検索する。その後、共用ストレージ150は、検索された操作履歴を操作履歴リストとして、FTPプロトコルまたはHTTPプロトコルを使用して要求元に送信する。
なお、ストレージ処理部210およびネットワーク処理部212は、適切な転送プロトコルをサポートするソフトウェア手段と共に共用履歴保管手段を構成する。
また、画像形成装置100は、他画像形成装置が作成した共用操作履歴を使用して操作を実行する場合、入力変換処理モジュール202が受け付けたユーザ入力がジョブ実行を指令する場合、実行コマンド発行モジュール214に通知を行い、バッファリングモジュール204に格納された各データを、ファクシミリ・コントローラ130、エンジン・コントローラ132などのジョブ担当機能部に送信し、ジョブ実行を開始させる。メッセージ作成モジュール218は、変換手段216に見出されなかった場合、メッセージ作成モジュール218を呼び出して、エラーメッセージなどを作成させ、表示パネルまたはディスプレイ装置に作成したメッセージを表示させる。
作成するメッセージは、予め作成しておいたメッセージを読み出して表示させることもできるし、メッセージをHTMLなどの構造化文書として作成し、ブラウザソフトウェアなどを使用してディスプレイ装置上に表示させることもできる。なお、変換手段216は、画像形成装置100の処理機能が更新された場合、追加または上書きなどにより更新され、最新の画像形成装置100の機能を指令するテキストコードに変換することが可能とされている。
操作履歴の要求元の画像形成装置100は、受信したリストからダウンロードを希望する操作履歴をダウンロードして、インタプリタモジュール206に読み出したテキストコード、変数の型宣言、動作条件、装置環境などを渡し、画像形成装置100に対してジョブ種類に対応した操作画面を表示する。また、画像形成装置100は、バッファリングモジュール204に読み出した各種データを登録し、表示画面上に読み出したデータを表示させ、ユーザによるジョブ実行ボタンの押下げを待機する。なお、この間、ユーザは、表示画面上に表示された各種データを、入力キーまたはタッチパネルなどを操作して修正することだけで当該処理時にユーザが要求するジョブ要求に対しても対応することが可能とされている。
図3は、画像形成装置100が作成する共用操作履歴300のデータ構造を示す。共用操作履歴300は、操作履歴番号などの操作履歴識別値302ごとに作成されたレコードが登録されている。レコードには、操作履歴識別値302に対応して、操作を行った日付などを登録するタイムスタンプ304と、ユーザが行った操作機能識別値306とを登録するフィールドとが登録されている。さらに、操作履歴テーブル300には、当該機能を実行するためのプログラム名などのプログラム識別値308、プログラムバージョン310、用紙サイズ、プリント条件、印刷部数、ファクシミリ番号などの動作条件312、使用HW識別値314、HWの型番識別値316およびユーザ識別値318などが登録されている。
図3に示した共用操作履歴300のレコードに登録されたデータは、インタプリタモジュール206によりテキストコードまたは使用される装置固有コードの種類に対応し、JISコードまたはShiftJISコードなどにエンコードされ、記憶装置146または共用ストレージ150に登録される。
なお、画像形成装置100は、操作ログとして記憶されるデータ構造が図3に示した共用操作履歴を構成させるに充分なデータ内容を有する場合は、バッファリングモジュール204からではなく、操作ログから操作ログを読み出して共用操作履歴を作成することもできる。図3に示した実施形態では、さらに、ハードウェア環境およびソフトウェア環境などの装置環境についても他画像形成装置での共用操作履歴のスムースな利用を行うためのデータとして追加されている。
画像形成装置100は、他画像形成装置が作成した共用操作履歴を使用して操作を再実行する場合、共用操作履歴のテキストコードを読み出して、変換手段216を検索する。検索の結果、当該操作履歴に対応する条件が登録されている場合、登録されたテキストコード、変数の型宣言を取得し、対応する装置固有コードに変換して操作履歴にしたがった処理を逐次的に実行する。なお、画像形成装置100が、自己の登録した操作履歴を利用する場合には、変換手段216を特に設けることは必要とはならないが、操作履歴を異なる設定または異なる機種の他画像形成装置に共用させる場合、変換手段216を設けることにより、機種間の相違や設定の相違に対応した操作履歴の共有化を行うことができる。
図4は、画像形成装置100が実行する共用操作履歴の作成および格納処理の実施形態についてのフローチャートを示す。図4に示す処理は、ステップS400から開始し、ステップS401で、ユーザからのジョブ履歴作成指令を受け付けた後、入力キーまたはタッチパネルの入力データを装置固有のコードにエンコードする。ステップS402では、装置固有コードをバッファリングし、ステップS403でユーザが、「スタート」などのジョブ開始ボタンの押下げを行ったか否かを判断し、ジョブ開始ボタンが押下げられない場合(no)、ステップS401に処理を分岐させ、次の入力データをエンコードおよびバッファリングを繰り返す。なお、ステップS401は、ユーザが特に明示的な指令を行わずとも、画像形成装置100がバックグラウンド処理として実行しておき、後述する共用操作履歴登録指令を受領したことに対応して、一括してバッファリングされた装置固有コードをエンコードすることもできる。
その後、画像形成装置100は、ステップS403でジョブ実行ボタンが押下げられた場合(yes)、バッファリングしたコード(実行コマンド)を発行し、ステップS404でジョブを実行させる。また、これと並列的にステップS406でインタプリタモジュール206を起動して装置固有コードをテキストコードにエンコードし、共用操作履歴管理モジュール208により、テキストコードを操作履歴のシーケンスで記述して行き、完了した時点でバッファメモリの内容をクリアし、次の入力に備え、処理をステップS405に分岐させる。図4に示した実施形態では、その時点でバッファリングモジュール204のバッファメモリに格納された装置固有コードを、インタプリタモジュール206および共用操作履歴管理モジュール208を起動して、テキストコードへのエンコードおよび共用操作履歴への追加処理を実行する。なお、この処理が終了した段階で、バッファリングモジュール204が管理するバッファメモリをクリアし、以後の入力キーまたは操作パネルからの入力に対応する。
ステップS405では、ユーザが入力したジョブのシーケンスが終了したか否かを判断し、ジョブのシーケンスが終了しない場合(no)、処理をステップS404に戻し、ジョブを完了させる。一方、ステップS405でジョブが終了した場合(yes)、インタプリタを起動して操作履歴、操作条件、プログラムバージョン、HWの型式名などの装置情報をバッファから読み出し、テキストコードまたは構造化文書を作成する。
さらに、ステップS407では、ユーザからジョブ開始ボタン以外の入力要素の入力がなされたか否かを判断する。ステップS407の判断でジョブ開始ボタン以外の入力要素からの入力がある場合(yes)、処理をステップS401に分岐させ、以上に説明した処理を繰り返し実行する。また、ステップS407の判断で、入力要素からの入力がない場合(no)、処理をステップS408に分岐させる。
ステップS408では、ユーザが各納または送信指令を行ったか否かを判断する。画像形成装置100は、ユーザがステップS408で操作パネル上に配置またはタッチパネル上に表示された共用履歴登録指令に対応する「操作履歴の登録」ボタンを押下げまたはタッチしたことを検出した場合(yes)、ステップS409で操作履歴識別値を付して記憶装置に格納するか、または共用ストレージ150にネットワーク144を介してアップロードして処理をステップS410に分岐させ、処理を終了する。
一方、ステップS408でユーザが操作履歴の登録を指示しない場合(no)、処理をステップS410に分岐させ、処理を終了する。なお、ステップS410でユーザが格納指令または送信指令を行わない場合、画像形成装置100が自機の操作ログとして登録するためにインタプリタを起動することなく、バッファリングされた装置固有コードのうち、指定された装置固有コードを、予め設定された格納領域に格納させてもよい。
図5は、画像形成装置100が実行するテキストコードまたは構造化文書として作成される共用操作履歴作成処理500の実施形態を示す。説明する実施形態では、画像形成装置100は、ファクシミリ送信を実行した場合の操作シーケンスを、共用操作履歴として作成し、登録するものとして説明する。
画像形成装置100は、共用操作履歴を作成する場合、インタプリタモジュール206を起動して、バッファリングモジュール204が管理するバッファメモリ502内にファクシミリ機能が指定されていることを示す機能識別値「003」と、ファクシミリ番号と、実行指令コマンドであることを示す実行識別値「006」とを、ファクシミリ操作開始または共用操作履歴作成指令を受領してから以後の入力キー、操作パネルからの入力データをバッファリングする。画像形成装置100は、バッファメモリ502内のデータをインタプリタモジュール206に渡す。画像形成装置100による装置固有コードからのインタプリタ処理は、入力キーまたは操作パネルの操作に対応して逐次的に実行することができる。
また、他の実施形態では、共用履歴登録指令を受領して、後続するジョブ開始ボタンまでの指令をバッファリングしておいて入力キーまたは操作パネルからの入力内容を一括して共用操作履歴に変換し、登録する処理を実行することもできる。バッファリングされた操作内容を逐次変換する場合、ユーザが行った操作を全部バッファリングする必要はないのでメモリ資源を節約することが可能となるものの、ユーザが最終的に共用操作履歴を作成しない場合などでのメモリ資源などのハードウェア資源が浪費される。また、逐次変換処理では、修正および入力処理時での変換処理のオーバーヘッドなどが常時必要とされる。また、ユーザの誤操作による訂正処理が共用操作履歴に反映される可能性もある。
このため、本実施形態の画像形成装置100は、共用履歴登録指令またはジョブ開始時点からバッファリングを開始させ、共用履歴登録指令を受領して、バッファリングされた操作履歴の変換処理を行う実施形態が好ましい。また、ジョブ開始ボタンが押下げられたことを検出して、ジョブ開始以降の操作履歴を一単位として、ジョブ開始ボタン間の単位でエンコード処理を実行することができる。
インタプリタモジュール206は、変換手段216として、ルックアップテーブルなどのテーブル型式として、ROM128などに格納される変換テーブル506を管理しており、変換テーブル506に登録された機能識別値、ファクシミリ番号、実行識別値を、変換テーブル506をルックアップしてファクシミリ番号などを除く装置固有コードをテキストコードに変換する。変換されたテキストコードは、共用操作履歴管理モジュール208に渡され、共用操作履歴管理モジュール208が予め格納されたテンプレートの指定された箇所に挿入する。他の実施形態では、共用操作履歴管理モジュール208は、ヘッダ、ボディ、テキストコードを指令があった時点で作成し、HTML、XMLなどの構造化文書のフォーマットで共用操作履歴を作成することもできる。
インタプリタモジュール206および共用操作履歴管理モジュール208は、適切なプログラミング言語を使用して実装することができるが、Java(登録商標)、Java(登録商標)Scriptなどを使用して実装する場合、画像形成装置100が実装するApacheなどのサーバソフトウェアを併用することができ、ソフトウェア資源の共用化によるソフトウェア資源の省資源化が可能となる。さらに、図5に示した装置固有コードは、例示的な実施形態であり、デシマル表記ではなく、バイナリ表記、ヘキサデシマル表記などいかなる表記フォーマットを使用してもよい。
作成された共用操作履歴504は、図5に示す実施形態ではHTMLとして説明するが、機種間の相違を解消し、操作履歴を共有させることができる共用ファイルである限り、プレーンテキスト、CSV、スペース区切り、タブ区切りフォーマットのテキストファイルでもよく、またXMLでもよい。図5に示すように、共用操作履歴504には、ヘッダに共用操作履歴のファイルであることが記述され、<Body>部分に装置固有コードからテキストコードに変換された操作履歴が記述されている。また、<Body>の部分には、インタプリタモジュール206が変換し、ユーザによるジョブ実行ボタンの押下げがなされたことを示すジョブ実行コード「006」を、「Start」などのテキストコードが挿入されている。共用操作履歴504は、ユーザが一連のジョブシーケンスを行った場合、対応する操作履歴をシーケンスに沿って挿入されている。
作成された共用操作履歴504は、その後、SDカード、メモリスティックなどに格納され、他画像形成装置による操作のために利用される。また、他画像形成装置に使用する目的で、HTTPプロトコルまたはFTPプロトコルを使用するファイル転送により、共用ストレージ150に格納してもよい。
図6は、図5で説明した変換テーブル506の実施形態を示す。図6に示すように、変換テーブルには装置固有コード600に対応するテキストコード602が登録されており、装置固有コード600に対応して、機種間の相違をキャンセルするテキストコード602を取得することを可能としている。なお、変換テーブル506には、機能に対応し、インタプリタモジュール206や、共用操作履歴管理モジュール208を実装するために使用するプログラミング言語の種類に対応し、当該機能を実行するための変数名、変数の型宣言などを登録することができる。さらに、用紙サイズ、コピー部数、ファクシミリ番号などのデータについては、ユーザが利用したい機種の設定に対応し、テキストコード、JISコード、ShiftJISコードなどへの変換を行ってもよい。
一方、画像形成装置100が、変換テーブル506を使用して装置固有コードを生成させる場合、共用操作履歴管理モジュール208が取得したテキストコードは、インタプリタモジュール206に渡される。インタプリタモジュール206は、逐次的にテキストコードを装置固有コード600にデコードして行き、装置固有コード600のシーケンスとしてバッファリング手段に渡すと共に操作パネル上の該当するバッファメモリ502のアドレスに関連した表示を対応するように表示させる。このため、ユーザは、他画像形成装置で作成した入力データについても目視確認しながら精度の高い処理再現が可能となる。
また、インタプリタモジュール206は、「start」のテキストコードを見出すと、第1実施形態では、変換テーブル506を参照し、ジョブ実行コードに対応するテキストコードの変換をスキップする。画像形成装置100は、ジョブ実行コードまでの変換結果をバッファリングモジュール204に送り、ジョブ実行コードの受領を待機する。その後、後続する他ジョブがある場合、同様の処理を後続ジョブがなくなるまで繰り返す。
一方、第2実施形態では、変換テーブル506を参照し、インタプリタモジュール206は、ジョブ実行コードを発見すると、ジョブ開始ボタンの押下げがあるまで待機する装置固有コードに変換する。第2実施形態を採用する場合、変換テーブル506は、共用操作履歴504の作成時と共用操作履歴504から装置固有コードのデコード時に異なった変換テーブル506を使用することもできる。また、共用操作履歴504から装置固有コードへのデコード時、同一の変換テーブル506を使用し、図6に示す実施形態では「Start」のテキストコードを一旦装置固有コード「006」に変換した後、インタプリタモジュール206が、装置固有コード「006」への変換を検出し、待機コードに再デコードする処理を使用することができる。
図7は、画像形成装置100が共用操作履歴を読み込んで、ジョブを実行する処理の実施形態を示すフローチャートである。図7の処理は、ユーザが操作履歴の読み込みをオペレーションパネルなどから指令するなどを契機としてステップS700から開始し、ステップS701でテキスト文書または構造化文書を読み込む。この場合、画像形成装置100は、インタプリタモジュール206を実装するために用いたプログラミング言語、例えば、VBAやJava(登録商標)Script、JScriptなどを起動して共用操作履歴504を読み込み、処理を実行する。共用操作履歴504は、ステップS702で、変換テーブル506を使用してジョブ実行コードへの変換を行わず、他のテキストコードを装置固有コードにデコードし、バッファメモリ502に登録する。この処理の際、機能処理に必要なデータについても共用操作履歴から取得する。なお、変数名、ファクシミリ番号、用紙サイズ、部数などについては、JISコード、ShiftJISコードへの変換などが必要な場合、インタプリタモジュール206が画像形成装置100の設定に対応して変換を行う。
ステップS702の処理が終了した時点では、画像形成装置100のバッファリングモジュール204のバッファメモリ502には、共用操作履歴504に登録されたジョブ種類、利用データが登録された状態となる。ステップS703では、ジョブ開始ボタン以外のキー入力またはタッチパネルからの入力を受け付けたか否かを判断する。入力要素からの入力を受け付けた場合(yes)、ステップS704で、入力データで、バッファメモリ502の対応するアドレス値を更新する。その後、ステップS705で、ジョブ開始ボタンの押下げなどにより指令されるジョブ実行指令がなされない場合(no)、ステップS705に分岐させ、ジョブ開始ボタンの押下げを待機する。
ステップS705でジョブ開始ボタンの押下げなどを検出した場合(yes)、ステップS706でバッファリングしたデータを使用してジョブの実行を開始する。また、キー入力またはタッチパネルからジョブ実行ボタン以外の入力がなされない場合(no)、処理をそのままステップS705に分岐させ、ジョブ開始ボタンの押下げを待機する。
画像形成装置100は、ジョブを開始させた後、ステップS707で共用操作履歴管理モジュール208に対してすでに実行させたジョブよりも下位に他の「start」などのテキストコードが存在するか否かを検査させ、検査の結果により後続ジョブの存在を判断する。後続ジョブが存在する場合(yes)、処理をステップS702に分岐させ、後続ジョブのテキストコードのデコードを開始し、ステップS703〜ステップS706の処理を繰り返す。一方、ステップS707で後続ジョブがないと判断された場合(no)、処理をステップS708に分岐させて、ジョブシーケンスを終了させる。
以上の処理を実行することにより、画像形成装置100は、他画像形成装置で作成した共用操作履歴504を利用しながら最小の入力操作でジョブを実行させることができる。また、図7に示した処理では、先行ジョブの実行中に後続ジョブのデータを読み込みデコードできるので、共用操作履歴504を使用する場合でも、他画像形成装置での処理と比較してキー入力操作に要する時間遅延を最小限に止めることが可能となり、より操作効率が改善される。
図8は、共用操作履歴504を、ネットワーク144を介して設置されたストレージサーバなどで構成される共用ストレージ150からダウンロードする場合の処理を示したフローチャートである。ステップS800〜ステップS808までが画像形成装置100の実行するプロセスであり、ステップS810〜ステップS817が共用ストレージ150が実行する処理である。なお、共用ストレージ150は、FTPサーバまたはHTTPサーバとして構成することができ、ファイル転送は、FTPプロトコルまたはHTTPプロトコルなど、共用ストレージ150の利用するファイル転送機能に対応する限り、特に限定はない。また、ネットワーク144を使用することなく他画像形成装置がメモリスティックまたはSDカードなどから共用操作履歴504を取得する場合は、通信インフラ基盤としてイーサネット(登録商標)ではなく、PCIなどの規格でバス通信を行うことで、同様の処理を実行することができる。
画像形成装置100は、処理をステップS800から開始し、ステップS801でログイン画面などを表示し、ユーザID、パスワードなどの入力を要求するログイン処理を実行する。ステップS802では、ログイン画面からのユーザ入力によりユーザID、パスワードなどのユーザ識別値を取得する。なお、他の機能により共用操作履歴を作成したユーザが識別可能な場合には、ステップS801およびステップS802のユーザ識別値の入力処理は必須ではない。
ステップS803では、共用操作履歴504のダウンロード要求を、キー入力またはタッチパネルからの入力を介して受け付ける。ステップS804では、ユーザ識別値またはその他ユーザを固有に識別できる識別値を共用ストレージ150に送信する。ステップS805では、共用ストレージ150から送信され、当該ユーザがその時点までに作成した共用操作履歴504をダウンロードして取得する。ステップS806では、ダウンロードした共用操作履歴504を解析し、当該画像形成装置100の環境では実行できない処理が含まれているか否かを検査し、そのまま実行できない場合には、メッセージ作成および対応処理を促す処理を実行する。なお、ステップS806の処理についてはより詳細に後述する。
ユーザが使用する画像形成装置100がデフォルト環境で共用操作履歴504により指定される処理を提供できる場合には、ステップS807で、ダウンロードしたテーブルからダウンロードしたい共用操作履歴を指定してダウンロード要求を行い、指定した共用操作履歴をダウンロードし、図7で説明した処理を使用してジョブを実行し、処理をステップS808で終了させる。
一方、共用ストレージ150は、ステップS810で処理を開始し、デーモンまたはバックグラウンドサービスとして画像形成装置100からのアクセスを待機する処理を開始させる。共用ストレージ150は、ステップS811で画像形成装置100からのアクセスがあるか否かを継続してモニタしており、画像形成装置100からのアクセスがあったと判断した場合(yes)、ステップS812で受信したユーザ識別値などの認証を実行する。ステップS813では、認証されたユーザ識別値について登録された共用操作履歴を検索し、ステップS814で検索された共用操作履歴504のリストを作成する。ステップS815で作成したリストを画像形成装置100に送信し、ステップS816で指定される共用操作履歴504のダウンロード要求を待機する。ステップS816でダウンロード要求を受け付けた場合(yes)、ステップS817で、指定された共用操作履歴504を転送し、処理をステップS811に戻して以後のアクセス要求を待機する。また、ステップS816で、ダウンロード要求を受け付けない場合(no)、タイムアウトが経過するまでダウンロード要求を待機する。
図9は、図8のステップS806のメッセージ作成および対応処理(以下、単に対応処理として参照する。)の実施形態についてのフローチャートを示す。図9に示した対応処理は、ステップS900から開始し、ステップS901で共用操作履歴504を使用する画像形成装置100が保有する変換テーブル506に、共用操作履歴504に記述されたテキストコードに対応する装置固有コードが登録されているかいないかを判断する。ステップS901の判断で、装置固有コードが登録されていない場合(no)、当該画像形成装置100は、その実装環境では、要求される機能を提供できないことを示すので、処理をステップS904に分岐させ、操作履歴テーブルの機能提供できない共用操作履歴をユーザインタフェース(以下、UIとして参照する。)上でマークし、同時にメッセージ作成処理および不足ハードウェアの発注またはソフトウェアのアップデートを開始させる。
画像形成装置100は、処理が終了した後、処理をステップS905に分岐させ、画像形成装置の実装環境の更新処理、より具体的には、ハードウェアの発注、ソフトウェアのダウンロードおよびリセットを実行し、処理をステップS906に分岐させて、対応処理を終了する。なお、ソフトウェアバージョンの修正はネットワークを介したダウンロードによっても可能であるが、ハードウェアの修正は、期間を要する場合や、コンフリクトの可能性もあるので、対応処理が終了した後、画像形成装置は、その処理を終了させ、リセットまたはエラー終了させることになる。さらに他の実施の形態では、不足ハードウェアの発注またはソフトウェアのダウンロード処理の後、共用操作履歴504に登録された複数のジョブのうち、実行できるジョブを選択してユーザに対し実行を選択させることもできる。
一方、ステップS901の判断で変換テーブル506に機能が登録されている場合(yes)、ステップS902で、さらにプラグインソフトウェアなどのバージョンは機能に対応しているか否かを、画像形成装置100のROM128またはRAM126またはNVRAM(図示せず)などに登録された構成情報をルックアップして判断する。ステップS902の判断でソフトウェアバージョンが対応していないと判断された場合(no)処理をステップS904に分岐させる。一方、ステップS902でソフトウェアバージョンが機能に対応していると判断された場合(yes)、処理をステップS903に分岐させ、図8で説明したステップS807に処理を分岐させ、共用操作履歴504に対応するUIを画像形成装置100の操作パネル上に表示し、共用操作履歴504を利用する処理を実行させる。
図10は、図9のステップS904の対応処理で表示されるUI1000の実施形態を示す。図10に示すUIの実施形態では、共用操作履歴300に登録された項目が、取得した共用操作履歴504についてのナンバー1002、登録した日付1004と共に表示されている。また、操作内容1006が操作履歴を理解するために表示されている。共用操作履歴504が複数利用可能であって操作パネルの画面上に全部を表示することができない場合に備え、UI1000上にはスクロールバー1008が設けられている。
また、UI1000には、画像形成装置100のその時点での実装環境上提供できない操作履歴を示す対応不能マーク1010が表示されている。また、対応する共用操作履歴1012には、ユーザが認識しやすいように、グレーアウト表示が行われている。さらに、UI1000の下側には、メッセージ1014が表示される。なお、図10に示した実施形態では、当該画像形成装置は、共用操作履歴1012が指定するファクシミリ機能について、ファクシミリモデムが共用できないことが原因で、共用操作履歴1012が利用不能であるものとされている。
メッセージ1014には、共用操作履歴1012の機能が提供できない理由が表示され、そのための対応策が表示されている。また、ユーザの要求に対応するために更に対応処理を進めるための「解決するならここ」で示された入力領域1016が表示されていて、ユーザを、共用操作履歴1012の利用を可能とする処理に誘導している。
この他、取得した共用操作履歴が利用できない理由として、ハードウェア装置間のバッティング、ハードウェア装置自体がコンフリクトを生じさせること、ステープルまたはパンチなどのオプション機能が共存できないこと、ソフトウェアバージョンが異なることなどを挙げることができるが、これらに限定されない。なお、メッセージ1014は、画像形成装置100がインタプリタモジュール206を起動した時点で共用操作履歴1012のデータを解析し、データの検査により、対応できない機能が発見された場合、当該対応できない機能と、その解決方法とを記述したテキストファイルを、NVRAM(図示せず)などの検索により読み出して、UI1000上に作成および表示される。
図11は、図9のステップS904のメッセージに対応した対応処理の実施形態を示した詳細なフローチャートである。図11に示した処理は、ステップS1100から開始し、ステップS1101でメッセージを表示させる。ステップS1102では、「解決するならここ」として設定された入力領域からの解決指令が入力されたか否かを判断し、解決が指示された場合(yes)には、処理をステップS1103に分岐させる。一方、ステップS1102で、解決指令を受領しない場合(no)、さらにステップS1111で「中止する」入力領域からの中止指令が入力されたか否かを判断する。
ステップS1111の判断で、中止指令を受領した場合(yes)ユーザは、その段階で共用操作履歴1012を使用した処理を希望しないので、処理をステップS1110に分岐させ、共用操作履歴を使用する処理自体を中断させ、画像形成装置100を入力待ち状態に復帰させる。一方、ステップS1111で中止指令を受領しない場合(no)、タイムアウトが経過するまで処理をステップS1102に戻し入力を待機する
一方、ステップS1103では、ユーザが解決を指令したのでソフトウェア(SW)またはハードウェア(HW)ごとに、コンフリクトが生じるか否かを、資源サーバ148に問合わせて判断する。ステップS1103でコンフリクトの発生を問い合わせるのは、コンフリクトを生じさせる場合は、単にHWまたはSWを追加する以外の解決方法が必要となる場合が多いためである。図示した実施形態では、資源サーバ148は、資源サーバに登録されたHWおよびSWごとにコンフリクトを生じさせないHWまたはSWおよび上位互換性のあるHWまたはSWを登録した資源データベースを保有している。資源サーバ148は、画像形成装置100から解決要求および当該画像形成装置100の実装環境データを受領すると、解決しなければならないHWまたはSWの機種を特定し、資源データベースをルックアップして、機能に対応するHW、SWまたはコンフリクトを生じさせない上位互換のHW、SWを検索し、検索結果を画像形成装置100に返す。
画像形成装置100は、資源サーバ148から受領したデータを操作パネル上に表示させ、ユーザによる解決タスクの選択を可能とさせている。ステップS1103の判断でコンフリクトを生じないと判断した場合(no)ステップS1104で解決方法を誘導するためのタスク画面を表示させる。一方、コンフリクトを生じさせると判断された場合(yes)、ステップS1108でコンフリクト解決画面を表示させ、コンフリクト解消にユーザを誘導する。
ステップS1104で、画像形成装置100は、共用操作履歴1012を使用するためのタスクを表示するタスク画面を表示させ、タスク画面に表示された処理を画像形成装置100に実行させて、共用操作履歴1012を使用できるように実装環境に対する修正処理を指令する。一方、ステップS1108では、画像形成装置100は、コンフリクト解決処理画面に表示された処理を指令して画像形成装置100の実装環境に対する修正処理を指令する。
ステップS1104またはステップS1108の処理実行後、画像形成装置100は、ステップS1105で未実行の解決タスクが残っているか否かを判断し、未実行の解決タスクが残っている場合(yes)、ステップS1106でタスクを選択し、ステップS1107でインストーラ(ソフトウェアのみ)または発注ソフトを選択し起動して解決タスクを起動し、処理をステップS1105に戻し、処理を繰り返す。また、未実行の解決タスクが残されていない場合(no)処理をステップS1109に分岐させユーザに処理終了を通知し、ステップS1110で処理を終了させる。
図12は、図11のステップS1104で表示されるタスク画面1200の実施形態を示す。図12に示すようにタスク画面1200は、資源サーバ148から受領したデータに対応する解決タスク1204を、解決タスク番号1202およびアクション1206と対応させて表示する。ユーザは、解決タスクごとにアクションを選択し、解決タスクを起動して、画像形成装置100の実装環境を修正する。なお、図12では、ファクシミリモデムが機能的に不足であると判断されたため、ユーザは、No.1のFX2581の発注を選択し、タスク1で機能に対応するFX2581ファクシミリモデムをオンライン発注する実施形態を示す。また、タスク2でドライバソフトウェアであるFAX_BASIC_Ver.1のインストーラを起動することが可能とされている。
図13は、図11のステップS1103でコンフリクトを解決するコンフリクト解決画面の実施形態を示す。図13に示すコンフリクト解決画面1300は、資源サーバ148からのデータを受領し、当該データがコンフリクトを生じさせると通知された場合に表示される。コンフリクト解決画面1300には、識別値がNo.2で示される共用操作履歴1012を使用可能とすると、識別値がNo.4の共用操作履歴で使用するハードウェアとコンフリクトすることが表示される。ユーザは、コンフリクト解決画面1300の表示を参照して、例えば履歴の使用頻度または重要性を判断し、「解決するならここ」または「中止する」が表示された入力領域により、以後の処理を選択することができる。
図13のコンフリクト解決画面1300からユーザが「解決するならここ」が表示された入力領域をタッチ、またはマウスおよびイベントハンドラなどを介してクリック操作などが行われた場合、タスク実行画面1302が表示される。タスク実行画面1302には、指定できる解決タスク1304が表示され、解決タスクを選択するチェックボックスまたはボタン1306が提供されている。ユーザは、タスク実行画面1302で解決タスクを選択し、その後、実行ボタン1308を押下げ、タッチ、またはクリックなどすることにより、選択した解決タスクを実行させ、コンフリクトを解消し、使用するべき共用操作履歴を用いて画像形成装置を制御する。
図14は、本実施形態の画像形成装置を含む画像形成システムの実施形態を示す。画像形成システム1400は、画像形成装置1402と、資源サーバ1410とをネットワーク1408で相互接続されて構成されている。資源サーバ1410は、画像形成装置1402から共存可能問合わせ1404を受領すると、共存データベース1412を検索する。資源サーバ1410は、共存可能なHWまたはSWまたはHWおよびSWを検索し、共存可能なソフトウェア資源またはハードウェア資源の検索結果を共存可能HW/SWレスポンス1406として返す。画像形成装置1402は、受領した共存可能HW/SWレスポンス1406を解析し、図13に示したコンフリクト解決画面1300を作成し、表示させている。
図15は、本画像形成装置を使用した操作履歴共有化方法1500の実施形態を示す。画像形成装置1502は、操作履歴をテキストファイルまたは構造化文書としてSDカード、メモリスティックなどの記憶装置1512にイクスポートするか、またはネットワークを介して、ストレージサーバなどとして実装される共用ストレージ1508にアップロードする。また、他画像形成装置1504は、ネットワーク1510を介して共用ストレージ1508から共用操作履歴をダウンロードして、共用操作履歴を使用した画像形成処理を実行する。また、他の実施形態では、ユーザがSDカードまたはメモリスティックなどの記憶装置1514に登録した共用操作履歴をインポートして、RAMなどに格納し、共用操作履歴を利用した画像形成処理を実行している。
図16は、画像形成装置1502に対して共用操作履歴を作成および登録する場合に、明示的な指令を与える画面表示1600の実施形態を示す、図16(a)が操作開始画面であり、図16(b)が共用操作履歴登録画面である。図16に示すように、表示パネル1602には、コピー操作を指令するコピー操作領域1604、ファクシミリ送信を指令するファクシミリ操作領域1606、メール送信を指令するメール操作領域1608などが登録されている。また、表示パネル1602上には、ファイル変換操作を指令するファイル変換操作領域1610、ADF(Auto Document Feeder)などからの画像データ読込みを指令するADF操作領域1612およびユーザが入力した操作シーケンスから操作履歴を作成することを指令する操作履歴作成領域1614が表示されている。さらに、図16(a)に示した表示パネル1602には、共用操作履歴を使用して処理を再実行させることを指令する操作履歴利用領域1616が表示されている。
ユーザが所定の操作を実行する前に操作履歴作成領域1614にタッチすると、以後のユーザ入力操作がジョブ開始ボタンまでの入力シーケンスを単位としてバッファリングされ、共用操作履歴への変換および作成処理が実行される。また、ユーザが操作履歴利用領域1616にタッチするなどして共用操作履歴の使用を指令すると、インタプリタモジュール206および共用操作履歴管理モジュール208がメソッド呼出しなどにより起動され、SDカード、メモリスティック、または共用ストレージ150または1508などから共用操作履歴を取得し、操作の再実行を可能とする。
図16(b)は、操作履歴作成を指令した後、ユーザがジョブ開始ボタンを押下げた場合について、図5で説明したファクシミリ送信処理を実行させた直後に表示される表示画面1620の実施形態を示す。図16(b)に示すように、ユーザが所定の入力の確認処理を終了し、ジョブ開始ボタンを押下げると表示画面1620が表示され、表示画面1620には、ユーザが入力した操作内容を表示する操作履歴表示領域1622が表示され、ユーザに対して共用操作履歴として登録する操作内容が確認的に表示される。
また、表示パネル1620には、操作履歴識別値、ユーザID、パスワードなどを登録する画面が表示される登録入力領域1624が表示されていて、共用操作履歴の登録および検索を可能としている。ユーザは、登録するべき操作履歴を確認し、指定されたデータを入力した後、登録実行を指令する登録領域1626にタッチすることにより、記憶装置146または共用ストレージ1508に共用操作履歴を登録することができる。
以上説明したように、本実施形態の画像形成装置では、操作履歴を画像形成装置間で共用させることが可能な画像形成装置、画像形成装置の制御方法およびプログラムを提供することができる。また、本発明によれば、従来使用した操作履歴を、現在のユーザ要求に対応した最小の入力操作のみで利用することが可能な画像形成装置、画像形成装置の制御方法およびプログラムを提供することができる。さらに、本発明によれば、操作履歴に対応できない操作がある場合、ユーザに通知し、その対応を促すことができ、またその時点で可能な操作のみを実行することが可能な画像形成装置、画像形成装置の制御方法、およびプログラムを提供することが可能となる。
本画像形成装置の上記機能は、アセンブラ言語、VisualBasic、VisualBasicforApplication、C言語、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのオブジェクト指向ブログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
これまで本発明について、実施形態をもって説明してきたが、本発明は、実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
100…画像形成装置、112…スキャナ装置、114…入力要素、116…スキャナI/F、118…ユーザI/F、122…画像処理部、124…中央処理装置(CPU)、126…RAM、128…ROM、130…ファクシミリ・コントローラ、132…エンジン・コントローラ、134…ネットワーク・インタフェース・カード(NIC)、136…記憶装置インタフェース、138…ファクシミリ送受信装置、140…DSU/TA、142…プリンタ、144…ネットワーク、146…記憶装置、148…資源サーバ、150…共用ストレージ、202…入力変換処理モジュール、204…バッファリングモジュール、206…インタプリンタモジュール、208…共用操作履歴管理モジュール、210…ストレージ処理部、212…ネットワーク処理部、214…実行コマンド発行モジュール、216…変換手段、218…メッセージ作成モジュール、300、504…共用操作履歴、506…変換テーブル