本発明の一実施形態について図1ないし図31に基づいて説明すると以下の通りである。本実施形態に係る複合機制御システムは、制御装置が有するアプリケーションと複合機とを連携させて動作させるものである。図2は、本実施形態に係る複合機制御システムの概略を示す図である。図2に示されるように、複合機制御システムは、複合機1と、制御装置2と、これらを通信可能に接続する通信ネットワークとを備えている。なお、図2に示されるように、複合機1は、複数の制御装置2と接続されていてもよい。
  複合機1は、複写、スキャン(画像読取機能)、印刷(画像形成機能)、画像データの伝送(通信機能)、画像変換などの複数の画像形成機能を有する装置であり、例えば、プリンタ、複写機、ファクシミリ機、スキャナ、および、画像伝送、変換および画像処理を行う演算装置が一体に形成された装置(MFP:マルチファンクションプリンタ)である。なお、複合機1としては、これらの全ての機能を備えている必要はなく、スキャン機能(画像読取機能)および通信機能を備えているものや、プリント機能(画像形成機能)および通信機能を備えているものであってもよい。
  複合機1は、ユーザインターフェイスとして、操作部3を備えている。図3は、操作部3の拡大図である。図3に示されるように、操作部3は、ユーザに対して操作画面を表示するための操作パネル6と、ユーザ入力を受け付ける入力部5とを備えている。なお、操作パネル6は、タッチパネルシステムを採用しており、入力部5を兼ねている。
  なお、複合機1は、上記操作部3の代わりに、もしくは、操作部3と兼用して、UI装置と接続可能であってもよい。この場合、複合機1に接続される該UI装置に操作画面が表示される。
  制御装置2は、例えば、パーソナルコンピュータである。制御装置2は、種々のアプリケーションがインストールされており、当該アプリケーションに応じた処理を行うとともに、通信ネットワークを介して複合機1と通信可能である。なお、通信ネットワークとしては、インターネット、電話線、シリアルケーブル、または、他の有線回線または無線回線、といった通信回線が利用できる。
  制御装置2は、通信ネットワークを介して、複合機1が有する機能を制御する。複合機1を制御する際、制御装置2は、自身が有するアプリケーションを用いた処理を実行させる。これにより、複合機1は、自身が有する情報処理機能だけでは実行することのできない様々な処理を利用した制御を、制御装置2から受けることができる。すなわち、複合機1は、外部の制御装置2が有するアプリケーションと連携して動作することができる。
  制御装置2のアプリケーションは、複合機1の様々な特徴を制御するために、複合機1が提供している1つまたは複数のWebサービスを使用してもよい。複合機1の様々な特徴の制御とは、例えば、装置の機能の有効/無効の切替や設定、あるいは、装置の機能の制御である。Webサービスとは、アプリケーションの機能をネットワークを通じて外部から利用できるようにするプログラム処理のことであり、通常SOAPが用いられる。
  また、図2に示されるように、異なるアプリケーションが組み込まれた複数の制御装置2と接続されている場合、複合機1と連携して動作するアプリケーションの数が増えることとなり、複合機1に対して様々な制御を行うことができる。
  また、複合機1は、制御装置2が有するアプリケーションと連携して動作する際に、Webサーバである当該制御装置2にアクセスし、アプリケーションに応じた操作画面データを取得し、操作画面を操作パネル6に表示させる。すなわち、制御装置2のアプリケーションは、ユーザと対話することができる。これにより、複合機1は、制御装置2に対して操作画面データを要求するだけで、操作画面を表示することができ、操作画面データ自体を管理する必要がない。
  また、複合機1は、外部に公開しているAPI(Application Program Interface)(制御指示)を機種によらず共通にしている。そのため、各制御装置2は、複合機1の機種によらず、共通した制御指示を複合機1に出力することができる。よって、新たなアプリケーションを利用した制御を複合機1に対して行う際、制御装置2内に組み込むプログラムの開発を容易に行うことができる。APIは、ソフト開発の際に使用できる命令と、それを利用するための手続きを定めた規約である。
  なお、複合機1と制御装置2とは、操作画面データの要求/応答に関する通信として、HTTP、または、SSL(Secure Socket Layer)を使用したHTTPSを用いる。HTTPSを用いた場合、セキュリティがよくなる。そのマークアップ言語としては、HTML(Hypertext Markup Language)、XML(eXtensible Markup Language)、WML(Wireless Markup Language)、XHTML(eXtensible HyperText Markup Language)、および/または、他の言語からなる用語が挙げられる。
  なお、XMLは、HTMLと同様の手軽さでデータ送受信できる文書構造の記述言語である。(1)利用者が文書中の文字列に意味付けできる、(2)特定のソフトウェアに依存しない、(3)プログラムが容易、などのメリットがある。
  一方、制御装置2が複合機1を制御する際の制御指示の通信については、XMLなどのマークアップ言語を用いたSOAP(Simple Object Access Protocol)などのオブジェクト間通信プロトコルを用いて行われる。SOAPは、XMLとHTTPなどをベースとした、データやサービスを呼び出すためのプロトコルで、システムとシステムを連携させることができる。
以下に、複合機1および制御装置2の構成について説明する。
  (制御装置の構成)
  図4は、本実施形態に係る制御装置2の内部構成を示すブロック図である。図4に示されるように、制御装置2は、OS部21、Webサーバ部22、MFP制御ロジック部23、連携モジュール24、アプリケーション部25を備える。
  OS部21は、コンピュータシステムを管理し、基本的なユーザ操作環境を提供するオペレーティングシステム(OS)に従った処理を行うブロックである。OSとしては、Windows(登録商標)やLinuxがある。
  Webサーバ部22は、HTTP(hypertext transfer protocol)(またはHTTPS)やSOAP(simple object access protocol)を用いた通信を行うものである。Webサーバ部22は、複合機1からHTTPリクエストを受信するとともに、当該HTTPリクエストに対応するHTTPレスポンスを送信する。Webサーバ部22は、例えば、Apacheのようなソフトウェアに従った動作を行うブロックである。
  MFP制御ロジック部23は、複合機1の操作画面(UI)および各種の装置機能の制御を行うものである。MFP制御ロジック部23は、情報受付部(リクエスト情報受付手段)231、画面データ記憶部232、UI制御部(画面データ送信手段)233、制御指示テーブル記憶部234、デバイス制御部(制御指示送信手段)235およびアプリケーション指示部236を備えている。
  情報受付部231は、Webサーバ部22を介して、複合機1からの情報を受け付け、当該情報に応じた処理を、UI制御部233、デバイス制御部235、アプリケーション指示部236に対して指示するものである。
  なお、情報受付部231が複合機1から受け付ける情報としては、URL(Uniform Resource Locator)により指定されたデータの送信要求情報(リクエスト情報)、UI制御部233から出力された操作画面データに基づいた操作画面上において押下されたボタンを示す押下ボタン情報、および、アプリケーション部25に対する処理要求情報が含まれる。
  なお、情報受付部231は、上記処理要求情報を、SOAPを用いて、Webサーバ部22から取得する。また、情報受付部231は、上記送信要求情報および押下ボタン情報を、HTTP(またはHTTPS)を用いて、Webサーバ部22から取得する。
  処理要求情報としては、例えば、認証アプリケーションに対するユーザの認証処理を要求する情報や、イベント集計アプリケーションに対する集計処理を要求する情報などが含まれる。ただし、処理要求情報は、これらに限定されるものではなく、複合機1から任意(または定期的)に受信する情報であり、当該情報に応じて、アプリケーション部25が何らかの処理を行うものであればよい。
  情報受付部231は、送信要求情報を受けた場合、当該送信要求情報をUI制御部233に出力する。
  また、情報受付部231は、操作画面上において押下されたボタンを示す押下ボタン情報と、当該ボタンの押下に応じて、UI制御部233、アプリケーション指示部236およびデバイス制御部235のいずれかが行う処理内容を示す処理情報とを対応付けた押下ボタン処理テーブルを管理している。
  図5は、押下ボタン−処理内容テーブルの一例を示す図である。図5に示されるように、情報受付部231は、例えば、操作画面「スキャン実行画面」の「OKボタン」が押下されたことを示す押下ボタン情報と、制御内容「スキャン実行」のデバイス制御を行うことを示す処理内容情報とが対応付けられていることを示す。
  また、操作画面「ログインデータ入力画面」の「OKボタン」が押下されたことを示す押下ボタン情報と、UI制御部233が次画面として画面XXX(「ログイン中です」を示す画面)のデータを複合機1に送信し、認証アプリケーションの処理開始を示す処理内容情報とが対応付けられている。
  情報受付部231は、押下ボタン情報を受け付けた場合、当該押下ボタン情報に対応する処理内容情報を上記押下ボタン処理テーブルから特定し、特定した処理情報が示す処理の実行指示を、UI制御部233、アプリケーション指示部236およびデバイス制御部235に対して行う。すなわち、情報受付部231は、処理内容情報がUI制御に関する情報である場合、その情報が示す内容をUI制御部233に通知し、処理内容情報がアプリケーションに関する情報である場合、その情報が示す内容をアプリケーション指示部236に通知し、処理内容情報がデバイス制御に関する情報である場合、その情報が示す内容をデバイス制御部235に通知する。
  さらに、情報受付部231は、上記押下ボタン処理テーブルと同様に、アプリケーション部25に対する処理要求情報と、当該処理要求情報に応じて、UI制御部233、アプリケーション指示部236およびデバイス制御部235のいずれかが行う処理内容を示す処理内容情報とを対応付けた処理要求情報―処理テーブルを管理している。
  図6は、処理要求―処理内容テーブルの一例を示す図である。図6に示されるように、認証要求を示す処理要求情報と、アプリケーション指示部236が認証アプリケーションに対して認証処理を開始させるように指示することを示す処理内容情報とが対応付けられている。
  情報受付部231は、処理要求情報を受け付けた場合、当該処理要求情報に対応する処理内容情報を上記処理要求―処理内容テーブルから特定し、特定した処理内容情報が示す処理の実行指示を、UI制御部233、アプリケーション指示部236およびデバイス制御部235に対して行う。
  画面データ記憶部232は、複写機の操作パネル6に表示される各操作画面を示す操作画面データを記憶するものである。
  UI制御部233は、情報受付部231からの指示に応じた操作画面データを画面データ記憶部232から読み出し、Webサーバ部22を介して、当該操作画面データを複合機1に出力させるものである。なお、UI制御部233は、HTTP(またはHTTPS)を用いて、操作画面データを送信する。
  アプリケーション指示部236は、情報受付部231からの指示内容に応じて、アプリケーション部25に対して所定の処理を開始させるものである。
  制御指示テーブル記憶部234は、複合機1に対する制御内容と、当該制御内容に従った制御を行う場合の制御指示とを対応付けた制御指示テーブルを記憶するものである。図7は、制御指示テーブルの一例を示す図である。図7に示されるように、制御指示テーブル記憶部234は、例えば、制御内容「スキャン」と、制御指示「JobCreate」、「ExecuteScan」および「JobClose」とを対応付けて記憶している。また、制御指示テーブル記憶部234は、1つの制御内容に対応付けて複数の制御指示を記憶している場合、各制御指示の出力順序(制御順序)も記憶している。
  なお、制御指示テーブル記憶部234が記憶している制御指示は、後述するように、複合機1のWebサービス層17が外部に公開しているAPIであり、複合機1の機種に依存しない共通のAPIである。
  デバイス制御部235は、情報受付部231またはアプリケーション部25から受けた制御内容に対応する制御指示を制御指示テーブル記憶部234から読み出し、Webサーバ部22を介して、読み出した制御指示を複合機1に送信するものである。なお、デバイス制御部235は、SOAPを用いて、制御指示を複合機1に伝送する。
  アプリケーション部25は、各種のアプリケーションに応じた処理を行うブロックである。アプリケーション部25は、例えば、予め登録されたユーザであるか否かを判定する認証アプリケーション、画像データを保存・管理するドキュメント管理アプリケーション、OCR(Optical Character Recognition)アプリケーション、翻訳アプリケーション、複合機1で実行されたイベントの集計を行うイベント集計アプリケーションなどに応じた動作を行う。
  連携モジュール24は、アプリケーション部25とMFP制御ロジック部23との接続するためのモジュールである。連携モジュール24は、アプリケーション指示部236からの指令をアプリケーション部25に伝えるとともに、アプリケーション部25からの指令をデバイス制御部235に伝える。
  (複合機の構成)
  次に、複合機1の内部構成について、図1のブロック図を参照しながら説明する。図1に示されるように、複合機1は、ユーザインターフェイス層11と、アプリケーション層12、サービス層(要素機能実行手段)13と、ドライバ層14と、OS層15と、UIサービス層(UI処理手段、操作画面識別情報記憶部、画面テーブル記憶部)16と、Webサービス層(制御指示受付手段)17と、OSAアプリ層(装置機能制御手段)18と、OpenI/F層(制御コマンド変換手段、コマンド記憶部、登録情報管理部、判断手段)19とを備えている。
  ユーザインターフェイス層11は、ユーザが複合機1を操作するためのインターフェイスである。ユーザインターフェイス層11は、複合機1に固有の操作画面(固有操作画面)を記憶しており、当該固有操作画面を操作パネル6に表示させる。ユーザは、固有操作画面に対して、所望の機能の実行を入力することで、複合機1を制御することができる。
  なお、ユーザインターフェイス層11の操作パネル部11aは、複合機1の操作画面にて入力された情報をアプリケーション層12に伝達する処理を行う。
  また、Webページ部11bは、Webページにて入力された情報をアプリケーション層12に伝達する処理を行う。
  アプリケーション層12は、複合機1が有する各種の装置機能を制御するアプリケーションに従って動作するものである。
  ここで、装置機能とは、スキャン機能、印刷(プリント)機能、画像処理機能、ネットワーク機能などの要素機能を適宜組み合わせて実行することにより実現される機能である。要素機能を適宜組み合わせて実行することにより実現される装置機能とは、例えば、スキャン機能と画像処理機能と印刷機能とを組み合わせて実行される複写(コピー)機能や、スキャン機能とネットワーク機能とを組み合わせて実行されるイメージ送信機能などがある。
  本実施形態のアプリケーション層12は、複写(コピー)機能の実行/制御を行うためのコピーアプリ12a、プリント機能の実行/制御を行うためのプリントアプリ12b、スキャンした画像データを外部の装置に送信する機能(イメージ送信機能)の実行/制御を行うためのイメージ送信アプリ12c、ドキュメントファイリング機能の実行/制御を行うためのドキュメントファイリングアプリ12d、ユーザ認証機能の実行/制御を行うためのユーザ認証アプリ12e、FAX受信機能の実行/制御を行うためのFAX受信アプリ12f、TWAIN機能の実行/制御を行うためのTWAINアプリ12gなどを含む。
  サービス層13は、アプリケーション層12の下位に位置する層であり、アプリケーション層12からの指示に従って、複合機1が有する各種の要素機能を制御するものである。
  本実施形態のサービス層13には、要素機能として、スキャン動作を制御を行うスキャンサービス13a、プリント(印刷)の制御を行い、プリント機能やコピー機能から利用されるプリントサービス13b、ジョブ毎の情報管理を制御するジョブログサービス13c、イメージ作成等の画像形成を制御する画処理サービス13d、ドキュメントファイリング等、イメージを管理するための制御を行うファイルサービス13e、リモートからWebページ経由でアクセスするための制御を行うWWWサーバサービス13f、LANや電話回線等を用いて、通信する動作の制御を行うネットワークサービス13gなどがある。
  ドライバ層14は、サービス層13の下位に位置する層であり、複合機1のハードウェアを制御するためのソフトウェアに従った動作を行うものである。
  なお、本実施形態のドライバ層14には、画像形成に関するASICドライバ14a、USB通信を行うためのUSBドライバ14b、シリアル通信を行うためのシリアル通信ドライバ14c、LAN通信を行うためのNICドライバ14d、操作パネル6の表示制御を行うためのLCDドライバ14e、電源管理を行うためのパワードライバ14fなどがある。
  OS層15は、ドライバ層14の下位に位置する層であり、オペレーティングシステムを管理するものである。
  なお、上記ユーザインターフェイス層11、アプリケーション層12、サービス層13、ドライバ層14およびOS層15は、複合機1に固有のソフトウェアに従った動作を行うものであり、複合機1ごとに異なる。これらの層を備えることで、複合機1は、通信ネットワークを介することなくユーザからの指示を直接受け付け、その指示に従った動作を行うことができる。
  ただし、上記のような複合機1に固有の層のみを有している場合、新たなアプリケーションを用いた処理を伴う制御を行うためには、複合機1の内部に新たなアプリケーション等を組み込む必要があり、手間がかかる。そこで、本実施形態の複合機1は、以下に示されるように、外部の制御装置2が有するアプリケーションと連携し、当該制御装置2からの制御を受付可能とする層を備えている。
  UIサービス層16は、HTTP(またはHTTPS)を用いて、制御装置2から操作画面データを取得し、取得した操作画面データに基づいた操作画面を操作パネル6上に表示させるものである。なお、UIサービス層16は、汎用されているWebブラウザの機能を有するものでよい。
  UIサービス層16とユーザインターフェイス層11とを備えることで、ユーザは、操作パネル6の操作画面を、複合機1に固有の操作画面(ユーザインターフェイス層11によって表示される)を操作して、その操作に応じた機能が複合機1で実行される標準操作モードと、ネットワークリソース(例えば、RCDのアプリケーション)を使用するオープンシステムモード(open system modes)とのいずれかを使用することができる。
  なお、UIサービス層16には、制御装置2から提供されたUI(操作画面)の表示を制御するUIマネージャ16aがある。
  UIサービス層16は、制御装置2が有するアプリケーション部25の処理を伴う制御を識別する制御識別情報(例えば、当該制御の内容を示す制御名称など)と、当該制御を受けるための操作画面のURL(操作画面識別情報)とを対応付けたURL登録情報を記憶している。すなわち、UIサービス層16は、上記URL登録情報を記憶するURL登録情報記憶部(操作画面識別情報記憶部)(図示せず)を備える。図8は、URL登録情報の一例である。なお、UIサービス層16は、入力部5に対するユーザ入力、もしくは、Webサービス層17からの指示に応じて、URL登録情報の新規登録または削除を行う。
  そして、UIサービス層16のUIマネージャ16aは、URL登録情報に登録されている制御識別情報の一覧を操作パネル6に表示する。さらに、UIマネージャ16aは、ユーザによって選択された制御識別情報に対応するURLをURL登録情報から読み出し、当該URLで指定される操作画面データを要求する旨の送信要求情報を、HTTP(またはHTTPS)を用いて制御装置2に送信する。そして、UIマネージャ16aは、取得した操作画面データに基づいて操作画面を操作パネル6に表示させる。その後、UIマネージャ16aは、操作画面上で押下されたボタンを示す押下ボタン情報を、HTTP(またはHTTPS)を用いて制御装置2に送信し、その応答である新たな操作画面データを取得し、操作パネル6に表示させる。
  Webサービス層17は、SOAPを用いて制御装置2から送信される制御指示を受信し、当該制御指示に対応するOSAアプリ層18の適切なモジュールを呼び出すものである。また、Webサービス層17は、OSAアプリ層18から受けた情報を示すSOAPコマンドを生成し、制御装置2に対して送信する。Webサービス層17は、制御指示と、当該制御指示が示す制御に適切なOSAアプリ層18のモジュールとを対応付けて記憶しており、当該記憶内容に応じて、適切なモジュールを呼び出す。
  本実施形態のWebサービス層17は、UI制御に関するWebサービスを処理するUIサービス、ジョブ制御に関するWebサービスを処理するジョブマネージャ17b、イベント送信要求に関するWebサービスを処理するイベントマネージャ17c、ジョブやデバイスのステータス制御に関するWebサービスを処理するステータスマネージャ17d、OSAアプリ層18に関する情報を登録するためのサービスマネージャ17e、ジョブの送受信を行うためのWebサービスを処理するデータ送信マネージャ17fなどを含む。
  OSAアプリ層18は、上記装置機能を制御するためのアプリケーションであり、制御する装置機能に用いる要素機能を制御するための第1API(第1制御コマンド)を生成し、OpenI/F層19におくる。後述するように、OpenI/F層19で使用可能な(公開されている)第1APIは、複合機1の機種に依存していない。その結果、OSAアプリ層18は、複合機1ごとに、プログラムコードを変更する必要がない。OSAアプリ層18は、OpenI/F層19で公開されている第1APIをOpenI/F層19に出力する。
  本実施形態のOSAアプリ層18は、複写(コピー)機能の実行/制御を行うためのコピーアプリ18a、プリント機能の実行/制御を行うためのプリントアプリ18b、スキャンした画像データを外部の装置に送信する機能(イメージ送信機能)の実行/制御を行うためのイメージ送信アプリ18c、ドキュメントファイリング機能の実行/制御を行うためのドキュメントファイリングアプリ18d、ユーザ認証機能の実行/制御を行うためのユーザ認証アプリ18e、FAX受信機能の実行/制御を行うためのFAX受信アプリ18f、TWAIN機能の実行/制御を行うためのTWAINアプリ18gなどを含む。
  OpenI/F層19は、サービス層13を制御するためのインターフェイスをOSAアプリ層18に公開する機能を有しており、OSAアプリ層18から受けた第1APIを、サービス層13が受付可能な第2API(第2制御コマンド)に変換するものである。
  OpenI/F層19は、OSAアプリ層18に公開している第1API(すなわち、OpenI/F層19が外部から受け付けることができる第1制御コマンド)と、サービス層13が外部に公開している第2API(すなわち、サービス層13が受け付けることができる第2制御コマンド)とを対応付けたAPIテーブルを記憶するAPIテーブル記憶部(コマンド記憶部)(図示せず)を備えており、当該APIテーブルに従って、サービス層13のAPIを呼び出す。図9は、OpenI/F層19が保持しているAPIテーブルの一例を示す図である。
  OpenI/F層19は、OSAアプリ層18へ公開する第1API(つまり、OpenI/F層19が受け付け可能なAPI)を複合機1によらず共通にしている。これにより、OSAアプリ層18がプログラムコードを変更する必要がなく、Webサービス層17が外部の装置に公開するメソッドを複合機1によらず共通に定義することができる。すなわち、各制御装置2は、複合機1によらず共通のメソッドを用いて、Webサービス層17に対する要求を行うことができる。
  図18は、OpenI/F層19の機能を説明する図である。図18において、モデルAの複合機1は、サービス層13として、スキャンサービス13aおよびプリントサービス13bを有している。この場合、モデルAの複合機1のOpenI/F層19は、APIテーブルとして、図9に示されるように、第1API'Execute Copy'と、第2API'Do Scan'および'Do Print'とを対応付けて記憶している。そのため、第1API'Execute Copy'を受けても、OpenI/F層19は、スキャンサービス13aおよびプリントサービス13bを実行させることができる。
  一方、モデルBの複合機1は、サービス層13として、コピーサービスを有している。この場合、モデルBの複合機1のOpenI/F層19は、APIテーブルとして、第1API'Execute Copy'と、第2API'Do Copy'とを対応付けて記憶している。そのため、第1API'Execute Copy'を受けても、OpenI/F層19は、コピーサービスを実行させることができる。
  このように、OpenI/F層19は、APIテーブルに基づいてAPIを変換する機能を有している。そのため、OpenI/F層19は、公開している第1APIを複合機1の機種によらず共通にすることができる。その結果、OpenI/F層19より上位層では、共通のAPIを使用することができる。すなわち、外部の制御装置2は、複合機1の機種によらず、共通の制御指示を複合機1に対して出力すればよい。
  (URL登録情報の登録処理)
  次に、UIサービス層16に対するURL登録情報の登録処理について説明する。当該登録処理は、複合機1の操作パネル6を用いて行う場合と、外部のパソコンからの要求に応じて行う場合とがある。
    (操作パネルを用いた登録処理例)
  まず、操作パネル6を用いて登録処理を行う場合について、図10のフローチャートを参照しながら説明する。
  UIサービス層16のUIマネージャ16aは、操作パネル6上に新規のURL登録情報の登録ボタンを表示させる(S1)。次に、UIマネージャ16aは、登録ボタンが押下されたことを検知する(S2)。
  その後、UIマネージャ16aは、制御装置2が有するアプリケーション部25の処理を伴う制御を識別する制御識別情報(例えば、当該制御の内容を端的に示す名称など)と、当該制御を受けるための操作画面のURLとの入力指示を操作パネル6に表示する(S3)。
  そして、UIマネージャ16aは、入力部5に入力された制御識別情報とURLとを対応付けた新たなURL登録情報を生成し、UIサービス層16に記憶させる(S4)。これにより、登録処理を終了する。
  なお、UIマネージャ16aは、編集ボタンおよび削除ボタンを操作パネル6に表示してもよい。そして、編集ボタンが押下されたとき、UIマネージャ16aは、入力部5へのユーザ入力に応じて、登録済みのURL登録情報の編集を行う。また、削除ボタンが押下されたとき、UIマネージャ16aは、入力部5へのユーザ入力に応じて、登録済みのURL登録情報の削除を行う。
    (外部のパソコンからの要求による登録処理例1)
  次に、外部のパソコンから複合機1に対して新たなURL登録情報を登録する場合の具体例について説明する。
  図11は、本具体例に含まれる装置の構成を示す図である。図11に示されるように、登録アプリケーション部41を有するパソコン4と、複合機1と、複合機1と連携して動作するアプリケーション部25を有する制御装置2とが通信ネットワークを介して接続されている。ここでは、複合機1に対して、制御装置2が有するアプリケーション部25の処理を伴う制御を示すURL登録情報を新規に登録するものとする。
  図12は、本実施例におけるURL登録情報の登録処理の流れを示すフローチャートである。
  まず、パソコン4の登録アプリケーション部41は、ユーザに対して、制御装置2が有するアプリケーション部25の処理を伴う制御を識別する制御識別情報(例えば、当該制御の内容を端的に示す名称など)と、当該制御を受けるための操作画面のURLとの入力を促す(S11)。そして、登録アプリケーション部41は、入力された制御識別情報とURLとを対応付けたURL登録情報を生成する(S12)。
  その後、登録アプリケーション部41は、SOAPを用いて、生成したURL登録情報を付加した登録要求を複合機1に送信する(S13)。
  複合機1のWebサービス層17は、上記登録要求を受信する(S14)。そして、Webサービス層17のUIマネージャ17aは、当該登録要求に付加されたURL登録情報をUIサービス層16に格納する(S15)。これにより、新たなURL登録情報が登録される。
  上記のように、外部のパソコン4から複合機1に対して新たなURL登録情報を登録させることができる。そのため、アプリケーションの販売業者は、複合機1の操作パネル6を操作することなく、各複合機1に対してリモートでURL登録情報を登録することができる。
  なお、UIマネージャ17aは、パソコン4からの要求に応じて、登録済みのURL登録情報の編集または削除を行っても良い。
  このように、UIマネージャ17aは、URL登録情報の登録/編集手段として機能する。
    (外部のPCからの要求による登録処理例2)
  上記登録処理例1は、アプリケーションの販売業者が新たなURL登録情報を登録させる際に有効な具体例であった。本具体例は、新たに購入した複合機1に対して、既に使用されている複合機1に登録されているURL登録情報と同じものを登録させる場合に有効な実施例である。
  すなわち、上記登録処理例1では、パソコン4の登録アプリケーション部41がユーザ入力に従ってURL登録情報を生成したのに対し、本具体例では、登録アプリケーション部41が、通信ネットワーク上の複数の複合機1に対して登録済みのURL登録情報の送信要求を行い、各複合機1からURL登録情報を取得する。
  本実施例における登録処理の流れについて、図13のフローチャートを参照しながら説明すると以下のとおりである。
  まず、登録アプリケーション部41は、通信ネットワーク上の複数の複合機1に対して、登録済みのURL登録情報の送信要求をSOAPを用いて行う(S21)。
  各複合機1のWebサービス層17は、ドライバ層14のNICドライバ14dおよびサービス層13のネットワークサービス13gならびにWWWサーバー13fを介して、上記送信要求を受信する(S22)。
  Webサービス層17のステータスマネージャ17dは、上記送信要求に応答して、UIサービス層16からURL登録情報を全て読み出し、当該URL登録情報をSOAPを用いてPCに送信する(S23)。すなわち、ステータスマネージャ17dは、URL登録情報を外部のパソコン4に通知する通知手段として機能する。
  そして、パソコン4の登録アプリケーション部41は、各複合機1から登録済のURL登録情報を取得する(S24)。
  その後、登録アプリケーション部41は、各複合機1から取得したURL登録情報の全て、もしくは、この中からユーザ選択されたURL登録情報を付加した登録要求を、SOAPを用いて、ユーザ指定された複合機1(ここでは、新規購入した複合機1)に送信する(S25)。
  その後、上記ユーザ指定された複合機1のWebサービス層17は、上記登録要求を受信する。そして、Webサービス層17のUIマネージャ17aは、当該登録要求に付加されたURL登録情報をUIサービス層16に格納する(S26)。これにより、複合機1には、他の複合機1で登録されているURL登録情報が登録されることとなる。
  (外部のアプリケーションと連携して動作する場合の処理の具体例1:ドキュメント管理アプリケーション)
  次に、上記のように複合機1にURL登録情報が登録され、複合機1がURL登録情報に基づいて外部のアプリケーションと連携して動作する場合の処理の具体例1について説明する。
  本具体例では、複合機1でスキャンした画像データを制御装置2が有するドキュメント管理アプリケーションに格納する場合の処理を示すものである。この場合、複合機1のUIサービス層16は、制御識別情報「ドキュメント管理」と、ドキュメント管理アプリケーションと連携するための操作画面を示す操作画面データのURLとを対応付けたURL登録情報を記憶している。
  図14は、本実施例における処理の流れを示す図である。
  まず、UIサービス層16のUIマネージャ16aは、UIサービス層16が記憶しているURL登録情報の一覧を操作パネル6に表示させる。ここで、ユーザが制御識別情報「ドキュメント管理」を選択したとする。このとき、UIマネージャ16aは、制御識別情報「ドキュメント管理」に対応するURLをURL登録情報から特定する。その後、UIマネージャ16aは、当該URLで指定されるデータ(ここでは、制御識別情報「ドキュメント管理」で示される制御を行うための初期操作画面データである)の送信を要求する送信要求情報を制御装置2に出力する(S31)。このとき、UIマネージャ16aは、HTTP(またはHTTPS)を用いて要求する。
  制御装置2の情報受付部231は、上記送信要求情報を受信し、UI制御部233に送る(S32)。
  UI制御部233は、上記送信要求情報で指定されたURLに対応する操作画面データを画面データ記憶部232から読み出す。ここでは、UI制御部233は、ドキュメント管理アプリケーションに対するログイン情報の入力画面を示す操作画面データを読み出す。そして、UI制御部233は、上記送信要求情報の応答として、HTTPを用いて、読み出した操作画面データを複合機1に返信する(S33)。
  複合機1において、UIサービス層16のUIマネージャ16aは、操作画面データを受信し、当該操作画面データに基づいた操作画面(ドキュメント管理アプリケーションに対するログイン情報の入力画面)を操作パネル6に表示させる。なお、UIマネージャ16aにおける操作画面の表示処理の詳細については後述する。
  その後、複合機1のUIマネージャ16aと、制御装置2の情報受付部231およびUI制御部233とは、操作画面の遷移処理を行う(S34)。
  具体的には、上記ログイン情報の入力画面でOKボタンが押下されると、UIマネージャ16aは、HTTPを用いて、入力されたログイン情報とともに、OKボタンが押下されたことを示す押下ボタン情報を制御装置2に送信する。当該押下ボタン情報を受信した情報受付部231は、押下ボタン−処理内容テーブルを参照して、ドキュメント管理アプリケーションに対してログイン認証処理を開始させるようにアプリケーション指示部236に指示する。そして、認証成功を確認したドキュメント管理アプリケーションは、UI制御部233に対して、画像データの保存先の選択画面を示す操作画面データを出力させる。UI制御部233は、押下ボタン情報の送信に対する応答として、当該操作画面データを複合機1に送信する。
  このようにして、複合機1のUIマネージャ16aと、制御装置2の情報受付部231およびUI制御部233とは、操作画面を、画像データの保存先の選択画面、スキャン実行パラメータの設定画面、メタデータの入力画面、スキャン実行画面に遷移させる。
  最後の操作画面であるスキャン実行画面においてスキャン実行ボタンが押下されると、UIマネージャ16aは、HTTPを用いて、当該スキャン実行ボタンが押下されたことを示す押下ボタン情報を制御装置2に送信する(S35)。
  図15は、スキャン実行画面の一例を示す図である。また、図16は、図15に示すスキャン実行画面を示す操作画面データの一例を示す図である。
  この場合、UIマネージャ16aは、スキャン実行ボタン(id="id_ok"というボタン)が押下されたことを示す押下ボタン情報を送信する。
  制御装置2の情報受付部231は、スキャン実行ボタン(id="id_ok")が押下されたことを受けて、押下ボタン−処理内容テーブル(図5)を参照し、デバイス制御部235に対して制御内容「スキャン」の制御指示を生成することを指示する(S36)。
  デバイス制御部235は、制御内容「スキャン」に対応する制御指示を、制御指示テーブル記憶部234から読み出し、SOAPを用いて、当該制御指示を複合機1に送信する。例えば、制御指示テーブルが図7のように示される場合、デバイス制御部235は、制御指示'JobCreate'、'ExecuteScan'を順に出力する(S37、S38)。なお、制御指示'ExecuteScan'には、UIで設定された各種のパラメータが付加されている。
  なお、デバイス制御部235は、制御指示をSOAPを用いて送信する。図17は、ジョブの生成(スキャン)のSOAPメソッドの一例を示す図である。
  一方、上記制御指示をSOAPを用いて受信した複合機1では、Webサービス層17のジョブマネージャ17bが制御指示'ExecuteScan'に応じてOSAアプリ層18の適切なモジュールを呼び出す。そして、以下に示すようにして、スキャンが実行される(S39)。
  すなわち、ジョブマネージャ17bは、制御指示と、当該制御指示で示される制御を行うための装置機能を実行するためのOSAアプリ層18のモジュールとを対応付けたテーブルを記憶している。ここでは、ジョブマネージャ17bは、制御指示'ExecuteScan'と、OSAアプリ層18のイメージ送信アプリ18cとが対応付けられたテーブルを記憶している。そのため、ジョブマネージャ17bは、OSAアプリ層18のイメージ送信アプリ18cを実行させる。このとき、ジョブマネージャ17bは、制御指示に付加されている各種のパラメータをイメージ送信アプリ18cに出力する。
  その後、イメージ送信アプリ18cは、下位のOpenI/F層19に対して、当該OpenI/F層19が外部に公開している第1API(ここでは、'ExecuteScan')を出力する。
  OpenI/F層19は、OSAアプリ層18(ここでは、イメージ送信アプリ18c)から受けた第1API(ここでは、'ExecuteScan')に対応する、サービス層13が受付可能な第2API(ここでは、'Do Scan'、'Save File'、'Send By FTP')を、APIテーブル(図9参照)から読み出す。そして、OpenI/F層19は、読み出した第2APIをAPIテーブルが記憶する呼び出し順でサービス層13に出力する。そして、サービス層13は、第2APIに対応して、要素機能(ここでは、スキャンサービス、ファイルサービス、およびネットワークサービス)を実行させる。このとき、サービス層13は、ドライバ層14の適切なモジュールを実行させる。
  そして、サービス層13は、画像をスキャンし(S39)、スキャンされた画像データを、FTPを用いて制御装置2に送信する(S40)。
  具体的には、まず、OpenI/F層19は、第2API'Do Scan'および'Save File'をサービス層13に送り、サービス層13は、スキャンした画像データを複合機1内のハードディスクドライブまたはメモリに格納し、その記憶領域をイメージ送信アプリ18cに通知する。そして、イメージ送信アプリ18cは、上記記憶領域をOpenI/F層19に通知する。その後、OpenI/F層19は、通知された記憶領域に格納されている画像データを、FTPで送信させることを示す第2API'Send By FTP'をサービス層13に送る。これにより、サービス層13のファイルサービス13eおよびネットワークサービス13gは、指示された記憶領域から画像データを読み出し、FTPを用いて、指示された送信先に送信する。
  制御装置2では、連携モジュール24およびアプリケーション部25のドキュメント管理アプリケーションが画像データを待ち受けている。そして、連携モジュール24は、受信した画像データを、ドキュメント管理アプリケーションに送る。さらに、ドキュメント管理アプリケーションは、UIで設定された保存先のフォルダに当該画像データを保存する処理を行う。
  ドキュメント管理アプリケーションが処理を終了すると、アプリケーション部25は、デバイス制御部235に対して、処理が終了したことを通知する(S41)。これを受けて、デバイス制御部235は、最後の制御指示'JobClose'を複合機1に送信し(S42)、処理を終了する。
  以上のようにして、複合機1は、予め登録されたURLを指定することで、制御装置2が有するドキュメント管理アプリケーションを利用するための操作画面データを取得し、操作画面を操作パネル6に表示させることができる。そして、制御装置2のMFP制御ロジック部23およびアプリケーション部25は、操作画面に入力された情報に基づいて、複合機1の操作パネル6上の操作画面を制御するとともに、複合機1の要素機能を制御する。
  なお、デバイス制御部235は、上記制御指示'JobCreate'、'ExecuteScan'、'JobClose'以外にも、操作画面に対するユーザ入力に応じて、ジョブパラメータの設定を指示する制御指示、ジョブの停止または中止を指示する制御指示を出力してもよい。
  (外部のアプリケーションと連携して動作する場合の処理の具体例2:認証アプリケーション)
  本具体例は、複合機1が制御装置2の認証アプリケーションと連携して動作する場合の例である。つまり、複合機1を使用するユーザが正当なユーザであるか否かの認証処理を制御装置2で行わせ、当該認証結果に応じて、制御装置2が複合機1の装置機能の制限を行うものである。
  本具体例を説明する前に本具体例に対する比較例について説明する。
  図19は、HTTPのみで通信を行う比較例における認証処理の流れを示す図である。HTTPは、HTTPリクエスト(要求)とHTTPレスポンス(応答)とが1対1のペアとして通信されるものである。すなわち、クライアントがHTTPリクエストをサーバに対して行うと、サーバは、当該HTTPリクエストに対応するHTTPレスポンスをクライアントに返信する。サーバは、HTTPリクエストがないのに何らかのデータをクライアントに送信することができない。また、クライアントは、HTTPリクエストを送信していないのに、サーバから何らかのデータを受信することができない。
  図19に示されるように、比較例では、複合機1(クライアント)がログインデータをサーバに送信すると、サーバは、当該送信に応答して、認証処理が終了したのち、次の操作画面データを複合機1に送信する。この場合、ユーザは、認証処理が終了するまでの間、次の画面を確認することができず、正常に認証処理が行われているのかどうか不安に思うこととなる。そのため、「ログイン中です」というような画面を複合機1の操作パネル6に表示する必要がある。しかしながら、比較例では、ログインデータの送信の応答として「ログイン中です」という画面を返信してしまうと、次の操作画面データを送信することができなくなる。複合機1からのリクエストがないからである。
  本実施形態によれば、複合機1からのHTTPリクエストに応じて、制御装置2のアプリケーション部25が何らかの処理を行う場合であっても、当該処理の間に、複合機1の操作パネル6上の操作画面を遷移させることが可能となる。本具体例は、当該効果を説明するのに適した例である。図20は、本具体例における認証処理の流れを示す図である。
  まず、複合機1において、UIサービス層16のUIマネージャ16aは、操作パネル6の表示処理を起動する際に、UIサービス層16に登録されているURL登録情報から、制御識別情報「認証制御」に対応するURLを特定し、当該URLで指定される操作画面を示すデータの送信を要求する送信要求情報を制御装置2に出力する(S51)。
  そして、制御装置2において、情報受付部231が上記送信要求情報をUI制御部233に送り(S52)、UI制御部233は、当該送信要求情報で指定される操作画面(ここでは、ログインデータ入力画面)を示す操作画面データを複合機1に返信する(S53)。
  そして、複合機1において、UIサービス層16のUIマネージャ16aは、受信した操作画面データに基づいて、ログインデータ入力画面を表示する。図21は、ログインデータ入力画面の一例を示す図である。
  ここで、ユーザは、ログインデータを入力し、OKボタンを押下する。この入力を受けて、UIマネージャ16aは、入力されたログインデータとともに、OKボタンが押下されたことを示す押下ボタン情報を制御装置2に送信する(S54)。
  情報受付部231は、上記押下ボタン情報を受信すると、押下ボタン−処理内容テーブル(図5)を参照して、UI制御部233に対して、「ログイン中です」を示す操作画面の送信指示を行うとともに(S55)、アプリケーション指示部236に対して、認証アプリケーションの処理を開始させるように指示する(S56)。
  UI制御部233は、S55の送信指示に従い、「ログイン中です」を示す操作画面のデータを画面データ記憶部232から読み出し、複合機1に送信する(S57)。
  一方、アプリケーション指示部236は、S56の指示に従い、認証アプリケーションを起動させる。そして、認証アプリケーションは、予め登録されている認証データベースを用いて、認証処理を行う(S58)。
  認証アプリケーションは、認証処理が成功すると、デバイス制御部235に対して、ログインユーザに応じた、複合機1の各要素機能の使用制限を示す制御内容「要素機能の制限」と、所定の操作画面へ変更することを示す制御内容「画面変更」とを出力する(S59)。
  なお、認証アプリケーションは、ログインユーザごとに、要素機能の使用制限情報を記憶している。例えば、ユーザAがカラー印刷を行うことを禁止したい場合、管理者は、予め認証アプリケーションに対して、ユーザAと、カラー印刷不可とを対応付けて登録しておく。
  そして、デバイス制御部235は、制御内容「要素機能の制限」に対応する制御指示(「要素機能の制限」)を制御指示テーブル記憶部234から取得し、当該制御指示(「要素機能の制限」)を複合機1に出力する(S60)。
  当該制御指示(「要素機能の制限」)を受けた複合機1において、Webサービス層17のサービスマネージャ17eは、OSAアプリ層18のユーザ認証アプリ18eを呼び出す。そして、ユーザ認証アプリ18eは、制御指示に応じて、サービス層13の要素機能の制限を制御する第1APIをOpenI/F層19に送る。OpenI/F層19は、ユーザ認証アプリ18eからの第1APIを、サービス層13が受付可能な第2APIに変換し、サービス層13に指示する。
  これにより、例えば、サービス層13のプリントサービス13bは、カラー印刷が使用不可となり、印刷部数が最大5部までのように要素機能が制限されることとなる(S61)。
  また、デバイス制御部235は、制御内容「画面変更」に対応する制御指示(「画面変更」)を制御指示テーブル記憶部234から取得し、当該制御指示(「画面変更」)を複合機1に出力する(S62)。なお、当該制御指示「画面変更」には、次の操作画面に対応するURLが付加されている。
  上記制御指示(「画面変更」)を受けた複合機1において、Webサービス層17のUIマネージャ17aは、当該制御指示に付加されたURLで指定された操作画面を表示させるように、UIサービス層16に指示する(S63)。
  そして、UIサービス層16のUIマネージャ16aは、HTTPを用いて、指示されたURLに特定される操作画面データの送信を要求する送信要求情報を制御装置2に対して出力する(S64)。制御装置2において、情報受付部231は、当該送信要求情報をUI制御部233に送る(S65)。UI制御部233は、送信要求情報で指定されたURLに対応する操作画面データを複合機1に送信し(S66)、複合機1は、操作画面を操作パネル6に表示させる。
  (具体例2の変形例)
  上記具体例2では、複合機1において、UIサービス層16が制御装置2から送信されたログインデータ入力画面のデータを取得し、ログインデータ入力画面を操作パネル6に表示させ、入力部5からログインデータを取得するものとした。しかしながら、ログインデータは、入力部5ではなく、外部のパソコン4から取得してもよい。本変形例は、ログインデータを外部のパソコン4から取得する場合の例である。本変形例では、外部のパソコン4とは、複合機1に対して印刷ジョブを出力し、当該印刷データに対応する画像を形成させる印刷ジョブ生成装置とする。
  図22は、本変形例における処理の流れを示す図である。
  まず、パソコン4は、印刷ジョブを生成し、複合機1に対して、当該印刷ジョブを出力する(S71)。この際、パソコン4は、ユーザ名やパスワードからなるログインデータも合わせて出力する。
  複合機1のWebサービス層17のサービスマネージャ17eは、当該印刷ジョブからログインデータを抽出する。そして、サービスマネージャ17eは、SOAPを用いて、抽出したログインデータを付加した認証処理要求情報を制御装置2に送信する(S72)。
  制御装置2において、情報受付部231は、認証処理要求情報を受信すると、処理要求−処理内容テーブル(図6参照)を参照して、アプリケーション指示部236に対して、認証アプリケーションの起動指示を送る(S73)。そして、アプリケーション指示部236は、認証アプリケーションを起動させる。認証アプリケーションは、予め登録されている認証データベースを用いて、認証処理を行う(S74)。
  認証アプリケーションは、認証処理が成功すると、デバイス制御部235に対して、印刷処理を許可する旨を示す制御内容「印刷処理可」を出力する(S75)。
  そして、デバイス制御部235は、制御内容「印刷処理可」に対応する制御指示を制御指示テーブル記憶部234から取得し、当該制御指示を複合機1に出力する(S76)。
  当該制御指示を受けた複合機1では、Webサービス層17のサービスマネージャ17eは、OSAアプリ層18のユーザ認証アプリ18eを呼び出す。そして、ユーザ認証アプリ18eは、プリント機能をONに切り替える旨の第1APIをOpenI/F層19に送る。OpenI/F層19は、ユーザ認証アプリ18eからの第1APIを、サービス層13が受付可能な第2APIに変換し、サービス層13に指示する。これにより、サービス層13のプリントサービス13bがONとなり、パソコン4から送信された印刷ジョブに基づいた印刷処理が行われる(S77)。
  (外部のアプリケーションと連携して動作する場合の処理の具体例3:自動翻訳処理を用いた制御)
  本実施形態は、複合機1の操作画面を遷移させている間に、制御装置2においてバックグラウンド処理を行うことができる。これにより、制御装置2における処理速度が向上するという効果を奏する。本具体例は、当該効果を説明するのに適した例である。
  本具体例3では、複合機1は、制御装置2が有するアプリケーション部25のOCRアプリケーションおよび翻訳アプリケーションと連携するものである。すなわち、複合機1でスキャンされた画像データからOCRアプリケーションが文字データを抽出し、翻訳アプリケーションが他の言語に翻訳する。そして、翻訳後の文書を複合機1にて印刷する。
  本具体例3では、図14に示すような処理に従って、制御装置2は、複合機1から、スキャンした画像データを取得している。その後の処理について、図23を参照しながら説明する。
  まず、複合機1において、UIサービス層16のUIマネージャ16aは、UIサービス層16のURL登録情報記憶部(図示せず)が記憶するURL登録情報の一覧を操作パネル6に表示する。この中には、自動翻訳処理を利用した制御に対応する操作画面のURLが含まれている。ここでは、ユーザが当該URLを選択するものとする。これにより、UIマネージャ16aは、制御装置2に対して、選択されたURLに対応するデータの送信要求情報を送信する(S81)。
  制御装置2において、上記送信要求情報を受け付けた情報受付部231は、当該送信要求情報をUI制御部233に送る(S82)。UI制御部233は、送信要求情報で示されるURLに対応する操作画面データ(ここでは、OCR処理を行う際のパラメータA入力画面を示すデータである)を画面データ記憶部232から読み出し、HTTPを用いて複合機1に送信する(S83)。
  次に、複合機1において、UIサービス層16のUIマネージャ16aは、受信した操作画面データに基づいて、OCR処理用のパラメータA入力画面を操作パネル6に表示させる。そして、ユーザがパラメータAを入力し、OKボタンを押下すると、UIマネージャ16aは、入力されたパラメータAとともに、OKボタンが押下されたことを示す押下ボタン情報を制御装置2に送信する(S84)。
  続いて、制御装置2において、情報受付部231は、受信した押下ボタン情報に対応する処理内容情報を、押下ボタン−処理内容テーブルから読み出し、UI制御部233およびアプリケーション制御部に所定の指示を出す(S85、S86)。ここでは、上記押下ボタン情報と、翻訳処理用のパラメータB入力画面を示すデータを出力する旨の操作画面変更処理、および、OCRアプリケーションの起動を含む処理内容情報とが対応付けられているものとする。
  アプリケーション指示部236は、OCRアプリケーションを起動させ、複合機1から送信されたパラメータAを用いたOCR処理を実行させる(S87)。
  上記OCR処理と並行して、UI制御部233は、翻訳処理用のパラメータB入力画面を示す操作画面データを画面データ記憶部232から読み出し、複合機1に送信する(S88)。そして、複合機1では、当該パラメータB入力画面が表示される。
  ユーザは、翻訳処理用のパラメータB入力画面に対してパラメータBを入力し、OKボタンを押下する。これにより、UIマネージャ16aは、入力されたパラメータBとともに、OKボタンが押下されたことを示す押下ボタン情報を制御装置2に送信する(S89)。
  次に、制御装置2において、情報受付部231は、受信した押下ボタン情報に対応する処理内容情報を、押下ボタン−処理内容テーブルから読み出し、UI制御部233およびアプリケーション制御部に所定の指示を出す(S90、S91)。ここでは、当該押下ボタン情報と、印刷処理用のパラメータC入力画面を示すデータを出力する旨の操作画面変更処理、および、翻訳アプリケーションの実行処理を含む処理内容情報とが対応付けられているものとする。
  アプリケーション指示部236は、翻訳アプリケーションを起動させ、複合機1から送信されたパラメータBを用いて、OCR処理された文字データの翻訳処理を実行させる(S92)。
  上記翻訳処理と並行して、UI制御部233は、印刷処理用のパラメータC入力画面を示す操作画面データを画面データ記憶部232から読み出し、複合機1に送信する(S93)。そして、複合機1では、当該パラメータC入力画面が表示される。
  ユーザは、印刷処理用のパラメータC入力画面に対してパラメータCを入力し、OKボタンを押下する。これにより、UIマネージャ16aは、入力されたパラメータCとともに、OKボタンが押下されたことを示す押下ボタン情報を制御装置2に送信する(S94)。
  次に、制御装置2において、情報受付部231は、受信した押下ボタン情報に対応する処理情報を、押下ボタン−処理内容テーブルから読み出し、UI制御部233およびアプリケーション制御部に所定の指示を出す(S95、S96)。ここでは、当該押下ボタン情報と、「印刷処理中です」と記載された操作画面を示すデータを出力する旨の操作画面変更処理、および、印刷ジョブ生成アプリケーションの実行処理を含む処理内容情報とが対応付けられているものとする。
  アプリケーション制御部は、印刷ジョブ生成アプリケーションを起動させ、複合機1から送信されたパラメータCを用いて、翻訳された文字データを含む文書の印刷ジョブを生成させる(S97)。
  上記印刷ジョブ生成処理と並行して、UI制御部233は、「印刷処理中です」と記載された操作画面を示す操作画面データを画面データ記憶部232から読み出し、複合機1に送信する(S98)。そして、複合機1では、当該操作画面が表示される。
  その後、印刷ジョブ生成アプリケーションは、印刷ジョブの生成処理が終了すると、デバイス制御部235に対して、制御内容「印刷」の制御指示の出力指示を送る(S99)。デバイス制御部235は、制御内容「印刷」に対応する制御指示を制御指示テーブル記憶部234から読み出し、SOAPを用いて複合機1に送信する(S100)。このとき、デバイス制御部235は、印刷ジョブも合わせて送信する。
  複合機1では、Webサービス層17のジョブマネージャ17bが上記制御指示を受信し、OSAアプリ層18のプリントアプリ18bを呼び出す。そして、プリントアプリ18bは、OpenI/F層19に対して、印刷を命令する第1APIを出力する。OpenI/F層19は、プリントアプリ18bからの第1APIを、サービス層13が受付可能な第2APIに変換し、変換後の第2APIをサービス層13に送る。そして、サービス層13の適切なモジュール(ここでは、プリントサービス、画処理サービスなど)が、各々に対応する要素機能を用いて、印刷実行する(S101)。
  また、デバイス制御部235は、初期操作画面への変更指示を示す制御指示を複合機1に送信する(S102)。そして、複合機1において、Webサービス層17のUIマネージャ17aは、受信した当該制御指示に基づいて、UIサービス層16のUIマネージャ16aに対して初期操作画面への変更指示を送る。これにより、UIサービス層16のUIマネージャ16aは、操作パネル6の画面を初期操作画面へ変更させる。
  (外部のアプリケーションと連携して動作する場合の処理の具体例4:イベント集計アプリケーション)
  本具体例は、複合機1において所定のイベントが行われた場合に、当該イベントのジョブが終了したことを示すジョブ結果通知を制御装置2に送信させる制御を行うものである。
  本具体例では、複合機1は、制御装置2が有するアプリケーション部25のイベント集計アプリケーションと連携するものである。すなわち、所定のイベントについて、制御装置2が、複合機1で実行された結果(イベント内容情報)を通知するジョブ結果通知を複合機1から取得し、その結果を集計する。
  本実施例における処理の流れについて、図28を参照しながら説明する。
  まず、制御装置2のアプリケーション部25が有するイベント集計アプリケーションは、イベント送信登録情報をデバイス制御部235に出力する(S121)。そして、デバイス制御部235は、当該イベント送信登録情報を付加した登録制御指示を、複合機1に送る(S122)。
  なお、上記イベント送信登録情報とは、イベントの項目(例えば、認証処理、スキャン処理、コピー処理、操作ボタンの押下の検知処理など)と、通知するジョブ内容(例えば、ジョブ終了、エラー発生など)と、イベント内容情報の送信先を示す送信先情報とを含む。
  図29は、イベント送信登録情報の一例を示す図である。図29のイベント送信登録情報は、イベントの項目:「JB0001」、ジョブ内容:「ジョブ終了」、送信先:「http://192.0.0.1/event」を示している。
  次に、Webサービス層17のイベントマネージャ17cは、イベント送信登録情報が付加された登録制御指示を受けると、OSAアプリ層18のイベントアプリ(図示せず)を呼び出す(S123)。
  そして、イベントアプリは、OpenI/F層19に対してイベント登録を行う(S124)。つまり、イベントアプリは、上記イベント送信登録情報をOpenI/F層19に出力する。OpenI/F層19は、上記イベント送信登録情報を管理する。つまり、OpenI/F層19は、イベント送信登録情報に基づいて、送信先情報ごとに、図30に示されるように、イベント項目と、ジョブ内容と、通知の有無(有効;通知、無効:非通知)とを対応付けたイベント管理テーブルを記憶する。すなわち、OpenI/F層19は、当該イベント管理テーブルを記憶する、図示しないイベント管理テーブル記憶部(登録情報管理部)を備えている。
  その後、OpenI/F層19は、サービス層13において発生するイベントを監視し、イベント管理テーブルで管理されているイベント項目のイベント内容に対応する要素機能が実行されたか否かを判断する(S125)。すなわち、OpenI/F層19は、上記イベント管理テーブル管理部が記憶するイベント項目のイベント内容に対応する要素機能が実行されたか否かを判断する判断手段(図示せず)を備えている。
  上記イベント内容が実行された場合、OpenI/F層19は、イベント管理テーブルで管理されているイベントにおいて、同テーブルの対応するイベント内容が実行されたことを示すジョブ結果通知をOSAアプリ層18に出力する(S126)。そして、OSAアプリ層18は、ジョブ結果通知を制御装置2に送信する旨のイベント情報送信コマンド(第1API)を生成し、OpenI/F層19に送る(S127)。OpenI/F層19は、APIテーブルに基づいて、OSAアプリ層18から受けたイベント情報送信コマンドに対応する第2APIを読み出し、サービス層13に送る(S128)。そして、サービス層13は、当該第2APIに応じて、上記ジョブ結果通知を含む集計処理要求情報を制御装置2に送信する(S129)。図31は、ジョブ結果通知の一例を示す図である。
  制御装置2の情報受付部231は、上記集計処理要求情報を受けると、処理要求−処理内容テーブルを参照して、アプリケーション部25のイベント集計アプリケーションが処理を起動させるように、アプリケーション指示部236に指示する(S130)。そして、アプリケーション指示部236からの指示に応じて、イベント集計アプリケーションがジョブ結果通知を集計する(S131)。
  (操作画面の表示処理)
  次に、複合機1のUIサービス層16における操作画面の表示処理について説明する。
  制御装置2のUI制御部233から複合機1のUIサービス層16へ送信される操作画面データには、操作画面の画面スタイル(画面形式)を示す画面スタイル情報(画面種別情報)と、当該操作画面を構成するパーツ(画像パーツ)の種類(タイトル、四角ボタン、ラジオボタン、チェックボックスなど)を示すパーツ種類情報と、各パーツ上のテキストを示すサブ情報とが含まれている。
  一方、UIサービス層16のUIマネージャ16aは、上記画面スタイル情報と、当該画面スタイルで定義される画面を構成する各パーツ(タイトル、四角ボタン、ラジオボタン、チェックボックスなど)の表示形式(形状やサイズなど)および位置を示すパーツ表示情報とを対応付けて記憶する画面テーブル記憶部(図示しない)を備えている。そして、UIマネージャ16aは、受信した操作画面データを複合機1の操作パネル6に適したUIデータに変換する。
  具体的には、UIマネージャ16aは、操作画面データから、画面スタイル情報、パーツ種類情報、およびサブ情報を抽出する。
  そして、UIマネージャ16aは、操作画面データから抽出した画面スタイル情報に対応するパーツ表示情報を上記画面テーブル記憶部(図示しない)から読み出して、操作画面データにおけるパーツの記載順序に従って、各パーツの位置を決定する。
  また、UIマネージャ16aは、操作画面データから抽出した画面スタイル情報に対応するパーツ表示情報を上記画面テーブル記憶部(図示しない)から読み出し、全てのパーツについて、操作画面データから抽出したパーツ種別情報に基づいて表示形式を決定する。さらに、UIマネージャ16aは、操作画面データから抽出したサブ情報に基づいて、パーツ内に表示するテキストを決定する。そして、UIマネージャ16aは、決定内容に従ってUIデータを生成する。
  以下、図24のフローチャートを参照しながら、操作画面の具体的な表示処理の流れについて説明する。
  まず、UIマネージャ16aは、PCから操作画面データを受信する(S111)。
図25は、制御装置2から送信される操作画面データの一例を示す図である。図25において、(A)部は、操作画面のデザイン構成及びタイトルを指定している。なお、"osa_menu"は、画面スタイル情報であり、各複合機1において、定義づけられている。ここでは、"osa_menu"は、画面上部にコントロールボタンが位置し、下部にコンテンツボタンが位置する画面スタイルに対応する。
  (B)部は、操作画面の上部に表示するコントロールボタンを指定している。(C)部は、コントロール画面に表示するタイトルを指定している。(D)部は、コンテンツボタンを指定している。なお、type="submit"はサブミットボタンを示し、Titleはボタンに表示する文字列を示し、type="checkbox"はチェックボックスを示し、selected=”true”はデフォルトで選択状態にしておくためのスタイル指示を示している。
  次に、UIマネージャ16aは、操作画面データから、画面スタイル情報"osa_menu"、パーツ種別情報ならびにサブ情報を抽出する(S112)。
  その後、UIマネージャ16aは、画面スタイル情報"osa_menu"に対応する、各パーツ表示情報を、画面テーブル記憶部(図示しない)から読み出して、操作画面データにおけるパーツの記載順序に従って、各パーツの位置を決定する(S113)。
  さらに、UIマネージャ16aは、上記パーツ表示情報と、操作画面データから抽出したパーツ種別情報("submit"や"checkbox")とに基づいて、表示形式を決定し、サブ情報に基づいて、各パーツ上に記載する文字を決定する(S114)。
  そして、UIマネージャ16aは、決定内容に従ってUIデータを生成する(S115)。例えば、UIマネージャ16aは、図25に示す操作画面データから、図26に示されるようなUIデータを生成する。
  その後、UIマネージャ16aは、生成したUIデータに基づいて、操作パネル6上に操作画面を表示させる(S116)。図27は、図26に示すUIデータに基づいた操作画面を示す図である。
  なお、上記の説明では、OSAアプリ層18が制御装置2から受けた制御指示に応じて、第1APIを生成するものとした。しかしながら、制御装置2は、複合機1に対して、第1APIを直接送信してもよい。この場合、OpenI/F層19は、制御装置2から送信された第1APIをそのまま受け付ければよい。
  以上のように、本実施形態に係る複合機1は、スキャン機能(画像読取機能)、プリント機能(画像形成機能)および通信機能を含む複数の要素機能を適宜組み合わせて実行することにより装置機能を実現するものである。そして、複合機1は、上記複数の要素機能を実行するサービス層(要素機能実行手段)13と、上記装置機能を実行するための第1API(第1制御コマンド)と、上記サービス層13が受け付け可能な第2API(第2制御コマンド)とを対応付けたAPIテーブルを記憶するAPIテーブル記憶部(OpenI/F層19が備える記憶部であり、コマンド記憶部に相当する)と、上記第1APIを受け付け、当該第1APIに対応する第2APIを上記APIテーブルから特定し、特定した第2APIをサービス層13に対して出力するOpenI/F層(制御コマンド変換手段)19とを備える。
  図18で示したように、通常、サービス層13は、複合機1に固有の構成となる。そのため、サービス層13が受け付け可能な第2APIも複合機1の機種によって異なるものとなる。
  しかしながら、上記の構成によれば、OpenI/F層19が、第1APIを受け付け、当該第1APIに対応する第2APIをAPIテーブルから特定し、特定した第2APIをサービス層13に対して出力する。これにより、第2APIが上述したように複合機1の機種に依存するものであっても、OpenI/F層19が受け付けることができる第1APIを複合機1の機種に依存しないものにすることができる。
  これにより、外部の制御装置2が複合機1を制御する場合、制御装置2は、複合機1の機種に依存しない第1API、または、当該第1APIの基となる制御指示を複合機1に出力すればよい。その結果、制御装置2から複合機1に対して新たな制御を行う場合であっても、複合機1によらず共通した第1APIまたはその基となる制御指示を生成するように制御装置2を開発すればよく、その開発効率が簡易となる。
  さらに、複合機1は、通信ネットワークを介して制御装置2から制御指示を受け付けるWebサービス層(制御指示受付手段)17と、Webサービス層17が受け付けた制御指示に応じて、上記装置機能を実行するための第1APIを生成し、生成した第1APIをOpenI/F層19に送るOSAアプリ層(装置機能制御手段)18とを備える。
  上述したように、第1APIは、複合機1の機種によらず共通したものにすることができる。そのため、OSAアプリ層18も複合機1の機種によらず共通した構成にすることが可能であり、複合機1の開発効率が向上する。
  また、OSAアプリ層18を制御するために操作画面を用いる場合、OSAアプリ層18が複合機1の機種に依存しないため、当該操作画面についても、複合機1の機種によらず、同じもの、もしくは、類似するものとなる。この結果、ユーザは、異なる機種であっても、同様の操作画面に対して操作することとなり、ユーザの操作性が向上する。
  そして、OSAアプリ層18が複合機1の機種に依存しないため、当該OSAアプリ層18が受付可能な制御指示についても、複合機1の機種に依存しない。そのため、制御装置2は、複合機1の機種に依存しない制御指示を複合機1に出力すればよい。その結果、制御装置2から複合機1に対して新たな制御を行う場合であっても、複合機1によらず共通した第1制御コマンドまたはその基となる制御指示を生成するように制御装置2を開発すればよく、その開発効率が簡易となる。
  さらに、APIテーブルは、1つの第1APIに対応付けて複数の第2APIを記憶する場合、当該複数の第2APIの出力順序を記憶しており、OpenI/F層19は、上記出力順序に応じて、上記複数の第2APIを順次出力する。
  複数の要素機能を組み合わせて実行する装置機能の場合、その実行順序を適切に定めなければ、当該装置機能を正常に実現できない。しかしながら、上記の構成によれば、APIテーブルの出力順序に応じて出力するため、正常に装置機能を実現することができる。
  さらに、上記制御装置2からの制御指示には、複写、スキャン、印刷、画像送信の少なくとも1つについての、ジョブの生成、実行パラメータの設定、ジョブの実行、ジョブの停止、ジョブの中止、ジョブの終了のうちの少なくとも1つが含まれる。これにより、外部の制御装置2から、複写等のジョブの実行、停止、終了などの制御を複合機1に対して行うことができる。
  さらに、上記制御装置2からの制御指示には、複写、スキャン、印刷、画像送信の少なくとも1つのジョブの実行、ボタン操作、ログイン、ログアウトを含む複数のイベント項目の中から選択されたイベント項目の結果を示すイベント情報の送信要求が含まれる。そして、複合機1は、上記送信要求に含まれる、イベント項目(ならびにイベント内容)および送信先を互いに対応付けたイベント管理テーブルを記憶するイベント管理テーブル記憶部(図示せず)(登録情報管理部)と、イベント管理テーブルのイベント項目(ならびにイベント内容)に対応する要素機能がサービスにより実行されたか否かを判断する判断手段(OpenI/F層19が備える図示しない判断手段である)とを備える。イベント管理テーブルのイベント項目に対応する要素機能が実行されたと上記判断手段により判断された場合に、OSAアプリ層18は、当該イベント項目に対応する送信先をイベント管理テーブルから特定し、上記第1APIとして、特定した送信先に対して、当該イベント項目の結果を示す上記イベント情報を送信させるイベント情報送信コマンドを生成する。
  上記の構成によれば、複合機1に発生したイベントの結果を、外部の制御装置2で集計することができる。このとき、制御措置は、集計に必要なイベント項目のみの送信要求を複合機1に行い、当該イベント項目に対応する要素機能が実行されたときにその結果を示すイベント情報を受信することができる。これにより、制御装置2は、送信要求を行うだけで、必要なイベント項目のイベント情報のみを、当該イベント項目が発生したときに即座に取得することができる。その結果、制御装置2は、現時点における正確なイベント情報の集計を行うことができる。
  さらに、上記装置機能には、上記要素機能の有効/無効を制御する機能が含まれ、Webサービス層17は、上記制御指示として、各要素機能の有効/無効を切り替える有効/無効切替指示を受け付ける。これによれば、制御装置2は、複合機1の要素機能の有効/無効を切り替える制御を行うことができる。
  さらに、複合機1は、操作パネル(表示部)6と、制御装置2が制御指示を生成するための操作画面を操作パネル6に表示させるUIサービス層(UI処理手段)16とを備える。UIサービス層16は、上記操作画面の操作画面データを要求する送信要求情報(リクエスト情報)を上記制御装置2に送信し、当該送信要求情報に対するレスポンスとして、当該操作画面データを上記制御装置2から取得し、取得した操作画面データに基づいた操作画面を操作パネル6に表示させる。さらに、UIサービス層16は、操作画面に入力された情報を上記制御装置2に送信する。
  一方、制御装置2は、上記複合機1から、上記送信要求情報を受け付ける情報受付部(リクエスト情報受付手段)231と、情報受付部231が受け付けた送信要求情報に対応する操作画面データを複合機1に返信するUI制御部(画面データ送信手段)233と、UI制御部233が送信した操作画面データに対応する操作画面における押下ボタン情報(操作入力情報)に基づいて、複合機1を制御するための制御指示を生成し、上記複合機1に送信するデバイス制御部(制御指示送信手段)235とを備える。
  これにより、複合機1は、操作画面の操作画面データ自体を管理しなくてもよく、必要なときに制御装置2に要求すればよい。その結果、制御装置2から複合機1に対する新たな制御を開発する場合でも、複合機1に操作画面の操作画面データを組み込む必要がなくなる。これにより、開発効率が一層向上する。
  そして、UIサービス層16は、操作画面に入力された情報を上記制御装置2に送信する。これにより、制御装置2のデバイス制御部235は、操作画面に入力された情報に基づいて、制御指示を生成することができる。
  また、UIサービス層16が上記送信要求情報および操作画面データを送受信する際に用いる第1通信方式(第1通信プロトコル)と、Webサービス層17が上記制御指示を受け付ける際に用いる第2通信方式と(第2通信プロトコル)が異なる。すなわち、情報受付部231およびUI制御部233が送信要求情報および操作画面データの送受信に用いる第1通信方式と、デバイス制御部235が上記制御指示の送信に用いる第2通信方式とが異なる。
  例えば、上記第1通信方式がHTTPまたはHTTPSであり、上記第2通信方式がSOAPである。
  上記の構成によれば、第1通信方式を、操作画面データの送信要求情報および操作画面データの送受信に適した通信方式(例えば、HTTPなど)にすることができ、第2通信方式を制御指示の送受信に適した通信方式(例えば、SOAPなど)にすることができる。
  HTTPは、現在、Webページ等を閲覧する場合に、クライアント装置およびサーバ装置間の通信に汎用されているものである。操作画面の操作画面データの通信についてもHTTPを用いることで、UI処理手段を汎用されているWebブラウザ等で容易に実現することができる。
  また、HTTPでは、getやputなどの処理内容が限定される。そのため、制御指示については、SOAPなど通信方式(通信プロトコル)を用いることで、様々な処理が実現可能となる。
  さらに、上記操作画面が、ユーザ認証を行うための、ユーザを識別するユーザ情報のログインデータ入力画面であり、UIサービス層16は、ログインデータ入力画面に入力されたユーザ情報を上記制御装置2に送信する。そして、Webサービス層17は、上記制御指示として、UIサービス層16が送信したユーザ情報に応じた、各要素機能の有効/無効を切り替える有効/無効切替指示を受け付け、OSAアプリ層18は、上記有効/無効切替指示に応じて、各要素機能の有効/無効を切り替えるための第1APIを生成する。
  従来、複合機1においてユーザ認証処理を行う場合、ユーザ認証処理のための登録情報やプログラム等を複合機1に組み込む必要があった。この場合、複合機1には他の様々な構成が存在するため、ユーザ認証処理のための構成に制限が加わり(例えば、データベースの容量等の制限)、登録数が制限される可能性があった。
  上記の構成によれば、複合機1は、入力画面の要求・取得・表示と、入力されたユーザ情報の送信とを行うだけで、当該ユーザ情報で示されるユーザに応じた要素機能の有効/無効の切替指示を受けることができる。すなわち、ユーザ認証処理は、制御装置2で実行され、複合機1では実行されない。そのため、複合機1にユーザ認証処理のための構成を組み込む必要がない。また、制御装置2は、複合機1の外部に存在し、複合機1のようにユーザ認証処理のための構成に対する制限がない。そのため、従来のように登録数が制限される等の問題がない。
  さらに、複合機1は、複数の上記制御指示の各々に対応付けて、当該制御指示を生成するための操作画面を識別するURL(操作画面識別情報)を記憶するURL登録情報記憶部(操作画面識別情報記憶部)(図示せず)を備える。そして、UIサービス層16は、URL登録情報記憶部の中から1つのURLを選択し、選択したURLで示される操作画面の操作画面データを要求する送信要求情報を送信する。
  これにより、ユーザは、操作画面を表示させるたびに、URL自体を入力する必要がなくなる。
  また、操作画面データには、操作画面の画面形式(画面スタイル)を示す画面スタイル情報(画面種別情報)と、操作画面を構成する画像パーツの種類を示すパーツ種類情報とが含まれている。そして、UIサービス層16は、画面スタイル情報と、操作パネル6における、当該画面スタイル情報で示される画面形式の操作画面内の画像パーツの位置および表示形式を示すパーツ表示情報とを対応付けて記憶する画面テーブル記憶部(図示せず)を備える。UIサービス層16は、上記制御装置2から取得した操作画面データに含まれる画面種別情報に対応するパーツ表示情報を上記画面テーブル記憶部から読み出し、当該パーツ表示情報と上記制御装置2から取得した操作画面データに含まれるパーツ種類情報とに基づいて、操作画面を生成し、上記表示部に表示させる。
  これにより、制御装置2は、複合機1に機種に依存せず、上記画面種別情報とパーツ種類情報とを含む操作画面データを生成すればよい。その結果、上記操作画面データの開発効率が向上する。
  さらに、複合機1は、外部装置からの要求に応じて、URL登録情報記憶部への新たなURL登録情報の格納、URL登録情報記憶部に格納されているURL登録情報の編集のうちの少なくとも1つを行うUIマネージャ(登録/編集手段)17aを備えていてもよい。これにより、URL登録情報の登録、編集、削除を、外部装置から行うことができる。
  さらに、複合機1は、外部装置からの要求に応じて、当該外部装置に対して、URL登録情報記憶部に格納されているURL登録情報を通知するステータスマネージャ(通知手段)17dを備えていてもよい。
  上記の構成によれば、既に使用されている複合機1から、当該複合機1に登録されているURL登録情報の通知を受けることができる。これにより、新たな複合機1を購入したユーザは、既に使用されている複合機1からURL登録情報を取得し、該URL登録情報を新たに購入した複合機1に格納させることができる。その結果、ユーザは、新たに購入した複合機1に対するURL登録情報の登録処理を簡単に行うことができる。
  本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
  最後に、複合機1および制御装置2の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
  すなわち、複合機1および制御装置2は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるプリンタドライバ部6の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記複合機1および制御装置2に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
  上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
  また、複合機1および制御装置2を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。