(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-23
(45)【発行日】2024-01-31
(54)【発明の名称】電子機器およびハードウェア制御プログラム
(51)【国際特許分類】
G06F 21/44 20130101AFI20240124BHJP
G06F 13/10 20060101ALI20240124BHJP
H04N 1/00 20060101ALI20240124BHJP
【FI】
G06F21/44
G06F13/10 320A
H04N1/00 C
(21)【出願番号】P 2019176654
(22)【出願日】2019-09-27
【審査請求日】2022-08-29
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】100140796
【氏名又は名称】原口 貴志
(72)【発明者】
【氏名】同前 和樹
【審査官】小林 秀和
(56)【参考文献】
【文献】特開2004-318720(JP,A)
【文献】特開2016-009927(JP,A)
【文献】特表2001-503891(JP,A)
【文献】パーソナルメディア株式会社,T-Kernel 組込みプログラミング強化書 ,初版,パーソナルメディア株式会社,2007年12月20日,40頁~45頁, 318頁~327頁,ISBN 978-4-89362-246-4
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/44
G06F 13/10
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
ハードウェアと、
前記ハードウェアを操作するハードウェア操作部と、
前記ハードウェア操作部から提供されるインターフェイスを介してのみ前記ハードウェアを制御するハードウェア制御サービスと
を備え
、
前記ハードウェアは、プロセッサーであり、
前記ハードウェア制御サービスは、
前記プロセッサーに対する操作の要求をキューイングする要求キューイング部と、
前記要求キューイング部によってキューイングされた前記要求を実行する要求実行部と
を備え、
前記プロセッサーは、前記プロセッサーが実行するためのプログラムが展開されるためのメモリーを備え、
前記要求実行部は、
前記プロセッサーによって実行される処理のタイプに対応する前記プログラムを特定の記憶領域からロードして前記メモリーに展開するプログラム展開工程と、
前記プログラム展開工程において前記メモリーに前記プログラムが展開された前記プロセッサーに前記処理を実行させる処理実行工程と、
前記処理実行工程の後で前記メモリーに展開されている前記プログラムを破棄するプログラム破棄工程と
を実行し、
前記要求実行部は、前記タイプが同一である複数の前記処理を連続して前記プロセッサーに実行させる場合に、前記複数の処理のうち最後の前記処理以外の前記処理に関する前記プログラム破棄工程と、前記複数の処理のうち最初の前記処理以外の前記処理に関する前記プログラム展開工程とを省略することを特徴とする電子機器。
【請求項2】
ハードウェアを備える電子機器によって実行されるハードウェア制御プログラムであって、
前記ハードウェアを操作するハードウェア操作部と、
前記ハードウェア操作部から提供されるインターフェイスを介してのみ前記ハードウェアを制御するハードウェア制御サービスと
を前記電子機器に実現させ、
前記ハードウェアは、プロセッサーであり、
前記ハードウェア制御サービスは、
前記プロセッサーに対する操作の要求をキューイングする要求キューイング部と、
前記要求キューイング部によってキューイングされた前記要求を実行する要求実行部と
を備え、
前記プロセッサーは、前記プロセッサーが実行するためのプログラムが展開されるためのメモリーを備え、
前記要求実行部は、
前記プロセッサーによって実行される処理のタイプに対応する前記プログラムを特定の記憶領域からロードして前記メモリーに展開するプログラム展開工程と、
前記プログラム展開工程において前記メモリーに前記プログラムが展開された前記プロセッサーに前記処理を実行させる処理実行工程と、
前記処理実行工程の後で前記メモリーに展開されている前記プログラムを破棄するプログラム破棄工程と
を実行し、
前記要求実行部は、前記タイプが同一である複数の前記処理を連続して前記プロセッサーに実行させる場合に、前記複数の処理のうち最後の前記処理以外の前記処理に関する前記プログラム破棄工程と、前記複数の処理のうち最初の前記処理以外の前記処理に関する前記プログラム展開工程とを省略することを特徴とするハードウェア制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ハードウェアを制御する電子機器およびハードウェア制御プログラムに関する。
【背景技術】
【0002】
従来の電子機器として、オペレーティングシステム上でハードウェアを管理する機器制御プラットフォームと、機器制御プラットフォームで管理されたハードウェアを利用するアプリケーションを実行するアプリケーション実行部とを備える画像形成装置が知られている(特許文献1参照。)。特許文献1に記載された画像形成装置において、機器制御プラットフォームは、ハードウェアを制御するためのサービスを提供する複数の制御サービス提供手段と、アプリケーションからの要求に対応する制御サービス提供手段を呼び出す複数の制御サービス呼出手段とを備えている。
【0003】
特許文献1に記載された画像形成装置において、制御サービス呼出手段のそれぞれは、アプリケーションからの要求に対応する制御サービス提供手段を直接呼び出す。したがって、特許文献1に記載された電子機器においては、アプリケーションの機能の追加が必要になった場合に、対応する制御サービス呼出手段の機能のみが変更されれば良く、機器制御プラットフォーム側の全体の機能が変更される必要がない。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1においては、ハードウェアの変更が必要になった場合について言及されていない。
【0006】
そこで、本発明は、ハードウェアの変更に対するソフトウェアの変更箇所を局所化することができる電子機器およびハードウェア制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の電子機器は、ハードウェアと、前記ハードウェアを操作するハードウェア操作部と、前記ハードウェア操作部から提供されるインターフェイスを介してのみ前記ハードウェアを制御するハードウェア制御サービスとを備えることを特徴とする。
【0008】
この構成により、本発明の電子機器は、ハードウェアが変更された場合に、ハードウェア操作部がハードウェア制御サービスに提供するインターフェイスが変更されることなく、ハードウェアの変更に対してハードウェア操作部のみが変更されることによって、ハードウェア制御サービスが変更される必要がないので、ハードウェアの変更に対するソフトウェアの変更箇所を局所化することができる。
【0009】
本発明の電子機器において、前記ハードウェア制御サービスは、前記ハードウェアに対する操作の要求をキューイングする要求キューイング部と、前記要求キューイング部によってキューイングされた前記要求を実行する要求実行部と、前記要求実行部による前記要求の実行の完了を前記要求の出力元に通知する完了通知部とを備えても良い。
【0010】
この構成により、本発明の電子機器は、ハードウェアに対する操作の要求をキューイングし、キューイングした要求を実行し、要求の実行の完了を要求の出力元に通知するので、要求の実行の完了前に要求の出力元に他の処理を実行させることができる。したがって、本発明の電子機器は、要求が実行されないために要求の出力元が待ち状態に陥るという事態の発生を防ぐことができ、その結果、出力元の実行の効率を向上することができる。
【0011】
本発明の電子機器において、前記ハードウェア制御サービスは、前記ハードウェアに対する操作の要求をキューイングする要求キューイング部と、前記要求キューイング部によってキューイングされた前記要求を実行する要求実行部と、前記要求実行部による前記要求の実行の順序を変更する順序変更部とを備え、前記順序変更部は、キューイング済みの前記要求の実行の順序の変更の条件を示すコンフィグファイルに示される前記条件に従って、キューイング済みの前記要求の実行の順序を変更し、前記コンフィグファイルは、変更されることが可能であっても良い。
【0012】
この構成により、本発明の電子機器は、コンフィグファイルが変更されることによって要求の実行の順序の変更の条件が変更されるので、要求の実行の順序の変更の条件が変更されるためにハードウェア制御サービスのプログラムが変更される必要がなく、要求の実行の順序の変更の条件の変更を容易化することができる。
【0013】
本発明の電子機器において、前記ハードウェアは、プロセッサーであり、前記ハードウェア制御サービスは、前記プロセッサーに対する操作の要求をキューイングする要求キューイング部と、前記要求キューイング部によってキューイングされた前記要求を実行する要求実行部とを備え、前記プロセッサーは、前記プロセッサーが実行するためのプログラムが展開されるためのメモリーを備え、前記要求実行部は、前記プロセッサーによって実行される処理のタイプに対応する前記プログラムを特定の記憶領域からロードして前記メモリーに展開するプログラム展開工程と、前記プログラム展開工程において前記メモリーに前記プログラムが展開された前記プロセッサーに前記処理を実行させる処理実行工程と、前記処理実行工程の後で前記メモリーに展開されている前記プログラムを破棄するプログラム破棄工程とを実行し、前記要求実行部は、前記タイプが同一である複数の前記処理を連続して前記プロセッサーに実行させる場合に、前記複数の処理のうち最後の前記処理以外の前記処理に関する前記プログラム破棄工程と、前記複数の処理のうち最初の前記処理以外の前記処理に関する前記プログラム展開工程とを省略しても良い。
【0014】
この構成により、本発明の電子機器は、タイプが同一である複数の処理を連続してプロセッサーに実行させる場合に、複数の処理のうち最後の処理以外の処理に関するプログラム破棄工程と、複数の処理のうち最初の処理以外の処理に関するプログラム展開工程とを省略するので、処理の実行の効率を向上することができる。
【0015】
本発明のハードウェア制御プログラムは、ハードウェアを備える電子機器によって実行されるハードウェア制御プログラムであって、前記ハードウェアを操作するハードウェア操作部と、前記ハードウェア操作部から提供されるインターフェイスを介してのみ前記ハードウェアを制御するハードウェア制御サービスとを前記電子機器に実現させることを特徴とする。
【0016】
この構成により、本発明のハードウェア制御プログラムを実行する電子機器は、ハードウェアが変更された場合に、ハードウェア操作部がハードウェア制御サービスに提供するインターフェイスが変更されることなく、ハードウェアの変更に対してハードウェア操作部のみが変更されることによって、ハードウェア制御サービスが変更される必要がないので、ハードウェアの変更に対するソフトウェアの変更箇所を局所化することができる。
【発明の効果】
【0017】
本発明の電子機器およびハードウェア制御プログラムは、ハードウェアの変更に対するソフトウェアの変更箇所を局所化することができる。
【図面の簡単な説明】
【0018】
【
図1】本発明の一実施の形態に係る画像形成装置のブロック図である。
【
図2】
図1に示す画像形成装置の制御構成を示すブロック図である。
【
図3】
図2に示す各部制御用サービスおよびプラットフォームサービスIF部の詳細な構成を示すブロック図である。
【
図4】
図3に示す画像処理サービスの詳細な構成を示すブロック図である。
【
図5】
図1に示すAIプロセッサーに対する操作の要求の一例を示す図である。
【
図6】
図4に示すAIプロセッサー制御サービスの詳細な構成を示すブロック図である。
【
図7】(a)
図6に示す順序変更部によって使用されるコンフィグファイルの一例を示す図である。 (b)
図6に示す順序変更部によって使用されるコンフィグファイルの、
図7(a)に示す例とは異なる一例を示す図である。
【
図8】(a)
図7(a)に示すコンフィグファイルに示される条件に従って変更された、操作要求の実行の順序の一例を示す図である。 (b)
図7(b)に示すコンフィグファイルに示される条件に従って変更された、操作要求の実行の順序の一例を示す図である。
【
図9】キューイング済みの操作要求を実行する場合の
図4に示すAIプロセッサー制御サービスの動作のフローチャートである。
【
図10】キューイング済みの操作要求を実行する場合の
図4に示すAIプロセッサー制御サービスの動作の、
図9とは異なる例のフローチャートである。
【
図11】操作要求の実行の完了を操作要求の出力元に通知する場合の
図4に示すAIプロセッサー制御サービスの動作のフローチャートである。
【発明を実施するための形態】
【0019】
以下、本発明の実施の形態について、図面を用いて説明する。
【0020】
まず、本発明の一実施の形態に係る電子機器としての画像形成装置の構成について説明する。
【0021】
図1は、本実施の形態に係る画像形成装置10のブロック図である。
【0022】
図1に示すように、画像形成装置10は、種々の操作が入力される例えばボタンなどの操作デバイスである操作部11と、種々の情報を表示する例えばLCD(Liquid Crystal Display)などの表示デバイスである表示部12と、用紙などの記録媒体に画像を印刷する印刷デバイスであるプリンター13と、原稿から画像を読み取る読取デバイスであるスキャナー14と、図示していない外部のファクシミリ装置と公衆電話回線などの通信回線経由でファックス通信を行うファックスデバイスであるファックス通信部15と、LAN(Local Area Network)、インターネットなどのネットワーク経由で、または、ネットワークを介さずに有線または無線によって直接に、外部の装置と通信を行う通信デバイスである通信部16と、機械学習の推論処理を可能にするプロセッサーとしてのAIプロセッサー17と、各種の情報を記憶する例えば半導体メモリー、HDD(Hard Disk Drive)などの不揮発性の記憶デバイスである記憶部18と、画像形成装置10全体を制御する制御部19とを備えているMFP(Multifunction Peripheral)である。
【0023】
AIプロセッサー17は、AIプロセッサー17が実行するための処理を命令するためのプログラムが展開されるためのメモリー17aを備えている。AIプロセッサー17は、メモリー17aにプログラムが展開されると、このプログラムによって命令される処理を実行する。
【0024】
記憶部18は、AIプロセッサー17を制御するためのハードウェア制御プログラムとしてのAIプロセッサー制御プログラム18aを記憶可能である。AIプロセッサー制御プログラム18aは、例えば、画像形成装置10の製造段階で画像形成装置10にインストールされていても良いし、USB(Universal Serial Bus)メモリー、SDカードなどの外部の記憶媒体から画像形成装置10に追加でインストールされても良いし、ネットワーク上から画像形成装置10に追加でインストールされても良い。
【0025】
制御部19は、例えば、CPU(Central Processing Unit)と、プログラムおよび各種のデータを記憶しているROM(Read Only Memory)と、制御部19のCPUの作業領域として用いられるメモリーとしてのRAM(Random Access Memory)とを備えている。制御部19のCPUは、記憶部18または制御部19のROMに記憶されているプログラムを実行する。
【0026】
図2は、画像形成装置10の制御構成を示すブロック図である。
【0027】
制御部19は、記憶部18または制御部19のROMに記憶されているプログラムを実行することによって、
図2に示す制御構成を実現する。
【0028】
図2に示すように、画像形成装置10の制御構成は、例えば、操作部11、表示部12、プリンター13、スキャナー14、ファックス通信部15、通信部16など、画像形成装置10の各部のハードウェアを管理し、機能単位でハードウェアを制御する機器制御プラットフォーム30と、画像形成装置10の標準の各種の処理を実行するためのアプリケーションプログラムである標準アプリ41を実行する標準アプリ実行部40と、標準アプリ41のみでは実行することができない各種の処理を実行するためのアプリケーションプログラムである拡張アプリ60を実行する拡張アプリプラットフォーム50とを備えている。標準アプリ実行部40と、拡張アプリプラットフォーム50とは、それぞれ、機器制御プラットフォーム30上で動作する。
【0029】
機器制御プラットフォーム30は、例えばLinux(登録商標)などの汎用OS(Operating System)31と、画像形成装置10の機能に対応する、画像形成装置10の各部のハードウェアを適切な方式で制御する各部制御用サービス32と、機器制御プラットフォーム30の外部からハードウェアを利用するためのインターフェイスを提供するプラットフォームサービスIF部33とを備えている。
【0030】
標準アプリ実行部40は、標準アプリ41と、標準アプリ実行部40の外部から標準アプリ41の機能を利用するためのインターフェイスを提供する標準アプリサービスIF部42とを備えている。
【0031】
例えば、標準アプリ41としては、操作部11を介した指示に応じてスキャナー14によって原稿から読み取った画像をプリンター13によって印刷するコピーアプリ41Aと、通信部16を介して入力されたデータまたは記憶部18に記憶されたデータに基づいてプリンター13によって印刷するプリンターアプリ41Bと、操作部11を介した指示に応じてスキャナー14によって原稿から読み取った画像、または、通信部16を介して入力されたデータに基づいた画像をファックス通信部15によってファクシミリ送信したり、ファックス通信部15によってファクシミリ受信された画像に対して、プリンター13による印刷、または、記憶部18への記憶を実行したりするFAXアプリ41Cと、通信部16を介してデータを送信する送信アプリ41Dとが存在する。
【0032】
標準アプリサービスIF部42は、標準アプリ41毎に異なるインターフェイスを提供しても良い。標準アプリサービスIF部42は、標準アプリ41の実行、インストール、設定の変更、削除などを行うことが可能である。
【0033】
拡張アプリプラットフォーム50は、標準アプリサービスIF部42を介して標準アプリ41に機能を実行させる標準機能サービス51と、プラットフォームサービスIF部33を介して画像形成装置10の各部のハードウェアに機能を実行させる拡張機能サービス52と、汎用OS31に機能を追加するための汎用OSインストールサービス53と、拡張アプリ60のインストール、アクティベーション、実行、実行終了、アンインストールなどを拡張アプリプラットフォーム50のAPIによって管理する拡張アプリ管理部54とを備えている。
【0034】
拡張アプリ60は、標準機能サービス51を呼び出して標準アプリ41の機能を利用したり、拡張機能サービス52を呼び出して画像形成装置10の各部のハードウェアの機能を利用したり、汎用OSインストールサービス53を呼び出して汎用OS31に機能を追加したりすることが可能である。例えば、拡張アプリ60としては、OCR(Optical Character Recognition)、監視カメラアプリ、ウォーターマーク作成、請求書作成、社員名簿管理、伝票管理、契約書管理、名刺管理、PDF作成、帳簿管理、グループ管理などの実用アプリと、汎用OS31上のデバイスドライバーやファームウェアなどの追加変更を行うインストーラーアプリなどの管理アプリとが存在する。
【0035】
図3は、各部制御用サービス32およびプラットフォームサービスIF部33の詳細な構成を示すブロック図である。
【0036】
図3に示すように、各部制御用サービス32は、プリンター13によって印刷されるための画像データを描画するなど、画像処理のデータの作成、変換または出力に関するサービスを提供する画像処理サービス70と、画像形成装置10の各部のハードウェア、すなわち、デバイスを制御するためのサービスを提供するデバイス操作サービス80と、ネットワークの送受信に関するサービスを提供するネットワーク通信サービス90とを備えている。
【0037】
プラットフォームサービスIF部33は、画像処理のデータの作成、変換または出力に関する機器制御プラットフォーム30の機能に対応するインターフェイスとしての画像処理サービスIF33aと、画像形成装置10のデバイスを制御するための機器制御プラットフォーム30の機能に対応するインターフェイスとしてのデバイス操作サービスIF33bと、ネットワークの送受信に関する機器制御プラットフォーム30の機能に対応するインターフェイスとしてのネットワーク通信サービスIF33cとを備えている。
【0038】
なお、プラットフォームサービスIF部33の画像処理サービスIF33a、デバイス操作サービスIF33bおよびネットワーク通信サービスIF33cは、それぞれ連携することなく独立して各部制御用サービス32の画像処理サービス70、デバイス操作サービス80およびネットワーク通信サービス90を呼び出すように構築されている。例えば、コピーアプリ41Aのジョブに対しては、画像処理サービスIF33aが画像処理サービス70およびデバイス操作サービス80を呼び出す。したがって、標準アプリ41のいずれかの機能に変更が生じた場合には、画像処理サービスIF33a、デバイス操作サービスIF33bおよびネットワーク通信サービスIF33cのうち、この機能に関係するものの変更のみで対応可能である。
【0039】
図4は、画像処理サービス70の詳細な構成を示すブロック図である。
【0040】
図4に示すように、画像処理サービス70は、ハードウェアであるAIプロセッサー17を操作するドライバーであるハードウェア操作部としてのAIプロセッサー操作部71と、AIプロセッサー操作部71を介してAIプロセッサー17を制御するハードウェア制御サービスとしてのAIプロセッサー制御サービス72と、画像処理サービス70の外部からAIプロセッサー制御サービス72を呼び出すためのインターフェイスとしてのAIプロセッサー制御サービス提供部73とを備えている。AIプロセッサー制御サービス72は、AIプロセッサー操作部71から提供されるインターフェイスを介してのみAIプロセッサー17を制御することが可能である。
【0041】
制御部19は、AIプロセッサー制御プログラム18aを実行することによって、AIプロセッサー操作部71、AIプロセッサー制御サービス72およびAIプロセッサー制御サービス提供部73を実現する。
【0042】
画像処理サービス70は、AIプロセッサー17を利用することによって、例えば、スキャナー14によって読み取られた画像に対してAI処理を実行することができる。例えば、画像処理サービス70は、画像を拡大した場合にぼやけてしまう線をAI処理によってはっきりとさせたり、画像に含まれる手書き文字をAI処理で抽出したりすることができる。
【0043】
図5は、AIプロセッサー17に対する操作の要求(以下「操作要求」という。)の一例を示す図である。
【0044】
操作要求は、コピーアプリ41Aやプリンターアプリ41BからプラットフォームサービスIF部33経由でAIプロセッサー制御サービス提供部73に入力される。AIプロセッサー制御サービス提供部73には、同時期に複数の操作要求が入力されることがある。
図5に示すように、操作要求は、ジョブという単位である。ジョブは、ジョブより小さい単位であるページが少なくとも1つで構成している。ページは、ページより小さい単位であるオブジェクトが少なくとも1つで構成している。ここで、ページは、ジョブがコピーアプリ41Aのジョブである場合には、スキャナー14によって読み取られる原稿の1枚ずつの単位を示しており、ジョブがプリンターアプリ41Bのジョブである場合には、プリンター13によって印刷される1枚ずつの単位を示している。オブジェクトは、AIプロセッサー17によって実行される1回分の処理の単位を示している。
【0045】
図6は、AIプロセッサー制御サービス72の詳細な構成を示すブロック図である。
【0046】
図6に示すように、AIプロセッサー制御サービス72は、操作要求をキューイングする要求キューイング部72aと、操作要求の実行の順序を変更する順序変更部72bと、要求キューイング部72aによってキューイングされた操作要求を実行する要求実行部72cと、要求実行部72cによる操作要求の実行の完了を操作要求の出力元に通知する完了通知部72dとを備えている。
【0047】
次に、画像形成装置10の動作について説明する。
【0048】
まず、操作要求をキューイングする場合のAIプロセッサー制御サービス72の動作について説明する。
【0049】
AIプロセッサー制御サービス72の要求キューイング部72aは、操作要求がAIプロセッサー制御サービス提供部73に入力されると、AIプロセッサー制御サービス提供部73に入力された操作要求をキューイングする。すなわち、要求キューイング部72aは、AIプロセッサー制御サービス提供部73に入力された操作要求の実行の順序を制御部19のRAM上のキューに記憶する。
【0050】
次に、キューイング済みの操作要求の実行の順序を変更する場合のAIプロセッサー制御サービス72の動作について説明する。
【0051】
AIプロセッサー制御サービス72の順序変更部72bは、キューイング済みの操作要求の実行の順序の変更の条件を示すコンフィグファイルを、例えば画像形成装置10の外部の記憶媒体などの特定の記憶領域から読み出して制御部19のRAMに展開する。順序変更部72bがコンフィグファイルをRAMに展開するタイミングは、例えば、特定の記憶領域にコンフィグファイルが書き込まれたタイミング、コンフィグファイルの変更の指示が操作部11または通信部16を介して入力されたタイミング、画像形成装置10の起動のタイミングなど、特定のタイミングである。コンフィグファイルは、AIプロセッサー17における実行を切り替える単位を、AIプロセッサー17に実行させる処理のタイプ毎に示すファイルであり、変更されることが可能である。
【0052】
図7(a)は、順序変更部72bによって使用されるコンフィグファイルの一例を示す図である。
図7(b)は、順序変更部72bによって使用されるコンフィグファイルの、
図7(a)に示す例とは異なる一例を示す図である。
【0053】
図7(a)に示すコンフィグファイルでは、AIプロセッサー17に実行させる処理のうちタイプが「処理A」である処理の切り替え単位は「オブジェクト」であり、AIプロセッサー17に実行させる処理のうちタイプが「処理B」である処理の切り替え単位は「ページ」である。
図7(b)に示すコンフィグファイルでは、AIプロセッサー17に実行させる処理のうちタイプが「処理B」である処理の切り替え単位は「オブジェクト」であり、AIプロセッサー17に実行させる処理のうちタイプが「処理B」である処理の切り替え単位も「オブジェクト」である。ここで、切り替え単位としては、「ジョブ」、「ページ」、「オブジェクト」のいずれかが設定されることが可能である。
【0054】
具体例として、処理のタイプ、ページ数、1ページ当たりのオブジェクト数がそれぞれ「処理A」、2、1である操作要求Aと、処理のタイプ、ページ数、1ページ当たりのオブジェクト数がそれぞれ「処理B」、2、2である操作要求Bとがキューイングされている場合の実行の順序の変更について説明する。ここで操作要求Aは、操作要求Bより実行の順序が先であるとする。
【0055】
図8(a)は、
図7(a)に示すコンフィグファイルに示される条件に従って変更された、操作要求の実行の順序の一例を示す図である。
図8(b)は、
図7(b)に示すコンフィグファイルに示される条件に従って変更された、操作要求の実行の順序の一例を示す図である。
【0056】
図8(a)に示すように、順序変更部72bは、
図7(a)に示すコンフィグファイルを使用する場合、タイプが「処理A」である処理の切り替え単位が「オブジェクト」であるので、処理のタイプが「処理A」である操作要求Aの1ページ目の1オブジェクト目の実行の順序を1番にして、次の実行の対象を操作要求Bに切り替える。次いで、順序変更部72bは、タイプが「処理B」である処理の切り替え単位が「ページ」であるので、処理のタイプが「処理B」である操作要求Bの1ページ目の1オブジェクト目、2オブジェクト目の実行の順序をそれぞれ2番、3番にして、次の実行の対象を操作要求Aに切り替える。次いで、順序変更部72bは、タイプが「処理A」である処理の切り替え単位が「オブジェクト」であるので、処理のタイプが「処理A」である操作要求Aの2ページ目の1オブジェクト目の実行の順序を4番にして、次の実行の対象を操作要求Bに切り替える。次いで、順序変更部72bは、タイプが「処理B」である処理の切り替え単位が「ページ」であるので、処理のタイプが「処理B」である操作要求Bの2ページ目の1オブジェクト目、2オブジェクト目の実行の順序をそれぞれ5番、6番にする。
【0057】
図8(b)に示すように、順序変更部72bは、
図7(b)に示すコンフィグファイルを使用する場合、タイプが「処理A」である処理の切り替え単位が「オブジェクト」であるので、処理のタイプが「処理A」である操作要求Aの1ページ目の1オブジェクト目の実行の順序を1番にして、次の実行の対象を操作要求Bに切り替える。次いで、順序変更部72bは、タイプが「処理B」である処理の切り替え単位が「オブジェクト」であるので、処理のタイプが「処理B」である操作要求Bの1ページ目の1オブジェクト目の実行の順序を2番にして、次の実行の対象を操作要求Aに切り替える。次いで、順序変更部72bは、タイプが「処理A」である処理の切り替え単位が「オブジェクト」であるので、処理のタイプが「処理A」である操作要求Aの2ページ目の1オブジェクト目の実行の順序を3番にして、次の実行の対象を操作要求Bに切り替える。次いで、順序変更部72bは、タイプが「処理B」である処理の切り替え単位が「オブジェクト」であるが、操作要求Aの全てのオブジェクトの実行の順序の決定が終了しているので、処理のタイプが「処理B」である操作要求Bの1ページ目の2オブジェクト目、2ページ目の1オブジェクト目、2オブジェクト目の実行の順序をそれぞれ4番、5番、6番にする。
【0058】
次に、キューイング済みの操作要求を実行する場合のAIプロセッサー制御サービス72の動作について説明する。
【0059】
図9は、キューイング済みの操作要求を実行する場合のAIプロセッサー制御サービス72の動作のフローチャートである。
【0060】
AIプロセッサー制御サービス72は、オブジェクトがキューイングされた場合、
図9に示す動作を実行する。
【0061】
図9に示すように、AIプロセッサー制御サービス72の要求実行部72cは、キューに存在するオブジェクトの処理のタイプが1種類であるか否かを判断する(S101)。
【0062】
要求実行部72cは、キューに存在するオブジェクトの処理のタイプが1種類であるとS101において判断すると、キューにおいて実行の順序が1番であるオブジェクトの処理のタイプに対応するプログラムを、例えば画像形成装置10の外部の記憶媒体などの特定の記憶領域からロードする(S102)。なお、プログラムは、オブジェクトの処理のタイプ毎に存在する。
【0063】
次いで、要求実行部72cは、S102においてロードしたプログラムをAIプロセッサー17のメモリー17aに展開する(S103)。ここで、S102~S103の工程は、本発明のプログラム展開工程を構成している。
【0064】
次いで、要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトの実行をAIプロセッサー操作部71に要求する(S104)。ここで、S104の工程は、本発明の処理実行工程を構成している。
【0065】
次いで、要求実行部72cは、S104において実行を要求したオブジェクトの実行が終了したと判断するまで、S104において実行を要求したオブジェクトの実行が終了したか否かを判断する(S105)。
【0066】
要求実行部72cは、S104において実行を要求したオブジェクトの実行が終了したとS105において判断すると、このオブジェクトをキューから削除する(S106)。したがって、キューにオブジェクトが残っている場合、キューにおける実行の順序は、1つずつ繰り上がる。
【0067】
要求実行部72cは、S106の処理の後、キューにオブジェクトが残っているか否かを判断する(S107)。
【0068】
要求実行部72cは、キューにオブジェクトが残っているとS107において判断すると、S104の処理を実行する。
【0069】
要求実行部72cは、キューに存在するオブジェクトの処理のタイプが1種類ではないとS101において判断すると、キューにおいて実行の順序が1番であるオブジェクトの処理のタイプに対応するプログラムを、例えば画像形成装置10の外部の記憶媒体などの特定の記憶領域からロードする(S108)。
【0070】
次いで、要求実行部72cは、S108においてロードしたプログラムをAIプロセッサー17のメモリー17aに展開する(S109)。ここで、S108~S109の工程は、本発明のプログラム展開工程を構成している。
【0071】
次いで、要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトの実行をAIプロセッサー操作部71に要求する(S110)。ここで、S110の工程は、本発明の処理実行工程を構成している。
【0072】
次いで、要求実行部72cは、S110において実行を要求したオブジェクトの実行が終了したと判断するまで、S110において実行を要求したオブジェクトの実行が終了したか否かを判断する(S111)。
【0073】
要求実行部72cは、S110において実行を要求したオブジェクトの実行が終了したとS111において判断すると、このオブジェクトの処理のタイプを記憶する(S112)。
【0074】
次いで、要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトをキューから削除する(S113)。したがって、キューにオブジェクトが残っている場合、キューにおける実行の順序は、1つずつ繰り上がる。
【0075】
要求実行部72cは、S113の処理の後、キューにオブジェクトが残っているか否かを判断する(S114)。
【0076】
要求実行部72cは、キューにオブジェクトが残っているとS114において判断すると、キューにおいて実行の順序が1番であるオブジェクトの処理のタイプが直前のS112において記憶したタイプと同一であるか否かを判断する(S115)。
【0077】
要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトの処理のタイプが直前のS112において記憶したタイプと同一であるとS115において判断すると、S110の処理を実行する。
【0078】
要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトの処理のタイプが直前のS112において記憶したタイプと同一ではないとS115において判断すると、AIプロセッサー17のメモリー17aに展開されているプログラムをメモリー17aから破棄して(S116)、S108の処理を実行する。ここで、S116の工程は、本発明のプログラム破棄工程を構成している。
【0079】
要求実行部72cは、キューにオブジェクトが残っていないとS107またはS114において判断すると、AIプロセッサー17のメモリー17aに展開されているプログラムをメモリー17aから破棄して(S117)、
図9に示す動作を終了する。ここで、S117の工程は、本発明のプログラム破棄工程を構成している。
【0080】
図10は、キューイング済みの操作要求を実行する場合のAIプロセッサー制御サービス72の動作の、
図9とは異なる例のフローチャートである。
【0081】
AIプロセッサー制御サービス72は、
図9に示す動作に代えて、
図10に示す動作を実行しても良い。
【0082】
図10に示すように、AIプロセッサー制御サービス72の要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトの処理のタイプに対応するプログラムを、例えば画像形成装置10の外部の記憶媒体などの特定の記憶領域からロードする(S121)。
【0083】
次いで、要求実行部72cは、S121においてロードしたプログラムをAIプロセッサー17のメモリー17aに展開する(S122)。ここで、S121~S122の工程は、本発明のプログラム展開工程を構成している。
【0084】
次いで、要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトの実行をAIプロセッサー操作部71に要求する(S123)。ここで、S123の工程は、本発明の処理実行工程を構成している。
【0085】
次いで、要求実行部72cは、S123において実行を要求したオブジェクトの実行が終了したと判断するまで、S123において実行を要求したオブジェクトの実行が終了したか否かを判断する(S124)。
【0086】
要求実行部72cは、S123において実行を要求したオブジェクトの実行が終了したとS124において判断すると、このオブジェクトの処理のタイプを記憶する(S125)。
【0087】
次いで、要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトをキューから削除する(S126)。したがって、キューにオブジェクトが残っている場合、キューにおける実行の順序は、1つずつ繰り上がる。
【0088】
要求実行部72cは、S126の処理の後、キューにオブジェクトが残っているか否かを判断する(S127)。
【0089】
要求実行部72cは、キューにオブジェクトが残っているとS127において判断すると、キューにおいて実行の順序が1番であるオブジェクトの処理のタイプが直前のS125において記憶したタイプと同一であるか否かを判断する(S128)。
【0090】
要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトの処理のタイプが直前のS125において記憶したタイプと同一であるとS128において判断すると、S123の処理を実行する。
【0091】
要求実行部72cは、キューにおいて実行の順序が1番であるオブジェクトの処理のタイプが直前のS125において記憶したタイプと同一ではないとS128において判断すると、AIプロセッサー17のメモリー17aに展開されているプログラムをメモリー17aから破棄して(S129)、S121の処理を実行する。ここで、S129の工程は、本発明のプログラム破棄工程を構成している。
【0092】
要求実行部72cは、キューにオブジェクトが残っていないとS127において判断すると、AIプロセッサー17のメモリー17aに展開されているプログラムをメモリー17aから破棄して(S130)、
図10に示す動作を終了する。ここで、S130の工程は、本発明のプログラム破棄工程を構成している。
【0093】
次に、操作要求の実行の完了を操作要求の出力元に通知する場合のAIプロセッサー制御サービス72の動作について説明する。
【0094】
図11は、操作要求の実行の完了を操作要求の出力元に通知する場合のAIプロセッサー制御サービス72の動作のフローチャートである。
【0095】
AIプロセッサー制御サービス72は、操作要求をキューイングする度に、この操作要求を対象にして
図11に示す動作を実行する。
【0096】
図11に示すように、AIプロセッサー制御サービス72の完了通知部72dは、対象の操作要求の出力元を記憶する(S141)。ここで、出力元は、例えば、コピーアプリ41Aやプリンターアプリ41Bである。
【0097】
完了通知部72dは、S141の処理の後、対象の操作要求の全てのオブジェクトの実行を完了したと判断するまで、対象の操作要求の全てのオブジェクトの実行を完了したか否かを判断する(S142)。
【0098】
完了通知部72dは、対象の操作要求の全てのオブジェクトの実行を完了したとS142において判断すると、対象の操作要求の実行の完了をS141において記憶した出力元に通知して(S143)、
図11に示す動作を終了する。
【0099】
以上に説明したように、画像形成装置10は、AIプロセッサー17が変更された場合に、AIプロセッサー操作部71がAIプロセッサー制御サービス72に提供するインターフェイスが変更されることなく、AIプロセッサー17の変更に対してAIプロセッサー操作部71のみが変更されることによって、AIプロセッサー制御サービス72およびAIプロセッサー制御サービス提供部73が変更される必要がないので、AIプロセッサー17が他のAIプロセッサーに変更されるなどのAIプロセッサー17の変更に対するソフトウェアの変更箇所を局所化することができる。
【0100】
画像形成装置10は、AIプロセッサー17に対する操作要求をキューイングし、キューイングした操作要求を実行し(S104、S110またはS123)、操作要求の実行の完了を操作要求の出力元に通知する(S143)ので、操作要求の実行の完了前に操作要求の出力元に他の処理を実行させることができる。したがって、画像形成装置10は、操作要求が実行されないために操作要求の出力元が待ち状態に陥るという事態の発生を防ぐことができ、その結果、出力元の実行の効率を向上することができる。
【0101】
画像形成装置10は、コンフィグファイルが変更されることによって操作要求の実行の順序の変更の条件が変更されるので、操作要求の実行の順序の変更の条件が変更されるためにAIプロセッサー制御サービス72のプログラム、すなわち、AIプロセッサー制御プログラム18aが変更される必要がなく、操作要求の実行の順序の変更の条件の変更を容易化することができる。
【0102】
画像形成装置10は、タイプが同一である複数の処理を連続してAIプロセッサー17に実行させる場合(S101でYES、S115でYES、または、S128でYES)に、複数の処理のうち最後の処理以外の処理に関するプログラム破棄工程と、複数の処理のうち最初の処理以外の処理に関するプログラム展開工程とを省略するので、処理の実行の効率を向上することができる。
【0103】
AIプロセッサー17に対する操作要求は、本実施の形態において、コピーアプリ41Aやプリンターアプリ41BからプラットフォームサービスIF部33経由でAIプロセッサー制御サービス提供部73に入力される。しかしながら、AIプロセッサー17に対する操作要求は、コピーアプリ41Aやプリンターアプリ41B以外のアプリケーションプログラムからプラットフォームサービスIF部33経由でAIプロセッサー制御サービス提供部73に入力されても良い。例えば、AIプロセッサー17に対する操作要求は、FAXアプリ41CからプラットフォームサービスIF部33経由でAIプロセッサー制御サービス提供部73に入力されても良い。
【0104】
AIプロセッサーは、本実施の形態において、画像処理サービス70において利用されている。しかしながら、AIプロセッサーは、画像処理サービス70以外のサービスにおいて利用されても良い。例えば、AIプロセッサーは、デバイス操作サービス80やネットワーク通信サービス90において利用されても良い。
【0105】
本発明のハードウェアは、本実施の形態においてAIプロセッサーであるが、AIプロセッサー以外のプロセッサーでも良いし、プロセッサー以外のハードウェアでも良い。
【0106】
本発明の電子機器は、本実施の形態においてMFPであるが、例えば、プリンター専用機、スキャナー専用機、ファックス専用機、コピー機など、MFP以外の画像形成装置でも良いし、例えばPC(Personal Computer)など、画像形成装置以外の電子機器でも良い。
【符号の説明】
【0107】
10 画像形成装置(電子機器)
17 AIプロセッサー(ハードウェア、プロセッサー)
17a メモリー
18a AIプロセッサー制御プログラム
41A コピーアプリ(出力元)
41B プリンターアプリ(出力元)
71 AIプロセッサー操作部(ハードウェア操作部)
72 AIプロセッサー制御サービス(ハードウェア制御サービス)
72a 要求キューイング部
72b 順序変更部
72c 要求実行部
72d 完了通知部