JP5954353B2 - コントローラーの制御方法 - Google Patents

コントローラーの制御方法 Download PDF

Info

Publication number
JP5954353B2
JP5954353B2 JP2014076708A JP2014076708A JP5954353B2 JP 5954353 B2 JP5954353 B2 JP 5954353B2 JP 2014076708 A JP2014076708 A JP 2014076708A JP 2014076708 A JP2014076708 A JP 2014076708A JP 5954353 B2 JP5954353 B2 JP 5954353B2
Authority
JP
Japan
Prior art keywords
request
initialization
processing
error
controller
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
JP2014076708A
Other languages
English (en)
Other versions
JP2014160484A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2014076708A priority Critical patent/JP5954353B2/ja
Publication of JP2014160484A publication Critical patent/JP2014160484A/ja
Application granted granted Critical
Publication of JP5954353B2 publication Critical patent/JP5954353B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、処理要求に対する応答を行うためのコントローラーの制御方法に関するものである。
従来、コンピューターに接続されたデバイス(例えば、プリンター等)を制御する場合、そのデバイスに対応するデバイスドライバーを用いて制御を行う(例えば、特許文献1参照)。一般的に、このようなデバイスドライバーは、対応するデバイスを制御するための数多くのインターフェイスを提供しており、アプリケーションプログラム(以下、アプリケーション)を開発する場合、このデバイスドライバーが提供するインターフェイスを利用してプログラムを作成することで、デバイスの基本的な動作制御をはじめ、デバイスの状態に応じた繊細なエラー処理を実行することができる。
特開平11−265267号公報
しかしながら、上記のようにデバイスを制御する場合、一般的には、当該デバイスを制御するために非常に多数の関数と、デバイスに起因する多種類のエラー処理等が定義されているため、デバイスドライバーを利用して繊細なエラー処理を行う場合、アプリケーションの処理フローが複雑になるという問題がある。このため、アプリケーション開発にかかるコストが高くなる問題がある。
一方、アプリケーションの処理フローが複雑になることを避けるため一括処理等を行うようにし、エラーが発生した場合は、そのエラーの原因やデバイスドライバーの状態を無視し、常にデバイスドライバーを完全に初期化するというエラー処理を行う場合がある。しかしながら、一般的にデバイスドライバーの初期化処理には時間がかかるため、エラー処理として毎回初期化処理を行うことによりデバイスドライバーの処理パフォーマンスの低下を招くという問題がある。
本発明は、上記の問題に鑑み、アプリケーションの開発を簡素化でき、且つデバイスを制御するための処理パフォーマンスの向上を図ることができるコントローラーの制御方法を提供することを目的とする。
本発明のコントローラーの制御方法は、処理要求に対する応答を行うコントローラーの制御方法であって、初期化処理を要求する初期化要求を最初に受信すると、受信した初期化要求が最初の初期化要求であると判別して、初期化処理を行い、一連の処理を終了する終了処理要求を受信すると、一連の処理を終了することなく、終了処理要求に対して成功応答を返し、終了処理要求の受信後、初期化要求を受信すると、受信した初期化要求が最初の初期化要求ではないと判別して、初期化処理を行わず、初期化要求に対して成功応答を返すことを特徴とする。
この場合、受信した初期化要求が最初の初期化要求であると判別した場合、初期化処理を行った後、さらに、初期化処理後の状態を示す初期化設定情報を記憶し、動作状態を検出し、動作状態を検出する際に、エラーが発生したことを検出した場合、当該エラーに基づく復帰処理を実行し、復帰処理によりエラーから復帰した場合、動作状態を、記憶した初期化設定情報に基づく状態に設定することが好ましい。
本発明の他のコントローラーの制御方法は、アプリケーションからの処理要求に対する応答をアプリケーションに行うためのソフトウェアモジュールであるコントローラーの制御方法であって、アプリケーションから処理要求を受信し、受信した処理要求が初期化要求である場合、初期化要求に基づく初期化処理後の状態である初期化状態を示す初期化設定情報を記憶し、動作状態を検出し、動作状態を検出する際に、エラーが発生したことを検出した場合、当該エラーに基づく復帰処理を実行し、復帰処理によりエラーから復帰した場合、動作状態を、記憶した初期化設定情報に基づいて、初期化状態に設定することを特徴とする。
この場合、エラーが発生したことを検出した場合において、復帰処理によりエラーから復帰する前に、処理要求を受信した場合、処理要求に基づく処理を実行せずに、処理要求の失敗応答を返すことが好ましい。
この場合、処理要求は、複数の処理要求をまとめて定義したものであることが好ましい。
また、この場合、複数の処理要求は、マークアップ言語で定義されていることが好ましい。
これらの構成によれば、例えば、XML(Extensible Markup Language)で複数の処理要求をまとめて定義し、一括処理するアプリケーションのように、エラー処理(エラーハンドリング)を繊細に行うことができないアプリケーションでも、本発明のコントローラーを導入することで適切なエラー処理を行うことができるため、このような一括処理を行うアプリケーションの実現が容易になる。
本実施形態にかかるコンポーネントモデルの構成を示すブロック図である。 コントローラーの機能ブロック図である。 大まかなエラー処理を行うアプリケーションを対象とした場合のコントローラーの処理の一例を説明するシーケンス図である。 エラー処理を行わないアプリケーションを対象とした場合のコントローラーの処理の一例を説明するシーケンス図である。 一定の処理毎にデバイスドライバーの初期化を行うアプリケーションを対象とした場合のコントローラーの処理の一例を説明するシーケンス図である。
以下、添付の図面を参照して、本発明のコントローラーを含むコンポーネントモデルについて説明する。図1は本実施形態のコンポーネントモデルCMの構成を示すブロック図である。同図に示すように、コンポーネントモデルCMは、アプリケーション1と、コントローラー2と、デバイスドライバー3とにより構成されている。なお、これらアプリケーション1、コントローラー2およびデバイスドライバー3は、コンピューターに搭載されたOS(Operating System)上で動作するソフトウェアモジュール(プログラム)として実現される。
アプリケーション1は、コンピューターに接続されたデバイス(例えば、プリンター等,図示省略)に所定の動作を実行させるための処理要求や、デバイスドライバー3の処理でエラーが発生した場合のエラー処理に関する処理要求などを行うプログラムである。これら処理要求は、コントローラー2が提供する入出力インターフェイス(第1入出力インターフェイス11)を用いて定義されており、アプリケーション1は、コントローラー2に対して各処理要求を送信すると共に、コントローラー2から当該各処理要求に対する応答(処理の成功/失敗等)を受信する。
コントローラー2は、アプリケーション1とデバイスドライバー3との間に介在するソフトウェアモジュールであり、アプリケーション1からの処理要求をデバイスドライバー3に転送する(ブリッジする)と共に、デバイスドライバー3からの処理要求に対する応答をアプリケーション1に転送する(ブリッジする)ものである。具体的には、コントローラー2は、アプリケーション1に対して上記の第1入出力インターフェイス11を提供しており、この第1入出力インターフェイス11を利用することで、アプリケーション1からの処理要求の受信、およびアプリケーション1への処理要求に対する応答を行なう。また、コントローラー2は、デバイスドライバー3が提供する入出力インターフェイス(第2入出力インターフェイス12)を用いて、アプリケーション1からの処理要求をデバイスドライバー3に転送、およびデバイスドライバー3から処理要求に対する応答を受信する。
デバイスドライバー3は、対象となるデバイスを制御するためのプログラムであり、各デバイスの仕様に基づいて作成される。デバイスドライバー3は、コントローラー2に対して、上記の第2入出力インターフェイス12を提供しており、この第2入出力インターフェイス12を利用して、コントローラー2からの処理要求を受信すると共に、コントローラー2に対して当該処理要求に対する応答を行う。
なお、コントローラー2が提供する第1入出力インターフェイス11の仕様は、デバイスドライバー3が提供する第2入出力インターフェイス12の仕様と同一、あるいは第2入出力インターフェイス12を拡張した仕様(例えば、XMLに対応するように拡張した仕様)であることが好ましい。これにより、アプリケーション開発者は、新たな入出力インターフェイスの仕様を覚える必要がなく、従来からあるデバイスドライバー3により提供されている入出力インターフェイスを利用するのと同様の感覚で開発を行うことができるため、アプリケーション1の開発効率を低下させることない。
次に、図2の機能ブロック図を参照して、コントローラー2の機能構成について説明する。コントローラー2は、処理要求受信手段21、要求処理手段22、応答処理手段23、初期化設定情報取得手段24、初期化設定情報記憶手段25、状態検出手段26、復帰処理手段27、および初期化設定要求手段28を有している。
処理要求受信手段21は、アプリケーション1から処理要求を受信する手段として機能する。要求処理手段22は、アプリケーション1から受信した処理要求の内容およびデバイスドライバー3の状態に基づいて、適切な処理を行う手段として機能する。具体的には、アプリケーション1からの処理要求が初期化要求であった場合、当該初期化要求がアプリケーション1起動後の最初の初期化要求か否かを判別する(初期化要求判別手段)。この判別の結果、最初の初期化要求である場合、当該最初の初期化要求をデバイスドライバー3に送信する(初期化要求処理手段)。一方、最初の初期化要求で無い場合、当該初期化要求をデバイスドライバー3にブリッジ(送信)せず、デバイスドライバー3の状態に応じてアプリケーション1に初期化要求に対する応答を返す(初期化要求処理手段)。
また、処理要求が一連の処理を終了するための終了処理要求である場合、当該終了処理要求をデバイスドライバー3にブリッジせず、アプリケーション1に対して処理の成功を示す応答を返す。さらに、処理要求が上記初期化要求および終了処理要求以外のもの(以下、「通常処理要求」と称す。)の場合であって、デバイスドライバー3が正常動作している場合は、当該通常処理要求をデバイスドライバー3にブリッジし、デバイスドライバー3にエラーが発生している場合は、当該通常処理要求をデバイスドライバー3にブリッジせず、アプリケーション1に対して通常処理要求の失敗を示す応答を返す。
応答処理手段23は、デバイスドライバー3から処理要求に対する応答を受信し、これをアプリケーション1に送信する手段として機能する。つまり、デバイスドライバー3からの応答をアプリケーション1にブリッジする手段として機能する。
初期化設定情報取得手段24は、デバイスドライバー3から初期化設定情報を取得する手段として機能する。この初期化設定情報は、デバイスドライバー3がアプリケーション1からの最初の初期化要求により初期化処理(実際に通信やインスタンスの初期化をする処理)を実行した後の状態(以下、この状態を「初期化状態」と称す。)を示す情報である。初期化設定情報記憶手段25は、取得した初期化設定情報を記憶(保存)する手段として機能する。
状態検出手段26は、デバイスドライバー3の状態を検出する手段として機能するものであり、デバイスドライバー3からの処理要求に対する応答に基づいて自身(コントローラー2)の状態を設定し、この状態を確認することで、間接的にデバイスドライバー3の状態を検出する。具体的には、デバイスドライバー3からの処理要求に対する応答が処理の成功を示す応答であれば、自身の状態を正常状態に設定し、この状態(正常状態)を確認することでデバイスドライバー3は正常な状態であると検出する。一方、処理の失敗を示す応答であれば、自身の状態をエラー復帰待ち状態に設定し、この状態(エラー復帰待ち状態)を確認することでデバイスドライバー3にエラーが発生したことを検出する。
復帰処理手段27は、上記の状態検出手段26によりデバイスドライバー3にエラーが発生したことを検出した場合、デバイスドライバー3の状態(エラーの内容)に基づいて、適切な復帰処理(例えば、エラーを修復するためのコマンドを送る等)を行う手段として機能する。
初期化設定要求手段28は、復帰処理手段27によりデバイスドライバー3がエラーから復帰した場合、デバイスドライバー3の状態を、記憶した初期化設定情報に基づく状態に設定するための手段として機能する。これにより、実際に通信やインスタンスの初期化処理を行うことなく、デバイスドライバー3の状態を初期化状態(初期化処理後と同様の状態)に設定することができる。
ここで、図3ないし図5のシーケンス図を参照して、コントローラー2の処理について具体例を挙げて説明する。図3は、大まかなエラー処理を行うアプリケーション1を対象とした場合のコントローラー2の処理について説明するシーケンスの一例である。なお、大まかなエラー処理とは、デバイスドライバー3でエラーが発生した場合、アプリケーション1はエラーの内容やデバイスドライバー3の状態に関係なく終了処理要求および初期化要求を行う処理を言う。
まず、アプリケーション1は、コントローラー2に対して、デバイスドライバー3を初期化するための初期化要求を行う(S01)。コントローラー2は、この初期化要求が、アプリケーション1起動後の最初の初期化要求か否か(つまり、アプリケーション1から受けた最初の初期化要求か否か)を判別する。ここでは、最初の初期化要求であるため、コントローラー2は、当該初期化要求をデバイスドライバー3へブリッジする(S02)。初期化要求を受けたデバイスドライバー3は、当該初期化要求に基づいて初期化処理(通信やインスタンスの初期化)を実行し(S03)、初期化処理が成功した旨を示す応答(以下、「成功応答」と称す。)をコントローラー2に返す(S04)。
続いて、初期化要求に対する成功応答を受けたコントローラー2は、デバイスドライバー3の現在の状態、つまり初期化処理直後の状態を取得し、初期化設定情報として記憶する(S05)。そして、コントローラー2は、デバイスドライバー3からの初期化要求に対する成功応答を、アプリケーション1にブリッジする(S06)。
続いて、アプリケーション1は、コントローラー2に対して、デバイスドライバー3に所定の処理Aを実行させるための処理要求(処理要求A)を行う(S07)。処理要求Aを受けたコントローラー2は、自身の状態(正常状態かエラー復帰待ち状態か)を確認する。つまり、デバイスドライバー3にエラーが発生しているか否かを確認する。ここでは、自身の状態は正常状態であるため(つまり、デバイスドライバー3は正常動作しているため)、コントローラー2は、当該処理要求Aをデバイスドライバー3にブリッジする(S08)。
処理要求Aを受けたデバイスドライバー3は、当該処理要求Aに基づいて処理Aを実行し(S09)、処理Aが成功した旨を示す成功応答をコントローラー2に返す(S10)。そして、コントローラー2は、デバイスドライバー3からの処理要求Aに対する成功応答を、アプリケーション1にブリッジする(S11)。
続いて、アプリケーション1は、デバイスドライバー3に所定の処理Bを実行させるための処理要求(処理要求B)を行う(S12)。処理要求Bを受けたコントローラー2は、自身の状態(正常状態かエラー復帰待ち状態か)を確認する。ここでは、自身の状態は正常状態であるため(つまり、デバイスドライバー3は正常動作しているため)、コントローラー2は、当該処理要求Bをデバイスドライバー3にブリッジする(S13)。
処理要求Bを受けたデバイスドライバー3は、処理要求Bに基づいて処理Bを実行する(S14)。この時、処理Bが失敗すると、デバイスドライバー3は、処理Bが失敗した旨を示す応答(以下、「失敗応答」と称す。)をコントローラー2に返す(S15)。コントローラー2は、デバイスドライバー3から処理要求Bに対する失敗応答を受けると、これをトリガーとしてデバイスドライバー3でエラーが発生したことを検出すると共に、自身の状態をエラー復帰待ち状態に遷移する(S16)。そして、コントローラー2は、処理要求Bに対する失敗応答をアプリケーション1にブリッジする(S17)。
次に、コントローラー2は、デバイスドライバー3の状態(エラー内容)を確認し、この状態に基づいた復帰処理を実行する(例えば、デバイスドライバー3のエラー内容に応じた所定の復帰命令を出す;S18)。
ここで、処理要求Bに対する失敗応答を受けたアプリケーション1が、エラー処理を行うべく、コントローラー2に対して、一連の処理を終了するための処理要求(終了処理要求)を行うと(S19)、コントローラー2は、当該処理終了要求をデバイスドライバー3にブリッジせず、アプリケーション1に対して終了処理要求が成功した旨を示す成功応答を返す(S20)。
続いて、S18の復帰処理により、デバイスドライバー3がエラーから復帰すると、デバイスドライバー3は、コントローラー2に対してその旨(エラーから復帰した旨)を通知(エラー復帰通知)する(S21)。エラー復帰通知を受けたコントローラー2は、デバイスドライバー3の状態を、記憶した初期化設定情報に基づく状態に設定するように要求する(S22)。これにより、デバイスドライバー3は、自身の状態を初期化状態(S03の初期化処理を実行した直後の状態と同様の状態)に設定する(S23)。そして、コントローラー2は、デバイスドライバー3から当該設定が成功した旨を示す成功応答を受け(S24)、自身の状態をエラー復帰待ち状態から正常状態に遷移する(S25)。
ここで、アプリケーション1からエラー処理の一環として初期化要求が行われると(S26)、コントローラー2は、当該初期化要求をデバイスドライバー3にブリッジすることなく、アプリケーション1に対して当該初期要求に対する成功応答を返す(S27)。つまり、アプリケーション1からの初期化要求があっても、実際にはデバイスドライバー3の初期化処理を実行しない。そして、初期化要求に対する成功応答を受けたアプリケーション1は、デバイスドライバー3のエラー処理が完了したと判断し、処理要求Aのリトライを行う(S28)。
処理要求Aを受けたコントローラー2は、自身の状態(正常状態かエラー復帰待ち状態か)を確認する。ここでは、自身の状態は正常状態であるため(つまり、デバイスドライバー3はエラーから復帰し、正常動作しているため)、コントローラー2は、当該処理要求Aをデバイスドライバー3にブリッジする(S29)。そして、処理要求Aを受けたデバイスドライバー3は、処理要求Aに基づいて処理Aを実行し(S30)、処理Aが成功した旨を示す成功応答をコントローラー2に返す(S31)。そして、コントローラー2は、デバイスドライバー3からの処理要求Aに対する成功応答を、アプリケーション1にブリッジする(S32)。以降、アプリケーション1は、処理要求Aに続く処理要求(処理要求B)を行う。
このように、エラー処理として、デバイスドライバー3の状態やエラー内容にかかわらず初期化処理(初期化要求)をするアプリケーション1に対して本発明のコントローラー2を導入することにより、アプリケーション1がエラー処理として行う初期化要求に対してデバイスドライバー3の初期化処理行わないため、処理全体のパフォーマンスの向上を図ることができる。
次に、図4について説明する。図4は、エラー処理を行わないアプリケーション1を対象とした場合のコントローラー2の処理について説明するシーケンスの一例である。この図4のシーケンスは、アプリケーション1が、デバイスドライバー3のエラー発生時にエラー処理を行わず、処理要求のリトライを行う点で図3のシーケンスと異なる。以下、異なる部分について説明する。
アプリケーション1は、S57の処理で、処理要求Bに対する失敗応答を受けると、コントローラー2に処理要求Aのリトライを行う(S59)。処理要求Aを受けたコントローラー2は、自身の状態(正常状態かエラー復帰待ち状態か)を確認する(S60)。ここでは、自身の状態はエラー復帰待ち状態であるため(つまり、デバイスドライバー3にエラーが発生しているため)、コントローラー2は、当該処理要求Aをデバイスドライバー3にブリッジせず、アプリケーション1に対して処理要求Bの失敗応答を返す(S61)。
つまり、コントローラー2は、S58の復帰処理によりデバイスドライバー3がエラーから復帰するまでは(デバイスドライバー3にエラーが発生している間は)、アプリケーション1からの処理要求をデバイスドライバー3にブリッジすることなく、アプリケーション1に対して失敗応答を返す処理を行う。このように、コントローラー2側でエラー処理を行うため、処理要求が失敗した場合、繊細なエラー処理を行なわずに処理要求をリトライするようなアプリケーション1にも対応することできる。
次に、図5について説明する。図5は、一定の処理毎にデバイスドライバー3の初期化を行うアプリケーション1を対象とした場合のコントローラー2の処理について説明するシーケンスの一例である。ここでは、処理要求A、処理要求B、終了処理要求および初期化要求を続けて行う処理を1セットとし、この処理セットを繰り返し行うアプリケーション1を例示する。なお、S81からS86までの処理は、図3のS01からS06までの処理と同様であるため、説明を省略する。
S81からS86の処理完了後、アプリケーション1は、コントローラー2に対して、デバイスドライバー3に所定の処理Aを実行させるための処理要求(処理要求A)を行う(S87)。処理要求Aを受けたコントローラー2は、デバイスドライバー3の状態を確認する。ここでは、デバイスドライバー3は正常動作しているため、コントローラー2は、処理要求Aをデバイスドライバー3にブリッジする(S88)。処理要求Aを受けたデバイスドライバー3は、当該処理要求Aに基づいて処理Aを実行し(S89)、処理Aが成功した旨を示す成功応答をコントローラー2に返す(S90)。そして、コントローラー2は、デバイスドライバー3からの処理要求Aに対する成功応答を、アプリケーション1にブリッジする(S91)。
続いて、アプリケーション1は、コントローラー2に対して、デバイスドライバー3に所定の処理Bを実行させるための処理要求(処理要求B)を行う(S92)。処理要求Bを受けたコントローラー2は、デバイスドライバー3の状態を確認する。ここでは、デバイスドライバー3は正常動作しているため、コントローラー2は、当該処理要求Bをデバイスドライバー3にブリッジする(S93)。処理要求Bを受けたデバイスドライバー3は、当該処理要求Bに基づいて処理Bを実行し(S94)、処理Bが成功した旨を示す成功応答をコントローラー2に返す(S95)。そして、コントローラー2は、デバイスドライバー3からの処理要求Bに対する成功応答を、アプリケーション1にブリッジする(S96)。
続いて、アプリケーション1は、コントローラー2に対して、一連の処理を終了するための処理要求(終了処理要求)を行うと(S97)、コントローラー2は、当該処理終了要求をデバイスドライバー3にブリッジせず、アプリケーション1に対して終了処理要求が成功した旨を示す成功応答を返す(S98)。続いて、アプリケーション1は、コントローラー2に対して初期化要求を行うと(S99)、コントローラー2は、当該初期化要求をデバイスドライバー3にブリッジせず、アプリケーション1に対して初期化要求が成功した旨を示す成功応答を返す(S100)。この後、アプリケーション1は、S87からS100までの処理(一点鎖線で囲った範囲の処理)を繰り返す。
このように、本発明のコントローラー2は、アプリケーション1が一定の処理毎に(所定のタイミングで)初期化処理を要求したとしても、デバイスドライバー3に初期化要求をブリッジしない。つまり、デバイスドライバー3の初期化処理を実行しない。これにより、一定の処理毎に初期化処理を要求するようなアプリケーション1に対し、本発明のコントローラー2を導入することで、処理パフォーマンスを向上させることができる。
以上のように、本実施形態によれば、デバイスドライバー3にエラーが発生した場合は、コントローラー2がそのデバイスドライバー3の状態に応じた(エラー内容に応じた)適切な復帰処理(エラー処理)を実行する。これにより、アプリケーション1では、繊細なエラー処理を行う必要がなくなるため、アプリケーション1の処理フローを簡素化することができ、アプリケーション開発にかかるコストを低減させることができる。
また、コントローラー2で、最初の初期化処理後のデバイスドライバー3の状態(初期化設定情報)を記憶しておき、デバイスドライバー3がエラーから復帰した後、この初期化設定情報に基づいてデバイスドライバー3の状態を初期化処理後と同等の状態にすることができる。これにより、通信やインスタンスの初期化など長時間を要する初期化処理を不要とすることができ、処理パフォーマンスを向上することができる。
なお、アプリケーション1は、コントローラー2が提供する第1入出力インターフェイス11を用いてデバイス制御を行うものであれば良く、例えば、処理要求毎にその処理が成功したか失敗したかを判断し、判断結果に基づいて次の処理要求を確定する逐次処理を行うものであっても良いし、複数の処理要求をまとめて実行した後、処理の成功/失敗を判断し、この判断結果に基づいて次の処理要求を確定する一括処理を行うものであっても良い。
後者の例として、例えば、マークアップ言語の一種であるXMLで複数の処理要求をまとめて定義し、一括処理するアプリケーション1が考えられる。このアプリケーション1のように、一括処理するがために、エラー処理(エラーハンドリング)を繊細に行うことができないアプリケーション1であっても、本発明のコントローラー2を導入することで適切なエラー処理を行うことができるため、このような一括処理を行うアプリケーション1の実現が容易になる。
また、本実施形態のコントローラー2は、UPOS(Unified POS)の規格に則った仕様を実現するデバイスドライバー3(UPOS準拠ドライバー)にも適用することができる。この場合、コントローラー2とUPOS準拠ドライバーとの間の入出力インターフェイス(第2入出力インターフェイス12)を、UPOSの仕様に準拠した入出力インターフェイスとすることで実現することができる。
1…アプリケーション 2…コントローラー 3…デバイスドライバー 21…処理要求受信手段 22…要求処理手段 23…応答処理手段 24…初期化設定情報取得手段 25…初期化設定情報記憶手段 26…状態検出手段 27…復帰処理手段 28…初期化設定要求手段 CM…コンポーネントモデル

Claims (6)

  1. 処理要求に対する応答を行うコントローラーの制御方法であって、
    初期化処理を要求する初期化要求を最初に受信すると、受信した前記初期化要求が最初の前記初期化要求であると判別して、前記初期化処理を行い、
    一連の処理を終了する終了処理要求を受信すると、一連の処理を終了することなく、前記終了処理要求に対して成功応答を返し、
    前記終了処理要求の受信後、前記初期化要求を受信すると、受信した前記初期化要求が最初の前記初期化要求ではないと判別して、前記初期化処理を行わず、前記初期化要求に対して成功応答を返すことを特徴とするコントローラーの制御方法。
  2. 受信した前記初期化要求が前記最初の初期化要求であると判別した場合、前記初期化処理を行った後、さらに、
    前記初期化処理後の状態を示す初期化設定情報を記憶し、
    動作状態を検出し、
    前記動作状態を検出する際に、エラーが発生したことを検出した場合、当該エラーに基づく復帰処理を実行し、
    前記復帰処理によりエラーから復帰した場合、前記動作状態を、記憶した前記初期化設定情報に基づく状態に設定することを特徴とする請求項1に記載のコントローラーの制御方法。
  3. アプリケーションからの処理要求に対する応答を前記アプリケーションに行うためのソフトウェアモジュールであるコントローラーの制御方法であって、
    前記アプリケーションから前記処理要求を受信し、
    受信した前記処理要求が初期化要求である場合、前記初期化要求に基づく初期化処理後の状態である初期化状態を示す初期化設定情報を記憶し、
    動作状態を検出し、
    前記動作状態を検出する際に、エラーが発生したことを検出した場合、当該エラーに基づく復帰処理を実行し、
    前記復帰処理によりエラーから復帰した場合、前記動作状態を、記憶した前記初期化設定情報に基づいて、前記初期化状態に設定することを特徴とするコントローラーの制御方法。
  4. 前記エラーが発生したことを検出した場合において、前記復帰処理によりエラーから復帰する前に、前記処理要求を受信した場合、
    前記処理要求に基づく処理を実行せずに、前記処理要求の失敗応答を返すことを特徴とする請求項3に記載のコントローラーの制御方法。
  5. 前記処理要求は、複数の処理要求をまとめて定義したものであることを特徴とする請求項1ないし4のいずれか一項に記載のコントローラーの制御方法。
  6. 前記複数の処理要求は、マークアップ言語で定義されていることを特徴とする請求項5に記載のコントローラーの制御方法。
JP2014076708A 2014-04-03 2014-04-03 コントローラーの制御方法 Expired - Fee Related JP5954353B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014076708A JP5954353B2 (ja) 2014-04-03 2014-04-03 コントローラーの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014076708A JP5954353B2 (ja) 2014-04-03 2014-04-03 コントローラーの制御方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2013056523A Division JP5516782B2 (ja) 2013-03-19 2013-03-19 コントローラーの制御方法およびコントローラー

Publications (2)

Publication Number Publication Date
JP2014160484A JP2014160484A (ja) 2014-09-04
JP5954353B2 true JP5954353B2 (ja) 2016-07-20

Family

ID=51612086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014076708A Expired - Fee Related JP5954353B2 (ja) 2014-04-03 2014-04-03 コントローラーの制御方法

Country Status (1)

Country Link
JP (1) JP5954353B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6504001B2 (ja) * 2015-09-18 2019-04-24 セイコーエプソン株式会社 Pos端末およびこれに搭載されたposドライバー

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09307587A (ja) * 1996-05-09 1997-11-28 Fujitsu Ltd 交換機
JP2000168196A (ja) * 1998-12-02 2000-06-20 Ricoh Co Ltd 画像形成装置の初期化方法
JP2001282394A (ja) * 2000-03-30 2001-10-12 Seiko Epson Corp 通信端末装置、その制御方法及びその記録媒体
JP4560570B2 (ja) * 2002-09-06 2010-10-13 キヤノン株式会社 情報処理装置及び情報処理方法及び印刷制御プログラム
JP2004139492A (ja) * 2002-10-21 2004-05-13 Hitachi Ltd コンピュータシステム
US7844956B2 (en) * 2004-11-24 2010-11-30 Rojer Alan S Object-oriented processing of markup
US7673174B2 (en) * 2005-04-06 2010-03-02 University Of Washington Recovering device drivers
JP4991402B2 (ja) * 2007-06-11 2012-08-01 キヤノン株式会社 情報処理装置、印刷設定方法、プログラム

Also Published As

Publication number Publication date
JP2014160484A (ja) 2014-09-04

Similar Documents

Publication Publication Date Title
JP5229112B2 (ja) コントローラーの制御方法およびコントローラー
KR102347703B1 (ko) 정보 처리 장치, 그 제어 방법 및 저장 매체
US20210311724A1 (en) Updating system, electronic control unit, updating management device, and updating management method
US11256539B2 (en) Task processing method, apparatus, and system based on distributed system
US9983791B2 (en) System management controller and method of configuration file backup and recovery
US9152492B2 (en) Performing recovery of a headless computer
RU2614569C2 (ru) Стойка с функцией автоматического восстановления и способ автоматического восстановления для этой стойки
CN104395879A (zh) 在运行具有握手的客户端界面时的自动更新
JP6369162B2 (ja) 監視装置、情報処理システム及び監視方法
US10402260B2 (en) Method and apparatus for handling errors in a storage system utilizing a hardware-environment-based platform or a virtual-environment-based platform
JP5954353B2 (ja) コントローラーの制御方法
JP5366184B2 (ja) データ記憶システム、データ記憶方法
JP4646859B2 (ja) Usb機器、およびusb接続システム
CN107678891B (zh) 一种存储系统的双控方法、装置及可读存储介质
JP2006235992A (ja) プリンタのファームウェア書き替えシステムおよびファームウェア書き替え方法並びにプリンタ
JP5516782B2 (ja) コントローラーの制御方法およびコントローラー
TW201640343A (zh) 傳送用以安裝作業系統之資料影像的技術
JP6749072B2 (ja) ストレージ管理装置及びストレージ管理プログラム
JP2007172186A (ja) データ更新装置及びデータ更新方法
JP2013045464A (ja) データカードとホストとの間の通信異常、及びデータカードの異常の回復のための方法
CN110045971B (zh) 系统升级恢复方法及装置
US20190303580A1 (en) Information processing apparatus, and information processing method
JP2017049874A (ja) 情報処理装置、情報処理システム、制御方法、および制御プログラム
JP4686211B2 (ja) コマンド出力装置及び入出力実行時間監視方法
JP6023898B1 (ja) 情報処理装置及び情報処理方法及び情報処理プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150721

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151204

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160530

R150 Certificate of patent or registration of utility model

Ref document number: 5954353

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees