JP4350565B2 - 情報処理装置および方法 - Google Patents

情報処理装置および方法 Download PDF

Info

Publication number
JP4350565B2
JP4350565B2 JP2004074706A JP2004074706A JP4350565B2 JP 4350565 B2 JP4350565 B2 JP 4350565B2 JP 2004074706 A JP2004074706 A JP 2004074706A JP 2004074706 A JP2004074706 A JP 2004074706A JP 4350565 B2 JP4350565 B2 JP 4350565B2
Authority
JP
Japan
Prior art keywords
conflict processing
information
conflict
rule
rules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004074706A
Other languages
English (en)
Other versions
JP2004310754A5 (ja
JP2004310754A (ja
Inventor
章弘 三井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2004074706A priority Critical patent/JP4350565B2/ja
Priority to US10/807,102 priority patent/US7475407B2/en
Publication of JP2004310754A publication Critical patent/JP2004310754A/ja
Publication of JP2004310754A5 publication Critical patent/JP2004310754A5/ja
Application granted granted Critical
Publication of JP4350565B2 publication Critical patent/JP4350565B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1212Improving printing performance achieving reduced delay between job submission and print start
    • G06F3/1214Improving printing performance achieving reduced delay between job submission and print start at the submitting node
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1255Settings incompatibility, e.g. constraints, user requirements vs. device capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、情報処理装置および方法に関し、特に、デバイスドライバに設定される設定値に従って周辺装置を制御する情報処理装置および方法に関する。
ユーザインターフェース(以下、「UI」ともいう。)を介して、ユーザから複数の設定値の入力を受け付け、それらの設定値に基づき制御される機器は、数多くある。ホストコンピュータに接続され、そのホストコンピュータにおいて設定された情報に基づき画像形成処理を行う画像形成システム(プリンタシステム)はその一例である。プリンタシステムのホストコンピュータは一般に、印刷動作を制御するいわゆるプリンタドライバ、およびユーザからの印刷設定などを受け付けるUIを含む印刷関連処理プログラムを有する。
印刷関連処理プログラムは、UIを介してユーザからの設定値の入力を受け付ける度に、それまでに設定された複数の設定値の中で関連する設定値の値との関係を評価し、設定値間の不整合(コンフリクト)がないかどうかを判別する。コンフリクトの例としては、記録媒体としてセットされたOHPシートに対して両面印刷を行わせるような設定などのユーザにとって不都合と予想される設定や、プリンタに不可能な動作を行わせる設定などがある。
したがって、コンフリクトが存在した場合には、それを回避するためのコンフリクト処理が必要になる。
コンフリクト処理の実現にあたっては、コンフリクトの検知および解消処理を設定値の関係に依存した形で専用のプログラムを用いて記述する、もしくはコンフリクト処理が必要となる複数の設定値の条件を一覧としてファイルに保存し、このファイルをコンフリクト処理プログラムに読み込ませることで、コンフリクト処理プログラムが汎用的に利用できるようにしていたかのどちらかであった。
特開2002−202865号公報 特開2003−296063号公報 特開2002−169669号公報 特開2002−202868号公報 特開2002−328787号公報 特開2002−328757号公報 特開2003−099170号公報 特開2002−196905号公報 特開2003−091373号公報 特開2004−005194号公報
ファイルにコンフリクト処理を保存する際の記述に関しては、設定値間の項目に関するルールを記述するに過ぎず、複数のルールが記述されていたときには、コンフリクト処理とは直接関係のない記述順によって順番に処理されていた。また、コンフリクト処理によって変更された設定値がさらにコンフリクト処理によって変更されるときに、どのルールから設定値が定まっていくのかが明確に定義できないため、記述を行っては実行しコンフリクト処理プログラムが解釈する順番を手探りで探していかなければならず、誤判断や工数の増加につながっていた。
そこで、本発明は、開発者のミスや作業工数を減らすことができるよう、ユーザインターフェースのコンフリクト処理ルールの記述構造を改良することを目的とする。
上記した課題は、本発明の情報処理装置および方法によって解決される。本発明の一側面は、デバイスドライバに設定される設定値に従って周辺装置を制御する情報処理装置に係り、前記デバイスドライバの設定値間の不整合を回避するための、複数のコンフリクト処理ルールを保持する保持手段と、前記複数のコンフリクト処理ルールに従って、対応する設定値の状態を制御する制御手段とを有し、前記複数のコンフリクト処理ルールの少なくともいずれかは、他のコンフリクト処理ルールに対する適用優先度の情報を含むことを特徴とする。
また、本発明の別の側面は、デバイスドライバに設定される設定値に従って周辺装置を制御するための情報処理方法に係り、前記デバイスドライバの設定値間の不整合を回避するための、複数のコンフリクト処理ルールを読み込む読み込みステップと、前記複数のコンフリクト処理ルールに従って、対応する設定値の状態を制御する制御ステップとを有し、前記複数のコンフリクト処理ルールの少なくともいずれかは、他のコンフリクト処理ルールに対する適用優先度の情報を含むことを特徴とする。
本発明によれば、ユーザインターフェースのコンフリクト処理ルールの記述構造が改良され、これにより開発者のミスや作業工数の削減に貢献することができる。
以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
図1は本発明の一実施形態における印刷処理システムのブロック構成図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、LAN、WAN等のネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できることは言うまでもない。
図1は、一般的なコンピュータを用いた印刷処理システムの例を示している。CPU100はROM101あるいはRAM102あるいは外部記憶装置107に格納されたプログラムに従って装置全体の制御を行う。RAM102はCPU100が各種処理を行う際のワークエリアとして使用される。
ハードディスク装置などで実現される外部記憶装置107は、オペレーティングシステム(OS)1071やアプリケーションソフト1072、および印刷関連処理プログラム1073を記憶している。ここで、印刷関連処理プログラム1073は、デバイスドライバとしてのプリンタドライバ1074およびプリンタドライバUI制御モジュール1075を含む構造である。
キーボード103もしくは非図示のマウスなどの入力機器は、ユーザーが各種指示を与えるためのデバイスである。ネットワークI/F1041はLAN104もしくは非図示のネットワークに接続しデータの授受を行うためのインターフェースである。モニタI/F1051はモニタ105に接続しデータの授受を行うためのインターフェースである。プリンタI/F1061は、被制御装置であるプリンタ106と接続しデータの授受を行うためのインターフェースである。また、108は共通データバスである。なお、プリンタ106は被制御装置の一例であり、本発明はスキャナ等を被制御装置としても適用可能である。
図2は、実施形態における印刷関連処理プログラム1073のプリンタドライバUI制御モジュール1075の機能構成を示している。203は、各モジュール間のデータの受け渡しやデータの更新等を管理してコンフリクト処理を統括するコンフリクトマネージャである。206が、印刷設定画面の表示制御を行うプリンタドライバUIである。201は、プリンタドライバUI206を介して入力される設定値間の不整合を回避するための、複数のコンフリクト処理ルールを記述したコンフリクト処理ルール記述ファイルである。202は、コンフリクト処理ルール記述ファイル201をロードして、入力された設定値に対してコンフリクト処理ルールを適用し、各機能の状態を推論する推論エンジン、204は、各プリンタ機能の状態をリスト形式で表示する状態変数リストであり、ユーザからの入力およびコンフリクト処理ルール記述ファイル201の内容に基づき更新されうる。205は、プリンタドライバUI206が提供する画面表示の基になる帳票としての内部構造体であり、状態変数リスト204と連動して各プリンタ機能の状態を所定の形式で表示する。
プリンタドライバUI206を介してユーザからの設定情報を受け取ったコンフリクトマネージャ203は、コンフリクト処理ルール記述ファイル201を参照する。このことは、図示の如くコンフリクト処理ルール記述ファイル201からコンフリクトマネージャ203に向かう矢印で、「R(Read)」として表示されている。参照の結果、設定情報がコンフリクト処理ルールに適合する場合、コンフリクト処理が適用される。そうして、コンフリクトマネージャ203は、状態変数リスト204および内部構造体205を更新してプリンタドライバUI206に反映させる。この更新作業については、図示の如くコンフリクトマネージャ203が、状態変数リスト204および内部構造体205とそれぞれ双方向矢印で結ばれ、「R/W (Read/Write)」として表示されている。
図3は、図2に示した各モジュールで扱われるデータの関連を説明する模式図である。図3において、コンフリクト処理ルール記述ファイル201は、推論エンジン202にインクルード(ロード)されたかたちで参照される。このコンフリクト処理ルール記述ファイル201は、コンフリクトマネージャ203にも参照され、それを受けて状態変数リスト204が変更されることになる。また、内部構造体205と状態変数リスト204とは先に述べたとおり連動表示されるものであるから、互いにマッピングされる関係にある。そしてこの状態がプリンタドライバUI206の制御によってユーザに見えるかたちで表現される。
図4は、実施形態におけるコンフリクト処理ルールの適用手順を示すフローチャートである。ここでは一例として、プリンタ106を制御するためのプリンタドライバ1074によってモニタ105に各種設定用に表示されるプリンタドライバUI上で行われるコンフリクト処理を説明する。
図4に示す処理は、OSもしくはアプリケーション上で、ユーザーがキーボード103などによりプリンタドライバUIを開く指示をすることで始まる。ユーザーによるプリンタドライバUIを開く指示により、OS1071の管理の下、RAM102に印刷関連処理プログラム1073がロードされる。印刷関連処理プログラムがRAM102にロードされると、まずプリンタドライバUIを開くための初期化処理が行われる。推論エンジン202は、図6に例示するような表記のコンフリクト処理ルールを記述したファイル201をコンフリクトマネージャ203を介して、RAM102の中に読み込む(ステップS401)。
コンフリクト処理ルール記述ファイル201に記述される各ルールは、論理(ロジック)を用いて数学的に形式化される。述語は、「プリンタ機能名(引数)」の形で記述される。引数としては、ON/OFFの他、数値が入る場合もある(例えば、印刷部数等)。本明細書では、このような引数の内容によって現在の状態が表現されうる機能を「状態変数」とよぶ。つまり、各ルールは「状態変数」を用いた論理式で記述される。具体的には、左辺には「プリンタ機能名(引数)」を、右辺には左辺が成り立つための論理条件を記述し、記号「:-」で関係づける。例えば、
A(ON) :- B(ON).
は、「プリンタ機能Bの状態がONのときは、プリンタ機能Aの状態をONとする」という意味のルールになる。
また、式中の記号「,」は「かつ(AND)」の意味で用いられる。例えば、「プリンタ機能Bの状態がON、かつ、プリンタ機能Cの状態がOFFのとき、プリンタ機能Aの状態をONとする」というルールは、
A(ON) :- B(ON), C(OFF).
と記述される。
ここで例えば、コンフリクト処理ルール記述ファイル201に、次のようなコンフリクト処理ルールが記述されていたとする。
A(ON) :- B(ON), C(OFF).
状態変数リスト204には、図3に示すように、コンフリクト処理ルール記述ファイル201に記述されたプリンタの機能名A,B,Cがそれぞれ同名の状態変数として同図中の「キー」欄に記述される。また、各状態変数の現在値(ON/OFFなど)が、「値」欄に記述される。ここでは、プリンタ機能名A,B,Cに対応するプリンタドライバUIの内部構造体205のメンバをそれぞれ a,b,cで表現する。内部構造体205は内部もしくは外部に初期値をもっており、状態変数の値は対応する内部構造体205のメンバの初期値に依存する。aの初期値は0なので、対応する状態変数Aの値はOFFとなっている。
また、状態変数リスト204は、図3に示すように、後述する各ルールの適用順序に関する遅延フラグと遅延情報を持ち、これらによってそれぞれ自分自身が遅延情報を持つかどうか、他の遅延情報を持つかどうかが保存される。詳細は後述する。
推論エンジン202はコンフリクトマネージャ203からコンフリクト処理ルール記述ファイル201を渡され、状態変数の推論を行ってコンフリクト処理ルールの評価を行う。状態変数Bの値がONであり、かつ、状態変数CがOFFであったときは上記のコンフリクト処理ルールの右辺の評価が成立し、左辺の状態変数Aの値をONに変更する。コンフリクト処理ルールの推論が終了すると、コンフリクトマネージャ203は変更された状態変数の値をプリンタドライバUIの内部構造体205の対応するメンバaに反映させる。つまり、状態変数Aの値がOFFからONになったことで、内部構造体205のメンバaは上記のコンフリクト処理ルールが成立したことによって、0から1に変更される。
コンフリクト処理ルールでは、プリンタの機能と結び付けられた状態変数のほかに、一時的に値を記憶しておくための状態変数を記述することもできる。一時的に値を記憶しておくための状態変数は推論エンジン202がコンフリクト処理ルールに従いコンフリクト処理を行い始めてから、コンフリクト処理を終了するまで、推論エンジン202の内部に値が保存される。一時的な状態変数なので、コンフリクト処理が終了すれば消える揮発性のデータとなる。
一時的な状態変数の記述の方法は、状態変数リスト204に持たないキー名称をコンフリクト処理ルール内で状態変数として記述しておくと、推論エンジン202はこれを一時的な状態変数とみなして処理を行う。一時的な状態変数は初期の値を定めることができないので、作成された段階での初期の値は不定値となる。
一時的な状態変数は、複雑なコンフリクト処理の最中で、途中のコンフリクト処理の状態を覚えておきたいときや、1対多のコンフリクト処理ルールの対応付けをとるのに利用することができる。
ここで、コンフリクト処理ルール記述ファイル201に、図6のようなコンフリクト処理ルールが記述されており、これをコンフリクトマネージャ203が推論エンジン202に渡すとする。推論エンジン202はコンフリクト処理ルール記述ファイル201を、記述された順に従って自身の持つ待ち行列に追加し、図9のフローチャートに従って評価を開始する。
推論エンジン202は自身の待ち行列の先頭から、コンフリクト処理ルールを取り出す(ステップS901)。すなわち、まず図6の601で示されるルール
A(ON) :- B(OFF), wait([C]).
が取り出される。
次に、取り出したルールの右辺に制御記号「wait」が含まれているか否かを判断する(ステップS902)。この制御記号「wait」は、この制御記号が記述されているコンフリクト処理ルールの、他のコンフリクト処理ルールに対する適用優先度の情報を表す。601のルールにはこの「wait」が含まれている。このように右辺に「wait」の記号があったときは、図3に示すように、「wait」で指定された状態変数Cに対し状態変数リスト204における遅延フラグを「TRUE」とするとともに、左辺に対応する状態変数Aに対し遅延情報として「C」を記述する(ステップS903)。これにより状態変数Aは状態変数Cが先に評価されるのを待っていることが示される。
次に、右辺から「wait」を取り除いたルールを生成する(ステップS904)。すなわち、601のルールから、
A(ON) :- B(OFF). (603)
が生成される。そして、この603のルールを待ち行列の最後に挿入する(ステップS905)。
その後、ステップS901に戻って、次のコンフリクト処理ルール、すなわち、602で示されるコンフリクト処理ルール
B(OFF) :- C(ON).
を待ち行列から取り出し、ステップS902で、右辺に「wait」の記号が含まれているか否かを判断する。この場合には右辺に「wait」は存在しないので、ステップS906に進み、右辺の評価を行う。推論エンジン202は、左辺の状態変数Bにおける遅延情報が状態変数Cに結び付けられているかどうかを判定する(ステップS907)。しかしこの例では、602のルールの左辺にある状態変数Bには状態変数Cに関する遅延情報はないので、そのままステップS910に進み、式の評価を行う。推論エンジン202は式を評価し、602のルールに従い、状態変数Cの値をコンフリクトマネージャ203に問い合わせた後、状態変数Cの値がONであれば状態変数Bの値をOFFにする。そして、状態変数Cの遅延フラグを「FALSE」に変更し、状態変数Cに関する処理が終わったことを示す。
ステップS911では、待ち行列にルールがあるかどうかをチェックする。ここで待ち行列にルールがなくなればこの処理を終了することになるが、この例では、ステップS905で、601のルールから「wait」を取り除いたルール603が待ち行列の最後に挿入されたので、処理はステップS901に戻り、ルール603を取り出す。この場合、ルール603の右辺に「wait」は存在しないので、ステップS902からステップS906に進み、右辺の評価を開始する。ステップS907では、左辺の状態変数Aにおける遅延情報が状態変数Cに結び付けられているかどうかを判定する。この例では、先ほどのステップS903でルール601の左辺にある状態変数Aの遅延情報が状態変数Cに結び付けられているので、処理はステップS908に進む。
ステップS908では、「wait」が付いた状態変数のルールをすべて評価したかどうかを検査する。すなわち、状態変数Aに結び付けられた遅延情報の状態変数Cが評価されたかどうかを確認する。ここで、すべて評価されていないときはステップS905に進むが、この例では、ルール602を評価したステップS910で状態変数Cから遅延フラグが下りていることから、すべて評価されていると判断され、ステップS909に進む。ステップS909では、状態変数Aの遅延情報を削除し、その後、ステップS910で、式を評価する。
なお、コンフリクト処理ルールの記述順や評価を行う過程によっては、ステップS908において、「wait」のない状態変数Cの評価がすべて終了したことを判定できない場合があり得る。そのような場合には無限ループに陥ってしまい処理を終了できないことになる。そこで、ステップS910が行われずにステップS901に戻った回数をカウントしておき、そのカウント値が所定回数を超えると、待ち処理をあきらめステップS907からステップS910に強制的に進めるようにすることで、無限ループに陥ることを防止することが好ましい。
さて、図5に示したコンフリクト処理ルールの例と図6のコンフリクト処理ルールの例とを比較すると、図5のコンフリクト処理ルールでは、記述順にルールが評価される場合には、状態変数BがONだったときとOFFだったときで、状態変数Aの値が異なってしまうが、図6に示したような「wait」の記述によりルールの適用順序を制御することで、状態変数Aが不定になることを防止できる。
以上のような処理によって他に適用されるコンフリクト処理ルールがなくなった時点で、図7に例示するようなプリンタドライバUIをオープンする(ステップ402)。
プリンタドライバUIがオープンされた後は、OSより送られてくるイベントの取得とその処理を繰り返す(ステップS403)。ステップS404では、ステップS403にて取得したイベントが、ユーザーがプリンタドライバUI上の設定項目を変更したイベントであるかどうかの判断を行う。ここで、イベントがユーザーの設定項目変更要求であった場合には、その設定項目に対する内部構造体のメンバがコンフリクトマネージャによって変更され、同じくコンフリクトマネージャによって対応づけられた状態変数が変更され、推論エンジンがコンフリクト処理ルールをもとに、上記のコンフリクト処理を行う(ステップS405)。
他に適用されるコンフリクト処理ルールがなくなった時点で、コンフリクトマネージャがコンフリクト処理によって変更があったすべての状態変数を、対応する内部構造体のメンバに適用する(ステップS406)。コンフリクトマネージャは変更された内部構造体のメンバから、UIの更新が必要かどうかの判別を行う(ステップ407)。UIの更新が必要ない場合はそのままステップS403に戻るが、更新が必要な場合は、UIの更新処理を行い(ステップS408)、その後ステップS403に戻る。
また、ステップS404において、取得したイベントがユーザーの設定項目変更要求でなかった場合には、ステップS409に進み、そのイベントがユーザーによってプリンタドライバUIのクローズ要求かどうかを判別する。ここで、そのイベントがクローズ要求だった場合には、プリンタドライバUIをクローズし終了処理を行って(ステップS410)、本処理を終了し(ステップS411)、そうでなければ、ステップS403に戻って処理を繰り返す。
以上の処理は、ユーザーによってプリンタドライバUIがクローズされるまで繰り返し実行される。プリンタドライバUIがクローズされると処理はすべて終了し、本実施形態における印刷関連処理プログラムの処理も終了し、RAM103からはOS1071の機能により消去される。プリンタドライバUIで使用されていた内部構造体205は、プリンタ106もしくはOS1071に反映され、ユーザーがプリンタ106に対して印刷を行う指示をするときに使用される。
なお本実施形態においては、本印刷関連処理プログラムを記録する媒体を外部記憶装置107としているが、外部記憶装置は、FD、HDD、光ディスク媒体、ICメモリーカードなどであってもよい。さらに、本印刷関連処理プログラム単独、もしくはOSそのほかコンピュータ上で動作するプログラムとともにROM101に記録しておき、これをメモリマップの一部としてなすように構成し、直接CPU100で実行することも可能である。
また、上述した実施形態では、コンフリクト処理ルールの順番待ちを1つのルールを加えることで実現しているが、かわりに、図8に示すように、一連の複数のコンフリクト処理ルールをまとめて、そのひとまとまりの中でのみ互いのルールおよび状態変数が干渉し、それ以外は一切評価を行わないといった意味の、スコープ「{」、「}」で表現することも可能である。たとえば、推論エンジン202はスコープの始まりを検知すると、いったんスコープ内に記述されたコンフリクト処理ルールを、スコープが現れる順にスコープ番号を添付して順番待ち行列に入れ込む。スコープ内のコンフリクト処理ルールを評価するためには、互いのスコープの順序を記述したコンフリクト処理ルールがあればその順番に従い、存在しないときはスコープの記述順に評価する。コンフリクト処理ルールは、それぞれスコープ番号をもっており、ひとつコンフリクト処理ルールを評価すると、他のスコープ番号のルールが待ち行列から取り出されても、推論エンジンは評価を行わない。これによって、互いに優先順位をつけることができる。
以上説明した実施形態によれば、プログラム開発者などが用意するコンフリクト処理ルールで作成されるコンフリクト条件を、推論エンジンに規則的な順序を守って評価をさせることができるので、推論エンジンの動作による結果を表現しやすく、品質の高いコンフリクト処理を実現できるようになる。
また、コンフリクト処理ルールの評価が始まる順番によって、結果が変化してしまう従来の問題を防ぐことができる。例えば、図10と図11に示したコンフリクト処理ルールを比べると、両者は同様の内容であるが、図11の第1,3行のルールには適用順序に係る制御記号「wait」が記述されている。図10の場合、状態変数CもDもONだったときは、状態変数Bが先にONになるかOFFかは評価次第になってしまい、その結果、第1,3行のルールによってBの状態に依存する状態変数Aも先にONになるかOFFになるかはこれだけでは判定することができない。これはプログラム開発者としては意図した方向にコンフリクト処理を割り振ることができない一例である。一方、図11の記述であれば、第1行のルールは状態変数Cのルールに結びつけられていることが確認でき、また、第3行のルールは状態変数Dのルールに結びつけられていることが確認できるため、意図した順に状態変数A,Bを変化させることができる。
制御記号「wait」の使用によって、コンフリクト処理ルールの評価が始まる順番により結果が変化してしまう従来の問題が防止される例を以下に示す。コンフリクト処理ルールとして以下のようなルールを作成したとする。
$TEMP(OFF) :- Layout$Printing(BOOKLET). (1)
$TEMP2(OFF) :- $TEMP(OFF). (2)
$TEMP3(OFF) :- $TEMP2(OFF). (3)
Layout$Scaling(OFF) :- Layout$Printing(TWOSIDED). (4)
Layout$Scaling(OFF) :- $TEMP3(OFF). (5)
これは、印刷の方法(Printing)として製本印刷(BOOKLET)を選択したとき、もしくは両面印刷(TWOSIDED)を選択したときには、印刷データのスケーリング機能(Scaling)をOFFにする、という仕様に基づき作成されたコンフリクト処理ルールである。
この例において、“$”で始まる状態変数は一時的な状態変数、“Layout$”で始まる状態変数は実際のプリンタ機能に結びついた状態変数であるとする。製本印刷も両面印刷もどちらも同じことを行おうとしているが、製本印刷においては一時的な状態変数を用いる点が異なっている。
ここでユーザの操作により、製本印刷が選択されたとしてコンフリクト処理を開始する。仕様から判断すると、(1)→(2)→(3)→(4)→(5)の順番でコンフリクト処理ルールが評価されることを期待して記述したコンフリクト処理ルールであることから、順を追って処理を見ていく。まず、製本印刷が選択されると、(1)のルールが成立し、一時的な状態変数$TEMPがOFFになる。次に、$TEMPがOFFであることから(2)のルールが成立し、$TEMP2がOFFになる。そして、$TEMP2がOFFであることから(3)のルールが成立し$TEMP3がOFFになる。次に(4)のルールが評価されるが、印刷の方法は製本印刷であるため、(4)のルールは成立しない。そして(5)のルールが評価され、印刷データのスケーリング機能(Scaling)がOFFになる。
しかし、実際の動作は推論エンジンによる状態変数の推論が行われるため、必ずしも上から順にルールが評価されるわけではない。状態変数の推論は、状態変数の値が変化したことに関連する状態変数のコンフリクトルールを全体のルールから導き出し、関連するコンフリクトルールを先行して評価することで、すべてのコンフリクト処理ルールを値が変化することに評価するような処理のオーダ(手間)を省き、無限ループに陥ることを防止するように動作する。
したがって、このルールにおいては製本印刷が選択されたときに(1)→(2)→(4)→(5)→(3)と評価することも起こりうる。この場合、(5)の評価が行われるタイミングでは、$TEMP3の値はOFFになっておらず、一時的な状態変数の初期値である不定値状態のままである。したがって、(5)の評価は失敗してしまい、倍率がOFFにならなくなってしまう。
このようなときに「wait」の機能を使用する。(5)のルールを以下のように書き換える。
Layout$Scaling(OFF) :- $TEMP3(OFF), wait([$TEMP3]). (5’)
これにより、$TEMP3に関連するコンフリクト処理ルール(ここでは(3)を指す)が評価される前に(5’)の評価が行われても、$TEMP3に関連するコンフリクト処理ルールが評価されていない間は待ち行列の最後に挿入されるため、(3)の評価が行われる前に実際に評価されることはない。
このように、コンフリクト処理ルール同士に順序がつけられることによって、現在あるコンフリクト処理ルールに対して、ルールの追加・削除が容易に行うことができる。
また、ユーザインターフェースの更新処理、メッセージ処理もコンフリクト処理ルールに加えることで、開発者にとって可読性の高く、メンテナンスも容易なコーディングを実現することができる。さらには、ドライバのコンフリクト処理を一部だけカスタマイズするときに、ユーザインターフェース制御部のコーディングをまったく変更することなくカスタマイズが可能という効果ももたらす。その際に本発明と組み合わせれば、推論エンジンの動作を詳細に理解することなく、コンフリクト処理ルールを容易に記述し、期待した結果が得られる効果がある。
(他の実施形態)
以上、本発明の実施形態を詳述したが、本発明は、例えばシステム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。また、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても実現される。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
実施形態における印刷処理システムのブロック構成図である。 実施形態におけるプリンタドライバUI制御モジュールの機能構成を示す図である。 実施形態におけるコンフリクト処理に係るデータの関連を示す例である。 実施形態におけるコンフリクト処理ルールの適用手順を示すフローチャートである。 ルールの適用順序に係る制御コマンドを含まないコンフリクト処理ルールの記述例を示す図である。 ルールの適用順序に係る制御コマンドを含んだコンフリクト処理ルールの記述例を示す図である。 実施形態におけるプリンタドライバUIの一例を示す図である。 スコープを適用したコンフリクト処理ルールの記述例を示す図である。 実施形態におけるコンフリクト処理ルール記述ファイルの読み込み処理を示すフローチャートである。 ルールの適用順序に係る制御記号の効果を説明するための図である。 ルールの適用順序に係る制御記号の効果を説明するための図である。

Claims (12)

  1. デバイスドライバに設定される設定値に従って周辺装置を制御する情報処理装置であって、
    前記デバイスドライバの設定値間の不整合を回避するための、複数のコンフリクト処理ルールを保持する保持手段と、
    前記複数のコンフリクト処理ルールに従って、対応する設定値の状態を制御する制御手段と、
    を有し、
    前記複数のコンフリクト処理ルールの少なくともいずれかは、他のコンフリクト処理ルールに対する適用優先度の情報を含むことを特徴とする情報処理装置。
  2. 前記制御手段は、前記適用優先度の情報に応じた順序で各コンフリクト処理ルールを適用することを特徴とする請求項1に記載の情報処理装置。
  3. 前記適用優先度の情報は、特定の状態変数に係る後続のコンフリクト処理ルールを優先適用するよう指示する制御情報として記述され、
    前記制御手段は、読み出したコンフリクト処理ルールから前記制御情報を抽出し、当該制御情報に基づき優先適用すべき他のコンフリクト処理ルールを読み出し、該他のコンフリクト処理ルールを評価することを特徴とする請求項2に記載の情報処理装置。
  4. 前記デバイスドライバの設定値は、印刷方法として両面印刷又は製本印刷の指定情報、および、印刷データのスケーリング機能の有効/無効を示すON/OFFの情報を含み、
    前記複数のコンフリクト処理ルールは、印刷方法として両面印刷又は製本印刷が指定されている場合は印刷データのスケーリング機能をOFFに設定する、という論理を含む
    ことを特徴とする請求項1から3までのいずれか1項に記載の情報処理装置。
  5. 前記優先適用度の情報は、印刷方法の指定に係るコンフリクト処理ルールを優先して適用するよう指示する制御情報として、印刷データのスケーリング機能に係るコンフリクト処理ルール中に記述されることを特徴とする請求項4に記載の情報処理装置。
  6. デバイスドライバに設定される設定値に従って周辺装置を制御するための情報処理方法であって、
    前記デバイスドライバの設定値間の不整合を回避するための、複数のコンフリクト処理ルールを読み込む読み込みステップと、
    読み込んだ前記複数のコンフリクト処理ルールに従って、対応する設定値の状態を制御する制御ステップと、
    を有し、
    前記複数のコンフリクト処理ルールの少なくともいずれかは、他のコンフリクト処理ルールに対する適用優先度の情報を含むことを特徴とする情報処理方法。
  7. 前記制御ステップは、前記適用優先度の情報に応じた順序で各コンフリクト処理ルールを適用することを特徴とする請求項6に記載の情報処理方法。
  8. 前記適用優先度の情報は、特定の状態変数に係る後続のコンフリクト処理ルールを優先適用するよう指示する制御情報として記述され、
    前記制御ステップは、読み出したコンフリクト処理ルールから前記制御情報を抽出し、当該制御情報に基づき優先適用すべき他のコンフリクト処理ルールを読み出し、該他のコンフリクト処理ルールを評価することを特徴とする請求項7に記載の情報処理方法。
  9. 前記デバイスドライバの設定値は、印刷方法として両面印刷又は製本印刷の指定情報、および、印刷データのスケーリング機能の有効/無効を示すON/OFFの情報を含み、
    前記複数のコンフリクト処理ルールは、印刷方法として両面印刷又は製本印刷が指定されている場合は印刷データのスケーリング機能をOFFに設定する、という論理を含む
    ことを特徴とする請求項6から8までのいずれか1項に記載の情報処理方法。
  10. 前記優先適用度の情報は、印刷方法の指定に係るコンフリクト処理ルールを優先して適用するよう指示する制御情報として、印刷データのスケーリング機能に係るコンフリクト処理ルール中に記述されることを特徴とする請求項9に記載の情報処理方法。
  11. デバイスドライバに設定される設定値に従って周辺装置を制御するための、コンピュータによって実行されるプログラムであって、
    前記デバイスドライバの設定値間の不整合を回避するための、複数のコンフリクト処理ルールを読み込んでメモリに格納するためのコードと、
    読み込んだ前記複数のコンフリクト処理ルールに従って、対応する設定値の状態を制御するためのコードと、
    を含み、
    前記複数のコンフリクト処理ルールの少なくともいずれかは、他のコンフリクト処理ルールに対する適用優先度の情報を含む
    ことを特徴とするプログラム。
  12. デバイスドライバに設定される設定値に従って周辺装置を制御するための、コンピュータによって実行されるプログラムを格納した記憶媒体であって、前記プログラムは、
    前記デバイスドライバの設定値間の不整合を回避するための、複数のコンフリクト処理ルールを読み込んでメモリに格納するためのコードと、
    読み込んだ前記複数のコンフリクト処理ルールに従って、対応する設定値の状態を制御するためのコードと、
    を含み、
    前記複数のコンフリクト処理ルールの少なくともいずれかは、他のコンフリクト処理ルールに対する適用優先度の情報を含む
    ことを特徴とする記憶媒体。
JP2004074706A 2003-03-27 2004-03-16 情報処理装置および方法 Expired - Fee Related JP4350565B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004074706A JP4350565B2 (ja) 2003-03-27 2004-03-16 情報処理装置および方法
US10/807,102 US7475407B2 (en) 2003-03-27 2004-03-24 Information processing apparatus and method for evaluating conflict resolution rules

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003089139 2003-03-27
JP2004074706A JP4350565B2 (ja) 2003-03-27 2004-03-16 情報処理装置および方法

Publications (3)

Publication Number Publication Date
JP2004310754A JP2004310754A (ja) 2004-11-04
JP2004310754A5 JP2004310754A5 (ja) 2007-04-26
JP4350565B2 true JP4350565B2 (ja) 2009-10-21

Family

ID=33302178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004074706A Expired - Fee Related JP4350565B2 (ja) 2003-03-27 2004-03-16 情報処理装置および方法

Country Status (2)

Country Link
US (1) US7475407B2 (ja)
JP (1) JP4350565B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006110861A (ja) * 2004-10-14 2006-04-27 Canon Inc 画像形成装置、画像形成方法及びそのプログラム
JP4590341B2 (ja) * 2004-11-15 2010-12-01 キヤノン株式会社 データ処理装置および設定処理方法および情報処理装置および制御プログラム
US7903272B2 (en) * 2004-11-15 2011-03-08 Canon Kabushiki Kaisha Data processing apparatus, print setting adjusting method, recording medium storing computer-readable program therein, and program
JP2007034503A (ja) * 2005-07-25 2007-02-08 Ricoh Co Ltd 情報配信システム、情報配信装置、情報配信方法及びプログラム
JP4661465B2 (ja) * 2005-09-06 2011-03-30 富士ゼロックス株式会社 制御装置
EP2262328B1 (en) 2005-12-14 2012-09-26 Research In Motion Limited Method and apparatus for user equipment directed radio resource control
JP2009523280A (ja) * 2006-01-13 2009-06-18 フリースケール セミコンダクター インコーポレイテッド プロテクションシステム及びその動作方法
JP5121261B2 (ja) * 2006-04-04 2013-01-16 キヤノン株式会社 画像処理装置、画像処理装置の制御方法、制御プログラム
ES2353609T3 (es) 2006-05-17 2011-03-03 Research In Motion Limited Método y sistema para una indicación de liberación de conexión de señalización en una red umts.
US20080049662A1 (en) * 2006-08-25 2008-02-28 Research In Motion Limited Apparatus, and associated method, for releasing a data-service radio resource allocated to a data-service-capable mobile node
JP4956259B2 (ja) * 2007-04-04 2012-06-20 キヤノン株式会社 情報処理装置及びその制御方法、コンピュータプログラム
ES2385415T3 (es) 2007-11-13 2012-07-24 Research In Motion Limited Método y aparato para la transición de estado/modo
JP4974909B2 (ja) * 2008-01-10 2012-07-11 キヤノン株式会社 情報処理装置、印刷設定方法、記憶媒体、プログラム
JP5094627B2 (ja) * 2008-08-08 2012-12-12 キヤノン株式会社 情報処理装置、方法、制御プログラム
KR101299277B1 (ko) * 2008-11-10 2013-08-23 리서치 인 모션 리미티드 롱 텀 이볼루션에서 데이터 전송의 종료를 표시함으로써 배터리에 대해 효과적인 상태 또는 구성으로 전환하는 방법 및 장치
JP5413132B2 (ja) * 2009-11-04 2014-02-12 富士ゼロックス株式会社 情報処理プログラム、情報処理装置および情報処理システム
CA3038940C (en) 2009-11-23 2021-04-27 Blackberry Limited Method and apparatus for state/mode transitioning
CN102783242A (zh) 2009-11-23 2012-11-14 捷讯研究有限公司 基于sri消息传输的状态或模式转换触发
WO2011061352A1 (en) 2009-11-23 2011-05-26 Research In Motion Limited Method and apparatus for state/mode transitioning
JP5583225B2 (ja) * 2009-11-24 2014-09-03 ブラックベリー リミテッド 状態/モード遷移のための方法および装置
US8983532B2 (en) 2009-12-30 2015-03-17 Blackberry Limited Method and system for a wireless communication device to adopt varied functionalities based on different communication systems by specific protocol messages
KR20120096549A (ko) * 2010-02-10 2012-08-30 리서치 인 모션 리미티드 상태/모드 전이 방법 및 장치
JP5533382B2 (ja) * 2010-07-14 2014-06-25 株式会社リコー プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体
JP5759196B2 (ja) * 2011-02-09 2015-08-05 キヤノン株式会社 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
EP2777358B1 (en) 2011-11-11 2018-01-10 BlackBerry Limited Method and apparatus for user equipment state transition
CN103294562B (zh) * 2012-02-23 2017-03-01 纬创资通股份有限公司 双操作系统共用周边装置的方法以及电子装置
JP2014106570A (ja) * 2012-11-22 2014-06-09 Ricoh Co Ltd 情報処理装置、ジョブ処理制御方法、及びジョブ処理制御プログラム
US9760316B2 (en) * 2015-03-27 2017-09-12 Konica Minolta Laboratory U.S.A., Inc. Method and system for managing software version compatibility amongst devices in a multi-device network environment

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4896269A (en) * 1988-02-29 1990-01-23 General Electric Company Job shop scheduling and production method and apparatus
US5467434A (en) * 1992-08-28 1995-11-14 Xerox Corporation Apparatus and method for determining printer option availability and representing conflict resolution in a combination of print job selections
US5402527A (en) * 1993-04-23 1995-03-28 Xerox Corporation Apparatus and method for determining the page description language in which a print job is written
US6408009B1 (en) * 1993-06-04 2002-06-18 Illinois Institute Of Technology Method and apparatus for detecting collisions on and controlling access to a communications channel
JP2001514776A (ja) * 1997-02-27 2001-09-11 シーベル システムズ,インコーポレイティド ローカルな修正を組み込むソフトウェア配布の連続レベル移送の方法
US6067637A (en) * 1997-05-16 2000-05-23 At&T Corp Data reduction technique for rule based systems
US6363411B1 (en) * 1998-08-05 2002-03-26 Mci Worldcom, Inc. Intelligent network
US6449622B1 (en) * 1999-03-08 2002-09-10 Starfish Software, Inc. System and methods for synchronizing datasets when dataset changes may be received out of order
US6975417B1 (en) * 2000-02-22 2005-12-13 Xerox Corporation Dynamic addition of programming conflicts for programming conflict checking
JP3814479B2 (ja) 2000-12-22 2006-08-30 キヤノン株式会社 情報処理装置及び情報処理方法、画像形成装置、記憶媒体
EP1211594A3 (en) * 2000-11-30 2006-05-24 Canon Kabushiki Kaisha Apparatus and method for controlling user interface
JP3833067B2 (ja) 2000-12-28 2006-10-11 キヤノン株式会社 ユーザインタフェース制御装置および方法ならびに記憶媒体
JP3673714B2 (ja) 2000-11-30 2005-07-20 キヤノン株式会社 ユーザインタフェース制御装置および方法ならびに記憶媒体
JP3733290B2 (ja) 2000-12-28 2006-01-11 キヤノン株式会社 印刷制御装置および印刷制御方法および記憶媒体
US7218976B2 (en) * 2001-04-27 2007-05-15 Canon Kabushiki Kaisha User interface control apparatus and method
JP4366027B2 (ja) 2001-04-27 2009-11-18 キヤノン株式会社 ユーザインタフェース制御装置および方法
JP3697176B2 (ja) 2001-04-27 2005-09-21 キヤノン株式会社 ユーザインタフェース制御装置および方法
JP2003091373A (ja) 2001-09-14 2003-03-28 Canon Inc 情報管理装置、情報処理装置、情報処理システム、情報処理方法、記録媒体及びプログラム
JP5062932B2 (ja) 2001-09-19 2012-10-31 キヤノン株式会社 ユーザインタフェース制御装置及び方法及びコンピュータプログラム及び記憶媒体
JP2003296063A (ja) 2002-03-29 2003-10-17 Canon Inc プリントシステム、情報処理装置、情報処理方法、コンフリクト制御方法、記録媒体及びプログラム
JP3740438B2 (ja) 2002-05-31 2006-02-01 キヤノン株式会社 印刷制御方法、印刷制御装置、プログラム及びコンピュータ可読の記憶媒体

Also Published As

Publication number Publication date
US7475407B2 (en) 2009-01-06
US20040216144A1 (en) 2004-10-28
JP2004310754A (ja) 2004-11-04

Similar Documents

Publication Publication Date Title
JP4350565B2 (ja) 情報処理装置および方法
JP3720740B2 (ja) 分散印刷システム、分散印刷制御方法、記憶媒体、及びプログラム
JP3991836B2 (ja) 画像形成装置
US7328224B2 (en) Apparatus and method for controlling user interface
JP4186678B2 (ja) 印刷ジョブ管理装置およびこれに用いられるプログラム並びに印刷ジョブ管理方法
JP4659588B2 (ja) 進行状況表示装置及び進行状況表示方法
US7808666B2 (en) Data processing device, print setting processing method, storage device for storing computer-readable program and program
US7817294B2 (en) Data processing apparatus, print setting processing method, storing medium storing computer-readable program therein, and program
CN104951257A (zh) 信息处理设备及其控制方法
JP2011118860A (ja) 認証方法、情報処理装置、及びコンピュータプログラム
KR20090101767A (ko) 필터를 동적으로 호출 가능한 인쇄방법, 상기 인쇄방법을수행할 수 있는 프로그램이 수록된 기록매체 및 호스트장치
JP6784538B2 (ja) 情報処理装置、方法およびプログラム
JP4850739B2 (ja) 情報処理装置及びその制御方法、コンピュータプログラム、画像形成システム
JP4586057B2 (ja) 画像処理装置、画像処理方法および記録媒体
JP2006209309A (ja) 印刷システム
JP2000089923A (ja) 印刷制御装置及び印刷制御方法
JP5025684B2 (ja) 制御装置及び方法、並びにプログラム
JPH09174956A (ja) プリンタ制御装置
JP3733290B2 (ja) 印刷制御装置および印刷制御方法および記憶媒体
JP4366027B2 (ja) ユーザインタフェース制御装置および方法
JP3697176B2 (ja) ユーザインタフェース制御装置および方法
JP5106660B2 (ja) 制御装置及び方法、並びにプログラム
JP2007288366A (ja) データ処理装置及びそのデータ登録方法
JP3833067B2 (ja) ユーザインタフェース制御装置および方法ならびに記憶媒体
JP2008059484A (ja) 情報処理装置、ドライバ処理方法、記憶媒体、プログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070312

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090708

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090717

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090722

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4350565

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120731

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130731

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees