(57)【要約】【課題】複合機の有する機能を統合的に制御し、かつ、複合機の提供する機能を柔軟に変更することのできるシステムを実現する。【解決手段】複合機１は、ＣＰＵ１０１およびＲＡＭ１０６を含むコンピュータを有しているとともに、１または複数台の制御装置２と通信可能に接続されて制御されるものである。そして、複合機１は、ＣＰＵ１０１が実行するためのプログラムである複合機用プログラムを格納するための記憶部１０５と、制御装置２から受信した複合機用プログラムを記憶部１０５に格納するプログラム登録管理アプリ１８ｈと、制御装置２から送信される複合機用プログラムの実行指示に応答して、記憶部１０５に格納された上記複合機用プログラムをＣＰＵ１０１に実行させるジョブマネージャ１７ｂとを備えている。【選択図】図１
2007299282.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを有するとともに、１または複数台の制御装置と通信可能に接続され、当該制御装置によって制御される複合機であって、
上記コンピュータが実行するためのプログラムである複合機用プログラムを格納するための受信プログラム記憶部と、
上記制御装置から上記複合機用プログラムを受信して上記受信プログラム記憶部に格納するプログラム受信手段と、
上記制御装置から送信される上記複合機用プログラムの実行指示に応答して、上記受信プログラム記憶部に格納された複合機用プログラムを上記コンピュータに実行させるプログラム呼出手段とを備えていることを特徴とする複合機。
【請求項２】
上記複合機用プログラムを送信する上記制御装置と、上記実行指示を送信する上記制御装置とが、別の制御装置であることを特徴とする請求項１に記載の複合機。
【請求項３】
上記受信プログラム記憶部は、自身が格納する上記複合機用プログラムと対応付けて、当該複合機用プログラムのバージョン情報をも格納し、
上記プログラム受信手段は、上記制御装置から上記複合機用プログラムを受信する前に、上記制御装置に対して、上記受信プログラム記憶部に格納された当該複合機用プログラムのバージョン情報を送信することを特徴とする請求項１に記載の複合機。
【請求項４】
上記複合機用プログラムの実行時間を推定する実行時間推定手段と、
上記実行時間推定手段によって推定された実行時間を閾値と比較して、上記プログラム呼出手段が上記複合機用プログラムを上記コンピュータに実行させるべきか否かを判定する判定手段とをさらに備え、
上記プログラム呼出手段は、上記判定手段による判定結果が「否」である場合に、上記複合機用プログラムを上記コンピュータに実行させないことを特徴とする請求項１に記載の複合機。
【請求項５】
上記プログラム呼出手段は、上記判定手段による判定結果が「否」である場合に、上記制御装置に対して、上記複合機用プログラムの実行を拒絶したことを示す拒絶通知を送信することを特徴とする請求項４に記載の複合機。
【請求項６】
上記プログラム呼出手段は、上記実行指示を送信する制御装置の識別情報をも受信し、
上記実行指示の受け付けを許可する制御装置の識別情報が示された制御装置制限情報を格納する制御装置制限情報記憶部と、
上記プログラム呼出手段の受信した識別情報によって示される制御装置が、上記制御装置制限情報に識別情報が示されている制御装置の中に含まれているか否かを判定する判定手段とをさらに備え、
上記プログラム呼出手段は、上記判定手段による判定結果が「否」である場合に、上記複合機用プログラムを上記コンピュータに実行させないことを特徴とする請求項１に記載の複合機。
【請求項７】
上記複合機用プログラムが上記コンピュータによって実行された回数をカウントする実行回数カウント手段をさらに備えていることを特徴とする請求項１に記載の複合機。
【請求項８】
上記実行回数カウント手段によってカウントされた実行回数に基づいて、上記複合機用プログラムの使用の対価となる課金情報を算出する課金情報処理手段をさらに備えていることを特徴とする請求項７に記載の複合機。
【請求項９】
上記プログラム呼出手段は、上記実行回数カウント手段によってカウントされた実行回数が閾値に達している場合に、上記複合機用プログラムを上記コンピュータに実行させないことを特徴とする請求項７に記載の複合機。
【請求項１０】
上記プログラム呼出手段は、上記制御装置に対して上記実行指示の送信を指示したユーザの識別情報をも受信し、
上記実行指示の受け付けを許可するユーザの識別情報が示されたユーザ制限情報を記憶するユーザ制限情報記憶部と、
上記プログラム呼出手段が受信した識別情報によって示されるユーザが、上記ユーザ制限情報に識別情報が示されるユーザの中に含まれるか否かを判定する判定手段とをさらに備え、
上記プログラム呼出手段は、上記判定手段による判定結果が「否」である場合に、上記複合機用プログラムを上記コンピュータに実行させないことを特徴とする請求項１に記載の複合機。
【請求項１１】
上記プログラム呼出手段が受信したユーザの識別情報に基づいて、上記複合機用プログラムが上記コンピュータによって実行された回数をユーザごとにカウントする実行回数カウント手段をさらに備えていることを特徴とする請求項１０に記載の複合機。
【請求項１２】
画像読取処理、画像形成処理の少なくとも一方、ならびに通信処理を含む処理を実行する要素処理実行手段と、
上記制御装置から、上記要素処理実行手段によって実行される処理を組み合わせてなる連携処理の実行指示を受信する実行指示受付手段と、
上記実行指示受付手段の受信した実行指示に対応する第１制御コマンドを出力する第１制御コマンド出力手段と、
上記第１制御コマンド出力手段が出力する第１制御コマンドと、上記要素処理実行手段が受け付け可能な第２制御コマンドとの対応関係が示されたコマンド対応情報を格納するコマンド対応情報記憶部と、
上記第１制御コマンド出力手段から出力された第１制御コマンドに対応する上記第２制御コマンドを上記コマンド対応情報に基づいて特定するとともに、特定した第２制御コマンドを上記要素処理実行手段に対して出力する制御コマンド変換手段とを備えていることを特徴とする請求項１に記載の複合機。
【請求項１３】
上記第１制御コマンドは、複合機間で共通のものであり、
上記第２制御コマンドは、複合機間で異なっているものであることを特徴とする請求項１２に記載の複合機。
【請求項１４】
上記コマンド対応情報において、上記第１制御コマンドは、複数の上記第２制御コマンドに対応付けられていることを特徴とする請求項１２に記載の複合機。
【請求項１５】
コンピュータを有する複合機と通信可能に接続される制御装置であって、
上記複合機のコンピュータが実行するためのプログラムである複合機用プログラムを格納する送信プログラム記憶部と、
上記送信プログラム記憶部から上記複合機用プログラムを読み取って上記複合機に送信するプログラム送信手段と、
上記複合機に対して、上記プログラム送信手段が送信した複合機用プログラムの実行指示を送信する複合機制御手段とを備えていることを特徴とする制御装置。
【請求項１６】
上記送信プログラム記憶部は、自身が格納する複合機用プログラムに対応付けて、当該複合機用プログラムのバージョン情報をも格納し、
上記プログラム送信手段は、上記複合機から当該複合機の有している複合機用プログラムのバージョン情報を受信し、受信したバージョン情報と上記送信プログラム記憶部に格納された複合機用プログラムのバージョン情報とを比較し、比較結果に応じて、上記送信プログラム記憶部に格納された上記複合機用プログラムを上記複合機に送信することを特徴とする請求項１５に記載の制御装置。
【請求項１７】
上記複合機制御手段は、上記プログラム送信手段が送信した複合機用プログラムの実行指示に加えて、上記複合機に備えられ、かつ、上記プログラム送信手段が送信していない複合機用プログラムの実行指示をも送信することを特徴とする請求項１５に記載の制御装置。
【請求項１８】
コンピュータと、
自機のコンピュータが実行するためのプログラムである制御装置用プログラムを格納するための実行プログラム記憶部と、
上記複合機制御手段が送信した実行指示に従った上記複合機用プログラムの実行が上記複合機において拒絶されたことを示す拒絶通知を受信すると、上記実行プログラム記憶部に格納された上記制御装置用プログラムを自機のコンピュータに実行させるプログラム呼出手段とを備えていることを特徴とする請求項１５に記載の制御装置。
【請求項１９】
上記制御装置用プログラムの識別情報と上記複合機用プログラムの識別情報とが対応付けて格納されたプログラム対応情報記憶部を備え、
上記プログラム呼出手段は、上記実行プログラム記憶部の中から、上記複合機において実行が拒絶された複合機用プログラムに対応する制御装置用プログラムを上記プログラム対応情報記憶部に基づいて特定するとともに、特定した制御装置用プログラムを自機のコンピュータに実行させることを特徴とする請求項１８に記載の制御装置。
【請求項２０】
上記複合機用プログラムを上記制御装置用プログラムに変換して上記実行プログラム記憶部に格納するプログラム変換手段をさらに備えていることを特徴とする請求項１８に記載の制御装置。
【請求項２１】
コンピュータを有する複合機と、当該複合機と通信可能に接続される１または複数台の制御装置とを含む複合機制御システムであって、
上記制御装置は、
上記複合機のコンピュータが実行するためのプログラムである複合機用プログラムを格納する送信プログラム記憶部と、
上記送信プログラム記憶部から上記複合機用プログラムを読み取って上記複合機に送信するプログラム送信手段と、
上記複合機に対して、上記プログラム送信手段が送信した複合機用プログラムの実行指示を送信する複合機制御手段とを備え、
上記複合機は、
上記複合機用プログラムを格納するための受信プログラム記憶部と、
上記制御装置から上記複合機用プログラムを受信して上記受信プログラム記憶部に格納するプログラム受信手段と、
上記制御装置から送信される上記実行指示に応答して、上記受信プログラム記憶部に格納された複合機用プログラムを上記コンピュータに実行させるプログラム呼出手段とを備えていることを特徴とする複合機制御システム。
【請求項２２】
請求項１から１４の何れか１項に記載の複合機を動作させるための制御プログラムであって、コンピュータを上記複合機の各手段として機能させるための制御プログラム。
【請求項２３】
請求項１５から２０の何れか１項に記載の制御装置を動作させるための制御プログラムであって、コンピュータを上記制御装置の各手段として機能させるための制御プログラム。
【請求項２４】
請求項２２または２３に記載の制御プログラムが記録されたコンピュータ読み取り可能な記録媒体。
【請求項２５】
コンピュータを有するとともに、１または複数台の制御装置と通信可能に接続され、当該制御装置によって制御される複合機の制御方法であって、
プログラム受信手段が、上記制御装置から上記複合機用プログラムを受信して上記受信プログラム記憶部に格納するステップと、
プログラム呼出手段が、上記制御装置から送信される上記複合機用プログラムの実行指示に応答して、上記受信プログラム記憶部に格納された複合機用プログラムを上記コンピュータに実行させるステップとを含んでいることを特徴とする複合機の制御方法。
【請求項２６】
コンピュータを有する複合機と通信可能に接続される制御装置の制御方法であって、
プログラム送信手段が、送信プログラム記憶部から上記複合機用プログラムを読み取って上記複合機に送信するステップと、
複合機制御手段が、上記複合機に対して、上記プログラム送信手段が送信した複合機用プログラムの実行指示を送信するステップとを含んでいることを特徴とする制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合機と当該複合機を制御する制御装置とが通信ネットワークを介して接続された複合機制御システムに関するものである。
【背景技術】
【０００２】
従来から、コピー機能、スキャン機能、印刷機能及びＦＡＸ送受信機能などの複数の機能を併せ持つ複合機が知られている。近年では、このような複合機がＰＣ（パーソナルコンピュータ）などと通信ネットワークを介して接続され、多種多様な処理を行うようになっている。
【０００３】
例えば、特許文献１には、ネットワークを介して外部から実行プログラムを取得して記憶するプログラム記憶手段と、当該プログラム記憶手段に記憶された実行プログラムを実行させることにより、画像データを処理する処理手段とを備えた画像処理装置が提案されている。この画像処理装置によれば、全ての実行プログラムを予め画像処理装置のプログラム記憶手段に格納しておく必要がなく、プログラムを必要に応じてホストコンピュータから取得し、実行させることができるとされている。
【０００４】
一方、本願出願人の提唱するＳｈａｒｐ  ＯＳＡ（Open Systems Architecture）を用いたシステムでは、ＳＯＡＰ（Simple Object Access Protocol）をベースとして、ＰＣ上で動作するアプリケーションと複合機の機能とを連携し、複合機がトータルアプリケーションシステムの一部となって動作することができる。これにより、複合機の機能とＰＣの機能とを適宜組み合わせた柔軟性のあるサービスの構築を容易に行うことができる（非特許文献１，２参照）。
【特許文献１】特開２００１−１５６９５２号公報（２００１年６月８日公開）
【非特許文献１】著者不明、「デジタルカラー複合機…」、[online]、掲載年月日不明、シャープ株式会社、[平成１８年４月４日検索]、インターネット〈URL：http://www.sharp.co.jp/products/mx4501fn/text/function.html〉
【非特許文献２】小林久、「シャープ、企業向けのデジタルフルカラー複合機１２モデルを発表…」、[online]、２００５年１１月２４日、ascii24.com、[平成１８年４月４日検索]、インターネット〈URL：http://ascii24.com/news/i/hard/article/2005/11/24/659226-000.html〉
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来の技術は、統合的かつ柔軟性のあるネットワークシステムを実現することが困難であるという問題を有している。
【０００６】
例えば、特許文献１の技術においては、複合機が通信ネットワークを介して取得したプログラムの実行を、ホストコンピュータから制御することができない。それゆえ、通信ネットワークを介して取得したプログラムを含む、様々なプログラムによって実現する機能を外部から統合的に制御することが困難である。
【０００７】
一方、Ｓｈａｒｐ  ＯＳＡでは、複合機の有している機能を他のＰＣと連携させられるものの、複合機の機能は固定であり、工場出荷後に新たな機能を追加することができない。あるいは、新たな機能の追加が技術的には可能であっても、基板の取替えやプログラムの書き換えなど、工場での改修作業を必要とし、ユーザが自ら行うことができない。それゆえ、この技術によって構築されるシステムは、柔軟性に欠けるところがある。
【０００８】
本発明は、上記の問題点に鑑みてなされたものであり、その目的は、複合機に備わった機能を提供するシステムにおいて、複合機の有する機能を統合的に制御し、かつ、複合機の提供する機能を柔軟に変更することのできるシステムを実現することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、本発明に係る複合機は、コンピュータを有するとともに、１または複数台の制御装置と通信可能に接続され、当該制御装置によって制御される複合機であって、上記コンピュータが実行するためのプログラムである複合機用プログラムを格納するための受信プログラム記憶部と、上記制御装置から上記複合機用プログラムを受信して上記受信プログラム記憶部に格納するプログラム受信手段と、上記制御装置から送信される上記複合機用プログラムの実行指示に応答して、上記受信プログラム記憶部に格納された複合機用プログラムを上記コンピュータに実行させるプログラム呼出手段とを備えていることを特徴とする。
【００１０】
また、上記課題を解決するために、本発明に係る複合機の制御方法は、コンピュータを有するとともに、１または複数台の制御装置と通信可能に接続され、当該制御装置によって制御される複合機の制御方法であって、プログラム受信手段が、上記制御装置から上記複合機用プログラムを受信して上記受信プログラム記憶部に格納するステップと、プログラム呼出手段が、上記制御装置から送信される上記複合機用プログラムの実行指示に応答して、上記受信プログラム記憶部に格納された複合機用プログラムを上記コンピュータに実行させるステップとを含んでいることを特徴とする。
【００１１】
上記構成によれば、プログラム受信手段によって、複合機１のコンピュータが実行する複合機用プログラムが制御装置から取得されるとともに、受信プログラム記憶部に格納される。これにより、複合機は、自身の有していないプログラムを制御装置から取得し、取得したプログラムをコンピュータが実行することにより、工場出荷時にはできなかった新規の処理を実行することができるようになる。
【００１２】
さらに、上記構成によれば、プログラム呼出手段が、受信プログラム記憶部に格納された複合機用プログラムを、制御装置から送信される実行指示に応答してコンピュータに実行させる。これにより、取得したプログラムに基づいた複合機の処理の実行を制御装置から指示することができる。従って、複合機の有する機能を統合的に制御し、かつ、複合機の提供する機能を柔軟に変更することのできるシステムを実現することができる。
【００１３】
なお、上記複合機用プログラムを送信する上記制御装置と、上記実行指示を送信する上記制御装置とが、別の制御装置であってもよい。
【００１４】
また、本発明に係る複合機において、上記受信プログラム記憶部は、自身が格納する上記複合機用プログラムと対応付けて、当該複合機用プログラムのバージョン情報をも格納し、上記プログラム受信手段は、上記制御装置から上記複合機用プログラムを受信する前に、上記制御装置に対して、上記受信プログラム記憶部に格納された当該複合機用プログラムのバージョン情報を送信することが好ましい。
【００１５】
上記構成によれば、プログラム受信手段によって、複合機が受信プログラム記憶部に有している複合機用プログラムのバージョン情報が制御装置に通知される。これにより、このバージョン情報を受け取った制御装置は、複合機用プログラムを複合機に送信するか否かを、受け取ったバージョン情報に基づいて判断することができる。従って、複合機が制御装置よりも新しいバージョンの複合機用プログラムを既に有している場合に、制御装置は、そのプログラムを複合機に対して送信するのを省略することができ、複合機プログラムの送受信を効率よく行うことができるようになる。
【００１６】
また、本発明に係る複合機は、上記複合機用プログラムの実行時間を推定する実行時間推定手段と、上記実行時間推定手段によって推定された実行時間を閾値と比較して、上記プログラム呼出手段が上記複合機用プログラムを上記コンピュータに実行させるべきか否かを判定する判定手段とをさらに備え、上記プログラム呼出手段は、上記判定手段による判定結果が「否」である場合に、上記複合機用プログラムを上記コンピュータに実行させないことが好ましい。
【００１７】
上記構成によれば、実行時間推定手段によって、複合機用プログラムの実行に必要な時間が推定される。そして、プログラム呼出手段は、実行時間推定手段によって推定された時間に基づいて、複合機用プログラムをコンピュータに実行させるか否かを決定する。従って、制御装置から受信した複合機用プログラムの実行に多大な時間がかかる場合に、ネットワークを介して指示された処理によって、複合機が長時間専有されてしまうのを防止することができる。
【００１８】
さらに、上記プログラム呼出手段は、上記判定手段による判定結果が「否」である場合に、上記制御装置に対して、上記複合機用プログラムの実行を拒絶したことを示す拒絶通知を送信することが好ましい。
【００１９】
上記構成によれば、判定手段による判定結果に基づいて複合機用プログラムが複合機において実行されない場合に、プログラム呼出手段によって、その旨を示す拒絶通知が制御装置へ送信される。従って、この拒絶通知を受け取った制御装置は、実行が拒絶された複合機用プログラムに基づいた処理と同様の処理を複合機の代わりに自ら実行したり、他の複合機に対して、実行が拒絶された複合機用プログラムの実行を指示したりすることができる。
【００２０】
また、本発明に係る複合機において、上記プログラム呼出手段は、上記実行指示を送信した制御装置の識別情報をも受信し、複合機は、上記実行指示の受け付けを許可する制御装置の識別情報が示された制御装置制限情報を格納する制御装置制限情報記憶部と、上記プログラム呼出手段の受信した識別情報によって示される制御装置が、上記制御装置制限情報に識別情報が示されている制御装置の中に含まれているか否かを判定する判定手段とをさらに備え、上記プログラム呼出手段は、上記判定手段による判定結果が「否」である場合に、上記複合機用プログラムを上記コンピュータに実行させないことが好ましい。
【００２１】
上記構成によれば、制御装置制限情報に識別情報が示されていない制御装置からの実行指示をプログラム呼出手段が許可しないので、不正な制御装置から複合機が実行指示を受け付けてしまうのを防止することができ、セキュリティが向上する。
【００２２】
また、本発明に係る複合機は、上記複合機用プログラムが上記コンピュータによって実行された回数をカウントする実行回数カウント手段をさらに備えていることが好ましい。
【００２３】
上記構成によれば、実行回数カウント手段によって、複合機用プログラムの実行回数がカウントされるので、例えば、カウントされた値から統計を取ったり、課金情報を算出したりすることができる。
【００２４】
例えば後者の場合、複合機は、上記実行回数カウント手段によってカウントされた実行回数に基づいて、上記複合機用プログラムの使用の対価となる課金情報を算出する課金情報処理手段をさらに備えていてもよい。
【００２５】
上記構成によれば、課金情報処理手段によって複合機用プログラムの使用の対価となる課金情報が自動的に算出されるので、この課金情報に基づいて、ユーザに複合機用プログラムの使用の対価を容易に請求することができる。
【００２６】
あるいは、上記プログラム呼出手段が、上記実行回数カウント手段によってカウントされた実行回数が閾値に達している場合に、上記複合機用プログラムを上記コンピュータに実行させないものであってもよい。
【００２７】
上記構成によれば、呼出手段は、実行回数が閾値に達した場合に複合機用プログラムの実行を拒否することができる。従って、ユーザから予め対価を受け取っておき、その対価に応じた回数だけ、複合機用プログラムの実行を許可するシステムを容易に構築することができる。
【００２８】
また、本発明に係る複合機において、上記プログラム呼出手段は、上記制御装置に対して上記実行指示の送信を指示したユーザの識別情報をも受信し、上記実行指示の受け付けを許可するユーザの識別情報が示されたユーザ制限情報を記憶するユーザ制限情報記憶部と、上記プログラム呼出手段が受信した識別情報によって示されるユーザが、上記ユーザ制限情報に識別情報が示されるユーザの中に含まれるか否かを判定する判定手段とをさらに備え、上記プログラム呼出手段は、上記判定手段による判定結果が「否」である場合に、上記複合機用プログラムを上記コンピュータに実行させないことが好ましい。
【００２９】
上記構成によれば、ユーザ制限情報に識別情報が示されていないユーザによる実行指示をプログラム呼出手段が許可しないので、不正なユーザによる実行指示を複合機が受け付けてしまうのを防止することができ、セキュリティが向上する。
【００３０】
さらに、上記複合機は、上記プログラム呼出手段が受信したユーザの識別情報に基づいて、上記複合機用プログラムが上記コンピュータによって実行された回数をユーザごとにカウントする実行回数カウント手段をさらに備えていることが好ましい。
【００３１】
上記構成によれば、上記構成によれば、実行回数カウント手段によって、複合機用プログラムの実行回数がユーザごとにカウントされるので、例えば、カウントされた値からユーザごとの統計を取ったり、ユーザごとに課金情報を算出したりすることができる。
【００３２】
また、本発明に係る複合機は、画像読取処理、画像形成処理の少なくとも一方、ならびに通信処理を含む処理を実行する要素処理実行手段と、上記制御装置から、上記要素処理実行手段によって実行される処理を組み合わせてなる連携処理の実行指示を受信する実行指示受付手段と、上記実行指示受付手段の受信した実行指示に対応する第１制御コマンドを出力する第１制御コマンド出力手段と、上記第１制御コマンド出力手段が出力する第１制御コマンドと、上記要素処理実行手段が受け付け可能な第２制御コマンドとの対応関係が示されたコマンド対応情報を格納するコマンド対応情報記憶部と、上記第１制御コマンド出力手段から出力された第１制御コマンドに対応する上記第２制御コマンドを上記コマンド対応情報に基づいて特定するとともに、特定した第２制御コマンドを上記要素処理実行手段に対して出力する制御コマンド変換手段とを備えている。
【００３３】
画像読取処理、画像形成処理、通信処理には、スキャナ、プリンタ、通信ユニットなどのハードウェア資源が必須となる。これらのハードウェア資源は、通常、複合機ごとに異なっているので、従来は、これらのハードウェア資源を必要とする処理を複合機に行わせる場合、制御装置は、複合機に合わせた実行指示を送信する必要があった。換言すれば、制御装置は、複合機ごとに実行指示を変更する必要があった。
【００３４】
これに対して本発明の上記構成によれば、第１制御コマンド出力手段によって実行指示が受け付けられ、この実行指示に基づいて第１制御コマンドが出力されると、出力された第１制御コマンドは、コマンド変換手段によって、要素処理実行手段が受け付け可能な第２制御コマンドに変換される。本発明に係る複合機は、コマンド変換手段が複合機に備わっていることにより、実行指示を複合機ごとに変更しなくても、第１制御コマンドがコマンド変換手段により複合機のハードウェア資源に応じた第２制御コマンドに変換されるので、実行指示を複合機間で共通にすることができる。
【００３５】
つまり、上記第１制御コマンドは、複合機間で共通のものであり、上記第２制御コマンドは、複合機間で異なっているものであってもよいことになる。
【００３６】
また、上記コマンド対応情報において、上記第１制御コマンドは、複数の上記第２制御コマンドに対応付けられていてもよい。上記構成によれば、単一の第１制御コマンドにより、複数の要素処理を組み合わせて複合機に実行させることができる。
【００３７】
一方、上記課題を解決するために、本発明に係る制御装置は、コンピュータを有する複合機と通信可能に接続される制御装置であって、上記複合機のコンピュータが実行するためのプログラムである複合機用プログラムを格納する送信プログラム記憶部と、上記送信プログラム記憶部から上記複合機用プログラムを読み取って上記複合機に送信するプログラム送信手段と、上記複合機に対して、上記プログラム送信手段が送信した複合機用プログラムの実行指示を送信する複合機制御手段とを備えていることを特徴とする。
【００３８】
また、本発明に係る制御装置の制御方法は、コンピュータを有する複合機と通信可能に接続される制御装置の制御方法であって、プログラム送信手段が、送信プログラム記憶部から上記複合機用プログラムを読み取って上記複合機に送信するステップと、複合機制御手段が、上記複合機に対して、上記プログラム送信手段が送信した複合機用プログラムの実行指示を送信するステップとを含んでいることを特徴とする。
【００３９】
上記構成によれば、プログラム送信手段によって、複合機のコンピュータが実行するための複合機用プログラムが送信プログラム記憶部から読み取られ、複合機へ送信される。これにより、制御装置が複合機の有していないプログラムを複合機に提供することができ、そして複合機は、提供されたプログラムをコンピュータが実行することにより、工場出荷時にはできなかった新規の処理を実行することができるようになる。
【００４０】
さらに上記構成によれば、複合機制御手段によって、複合機用プログラムの実行指示が複合機へ送信される。これにより、複合機へ送信したプログラムの実行を制御装置から指示することができる。従って、複合機の有する機能を統合的に制御し、かつ、複合機の提供する機能を柔軟に変更することのできるシステムを実現することができる。
【００４１】
また、本発明に係る制御装置において、上記送信プログラム記憶部は、自身が格納する複合機用プログラムに対応付けて、当該複合機用プログラムのバージョン情報をも格納し、上記プログラム送信手段は、上記複合機から当該複合機の有している複合機用プログラムのバージョン情報を受信し、受信したバージョン情報と上記送信プログラム記憶部に格納された複合機用プログラムのバージョン情報とを比較し、比較結果に応じて、上記送信プログラム記憶部に格納された上記複合機用プログラムを上記複合機に送信することが好ましい。
【００４２】
上記構成によれば、送信プログラム記憶部には、複合機用プログラムのバージョン情報も格納されている。そして、複合機から受け取ったバージョン情報と、送信プログラム記憶部に格納されたバージョン情報とが、プログラム送信手段によって比較され、比較結果に応じて、複合機用プログラムの送信が行われる。これにより、制御装置は、複合機が制御装置よりも新しいバージョンの複合機用プログラムを既に有している場合に、制御装置は、そのプログラムを複合機に対して送信するのを省略することができ、複合機プログラムの送受信を効率よく行うことができるようになる。
【００４３】
また、本発明に係る制御装置において、上記複合機制御手段は、上記プログラム送信手段が送信した複合機用プログラムの実行指示に加えて、上記複合機に備えられ、かつ、上記プログラム送信手段が送信していない複合機用プログラムの実行指示をも送信するものであってもよい。
【００４４】
上記構成によれば、制御装置は、工場出荷時には複合機が有しておらず、かつ、自機が提供したプログラムと、複合機が元から有していたプログラムとの双方についての実行指示を送信することができるため、複合機が元から有していたプログラムに基づいた処理と、自機が提供したプログラムに基づいた処理とを組み合わせた連携処理を行わせることができる。従って、組み合わせに応じて、様々な連携処理を複合機に実行させることができる。
【００４５】
また、本発明に係る制御装置は、コンピュータと、自機のコンピュータが実行するためのプログラムである制御装置用プログラムを格納するための実行プログラム記憶部と、上記複合機制御手段が送信した実行指示に従った上記複合機用プログラムの実行が上記複合機において拒絶されたことを示す拒絶通知を受信すると、上記実行プログラム記憶部に格納された上記制御装置用プログラムを自機のコンピュータに実行させるプログラム呼出手段とを備えていることが好ましい。
【００４６】
上記構成によれば、自機から送信した複合機用プログラムの実行が複合機において拒絶された場合に、プログラム呼出手段によって、実行プログラム記憶部から制御装置用プログラムが読み取られ、自機のコンピュータに実行が指示される。従って、実行プログラム記憶部に、複合機用プログラムに対応する自機用のプログラムを格納しておけば、複合機において実行が拒絶されたプログラムに基づいた処理を、制御装置が代わりに行うことができる。
【００４７】
また、制御装置は、上記制御装置用プログラムの識別情報と上記複合機用プログラムの識別情報とが対応付けて格納されたプログラム対応情報記憶部を備え、上記プログラム呼出手段は、上記実行プログラム記憶部の中から、上記複合機において実行が拒絶された複合機用プログラムに対応する制御装置用プログラムを上記プログラム対応情報記憶部に基づいて特定するとともに、特定した制御装置用プログラムを自機のコンピュータに実行させることが好ましい。
【００４８】
上記構成によれば、複合機用プログラムとそれに対応する制御装置用プログラムとが複数組ある場合であっても、プログラム対応情報記憶部に基づいて、複合機用プログラムに対応する制御装置用プログラムを特定することができ、複合機において実行が拒絶された処理を、制御装置に代替的に実行させることができる。
【００４９】
また、制御装置は、上記複合機用プログラムを上記制御装置用プログラムに変換して上記実行プログラム記憶部に格納するプログラム変換手段をさらに備えていることが好ましい。
【００５０】
上記構成によれば、制御装置が複合機用プログラムに対応する制御装置用プログラムを有していない場合であっても、プログラム変換手段によって、複合機用プログラムが制御装置用プログラムに変換されるので、制御装置は、複合機において実行が拒絶された処理を代替的に実行することができる。
【００５１】
また、上記課題を解決するために、本発明に係る複合機制御システムは、コンピュータを有する複合機と、当該複合機と通信可能に接続される１または複数台の制御装置とを含む複合機制御システムであって、上記制御装置は、上記複合機のコンピュータが実行するためのプログラムである複合機用プログラムを格納する送信プログラム記憶部と、上記送信プログラム記憶部から上記複合機用プログラムを読み取って上記複合機に送信するプログラム送信手段と、上記複合機に対して、上記プログラム送信手段が送信した複合機用プログラムの実行指示を送信する複合機制御手段とを備え、上記複合機は、上記複合機用プログラムを格納するための受信プログラム記憶部と、上記制御装置から上記複合機用プログラムを受信して上記受信プログラム記憶部に格納するプログラム受信手段と、上記制御装置から送信される上記実行指示に応答して、上記受信プログラム記憶部に格納された複合機用プログラムを上記コンピュータに実行させるプログラム呼出手段とを備えていることを特徴とする。
【００５２】
上記構成によれば、複合機の有する機能を統合的に制御し、かつ、複合機の提供する機能を柔軟に変更することのできるシステムを実現することができる。
【００５３】
ところで、上記複合機および制御装置の各手段は、ハードウェアで実現してもよいし、プログラムをコンピュータに実行させることによって実現してもよい。具体的には、本発明に係る制御プログラムは、上記複合機または制御装置の各手段としてコンピュータを動作させるプログラムであり、本発明に係る記録媒体には、当該制御プログラムが記録されている。
【００５４】
これらの制御プログラムがコンピュータによって実行されると、当該コンピュータは、上記複合機または制御装置の各手段として動作する。したがって、上記複合機または制御装置と同様に、複合機の有する機能を統合的に制御し、かつ、複合機の提供する機能を柔軟に変更することのできるシステムを実現することができる。
【発明の効果】
【００５５】
以上のように、本発明に係る複合機は、制御装置から複合機用プログラムを受信して受信プログラム記憶部に格納するプログラム受信手段と、制御装置から送信される複合機用プログラムの実行指示に応答して、受信プログラム記憶部に格納された複合機用プログラムをコンピュータに実行させるプログラム呼出手段とを備えた構成となっている。
【００５６】
また、本発明に係る複合機の制御方法は、プログラム受信手段が、制御装置から複合機用プログラムを受信して受信プログラム記憶部に格納するステップと、プログラム呼出手段が、制御装置から送信される複合機用プログラムの実行指示に応答して、受信プログラム記憶部に格納された複合機用プログラムをコンピュータに実行させるステップとを含んだ構成となっている。
【００５７】
一方、本発明に係る制御装置は、送信プログラム記憶部から複合機用プログラムを読み取って複合機に送信するプログラム送信手段と、複合機に対して、プログラム送信手段が送信した複合機用プログラムの実行指示を送信する複合機制御手段とを備えた構成となっている。
【００５８】
また、本発明に係る制御装置の制御方法は、プログラム送信手段が、送信プログラム記憶部から複合機用プログラムを読み取って複合機に送信するステップと、複合機制御手段が、複合機に対して、プログラム送信手段が送信した複合機用プログラムの実行指示を送信するステップとを含んだ構成となっている。
【００５９】
そして、本発明に係る複合機制御システムは、これらの複合機および制御装置を備えた構成となっている。
【００６０】
従って、上述したように、複合機の有する機能を統合的に制御し、かつ、複合機の提供する機能を柔軟に変更することのできるシステムを実現することができる。
【発明を実施するための最良の形態】
【００６１】
本発明の一実施形態について図１から図２８に基づいて説明すると以下の通りである。以下では、本発明に係る複合機制御システムの一実施形態について説明する。図２は、本実施形態に係る複合機制御システムの概略を示す図である。
【００６２】
本実施形態に係る複合機制御システムは、図２に示すように、複合機１と複数の制御装置２…を含んでおり、これらの装置が通信ネットワークを介して接続されている。もちろん、複合機制御システムに含まれる複合機の台数は複数台であってもよく、また、複合機制御システムに含まれる制御装置の台数が１台であってもよい。
【００６３】
本実施形態において、制御装置２は、複合機１に対して、複合機１が実行可能な各種アプリケーションプログラム（例えば、ＯＣＲプログラムや翻訳プログラムなど）を、通信ネットワークを介して提供する。これにより、複合機１は、工場出荷時にはインストールされていなかった各種プログラムを必要に応じて取得して実行することができる。また、工場出荷後にプログラムがアップデートされた場合であっても、制御装置２から必要に応じて最新バージョンのプログラムを取得して実行することができる。
【００６４】
また、制御装置２は、通信ネットワークを介して複合機１に実行指示を送信することにより、複合機１の処理を制御することができる。さらに、制御装置２は、複合機１が有する機能を連携させた連携処理を行わせることができるようになっている。
【００６５】
図３は、複合機１のハードウェア構成を示すブロック図である。図３に示すように、複合機１は、操作部３、制御部（コンピュータ）１００、記憶部（コンピュータ）１０５、原稿読取部１１０、画像形成部１１５、および通信部１２０を備え、これらの各部はデータバスによって接続されている。
【００６６】
操作部３は、ユーザからの入力を受け付けるためのものであり、後述する操作パネル６および入力部５を含んでいる。原稿読取部１１０は、スキャナ１１１および原稿搬送部１１２を含んでおり、原稿に印刷された文字や画像などを画像データとして読み取ることができる。
【００６７】
画像形成部１１５は、用紙などのシートに対して、入力画像データに対応する画像（文字／写真／グラフィック）を印刷するためのものであり、印刷機構１１６および用紙トレイ１１７などを含んでいる。通信部１２０は、制御装置２などの外部の装置との間で通信を行うためのインターフェイスである。
【００６８】
制御部１００は、ＣＰＵ１０１および専用プロセッサ１０２を含んでいる。そして、記憶部１０５は、ＲＡＭ１０６、ＲＯＭ１０７、およびＨＤＤ１０８を含んでいる。
【００６９】
複合機１では、この制御部１００のＣＰＵ１０１が、記憶部１０５に格納された各種プログラムを実行することにより、様々な機能を実現している。すなわち、ＣＰＵ１０１が原稿読取部１１０の制御プログラムを実行することにより、原稿読取処理が実行される。また、ＣＰＵ１０１が画像形成部１１５の制御プログラムを実行することにより、画像形成（印刷）処理が実行され、ＣＰＵ１０１が通信部１２０の制御プログラムを実行することにより、各種データの送受信などの通信処理が実行される。さらに、複合機１では、ＣＰＵ１０１がアプリケーションプログラムを実行することにより、ＯＣＲおよび翻訳などの画像処理も実行される。
【００７０】
図４は、複合機１に備えられた操作部３の拡大図である。図４に示されるように、操作部３は、ユーザに対して操作画面を表示するための操作パネル（表示部）６と、ユーザ入力を受け付ける入力部５とを備えている。なお、操作パネル６は、タッチパネルシステムを採用しており、入力部５を兼ねている。
【００７１】
なお、複合機１は、上記操作部３の代わりに、もしくは、操作部３と兼用して、ＵＩ装置と接続可能であってもよい。この場合、複合機１に接続される該ＵＩ装置に操作画面が表示される。
【００７２】
図５は、制御装置２のハードウェア構成を示すブロック図である。図５に示すように、制御装置２はコンピュータであり、ＵＩ部１２５、制御部１３０、記憶部１３５、外部記憶装置１４０、および通信部１４５を備え、これらの各部はデータバスによって接続されている。
【００７３】
ＵＩ部１２５は、ユーザからの入力を受け付けたり、ユーザに対して情報を通知したりするためのものであり、キーボード１２６、マウス１２７、および表示装置１２８を含んでいる。通信部１４５は、複合機１などの外部の装置との間で通信を行うためのインターフェイスである。
【００７４】
制御部１３０は、ＣＰＵ１３１および専用プロセッサ１３２を含んでいる。そして、記憶部１３５は、ＲＡＭ１３６、ＲＯＭ１３７、およびＨＤＤ１３８を含んでいる。また、外部記憶装置１４０は、ＣＤ／ＤＶＤ１４１およびＦＤＤ１４２を含んでいる。
【００７５】
複合機１では、この制御部１３０のＣＰＵ１３１が、記憶部１３５に格納された各種プログラムを実行することにより、様々な機能を実現している。すなわち、ＣＰＵ１３１がＵＩ部１２５の制御プログラムを実行することにより、ユーザから情報の入力を受け付ける処理およびユーザへ情報を通知する処理が実行される。また、ＣＰＵ１３１が通信部１４５の制御プログラムを実行することにより、各種データの送受信などの通信処理が実行される。さらに、複合機１では、ＣＰＵ１０１がアプリケーションプログラムを実行することにより、ＯＣＲおよび翻訳などの画像処理も実行される。
【００７６】
なお、複合機１と制御装置２とが接続される通信ネットワークとしては、インターネット、電話線、シリアルケーブル、または、他の有線回線もしくは無線回線などの通信回線が利用できる。
【００７７】
制御装置２は、複合機１の様々な機能を制御するために、複合機１が提供している１つまたは複数のＷｅｂサービスを使用してもよい。Ｗｅｂサービスとは、装置の機能をネットワークを通じて外部から利用できるようにするプログラム処理のことであり、通常ＳＯＡＰが用いられる。
【００７８】
一方、複合機１は、Ｗｅｂサーバである当該制御装置２にアクセスし、操作画面のデータを制御装置２から取得して操作パネル６に表示させる。すなわち、複合機１は、ユーザと対話することができる。これにより、複合機１は、制御装置２に対して操作画面データを要求するだけで操作画面を表示することができ、操作画面データ自体を管理する必要がない。
【００７９】
このような構成により、本実施形態の複合機制御システムでは、制御装置２から、複合機１に新たな機能を追加したり、複合機１の動作を自在に制御したりすることができるので、柔軟なシステムを構築することができる。
【００８０】
また、複合機１は、後述するように、外部に公開するＡＰＩ（Application Program Interface）（実行指示）を機種によらず共通にしている。これにより、制御装置２は、複合機１の機種によらず、共通した制御指示を複合機１に出力することができ、制御装置２内に組み込むプログラムの開発を容易に行うことが可能になっている。なお、ＡＰＩとは、ソフト開発の際に使用できる命令と、その命令によって実行される手続きとの関係を定めた規約（関数）の集合のことである。
【００８１】
複合機１と制御装置２とは、操作画面データの要求／応答に関する通信に、ＨＴＴＰ、または、ＳＳＬ（Secure Socket Layer）を使用したＨＴＴＰＳを利用する。ここで、ＨＴＴＰＳを利用するとセキュリティを向上させることができる。また、これらの通信で用いられるマークアップ言語としては、ＨＴＭＬ（Hypertext Markup Language）、ＸＭＬ（eXtensible Markup Language）、ＷＭＬ（Wireless Markup Language）、ＸＨＴＭＬ（eXtensible HyperText Markup Language）、および／または、他の言語からなる用語が挙げられる。
【００８２】
なお、ＸＭＬは、ＨＴＭＬと同様の手軽さでデータ送受信できる文書構造の記述言語であり、（ａ）利用者が文書中の文字列に意味付けできる、（ｂ）特定のソフトウェアに依存しない、（ｃ）プログラミングが容易である、などのメリットがある。
【００８３】
一方、制御装置２が複合機１を制御する際の制御指示の通信については、ＸＭＬなどのマークアップ言語を用いたＳＯＡＰ（Simple Object Access Protocol）などのオブジェクト間通信プロトコルを用いて行われる。ＳＯＡＰは、ＸＭＬとＨＴＴＰなどをベースとした、データやサービスを呼び出すためのプロトコルで、システムとシステムとを連携させることができる。
【００８４】
以下に、制御装置２および複合機１の構成について説明する。
【００８５】
（制御装置の構成）
図６は、本実施形態に係る制御装置２の機能構成を示すブロック図である。図６に示されるように、制御装置２は、ＯＳ部２１、Ｗｅｂサーバ部２２、ＭＦＰ制御ロジック部２３、連携モジュール２４、アプリケーション部２５を備えている。これらの各部は、図５に示した制御部１３０および記憶部１３５を含むハードウェアと、記憶部１３５に格納されたプログラムからなるソフトウェアとが協働することにより実現される。
【００８６】
ＯＳ部２１は、コンピュータシステムを管理し、基本的なユーザ操作環境を提供するオペレーティングシステム（ＯＳ）に従った処理を行うブロックである。ＯＳとしては、Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘなどがある。
【００８７】
Ｗｅｂサーバ部２２は、ＨＴＴＰ（hypertext transfer protocol）（またはＨＴＴＰＳ）やＳＯＡＰ（simple object access protocol）を用いた通信を行うものである。Ｗｅｂサーバ部２２は、複合機１からＨＴＴＰリクエストを受信するとともに、当該ＨＴＴＰリクエストに対応するＨＴＴＰレスポンスを送信する。Ｗｅｂサーバ部２２は、例えば、Ａｐａｃｈｅのようなソフトウェアに従った動作を行うブロックである。
【００８８】
ＭＦＰ制御ロジック部２３は、複合機１の操作画面（ＵＩ）の表示制御および複合機１に備わった各種機能に基づいた処理の実行制御、ならびに複合機１へのプログラムの提供を行うものである。ＭＦＰ制御ロジック部２３は、情報受付部２３１、画面データ記憶部２３２、ＵＩ制御部２３３、制御指示テーブル記憶部２３４、複合機機能制御部（複合機制御手段）２３５、アプリケーション指示部２３６、複合機プログラム送信部（プログラム送信手段）２３７、送信プログラム記憶部（送信プログラム記憶手段）２３８、プログラム変換部（プログラム変換手段）２３９を備えている。
【００８９】
画面データ記憶部２３２は、複合機１の操作パネル６に表示される各種操作画面のデータを記憶するものである。
【００９０】
ＵＩ制御部２３３は、情報受付部２３１からの指示に応じて、操作画面データを画面データ記憶部２３２から読み出し、Ｗｅｂサーバ部２２を介して複合機１に出力するものである。なお、ＵＩ制御部２３３は、ＨＴＴＰ（またはＨＴＴＰＳ）を用いて、操作画面データを複合機１に送信する。
【００９１】
制御指示テーブル記憶部２３４は、複合機１に実行させる処理の内容と、当該内容の処理を実行させるための、複合機１が受け付け可能な制御指示（その中には実行指示も含まれる）との対応関係が示された制御指示テーブルを格納するものである。
【００９２】
図８は、制御指示テーブルの一例を示す図である。図８に示されるように、制御指示テーブルでは、例えば、処理「スキャン」と、その制御指示（実行指示）「JobCreate」、「ExecuteScan」および「JobClose」とが対応付けられている。また、制御指示テーブルでは、１つの処理に複数の制御指示が対応付けられている場合、各制御指示の出力順序も示されている。
【００９３】
なお、制御指示テーブルに示された制御指示は、後述するように、複合機１のＯｐｅｎＩ／Ｆ層１９が外部に公開しているＡＰＩ（第１ＡＰＩ）を呼び出すための第１制御コマンドの組となっている。これらのコマンドは、複合機１の機種に依存しない共通のコマンドとなっている。
【００９４】
複合機機能制御部２３５は、情報受付部２３１からの指示に応じて、複合機１に対する制御指示を制御指示テーブル記憶部２３４から読み出すとともに、Ｗｅｂサーバ部２２を介して複合機１に送信するものである。なお、複合機機能制御部２３５は、ＳＯＡＰを用いて、制御指示を複合機１に送信する。
【００９５】
なお、複合機機能制御部２３５が送信する制御指示は、複合機１に対して、当該複合機１が実行可能な各種処理の実行を命令するものである。複合機１は、この制御指示を受信すると、制御指示に応じたプログラムをＣＰＵ１０１に実行させることにより、自機の有する各種機能に基づいた処理を実行する。従って、複合機機能制御部２３５が送信する制御指示は、複合機１に対するプログラムの実行指示であるともいえる。
【００９６】
アプリケーション指示部２３６は、情報受付部２３１からの指示に応じて、アプリケーション部２５に、アプリケーションプログラムに基づいた各種処理を開始するよう指示するものである。
【００９７】
送信プログラム記憶部２３８は、複合機１のＣＰＵ１０１が実行可能なプログラムである複合機用プログラムを複数格納している。この複合機用プログラムの内容は特に限定されないが、例えば、スキャン画像の傾き補正するための傾き補正プログラム、スキャン画像に対して文字認識を行うＯＣＲプログラム、および文字認識によって取得した英文を和文に翻訳する英日翻訳プログラムなどが挙げられる。
【００９８】
さらに、送信プログラム記憶部２３８は、上述した複数の複合機用プログラムの所在やバージョン情報を管理するために、複合機用プログラム管理テーブルも有している。図７は、複合機用プログラム管理テーブルの一例を示す図である。図７に示されるように、複合機用プログラム管理テーブルでは、複合機用プログラムごとに、プログラムの識別子、プログラムの名称、プログラムのバージョン情報、プログラムの格納アドレスが示されている。
【００９９】
複合機プログラム送信部２３７は、情報受付部２３１からの指示に応じて、送信プログラム記憶部２３８から複合機用プログラムを読み出し、Ｗｅｂサーバ部２２を介して複合機１へ送信するものである。
【０１００】
プログラム変換部２３９は、情報受付部２３１からの指示に応じて、送信プログラム記憶部２３８から複合機用プログラムを読み出し、この複合機用プログラムを自機のＣＰＵ１３１が実行可能な制御装置用プログラムに変換するものである。そして、プログラム変換部２３９は、変換した制御装置用プログラムを記憶部１３５に格納する。変換された制御装置用プログラムは、その後、アプリケーション部２５の一部として機能する。
【０１０１】
情報受付部２３１は、Ｗｅｂサーバ部２２を介して、複合機１から送信される情報を受け付け、当該情報に応じた処理を、ＵＩ制御部２３３、アプリケーション指示部２３６、複合機機能制御部２３５、複合機プログラム送信部２３７、およびプログラム変換部２３９に対して指示するものである。情報受付部２３１が複合機１から受け付ける情報には、（１）操作画面データの送信要求、（２）操作画面においてユーザによって選択された項目を示す被選択項目情報、（３）操作画面においてユーザによって入力された入力情報（ログイン情報など）、（４）アプリケーション部２５による各種アプリケーションを利用した処理の実行要求、（５）複合機用プログラムの送信要求、（６）複合機１において複合機プログラムの実行が拒絶されたことを示す拒絶通知および実行が拒絶された複合機用プログラム、ならびに（７）複合機１において処理が実行された後に当該複合機１から送信される完了通知などが含まれる。
【０１０２】
なお、上記（１）における操作画面としては、例えば、複合機１が実行する処理をユーザに選択させるための実行処理選択画面、ユーザの認証を行うためのログイン画面などが含まれる。情報受付部２３１は、上記（１）を受け付けると、ＵＩ制御部２３３に対して、該当する操作画面データの送信を指示する。
【０１０３】
また、上記（２）としては、例えば、実行処理選択画面において選択された処理の種類を示すものなどが含まれる。情報受付部２３１は、上記（２）を受け付けると、複合機機能制御部２３５に対して、選択された処理の実行指示を複合機１へ送信するよう指示する。一例を挙げると、複合機１において、ユーザによってスキャン処理が選択された場合、このスキャン処理が選択されたことを示す被選択処理情報を受け取った情報受付部２３１は、複合機機能制御部２３５に対して、スキャン処理の実行指示を複合機１へ送信するよう指示する。
【０１０４】
また、上記（３）としては、ユーザＩＤおよびパスワードなどの認証情報が含まれる。情報受付部２３１は、認証情報を受け付けると、アプリケーション部２５の図示しないユーザ認証部にこれらの認証情報を入力し、当該ユーザ認証部に対して、認証を行っているユーザが正規のユーザであるか否かを認証情報に基づいて判定するよう指示する。
【０１０５】
また、上記（４）としては、例えば、認証アプリケーションを用いたユーザの認証処理の実行要求や、イベント集計アプリケーションを用いた集計処理の実行要求などが含まれる。ただし、情報受付部２３１が受け付ける上記（４）の実行要求は、これらに限定されるものではなく、複合機１から任意（または定期的）に受信する情報であり、当該情報に応じて、アプリケーション部２５が何らかの処理を行うものであればよい。情報受付部２３１は、上記（４）を受け付けると、アプリケーション部２５の図示しないユーザ認証部や集計処理部を機能させるよう、アプリケーション指示部２３６に指示する。
【０１０６】
また、情報受付部２３１は、上記（５）を受け付けると、複合機プログラム２３７に対して、複合機用プログラムを複合機１へ送信するよう指示し、また、上記（６）を受け付けると、プログラム変換部２３９に対して、複合機１において実行が拒絶されたプログラムを代替する制御装置用プログラムを、受信した複合機プログラムを基に生成するよう指示し、また、上記（７）を受け付けると、複合機機能制御部２３５に対して、後続の処理の実行指示を複合機１へ送信するよう指示する。
【０１０７】
なお、情報受付部２３１は、これらの指示を、記憶部１０５に格納されたイベントテーブルに基づいて行っている。図２５は、イベントテーブルの一部を示す図である。図２５に示すように、イベントテーブルには、情報受付手段が受信した情報と、その情報を受信したときに指示を行う対象および内容とが示されている。
【０１０８】
アプリケーション部２５は、各種アプリケーションプログラムに基づいた処理を行うブロックである。これらの処理は、ＣＰＵ１３１が記憶部１３５に格納されたアプリケーションプログラムを実行することにより行われる。アプリケーション部２５は、例えば、予め登録されたユーザであるか否かを判定する認証アプリケーション、画像データを保存・管理するドキュメント管理アプリケーション、複合機１で実行されたイベントの集計を行うイベント集計アプリケーションなどに応じた動作を行う。
【０１０９】
連携モジュール２４は、アプリケーション部２５とＭＦＰ制御ロジック部２３との接続するためのモジュールである。連携モジュール２４は、アプリケーション指示部２３６からの指令をアプリケーション部２５に伝えるとともに、アプリケーション部２５からの指令を複合機機能制御部２３５に伝える。
【０１１０】
（複合機の構成）
次に、複合機１の構成について説明する。図１は、本実施形態に係る複合機１の機能構成を示すブロック図である。図１に示されるように、複合機１は、ユーザインターフェイス層１１、アプリケーション層１２、サービス層１３、ドライバ層１４、ＯＳ層１５、ＵＩサービス層１６、Ｗｅｂサービス層１７、ＯＳＡアプリ層１８、およびＯｐｅｎＩ／Ｆ層１９を備えている。これらの各層およびそこに含まれる各ブロックは、図３に示した制御部１００および記憶部１０５を含むハードウェアと、記憶部１０５に格納されたプログラムからなるソフトウェアとが協働することにより実現される。
【０１１１】
ユーザインターフェイス層１１は、ユーザが複合機１を操作するためのインターフェイスである。ユーザインターフェイス層１１は、複合機１に固有の操作画面（固有操作画面）を記憶しており、当該固有操作画面を操作パネル６に表示させる。ユーザは、固有操作画面に対して、所望の処理の実行を入力することで、複合機１の制御を行うことができる。
【０１１２】
なお、ユーザインターフェイス層１１の操作パネル部１１ａは、複合機１の操作画面にて入力された情報をアプリケーション層１２に伝達する処理を行う。
【０１１３】
また、Ｗｅｂページ部１１ｂは、Ｗｅｂページにて入力された情報をアプリケーション層１２に伝達する処理を行う。
【０１１４】
アプリケーション層１２は、複合機１が有する各種の要素処理を連携させて実行するアプリケーションプログラムに従って動作するものである。上記の要素処理としては、図３に示される原稿読取部１１０を制御することにより実行されるスキャン処理、画像形成部１１５を制御することにより実行される印刷（プリント）処理、アプリケーションプログラムに基づいた画像処理、通信部１２０を制御することにより実行されるネットワーク処理などが挙げられる。そして、これらの要素処理を組み合わせることにより、連携処理が実現する。本実施形態では、ユーザからは、上記連携処理の実行が指示される。
【０１１５】
要素処理を組み合わせてなる連携処理とは、例えば、スキャン処理と画像処理と印刷処理とを組み合わせて実行される複写（コピー）処理、およびスキャン処理と文字認識（ＯＣＲ）処理と英日翻訳処理と印刷処理とを組み合わせて実行される翻訳コピー処理などがある。以下では、連携処理と要素処理とを区別して扱うこととする。
【０１１６】
本実施形態のアプリケーション層１２は、連携処理である複写（コピー）処理の実行／制御を行うためのコピーアプリ１２ａ、プリント処理の実行／制御を行うためのプリントアプリ１２ｂ、スキャンした画像データを外部の装置に送信するイメージ送信処理の実行／制御を行うためのイメージ送信アプリ１２ｃ、ドキュメントファイリング処理の実行／制御を行うためのドキュメントファイリングアプリ１２ｄ、ユーザ認証処理の実行／制御を行うためのユーザ認証アプリ１２ｅ、ＦＡＸ受信処理の実行／制御を行うためのＦＡＸ受信アプリ１２ｆ、ＴＷＡＩＮ処理の実行／制御を行うためのＴＷＡＩＮアプリ１２ｇなどを含む。
【０１１７】
サービス層１３は、アプリケーション層１２の下位に位置する層であり、アプリケーション層１２からの指示に従って、複合機１が有する各種の要素処理を実行するものである。
【０１１８】
本実施形態のサービス層１３には、要素処理であるスキャン処理を行うスキャンサービス１３ａ、プリント（印刷）処理を行うプリントサービス１３ｂ、ジョブ毎の情報管理を行うジョブログサービス１３ｃ、イメージ作成等の画像形成処理を実行する画処理サービス１３ｄ、ドキュメントファイリング等、イメージを管理するための処理を行うファイルサービス１３ｅ、リモートからＷｅｂページ経由でアクセスするための処理を行うＷＷＷサーバサービス１３ｆ、ＬＡＮや電話回線等を用いて通信処理を行うネットワークサービス１３ｇなどがある。
【０１１９】
ドライバ層１４は、サービス層１３の下位に位置する層であり、上記要素処理を実行するために、複合機１のハードウェアを制御するものである。サービス層１３の各部は、複合機１が有する各種ハードウェアを制御するためのドライバプログラムに従った動作を行う。
【０１２０】
本実施形態のドライバ層１４には、画像形成に関するＡＳＩＣドライバ１４ａ、ＵＳＢ通信を行うためのＵＳＢドライバ１４ｂ、シリアル通信を行うためのシリアル通信ドライバ１４ｃ、ＬＡＮ通信を行うためのＮＩＣドライバ１４ｄ、操作パネル６の表示制御を行うためのＬＣＤドライバ１４ｅ、電源管理を行うためのパワードライバ１４ｆなどがある。
【０１２１】
ＯＳ層１５は、ドライバ層１４の下位に位置する層であり、オペレーティングシステムを管理するものである。
【０１２２】
なお、上記ユーザインターフェイス層１１、アプリケーション層１２、サービス層１３、ドライバ層１４およびＯＳ層１５は、複合機１に固有のソフトウェアに従った動作を行うものであり、複合機１ごとに異なっている。これらの層を備えることで、複合機１は、通信ネットワークを介することなくユーザからの指示を直接受け付け、その指示に従った動作を行うことができる。
【０１２３】
ただし、複合機１が上記のような固有の層しか有していない場合、制御装置２は、この複合機１を制御する際に、複合機１ごとに制御指示を生成しなければならず、処理が複雑になってしまう。そこで、本実施形態の複合機１は、外部の制御装置２から共通の制御指示を受け付けることのできるように、以下の層をさらに有している。
【０１２４】
ＵＩサービス層１６は、ＨＴＴＰ（またはＨＴＴＰＳ）を用いて、制御装置２から操作画面データを取得し、取得した操作画面データに基づいた操作画面を操作パネル６上に表示させるものである。なお、ＵＩサービス層１６は、汎用されているＷｅｂブラウザの機能を有するものでよい。
【０１２５】
ＵＩサービス層１６とユーザインターフェイス層１１とを備えることで、ユーザは、操作パネル６の操作画面を、複合機１に固有の操作画面（ユーザインターフェイス層１１によって表示される）を操作して、その操作に応じた機能が複合機１で実行される標準操作モードと、ネットワークリソース（例えば、ＲＣＤのアプリケーション）を使用するオープンシステムモード（open system modes）とのいずれかに切り替えて使用することができる。
【０１２６】
なお、ＵＩサービス層１６には、制御装置２から提供されたＵＩ（操作画面）の表示を制御するＵＩマネージャ１６ａがある。
【０１２７】
ＵＩサービス層１６は、操作画面データを要求する旨の送信要求情報（リクエスト情報）を、ＨＴＴＰ（またはＨＴＴＰＳ）を用いて、当該アドレス情報で指定される制御装置２に対して送信する。そして、ＵＩマネージャ１６ａは、レスポンスとして取得した操作画面データに基づいて操作画面を操作パネル６に表示させる。このように、ＵＩマネージャは、制御装置２から操作画面のデータを受信し、受信したデータに対応する操作画面を操作パネル６に表示させるＵＩ処理手段として機能する。
【０１２８】
また、ＵＩマネージャ１６ａは、操作画面上で押下されたボタンを示す押下ボタン情報を、ＨＴＴＰ（またはＨＴＴＰＳ）を用いて制御装置２に送信し、その応答として新たな操作画面データを取得し、当該データに対応する操作画面を操作パネル６に表示させる。つまり、ＵＩマネージャ１６ａは、ユーザから取得した各種情報を制御装置２に対して通知する情報通知手段としても機能する。
【０１２９】
Ｗｅｂサービス層１７は、ＳＯＡＰを用いて制御装置２から送信される制御指示を受信し、当該制御指示に対応するＯＳＡアプリ層１８の適切なモジュールを呼び出すものである。また、Ｗｅｂサービス層１７は、ＯＳＡアプリ層１８から受けた情報を示すＳＯＡＰコマンドを生成し、制御装置２に対して送信する。Ｗｅｂサービス層１７は、制御指示と、当該制御指示が示す制御に適切なＯＳＡアプリ層１８のモジュールとを対応付けて記憶しており、当該記憶内容に応じて、適切なモジュールを呼び出す。
【０１３０】
本実施形態のＷｅｂサービス層１７は、ＵＩ制御に関するＷｅｂサービスを処理するＵＩマネージャ１７ａ、ジョブ制御に関するＷｅｂサービスを処理するジョブマネージャ１７ｂ、イベント送信要求に関するＷｅｂサービスを処理するイベントマネージャ１７ｃ、ジョブやデバイスのステータス制御に関するＷｅｂサービスを処理するステータスマネージャ１７ｄ、ＯＳＡアプリ層１８に関する情報を登録するためのサービスマネージャ１７ｅ、ジョブデータの送受信を行うためのＷｅｂサービスを処理するデータ送受信マネージャ１７ｆなどを含む。
【０１３１】
ＯＳＡアプリ層１８は、上述した連携処理を制御するための層であり、アプリケーションプログラムに基づいて、制御装置２からの処理の実行指示に含まれる第１ＡＰＩ（第１制御コマンド）をＯｐｅｎＩ／Ｆ層１９に出力する。後述するように、ＯｐｅｎＩ／Ｆ層１９で使用可能な（公開されている）ＡＰＩは、複合機１の機種に依存しない。そのため、ＯＳＡアプリ層１８は、複合機１ごとに、プログラムコードを変更する必要がない。
【０１３２】
本実施形態のＯＳＡアプリ層１８は、複写（コピー）処理の実行／制御を行うためのコピーアプリ１８ａ、プリント処理の実行／制御を行うためのプリントアプリ１８ｂ、スキャンした画像データを外部の装置に送信するイメージ送信処理の実行／制御を行うためのスキャンアプリ１８ｃ、ドキュメントファイリング処理の実行／制御を行うためのドキュメントファイリングアプリ１８ｄ、ユーザ認証処理の実行／制御を行うためのユーザ認証アプリ１８ｅ、ＦＡＸ受信処理の実行／制御を行うためのＦＡＸ受信アプリ１８ｆ、ＴＷＡＩＮ処理の実行／制御を行うためのＴＷＡＩＮアプリ１８ｇ、さらには、制御装置２からダウンロードしたアプリケーションプログラムの登録および管理を行うためのプログラム登録管理アプリ（プログラム受信手段）１８ｈ、処理の実行に必要な時間を推定する実行時間推定アプリ（実行時間推定手段）１８ｉなどを含む。
【０１３３】
ＯｐｅｎＩ／Ｆ層１９は、サービス層１３を制御するための第１ＡＰＩをＯＳＡアプリ層１８に公開しており、ＯＳＡアプリ層１８から第１ＡＰＩを呼び出すための第１制御コマンドを受け付けるとともに、受け付けた第１制御コマンドを、サービス層１３が受け付け可能な第２制御コマンドに変換するものである。
【０１３４】
ＯｐｅｎＩ／Ｆ層１９は、ＯＳＡアプリ層１８から受け付ける第１制御コマンドと、サービス層１３が外部に公開している第２ＡＰＩを呼び出すための第２制御コマンドとを対応付けたコマンド変換テーブル（コマンド対応情報）を記憶するコマンド変換テーブル記憶部（コマンド変換テーブル記憶部）（図示せず）を備えており、当該変換テーブルに従って、サービス層１３の公開している第２ＡＰＩの呼び出しを行う。図８は、ＯｐｅｎＩ／Ｆ層１９が保持しているコマンド変換テーブルの一例を示す図である。
【０１３５】
ＯｐｅｎＩ／Ｆ層１９は、ＯＳＡアプリ層１８へ公開する第１ＡＰＩを複合機１によらず共通にしている。これにより、ＯＳＡアプリ層１８のプログラムコードを変更する必要がなく、Ｗｅｂサービス層１７が外部の装置に公開するメソッドを複合機１によらず共通に定義することができる。すなわち、各制御装置２は、複合機１によらず共通のメソッドを用いて、Ｗｅｂサービス層１７に対する制御を行うことができる。
【０１３６】
図９は、ＯｐｅｎＩ／Ｆ層１９の機能を説明する図である。図９において、モデルＡの複合機１は、サービス層１３として、スキャンサービス１３ａおよびプリントサービス１３ｂを有している。この場合、モデルＡの複合機１のＯｐｅｎＩ／Ｆ層１９は、コマンド対応テーブルとして、図８に示されるように、第１ＡＰＩ（第１制御コマンド）「Execute Copy」と、第２ＡＰＩ（第２制御コマンド）「Do Scan」および「Do Print」とを対応付けて記憶している。そのため、ＯｐｅｎＩ／Ｆ層１９は、第１ＡＰＩ（第１制御コマンド）「Execute Copy」を受けると、変換後の第２ＡＰＩ（第２制御コマンド）に従ってスキャンサービス１３ａおよびプリントサービス１３ｂを実行させる。
【０１３７】
一方、モデルＢの複合機１は、サービス層１３として、コピーサービスを有している。この場合、モデルＢの複合機１のＯｐｅｎＩ／Ｆ層１９は、コマンド対応テーブルとして、第１ＡＰＩ（第１制御コマンド）「Execute Copy」と、第２ＡＰＩ（第２制御コマンド）'Do Copy'とを対応付けて記憶している。そのため、ＯｐｅｎＩ／Ｆ層１９は、第１ＡＰＩ（第１制御コマンド）'Execute Copy'を受けると、変換後の第２ＡＰＩ（第２制御コマンド）に従ってコピーサービスを実行させる。
【０１３８】
以上のように、ＯｐｅｎＩ／Ｆ層１９によれば、複合機のモデルに関らず、制御装置２やＯＳＡアプリ層１８は、'Execute Copy'という共通のＡＰＩ（制御コマンド）を用いてコピーの実行を指示することができる。つまり、複合機１のサービス層が機種ごとに異なる場合であっても、制御装置２及びＯＳＡアプリ層１８は、同じ実行指示及び第１ＡＰＩ（第１制御コマンド）を用いて各サービスを実行させることができる。従って、複合機１の機種ごとに実行指示及び第１ＡＰＩ（第１制御コマンド）を使い分ける必要がなく、制御装置２やＯＳＡアプリ層１８に用いるプログラムを容易に開発することができる。
【０１３９】
（複合機制御システムの概略動作）
次に、複合機制御システムの動作について概略的に説明する。図１０は、本実施形態の複合機制御システムの概略的な動作を示すフロー図である。
【０１４０】
図１０に示すように、まず、複合機１を利用するユーザのログイン処理を行う（Ｓ１）。ここでは、ユーザの認証は、複合機１において行われるのではなく、制御装置２において行うようになっている。従って、個々の複合機制御システムに複合機１が複数台含まれる場合であっても、個々の複合機１…がユーザ情報を管理する必要がない。
【０１４１】
次に、制御装置２において、複合機１を利用するユーザが管理者であるか否かの判定が行われる（Ｓ２）。ここで、ユーザが管理者である場合は、ステップＳ３に進み、複合機用プログラムのメンテナンス処理が行われる。一方、ユーザが管理者でなく一般ユーザである場合は、ステップＳ４に進み、複写処理や英日翻訳処理などの各種連携処理が複合機１において行われる。
【０１４２】
なお、各ステップの動作については、以下に詳述する。
【０１４３】
（ログイン処理）
まず、上述したステップＳ１におけるログイン処理について詳述する。
【０１４４】
本実施形態の複合機制御システムにおいて、ログイン処理は、複合機１が制御装置２の認証アプリケーションと連携して動作することによって実行される。つまり、上述したように、ユーザが複合機１に対して入力したログイン情報に基づいて、当該ユーザが正当なユーザであるか否かの認証処理を制御装置２が行うのである。
【０１４５】
まず、本実施形態の複合機制御システムにおけるログイン処理を説明する前に、従来の技術に基づいた比較例について説明する。
【０１４６】
図１１は、ＨＴＴＰのみで通信を行う比較例における認証処理の流れを示す図である。ＨＴＴＰは、ＨＴＴＰリクエスト（要求）とＨＴＴＰレスポンス（応答）とが１対１のペアとして通信されるものである。すなわち、クライアントがＨＴＴＰリクエストをサーバに対して行うと、サーバは、当該ＨＴＴＰリクエストに対応するＨＴＴＰレスポンスをクライアントに返信する。このように、サーバは、ＨＴＴＰリクエストがないのに何らかのデータをクライアントに送信することができず、また、クライアントは、ＨＴＴＰリクエストを送信していないのに、サーバから何らかのデータを受信することができない。
【０１４７】
図１１に示されるように、比較例では、複合機１（クライアント）がログインデータをサーバに送信すると、サーバは、当該送信に応答して、認証処理が終了したのち、次の操作画面データを複合機１に送信する。この場合、ユーザは、認証処理が終了するまでの間、次の画面を確認することができず、正常に認証処理が行われているのかどうか不安に思うこととなる。そのため、「ログイン中です」というような画面を複合機１の操作パネル６に表示する必要がある。しかしながら、比較例では、ログインデータの送信の応答として「ログイン中です」という画面を返信してしまうと、次の操作画面データを送信することができなくなる。複合機１からのリクエストがないからである。
【０１４８】
本実施形態によれば、複合機１からのＨＴＴＰリクエストに応じて、制御装置２のアプリケーション部２５が何らかの処理を行う場合であっても、当該処理の間に、複合機１の操作パネル６上の操作画面を遷移させることが可能となる。図１２は、本実施形態におけるログイン処理を示すタイミング図である。
【０１４９】
まず、複合機１において、ＵＩサービス層１６のＵＩマネージャ１６ａは、ネットワーク上に存在する複数の制御装置２の中からユーザがログイン処理を所望する制御装置２を特定するために、制御装置２の一覧が表示され、ユーザに制御装置２の選択を促すサーバ選択画面を操作パネル６に表示させる。
【０１５０】
そして、ユーザがログイン処理を所望する制御装置２を選択する。図１３は、サーバ選択画面においてユーザが制御装置２を選択した際の画面の一例である。
【０１５１】
次に、複合機１において、ＵＩサービス層１６のＵＩマネージャ１６ａは、ユーザによって選択された制御装置２に対して、ログイン画面データの送信を要求するリクエストを送信する（Ｓ５１）。
【０１５２】
このリクエストを受信した制御装置２では、情報受付部２３１が、ＵＩ制御部２３３に対して、ログイン画面データを複合機１へ送信するよう指示し（Ｓ５２）、ＵＩ制御部２３３が、ログイン画面データを画面データ記憶部２３２の中から検索して複合機１に返信する（Ｓ５３）。
【０１５３】
そして、複合機１において、ＵＩサービス層１６のＵＩマネージャ１６ａは、受信した画面データに基づいて、ログイン画面を表示する。図１４は、ログイン画面の一例を示す図である。
【０１５４】
これを受けてユーザは、操作パネル６または入力部５によってログインデータ（ユーザ名およびパスワード）を入力し、ＯＫボタンを押下する。図１５は、管理者がログイン情報を入力した際のログイン画面の一例であり、図１６は、一般ユーザがログイン情報を入力した際のログイン画面の一例である。この入力を受けて、ＵＩマネージャ１６ａは、入力されたログインデータとともに、ＯＫボタンが押下されたことを示す押下ボタン情報を制御装置２に送信する（Ｓ５４）。
【０１５５】
次に、制御装置２の情報受付部２３１は、上記押下ボタン情報を受信すると、図２５に示すイベントテーブルを参照して、ＵＩ制御部２３３に対して、「ログイン中です」と表示された通知画面のデータを複合機１へ送信するよう指示するとともに（Ｓ５５）、アプリケーション指示部２３６に対して、認証アプリケーションを呼び出すように指示する（Ｓ５６）。
【０１５６】
その結果、ＵＩ制御部２３３は、ステップＳ５５の送信指示に従い、「ログイン中です」と表示された通知画面のデータを画面データ記憶部２３２から読み出し、複合機１に送信する（Ｓ５７）。複合機１のＵＩマネージャ１６ａは、この通知画面のデータを受信して、操作パネル６に、受信したデータに対応する通知画面を表示させる。
【０１５７】
一方、アプリケーション指示部２３６は、ステップＳ５６の指示に従い、アプリケーション部２５に対して、認証アプリケーションプログラムに基づいた処理の実行を指示する。これを受けて、アプリケーション部２５は、認証アプリケーションプログラムに基づいて、予め登録されている認証データベースを用いてユーザの認証処理を行う（Ｓ５８）。
【０１５８】
そして、ユーザの認証に成功すると、アプリケーション部２５は、複合機機能制御部２３５に対して、認証に成功したことを通知する認証成功通知を複合機１へ送信するよう指示する（Ｓ５９）。これに従い、複合機機能制御部２３５は、複合機１に対して認証成功通知を送信する（Ｓ６０）。
【０１５９】
さらに、複合機機能制御部２３５は、複合機１に対して、操作画面の変更を指示する制御指示を送信する（Ｓ６２）。ここで、複合機機能制御部２３５は、認証されたユーザが管理者である場合は、管理メニュー画面のデータをリクエストするよう指示し、一方、認証されたユーザが一般ユーザである場合は、実行処理メニュー画面のデータをリクエストするよう指示する。
【０１６０】
一方、ステップＳ５８において認証に失敗した場合は、複合機１の操作パネル６に、認証に失敗した旨が示されたエラー画面が表示される。
【０１６１】
なお、ステップＳ６０およびＳ６２におけるデータの通信には、ＳＯＡＰが用いられる。
【０１６２】
（複合機用プログラムのメンテナンス処理）
まず、図１０のステップＳ３における複合機用プログラムのメンテナンス処理について詳述する。図１７は、複合機用プログラムのメンテナンス処理を示すフロー図である。
【０１６３】
上述したステップＳ５８において認証されたユーザが管理者であった場合、制御装置２のＵＩ制御部２３３は、画面データ記憶部２３２から、管理メニュー画面のデータを読み出し、複合機１に対して送信する（Ｓ１０１）。この管理メニュー画面には、ユーザが選択可能な管理内容の項目が一覧表示され、本実施形態では、図１８に示すように、（ｉ）制御装置２から複合機１へ全ての複合機用のアプリケーションプログラムを送信する「複合機プログラム送信」と、（ｉｉ）複合機１が有しているアプリケーションプログラムを更新する「複合機プログラム更新」との２つの選択項目が表示される。
【０１６４】
次に、複合機１のＵＩマネージャ１６ａが、この管理メニュー画面のデータを受信し、データに対応する管理メニュー画面を操作パネル６に表示させる（Ｓ１０２）。そして、ユーザは、この管理メニュー画面を参照して、所望の処理項目、すなわち上記の（ｉ），（ｉｉ）の何れかを操作パネル６または入力部５によって選択する（Ｓ１０３）。その結果、複合機１のＵＩマネージャ１６ａは、ユーザが選択した項目を特定する情報（被選択項目情報）を取得する。なお、上記の被選択項目情報は、押下ボタン情報として取得される。
【０１６５】
次に、複合機１のＵＩマネージャ１６ａは、制御装置２に対して、被選択項目情報を送信することにより、ユーザによって選択された処理の内容を通知する（Ｓ１０４）。すると、制御装置２の情報受付部２３１は、この被選択項目情報を受信し、受信した情報を複合機用プログラムの送信要求として解釈するとともに、ユーザが上記の（ｉ），（ｉｉ）の何れを所望しているかを判定する（Ｓ１０５）。
【０１６６】
ここで、複合機１から送信された被選択項目情報が（ｉ）の実行を要求するものであった場合、情報受付部２３１は、複合機プログラム送信部２３７に対して、複合機用プログラムの一式を複合機１へ送信するよう指示し、ステップＳ１０６に進む。
【０１６７】
ステップＳ１０６において、複合機プログラム送信部２３７は、送信プログラム記憶部２３８に格納されている全ての複合機用プログラムを読み取るとともに、読み取った複合機用プログラムをプログラムの登録処理の実行指示とともに複合機１へ送信する。そして、ステップＳ１１１に進む。
【０１６８】
ステップＳ１１１では、複合機１のＷｅｂサービス層１７のジョブマネージャ１７ｂが、制御装置２から送信されたプログラムの登録処理の実行指示を受信するとともに、データ送受信マネージャ１７ｆが、制御装置２から送信された複合機用プログラムを受信する
そして、ジョブマネージャ１７ｂは、実行指示に従って、ＯＳＡアプリ層１８のプログラム登録管理アプリ１８ｈを呼び出し、データ送受信マネージャ１７ｆが受信した複合機用プログラムを登録するよう指示する。すると、プログラム登録管理アプリ１８ｈは、データ送受信マネージャ１７ｆから複合機用プログラムを受け取って記憶部１０５に格納するとともに、当該複合機用プログラムをジョブマネージャ１７ｂからＯＳＡアプリ層１８のアプリとして呼び出すことができるように登録する（Ｓ１１１）。
【０１６９】
この登録は、プログラム登録管理アプリ１８ｈが、記憶部１０５に格納されたプログラム管理テーブルを更新することによって行われる。図１９は、プログラム管理テーブルの一例を示す図である。プログラム管理テーブルには、複合機用プログラムごとに、プログラムの識別子、プログラムの名称、プログラムのバージョン情報、プログラムの実行可能なユーザのＩＤおよびそのユーザによるプログラムの累積実行回数、ならびにプログラムの格納アドレスが示されている。
【０１７０】
プログラム登録管理アプリ１８ｈは、このプログラム管理テーブルを参照し、受信した複合機用プログラムが新規のプログラムの場合は、受信した複合機用プログラムについてのデータをテーブルに新たに追加する。一方、受信した複合機用プログラムが既に有しているものであった場合、プログラム登録管理アプリ１８ｈは、テーブルの中の該当する複合機用プログラムのデータを上書きする。
【０１７１】
Ｗｅｂサービス層１７のジョブマネージャ１７ｂは、上記のプログラム管理テーブルを参照してＯＳＡアプリ層１８の各アプリを呼び出すため、プログラム登録管理アプリ１８ｈがプログラム管理テーブルを更新することにより、制御装置２から受信した複合機用プログラムを呼び出すことができるようになる。例えば、ステップＳ１１１において、文字認識プログラムおよび英日翻訳プログラムが新規に登録された場合、図１に示すＯＳＡアプリ層１８は、図２０に示すように変更される。
【０１７２】
一方、ステップＳ１０５において、複合機１から送信された情報が（ｉｉ）の実行を要求するものであった場合、情報受付部２３１は、複合機プログラム送信部２３７に対して、更新された複合機用プログラムを複合機１へ送信するよう指示し、ステップＳ１０７に進む。
【０１７３】
ステップＳ１０７において、複合機プログラム送信部２３７は、複合機１に対して、複合機１の記憶部１０５に格納されている全てのプログラムのバージョン情報が示されたバージョン一覧情報のリクエストを送信する。すると、複合機１のＷｅｂサービス層１７のジョブマネージャ１７ｂが、制御装置２から送信されたバージョン一覧情報のリクエストを受信するとともに、ＯＳＡアプリ層１８のプログラム登録管理アプリ１８ｈに対して、バージョン一覧情報を送信するよう指示する。
【０１７４】
これを受けて、プログラム登録管理アプリ１８ｈは、上述したプログラム管理テーブルの中から、プログラムのバージョン情報を抽出し、自機の有している全てのプログラムのバージョン情報の一覧が示されたバージョン一覧情報を作成し、Ｗｅｂサービス層１７を介して制御装置２へ送信する（Ｓ１０８）。そして、このバージョン一覧情報を、制御装置２の情報受付部２３１が受信し、複合機プログラム送信部２３７へ入力する。
【０１７５】
次に、複合機プログラム送信部２３７は、複合機１から送信されたバージョン一覧情報と、送信プログラム記憶部２３８に格納された複合機用プログラム管理テーブル（図７を参照）に示されたバージョン情報とを比較する（Ｓ１０９）。ここで、複合機１が有しているプログラムよりも新しいバージョンのプログラムが見つかった場合、複合機プログラム送信部２３７は、そのプログラムを送信プログラム記憶部２３８の中から読み出す。
【０１７６】
そして、複合機プログラム送信部２３７は、読み出した複合機用プログラムを、プログラムの登録処理の実行指示とともに複合機１へ送信する。その後、ステップＳ１１１に進み、上述したプログラムの登録が行われる。
【０１７７】
ステップＳ１１１においてプログラムの登録が行われると、プログラム登録管理アプリ１８ｈは、制御装置２に対して、プログラムの登録が完了したことを、Ｗｅｂサービス層１７を介して通知する（Ｓ１１２）。すると、制御装置２のＵＩ制御部２３３は、図２１に示すような処理が完了したことを示す完了通知画面のデータを複合機１に送信し（Ｓ１１３）、複合機１のＵＩマネージャ１６ａが、完了画面を操作パネル６に表示させる（Ｓ１１４）。
【０１７８】
（複合機による連携処理）
次に、図１０のステップＳ４における複合機による各種連携処理について詳述する。図２２および２３は、複合機１による連携処理を示すフロー図である。
【０１７９】
まず、上述したステップＳ５８において認証されたユーザが一般ユーザであった場合、制御装置２のＵＩ制御部２３３は、画面データ記憶部２３２から実行処理メニュー画面のデータを読み出し、複合機１に対して送信する（Ｓ２０１）。この実行処理メニュー画面には、ユーザが選択可能な処理の項目が一覧表示されている。図２４は、実行処理メニュー画面の一例を示す図である。
【０１８０】
複合機１のＵＩマネージャ１６ａは、この実行処理メニュー画面のデータを受信し、データに対応する実行処理メニュー画面を操作パネル６に表示させる（Ｓ２０２）。そして、ユーザは、この実行処理メニュー画面を参照して、操作パネル６または入力部５によって所望の処理項目を選択する（Ｓ２０３）。その結果、複合機１のＵＩマネージャ１６ａは、ユーザの選択した項目を特定する情報（被選択項目情報）を取得する。なお、上記の被選択項目情報は、押下ボタン情報として取得される。
【０１８１】
次に、複合機１のＵＩマネージャ１６ａは、制御装置２の情報受付部２３１に対して、被選択項目情報を送信することにより、ユーザによって選択された処理の内容を通知する（Ｓ２０４）。すると、情報受付部２３１は、図２５に示すイベントテーブルを参照して、複合機機能制御部２３５に対して、ユーザによって選択された処理の内容に応じて、適切な実行指示を複合機１へ送信するよう指示する（Ｓ２０５）。
【０１８２】
例えば、図２４に示す実行処理メニュー画面において、「英日翻訳してコピー」処理が選択された場合、情報受付部２３１は、イベントテーブルを参照して、複合機機能制御部２３５に対して、スキャン処理の実行指示を複合機１へ送信するよう指示する。以下では、実行処理メニュー画面において、「英日翻訳してコピー」処理が選択された場合を例に用いて説明する。
【０１８３】
次に、複合機機能制御部２３５は、情報受付部２３１の指示に従い、処理の実行指示と、ステップＳ５８で認証されたユーザのＩＤと、自機の識別情報とを複合機１のジョブマネージャ１７ｂに送信する（Ｓ２０６）。また、ＯＣＲ処理、翻訳処理、あるいは印刷処理など、処理の実行にデータが必要な場合、複合機機能制御部２３５は、そのデータ（以下「入力データ」という）を複合機１のデータ送受信マネージャ１７ｆに送信する。なお、このステップＳ２０６における実行指示などの送受信は、ＳＯＡＰを用いて行われる。
【０１８４】
このステップについて上述の例で説明すると、複合機機能制御部２３５は、スキャン処理の実行指示（「JobCreate」、「ExecuteScan」および「JobClose」）を制御指示テーブル記憶部２３４から読み出し、この実行指示にユーザＩＤおよび自機の識別情報を付加して複合機１のＷｅｂサービス層１７へ送信する。
【０１８５】
次に、Ｗｅｂサービス層１７のジョブマネージャ１７ｂは、実行指示、ユーザＩＤ、および制御装置の識別情報を受信し、受信した実行指示が、予め登録された制御装置２から送信されたものであるかを判定する（Ｓ２０７）。すなわち、本実施形態の複合機１では、実行指示の受け付けを許可する制御装置の識別情報の一覧が示された制御装置制限情報が記憶部１０５に格納されており、ジョブマネージャ１７ｂは、実行指示とともに受信した制御装置の識別情報が制御装置制限情報に登録されているか否かを判定する。
【０１８６】
ここで、受信した識別情報が制御装置制限情報に登録されていない場合、ジョブマネージャ１７ｂは、受信した実行指示が正当なものではないと判断し、制御装置２に対してエラーを通知する（Ｓ２０８）。その結果、制御装置２では、情報受付部２３１の指示に従って、ＵＩ制御部２３３がエラー画面のデータを複合機１へ送信し（Ｓ２０９）、複合機１の操作パネル６にエラー画面が表示される（Ｓ２１２）。
【０１８７】
一方、ステップＳ２０７において、受信した識別情報が制御装置制限情報に登録されていた場合、ジョブマネージャ１７ｂは、実行指示とともに受信したユーザＩＤが、実行指示に基づいた処理に用いられるプログラムを実行する権限を有しているか否かを、図１９に示す上述したプログラム管理テーブルを参照して判定する（Ｓ２１０）。
【０１８８】
上述の例で説明すると、実行指示「ExecuteScan」は、図１９に示すプログラム管理テーブルにおいて識別子「Ｍ＿００１８」で示される「スキャン」プログラムの実行を指示するものであるが、この「スキャン」プログラムの行に示された実行可能ユーザＩＤの中に、実行指示とともに受信したユーザＩＤが含まれているか否かを判定する。
【０１８９】
ここで、受信したユーザＩＤが、実行指示に基づいた処理に用いられるプログラムの実行権限を有していない場合、ジョブマネージャ１７ｂは、制御装置２に対してエラーを通知する（Ｓ２１１）。その結果、制御装置２では、情報受付部２３１の指示に従って、ＵＩ制御部２３３がエラー画面のデータを複合機１へ送信し（Ｓ２０９）、複合機１の操作パネル６にエラー画面が表示される（Ｓ２１２）。
【０１９０】
一方、ステップＳ２１０において、受信したユーザＩＤが、プログラムの実行権限を有している場合、ジョブマネージャ１７ａは、ＯＳＡアプリ層１８の実行時間推定アプリ１８ｉを呼び出す。そして、実行時間推定アプリ１８ｉは、実行指示に基づいた処理を行うのに要する時間（すなわちプログラムの実行時間）を推定する（Ｓ２１３）。
【０１９１】
例えば、制御装置２からの実行指示が英日翻訳処理である場合、処理に必要な時間は、翻訳しなければならない文章の量に依存する。ここで、複合機１が大量の文章を翻訳すると、翻訳中にユーザが他の処理を実行させることができなくなってしまう。そこで、実行時間推定アプリ１８ｉが処理に必要な時間を概算し、概算結果に応じて処理を行うか否かを判断するのである。
【０１９２】
ここで、処理に必要な時間は、例えば英日翻訳の場合は翻訳対象である文章の量といったように、処理対象となるデータのサイズに依存すると考えられる。従って、実行時間推定アプリ１８ｉは、ジョブマネージャ１７ｂが実行指示を受信した際にデータ送受信マネージャ１７ｆが受信した入力データに基づいて、処理に要する時間を推定する。
【０１９３】
例えば、入力データのサイズをＮ、処理内容（アプリケーションプログラム）ごとに決定されるパラメータをＡとすると、実行時間Ｔは、次の（１）〜（４）式
Ｔ＝Ａ×Ｎ                  …（１）
Ｔ＝Ａ×ＮｌｏｇＮ          …（２）
Ｔ＝Ａ×Ｎ２                …（３）
Ｔ＝Ａ×２Ｎ                …（４）
の何れかなどによって算出することができる。もちろん、上記の（１）〜（４）式を、印刷処理、ＯＣＲ処理、翻訳処理などの処理の種類に応じて選択して用いてもよい。
【０１９４】
なお、スキャン処理などのように入力データのない場合は、この処理時間の推定ステップを省略してもよいし、別の方法で処理時間を推定してもよいし、あるいは所定の時間を処理時間とみなしてもよい。
【０１９５】
次に、実行時間推定アプリ１８ｉは、推定した処理時間が閾値以上か否かを判定する（Ｓ２１４）。この閾値は、予め設定した固定値であってもよいし、複合機１がすでに有しているジョブの量などに応じて変動する値であってもよい。
【０１９６】
ここで、推定した処理時間が閾値以上でない場合は、ジョブマネージャ１７ｂが、図１９に示すプログラム管理テーブルの中の、実行指示に基づいて呼び出されるアプリ（プログラム）の累積実行回数を更新する（Ｓ２１９）。より詳細には、プログラム管理テーブルには累積実行回数がユーザごとに設けられているため、ジョブマネージャ１７ｂは、ステップＳ２０６において受信したユーザＩＤに対応する累積実行回数をインクリメントする。
【０１９７】
その後、ジョブマネージャ１７ｂは、実行指示に基づいた処理を行うためのアプリの呼び出しを行う。その結果、実行指示に基づいた処理が行われる（Ｓ２２０）。
【０１９８】
上述した例で説明すると、スキャン処理の実行指示「ExecuteScan」を受け取ったジョブマネージャ１７ｂは、ＯＳＡアプリ層１８の中からスキャンアプリ１８ｃを呼び出す。ここで、スキャンアプリ１８ｃを呼び出すということは、ジョブマネージャ１７ｂが、図１９に示すプログラム管理テーブルを参照して、「スキャン」プログラムをＣＰＵ１０１に実行させることを意味する。
【０１９９】
もちろん、ジョブマネージャ１７ｂが、文字認識処理あるいは英日翻訳処理の実行指示を受け取った場合は、図２０において新規に追加された文字認識アプリ１８ｊあるいは英日翻訳アプリ１８ｋを呼び出す（すなわち、制御装置２から受信した「文字認識」プログラムあるいは「英日翻訳」プログラムをＣＰＵ１０１に実行させる）ことができる。
【０２００】
なお、複合機１のＯＳＡアプリ層１８以下では、指示された処理が大きく分けて次の２つの手順で実行される。まず、指示された処理が、文字認識処理や翻訳処理のように、ＣＰＵ１０１および記憶部１０５のみのハードウェアによって実行できる場合、ＯＳＡアプリ層１８のアプリが処理をそのまま実行する。
【０２０１】
一方、スキャン処理あるいは印刷処理などのように、制御部１００および記憶部１０５以外のハードウェアも必要とする場合は、ＯＳＡアプリ層１８の呼び出されたアプリが、ＯｐｅｎＩ／Ｆ層１９を介してサービス層１３のサービスを呼び出す。そして、呼び出されたサービス層１３のサービスが、ドライバ層１４に含まれる、所望のハードウェアを制御するドライバを呼び出しながら、処理を実行する。
【０２０２】
例えば、図２６に示されるように、制御装置２からスキャン処理の実行指示が送信され（Ｓ３０１）、ＯＳＡアプリ層１８においてスキャンアプリ１８ｃが呼び出された場合（Ｓ３０３）、スキャンアプリ１８ｃは、ＯｐｅｎＩ／Ｆ層１９に対して、第１制御コマンド「ExecuteScan」を出力する（Ｓ３０４）。
【０２０３】
すると、ＯｐｅｎＩ／Ｆ層１９は、図８のコマンド対応テーブルを参照して、受け取った第１制御コマンド「ExecuteScan」に対応する第２制御コマンド「Do Scan」、「Save File」、および「SenByFTP」をサービス層１３に順次出力する（Ｓ３０６）。その結果、第２制御コマンド「Do Scan」に従って、サービス層１３のスキャンサービス１３ａが呼び出され、このスキャンサービス１３ａが、ドライバ層１４の、原稿読取部１１０を制御するドライバを呼び出しながら、原稿の読み取りを実行する（Ｓ３０７）。続いて、ファイルサービス１３ｅが、原稿を読み取って得たデータをファイルとして保存する。最後に、ネットワークサービス１３ｇが、保存したファイルを制御装置２へＦＴＰで送信する（Ｓ３０８）。
【０２０４】
その後、サービス層１３から、処理の完了を示す完了通知が、ＯｐｅｎＩ／Ｆ層１９、ＯＳＡアプリ層１８、Ｗｅｂサービス層１７の順に送られ、Ｗｅｂサービス層１７のイベントマネージャ１７ｃが、制御装置２の情報受付部２３１に対して完了通知を送信する（図２３のＳ２２１、図２６のＳ３０９〜Ｓ３１２）。この完了通知の送信は、ＳＯＡＰを用いて行われる。
【０２０５】
処理の完了通知を受け取った制御装置２の情報受付部２３１は、イベントテーブルを参照して（Ｓ２２２）、連続して行うべき次の処理があるか否かを判定する（Ｓ２２３）。ここで、次の処理がある場合は、ステップＳ２０６に戻り、複合機機能制御部２３５が、情報受付部２３１の指示に従って、次の処理の実行指示を送信する。また、処理に必要なデータがある場合は、複合機機能制御部２３５がデータを複合機１のデータ送受信マネージャ１７ｆに送信する。
【０２０６】
例えば、ユーザによって「英日翻訳コピー」処理が選択され、複合機１がスキャン処理を終了したときは、情報受付部２３１は、図２５のイベントテーブルを参照して、複合機機能制御部２３５に対して、次の処理である文字認識処理の実行指示を複合機１へ送信するよう指示する。このとき、先ほど得られたスキャンデータもデータ送受信マネージャ１７ｆに送信する。同様に、文字認識処理が完了したときは英日翻訳処理、英日翻訳処理が完了したときはプリント処理が行われる。
【０２０７】
そして、Ｓ２２３において全ての処理が完了した場合は、情報受付部２３１は、ＵＩ制御部２３３に対して、全ての処理が完了したことを通知する完了通知画面のデータを複合機１へ送信するよう指示し、これに従い、ＵＩ制御部２３３が、完了通知画面のデータを複合機１へ送信する（Ｓ２２３）。
【０２０８】
そして、複合機１のＵＩマネージャ１７ａは、受信したデータに対応する完了通知画面を操作パネル６に表示させる（Ｓ２２４）。図２７は、この完了通知画面の一例を示す図である。
【０２０９】
ところで、ステップＳ２１４において、実行時間推定アプリ１８ｉの推定した処理時間が閾値以上でない場合は、ジョブマネージャ１７ｂが、制御装置２の情報受付部２３１に対して、指示された処理の実行を拒絶する旨を示す拒絶通知を送信する（Ｓ２１５）。このとき、ジョブマネージャ１７ｂは、実行を拒絶する処理に対応する複合機用プログラムの識別子も送信する。
【０２１０】
この拒絶通知を受信した情報受付部２３１は、アプリケーション指示部２３６に対して、実行が拒絶された処理をアプリケーション部２５に行わせるよう指示する。すると、アプリケーション指示部２３６は、まず、複合機１において実行が拒絶された処理を行うために、実行が拒絶された複合機用プログラムに対応する制御装置用プログラムが自機の記憶部１３５にあるか否かを判定する（Ｓ２１６）。
【０２１１】
このステップについて詳細に説明すると、本実施形態の制御装置２の記憶部１３５には、図２８に示す制御装置用プログラム管理テーブルが格納されている。この制御装置用プログラム管理テーブルには、制御装置２の記憶部１３５に格納された、自機のＣＰＵ１３１が実行するための各アプリケーションプログラムについての情報が示されており、具体的には、プログラムごとに、プログラムの識別子、プログラムの名称、プログラムのバージョン情報、対応する複合機用プログラムの識別情報、およびプログラムの格納アドレスが示されている。
【０２１２】
アプリケーション指示部２３６は、この制御装置用プログラム管理テーブルを参照し、拒絶通知とともに送信された複合機用プログラムの識別情報が、制御装置用プログラム管理テーブルに示されているか否かを判定する。ここで、示されていた場合は、実行が拒絶された処理を行うためのプログラムを自機が有していることになるため、アプリケーション指示部２３６は、格納アドレスを参照して、実行が拒絶された複合機用プログラムに対応する制御装置用プログラムの呼び出しを行う。換言すると、アプリケーション指示部２３６は、実行が拒絶された複合機用プログラムに対応する制御装置用プログラムをＣＰＵ１３１に実行させる。その結果、制御装置２のアプリケーション部２５は、複合機１の代わりに処理を実行する（Ｓ２１８）。
【０２１３】
一方、拒絶通知とともに送信された複合機用プログラムの識別情報が、テーブルに示されていない場合は、アプリケーション指示部２３６は、プログラム変換部２３９に対して、実行が拒絶された処理を行うための複合機用プログラムを、自機のＣＰＵ１３１が実行可能な制御装置用プログラムに変換するよう指示する。
【０２１４】
これを受けて、プログラム変換部２３９は、送信プログラム記憶部２３８から、実行が拒絶された処理を行うための複合機用プログラムを読み取り、読み取った複合機用プログラムを制御装置用プログラムに変換する（Ｓ２１７）。なお、変換に用いる複合機用プログラムは、送信プログラム記憶部２３８に格納されたものに限定されず、複合機１から必要に応じて送信されたものであってもよい。
【０２１５】
このプログラムの変換は、例えば、複合機用プログラムがＪＡＶＡ（登録商標）でコードされ、制御装置用プログラムがＣＰＵ１３１のネイティブコード（マシン語）である場合は、ＪＡＶＡ（登録商標）でコードされた複合機用プログラムを一旦Ｃ＋＋などのソースコードに変換し、それをコンパイルしてネイティブコードを生成することにより行うことができる。
【０２１６】
そして、プログラム変換部２３９は、変換して得られた制御装置用プログラムを記憶部１３５に格納するとともに、制御装置用プログラム管理テーブルに、格納した制御装置用プログラムについての情報を追加する。続いて、プログラム変換部２３９は、アプリケーション指示部２３６に対して、格納した制御装置用プログラムをＣＰＵ１３１に実行させるよう（すなわち、制御装置用プログラムを呼び出すよう）指示する。
【０２１７】
その結果、制御装置２のアプリケーション部２５は、複合機１の代わりに処理を実行する（Ｓ２１８）。
【０２１８】
最後に、図１および図６に示す複合機１および制御装置２の各ブロックは、ハードウェアロジックによって構成することもできるが、本実施形態では、次のようにＣＰＵ１０１・１３１を用いてソフトウェアによって実現している。
【０２１９】
すなわち、複合機１および制御装置２は、各ブロックの機能を実現するプログラムを実行するＣＰＵ（central processing unit）１０１・１３１、上記プログラムを格納したＲＯＭ（read only memory）１０８・１３７あるいはＨＤＤ（hard disk drive）１０８・１３８、上記プログラムを展開するＲＡＭ（random access memory）１０７・１３６、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）１０５・１３５・１４０などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである複合機１および制御装置２のプログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、複合機１および制御装置２に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても達成可能である。
【０２２０】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０２２１】
また、複合機１および制御装置２を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０２２２】
以上のように、本実施形態の複合機１は、ＣＰＵ１０１を有するとともに、制御装置２と通信可能に接続され、当該制御装置２によって制御されるものである。そして、複合機１は、ＣＰＵ１０１が実行するためのプログラムである複合機用プログラムを格納するための記憶部１０５と、制御装置２から複合機用プログラムを受信して記憶部１０５に格納するプログラム登録管理アプリ１８ｈと、制御装置２から送信される実行指示に応答して、記憶部１０５に格納された複合機用プログラムをＣＰＵ１０１に実行させるジョブマネージャ１７ｂとを備えた構成となっている。
【０２２３】
上記構成によれば、プログラム登録管理アプリ１８ｈによって、複合機１が有していないプログラムが制御装置２から取得されるとともに記憶部１０５に格納される。これにより、複合機１は、自身の有していないプログラムを制御装置から取得し、取得したプログラムに基づいて、工場出荷時にはできなかった新規の処理を実行することができるようになる。さらに、ジョブマネージャ１７ｂは、記憶部１０５に格納された複合機用プログラムを、制御装置２から送信される実行指示に応答してＣＰＵ１０１に実行させる。これにより、複合機１が取得したプログラムに基づいた処理の実行を制御装置２から指示することができる。従って、複合機の有する機能を統合的に制御し、かつ、複合機の提供する機能を柔軟に変更することのできるシステムを実現することができる。
【０２２４】
また、本実施形態の制御装置２は、この複合機１と通信可能に接続されるものであり、複合機用プログラムを格納する送信プログラム記憶部２３８と、送信プログラム記憶部２３８から複合機用プログラムを読み取って複合機１に送信する複合機プログラム送信部２３７と、複合機１に対して、複合機プログラム送信部２３７が送信した複合機用プログラムの実行指示を送信する複合機機能制御部２３５とを備えた構成となっている。
【０２２５】
上記構成によれば、複合機プログラム送信部２３７によって、複合機用プログラムが送信プログラム記憶部２３８から読み取られるとともに、複合機１へ送信される。これにより、複合機１は、自身の有していないプログラムを制御装置から取得し、取得したプログラムに基づいて、工場出荷時にはできなかった新規の処理を実行することができるようになる。さらに、複合機機能制御部２３５によって、複合機プログラム送信部２３７が送信した複合機用プログラムの実行指示が、複合機１に対して送信される。これにより、制御装置２が送信したプログラムの実行を制御装置２から指示することができる。従って、複合機の有する機能を統合的に制御し、かつ、複合機の提供する機能を柔軟に変更することのできるシステムを実現することができる。
【０２２６】
なお、複合機１に接続される制御装置２は複数台であってもよく、さらには、複合機１に対して複合機用プログラムを送信する制御装置と、当該複合用プログラムの実行指示を送信する制御装置とが、別の装置であってもよい。
【０２２７】
また、制御装置２の複合機機能制御部２３５は、複合機プログラム送信部２３７が送信した複合機用プログラムのみならず、複合機プログラム送信部２３７が送信せずに元から複合機１が有していたプログラムの実行指示も送信する構成となっている。
【０２２８】
上記構成によれば、制御装置２は、工場出荷時には複合機１が有しておらず、かつ、自機が提供したプログラムと、複合機１が元から有していたプログラムとの双方についての実行指示を送信することができるため、複合機１が元から有していたプログラムに基づいた処理と、制御装置２が提供したプログラムに基づいた処理とを組み合わせた連携処理を行わせることができる。従って、組み合わせに応じて、様々な連携処理を複合機１に実行させることができる。
【０２２９】
また、本実施形態の複合機１の記憶部１０５には、実行指示の受け付けを許可する制御装置の識別情報が示された制御装置制限情報が格納され、ジョブマネージャ１７ｂが、実行指示を送信した制御装置の識別情報をも受信する構成となっている。そして、ジョブマネージャ１７ｂは、受信した識別情報によって示される制御装置２が、制御装置制限情報に識別情報が示されている制御装置の中に含まれているか否かを判定し、判定結果が「否」である場合に、複合機用プログラムをＣＰＵ１０１に実行させない構成となっている。
【０２３０】
上記構成によれば、制御装置制限情報に識別情報が示されていない制御装置からの実行指示をジョブマネージャが許可しないので、不正な制御装置２から複合機１が実行指示を受け付けてしまうのを防止することができる。
【０２３１】
同様に、本実施形態の複合機１の記憶部１０５に格納される複合機用プログラム管理テーブルには、図１９に示すように、実行指示の受け付けを許可するユーザＩＤが、複合機用プログラムごとに示されており、ジョブマネージャ１７ｂが、複合機用プログラムの実行を操作パネル６への入力により指示したユーザＩＤをも受信する構成となっている。そして、ジョブマネージャ１７ｂは、複合機用プログラムの実行指示とともに受信したユーザＩＤが、実行指示を受信した複合機用プログラムの実行指示の受け付けを許可するユーザＩＤの中に含まれているか否かを判定し、判定結果が「否」である場合に、複合機用プログラムをＣＰＵ１０１に実行させない構成となっている。
【０２３２】
上記構成によれば、ユーザ制限情報に識別情報が示されていないユーザからの実行指示をジョブマネージャ１７ｂが許可しないので、不正なユーザが複合機１に複合機用プログラムの実行を指示するのを防止することができる。また、複合機用プログラム管理テーブルには、実行指示の受け付けを許可するユーザＩＤが、複合機用プログラムごとに示されているので、ユーザに応じて複合機用プログラムの実行権限を切り替えることができる。
【０２３３】
また、本実施形態の複合機１は、複合機用プログラムがＣＰＵ１０１によって実行された回数をジョブマネージャ１７ｂが、プログラムごと、かつ、ユーザごとにカウントし、カウントした実行回数をプログラムごと、かつ、ユーザごとに複合機用プログラムごとに複合機用プログラム管理テーブルに格納する構成となっている。
【０２３４】
上記構成によれば、各複合機用プログラムが複合機１において何回実行されたかを知ることができるので、課金システムの構築や複合機用プログラムの利用統計を取得するのに応用することができる。
【０２３５】
課金システムの具体例としては、複合機１に、ジョブマネージャ１７ｂによってカウントされた実行回数に基づいて、複合機用プログラムの使用の対価となる課金情報を算出する課金情報処理部（課金情報処理手段）を設けることが挙げられる。この場合、課金情報処理部は、複合機用プログラムを１回利用したときの単価情報を複合機用プログラムごとに有しており、カウントされた実行回数に単価を乗算することにより、ユーザに請求する課金情報を得ることができる。そして、ジョブマネージャ１７ｂは、カウントされた実行回数をユーザの決済ごとにリセットすることにより、決済と次の決済との間の期間における実行回数をカウントするものであってもよい。
【０２３６】
また、課金システムの他の具体例としては、プリペイドカードなどにより、予めユーザから代金を受け取っておき、受け取った代金に応じた実行回数の上限を設定しておくことが挙げられる。この場合、上記実行回数カウント手段によってカウントされた実行回数が上記の上限に達している場合に、複合機用プログラムを上記コンピュータに実行させないようジョブマネージャ１７ｂを構成すればよい。そして、ジョブマネージャ１７ｂは、カウントされた実行回数をユーザの決済ごとにリセットすることにより、決済と次の決済との間の期間における実行回数をカウントするものであってもよい。
【０２３７】
また、本実施形態の複合機１の記憶部１０５には、図１９に示すように、複合機用プログラムとともにそのバージョン情報も格納され、プログラム登録管理アプリ１８ｈが、制御装置２に対して、記憶部１０５に格納された複合機用プログラムのバージョン情報を送信する構成となっている。
【０２３８】
そして、本実施形態の制御装置２の送信プログラム記憶部２３８には、図７に示すように、複合機用プログラムとともにそのバージョン情報も格納され、複合機プログラム送信部２３７が、複合機１の有している複合機用プログラムのバージョン情報を複合機１から受信し、受信したバージョン情報と、送信プログラム記憶部２３８に格納された自身の有している複合機用プログラムのバージョン情報とを比較し、送信プログラム記憶部２３８に格納されたバージョン情報によって示されるバージョンが、受信したバージョン情報によって示されたバージョンよりも新しい場合に、送信プログラム記憶部２３８に格納された複合機用プログラムを複合機１に送信するモードを有した構成となっている。
【０２３９】
上記構成によれば、制御装置２の送信プログラム記憶部２３８に格納されている複合機用プログラムのうち、複合機１が有しているプログラムよりもバージョンが古いものについては、複合機プログラム送信部２３７が複合機１に対して送信しない。従って、制御装置２が有している全ての複合機用プログラムが送信されることはなく、プログラムの更新を効率的に行うことができる。
【０２４０】
また、本実施形態の複合機１は、複合機用プログラムの実行に必要な時間を推定する実行時間推定アプリ１８ｉを備え、ジョブマネージャ１７ｂが、実行時間推定アプリ１８ｉによって推定された時間を閾値と比較して、推定された時間が閾値よりも大きい場合には、複合機用プログラムをＣＰＵ１０１に実行させない構成となっている。
【０２４１】
上記構成によれば、制御装置２からプログラムの実行指示があっても、実行時間推定アプリ１８ｉによって推定された実行時間が閾値よりも大きい場合には、ＣＰＵ１０１がプログラムを実行しない。従って、ネットワークを介して指示された処理によって、複合機１が長時間専有されてしまうのを防止することができる。
【０２４２】
さらに、複合機１のジョブマネージャ１７ｂは、実行時間推定アプリ１８ｉによって推定された実行時間が閾値よりも大きい場合は、制御装置２に対して、複合機用プログラムの実行を拒絶したことを示す拒絶通知を送信する。
【０２４３】
そして、制御装置２は、複合機１から送信された拒絶通知を受信すると、実行が拒絶された複合機用プログラムと同様の機能を有し、かつ、自機のＣＰＵ１３１が実行可能な制御装置用プログラムをＣＰＵ１３１に実行させるアプリケーション指示部２３６を備えた構成となっている。
【０２４４】
より具体的には、制御装置２の記憶部１３５には、図２８に示すように、制御装置用プログラムの識別情報と複合機用プログラムの識別情報とが対応関係が示された制御装置用プログラム管理テーブルが格納されており、アプリケーション指示部２３６が、記憶部１３５に格納された制御装置用プログラムの中から、複合機１において実行が拒絶された複合機用プログラムに対応する制御装置用プログラムを制御装置用プログラム管理テーブルに基づいて特定するとともに、特定した制御装置用プログラムを自機のＣＰＵ１３１に実行させる構成となっている。
【０２４５】
上記構成によれば、複合機用プログラムと、それに対応する制御装置用プログラムが複数組ある場合であっても、制御装置用プログラム管理テーブルにより、複合機用プログラムに対応する制御装置用プログラムを特定することができ、複合機１において実行が拒絶された処理を、制御装置２に代替的に実行させることができる。
【０２４６】
さらに、制御装置２は、複合機用プログラムを制御装置用プログラムに変換して記憶部１３５に格納するプログラム変換部２３９をさらに備えた構成となっている。
【０２４７】
上記構成によれば、制御装置２が複合機用プログラムに対応する制御装置用プログラムを有していない場合であっても、プログラム変換部２３９によって、複合機用プログラムが制御装置用プログラムに変換されるので、制御装置２は、複合機１において実行が拒絶された処理を代替的に実行することができる。
【０２４８】
また、本実施形態の複合機１は、画像読取処理、画像形成処理、および通信処理を含む処理を実行するサービス層１３と、制御装置２から、サービス層１３によって実行される処理を組み合わせてなる連携処理の実行指示を受信するＷｅｂサービス層１７と、当該Ｗｅｂサービス層が受信した実行指示に対応する第１制御コマンドを出力するＯＳＡアプリ層１８と、ＯＳＡアプリ層１８が出力する第１制御コマンドと、サービス層１３が受け付け可能な第２制御コマンドとの対応関係が示されたコマンド変換テーブルを格納する記憶部１０５と、ＯＳＡアプリ層１８から出力された第１制御コマンドに対応する上記第２制御コマンドを上記コマンド変換テーブルに基づいて特定するとともに、特定した第２制御コマンドをサービス層１３に対して出力するＯｐｅｎＩ／Ｆ層１９とを備えた構成となっている。
【０２４９】
通常、サービス層１３の詳細な構成は、複合機１の有するハードウェアに依存するため、複合機１に固有の構成となる。そのため、サービス層１３が受け付け可能な第２制御コマンドも複合機１の機種によって異なるものとなる。
【０２５０】
しかしながら、上記の構成によれば、ＯｐｅｎＩ／Ｆ層１９が、第１制御コマンドを受け付け、当該第１制御コマンドに対応する第２制御コマンドをコマンド変換テーブルから特定し、特定した第２制御コマンドをサービス層１３に対して出力する。これにより、第２制御コマンドが上述したように複合機１の機種に依存するものであっても、ＯｐｅｎＩ／Ｆ層１９が受け付けることができる第１制御コマンドを複合機１の機種に依存しないものにすることができる。
【０２５１】
これにより、外部の制御装置２が複合機１を制御する場合、制御装置２は、複合機１の機種に依存しない第１制御コマンドの基となる実行指示を複合機１に出力すればよい。その結果、制御装置２から複合機１に対して新たな処理の実行指示を行う場合であっても、複合機１によらず共通した第１制御コマンドの基となる実行指示を生成するように制御装置２を開発すればよく、その開発効率が向上する。
【０２５２】
そして、上記コマンド変換テーブルにおいて、第１制御コマンドは、複数の第２制御コマンドに対応付けられていてもよい。
【０２５３】
上記構成によれば、連携処理の実行を指示する単一の第１制御コマンドに基づいて、連携処理を構成する複数の要素処理が第２制御コマンドに基づいて実行される。
【０２５４】
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０２５５】
本発明は、通信ネットワークを介して複合機に制御装置を接続して、複合機を制御する複合機制御システムに適用することができる。
【図面の簡単な説明】
【０２５６】
【図１】本発明の一実施形態を示すものであり、複合機の機能構成を示すブロック図である。
【図２】本発明の一実施形態を示すものであり、複合機制御システムの概略構成を示すブロック図である。
【図３】本発明の一実施形態を示すものであり、複合機のハードウェア構成を示すブロック図である。
【図４】本発明の一実施形態を示すものであり、複合機に備わった操作部の平面図である。
【図５】本発明の一実施形態を示すものであり、制御装置のハードウェア構成を示すブロック図である。
【図６】本発明の一実施形態を示すものであり、制御装置の機能構成を示すブロック図である。
【図７】本発明の一実施形態を示すものであり、制御装置の記憶部に格納された複合機用プログラム管理テーブルの一例を示す図である。
【図８】本発明の一実施形態を示すものであり、制御装置の制御指示テーブル記憶部に格納された制御指示テーブルの一例を示す図である。
【図９】本発明の一実施形態を示すものであり、ＯｐｅｎＩ／Ｆ層の機能を説明する図である。
【図１０】本発明の一実施形態を示すものであり、複合機制御システムの動作を説明するフロー図である。
【図１１】従来の技術を示すものであり、ＨＴＴＰのみで通信を行った場合の認証処理の流れを示すタイミング図である。
【図１２】本発明の一実施形態を示すものであり、ログイン処理の流れを示すタイミング図である。
【図１３】本発明の一実施形態を示すものであり、サーバ選択画面の一例を示す図である。
【図１４】本発明の一実施形態を示すものであり、ログイン画面の一例を示す図である。
【図１５】本発明の一実施形態を示すものであり、ログイン画面において管理者がログイン情報を入力したときの一例を示す図である。
【図１６】本発明の一実施形態を示すものであり、ログイン画面において一般ユーザがログイン情報を入力したときの一例を示す図である。
【図１７】本発明の一実施形態を示すものであり、複合機用プログラムのメンテナンス処理を示すフロー図である。
【図１８】本発明の一実施形態を示すものであり、管理メニュー画面の一例を示す図である。
【図１９】本発明の一実施形態を示すものであり、複合機の記憶部に格納される複合機用プログラム管理テーブルの一例を示す図である。
【図２０】本発明の一実施形態を示すものであり、制御装置から受信した複合機用プログラムを登録した後のＯＳＡサーバ層の機能構成を示すブロック図である。
【図２１】本発明の一実施形態を示すものであり、複合機用プログラムのメンテナンス処理が完了したときに表示される完了通知画面の一例である。
【図２２】本発明の一実施形態を示すものであり、複合機による連携処理の前半を示すフロー図である
【図２３】本発明の一実施形態を示すものであり、複合機による連携処理の後半を示すフロー図である
【図２４】本発明の一実施形態を示すものであり、実行処理メニュー画面の一例を示す図である。
【図２５】本発明の一実施形態を示すものであり、制御装置の記憶部に格納されたイベントテーブルの一部を示す図である。
【図２６】本発明の一実施形態を示すものであり、制御装置から複合機へ実行指示が送信された際の各ブロック間におけるデータの流れを示すタイミング図である。
【図２７】本発明の一実施形態を示すものであり、複合機による連携処理が完了した際に表示される完了通知画面の一例を示す図である。
【図２８】本発明の一実施形態を示すものであり、制御装置の記憶部に格納される制御装置用プログラム管理テーブルの一例を示す図である。
【符号の説明】
【０２５７】
１  複合機
１０１  ＣＰＵ（コンピュータ）
１０５  記憶部（受信プログラム記憶部・制御装置制限情報記憶部・ユーザ制限情報記憶部）
１０６  ＲＡＭ（コンピュータ）
１３  サービス層（要素処理実行手段）
１７ｂ  ジョブマネージャ（プログラム呼出手段・判定手段・実行回数カウント手段・実行指示受付手段）
１８  ＯＳＡアプリ層（第１制御コマンド出力手段）
１８ｈ  プログラム登録管理アプリ（プログラム受信手段）
１８ｉ  実行時間推定アプリ（実行時間推定手段）
１９  ＯｐｅｎＩ／Ｆ層（制御コマンド変換手段）
２  制御装置
１３１  ＣＰＵ（コンピュータ）
１３５  記憶部（実行プログラム記憶部・プログラム対応情報記憶部）
１３６  ＲＡＭ（コンピュータ）
２３５  複合機機能制御部２３５（複合機制御手段）
２３６  アプリケーション指示部（プログラム呼出手段）
２３７  複合機プログラム送信部（プログラム送信手段）
２３８  送信プログラム記憶部（送信プログラム記憶手段）
２３９  プログラム変換部（プログラム変換手段）
【図１】
2007299282.tif 000003
【図２】
2007299282.tif 000004
【図３】
2007299282.tif 000005
【図４】
2007299282.tif 000006
【図５】
2007299282.tif 000007
【図６】
2007299282.tif 000008
【図７】
2007299282.tif 000009
【図８】
2007299282.tif 000010
【図９】
2007299282.tif 000011
【図１０】
2007299282.tif 000012
【図１１】
2007299282.tif 000013
【図１２】
2007299282.tif 000014
【図１３】
2007299282.tif 000015
【図１４】
2007299282.tif 000016
【図１５】
2007299282.tif 000017
【図１６】
2007299282.tif 000018
【図１７】
2007299282.tif 000019
【図１８】
2007299282.tif 000020
【図１９】
2007299282.tif 000021
【図２０】
2007299282.tif 000022
【図２１】
2007299282.tif 000023
【図２２】
2007299282.tif 000024
【図２３】
2007299282.tif 000025
【図２４】
2007299282.tif 000026
【図２５】
2007299282.tif 000027
【図２６】
2007299282.tif 000028
【図２７】
2007299282.tif 000029
【図２８】
2007299282.tif 000030