(57)【特許請求の範囲】
【請求項１】
少なくともロール紙印刷機能を有し、１個又は複数個のリソースを複数個の機能が共通に使用する多機能複合装置であって、
前記リソース毎に、当該リソースの使用状況を判定するリソース部と、
前記機能が使用する全ての前記リソース毎に対応付けられる前記リソース部に対する確保または解放を、一括して実行する、当該機能に関連付けられたマルチリソース部と、
前記マルチリソース部を管理するマルチリソース管理部と、
前記機能からの要求を受け付けたときに、前記機能毎に予め設定されている優先度に基づいて、前記リソースの割り当てを実行するリソース管理部と、
前記マルチリソース部への要求状態を示す状態情報を有し、前記リソース管理部から要求された当該マルチリソース部への要求処理を当該マルチリソース部へ依頼する、当該マルチリソース部に対応付けられたマルチリソース要求部と、
を備え、
前記リソースは、少なくとも紙経路を含み、前記機能によって確保されているか否かの２値の状態によって表される２値リソース、及び少なくとも電源を含み、前記リソースの全容量に対する前記機能によって確保される割合によって表される多値リソースであることを特徴とする多機能複合装置。
【請求項２】
前記リソース管理部は、
前記機能から、当該機能が使用する全ての前記リソースの解放要求を受け付けたときに、当該機能が使用している全ての当該リソースの解放を、当該機能に関連した前記マルチリソース要求部へ要求するリソース解放部と、
前記機能から、当該機能が使用する全ての前記リソースの一時解放許可要求を受け付けたときに、当該機能が使用している全ての当該リソースの一時的な解放を、当該機能に関連した前記マルチリソース要求部へ要求するリソース一時解放部と、
前記機能から、当該機能が使用する全ての前記リソースの確保要求を受け付けたときに、当該機能の前記優先度に基づいて、当該優先度と同じ優先度の異なる１個または複数個の前記機能に関連した前記マルチリソース要求部への要求の中で、最後に当該機能に要求された全ての前記リソースが割り当てられるように、当該機能に関連した前記マルチリソース要求部への要求順を調整して、処理要求キューに追加し、前記処理要求キューの要求順に従って、リソース確保要求を前記マルチリソース要求部へ依頼し、前記リソース解放部または前記リソース一時解放部の前記マルチリソース要求部への依頼によって、前記リソースが解放されたときに、前記処理要求キューの要求順に従って、リソース確保要求を前記マルチリソース要求部へ依頼するリソース確保部と、
を備えていることを特徴とする請求項１に記載の多機能複合装置。
【請求項３】
前記リソース確保部は、
前記マルチリソース要求部へ依頼したリソース確保要求が失敗したときに、当該マルチリソース要求部に関連した前記機能の前記優先度、使用する全ての前記リソースを既に確保している１個または複数個の前記機能の前記優先度、及び所定の一時解放候補検索ルールに基づいて、使用する全ての前記リソースを確保している１個または複数個の前記機能の中から、使用する全ての前記リソースを一時的に解放してもらう一時解放候補機能を検索し、検索した前記一時解放候補機能に対して、使用する全ての前記リソースを一時的に解放してもらうように要求する一時解放要求部を備えていることを特徴とする請求項２に記載の多機能複合装置。
【請求項４】
前記一時解放候補検索ルールは、
前記一時解放候補機能が、リソース確保要求が失敗であった前記マルチリソース要求部に関連した前記機能の前記優先度よりも低い優先度に設定されている前記機能であり、かつ、使用する全ての前記リソースを確保して、使用している前記機能であり、かつ、リソース確保要求が失敗であった前記マルチリソース要求部に関連した前記機能が利用する１個または複数個の前記リソースの中の少なくとも１つの前記リソースを使用する前記機能であることを特徴とする請求項３に記載の多機能複合装置。
【請求項５】
前記マルチリソース部が有する前記状態情報は、
当該マルチリソース要求部が生成されたときに、第１の状態となり、
当該マルチリソース要求部に関連する前記マルチリソース部によって、当該マルチリソース要求部に関連した前記機能が使用する全ての前記リソースが確保されたときに、第２の状態になり、
当該マルチリソース要求部の状態が前記第２の状態であり、前記リソース管理部の前記リソース一時解放部によって、当該マルチリソース要求部に関連した前記機能が使用する全ての前記リソースを一時的に解放するように要求されて、当該リソースが解放されたときに、第３の状態になることを特徴とする請求項１から４に記載の多機能複合装置。  
【請求項６】
１個又は複数個のリソースを複数個の機能が共通に使用する多機能複合装置の前記リソースを管理する処理をコンピュータに実行させるプログラムであって、
請求項１から５のいずれか１項に記載の多機能複合装置の各手段を実現させる処理を前記コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１個又は複数個のリソースを複数個の機能が共通に使用する多機能複合装置、リソース管理方法及びプログラムに関する。特に、機能が使用する全てのリソースを一括して確保又は解放しながら、機能が使用するリソースの割り当てを管理する多機能複合装置、リソース管理方法及びプログラムに関する。
【背景技術】
【０００２】
装置を設置するスペースを削減するために、複数の機能を一つの装置に組み込んだ多機能複合装置が開発されている。また、多機能複合装置に組み込まれた複数の機能の中には、処理実行中に使用するリソースが他の機能と競合する機能が存在しているため、各機能が実行時に確保すべきリソースを割り当てるリソース管理は複雑であった。
【０００３】
例えば、ＰＯＳシステムに使用されているＰＯＳ用プリンタには、ロール紙印刷機能、単票用紙印刷機能、ドロワ機能、画像読み取り機能等の複数の機能が組み込まれている。ここで、処理実行中に使用するリソースは、ロール紙印刷機能、単票用紙印刷機能、及び画像読み取り機能の場合は、紙経路及び電源であり、ドロワ機能の場合は、電源である。
【０００４】
従って、ＰＯＳ用プリンタにおいて、ロール紙印刷機能を実行中にドロワ機能を実行させたい場合、ドロワ機能の実行が待たされてしまう。また、ロール紙印刷機能を実行中に、単票用紙印刷機能、ドロワ機能及び画像読み取り機能を実行させたい場合は、各機能へのリソースの割り当ては複雑になる。
【０００５】
そこで、リソース管理の複雑さを軽減した多機能複合装置が提案されている。非特許文献１では、機能が使用する全てのリソースを一括して管理し、機能からのリソース要求に基づいて機能が使用する全てのリソースを一括して確保又は解放する、機能に対応付けられたマルチリソースオブジェクトを利用して、競合するリソースの割り当てを調整するリソース管理が提案されている。
【０００６】
【非特許文献１】ブルース・パウエル・ダグラス（ＢＲＵＣＥ  ＰＯＷＥＬ  ＤＯＵＧＬＡＳＳ）著，「リアルタイム・デザイン・パターンズ（ＲＥＡＬ−ＴＩＭＥ  ＤＥＳＩＧＮ  ＰＡＴＴＥＲＮＳ）」，（米国），アジソンーウェスリ・パブ（Ａｄｄｉｓｏｎ―Ｗｅｓｌｅｙ  Ｐｕｂ），２００２年９月２３日，ｐ．３３８−３４５
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１の提案では、リソースはすべて、機能によって使用されているか否かの２値の状態によって表される２値リソースであるために、あるリソースを競合する複数の機能を実行させる場合、複数の機能が実行されてもリソースの合計容量が許容範囲以内であっても、１つの機能しか実行できないという問題点があった。例えば、ＰＯＳプリンタの単票用紙印刷機能とドロワ機能を実行させるとき、単票用紙印刷機能は実行時に電源の全容量の３０％を使用し、ドロワ機能は実行時に電源の全容量の５０％を使用する場合であっても、一方の機能しか実行させることができなかった。
【０００８】
また、優先的に実行させたい機能であっても、リソースを競合している別の機能が実行されている場合は、実行されている別の機能が終了するまで、機能の実行を待たなければならないという問題点があった。例えば、ＰＯＳプリンタのロール紙印刷機能を実行中に、ドロワ機能を実行させたい場合、ドロワ機能は、ロール紙印刷機能よりも優先して実行したい機能であるが、ロール紙印刷機能の実行が終了するまで、ドロワ機能の実行が待たされていた。
【０００９】
本発明は、以上のような問題点を解決するためになされたもので、多値リソースを考慮して、機能が使用する全てのリソースを一括して確保又は解放しながら、機能に対応付けられた優先度に基づいて、機能が使用するリソースの割り当てを容易に管理する多機能複合装置、リソース管理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した従来の問題点を解決すべく下記の発明を提供する。
本発明の第１の態様にかかる多機能複合装置は、少なくともロール紙印刷機能を有し、１個又は複数個のリソースを複数個の機能が共通に使用する多機能複合装置であって、前記リソース毎に、当該リソースの使用状況を判定するリソース部と、前記機能が使用する全ての前記リソース毎に対応付けられる前記リソース部に対する確保または解放を、一括して実行する、当該機能に関連付けられたマルチリソース部と、前記マルチリソース部を管理するマルチリソース管理部と、前記機能からの要求を受け付けたときに、前記機能毎に予め設定されている優先度に基づいて、前記リソースの割り当てを実行するリソース管理部と、前記マルチリソース部への要求状態を示す状態情報を有し、前記リソース管理部から要求された当該マルチリソース部への要求処理を当該マルチリソース部へ依頼する、当該マルチリソース部に対応付けられたマルチリソース要求部と、を備え、前記リソースは、少なくとも紙経路を含み、前記機能によって確保されているか否かの２値の状態によって表される２値リソース、及び少なくとも電源を含み、前記リソースの全容量に対する前記機能によって確保される割合によって表される多値リソースであることを特徴とする。
【００１１】
このような構成であれば、多機能複合装置は、リソース部によって、リソース毎に、当該リソースの使用状況が判定される。また、当該機能に関連付けられたマルチリソース部によって、機能が使用する全てのリソース毎に対応付けられるリソース部に対する確保または解放が、一括して実行される。また、マルチリソース管理部によって、マルチリソース部が管理される。また、リソース管理部によって、機能からの要求を受け付けたときに、機能毎に予め設定されている優先度に基づいて、リソースの割り当てが実行される。また、マルチリソース部への要求状態を示す状態情報を有した、当該マルチリソース部に対応付けられるマルチリソース要求部によって、リソース管理部から要求された当該マルチリソース部への要求処理が当該マルチリソース部へ依頼される。
【００１２】
これにより、機能が使用する全てのリソースを一括して確保又は解放しながら、機能に対応付けられた優先度に基づいて、機能が使用するリソースの割り当てを容易に管理することが可能である。また、リソースが競合する優先度の低い機能が実行中であっても、優先度の高い機能を実行させることが可能である。
【００１３】
また、多機能複合装置に新規機能を組み込む場合に、新規機能と既存の機能とがリソースを競合する場合の処理を考慮する必要がなく、新規機能を容易に開発することが可能となる。従って、開発期間を削減するとともに、開発コストを削減することが可能となる。
【００１５】
これにより、電源のような多値リソースに対して、そのリソースの容量の許容範囲以内であれば、リソースを競合する複数の機能を実行させることが可能となる。従って、多機能複合装置が実行する全体の処理時間を短縮させることが可能となる。例えば、ＰＯＳプリンタの単票用紙印刷機能とドロワ機能を実行させるとき、単票用紙印刷機能は実行時に電源の全容量の３０％を使用し、ドロワ機能は実行時に電源の全容量の５０％を使用する場合に、単票用紙印刷機能とドロワ機能を同時に実行させることが可能となり、会計する消費者の待ち時間を削減することが可能となる。
【００１６】
本発明の他の態様にかかる多機能複合装置は、上述した本発明の態様にかかる多機能複合装置の前記リソース管理部が、前記機能から、当該機能が使用する全ての前記リソースの解放要求を受け付けたときに、当該機能が使用している全ての当該リソースの解放を、当該機能に関連した前記マルチリソース要求部へ要求するリソース解放部と、前記機能から、当該機能が使用する全ての前記リソースの一時解放許可要求を受け付けたときに、当該機能が使用している全ての当該リソースの一時的な解放を、当該機能に関連した前記マルチリソース要求部へ要求するリソース一時解放部と、前記機能から、当該機能が使用する全ての前記リソースの確保要求を受け付けたときに、当該機能の前記優先度に基づいて、当該優先度と同じ優先度の異なる１個または複数個の前記機能に関連した前記マルチリソース要求部への要求の中で、最後に当該機能に要求された全ての前記リソースが割り当てられるように、当該機能に関連した前記マルチリソース要求部への要求順を調整して、処理要求キューに追加し、前記処理要求キューの要求順に従って、リソース確保要求を前記マルチリソース要求部へ依頼し、前記リソース解放部または前記リソース一時解放部の前記マルチリソース要求部への依頼によって、前記リソースが解放されたときに、前記処理要求キューの要求順に従って、リソース確保要求を前記マルチリソース要求部へ依頼するリソース確保部と、を備えていることを特徴とする。
【００１７】
このような構成であれば、リソース管理部は、機能から、当該機能が使用する全てのリソースの解放要求を受け付けたときに、リソース解放部によって、当該機能が使用している全ての当該リソースの解放が、当該機能に関連したマルチリソース要求部へ要求される。また、機能から、当該機能が使用する全てのリソースの一時解放許可要求を受け付けたときに、リソース一時解放部によって、当該機能が使用している全ての当該リソースの一時的な解放が、当該機能に関連したマルチリソース要求部へ要求される。また、機能から、当該機能が使用する全てのリソースの確保要求を受け付けたときに、リソース確保部によって、当該機能の優先度に基づいて、当該優先度と同じ優先度の異なる１個または複数個の機能に関連したマルチリソース要求部への要求の中で、最後に当該機能に要求された全てのリソースが割り当てられるように、当該機能に関連したマルチリソース要求部への要求順が調整されて、処理要求キューに追加され、処理要求キューの要求順に従って、リソース確保要求がマルチリソース要求部へ依頼される。また、リソース解放部またはリソース一時解放部のマルチリソース要求部への依頼によって、リソースが解放されたときに、リソース確保部によって、処理要求キューの要求順に従って、リソース確保要求がマルチリソース要求部へ依頼される。
【００１８】
これにより、機能が使用する全てのリソースを一括して確保又は解放しながら、機能に対応付けられた優先度に基づいて、機能が使用するリソースの割り当てを容易に管理することが可能である。また、リソースが競合する優先度の低い機能が実行中であっても、優先度の高い機能を実行させることが可能である。
【００１９】
また、多機能複合装置に新規機能を組み込む場合に、新規機能と既存の機能とがリソースを競合する場合の処理を考慮する必要がなく、新規機能を容易に開発することが可能となる。従って、開発期間を削減するとともに、開発コストを削減することが可能となる。また、多値リソースに対して、そのリソースの容量の許容範囲以内であれば、リソースを競合する複数の機能を実行させることが可能となる。従って、多機能複合装置が実行する全体の処理時間を短縮させることが可能となる。
【００２０】
本発明の他の態様にかかる多機能複合装置は、上述した本発明の態様にかかる多機能複合装置の前記リソース確保部が、前記マルチリソース要求部へ依頼したリソース確保要求が失敗したときに、当該マルチリソース要求部に関連した前記機能の前記優先度、使用する全ての前記リソースを既に確保している１個または複数個の前記機能の前記優先度、及び所定の一時解放候補検索ルールに基づいて、使用する全ての前記リソースを確保している１個または複数個の前記機能の中から、使用する全ての前記リソースを一時的に解放してもらう一時解放候補機能を検索し、検索した前記一時解放候補機能に対して、使用する全ての前記リソースを一時的に解放してもらうように要求する一時解放要求部を備えていることを特徴とする。
【００２１】
このような構成であれば、マルチリソース要求部へ依頼したリソース確保要求が失敗したときに、一時解放要求部によって、当該マルチリソース要求部に関連した機能の優先度、使用する全てのリソースを既に確保している１個または複数個の機能の優先度、及び所定の一時解放候補検索ルールに基づいて、使用する全てのリソースを確保している１個または複数個の機能の中から、使用する全てのリソースを一時的に解放してもらう一時解放候補機能が検索され、検索された一時解放候補機能に対して、使用する全てのリソースの一時的な解放が要求される。これにより、リソースが競合する優先度の低い機能が実行中であっても、優先度の高い機能を実行させることが可能である。
【００２２】
本発明の他の態様にかかる多機能複合装置は、上述した本発明の態様にかかる多機能複合装置の前記一時解放候補検索ルールは、前記一時解放候補機能が、リソース確保要求が失敗であった前記マルチリソース要求部に関連した前記機能の前記優先度よりも低い優先度に設定されている前記機能であり、かつ、使用する全ての前記リソースを確保して、使用している前記機能であり、かつ、リソース確保要求が失敗であった前記マルチリソース要求部に関連した前記機能が利用する１個または複数個の前記リソースの中の少なくとも１つの前記リソースを使用する前記機能であることを特徴とする。
【００２３】
本発明の他の態様にかかる多機能複合装置は、上述した本発明の態様にかかる多機能複合装置の前記マルチリソース部が有する前記状態情報が、当該マルチリソース要求部が生成されたときに、第１の状態となり、当該マルチリソース要求部に関連する前記マルチリソース部によって、当該マルチリソース要求部に関連した前記機能が使用する全ての前記リソースが確保されたときに、第２の状態になり、当該マルチリソース要求部の状態が前記第２の状態であり、前記リソース管理部の前記リソース一時解放部によって、当該マルチリソース要求部に関連した前記機能が使用する全ての前記リソースを一時的に解放するように要求されて、当該リソースが解放されたときに、第３の状態になることを特徴とする。
【００２８】
本発明の第１の態様にかかるプログラムは、１個又は複数個のリソースを複数個の機能が共通に使用する多機能複合装置の前記リソースを管理する処理をコンピュータに実行させるプログラムであって、上述した本発明の態様にかかる多機能複合装置の各手段を実現させる処理を前記コンピュータに実行させるプログラム。
【００２９】
このような構成であれば、コンピュータによってプログラムが読み取られ、読み取られたプログラムによって、コンピュータが処理を実行すると、上述した本発明の態様にかかる多機能複合装置と同等の作用及び効果が得られる。
【発明の効果】
【００３０】
本発明によれば、機能が使用する全てのリソースを一括して確保又は解放しながら、機能に対応付けられた優先度に基づいて、機能が使用するリソースの割り当てを容易に管理することが可能である。また、リソースが競合する優先度の低い機能が実行中であっても、優先度の高い機能を実行させることが可能である。
【００３１】
また、多機能複合装置に新規機能を組み込む場合に、新規機能と既存の機能とがリソースを競合する場合の処理を考慮する必要がなく、新規機能を容易に開発することが可能となる。従って、開発期間を削減するとともに、開発コストを削減することが可能となる。
【００３２】
また、多値リソースに対して、そのリソースの容量の許容範囲以内であれば、リソースを競合する複数の機能を実行させることが可能となる。従って、多機能複合装置が実行する全体の処理時間を短縮させることが可能となる。
【発明を実施するための最良の形態】
【００３３】
この発明の一実施態様を、図面を参照しながら説明する。なお、以下に説明する実施態様は説明のためのものであり、本発明の範囲を制限するものではない。従って、当業者であればこれらの各要素もしくは全要素をこれと均等なもので置換した実施態様を採用することが可能であるが、これらの実施態様も本発明の範囲に含まれる。
【００３４】
図１は、本発明を適用したインクジェットプリンタの斜視図であり、図２はその紙搬送経路を示す説明図である。これらの図に示すように、インクジェットプリンタ１は、ロール紙装填機構２と、Ａ４サイズ等のカット紙挿入口３とを有し、ロール紙装填機構２から供給されるロール紙４およびカット紙挿入口３から挿入されるカット紙５が、それぞれ共通の印刷位置１１（図における一点鎖線で囲まれた領域）を通って搬送されるように搬送経路が構成されている。共通の印刷位置１１を通過するロール紙４およびカット紙５の表面には、ガイドシャフト６に沿って往復移動可能なキャリッジ７に搭載されているインクジェットヘッド８によって、所望の印刷が行われる。インクジェットヘッド８には、インクチューブ（図示せず）を経由して、ロール紙装填機構２と隣り合った位置に搭載されているインク供給部１０からインクが供給される。
【００３５】
上述したように、ロール紙４に印刷するロール紙印刷機能とカット紙５に印刷するカット紙印刷機能とは、ともに印刷位置１１を通って搬送されるように搬送経路が構成されていることから、紙経路が競合する。また、図には記載されていないが、それぞれの機能を実行させるためには電源が必要であることから、電源も競合する。以下、インクジェットプリンタ１に組み込まれている機能として、ロール紙印刷機能とカット紙印刷機能を例に挙げて説明する。ここで、ロール紙印刷機能が使用するリソースは紙経路と電源であり、電源の全容量の６０％を使用するとする。また、カット紙印刷機能が使用するリソースは紙経路と電源であり、電源の全容量の３０％を使用するとする。また、ロール紙印刷機能の優先度を「低」とし、カット紙印刷機能の優先度を「高」とする。
【００３６】
図３は、本発明を適用したインクジェットプリンタのリソース管理を行う機能部のクラス図である。図３に示すように、機能部は、リソース管理３０、マルチリソース要求３１、マルチリソース管理３２、マルチリソース３３、２値リソース３４、多値リソース３５、多値リソース消費３６、及びリソース３７の各クラスによって構成されている。なお、以下の説明において、「リソース３７を割り当てる」及び「リソース３７を解放する」という表現を用いるが、これらは、それぞれ「リソース３７のサブクラスである２値リソースまたは多値リソースを割り当てる」、「リソース３７のサブクラスである２値リソースまたは多値リソースを解放する」ことを意味する。
【００３７】
リソース管理３０は、アプリケーション３８からの要求に対してリソース割り当てを実行する。具体的には、アプリケーション３８から、マルチリソース要求３１を受信したとき、リソース管理３０は、マルチリソース要求３１に関連するマルチリソース３３経由でリソース３７が必要であることを知り、アプリケーション３８に対して必要なリソース３７を割り当てる。また、アプリケーション３８によって生成されたマルチリソース要求３１を優先度に基づいて管理し、マルチリソース３３に関連付けているリソース３７を割り当てる。
【００３８】
状態が「使用中」であるマルチリソース要求３１を生成したアプリケーション３８の優先度が、新たなマルチリソース要求３１を生成したアプリケーション３８の優先度より低いときには、リソース管理３０は、「使用中」のマルチリソース要求３１から一時解放候補を検索し、その一時解放候補のマルチリソース要求３１を生成したアプリケーション３８に対して、リソース明け渡し要求し、明け渡し許可を受け取った後に、新たなマルチリソース要求３１に、リソース３７を割り当てる。
【００３９】
なお、マルチリソース要求３１の状態には、「待ち」、「使用中」及び「一時中断」が存在する。ここで、アプリケーション３８によってマルチリソース要求３１が生成されたときに、マルチリソース要求３１の状態は「待ち」となり、マルチリソース３３を介して、リソース３７が確保されたときに、マルチリソース要求３１の状態は「使用中」となり、一時解放要求により処理の途中でリソース３７が一時解放されたときに、マルチリソース要求３１の状態は「一時中断」となる。
【００４０】
また、リソース管理３０は、アプリケーション３８から解放要求を受信したときに、アプリケーション３８が利用していたリソース３７を解放する。即ち、マルチリソース３３に関連付けているリソース３７を解放する。このとき、「待ち」状態のマルチリソース要求３１に対して、リソース３７の割り当てが可能であるならば、リソース３７を割り当てる。
【００４１】
また、リソース管理３０は、アプリケーション３８から一時解放許可要求を受信したときに、マルチリソース３３に関連付けているリソース３７を一時解放する。尚、一時解放許可要求は、既に、一時明け渡しするように通知されていたアプリケーション３８が一時解放可能になったときに、アプリケーション３８からリソース管理３０へ送信される。このとき、リソース管理３０は、一時解放を実行した後に、「一時中断」状態のマルチリソース要求３１に対して、リソース３７の割り当てが可能であるならば、リソース３７を割り当てる。
【００４２】
マルチリソース要求３１は、アプリケーション３８が利用したいマルチリソース３３に対する要求に対して、マルチリソース３３に対する要求の状態、即ち、マルチリソース要求３１の状態を持っており、状態遷移にともなう処理を実行する。マルチリソース要求３１の状態が「待ち」から「使用中」に遷移するときには、マルチリソース要求３１に関連するマルチリソース３３に対して、マルチリソース３３に関連する複数のリソース３７を確保させる。
【００４３】
また、マルチリソース要求３１の状態が「使用中」から「一時中断」に遷移するときには、マルチリソース要求３１に関連するマルチリソース３３に対して、マルチリソース３３に関連する複数のリソース３７を解放させる。また、マルチリソース要求３１の状態が、「待ち」、「使用中」及び「一時中断」のいずれか１つの状態であるときに、アプリケーション３８がリソース３７の利用を終了したときにも、マルチリソース要求３１に関連するマルチリソース３３に対して、マルチリソース３３に関連する複数のリソース３７を解放させる。
【００４４】
マルチリソース管理３２は、マルチリソース３３を管理する。アプリケーション３８がマルチリソース３３の識別子であるマルチリソースＩＤを引数にして、マルチリソース３３の取得を要求してきたときに、マルチリソース３３を戻り値として返す。マルチリソース３３は、アプリケーション３８が使用する複数のリソース３７を束ね、束ねている２値リソース３４および多値リソース３５の一括確保、または、一括解放を実行する。
【００４５】
リソース３７は抽象クラスであり、２値リソース３４および多値リソース３５が含まれる。２値リソース３４は、アプリケーション３８が、当該リソースを「使用する」又は「使用しない」の２つにより、リソース確保又は解放を判断することが出来るリソース３７である。多値リソース３５は、当該リソースの必要量を要求するリソース３７である。多値リソース消費３６は、多値リソース３５の消費を扱い、必要なリソースの消費量を知っている。多値リソース３５から必要量を取得又は返却する。例えば、２値リソース３４として、紙経路等がある。紙経路は、「使用する」又は「使用しない」の２つの状態で表すことが出来る。また、例えば、多値リソース３５として、電源等がある。電源容量のＸ％が必要量であるとしてリソースを表すことが出来る。
【００４６】
次に、上述したリソース確保要求処理、リソース解放要求処理、リソース確保要求のキャンセル要求処理、及び優先度の低いアプリケーション３８が優先度の高いアプリケーション３８へリソースを明け渡す処理の各処理手順を、図４から図８を参照して説明する。ここで、図４から図８示す処理手順を実行する場合に、インクジェットプリンタ１のＲＯＭに予め格納されている制御プログラムを実行して、各工程を実行させる。
【００４７】
図４は、リソース確保要求処理の手順を示すシーケンス図の一例である。また、図５は、リソース解放要求処理の手順を示すシーケンス図の一例である。また、図６は、リソース確保要求のキャンセル要求処理の手順を示すシーケンス図の一例である。また、図７及び図８は、優先度の低いアプリケーション３８が優先度の高いアプリケーション３８へリソースを明け渡す処理の手順を示すシーケンス図の一例である。
【００４８】
図４に示すように、リソース確保要求の処理手順は、ロール紙のアプリケーション３８（以下、「ロール紙アプリケーション」と呼ぶ）を例に挙げて説明する。ロール紙アプリケーションが使用するリソースは、リソース３７のサブクラスである２値リソース３４の紙経路と、多値リソース３５の電源である。
【００４９】
まず、ロール紙アプリケーションが、マルチリソースＩＤ、ロール紙アプリケーションの優先度、及びロール紙アプリケーションへの通知先を、内部に保持するロール紙アプリケーションに関連したマルチリソース要求３１（以下、「ロール紙マルチリソース要求」と呼ぶ）を生成する（Ｓ１０１）。このとき、生成されたロール紙マルチリソース要求は、状態を「待ち」にする（Ｓ１０２）。
【００５０】
次に、ロール紙アプリケーションは、ロール紙マルチリソース要求とともにリソース確保要求をリソース管理３０に送る（Ｓ１０３）。リソース管理３０は、リソース確保要求を介して渡されたロール紙マルチリソース要求とマルチリソース３３を対応付ける初期化処理を、ロール紙マルチリソース要求に対して要求する（Ｓ１０４）。ロール紙マルチリソース要求は、自身が内部に保持するマルチリソースＩＤに基づいて、マルチリソース管理３２から、ロール紙マルチリソース要求に対応するマルチリソース３３（以下、「ロール紙マルチリソース」と呼ぶ）を取得し（Ｓ１０５）、現在のロール紙マルチリソースを設定する（Ｓ１０６）。
【００５１】
次に、リソース管理３０は、ロール紙アプリケーションの優先度に基づいて、ロール紙アプリケーションと同じ優先度の処理要求キューの最後尾に、ロール紙マルチリソース要求を追加し（Ｓ１０７）、処理要求キューの要求順番になるまで、待機する。
【００５２】
次に、ロール紙マルチリソース要求の要求順番になったときに、リソース管理３０は、ロール紙マルチリソース要求に対して、リソース確保を要求し（Ｓ１０８）、ロール紙マルチリソース要求は、ロール紙マルチリソースに対して、２値リソース３４である紙経路及び多値リソース３５である電源の確保を要求し（Ｓ１０９）、ロール紙マルチリソースは、２値リソース３４である紙経路及び多値リソース３５である電源を確保し（Ｓ１１０からＳ１１５）、ロール紙マルチリソース要求の状態を「使用中」に設定し（Ｓ１１６）、２値リソース３４である紙経路及び多値リソース３５である電源を確保したことをロール紙マルチリソース要求へ通知する（Ｓ１１７）。
【００５３】
最後に、ロール紙マルチリソース要求はリソース管理３０に対して、ロール紙アプリケーションが使用するリソースを確保したことを通知し（Ｓ１１８）、リソース管理３０はロール紙アプリケーションに対して、ロール紙アプリケーションが使用するリソースを確保したことを通知する（Ｓ１１９）。
【００５４】
次に、上述したようにして確保したリソースの利用を、アプリケーション３８が終了するときの、リソースの解放要求処理について、図５を参照して説明する。ここでは、ロール紙アプリケーションを例に挙げて説明する。
【００５５】
まず、ロール紙アプリケーションは、リソースの解放要求をリソース管理３０に送る（Ｓ２０１）。次に、リソース管理３０は、ロール紙マルチリソース要求に対して、ロール紙マルチリソースの解放を要求する（Ｓ２０２）。ロール紙マルチリソース要求は、ロール紙マルチリソースに対して、２値リソース３４である紙経路及び多値リソース３５である電源の解放を要求し（Ｓ２０３）、ロール紙マルチリソースは、２値リソース３４である紙経路及び多値リソース３５である電源を解放する（Ｓ２０４からＳ２０６）。最後に、リソース管理３０はロール紙アプリケーションに対して、ロール紙アプリケーションが使用するリソースを解放したことを通知する（Ｓ２０７）。
【００５６】
次に、処理要求キューにおいてマルチリソース要求３１の要求順番となる前に、そのマルチリソース要求３１がキャンセルされた場合の処理手順について、図６を参照して説明する。ここでは、ロール紙アプリケーションを例に挙げて説明する。また、ロール紙アプリケーションによって生成されたロール紙マルチリソース要求が、処理要求キューに追加されるまでの処理（Ｓ３０１からＳ３０７）は、図４において説明したステップＳ１０１からＳ１０７と同様であるので、説明を省略する。
【００５７】
ロール紙マルチリソース要求の要求順番になる前に、ロール紙アプリケーションによって、リソース確保が不要であると判定されたときに、ロール紙アプリケーションは、リソースの解放要求をリソース管理３０に送る（Ｓ３０８）。リソース管理３０は、処理要求キューから、ロール紙アプリケーションに関連したロール紙マルチリソース要求を削除する（Ｓ３０９）。最後に、リソース管理３０はロール紙アプリケーションに対して、ロール紙アプリケーションが使用するリソースを解放したことを通知する（Ｓ３１０）。
【００５８】
次に、優先度の低いアプリケーション３８が優先度の高いアプリケーション３８へリソースを明け渡す処理について、図７及び図８を参照して説明する。ここでは、ロール紙アプリケーション、及びドロワのプリケーション３８（以下、「ドロワアプリケーション」と呼ぶ）を例に挙げて説明する。ドロワアプリケーションが使用するリソースは、リソース３７のサブクラスである多値リソース３５の電源である。また、ドロワアプリケーションは、ロール紙アプリケーションより、優先度が高いとする。従って、図７及び図８では、ロール紙アプリケーションが、リソースを確保して使用しているときに、ドロワアプリケーションからリソースの確保要求があった場合について説明する。
【００５９】
まず、ドロワアプリケーションが、マルチリソースＩＤ、ロール紙アプリケーションの優先度、及びドロワアプリケーションへの通知先を、内部に保持するドロワアプリケーションに関連したマルチリソース要求３１（以下、「ドロワマルチリソース要求」と呼ぶ）を生成する（Ｓ４０１）。このとき、生成されたドロワマルチリソース要求は、状態を「待ち」にする（Ｓ４０２）。
【００６０】
次に、ドロワアプリケーションは、ドロワマルチリソース要求とともにリソース確保要求をリソース管理３０に送る（Ｓ４０３）。リソース管理３０は、リソース確保要求を介して渡されたドロワマルチリソース要求とマルチリソース３３を対応付ける初期化処理を、ドロワマルチリソース要求に対して要求する（Ｓ４０４）。ドロワマルチリソース要求は、自身が内部に保持するマルチリソースＩＤに基づいて、マルチリソース管理３２から、ドロワマルチリソース要求に対応するマルチリソース３３（以下、「ドロワマルチリソース」と呼ぶ）を取得し（Ｓ４０５）、現在のドロワマルチリソースを設定する（Ｓ４０６）。
【００６１】
次に、リソース管理３０は、ドロワアプリケーションの優先度に基づいて、ドロワアプリケーションと同じ優先度の処理要求キューの最後尾に、ドロワマルチリソース要求を追加し（Ｓ４０７）、処理要求キューの要求順番になるまで、待機する。
【００６２】
次に、ドロワマルチリソース要求の要求順番になったときに、リソース管理３０は、ドロワマルチリソース要求に対して、リソース確保を要求し（Ｓ４０８）、ドロワマルチリソース要求は、ドロワマルチリソースに対して、多値リソース３５である電源の確保を要求し（Ｓ４０９）、ドロワマルチリソースは、多値リソース３５である電源を確保しようと試み、失敗し（Ｓ４１０からＳ４１３）、多値リソース３５である電源の確保が失敗したことをドロワマルチリソース要求へ通知する（Ｓ４１４）。
【００６３】
次に、ドロワマルチリソース要求は、リソース管理３０に対して、リソース確保が失敗したことを通知する（Ｓ４１５）。リソース確保が失敗した理由は、既に電源を、ロール紙アプリケーションが使用しているためであり、ドロワアプリケーションとロール紙アプリケーションとが同時に電源を使用した場合、電源容量がオーバーするためである。
【００６４】
次に、リソース管理３０は、一時解放候補となるマルチリソース要求３１を処理要求キューの中から検索する（Ｓ４１６）。ここでは、一時解放候補として、ロール紙マルチリソース要求が検索される。検索したロール紙マルチリソース要求を関連したロール紙アプリケーションに対して、使用しているリソースを一時解放するように通知する（Ｓ４１７）。ロール紙アプリケーションは、使用しているリソースを一時解放する準備が出来たときに、リソース管理３０に対して、一時解放許可要求を送信する（Ｓ４１８）。
【００６５】
リソース管理３０は、ロール紙マルチリソース要求に対して、ロール紙マルチリソースの解放を要求する（Ｓ４１９）。ロール紙マルチリソース要求は、ロール紙マルチリソースに対して、２値リソース３４である紙経路及び多値リソース３５である電源の解放を要求し（Ｓ４２０）、ロール紙マルチリソースは、２値リソース３４である紙経路及び多値リソース３５である電源を解放する（Ｓ４２１からＳ４２３）。このとき、ロール紙マルチリソース要求の状態を「一時中断」とする。
【００６６】
最後に、上述の図４に準じて、ドロワマルチリソース要求が、ドロワマルチリソースを介して、多値リソース３５である電源を確保し、ドロワマルチリソース要求の状態を「使用中」に設定し、リソース管理３０に対して、ドロワアプリケーションが使用するリソースを確保したことを通知したときに、リソース管理３０は、ドロワアプリケーションに対して、ドロワアプリケーションが使用するリソースを確保したことを通知する（Ｓ４２４）。
【００６７】
ここで、上述した一時解放候補の検索は、「リソース確保要求の対象のアプリケーション３８（Ａ）の優先度より低い優先度のアプリケーション３８（Ｂ）に関連したマルチリソース要求３１であり、かつ、アプリケーション３８（Ｂ）に関連したマルチリソース要求３１の状態が「使用中」であり、かつ、アプリケーション３８（Ｂ）が使用している複数のリソースの中の少なくとも１つのリソースが、アプリケーション３８（Ａ）が確保しようとしている複数のリソースの中の少なくとも１つのリソースと競合する」とする条件を満たしたアプリケーション３８（Ｂ）に関連したマルチリソース要求３１を一時解放候補とする。
【００６８】
また、上述した図４から図８示す処理手順を実行する場合に、インクジェットプリンタ１のＲＯＭに予め格納されている制御プログラムを実行して、各工程を実行させるようにしたが、これらの各工程を実行させるプログラムを記録した情報記録媒体から、そのプログラムをＲＡＭに読み込んで実行するようにしても良い。
【００６９】
ここで、情報記録媒体とは、ＲＡＭ、ＲＯＭ等の半導体記録媒体、ＦＤ、ＨＤ等の磁気記憶型記録媒体、ＣＤ、ＣＤＶ、ＬＤ、ＤＶＤ等の光学的読取方式記録媒体、ＭＯ等の磁気記憶型／光学的読取方式記録媒体であって、電子的、磁気的、光学等の読み取り方法のいかんにかかわらず、コンピュータによって読み取り可能な情報記録媒体であれば、あらゆる情報記録媒体を含むものである。また、プログラムを、ネットワークを経由してダウンロードして実行するようにしても良い。
【図面の簡単な説明】
【００７０】
【図１】発明を適用したインクジェットプリンタの斜視図である。
【図２】インクジェットプリンタの紙搬送経路を示す説明図である。
【図３】本発明を適用したインクジェットプリンタのリソース管理を行う機能部のクラス図である。
【図４】リソース確保要求処理の手順を示すシーケンス図の一例である。
【図５】リソース解放要求処理の手順を示すシーケンス図の一例である。
【図６】リソース確保要求のキャンセル要求処理の手順を示すシーケンス図の一例である。
【図７】優先度の低いアプリケーション３８が優先度の高いアプリケーション３８へリソースを明け渡す処理の手順を示すシーケンス図の一例である。
【図８】図７の続きを示す図である。
【符号の説明】
【００７１】
１      インクジェットプリンタ
３０    リソース管理
３１    マルチリソース要求
３２    マルチリソース管理
３３    マルチリソース
３４    ２値リソース
３５    多値リソース
３６    多値リソース消費
３７    リソース
３８    アプリケーション
【図１】
0004687379.tif 000002
【図２】
0004687379.tif 000003
【図３】
0004687379.tif 000004
【図４】
0004687379.tif 000005
【図５】
0004687379.tif 000006
【図６】
0004687379.tif 000007
【図７】
0004687379.tif 000008
【図８】
0004687379.tif 000009