JP5966523B2 - 情報処理装置、プログラム及び記録媒体 - Google Patents

情報処理装置、プログラム及び記録媒体 Download PDF

Info

Publication number
JP5966523B2
JP5966523B2 JP2012081728A JP2012081728A JP5966523B2 JP 5966523 B2 JP5966523 B2 JP 5966523B2 JP 2012081728 A JP2012081728 A JP 2012081728A JP 2012081728 A JP2012081728 A JP 2012081728A JP 5966523 B2 JP5966523 B2 JP 5966523B2
Authority
JP
Japan
Prior art keywords
program
extension
print data
message
extension program
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.)
Active
Application number
JP2012081728A
Other languages
English (en)
Other versions
JP2013210921A (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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012081728A priority Critical patent/JP5966523B2/ja
Publication of JP2013210921A publication Critical patent/JP2013210921A/ja
Application granted granted Critical
Publication of JP5966523B2 publication Critical patent/JP5966523B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置、プログラム及び記録媒体の分野に関する。
PC(Personal Computer)上、プリンタドライバを用いた印刷処理において、プリンタドライバがアプリケーション等のデータをプリンタの処理可能なプリンタ言語データへと変換すると、ポートモニタを介し、ネットワークへ出力される。ポートモニタは、通常の場合、OS(Operating System)に標準装備され、例えば、IEEE1284(パラレルポート)、IEEE1394(シリアルポート)、TCP/IP(LANポート)などを通じて、プリンタにその命令を渡す一つのdllファイルとして実装される。
ここで、例えば、上述したようなOS標準の通信方法以外の通信方法(例えば、他の通信ポートでの通信、HTTPSでの通信や独自プロトコル)を通じてデータを出力したい場合、OS標準のポートモニタは対応できないことから、ポートモニタそのものに独自の処理を実装する必要がある(例えば、特許文献1参照)。
しかしながら、ポートモニタは、インストール処理、アンインストール処理が複雑なプログラムであるため、独自の処理を実装したポートモニタを適用する場合、その処理が煩雑になってしまうという傾向がある。そのため、ユーザは、機能拡張などに伴って独自処理が実装されたポートモニタをインストールしたり、ロジックの追加やバグフィックスなどに伴ってポートモニタをアップデートする場合、PCに対し、煩雑なインストール作業やバージョンアップ作業(例えば、レジストリ操作等)を行わなければならないという問題があった。
本発明では上記のような問題に鑑みて、ポートモニタに独自の処理を実装する場合、開発者側の実装作業及び利用者側のインストール作業の簡素化を実現する情報処理装置、プログラム及び記録媒体を提供することを目的とする。
上記課題を解決するため、本発明に係る情報処理装置は、印刷データの出力を行う情報処理装置であって、少なくとも前記印刷データの出力動作に関する拡張プログラムを格納した格納手段と、前記印刷データの出力に伴って、前記出力に関するメッセージを送信するとともに前記印刷データを所定の記憶領域に記憶する印刷データ処理手段と、前記印刷データ処理手段により送信されたメッセージを受信すると、前記格納手段から、該メッセージに対応する拡張プログラムを特定し、特定した該拡張プログラムを実行することにより、前記所定の記憶領域に記憶された印刷データに対する処理を行う拡張プログラム実行手段と、前記格納手段に新たな拡張プログラムを追加するとともに、該新たな拡張プログラムに対応するメッセージと含む拡張情報を、前記拡張プログラム実行手段に通知する拡張プログラム追加手段とを有する。
また、上記課題を解決するため、本発明に係るプログラムは、印刷データの出力を行う情報処理装置に、少なくとも前記印刷データの出力動作に関する拡張プログラムを格納した格納手段と、前記印刷データの出力に伴って、前記出力に関するメッセージを送信するとともに前記印刷データを所定の記憶領域に記憶する印刷データ処理手段と、前記印刷データ処理手段により送信されたメッセージを受信すると、前記格納手段から、該メッセージに対応する拡張プログラムを特定し、特定した該拡張プログラムを実行することにより、所定の記憶領域に記憶された印刷データに対する処理を行う拡張プログラム実行手段と、前記格納手段に新たな拡張プログラムを追加するとともに、該新たな拡張プログラムに対応するメッセージと含む拡張情報を、前記拡張プログラム実行手段に通知する拡張プログラム追加手段として機能させる。
また、上記課題を解決するため、本発明に係る記録媒体は、前記プログラムを記録したコンピュータ読み取り可能な記録媒体である。
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、などに適用したものも本発明の態様として有効である。
本発明によれば、ポートモニタに独自の処理を実装する場合、開発者側の実装作業及び利用者側のインストール作業の簡素化を実現する情報処理装置、プログラム及び記録媒体を提供することができる。
本実施形態に係るプリンタシステム100のネットワーク構成図を示す。 本実施形態に係るPC1の一実施形態の主要構成を示すハードウェア構成図である。 従来例に係るPC1の機能ブロック図の一例を示す。 本実施形態に係るPC1の機能ブロック図の一例を示す。 本実施形態に係る所定ファイル一式及び拡張プログラムのインストール説明図である。 本実施形態に係るポートモニタ105及び常駐プログラム106間の動作説明図である。 本実施形態に係る常駐プログラム106と拡張プログラム間の動作説明図である。 本実施形態に係る拡張プログラムの動作説明図である。 PC1における情報処理を説明するシーケンス図である。 他の実施例に係る動作説明図である。
以下、本発明を実施するための形態を各実施形態において図面を用いて説明する。
[システム構成]
(ネットワーク構成)
図1は、本実施形態に係るプリンタシステム100のネットワーク構成図を示す。本実施形態に係るプリンタシステム100は、PC1、プリンタ2、クラウドストレージ3を含む。
PC1は、ユーザの利用するクライアント端末である。例えば、PC1は、ユーザ操作に従って、パラレル、シリアル、又はLANを含むネットワークを介し、プリンタに対し、印刷データを送信することで、印刷データを印刷できる。また、本実施形態において、PC1は、ユーザ操作に従って、ネットワークを介し、クラウド上に設けられたクラウドストレージ3に、印刷データをアップロードする。なお、PC1は、あくまで情報処理装置の一例であるため、例えば、近年の普及が著しいスマートデバイス、携帯電話など、携帯性に優れた情報処理装置であってもよい。
プリンタ2は、ネットワークを介し、PC1からの印刷データを受信し、その印刷データを用紙に印刷する。また、プリンタ2は、印刷装置の一例であって、コピー、スキャナ、プリンタ、ファックス、さらに文書蓄積機能などの複数の機能を一つの筐体内に収納した画像形成装置(MFP:Multi-Function Peripheral)等によっても実現されうる。
クラウドストレージ3は、例えば、インターネット上に設けられ、クラウドプリンティング・サービスの提供者によって管理・運営される記憶装置である。クラウドストレージ3には、長期間、データを保存しておくことができ、ユーザは、好きなときにいつでもデータを取り出したり、写真に印刷したりできる。
ここで、本実施形態において、PC1は、プリンタ2で印刷データを印刷する場合、併せて(同時に)、その印刷データを保存しておきたいという要望に基づいて、インターネット上のクラウドストレージ3にその印刷データをアップロードし、保存しておくという運用を実施する。
但し、OS標準のポートモニタでは、プリンタ2で印刷データを印刷すると同時に、クラウドストレージ3に印刷データをアップロードできない。このため、本実施形態において、PC1は、後述する新たなポートモニタ、常駐プログラム、拡張プログラム等々をPC1にインストールすることにより、プリンタ2で印刷データを印刷すると同時に、クラウドストレージ3に対する印刷データのアップロードを実現する(詳細後述)。
また、クラウドプリンティング・サービス側の都合により、クラウド上のストレージに対するAPI仕様の変更が実施された場合には、PC1は、API仕様対応の拡張プログラムだけをPC1にアップデートすることにより、引き続き、API仕様の変更後も、プリンタ2で印刷データを印刷すると同時に、クラウドストレージ3に対する印刷データのアップロードを実現しうる(詳細後述)。
なお、OSのポートモニタによって実現すべく、このような独自の処理をOSのポートモニタに実装したとすると、上述したように、ユーザは、PC1に対し、その独自の処理が実装されたポートモニタの煩雑なインストール作業を行わなければならない。また、クラウド上のストレージに対するAPI仕様の変更が実施された場合、このようなAPI仕様の変更をOSのポートモニタにさらに実装させたとすると、ユーザは、あらためて、その度、PC1に対し、そのポートモニタの煩雑なバージョンアップ作業を行わなければならないという問題がある。
(ハードウェア)
図2は、本実施形態に係るPC1の一実施形態の主要構成を示すハードウェア構成図である。PC1は、主要な構成として、CPU11、ROM12、RAM13、HDD14、記憶媒体読取装置15、入力装置16、表示装置17、及び通信装置18を含む構成である。
CPU11は、マイクロプロセッサ及びその周辺回路から構成され、装置全体を制御する回路である。また、ROM12は、CPU11で実行される所定の制御プログラムを格納するメモリであり、RAM13は、CPU11がROM12に格納された所定の制御プログラムを実行して各種の制御を行うときの作業領域として使用するメモリである。HDD14は、汎用のOS、各種プログラムを含む各種情報を格納する装置であり、不揮発性の記憶装置である。記憶媒体読取装置15は、CDやDVD、USBメモリ等の外部記憶媒体から情報を入力する装置である。
入力装置16は、ユーザが各種入力操作を行うための装置である。入力装置16は、マウス、キーボード、表示装置17の表示画面上に重畳するように設けられたタッチパネルスイッチなどを含む。表示装置17は、各種データを表示画面に表示する装置である。例えばLCD(Liquid Crystal Display)、CRT(Cathode Ray Tube)などから構成される。通信装置18は、ネットワークを介して他の機器との通信を行う装置である。有線ネットワークや無線ネットワークなど含む各種ネットワーク形態に応じた通信をサポートする。
(機能)
次に、本実施形態に係るPC1の主要機能構成について説明するが、その前に、従来例に係るPC1の主要機能構成について説明する。
図3は、従来例に係るPC1の機能ブロック図の一例を示す。図に示されるように、本実施形態に係るPC1は、アプリケーション101、OS102、プリンタドライバ103、OSのポートモニタ104を含む。
アプリケーション101は、文書作成・閲覧ソフト、画像描画・閲覧ソフトなどにより実現され、OS102に対して、印刷指示や、印刷データの送信を行う。
OS102は、PC1に搭載されるOSである。図例のものは、例えばWindows(登録商標)を適用したときの実施形態を示す。
プリンタドライバ103は、OS102から印刷指示、印刷データを受け取り、プリンタが解釈可能な印刷データを生成する。例えば、このプリンタドライバ103は、プリンタ2の製造元によって提供され、PC1に予めインストールされる。
OSのポートモニタ104は、OS102に標準装備され、例えば、IEEE1284(パラレルポート)、IEEE1394(シリアルポート)、TCP/IP(LANポート)、USB、Bluetooth(登録商標)などの通信手段により、通信制御を行い、目的のハードウェア(プリンタ等)へデータを送信するためのプログラムである。プリンタドライバ103が処理した印刷データは、ポートモニタ104を介し、プリンタへ送信される。
なお、プリンタドライバ103のインストール及び設定に際しては、プリンタドライバ103のプログラム以外に、必要に応じて関連するファイルのインストールが行なわれる。ここで、プリンタに関連するファイルは、例えば、ポートモニタも含まれうる。ポートモニタは、OS標準のものもあるが、プリンタの製造元がプリンタドライバと共に提供していることも多い。よって、ポートモニタ104は、OS102に標準装備されるもののほか、プリンタドライバ103のインストール時に併せてインストールされるポートモニタであってもよい。但し、この場合でも、製造元から提供されたポートモニタ104は、OS102に標準装備されるのと同等の通信手段(例えば、上述のIEEE1284やIEEE1394等々)により、通信制御を行うものである。
また、製造元から提供されたポートモニタに、上述のような独自の処理をポートモニタに実装した場合であっても、ユーザは、PC1に対し、その独自の処理された製造元提供のポートモニタをPC1にインストールするにあたり、煩雑なインストール作業を行わなければならない。また、クラウド上のストレージに対するAPI仕様の変更が実施された場合、製造元は、このようなAPI仕様の変更を、製造元提供のポートモニタに実装(反映)しなくてはならない。またこのとき、ユーザは、その度に、PC1に対し、そのポートモニタの煩雑なバージョンアップ作業を行わなければならない。
次に、本実施形態に係るPC1の主要機能構成について説明する。図4は、本実施形態に係るPC1の機能ブロック図の一例を示す。図に示されるように、本実施形態に係るPC1は、アプリケーション101、OS102、プリンタドライバ103、OSのポートモニタ104に加え、さらに、ポートモニタ105、常駐プログラム106、拡張プログラム格納部107、印刷データ格納部108を含む。
ここで、本実施形態に係るポートモニタ105、常駐プログラム106、拡張プログラム格納部107、印刷データ格納部108は、所定ファイル一式に含まれ、この所定ファイル一式を、PC1にインストールすることにより、PC1に実装される。
PC1のユーザ(利用者)は、所定ファイル一式を、例えば、プリンタの製造元のウェブサイトからダウンロードしてインストールしたり、又は、配布されたCDやDVDなどの記録媒体からインストールする。所定ファイル一式は、プリンタの製造元から提供される場合、プリンタドライバ103に付随して、プリンタに関連するファイルとして提供されうる。
本実施形態に係るポートモニタ105は、例えば、プリンタの製造元等によって提供され、PC1にインストールされるため、少なくとも、1回は、PC1に対し、このポートモニタのインストール作業を行う必要がある。但し、後述するように、1回インストールされた以降は、ポートモニタの機能拡張に伴っても、再度ポートモニタ105をインストールする必要はない。
というもの、このポートモニタ105は、OSのポートモニタ104とは異なり、PCからプリンタなどのハードウェアにデータを転送する通信処理は行わない。本実施形態において、通信処理は、ポートモニタに代わって、常駐プログラム106の指示により、拡張プログラムで行われる。
通常、ポートモニタは、関数群から形成されたライブラリである。ライブラリのため、呼び出し側(OS102やプリンタドライバ103)からの要求に基づき、所定の処理を行う。ポートモニタの関数群は、それぞれ印刷処理で必要な処理で形成されており、必要に応じてOS経由で呼び出しが行われる。
本実施形態に係るポートモニタ105(印刷データ処理手段)は、これら関数の呼び出しがなされたとき、関数を自ら実行し印刷データの通信処理を行う代わりに、常駐プログラムに対してメッセージを送信する。但し必要最低限のポートモニタとして行わなければならない処理を行う。一方、メッセージを受信した常駐プログラム106は、受信したメッセージに応じた拡張プログラムを呼び出す。
常駐プログラム106(拡張プログラム実行手段)は、ポートモニタ105とメッセージを受信すると、拡張プログラムを実行することで、ポートモニタ105の行うべき印刷データの通信処理を代行する。常駐プログラム106は、予め設定ファイルを有し、設定ファイルとポートモニタ105からのメッセージとに基づいて、通信処理を行わせるべき拡張プログラムを特定する。常駐プログラム106は、特定した拡張プログラムに対し、メッセージを送信することで、本実施形態おける通信処理は、その拡張プログラムで行われる。
拡張プログラム格納部107(格納手段)は、印刷データの出力動作を含む拡張プログラムが一以上格納される。拡張プログラム格納部107には、プリンタの製造元や、クラウドプリンティング・サービスの提供者などから提供された拡張プログラムが追加的にインストールされうる。
印刷データ格納部108は、ポートモニタ105が、プリンタドライバ103から受け取った印刷データを一時的に格納する。PC1の補助記憶装置14(HDD等)により実現できる。
以上、PC1の主要機能構成である。これらの機能は、実際には装置のCPU11が実行するプログラムによりコンピュータに実現させるものである。
なお、通常、OSのポートモニタ104は、アンインストール(削除)できないため、ポートモニタ105をインストール(追加)した後、形式上であっても、OSのポートモニタ104はそのまま残しておくこととする。
[インストール]
図5は、本実施形態に係る所定ファイル一式及び拡張プログラムのインストール説明図である。上述したように、本実施形態に係るポートモニタ105、常駐プログラム106、拡張プログラム格納部107、印刷データ格納部108は、所定ファイル一式に含まれ、この所定ファイル一式を、PC1にインストールすることにより、PC1に実装される。
また、本実施形態に係る拡張プログラムは、所定ファイル一式がインストールされた後に、インストーラがインストールすることにより、PC1に実装される。例えば、ユーザは、PC1に対し、クラウドプリンティング・サービスのウェブサイトから、拡張プログラム格納部107に格納される拡張プログラム(インストーラ含む)をダウンロードしてインストールする。つまり、所定ファイル一式のインストールにより、PC1に一旦、ポートモニタ105、常駐プログラム106、拡張プログラム格納部107、印刷データ格納部108が実装された後、PC1に対し、個々の拡張プログラムを随時インストールできる。
図に示されるように、ポートモニタ105自体は、OSで仕様が決められたプログラムのため、通常のOS操作によって、インストールすることができる。即ち、ポートモニタ105のポートモニタプログラムは、ユーザのOS操作によって、インストールが実行され、OSで決められたSystemファイル格納場所にインストールされる。
一方、拡張プログラムは、OSで仕様が決められたプログラムでないために、別途、拡張プログラムをインストールするためのインストールプログラムであるインストーラ(拡張プログラム追加手段)により、インストールを実行する。インストーラは、拡張プログラムを、ポートモニタ105が独自管理している拡張プログラム格納場所(拡張プログラム格納部107)にファイルをインストールする。
また、拡張プログラムは、拡張プログラム自体に加え、拡張情報が含まれており、インストーラは、拡張情報に基づいて設定ファイルを更新する。具体的に、拡張情報には、拡張プログラム名、対応する関数(メッセージ)など、設定ファイルに登録に必要な情報が記述されている。インストーラは、拡張プログラムをインストールしたときに、併せて、この拡張情報に基づき、インストールした拡張プログラムに対応する関数と、対応する拡張プログラム(複数可)とを、順序情報を含めて、設定ファイルに登録する(詳細後述)。常駐プログラム106は、設定ファイルを参照して動作するため、インストーラが拡張情報を設定ファイルに反映させることにより、設定ファイルが更新され、ポートモニタ105からのメッセージに応じて、起動すべき拡張プログラムを特定することができる。
以上、PC1に対し、例えば、所定ファイル一式、及び拡張プログラム(例えば、「Program1.dll」〜「Program4.dll」)がインストールされることにより、図4の機能が実現される。
[動作概要]
まず、動作概要を説明する。
(ポートモニタ105と常駐プログラム106)
図6は、本実施形態に係るポートモニタ105及び常駐プログラム106間の動作説明図である。ポートモニタは、図のような関数群から形成されたライブラリである。例えば、StartDocPort()は、文書の印刷を開始するときに呼び出される。EndDocPort()は、文書の印刷を終了するときに呼び出される。WritePort()は、印刷データを書き込むときに呼び出される関数である。
ポートモニタは、呼び出し側(OS102やプリンタドライバ103)からの要求に基づき、所定の処理を行う。ポートモニタの関数群は、それぞれ印刷処理で必要な処理で形成されており、必要に応じて、OS102経由で呼び出しが行われる。しかしながら、本実施形態に係るポートモニタ105は、OSのポートモニタ104のように、PCからプリンタなどのハードウェアにデータを転送する通信処理は行わない。
即ち、本実施形態に係るポートモニタ105は、呼び出し側からこれら関数が呼び出されると、常駐プログラム106に対し、呼び出された関数をメッセージとして送信(転送)する。また、ポートモニタ105は、必要最低限のポートモニタとして行わなければならない処理を行う。
なお、ポートモニタ105は、プリンタドライバ103から印刷データを受信するので、受信した印刷データに対し、固有のファイル名を付してから、印刷データ格納部108へ格納しておく。ファイル名固有部分の文字列情報は、例えば、OS102のシステムタイマーの数値や、ランダムな数値など、特に一致する確率が極めて低い数字を生成して利用することができる。
(常駐プログラム106と拡張プログラム)
図7は、本実施形態に係る常駐プログラム106と拡張プログラム間の動作説明図である。常駐プログラム106は、ポートモニタ105からのメッセージを受信すると、設定ファイルに基づいて、そのメッセージに応じた拡張プログラムを呼び出して実行する。
図に示されるように、常駐プログラム106は、設定ファイルを有する。設定ファイルは、上述したように、拡張プログラムがインストールされる度に、新たにインストールされた拡張プログラムに関する記述が追加更新される。
具体的に、設定ファイルには、例えば、ポートモニタ105からのメッセージ(名)と、各メッセージ(名)に対応して呼び出すべき拡張プログラム(名)との組み合わせで記述される。また、2以上の拡張プログラムを呼び出す場合は、「,」(カンマ)区切りで、拡張プログラムが順番に並べられて記述される。
具体的に、図例の設定ファイルの場合、メッセージ「StartDocPort」(関数)に対応する処理は、「Program1.dll」により実現される処理である。また、同様に、「WritePort」に対応する処理は、「Program2.dll」及び「Program3.dll」により実現され、「EndPort」に対応する処理は、「Program4.dll」により実現される処理である。
従って、この場合、常駐プログラム106は、例えば、ポートモニタ105からのメッセージ「StartDocPort」を受信すると、設定ファイルに基づいて、そのメッセージに応じた拡張プログラム「Program1.dll」を特定し、これら拡張プログラムの呼び出しを行う。併せて、常駐プログラム106は、その拡張プログラムに対し、ポートモニタ105から送信されたメッセージ、印刷データ格納部108に格納された印刷データのファイル名をそのまま渡す。
(拡張プログラム)
図8は、本実施形態に係る拡張プログラムの動作説明図である。本実施形態に係る常駐プログラム106は、受信したメッセージを上述の設定ファイルを参照し、特定された拡張プログラム(メッセージ関数に応じて、例えば、「Program1.dll」〜「Program4.dll」)を呼び出す。併せて、拡張プログラムに対し、ポートモニタ105から送信されたメッセージ、印刷データ格納部108に格納された印刷データのファイル名をそのまま渡す。印刷データは、拡張プログラムにより出力されるためである。
なお、常駐プログラム106側では、メッセージの解析などは一切行わない。これは、機能や、メッセージが追加されても、常駐プログラムに可能な限り変更が入らないようにするためである。
ここで、上述の如く、本実施形態において、PC1は、プリンタ2で印刷データを印刷する場合、併せて(同時に)、その印刷データを保存しておきたいという要望に基づいて、インターネット上のクラウドストレージ3にその印刷データをアップロードし、保存しておくという運用を実施する。
このため、拡張プログラムは、常駐プログラム106から渡された印刷データのファイル名を参照して、印刷データのファイルを取得する。そして、例えば、クラウド上のクラウドストレージ3にアクセスするためのAPIを用い、クラウドストレージ3に対して、当該ファイルをアップロードする。また、プリンタ2に対して、当該ファイルを出力する。
なお、本実施形態を適用しない場合、例えば製造元の開発者は、OSのポートモニタ104(又は製造元提供のポートモニタ)に対して、クラウド上のクラウドストレージ3及びプリンタ2に対し、ファイル(印刷データ)をアップロードする処理を実装する必要がある。そして、この場合、ユーザは、OSのポートモニタ104を一旦削除したうえ、上述の処理を実装させた新たなポートモニタ104(又は製造元提供のポートモニタ)をインストールする作業が必要である。
そしてまた、クラウドプリンティング・サービス側の都合上、クラウドストレージ3に対するAPI仕様の変更などにより、頻繁に処理が変わる場合には、例えば製造元の開発者は、再び、OSのポートモニタ104(又は製造元提供のポートモニタ)に対して、クラウド上のクラウドストレージ3及びプリンタ2に対し、ファイル(印刷データ)をアップロードする処理を実装する必要がある。そして、この場合、ユーザは、何度も煩雑な処理でポートモニタ104を削除及びアップデート作業を繰り返さなければならない。
一方、本実施形態を適用すれば、例えば製造元の開発者は、本実施形態に係るポートモニタ105を開発し、ユーザは、本実施形態に係るポートモニタ105をインストールする作業が1回は必要である。しかしながら、それ以降は、クラウド上のクラウドストレージ3に対するAPI仕様の変更などが発生した場合であっても、開発者は、API仕様に対応した拡張プログラムのみを開発(改良)すればよい。また、ユーザは、PC1上、その拡張プログラムのみをアップデートすればよい。即ち、開発者及びユーザは、拡張プログラムのみを差し替えれば(又は追加すれば)、クラウドストレージ3にアクセスするためのAPI仕様の変更などに追従することができる。
このように、開発者サイドからすると、拡張プログラムのみを開発する作業(例えば、API対応)は、OSのポートモニタの開発作業に比べ、容易である。また、ユーザサイドからすると、PC1上、拡張プログラムのみを差し替え作業は、ポートモニタ自体のアップデート作業に比べ、容易である。
また、例えば、クラウド上のクラウドストレージ3に対するアップロードは、本来ポートモニタが行う機能であるにも関わらず、ポートモニタ自体への実装作業及びアップデートは不要である。このため、ユーザも、ポートモニタのアップデートに伴う煩雑なアップデート作業は不要である。
以上のように、本実施形態においては、本来ポートモニタが行うべき処理を、メッセージ通信によって、別の拡張プログラムに代行処理させる。このため、API仕様変更など、ポートモニタが行うべき処理に変更が生じた場合であっても、バージョンアップが煩雑なポートモニタを更新することなく、拡張プログラムの更新のみという容易な作業により、対応することが可能となる。
[情報処理]
以下、本実施形態に係るPC1における情報処理・動作を説明する。図9は、PC1における情報処理を説明するシーケンス図である。図に示されるように、PC1の情報処理は、アプリケーション101、OS102、プリンタドライバ103、ポートモニタ105、常駐プログラム106、拡張プログラム間の動作により実現される。以下、図に沿って説明する。
S1:アプリケーション101は、ユーザからの印刷操作を受けて、OS102に対し、印刷指示を送信する。
S2:OS102は、印刷指示を受信すると、プリンタドライバ103及びポートモニタ105に対し、印刷指示を送信する。これは後にOS102から印刷データが送信されるので、準備を促す為の指示である。
S3:ポートモニタ105は、常駐プログラム106に対し、印刷指示に対応するメッセージを送信する。ここでは、例えば、メッセージ「StartDocPort」が送信される。
S4:常駐プログラム106は、設定ファイルを参照し、メッセージに対応する拡張プログラム(名)を特定する。ここで、設定ファイル(例えば、図7)を参照すると、メッセージ「StartDocPort」に対応する拡張プログラムは、「Program1.dll」である。
S5:常駐プログラム106は、特定した拡張プログラムを呼び出して、特定した拡張プログラム(名)に対し、メッセージを送信するとともに、拡張プログラムの実行を指示する。ここで、常駐プログラム106は、拡張プログラム「Program1.dll」に対し、メッセージ「StartDocPort」を送信するとともに、同拡張プログラムの実行を指示する。
S6:拡張プログラムは、メッセージを受信すると、メッセージに従って、処理を実行する。ここでは、拡張プログラム「Program1.dll」が実行される。
S7:次に、アプリケーション101は、OS102に対し、印刷対象のデータを送信する。
S8:OS102は、印刷対象のデータを受信すると、プリンタドライバ103に対し、印刷対象のデータを送信する。
S9:プリンタドライバ103は、プリンタが解釈可能な印刷データを生成する。また、これをOS102に返送する。
S10:OS102は、印刷データを受信すると、ポートモニタ105に対し、印刷データを送信する。
S11:ポートモニタ105は、印刷データを受信すると、印刷データに固有のファイル名(例えば、file0001.prn)を付してから、印刷データ格納部108(例えば、c:\temp)に、その印刷データ(例えば、c:\temp\file0001.prn)を格納する。
S12:ポートモニタ105は、常駐プログラム106に対し、印刷データ受信に対応するメッセージを送信する。ここでは、例えば、メッセージ「WritePort」が送信される。
S13:常駐プログラム106は、設定ファイルを参照し、メッセージに対応する拡張プログラム(名)を特定する。ここで、設定ファイル(例えば、図7)を参照すると、メッセージ「WritePort」に対応する拡張プログラムは、「Program2.dll」及び「Program3.dll」である。
S14:常駐プログラム106は、特定した拡張プログラムを呼び出して、特定した拡張プログラム(名)に対し、メッセージを送信するとともに、拡張プログラムの実行を指示する。ここで、常駐プログラム106は、拡張プログラム「Program2.dll」及び「Program3.dll」に対し、順番にメッセージ「WritePort」を送信するとともに、同拡張プログラムの実行を指示する。なお、常駐プログラム106は、複数の拡張プログラムを呼び出す場合、設定ファイル記述の順番に従い、順次メッセージ「WritePort」を送信することもできる。また、1番目の拡張プログラムの処理結果を、2番目の拡張プログラムが使用する場合、まず1番目の拡張プログラムにメッセージ「WritePort」を送信し、1番目の拡張プログラムの処理結果を得てから、その処理結果とともに、2番目の拡張プログラムにメッセージ「WritePort」を送信するよう実装することもできる。
S15:拡張プログラムは、メッセージを受信すると、メッセージに従って、処理を実行する。ここでは、拡張プログラム「Program2.dll」及び「Program3.dll」が実行される。
S16:最後に、アプリケーション101は、OS102に対し、印刷完了(アプリケーション101としての印刷完了宣言)を送信する。
S17:OS102は、印刷指示を受信すると、プリンタドライバ103及びポートモニタ105に対し、印刷完了を送信する。
S18:ポートモニタ105は、常駐プログラム106に対し、印刷完了に対応するメッセージを送信する。ここでは、例えば、メッセージ「EndDocPort」が送信される。
S19:常駐プログラム106は、設定ファイルを参照し、メッセージに対応する拡張プログラム(名)を特定する。ここで、設定ファイル(例えば、図7)を参照すると、メッセージ「EndDocPort」に対応する拡張プログラムは、「Program4.dll」である。
S20:常駐プログラム106は、特定した拡張プログラムを呼び出して、特定した拡張プログラム(名)に対し、メッセージ(及びファイル格納先及びファイル名)を送信するとともに、拡張プログラムの実行を指示する。ここで、常駐プログラム106は、拡張プログラム「Program4.dll」に対し、メッセージ「EndDocPort」を、ファイル格納先及びファイル名(例えば、c:\temp\file0001.prn)とともに、送信する。
S21:拡張プログラムは、メッセージを受信すると、メッセージに従って、処理を実行する。ここでは、印刷データ格納部108(例えば、c:\temp)に格納される印刷データ(file0001.prn)が、拡張プログラム「Program4.dll」によって実行される。
ここで、「Program1.dll」、「Program2.dll」、「Program3.dll」、「Program4.dll」は、プリンタ2に印刷データを出力するとともに、クラウドストレージ3に対しアップロードするためにインストールされた拡張プログラムである。これにより、印刷データ(file0001.prn)は、PC1から、プリンタ2に出力されるとともに、クラウドストレージ3に対しアップロードされる。なお、PC1のアプリケーション101、OS102、プリンタドライバ103からは、通常の出力と異なることなく、ポートモニタ105を介して、印刷データを出力しているように見える(実質的には、これら拡張プログラムによる)。
以上のように、本実施形態においては、ポートモニタ105は、本来ポートモニタが行うべき処理を、メッセージ通信によって、別の拡張プログラムに代行処理させる。このため、API仕様変更など、ポートモニタが行うべき処理に変更が生じた場合であっても、バージョンアップが煩雑なポートモニタを更新することなく、拡張プログラムの更新のみという容易な作業により、対応することが可能となる。
[他の実施例]
次に、他の実施例について説明する。他の実施例においても、ポートモニタは、自身が直接、拡張された処理を行わないという特徴を活かした印刷処理例を示す。
ポートモニタは、印刷処理の過程で動作するライブラリであり、OSの制御下にある。このため、通常のアプリケーションと比較して、セキュリティの観点から出来ることが限定されている。その代表的な機能が「GUIを表示する」という機能である。この制限は、ポートモニタだけではなく、プリンタドライバ(及び言語モニタ)でも同様である。
一般的に、Windows(登録商標)のOSでは、印刷中に動作する各プログラム(プリンタドライバ(言語モニタ)、ポートモニタ等)は、GUIを処理途中で表示することはできない。
但し、例外な場合に限り、GUIを表示することが許されるが、実装としては、セキュリティ回避や、OSによっては動作しない非同期によるGUI表示方法など、様々な問題があり、複数種類のOSで、同じ方法を用いて安定的にGUI表示を伴うことは困難であるのが現実である。ここでは、このような状況に鑑み、通常では困難なGUI表示を伴う印刷処理を実現する。
図10は、他の実施例に係る動作説明図である。本図は、上述の図6〜8をまとめた図となっている。また、拡張プログラム格納部107において、さらに新たな拡張プログラム5がインストールされている。またこれに伴い、常駐プログラム106が参照する設定ファイルにおいて、「WritePort= Program5.dll,Program2.dll,Program3.dll」と記述されている。
上述の例では、PC1は、プリンタ2で印刷データを印刷する場合、併せて(同時に)、その印刷データを保存しておきたいという要望に基づいて、インターネット上のクラウドストレージ3にその印刷データをアップロードし、保存しておくという運用を実施したものであった。一方ここでは、PC1は、プリンタ2で印刷データを印刷する場合、インターネット上のクラウドストレージ3にその印刷データをアップロードする。また、アップロードする印刷データの圧縮及び暗号化を設定するためのGUI表示処理を行い、ユーザの設定に従って、印刷データの圧縮及び暗号化を行ってから、クラウドストレージ3にその印刷データをアップロードするものである。
全体的な動作は、上述に説明したとおりであるが、以下簡潔に説明する。
ポートモニタ105は、ポートモニタ105は、呼び出し側からこれら関数が呼び出されると、常駐プログラム106に対し、呼び出された関数をメッセージとして送信(転送)する。また、ポートモニタ105は、プリンタドライバ103から印刷データを受信するので、受信した印刷データに対し、固有のファイル名を付してから、印刷データ格納部108へ格納しておく。
次に、常駐プログラム106は、ポートモニタ105からのメッセージを受信すると、設定ファイルに基づいて、そのメッセージに応じた拡張プログラムを呼び出して実行する。
常駐プログラム106は、設定ファイルを参照し、図例の設定ファイルの場合、メッセージ「StartDocPort」(関数)に対応する処理は、「Program1.dll」により実現される処理である。また、同様に、「WritePort」に対応する処理は、「Program5.dll」(例えば、GUI表示、圧縮・暗号化処理を実現する拡張プログラム)、「Program2.dll」及び「Program3.dll」により実現され、「EndPort」に対応する処理は、「Program4.dll」により実現される処理である。
従って、この場合、常駐プログラム106は、例えば、ポートモニタ105からのメッセージを受信すると、設定ファイルに基づいて、そのメッセージに応じた拡張プログラムを特定し、これら拡張プログラムの呼び出しを行う。
常駐プログラム106は、受信したメッセージを上述の設定ファイルを参照し、特定された拡張プログラム(メッセージ関数に応じて、例えば、「Program1.dll」〜「Program5.dll」)を呼び出す。併せて、拡張プログラムに対し、ポートモニタ105から送信されたメッセージ、印刷データ格納部108に格納された印刷データのファイル名をそのまま渡す。印刷データは、拡張プログラムにより出力されるためである。
ここでは、常駐プログラム106から呼び出される拡張プログラム「Program5.dll」が、PC1の表示部等にGUI(表示画面)を表示、印刷データの圧縮及び暗号化を行う機能を備える。よって、「Program5.dll」により、図に示されるようなGUIが表示される。ユーザは、アップロードする印刷データを、圧縮及び暗号化するかどうかの設定を行う。そして、ユーザが操作をした設定値に従って、印刷データ格納部108の印刷データに対し、圧縮及び暗号化を実施する。圧縮及び暗号化済みの印刷データは、次の拡張プログラム(例えば、「Program2.dll」)へ渡すため、オリジナルの印刷データとは別途、印刷データ格納部108に格納しておく。また、圧縮及び暗号化済みの印刷データのファイル名を付して、次の拡張プログラム(例えば、「Program2.dll」)へそのファイル名を渡す。開発者は、例えばこのような動作を拡張プログラム「Program5.dll」に実装する。
以降、「Program2.dll」により、圧縮及び暗号化済みの印刷データがクラウドストレージ3にアップロードされるとともに、「Program3.dll」により、オリジナルの印刷データがプリンタ2に出力される。
以上のように、ポートモニタは、自身が直接的にGUIを表示しないため、上述の制限の下であっても、GUI表示を伴う印刷処理を容易に実現することが可能である。これは、ポートモニタ105は、本来ポートモニタが行うべき処理を、メッセージ通信によって、別の拡張プログラムに代行処理させることによるものである。このため、ポートモニタ自体を更新することなく、拡張プログラムの更新のみという容易な作業により、対応することが可能となる。
[総括]
以上、本実施形態によれば、ポートモニタに独自の処理を実装する場合、開発者側の実装作業及び利用者側のインストール作業の簡素化を実現する情報処理装置、プログラム及び記録媒体等を提供することが可能となる。
なお、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
1 PC
2 プリンタ
3 クラウドストレージ
4 GUI
11 CPU
12 ROM
13 RAM
14 HDD
15 記憶媒体読取装置
16 入力装置
17 表示装置
18 通信装置
100 プリンタシステム
101 アプリケーション
102 OS
103 プリンタドライバ
104 OSのポートモニタ
105 ポートモニタ
106 常駐プログラム
107 拡張プログラム格納部
108 印刷データ格納部
特開2007‐328450号公報

Claims (9)

  1. 印刷データの出力を行う情報処理装置であって、
    少なくとも前記印刷データの出力動作に関する拡張プログラムを格納した格納手段と、
    ポートモニタであって、前記印刷データの出力に伴って、プリンタドライバから前記出力の処理に関する関数の呼び出し要求を受信したことに応じて、呼び出された前記関数をメッセージとして送信するとともに、前記印刷データを所定の記憶領域に記憶する印刷データ処理手段と、
    前記印刷データ処理手段により送信された前記メッセージを受信すると、前記格納手段から、該メッセージに対応する拡張プログラムを特定し、特定した該拡張プログラムを実行することにより、前記所定の記憶領域に記憶された印刷データに対する処理を行う拡張プログラム実行手段と、
    前記格納手段に新たな拡張プログラムを追加するとともに、該新たな拡張プログラムに対応するメッセージと含む拡張情報を、前記拡張プログラム実行手段に通知する拡張プログラム追加手段と、
    を有することを特徴とする情報処理装置。
  2. メッセージと、拡張プログラムとが対応付けられた設定ファイルを記憶した記憶手段と、
    を有し、
    前記拡張プログラム実行手段は、前記印刷データ処理手段により送信されたメッセージを受信すると、前記設定ファイルを参照し、前記格納手段から、該メッセージに対応する拡張プログラムを特定し、特定した該拡張プログラムを実行することにより、前記所定の記憶領域に記憶された印刷データに対する処理を行い、
    前記拡張プログラム実行手段は、前記拡張プログラム追加手段により、前記格納手段に新たな拡張プログラムが追加されるとともに、前記拡張情報が通知されたとき、該拡張情報に基づいて、前記設定ファイルに、新たな拡張プログラムと、該新たな拡張プログラムに対応するメッセージとを対応付けて登録すること、
    を特徴とする請求項1記載の情報処理装置。
  3. 前記設定ファイルは、メッセージと、複数の拡張プログラムとが対応付けられ、
    前記拡張プログラム実行手段は、前記印刷データ処理手段により送信されたメッセージを受信すると、前記設定ファイルを参照し、前記格納手段から、該メッセージに対応する複数の拡張プログラムを特定し、特定した該複数の拡張プログラムを実行することにより、前記所定の記憶領域に記憶された印刷データに対する処理を行うこと、
    を特徴とする請求項2記載の情報処理装置。
  4. 前記設定ファイルは、メッセージと、複数の拡張プログラムとが実行される順序情報を含んで、対応付けられ、
    前記拡張プログラム実行手段は、前記印刷データ処理手段により送信されたメッセージを受信すると、前記設定ファイルを参照し、前記格納手段から、該メッセージに対応する複数の拡張プログラムを特定し、特定した該複数の拡張プログラムを、前記順序情報に基づく順序で実行することにより、前記所定の記憶領域に記憶された印刷データに対する処理を行うこと、
    を特徴とする請求項3記載の情報処理装置。
  5. 印刷データの出力を行う情報処理装置に、
    少なくとも前記印刷データの出力動作に関する拡張プログラムを格納した格納手段と、
    ポートモニタであって、前記印刷データの出力に伴って、プリンタドライバから前記出力の処理に関する関数の呼び出し要求を受信したことに応じて、呼び出された前記関数をメッセージとして送信するとともに、前記印刷データを所定の記憶領域に記憶する印刷データ処理手段と、
    前記印刷データ処理手段により送信された前記メッセージを受信すると、前記格納手段から、該メッセージに対応する拡張プログラムを特定し、特定した該拡張プログラムを実行することにより、所定の記憶領域に記憶された印刷データに対する処理を行う拡張プログラム実行手段と、
    前記格納手段に新たな拡張プログラムを追加するとともに、該新たな拡張プログラムに対応するメッセージと含む拡張情報を、前記拡張プログラム実行手段に通知する拡張プログラム追加手段として機能させるためのプログラム。
  6. 前記情報処理装置に
    メッセージと、拡張プログラムとが対応付けられた設定ファイルを記憶した記憶手段として機能させ、
    前記拡張プログラム実行手段は、前記印刷データ処理手段により送信されたメッセージを受信すると、前記設定ファイルを参照し、前記格納手段から、該メッセージに対応する
    拡張プログラムを特定し、特定した該拡張プログラムを実行することにより、所定の記憶領域に記憶された印刷データに対する処理を行い、
    前記拡張プログラム実行手段は、前記拡張プログラム追加手段により、前記格納手段に新たな拡張プログラムが追加されるとともに、前記拡張情報が通知されたとき、該拡張情報に基づいて、前記設定ファイルに、新たな拡張プログラムと、該新たな拡張プログラムに対応するメッセージとを対応付けて登録すること、
    を特徴とする請求項記載のプログラム。
  7. 前記設定ファイルは、メッセージと、複数の拡張プログラムとが対応付けられ、
    前記拡張プログラム実行手段は、前記印刷データ処理手段により送信されたメッセージを受信すると、前記設定ファイルを参照し、前記格納手段から、該メッセージに対応する複数の拡張プログラムを特定し、特定した該複数の拡張プログラムを実行することにより、前記所定の記憶領域に記憶された印刷データに対する処理を行うこと、
    を特徴とする請求項記載のプログラム。
  8. 前記設定ファイルは、メッセージと、複数の拡張プログラムとが実行される順序情報を含んで、対応付けられ、
    前記拡張プログラム実行手段は、前記印刷データ処理手段により送信されたメッセージを受信すると、前記設定ファイルを参照し、前記格納手段から、該メッセージに対応する複数の拡張プログラムを特定し、特定した該複数の拡張プログラムを、前記順序情報に基づく順序で実行することにより、前記所定の記憶領域に記憶された印刷データに対する処理を行うこと、
    を特徴とする請求項記載のプログラム。
  9. 請求項ないし8の何れか一項記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2012081728A 2012-03-30 2012-03-30 情報処理装置、プログラム及び記録媒体 Active JP5966523B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012081728A JP5966523B2 (ja) 2012-03-30 2012-03-30 情報処理装置、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012081728A JP5966523B2 (ja) 2012-03-30 2012-03-30 情報処理装置、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2013210921A JP2013210921A (ja) 2013-10-10
JP5966523B2 true JP5966523B2 (ja) 2016-08-10

Family

ID=49528668

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012081728A Active JP5966523B2 (ja) 2012-03-30 2012-03-30 情報処理装置、プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP5966523B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014174679A (ja) 2013-03-07 2014-09-22 Canon Inc 情報処理装置及びその方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006338443A (ja) * 2005-06-03 2006-12-14 Seiko Epson Corp フィルタデバイスドライバ、複製印刷制御方法及びその制御プログラム
JP2008134714A (ja) * 2006-11-27 2008-06-12 Ricoh Co Ltd 情報処理装置及びプログラム
JP5017543B2 (ja) * 2008-02-12 2012-09-05 サイレックス・テクノロジー株式会社 周辺機器利用システム
JP5343643B2 (ja) * 2009-03-17 2013-11-13 株式会社リコー プリンタドライバ、記憶媒体、及び情報処理装置
JP5267337B2 (ja) * 2009-06-01 2013-08-21 株式会社リコー プログラム、記憶媒体、情報処理装置、プリンタ装置およびシステム
JP2011123842A (ja) * 2009-12-14 2011-06-23 Ricoh Co Ltd 画像形成装置、機能追加方法、及びプログラム
JP5471602B2 (ja) * 2010-03-02 2014-04-16 株式会社リコー プリンタドライバ、インストーラ、情報処理方法および情報処理装置
JP2012058810A (ja) * 2010-09-06 2012-03-22 Seiko Epson Corp 印刷データを用いた機能拡張プログラム、機能拡張装置、及び、機能拡張方法

Also Published As

Publication number Publication date
JP2013210921A (ja) 2013-10-10

Similar Documents

Publication Publication Date Title
US10630857B2 (en) Electronic apparatus and method to update firmware of the electronic apparatus when adding a web application to the electronic apparatus
US20140298310A1 (en) Information processing apparatus, firmware renewing method, and computer program
US20190171443A1 (en) Method of Updating Application and Recording Medium
JP5732824B2 (ja) 画像形成装置、情報処理システム、及び情報処理方法
JP2017204120A (ja) 情報処理装置、インストーラー及びプリンタドライバ
JP2006261970A (ja) 画像形成システム、画像形成装置、管理装置及びプラグイン整合管理方法
US20190073207A1 (en) Information processing apparatus and information display method
JP2013191196A (ja) 情報処理装置、機器、情報処理システム、情報処理方法、及び情報処理プログラム
JP2011180681A (ja) インストーラ及びプリンタドライバのインストール方法
JP7069969B2 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2018084893A (ja) 情報処理装置、制御方法およびプログラム
US9706067B2 (en) Information processing terminal and non-transitory readable recording medium for file transfer and file processing
JP5966523B2 (ja) 情報処理装置、プログラム及び記録媒体
JP2019021054A (ja) 画像処理システム、および画像形成装置
JP2006293787A (ja) 無線通信装置の設定方法
US10817227B2 (en) Printing computing device for operating a printing device
US10602011B2 (en) Image forming apparatus, information processing method, and program
US11340880B2 (en) Application management service including package file
JP2011181074A (ja) 無線通信装置の設定方法、記憶媒体、情報処理装置、記録方法、及びシステム
JP7282507B2 (ja) 情報処理装置、サーバ装置、制御方法、制御プログラム
JP2012181690A (ja) 画像形成装置、更新方法、更新プログラム、及び記録媒体
JP2016206759A (ja) ソフトウェア・アップデート・システムおよび管理サーバー
JP4526508B2 (ja) 電子機器,電子機器システムおよび機能補完方法と機能補完プログラム
US20190286432A1 (en) Information processing system, apparatus, information processing method, and recording medium
JP2015121887A (ja) 情報処理装置及びその制御方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150223

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160407

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: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160620

R151 Written notification of patent or utility model registration

Ref document number: 5966523

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151