本発明は、通信制御装置及び通信制御方法に関し、特に、同一の通信機器と複数のプロトコルを用いて通信可能な通信制御装置、通信制御方法、通信制御プログラム及び記憶媒体に関するものである。
PC(Personal Computer)からネットワークに接続された機器をネットワーク経由で機器の状態監視、機器への設定制御、機器の情報取得を行う手段として、SNMP(Simple Network Management Protocol)プロトコルを使って通信制御を行っていた。また最近では、SNMP以外のプロトコルでも、機器の状態監視、機器への設定制御、機器の情報取得を行う手段ができるようになった。例えば、PCからネットワークに接続された機器の情報を機器管理ソフトなどを用いて取得する場合、SOAP(Simple Object Access Protocol)のようにXML(Extensible Markup Language)形式のメッセージを用いて機器の情報を取得できる(例えば、特許文献1を参照)。
また、同一出願人より、通信可能な機器とネットワークを介して接続している通信制御装置であって、当該通信制御装置が対応しているプロトコルによる通信の可否を前記機器に問い合わせ、該問い合わせに対する前記機器からの応答に基づいて前記機器は該プロトコルによる通信は不可能であると判断した場合に、該プロトコルによって通信するための通信手段をネットワークを介して接続している外部装置よりダウンロードし、該通信手段を用いて前記機器と通信する通信管理手段を有する通信制御装置について提案されている(例えば、特許文献2を参照)。
特開2004−537091号公報
特開2005−204279号公報
しかしながら、従来の方法では、アプリケーションがある機器に取得設定したい情報項目にアクセスする際、どのプロトコルで通信制御を行えば良いかが分からないといった問題があった。
また、特許文献2に開示されている従来技術は、プロトコルによる通信は不可能であると判断した場合に、通信手段を、ネットワークを介して接続している外部装置よりダウンロードしなければならず、制御が複雑で且つダウンロードするために処理に時間を要するといった問題がある。
また、特許文献1に開示されているXML形式のメッセージを用いて機器の情報を取得する場合、その記述内容を定義できるものの、XMLデータの内容がメーカー依存であったり、機種依存であったりと言うように、その共通性は必ずしも担保されたものにはなっていない。
また、データが文字列である場合、SOAPを用いて機器情報を取得するときのXMLデータファイルは基本的にUTF−8(8-bit UCS Transformation Format)コードであるが、SNMPの場合は言語毎のキャラクターコード(日本語の場合はShift−JIS)が使われると言うように、機器情報を取得するためのプロトコルによっては扱う文字コードの体系もプロトコル依存である。そのため、対応するプロトコルが増えるに従い、文字コードの違いも意識しなければならない。
本発明では、上記従来技術の問題点を鑑み、機器との通信を行う際に、アプリケーションプログラムの負担を軽減することができる通信制御装置、通信制御方法、通信制御プログラム及び記憶媒体を提供することを目的とする。
本発明は、係る課題を解決するために、同一通信機器と複数のプロトコルを用いて通信する通信制御装置であって、前記通信機器から取得可能な機器情報を識別する情報ID及び前記通信機器にアクセスする際の手順を示すアクセス手順が、プロトコルごとに対応付けて定義されているプロトコル情報ID定義ファイルと、同一機器情報を取得可能な各プロトコルを識別する複数のプロトコル識別子、各プロトコルに対応する複数の前記情報ID、及び複数の前記情報IDを各プロトコルで共通化し1つのIDで示す共通情報IDが、前記機器情報ごとに対応付けて定義されている共通情報ID定義ファイルと、同一機器情報を取得可能な各プロトコルを識別する複数のプロトコル識別子、各プロトコルに対応する複数の前記情報ID、前記情報IDに基づき取得される機器情報値、及びプロトコルごとに異なる前記機器情報値を各プロトコルで共通化し1つの値で示す統一値が、前記機器情報ごとに対応付けて定義されているデータタイプ変換用データファイルと、処理の実行指示に従って、前記通信機器との通信処理を行う各プロトコルに対応する通信モジュールを制御する通信制御手段と、アプリケーションから前記機器情報の取得が要求されると、前記プロトコル情報ID定義ファイル及び/又は前記共通情報ID定義ファイルの定義情報に基づき、前記通信制御手段に対し、処理の実行を指示する情報制御手段と、前記通信機器から前記機器情報が取得されると、前記データタイプ変換用データファイルの定義情報に基づき、前記通信機器から取得された、プロトコルごとに異なる機器情報値を、統一された値に変換するデータタイプ変換手段と、を有し、前記情報制御手段は、前記共通情報IDファイルを参照し、情報取得要求時に前記アプリケーションから受け取った共通情報IDが存在するか否かを判定し、存在すると判定された場合に、前記共通情報IDファイルから、前記共通情報IDに対応付けて定義されている前記プロトコル識別子及び前記情報IDを取得し、取得したプロトコル識別子に基づき特定された前記プロトコル情報ID定義ファイルを参照し、取得した情報IDが存在するか否かを判定し、存在すると判定された場合に、前記プロトコル情報ID定義ファイルから、前記情報IDに対応付けて定義されている前記アクセス手順を取得し、前記通信制御手段は、前記情報制御手段により取得されたアクセス手順に従って、前記通信機器との通信処理を行い、前記アプリケーションから要求された機器情報を取得し、前記データタイプ変換手段に対し、取得した機器情報を通知し、前記データタイプ変換手段は、前記共通情報ID定義ファイルを参照し、前記アプリケーションから受け取った共通情報IDに基づき、前記共通情報IDファイルから、前記共通情報IDに対応付けて定義されている前記プロトコル識別子及び前記情報IDを取得し、前記データタイプ変換用データファイルを参照し、取得したプロトコル識別子及び情報IDに対応付けて定義されている前記機器情報値と一致する、前記通信制御手段により取得された機器情報の取得値を、該取得値と一致する前記機器情報値に対応付けて定義されている前記統一値に変換し、変換された機器情報が、前記アプリケーションに通知されることを特徴とする。
これによって、本発明の通信制御装置は、通信制御インタフェース、共通情報ID制御部、共通情報IDXMLファイル、プロトコル制御部、プロトコル情報IDXMLファイル及び通信ライブラリを備えて構成されるので、アプリケーションがプロトコルを意識させないで、機器との通信制御を行うことができる。
よって、機器との通信を行う際に、アプリケーションプログラムの負担を軽減することができる。
また、本発明は、係る課題を解決するために、同一通信機器と複数のプロトコルを用いて通信する通信制御装置における通信制御方法であって、処理の実行指示に従って、前記通信機器との通信処理を行う各プロトコルに対応する通信モジュールを制御する通信制御ステップと、アプリケーションから前記機器情報の取得が要求されると、前記通信機器から取得可能な機器情報を識別する情報ID及び前記通信機器にアクセスする際の手順を示すアクセス手順が、プロトコルごとに対応付けて定義されているプロトコル情報ID定義ファイル、及び/又は、同一機器情報を取得可能な各プロトコルを識別する複数のプロトコル識別子、各プロトコルに対応する複数の前記情報ID、及び複数の前記情報IDを各プロトコルで共通化し1つのIDで示す共通情報IDが、前記機器情報ごとに対応付けて定義されている共通情報ID定義ファイルの定義情報に基づき、前記通信制御ステップの処理の実行を指示する情報制御ステップと、前記通信機器から前記機器情報が取得されると、同一機器情報を取得可能な各プロトコルを識別する複数のプロトコル識別子、各プロトコルに対応する複数の前記情報ID、前記情報IDに基づき取得される機器情報値、及びプロトコルごとに異なる前記機器情報値を各プロトコルで共通化し1つの値で示す統一値が、前記機器情報ごとに対応付けて定義されているデータタイプ変換用データファイルの定義情報に基づき、前記通信機器から取得された、プロトコルごとに異なる機器情報値を、統一された値に変換するデータタイプ変換ステップと、を有し、前記情報制御ステップは、前記共通情報IDファイルを参照し、情報取得要求時に前記アプリケーションから受け取った共通情報IDが存在するか否かを判定し、存在すると判定された場合に、前記共通情報IDファイルから、前記共通情報IDに対応付けて定義されている前記プロトコル識別子及び前記情報IDを取得し、取得したプロトコル識別子に基づき特定された前記プロトコル情報ID定義ファイルを参照し、取得した情報IDが存在するか否かを判定し、存在すると判定された場合に、前記プロトコル情報ID定義ファイルから、前記情報IDに対応付けて定義されている前記アクセス手順を取得し、前記通信制御ステップは、前記情報制御ステップにより取得されたアクセス手順に従って、前記通信機器との通信処理を行い、前記アプリケーションから要求された機器情報を取得し、前記データタイプ変換ステップは、前記共通情報ID定義ファイルを参照し、前記アプリケーションから受け取った共通情報IDに基づき、前記共通情報IDファイルから、前記共通情報IDに対応付けて定義されている前記プロトコル識別子及び前記情報IDを取得し、前記データタイプ変換用データファイルを参照し、取得したプロトコル識別子及び情報IDに対応付けて定義されている前記機器情報値と一致する、前記通信制御ステップにより取得された機器情報の取得値を、該取得値と一致する前記機器情報値に対応付けて定義されている前記統一値に変換し、変換された機器情報が、前記アプリケーションに通知されることを特徴とする。
また、本発明は、上記通信制御方法をコンピュータが制御可能にプログラミングしたことを特徴とする。
これによって、本発明の通信制御プログラムは、本発明の通信制御方法をコンピュータが制御可能なOSに従ってプログラミングすることにより、そのOSを備えたコンピュータであれば同じ処理方法により制御することができる。
また、本発明は、上記通信制御プログラムをコンピュータが読み取り可能な形式で格納したことを特徴とする。
これによって、本発明の通信制御プログラムを格納した記憶媒体は、通信制御プログラムをコンピュータが読み取り可能な形式で記憶媒体に格納することにより、この記憶媒体を持ち運ぶことにより何処でもプログラムを稼動することができる。
本発明によれば、機器との通信を行う際に、アプリケーションプログラムの負担を軽減することができる通信制御装置、通信制御方法、通信制御プログラム及び記憶媒体を提供することができる。
以下、本発明の好適な実施の形態について、図面を用いて詳細に説明する。
図1は、本発明の実施例1に係るネットワークシステムの一例を示している。
このネットワークシステムは、複数の情報処理装置WS1〜WSn、及び、複数の画像形成装置MFP1〜MFPnが、ローカルエリアネットワークLANを介して接続されている。
画像形成装置MFP1〜MFPnは、通信制御装置を備え、ネットワークスキャナ機能、ネットワークプリンタ機能及び複写機能などの複数の画像形成機能を有するものである。また、それぞれの画像形成装置MFP1〜MFPnは、1つ以上の通信プロトコルを利用した通信が可能であり、実装されているプロトコルは、それぞれの画像形成装置MFP1〜MFPnにおいて異なる場合がある。
また、情報処理装置WS1〜WSnは、通信制御装置を備え、ローカルデータ処理機能及びネットワーク処理機能を有し、ローカルに作成した文書を、ローカルエリアネットワークLAN(Local Area Network)50(以下、「LAN40」と言う。)を介して画像形成装置MFP1〜MFPnからプリントアウトするなどの通信機能も備えている。また、情報処理装置WS1〜WSnは、画像形成装置MFP1〜MFPnから種々の情報を取得する周辺機器管理ソフトウェアが実装されている。
情報処理装置WS1〜WSnのユーザは、周辺機器管理ソフトウェアを用いて、LAN40に接続されている画像形成装置MFP1〜MFPnの機器情報を適宜に収集することができる。
図2(a)は、本発明の実施例1に係る画像形成装置MFP(MFP1〜MFPn)の構成例を示している。
同図において、システム制御部1は、この画像形成装置MFP1〜MFPnの各部の制御処理、及び、通信処理などの各種制御処理を行うものであり、システムメモリ2は、システム制御部1が実行する制御処理プログラム、及び、処理プログラムを実行するときに必要な各種データなどを記憶するとともに、システム制御部1のワークエリアを構成するものであり、パラメータメモリ3は、この画像形成装置MFP1〜MFPnに固有な各種の情報を記憶するためのものであり、時計回路4は、現在時刻情報を出力するものである。
スキャナ5は、所定の解像度で原稿画像を読み取るためのものであり、プロッタ6は、所定の解像度で画像を記録出力するためのものであり、操作表示部7は、この画像形成装置MFP1〜MFPnを操作するためのもので、各種の操作キー、及び、各種の表示器からなる。
画像処理部8は、スキャナ5で読み取って得た画像データについて、種々の画像処理を適用するためのものであり、磁気ディスク装置9は、画像データや種々のプログラムファイルなどの多数のファイルを記憶するためのものである。
LANI/F(interface)回路10は、この画像形成装置MFP1〜MFPnをLAN40に接続するためのものであり、LAN伝送制御部11は、LAN40を介して、他のデータ端末装置との間で種々のデータをやりとりするための各種所定のプロトコルスイートの通信制御処理を実行するためのものである。
これらの、システム制御部1、システムメモリ2、パラメータメモリ3、時計回路4、スキャナ5、プロッタ6、操作表示部7、画像処理部8、磁気ディスク装置9、及び、LAN伝送制御部10は、内部バス14に接続されており、これらの各要素間でのデータのやりとりは、主としてこの内部バス14を介して行われている。
図2(b)は、本発明の実施例1に係る情報処理装置WS(WS1〜WSn)の構成例を示している。
同図において、CPU(中央処理装置:Central Processing Unit)21は、この情報処理装置WS1〜WSnの動作制御を行うものであり、ROM(Read Only Memory)22は、CPU21が起動時に実行するプログラムや必要なデータなどを記憶するためのものであり、RAM(Random Access Memory)23は、CPU21のワークエリアなどを構成するためのものである。
キャラクタジェネレータ24は、図形文字の表示データを発生するためのものであり、時計回路25は、現在日時情報を出力するためのものであり、LANI/F回路26は、この情報処理装置WS1〜WSnをLAN40に接続するためのものであり、LAN伝送制御部27は、LAN40を介して、他のデータ端末装置との間で種々のデータをやりとりするための各種所定のプロトコルスイートの通信制御処理を実行するためのものである。
磁気ディスク装置28は、システムソフトウェア(オペレーティングシステム(後述))、種々のアプリケーションプログラム、ワークデータ、ファイルデータ、画情報データなどの種々のデータを記憶するためのものであり、CD−ROM(Compact Disk Read Only Memory)装置29は、交換可能な記憶媒体であるCD−ROM30のデータを読み込むためのものであり、CRT(Cathode Ray Tube)画面表示装置31は、この情報処理装置WS1〜WSnを操作するための画面を表示するためのものであり、表示制御部32は、CRT画面表示装置31の表示内容を制御するためのものである。
キーボード装置33は、この情報処理装置WS1〜WSnに種々のキー操作を行うためのものであり、画面指示装置34は、CRT画面表示装置31の任意の点を指示するなどの操作作業を行うためのものであり、入力制御部35は、キーボード装置33及び画面指示装置34の入力情報を取り込むなどするためのものである。
これらのCPU21、ROM22、RAM23、キャラクタジェネレータ24、時計回路25、ローカルエリアネット伝送制御部27、磁気ディスク装置28、CD−ROM装置29、表示制御部32、及び、入力制御部35は、内部バス36に接続されており、これらの各要素間のデータのやりとりは、主としてこの内部バス36を介して行われる。
図3は、本発明の実施例1に係る情報処理装置WS(WS1〜WSn)におけるソフトウェア構成の要部(部分)を示している。
アプリケーションプログラムAPは、システムを管理制御するためのオペレーティングシステムOS(Operating System)を介して、種々の機能を実現する。ここで、アプリケーションプログラムAPは、特に、ユーザが直接利用するソフトウェアであり、例えば、ネットワーク上に接続している画像形成装置MFP1〜MFPnの状態を表示するなどの周辺機器管理システム(ソフトウェア)である。
オペレーティングシステムOSには、サービス層SL、ネットワーク層NL及びソケットライブラリLSが設けられている。
サービス層SLは、機器及び機器を管理する機器管理サービス、機器情報やログ情報などの情報をDB(データベース)で管理するDBサーバサービス及びログ出力を管理するログサーバサービスなどのサービス(ライブラリ)を集めた群である。
ネットワーク層NLは、機器との通信制御、プロトコル管理、機器検索などの機能を備えたライブラリである。
ソケットライブラリLSは、ネットワーク対応アプリケーションにおいて、主にTCP/IPネットワーク通信の制御や手順をI/Fとして提供したライブラリ(通信ライブラリ)である。
図4は、本発明の実施例1に係るネットワーク層NLのより詳細な構成例を示している。
このネットワーク層NLは、アプリケーションプログラムAPに対して機器との通信機能(情報の取得や設定など)を提供するための機能が実装されている層であり、共通I/F(共通API)層、サービス層及びプロトコル層からなる。
共通I/F(共通API)層APIは、機器より取得する情報の種別などに依存しない抽象的なインタフェースをアプリケーションプログラムAPに対して提供するAPI(Application Program Interface)が実装されている層である。例えば、機器との通信を開始するための関数(Open)、機器20より情報を取得するための関数(Get)、機器20へ情報を設定するための関数(Set)、機器20との通信を終了するための関数(Close)などが実装されている。共通API層13における各関数は、アプリケーションプログラムAPより与えられる抽象的なパラメータ(取得したい情報の種別など)や、通信を制御するためのパラメータ(タイムアウトなど)に基づいて、サービス層を呼び出す。
サービス層MSは、機器情報サービスMS1、機器検索サービスMS2、共通ID管理サービスMS3、プロトコル制御サービスMS4及びXML管理サービスMS5など、それぞれのサービスに特化した機能を提供するモジュール群によって構成される。
機器情報サービスMS1は、機器の各種情報の取得や設定などの機能を提供するモジュールである。機器情報サービスMS1で取得や設定などが行われる機器情報について説明する。
図5は、本発明の実施例1に係る機器情報のカテゴリの例を示す図である。
図5に示されるように機器情報はいくつかのカテゴリに分類することができる。図5においては、表形式によって、各カテゴリのカテゴリ名と各カテゴリに属する情報とが示されている。図5より、例えば、機器情報のカテゴリとしては、給紙トレイに関する情報(給紙情報)、排紙トレイに関する情報(排紙情報)、サポートされているエミューレーションに関する情報(エミュレーション)、サポートされているフォントに関する情報(フォント)、ジョブに関する情報(ジョブ情報)、及びプロトコルのサポートの有無に関する情報(プロトコルサポート)などがあることが分かる。また、給紙情報には、給紙トレイ名、用紙サイズ及び状態などの情報が含まれることが分かる。
図4に戻り、機器検索サービスMS2は、ローカルエリアネットワークLANに接続している機器の検索機能を提供するモジュールである。
トラップサービスMS3は、機器とのSNMP通信において機器20より送信されるトラップ(TRAP)を受信し、受信したトラップをアプリケーションプログラムAPに対して通知する機能を提供するモジュールである。宛先管理サービスMS4は、メールの送信などにおける宛先に関する情報を管理するモジュールである。
共通ID管理サービスMS5は、アプリケーションからのID要求に基づきプロトコル層を介して機器情報を取得し、その情報をアプリケーションに返す機能を提供するモジュールであり、プロトコル制御サービスMS4は、各プロトコルのID管理、制御及びプロトコルの通信制御機能を提供するモジュールである。
XML管理サービスMS6は、アプリケーションプログラムAPより要求されるプロトコルのID及びそのIDと関連付けされている機器の情報をXMLファイルで管理し、共通ID管理からの要求に対して、管理しているXMLファイルから該当する情報を検索し、それを共通ID管理サービスに返す機能を提供するモジュールである。
サービス層MSは、共通API層を介してアプリケーションプログラムAPより与えられる抽象的なパラメータや、プロトコルに関するパラメータ(通信に利用するプロトコルについて、その種別の指定や自動的な判断に任せる旨の指定)などに基づいて、プロトコル層を呼び出す。
プロトコル層PLは、各プロトコルに依存したインタフェースによって、当該プロトコルによる機器などとの通信機能を上位層(ここではサービス層)に提供する層である。例えば、SNMP、FTP(File Transfer Protocol)、HTTP(HyperText Transfer Protocol)及びSOAPなどによって通信するためのモジュールが実装されている。
図6は、本発明の実施例1に係る通信制御機能の主要な機能構成例を示す図である。
この通信制御機能は、共通情報IDの管理及び制御を行う共通情報ID制御部51と、共通情報IDの情報を保存する共通情報ID定義ファイル(共通情報IDXMLファイル)52、各プロトコルIDの管理、制御及びプロトコルの通信制御を行うプロトコル制御部53、各プロトコルの管理、制御を行う各プロトコル管理部54、各プロトコル毎の情報IDの情報を保存するプロトコル情報ID定義ファイル(プロトコル情報IDXMLファイル)55及び各プロトコルモジュールの制御を行う各プロトコルモジュール管理部56とを備えて構成され、アプリケーションにプロトコルを意識させずに情報IDだけで通信制御を行うことを目的としている。
では、通信制御機能で取り扱われる情報IDを保存するプロトコル情報ID定義ファイル55及び共通情報ID定義ファイル52について説明する。
各プロトコルのプロトコル情報には、情報ID名、アクセス手順、戻り値及び制御関数などの項目が用意され、XML形式のファイル(プロトコル情報IDXMLファイル)として保存されている。
例えば、SNMPプロトコルの場合、以下のような、情報ID名(1)、アクセス手順(2)、戻り値(3)及びネットワーク層NL内部の制御関数(4)の項目が用意されている。
(1)情報ID名:給紙トレイ名
(2)アクセス手順:Printer−MIB prtInputName、Printer−MIB prtInputDescription
(3)戻り値:文字列型 給紙トレイ名
(4)制御関数: SNMP_GetInputTrayName
アプリケーションは、給紙トレイ名称に関する機器情報を取得する場合、プロトコル名SNMPを指定し、情報IDに給紙トレイ名を指定することで、プロトコル情報ID定義ファイル55内で該当するアクセス手順(アクセス手段)に従って制御関数SNMP_GetInputTrayNameにより、機器から給紙トレイ名称に関する機器情報が取得され、戻り値として文字列型の給紙トレイ名称を取得することができる。
図7は、本発明の実施例1に係るアクセス手順のXMLファイルの一例を示す図である。
図7では、機器情報カテゴリにおける給紙トレイについての情報を取得するための手順が定義されている。
情報IDに給紙トレイ名が指定された場合、指定された情報IDに該当する図7に示すアクセス手順に従って機器から給紙トレイ名の機器情報を取得する。
また、機器側から取得したい機器情報に幾つかのアクセス手順がある場合(同じ目的の情報IDが複数存在する場合)は、アプリケーションが指定した機器に対して、どの情報IDを使えば良いのか判断できない。そのような場合、複数に指定することも可能だが、アプリケーションに負担がかかる。そこで本発明では、次のようにしてアプリケーションの負担を軽減する。即ち、同じ目的の情報IDが複数ある場合は、1つのIDとしてまとめた共通情報ID(各プロトコル共通の識別情報)を設け、共通情報ID、各プロトコルの情報ID、戻り値及びネットワーク層NL内部の制御関数といった項目が用意され、XML形式でXMLファイル(共通情報IDXMLファイル及びプロトコル情報IDXMLファイル)として保存されている。
図8は、本発明の実施例1に係る機器名称に関する共通情報ID定義ファイル52の一例を示す図である。
図7に示す共通情報ID定義ファイル52の場合、機器名称を取得する方法には、「SNMPプロトコルでID=sysNameを指定する方法」、「SOAPプロトコルでID=system.sytemname.:1を指定する方法」及び「SOAPプロトコルでID=device.name:1を指定する方法」の3つがあり、それぞれの取得方法について、このXMLファイルでは定義されている。
アプリケーションは、機器名称に関する機器情報を取得する場合、共通情報IDに機器名称(SystemName)を指定することで、図7に示す3つの方法によって、機器から機器名称を取得することができる。
なお、Webサービスなどで機器側から機器名称を取得する場合、Webサービスで具体的に指定するパラメータなどの内容がメーカーによって異なる場合がある。例えば、A社の場合は、「system.systemname:1」でアクセスし、B社の場合は、「device.name:1」でアクセスすることになっている場合などである。本実施例では、このように異なる複数のWebサービスでも対応できるように、考慮している。
また、共通情報IDに記載されている各プロトコルの情報IDに優先度を設けたいことがある。即ち、アプリケーションからでも指定できるようにすることと、共通情報IDにプロトコル優先度という項目を設ける。その手順として、まずアプリケーションからプロトコルの優先度を指定する。次に、プロトコル優先度パラメータを用意して、情報ID検索処理の時、優先度の高いプロトコルから情報IDの検索を行う。そして共通情報IDにプロトコル優先度を指定して、情報ID検索処理の時、共通情報IDに指定した優先度の高いプロトコルから情報IDの検索を行う。
このような情報IDを用いることで、機器側から機器情報を取得したい場合、SNMPプロトコルやSOAPプロトコルなど、複数のプロトコルを介して機器との通信を行い、機器情報を取得することができる。
次に、通信制御機能において上述した情報IDや各プロトコルの管理、制御などを行うプロトコル制御部53、各プロトコル管理部54及び各プロトコルモジュール管理部56について図9〜12を用いて説明する。
図9は、本発明の実施例1に係る通信制御機能(情報IDがプロトコル情報IDで指定可能な場合)の基本フローチャートである。図9(a)はDeviceOpen()の基本フローチャートであり、(b)はDeviceGet()の基本フローチャートであり、(c)はDeviceClose()の基本フローチャートであり、(d)はプロトコル別通信処理の基本フローチャートである。
まず、図9(a)のDeviceOpen()は、アプリケーションに呼ばれた際、プロトコル指定パラメータに自動を指定しておくか否かを判断し(S1)、DeviceOpen()は、プロトコル指定の値が自動を指定された場合(S1でYESのルート)、プロトコル指定フラグをONにしておく(S2)。その後、初期処理を行い(S3)、アプリケーションに返す。アプリケーションが機器側から取得したい機器情報の情報IDを指定して図9(b)のDeviceGet()を呼ぶ。DeviceGet()は、プロトコル指定フラグがONか否かを判断し(S11)、プロトコル指定フラグがONの時(S11でYESのルート)、情報IDを基に情報ID検索処理を呼び(S12)、情報ID検索処理は、情報IDを基に各プロトコルのプロトコル情報ID定義ファイル55に登録されているかどうかを検索する(S13)。その結果をDeviceGet()に返す。DeviceGet()は、情報IDが存在した場合(S13でYESのルート)、検出されたプロトコルと情報IDを基にプロトコル別通信処理を呼び(S14)、DeviceGet()は、プロトコル別通信処理からの通信結果(取得した機器情報)を基に戻り値を作成し、アプリケーションに返す(S15)。一方、ステップS13で情報IDが存在しなかった場合(S13でNOのルート)、その旨を通知する戻り値を作成し、アプリケーションに返す(S15)。そしてアプリケーションがDeviceClose()を呼ぶ。DeviceClose()は、図9(c)のように後処理を行い(S21)、その結果をアプリケーションに返す。
プロトコル別通信処理は、図9(d)により情報IDを基にプロトコル情報ID定義ファイル55に登録されているかどうかを調べる(S22)。登録されている場合は(S22でYESのルート)、その情報IDに関する情報(該当するアクセス手順)を取得し(S23)、その情報に従って通信処理を行い(S24)、通信結果(取得した機器情報)をDeviceGet()に返す(S25)。
図10は、本発明の実施例1に係る通信制御機能(情報IDが共通情報IDとプロトコル情報IDの両方を指定可能な場合)の基本フローチャートである。図10(a)はDeviceOpen()の基本フローチャートであり、(b)はDeviceGet()の基本フローチャートであり、(c)はDeviceClose()の基本フローチャートであり、(d)はプロトコル別通信処理の基本フローチャートである。
まず、図10(a)のDeviceOpen()は、アプリケーションに呼ばれた際、プロトコル指定パラメータに自動を指定しておくか否かを判断し(S31)、DeviceOpen()は、プロトコル指定の値が自動を指定された場合は(S31でYESのルート)、プロトコル指定フラグをONにしておく(S32)。その後、初期処理を行い(S33)、アプリケーションに返す。
アプリケーションが機器側から取得したい機器情報の情報IDを指定して図10(b)のDeviceGet()を呼ぶ。DeviceGet()は、プロトコル指定フラグがONか否かを判断し(S41)、プロトコル指定フラグがONの時(S41でYESのルート)、まず、指定した情報IDを共通情報ID定義ファイル52に登録されているかどうかを調べ(S42)、登録されている場合は(S42でYESのルート)、その情報IDの情報を取り出す(S43)。情報IDを基に情報ID検索処理を呼び(S44)、情報ID検索処理は、情報IDを基に各プロトコルのプロトコル情報ID定義ファイル55に登録されているかどうかを検索する(S45)。その結果をDeviceGet()に返す。DeviceGet()は、情報IDが存在した場合(S45でYESのルート)、検出されたプロトコルと情報IDを基にプロトコル別通信処理を呼び(S46)、DeviceGet()は、プロトコル別通信処理からの通信結果(取得した機器情報)を基に戻り値を作成し、アプリケーションに返す(S47)。一方、ステップS45で情報IDが存在しなかった場合(S45でNOのルート)、その旨を通知する戻り値を作成し、アプリケーションに返す(S47)。そしてアプリケーションがDeviceClose()を呼ぶ。DeviceClose()は、図10(c)のように後処理を行い(S48)、その結果をアプリケーションに返す。
プロトコル別通信処理は、図10(d)により情報IDを基にプロトコル情報ID定義ファイル55に登録されているかどうかを調べる(S51)。登録されている場合は(S51でYESのルート)、その情報IDに関する情報(該当するアクセス手順)を取得し(S52)、その情報に従って通信処理を行い(S53)、通信結果(取得した機器情報)をDeviceGet()に返す(S54)。
図11は、本発明の実施例1に係る通信制御機能(情報IDがプロトコル情報IDで指定可能な場合)の処理手順の一例を示しており、図11のシーケンス図を参照して説明する。
なお、ここで、共通I/Fは、図4のネットワーク層NLにおける共通インタフェース(共通API:通信制御インタフェース)層APIを示す。また、共通情報ID制御部51は、図4のサービス層MSにある共通ID管理サービスの制御を行うマネジャー(管理)である。また、プロトコル制御部53は、各プロトコルIDの管理、制御及びプロトコルの通信制御(同図の各プロトコル管理部54の制御)を行う。また、各プロトコル管理部54は、図4のプロトコル層PLにある各プロトコルへの制御を行うマネジャー(管理)である。また、XML管理は、共通情報ID定義ファイル52及びプロトコル情報ID定義ファイル55である。また、各プロトコルモジュール管理部56は、図4のプロトコル層にあるSNMP、FTP、HTTP及びSOAPなどのプロトコルモジュール制御を行うマネジャー(管理)である。
まず、アプリケーションプログラムAPは、共通I/FのOpen関数を呼ぶ(1―1)。これにより、共通I/Fは、共通情報ID制御部51、プロトコル制御部53及び各プロトコル管理部54に対してOpenを要求し(1−2〜1−4)、共通情報ID制御部51は、共通情報ID制御部51内での初期化処理を行い、プロトコル指定が自動の場合、プロトコル制御部53を介して各プロトコル管理部54に対してOpenを要求し(1−2〜1―4)、各プロトコル管理部54は、各プロトコルの初期化処理を行い、Open要求の処理を終えたことを共通情報ID制御部51に通知する(1−5〜1−6)。
共通情報ID制御部51は、プロトコル制御部53から通知されたら、Open要求の処理を終えたことを共通I/Fに通知し(1−7)、共通I/Fは、共通情報ID制御部51から通知されたら、アプリケーションプログラムAPにOpen要求の処理を終えたことを通知する(1−8)。
次に、アプリケーションプログラムAPは、機器情報を取得するために共通I/Fに対して、取得したい機器情報に関するIDを引数(パラメータ)にDeviceGet()をコールすることで要求する(1−9)。ここで、機器情報に関するIDに、各プロトコルの情報IDを指定する。
共通I/Fは、共通情報ID制御部51に対して、取得したい機器情報に関するIDを要求し(1−10)、共通情報ID制御部51は、XML管理に、要求された情報IDを基に、情報IDがXML形式で保持された定義ファイル52、55を検索するように要求する(1−11)。
XML管理は、各プロトコル情報ID定義ファイル55を参照して、指定されたIDについて調べ、指定されたIDが存在するか否かを判定し、存在していればXMLに記載しているプロトコル名と情報IDを共通情報ID制御部51に通知する(1−12)。SNMPで取得したい機器情報に機器名称が要求された場合であれば、「sysName」を通知する。
共通情報ID制御部51は、XML管理から得られたプロトコル名とその情報IDをプロトコル制御部53を介して各プロトコル管理部54に通知し(1−13〜1−14)、各プロトコル管理部54は、指定したプロトコル名の情報IDをXML管理に通知する(1−15)。
XML管理は、指定されたプロトコル名の情報IDを基に、各プロトコル情報ID定義ファイル55を検索し、該当するプロトコル情報ID定義ファイル55から情報IDのアクセス手順を取得し、各プロトコル管理部54に通知する(1−16)。この時、各プロトコル管理部54に通知される情報は、例えば、取得した機器情報に給紙トレイ名が要求された場合は、図7に示すアクセス手順のXMLファイルから「prtInputName」というPrinter−MIBオブジェクト名が、各プロトコル管理部54へ通知される。
次いで、各プロトコル管理部54は、各プロトコルモジュール管理部56にプロトコル名とその情報IDのアクセス手順を通知し(1−17)、各プロトコルモジュール管理部56は、指定されたプロトコル名のモジュールに対して、通知されたアクセス手順に従って、機器から機器情報を取得し(1−18〜1−19)、取得した機器情報を各プロトコル管理部54に通知する(1―20)。
また、1−14から1−21までの処理手順は、XML管理から得られた情報IDが複数個存在する場合(例えば、SOOPで取得したい機器情報が機器名称の場合、情報IDが「system.systemname:1」と「device.name:1」の2つになる場合)、その数だけ処理手順を繰り返し、全ての情報IDの機器情報を取得する。
各プロトコル管理部54は、全ての情報IDの機器情報をまとめ、プロトコル制御部53を介して、共通情報ID制御部51に通知し(1−21〜1−22)、共通情報ID制御部51は、全ての情報IDの機器情報を共通I/Fに通知し(1−23)、共通I/Fは、アプリケーションプログラムAPに全ての情報IDの機器情報を通知する(1−24)。
これにより、アプリケーションプログラムAPは、取得した全ての情報IDの機器情報に基づいて、適切な処理(情報表示など)を行う。そして、共通I/Fに「Close」を要求する(1−25)。
従って、共通I/Fは、共通I/F内での終了処理を行い、共通情報ID制御部51に「Close」を要求し(1−26)、共通情報ID制御部51は、共通情報ID制御部51内での終了処理を行い、プロトコル制御部53を介して各プロトコル管理部54に「Close」を要求し(1−27〜1−28)、各プロトコル管理部54は、各プロトコル管理部54内での終了処理を行い、プロトコル制御部53を介して共通情報ID制御部51に終了処理を終えたことを通知する(1−29〜1−30)。
共通情報ID制御部51は、共通I/Fに終了処理を終えたことを通知し(1−31)、共通I/Fは、アプリケーションプログラムAPに終了処理を終えたことを通知して(1−32)、一連の通信制御機能の処理が終了する。
図12は、本発明の実施例1に係る通信制御機能(情報IDが共通情報IDとプロトコル情報IDの両方を指定可能な場合)の処理手順の一例を示しており、図11のシーケンス図を参照して説明する。
まず、アプリケーションプログラムAPは、共通I/FのOpen関数を呼ぶ(2―1)。これにより、共通I/Fは、共通情報ID制御部51、プロトコル制御部53及び各プロトコル管理部54に対してOpenを要求し(2−2〜2−4)、共通情報ID制御部51は、共通情報ID制御部51内での初期化処理を行い、プロトコル指定が自動の場合、プロトコル制御部53を介して各プロトコル管理部54に対してOpenを要求し(2−2〜2―4)、各プロトコル管理部54は、各プロトコルの初期化処理を行い、Open要求の処理を終えたことを共通情報ID制御部51に通知する(2−5〜2−6)。
共通情報ID制御部51は、プロトコル制御部53から通知されたら、Open要求の処理を終えたことを共通I/Fに通知し(2−7)、共通I/Fは、共通情報ID制御部51から通知されたら、アプリケーションプログラムAPにOpen要求の処理を終えたことを通知する(2−8)。
次に、アプリケーションプログラムAPは、機器情報を取得するために共通I/Fに対して、取得したい機器情報に関するIDを引数(パラメータ)にDeviceGet()をコールすることで要求する(2−9)。ここで、機器情報に関するIDに、各プロトコルの情報IDだけでなく、共通情報IDも指定することが可能である。例えば、図8に示した機器名称を取得する場合、「Get SystemName」と要求すれば良い。
共通I/Fは、共通情報ID制御部51に対して、取得したい機器情報に関するIDを要求し(2−10)、共通情報ID制御部51は、XML管理に、要求された情報IDを基に、情報IDがXML形式で保持された定義ファイル52、55を検索するように要求する(2−11)。
XML管理は、共通情報ID定義ファイル52及び各プロトコル情報ID定義ファイル55を参照して、指定されたIDについて調べ、指定されたIDが存在するか否かを判定し、存在していれば、要求されたIDが共通情報IDの場合、XMLに記載しているプロトコル名と情報IDを共通情報ID制御部51に通知する(1−12)。図8の例の場合であれば、「(ア)SNMPプロトコルでID=sysName。(イ)SOAPプロトコルでID=system.systemname:1。(ウ)SOAPプロトコルでID=device.name:1。」を通知する。また、要求された情報IDがプロトコルの情報IDの場合、プロトコル名とその情報IDを共通情報ID制御部51に通知する。
共通情報ID制御部51は、XML管理から得られたプロトコル名とその情報IDをプロトコル制御部53を介して各プロトコル管理部54に通知し(2−13〜2−14)、各プロトコル管理部54は、指定したプロトコル名の情報IDをXML管理に通知する(2−15)。
XML管理は、指定されたプロトコル名の情報IDを基に、各プロトコル情報ID定義ファイル55を検索し、該当するプロトコル情報ID定義ファイル55から情報IDのアクセス手順を取得し、各プロトコル管理部54に通知する(2−16)。この時、各プロトコル管理部54に通知される情報は、例えば、取得した機器情報に給紙トレイ名が要求された場合は、図7に示すアクセス手順のXMLファイルから「prtInputName」というPrinter−MIBオブジェクト名が、各プロトコル管理部54へ通知される。
次いで、各プロトコル管理部54は、各プロトコルモジュール管理部56にプロトコル名とその情報IDのアクセス手順を通知し(2−17)、各プロトコルモジュール管理部56は、指定されたプロトコル名のモジュールに対して、通知されたアクセス手順に従って、機器から機器情報を取得し(2−18〜2−19)、取得した機器情報を各プロトコル管理部54に通知する(2―20)。
また、2−14から2−21までの処理手順は、XML管理から得られた全てのプロトコル名とその情報IDが複数個存在する場合、その数だけ処理手順を繰り返し、全ての情報IDの機器情報を取得する。
各プロトコル管理部54は、全ての情報IDの機器情報をまとめ、プロトコル制御部53を介して、共通情報ID制御部51に通知し(2−21〜2−22)、共通情報ID制御部51は、全ての情報IDの機器情報を共通I/Fに通知し(2−23)、共通I/Fは、アプリケーションプログラムAPに全ての情報IDの機器情報を通知する(2−24)。
これにより、アプリケーションプログラムAPは、取得した全ての情報IDの機器情報に基づいて、適切な処理(情報表示など)を行う。そして、共通I/Fに「Close」を要求する(2−25)。
従って、共通I/Fは、共通I/F内での終了処理を行い、共通情報ID制御部51に「Close」を要求し(2−26)、共通情報ID制御部51は、共通情報ID制御部51内での終了処理を行い、プロトコル制御部53を介して各プロトコル管理部54に「Close」を要求し(2−27〜2−28)、各プロトコル管理部54は、各プロトコル管理部54内での終了処理を行い、プロトコル制御部53を介して共通情報ID制御部51に終了処理を終えたことを通知する(2−29〜2−30)。
共通情報ID制御部51は、共通I/Fに終了処理を終えたことを通知し(2−31)、共通I/Fは、アプリケーションプログラムAPに終了処理を終えたことを通知して(2−32)、一連の通信制御機能の処理が終了する。
以上のように、本発明の実施例1によれば、アプリケーションプログラムAPが、機器情報を取得する際に細かいパラメータの違い(アプリケーションがある機器に取得設定したい情報項目にアクセスする際、どのプロトコルで通信制御を行えば良いかが分からない)を意識することなく、共通情報IDやプロトコル情報IDを指定するだけで機器との通信が可能となり、アプリケーションプログラムAPの負担を軽減することができる。
また、機器との通信を行う際に、ネットワークを介して接続している外部装置より接続用モジュールをダウンロードするなど、機器との通信前に複雑な処理を行う必要がなく、接続までの処理時間を短縮することができる。
XML形式のメッセージを用いて機器情報を取得する場合、その記述内容を定義できるものの、XMLデータの内容がメーカー依存であったり、機種依存であったりと言うように、その共通性は必ずしも担保されたものにはなっていない。そのため、複数のプロトコルで取得できる機器情報のうち、同じ機器情報に対して取得要求した場合、各プロトコルから取得した機器情報の値が異なる場合がある。
本実施例では、上記の問題点を解決するため、複数のプロトコルで取得できる機器情報のうち、各プロトコルから取得した機器情報の値が異なる場合、それらを統一して扱えるようにするための通信制御機能について説明する。
本実施例と実施例1の異なる点は、実施例1の通信制御機能を基に、取得した機器情報の値を統一したデータタイプに変換するデータタイプ変換機能(データタイプ変換サービス)が付加された点である。
そのため、実施例1の説明で用いた、本実施例との共通点である図1のシステム構成や図2のハードウェア構成の例などについては、同一の符号を用いて説明を省略し、実施例1と異なるデータタイプ変換機能に関する内容を中心に説明する。
図13は、本発明の実施例2に係る通信制御機能の主要な機能構成例を示す図である。
この通信制御機能は、共通情報ID制御部51、共通情報ID定義ファイル52、プロトコル制御部53、各プロトコル管理部54、プロトコル情報ID定義ファイル55、各プロトコルモジュール管理部56の他、取得した機器情報の値を統一したデータタイプに変換し、データタイプの管理を行うデータタイプ管理部57及びデータタイプ変換用のデータを保持するデータタイプ変換用データファイル58とを備えて構成され、アプリケーションにプロトコルにおけるデータタイプの相違を意識させることなく通信制御を行うことを目的としている。
では、通信制御機能でデータタイプを変換する際に用いられるデータタイプ変換用データファイル57について説明する。
図14(a)は、トナーに関する共通情報ID定義ファイル(XMLファイル)の一例を示している。また、図14(b)は、異なる値をまとめたXMLファイルの一例を示しており、複数のプロトコルで取得できる機器情報のうち、各プロトコルから取得した機器情報の値が異なる場合、それらを統一して扱えるようにするためのデータタイプ変換用データファイル58である。
例えば、機器のトナーの色を取得するには、SNMPとSOAPの各プロトコルで取得でき、SNMPで取得するか、SOAPで取得するかは、機器側がサポートしているプロトコルに依存する場合について考えてみる。
ここで、「SNMPで取得できるトナーの色は、数字で返す」、「SOAPで取得できるトナーの色は、文字列で返す」と言うように、機器側が機器情報を返す値が統一されていない場合には、アプリケーションの機器情報を取得する処理において、数字を文字列に変換(データタイプを変換)するという処理を行うこととなり、負担がかかる。
そこで、本実施例では、図14(a)にある「Toner」のIDを使って、トナー情報を取得する。
図14(a)の共通情報ID定義ファイルでは、「Toner」をSNMPとSOAPのどちらかを用いることで、取得できる旨が定義されている。また、「VALUE」は、SNMPもしくはSOAPの値を統一した値にするための識別子である。ここで、「ValueID」は「TonerValue」であり、図14(b)のデータタイプ変換用データファイルを参照する際、「TonerValue」を参照する。
もし、SNMPで取得した場合は、name="SNMP"、value="tonner"の欄を見る。
また、SOAPで取得した場合は、name="SOAP"、value="printer.tonner.1"の欄を見る。
SNMPの場合、「tonner」の値が「02」で得られた場合、以下のようにvalue="2"の"2"を「Toner」の値として、アプリケーションに返す。
また、SOAPの場合、「printer.tonner.1」の値が"Red"で得られた場合、以下のようにvalue="2"の"2"を「Toner」の値として、アプリケーションに返す。
このようにして、取得された機器情報の値が数字であっても文字であっても、統一されたデータタイプに変換され、アプリケーションに返すことができる。
次に、通信制御機能において上述した、取得した機器情報の値を統一したデータタイプに変換し、データタイプの管理を行うデータタイプ管理部58について図15〜17を用いて説明する。
図15は、本発明の実施例2に係る通信制御機能におけるDeviceGet()の基本フローチャートである。以下の説明において、DeviceOpen()、DeviceClose()及びプロトコル別通信処理については、図10を用いて説明する。
まず、図10(a)のDeviceOpen()は、アプリケーションに呼ばれた際、プロトコル指定パラメータに自動を指定しておくか否かを判断し(S31)、DeviceOpen()は、プロトコル指定の値が自動を指定された場合は(S31でYESのルート)、プロトコル指定フラグをONにしておく(S32)。その後、初期処理を行い(S33)、アプリケーションに返す。
アプリケーションが機器側から取得したい機器情報の情報IDを指定して図15のDeviceGet()を呼ぶ。DeviceGet()は、プロトコル指定フラグがONか否かを判断し(S41)、プロトコル指定フラグがONの時(S41でYESのルート)、まず、指定した情報IDを共通情報ID定義ファイル52に登録されているかどうかを調べ(S42)、登録されている場合は(S42でYESのルート)、その情報IDの情報を取り出す(S43)。情報IDを基に情報ID検索処理を呼び(S44)、情報ID検索処理は、情報IDを基に各プロトコルのプロトコル情報ID定義ファイル55に登録されているかどうかを検索する(S45)。その結果をDeviceGet()に返す。DeviceGet()は、情報IDが存在した場合(S45でYESのルート)は、検出されたプロトコルと情報IDを基にプロトコル別通信処理を呼び(S46)、通信結果から得られた値を基にデータタイプ変換処理を呼び(S201)、DeviceGet()は、通信結果(取得した機器情報)と変換結果(統一したデータタイプ)を基に戻り値を作成し、アプリケーションに返す(S47)。一方、ステップS45で情報IDが存在しなかった場合(S45でNOのルート)、その旨を通知する戻り値を作成し、アプリケーションに返す(S202)。そしてアプリケーションがDeviceClose()を呼ぶ。DeviceClose()は、図10(c)のように後処理を行い(S48)、その結果をアプリケーションに返す。
プロトコル別通信処理は、図10(d)により情報IDを基にプロトコル情報ID定義ファイル55に登録されているかどうかを調べる(S51)。登録されている場合は(S51でYESのルート)、その情報IDに関する情報(該当するアクセス手順)を取得し(S52)、その情報に従って通信処理を行い(S53)、通信結果(取得した機器情報)をDeviceGet()に返す(S54)。
図16は、本発明の実施例2に係る通信制御機能におけるデータタイプ変換処理の基本フローチャートである。
データタイプ変換処理は、共通情報ID定義ファイル52及びデータタイプ変換用データファイル58を取得し(S211)、共通情報IDの情報を基に、共通情報ID定義ファイル52及びデータタイプ変換用データファイル58から共通情報IDに関連する情報を取り出す(S212)。そして指定された共通情報IDの情報を基に、共通情報IDに関連する情報が取り出せたかを調べる(S213)。取り出せた場合は(S213がYESのルート)、プロトコル別通信処理の通信結果と共通情報IDに関連する情報とを基に、各プロトコルから取得した情報を統一した値に変換し(S214)、変換結果(統一されたデータタイプ)をDeviceGet()に返す(S215)。
図17は、本発明の実施例2に係る通信制御機能の処理手順の一例を示しており、図17のシーケンス図を参照して説明する。
まず、アプリケーションプログラムAPは、共通I/FのOpen関数を呼ぶ(3―1)。これにより、共通I/Fは、共通情報ID制御部51、プロトコル制御部53及び各プロトコル管理部54に対してOpenを要求し(3−2〜3−4)、共通情報ID制御部51は、共通情報ID制御部51内での初期化処理を行い、プロトコル指定が自動の場合、プロトコル制御部53を介して各プロトコル管理部54に対してOpenを要求し(3−2〜3―4)、各プロトコル管理部54は、各プロトコルの初期化処理を行い、Open要求の処理を終えたことを共通情報ID制御部51に通知する(3−5〜3−6)。
共通情報ID制御部51は、プロトコル制御部53から通知されたら、Open要求の処理を終えたことを共通I/Fに通知し(3−7)、共通I/Fは、共通情報ID制御部51から通知されたら、アプリケーションプログラムAPにOpen要求の処理を終えたことを通知する(3−8)。
次に、アプリケーションプログラムAPは、機器情報を取得するために共通I/Fに対して、取得したい機器情報に関するIDを引数(パラメータ)にDeviceGet()をコールすることで要求する(3−9)。ここで、機器情報に関するIDに、各プロトコルの情報IDだけでなく、共通情報IDも指定することが可能である。例えば、図8に示した機器名称を取得する場合、「Get SystemName」と要求すれば良い。
共通I/Fは、共通情報ID制御部51に対して、取得したい機器情報に関するIDを要求し(3−10)、共通情報ID制御部51は、XML管理に、要求された情報IDを基に、情報IDがXML形式で保持された定義ファイル52、55を検索するように要求する(3−11)。
XML管理は、共通情報ID定義ファイル52及び各プロトコル情報ID定義ファイル55を参照して、指定されたIDについて調べ、指定されたIDが存在するか否かを判定し、存在していれば、要求されたIDが共通情報IDの場合、XMLに記載しているプロトコル名と情報IDを共通情報ID制御部51に通知する(3−12)。図8の例の場合であれば、「(ア)SNMPプロトコルでID=sysName。(イ)SOAPプロトコルでID=system.systemname:1。(ウ)SOAPプロトコルでID=device.name:1。」を通知する。また、要求された情報IDがプロトコルの情報IDの場合、プロトコル名とその情報IDを共通情報ID制御部51に通知する。
共通情報ID制御部51は、XML管理から得られたプロトコル名とその情報IDをプロトコル制御部53を介して各プロトコル管理部54に通知し(3−13〜3−14)、各プロトコル管理部54は、指定したプロトコル名の情報IDをXML管理に通知する(3−15)。
XML管理は、指定されたプロトコル名の情報IDを基に、各プロトコル情報ID定義ファイル55を検索し、該当するプロトコル情報ID定義ファイル55から情報IDのアクセス手順を取得し、各プロトコル管理部54に通知する(3−16)。この時、各プロトコル管理部54に通知される情報は、例えば、取得した機器情報に給紙トレイ名が要求された場合は、図7に示すアクセス手順のXMLファイルから「prtInputName」というPrinter−MIBオブジェクト名が、各プロトコル管理部54へ通知される。
次いで、各プロトコル管理部54は、各プロトコルモジュール管理部56にプロトコル名とその情報IDのアクセス手順を通知し(3−17)、各プロトコルモジュール管理部56は、指定されたプロトコル名のモジュールに対して、通知されたアクセス手順に従って、機器から機器情報を取得し(3−18〜3−19)、取得した機器情報を各プロトコル管理部54に通知する(3―20)。
また、3−14から3−21までの処理手順は、XML管理から得られた全てのプロトコル名とその情報IDが複数個存在する場合、その数だけ処理手順を繰り返し、全ての情報IDの機器情報を取得する。
各プロトコル管理部54は、全ての情報IDの機器情報をまとめ、プロトコル制御部53を介して、共通情報ID制御部51に通知し(3−21〜3−22)、共通情報ID制御部51は、情報IDが共通情報IDの場合、共通情報ID定義ファイル52に記載されている各プロトコルの情報IDの値を統一した値に変換し、まとめるようにデータタイプ管理部57に依頼する(3−23)。
データタイプ管理部57は、共通情報ID定義ファイル52及びデータタイプ変換用データファイル57(図14(b)参照)の取得依頼をXML管理に通知し(3−24)、XML管理は、共通情報IDをキーとし、共通情報IDの情報とデータタイプ変換用データファイル58から共通情報IDに関連する情報を取り出し、データタイプ管理部57に通知し(3−25)、データタイプ管理部57は、XML管理から取得した情報を参考に、各プロトコルの情報IDの値を統一した値に変換し、変換後の値を、まとめて共通情報ID制御部51に通知する(3−26)。
共通情報ID制御部51は、全ての情報IDの機器情報を共通I/Fに通知し(3−27)、共通I/Fは、アプリケーションプログラムAPに全ての情報IDの機器情報を通知する(3−28)。
これにより、アプリケーションプログラムAPは、取得した全ての情報IDの機器情報に基づいて、適切な処理(情報表示など)を行う。そして、共通I/Fに「Close」を要求する(3−29)。
従って、共通I/Fは、共通I/F内での終了処理を行い、共通情報ID制御部51に「Close」を要求し(3−30)、共通情報ID制御部51は、共通情報ID制御部51内での終了処理を行い、プロトコル制御部53を介して各プロトコル管理部54に「Close」を要求し(3−31〜3−32)、各プロトコル管理部54は、各プロトコル管理部54内での終了処理を行い、プロトコル制御部53を介して共通情報ID制御部51に終了処理を終えたことを通知する(3−33〜3−34)。
共通情報ID制御部51は、共通I/Fに終了処理を終えたことを通知し(3−35)、共通I/Fは、アプリケーションプログラムAPに終了処理を終えたことを通知して(3−36)、一連の通信制御機能の処理が終了する。
以上のように、本発明の実施例2によれば、アプリケーションプログラムAPは、機器情報を取得する際に細かいパラメータの違い(複数のプロトコルで取得できる機器情報のうち、各プロトコルで取得された機器情報の値が異なること)を意識することなく、共通情報IDを指定するだけで機器との通信が可能となり、アプリケーションプログラムAPの負担を軽減することができる。
また、各プロトコルにおけるデータの相違を吸収することができるので、アプリケーションプログラムAPを実装する際の開発作業にかかる負担が軽減される。
各プロトコルから取得するデータが文字列である場合、SOAPを用いて機器情報を取得するときのXMLデータファイルは、基本的にUTF−8コードであるが、SNMPの場合は、言語毎のキャラクターコード(日本語の場合はShift−JIS)が使われると言うように、機器情報を取得するためのプロトコルによって、扱う文字コード体系もプロトコル依存である。そのため、対応するプロトコルが増えるに従い、文字コードの違いも意識しなければならない。
本実施例では、上記の問題点を解決するため、複数のプロトコルで取得できる機器情報のうち、各プロトコルから取得した機器情報の値が文字列である場合、それらの文字コードをアプリケーションが指定する文字コードに変換し、扱えるようにするための通信制御機能について説明する。
本実施例と実施例1の異なる点は、実施例1の通信制御機能を基に、取得した機器情報の文字列を指定された文字コードに変換する文字コード変換機能(文字コード変換サービス)が付加された点である。
そのため、実施例1の説明で用いた、本実施例との共通点である図1のシステム構成や図2のハードウェア構成の例などについては、同一の符号を用いて説明を省略し、実施例1と異なる文字コード変換機能に関する内容を中心に説明する。
図18は、本発明の実施例3に係る通信制御機能の主要な機能構成例を示す図である。
この通信制御機能は、共通情報ID制御部51、共通情報ID定義ファイル52、プロトコル制御部53、各プロトコル管理部54、プロトコル情報ID定義ファイル55、各プロトコルモジュール管理部56、データタイプ管理部57及びデータタイプ変換用データファイル58の他、取得した機器情報の文字列を指定された文字コードに変換する文字コード変換部59を備えて構成され、アプリケーションにプロトコルにおける文字コードの違いを意識させることなく通信制御を行うことを目的としている。
次に、通信制御機能において上述した、取得した機器情報の文字列を指定された文字コードに変換する文字コード変換部59について図18〜22を用いて説明する。
図19は、本発明の実施例3に係る通信制御機能におけるデータタイプ変換処理の基本フローチャートである。DeviceOpen()、DeviceGet()、DeviceClose()及びプロトコル別通信処理については、図10及び15で説明した処理手順と同じため、これらの説明は省略する。
まず、データタイプ変換処理は、図15のDeviceGet()から呼ばれた際に、共通情報ID定義ファイル52及びデータタイプ変換用データファイル58を取得し(S211)、共通情報IDの情報を基に、共通情報ID定義ファイル52及びデータタイプ変換用データファイル58から共通情報IDに関連する情報を取り出す(S212)。そして指定された共通情報IDの情報を基に、共通情報IDに関連する情報が取り出せたかを調べる(S213)。取り出せた場合は(S213がYESのルート)、取り出した情報が文字列かを調べる(S301)。文字列である場合は(S301がYESのルート)、文字コード変換処理を呼ぶ(S302)。その後、プロトコル別通信処理の通信結果と共通情報IDに関連する情報とを基に、各プロトコルから取得した情報を統一した値に変換し(S214)、変換結果(統一したデータタイプ)をDeviceGet()に返す(S215)。
図20は、本発明の実施例3に係る通信制御機能におけるSetCharCode()の基本フローチャートであり、SetCharCode()は、アプリケーションが取得したい機器情報の文字コードを指定する関数である。
まず、SetCharCode()は、アプリケーションから呼ばれた際に、アプリケーションが取得したい機器情報(変換したい機器情報)の文字コードを指定し、メモリ(RAM23)上に一時記憶し(S311)、文字コードを一時記憶したことを通知する(S312)。
図21は、本発明の実施例3に係る通信制御機能における文字コード変換処理の基本フローチャートである。
まず、文字コード変換処理は、データタイプ変換処理に呼ばれた際に、メモリ(RAM23)上に一時記憶しておいた文字コードを読み出し(S321)、取り出した共通情報IDに関連する情報の文字列を、読み出した文字コードへ変換する(S322)。文字コード変換結果を、戻り値としてデータタイプ変換処理に返す(S323)。
図22は、本発明の実施例3に係る通信制御機能の処理手順の一例を示しており、図22のシーケンス図を参照して説明する。
まず、アプリケーションプログラムAPは、あらかじめ共通I/Fに使用したい文字コードを通知する(4−1)。共通I/Fは、文字コード変換部59に文字コードを通知し(4−2)、文字コード変換部59は、文字コードをメモリ(RAM23)上などに一時記憶し、記憶したことを共通I/Fに通知する(4−3)。そして、共通I/Fは、アプリケーションプログラムAPに記憶したことを通知する(4−4)。
次に、アプリケーションプログラムAPは、共通I/FのOpen関数を呼ぶ(4―5)。これにより、共通I/Fは、共通情報ID制御部51、プロトコル制御部53及び各プロトコル管理部54に対してOpenを要求し(4−6〜4−8)、共通情報ID制御部51は、共通情報ID制御部51内での初期化処理を行い、プロトコル指定が自動の場合、プロトコル制御部53を介して各プロトコル管理部54に対してOpenを要求し(4−6〜4−8)、各プロトコル管理部54は、各プロトコルの初期化処理を行い、Open要求の処理を終えたことを共通情報ID制御部51に通知する(4−9〜4−10)。
共通情報ID制御部51は、プロトコル制御部53から通知されたら、Open要求の処理を終えたことを共通I/Fに通知し(4−11)、共通I/Fは、共通情報ID制御部51から通知されたら、アプリケーションプログラムAPにOpen要求の処理を終えたことを通知する(4−12)。
次に、アプリケーションプログラムAPは、機器情報を取得するために共通I/Fに対して、取得したい機器情報に関するIDを引数(パラメータ)にDeviceGet()をコールすることで要求する(4−13)。ここで、機器情報に関するIDに、各プロトコルの情報IDだけでなく、共通情報IDも指定することが可能である。例えば、図8に示した機器名称を取得する場合、「Get SystemName」と要求すれば良い。
共通I/Fは、共通情報ID制御部51に対して、取得したい機器情報に関するIDを要求し(4−14)、共通情報ID制御部51は、XML管理に、要求された情報IDを基に、情報IDがXML形式で保持された定義ファイル52、55を検索するように要求する(4−15)。
XML管理は、共通情報ID定義ファイル52及び各プロトコル情報ID定義ファイル55を参照して、指定されたIDについて調べ、指定されたIDが存在するか否かを判定し、存在していれば、要求されたIDが共通情報IDの場合、XMLに記載しているプロトコル名と情報IDを共通情報ID制御部51に通知する(4−16)。図8の例の場合であれば、「(ア)SNMPプロトコルでID=sysName。(イ)SOAPプロトコルでID=system.systemname:1。(ウ)SOAPプロトコルでID=device.name:1。」を通知する。また、要求された情報IDがプロトコルの情報IDの場合、プロトコル名とその情報IDを共通情報ID制御部51に通知する。
共通情報ID制御部51は、XML管理から得られたプロトコル名とその情報IDをプロトコル制御部53を介して各プロトコル管理部54に通知し(4−17〜4−18)、各プロトコル管理部54は、指定したプロトコル名の情報IDをXML管理に通知する(4−19)。
XML管理は、指定されたプロトコル名の情報IDを基に、各プロトコル情報ID定義ファイル55を検索し、該当するプロトコル情報ID定義ファイル55から情報IDのアクセス手順を取得し、各プロトコル管理部54に通知する(4−20)。この時、各プロトコル管理部54に通知される情報は、例えば、取得した機器情報に給紙トレイ名が要求された場合は、図7に示すアクセス手順のXMLファイルから「prtInputName」というPrinter−MIBオブジェクト名が、各プロトコル管理部54へ通知される。
次いで、各プロトコル管理部54は、各プロトコルモジュール管理部56にプロトコル名とその情報IDのアクセス手順を通知し(4−21)、各プロトコルモジュール管理部56は、指定されたプロトコル名のモジュールに対して、通知されたアクセス手順に従って、機器から機器情報を取得し(4−22〜4−23)、取得した機器情報を各プロトコル管理部54に通知する(4−24)。
また、4−18から4−25までの処理手順は、XML管理から得られた全てのプロトコル名とその情報IDが複数個存在する場合、その数だけ処理手順を繰り返し、全ての情報IDの機器情報を取得する。
各プロトコル管理部54は、全ての情報IDの機器情報をまとめ、プロトコル制御部53を介して、共通情報ID制御部51に通知し(4−24〜4−26)、共通情報ID制御部51は、情報IDが共通情報IDの場合、共通情報ID定義ファイル52に記載されている各プロトコルの情報IDの値を統一した値に変換し、まとめるようにデータタイプ管理部57に依頼する(4−27)。
データタイプ管理部57は、共通情報ID定義ファイル52及びデータタイプ変換用データファイル57(図14(b)参照)の取得依頼をXML管理に通知し(4−28)、XML管理は、共通情報IDをキーとし、共通情報IDの情報とデータタイプ変換用データファイル58から共通情報IDに関連する情報を取り出し、データタイプ管理部57に通知し(4−29)、データタイプ管理部57は、XML管理から取得した情報を参考に、各プロトコルの情報IDの値を統一した値に変換し、変換後の値をまとめ。また、共通情報ID制御部51から共通情報IDの値もしくはデータタイプ変換後の値が文字列の場合、文字コード変換部59に文字列を通知する(4−30)。
文字コード変換部59は、メモリ(RAM23)上に一時記憶していた文字コードに文字列を変換し、変換した文字列をデータタイプ管理部57に通知し(4−31)、データタイプ管理部57は、共通情報IDの値、データタイプ変換後の値及び文字コード変換後の値の各情報を共通情報ID制御部51に通知する(4−31)。
共通情報ID制御部51は、全ての情報IDの機器情報を共通I/Fに通知し(4−32)、共通I/Fは、アプリケーションプログラムAPに全ての情報IDの機器情報を通知する(4−33)。
これにより、アプリケーションプログラムAPは、取得した全ての情報IDの機器情報に基づいて、適切な処理(情報表示など)を行う。そして、共通I/Fに「Close」を要求する(4−34)。
従って、共通I/Fは、共通I/F内での終了処理を行い、共通情報ID制御部51に「Close」を要求し(4−35)、共通情報ID制御部51は、共通情報ID制御部51内での終了処理を行い、プロトコル制御部53を介して各プロトコル管理部54に「Close」を要求し(4−36〜4−37)、各プロトコル管理部54は、各プロトコル管理部54内での終了処理を行い、プロトコル制御部53を介して共通情報ID制御部51に終了処理を終えたことを通知する(4−38〜4−39)。
共通情報ID制御部51は、共通I/Fに終了処理を終えたことを通知し(4−40)、共通I/Fは、アプリケーションプログラムAPに終了処理を終えたことを通知して(4−41)、一連の通信制御機能の処理が終了する。
以上のように、本発明の実施例3によれば、アプリケーションプログラムAPは、機器情報を取得する際に、プロトコルによって扱う文字コード体系による文字コードの違いを意識することなく、共通情報IDを指定するだけで自動的に文字コード変換を行うことができ、機器との通信が可能となり、アプリケーションプログラムAPの負担を軽減することができる。
また、各プロトコルにおける文字コードの相違を吸収することができるので、アプリケーションプログラムAPを実装する際の開発作業にかかる負担が軽減される。
本実施例では、複数のプロトコルで取得できる機器情報のうち、各プロトコルから取得した機器情報の値が文字列である場合、それらの文字コードを統一して扱えるようにするための通信制御機能について説明する。
本実施例と実施例1及び3の異なる点は、実施例3の通信制御機能を基に、取得した機器情報の文字列を統一した文字コードに変換する統一文字コード変換機能が付加された点である。
そのため、実施例1及び3の説明で用いた、本実施例との共通点である図1のシステム構成や図2のハードウェア構成の例などについては、同一の符号を用いて説明を省略し、実施例1と異なる統一文字コード変換機能に関する内容を中心に説明する。
図23は、本発明の実施例4に係るネットワーク層NLの構成例を示す図である。
このネットワーク層NLは、アプリケーションプログラムAPに対して機器との通信機能(情報の取得や設定など)を提供するための機能が実装されている層であり、共通I/F(共通API)層、サービス層及びプロトコル層からなる。
共通I/F(共通API)層APIは、機器より取得する情報の種別などに依存しない抽象的なインタフェースをアプリケーションプログラムAPに対して提供するAPI(Application Program Interface)が実装されている層である。例えば、機器との通信を開始するための関数(Open)、機器20より情報を取得するための関数(Get)、機器20へ情報を設定するための関数(Set)、機器20との通信を終了するための関数(Close)などが実装されている。共通API層13における各関数は、アプリケーションプログラムAPより与えられる抽象的なパラメータ(取得したい情報の種別など)や、通信を制御するためのパラメータ(タイムアウトなど)に基づいて、サービス層を呼び出す。
サービス層MSは、機器情報サービスMS1、機器検索サービスMS2、共通ID管理サービスMS3、プロトコル制御サービスMS4及びXML管理サービスMS5など、それぞれのサービスに特化した機能を提供するモジュール群によって構成される。
本実施例では、このサービス層MSのモジュール群に、文字コードサービスMS7が機能追加されている。
文字コードサービスMS7は、文字コードの取得や文字コードの変換など、文字コードに関する機能を提供するモジュール(文字コード取得方法を管理する管理手段)である。
図24は、本発明の実施例4に係る通信制御機能の主要な機能構成例を示す図である。
この通信制御機能は、共通情報ID定義ファイル52、プロトコル制御部53、各プロトコル管理部54、プロトコル情報ID定義ファイル55、各プロトコルモジュール管理部56の他、取得した機器情報の文字列を統一した文字コードに変換する統一文字コード変換部60及び統一文字コード変換用のデータを保持する統一文字コード変換用データファイル61とを備えて構成され、アプリケーションにプロトコルにおける文字コードの違いを意識させることなく通信制御を行うことを目的としている。
では、通信制御機能で文字コードを変換する際に用いられる統一文字コード変換用データファイル61について説明する。
図25(a)は、文字コードに関する共通情報ID定義ファイル(XMLファイル)の一例を示している。また、図25(b)は、文字コードに関するXMLファイルの一例を示しており、複数のプロトコルで取得できる機器情報のうち、各プロトコルから取得した機器情報の文字列を統一して扱えるようにするための統一文字コード変換用データファイル(文字コード取得方法)61である。
これらのファイルは、アプリケーションがシステム名などの機器情報を取得する際、その情報がどのような文字コード体系になっているかを通知しないと文字化け現象が発生することが考えられる。そこで、アプリケーションの文字化けを防ぐために、機器情報とその情報に使われている文字コードをアプリケーション側に提供しようというものである。
例えば、機器情報を取得する際、様々なプロトコルを使用する。例えば、SNMPやS
OAPなどが代表的なものである。SNMPの文字コードは、各MIB(Management Information Base)に使用する文字コードMIBというものがある。
図25の例では、sysNameというMIB II オブジェクト名の場合、prtLocalizationCharacterSetの値で文字コードMIBを参照するという意味であり、その文字コードMIBを参照する際のキーワードがCodeで表されている。
prtLocalizationCharaterSetには、他のプロトコルとの整合性を保つために、世界共通の文字コード(参考URL:http://www.iana.org/assignments/character-sets)を設定値として、アプリケーションに提供する。ここで言う世界共通の文字コードとは、コンピュータを使った情報交換が円滑にできるように国際標準として定めた文字セット(キャラクタセット)のうち、文字セットの中で一つ一つの文字を識別するために固有の番号を割り当てられたものである。
例えば、prtLocalizationCharacterSetの値が106の場合、UTF−8の文字コードになる。
また、SOAPの場合は、XMLデータに記載されているencodingの値に世界共通の文字コードと同じコードが設定されているため、その設定値をそのままアプリケーションに返す。例えば、<?XML Version="1.0" encoding="UTF―8">の場合、UTF−8が文字コードである。
このように、アプリケーションに機器情報を返す際、その情報の文字コードとして、世界で統一された(世界共通の)文字コードを返すことによって、文字化けを防ぐことができる。
次に、通信制御機能において上述した、取得した機器情報の文字列を統一した文字コードに変換する統一文字コード変換部60について図26〜28を用いて説明する。
図26は、本発明の実施例4に係る通信制御機能におけるDeviceGet()の基本フローチャートである。以下の説明において、DeviceOpen()、DeviceClose()及びプロトコル別通信処理については、図9を用いて説明する。
まず、図9(a)のDeviceOpen()は、アプリケーションに呼ばれた際、プロトコル指定パラメータに自動を指定しておくか否かを判断し(S1)、DeviceOpen()は、プロトコル指定の値が自動を指定された場合(S1でYESのルート)、プロトコル指定フラグをONにしておく(S2)。その後、初期処理を行い(S3)、アプリケーションに返す。アプリケーションが機器側から取得したい機器情報の情報IDを指定して図26のDeviceGet()を呼ぶ。DeviceGet()は、プロトコル指定フラグがONか否かを判断し(S11)、プロトコル指定フラグがONの時(S11でYESのルート)、情報IDを基に情報ID検索処理を呼び(S12)、情報ID検索処理は、情報IDを基に各プロトコルのプロトコル情報ID定義ファイル55に登録されているかどうかを検索する(S13)。その結果をDeviceGet()に返す。DeviceGet()は、情報IDが存在した場合(S13でYESのルート)、検出されたプロトコルと情報IDを基にプロトコル別通信処理を呼ぶ(S14)。DeviceGet()は、プロトコル別通信処理からの通信結果に対して、取得した情報が文字列であるかを調べる(S401)。文字列であった場合(S401でYESのルート)、統一文字コード変換処理を呼び(402)、DeviceGet()は、通信結果(取得した機器情報)と変換結果(統一した文字コード)とを基に戻り値を作成し、アプリケーションに返す(S15)。一方、ステップS401で取得した情報が文字列でなかった場合(S401でNOのルート)、統一文字コード変換処理を呼ばず、DeviceGet()は、プロトコル別通信処理からの通信結果(取得した機器情報)を基に戻り値を作成し、アプリケーションに返す(S15)。
また、ステップS13で情報IDが存在しなかった場合(S13でNOのルート)、その旨を通知する戻り値を作成し、アプリケーションに返す(S15)。そしてアプリケーションがDeviceClose()を呼ぶ。DeviceClose()は、図9(c)のように後処理を行い(S21)、その結果をアプリケーションに返す。
プロトコル別通信処理は、図9(d)により情報IDを基にプロトコル情報ID定義ファイル55に登録されているかどうかを調べる(S22)。登録されている場合は(S22でYESのルート)、その情報IDに関する情報(該当するアクセス手順)を取得し(S23)、その情報に従って通信処理を行い(S24)、通信結果(取得した機器情報)をDeviceGet()に返す(S25)。
図27は、本発明の実施例4に係る通信制御機能における統一文字コード変換処理の基本フローチャートである。
統一文字コード変換処理は、取得した文字コードに関する情報を基に、統一文字コード変換用データファイルを参照し(S411)、該当する統一文字コードに変換する(S412)。そして、変換結果(統一した文字コード)をDeviceGet()に返す(S413)。
図28は、本発明の実施例4に係る通信制御機能の処理手順の一例を示しており、図28のシーケンス図を参照して説明する。
まず、アプリケーションプログラムAPは、共通I/FのOpen関数を呼ぶ(5−1)。これにより、共通I/Fは、プロトコル制御部53を介して各プロトコル管理部54に対してOpenを要求し(5−2〜5−3)、各プロトコル管理部54は、各プロトコルの初期化処理を行い、Open要求の処理を終えたことを、プロトコル制御部53を介して共通I/F管理に通知する(5−4〜5―5)。また、共通I/Fは、プロトコル制御部53から通知されたら、アプリケーションプログラムAPにOpen要求の処理を終えたことを通知する(5−6)。
次に、アプリケーションプログラムAPは、機器情報を取得するために共通I/Fに対して、取得したい機器情報に関する情報IDを引数(パラメータ)にDeviceGet()をコールすることで要求する(5−7)。共通I/Fは、プロトコル制御部53を介して各プロトコル管理部54に対して、取得したい機器情報に関する情報IDを要求し(5−8〜5−9)、各プロトコル管理部54は、共通I/Fから要求された取得したい機器情報に関する情報IDの各IDについて、XML管理に、要求された情報IDを基に、情報IDがXML形式で保持された情報ID定義ファイル52、55を検索するように要求する(5−10)。
XML管理は、文字コードに関する共通情報ID定義ファイル(図25参照)から情報IDについての情報を取得し、各プロトコル管理部54に通知する(5−11)。例えば、取得したい機器情報が機器名称で、情報IDがsysNameの場合、共通情報ID定義ファイルからは、「<Property ID="sysName" controller="StringPropertyController" controllerType="Get">、<Param ID="1" name="Code", value="prtLocalizationCharacterSet" />、<Param ID="1" name="mibName", value="sysName">」という情報が得られる。ここで、「Property ID」は、情報ID名を表し、「controller」は、ネットワーク層NL内部での制御関数名を表し、「conntrollerType」は、処理動作概要を表す(「Get」は、「取得」と言う意味)。また、「Param ID」は、各種プロトコル情報を表し、「name」は、ネットワーク層NL内部での記述子を表し、「Value」は、プロトコル内容に関する情報を表す。また、「Code」は、文字コードに関する情報であり、文字コード情報元がprtLocalizationCharacterSetのMIBオブジェクトIDで表される。また、「mibName」は、MIBオブジェクト名であり、「sysName」の情報元がsysNameのMIBオブジェクトIDで表される。
各プロトコル管理54は、XML管理から得られた情報を各プロトコルモジュール管理部56に通知し(5−12)、各プロトコルモジュール管理56は、XML管理から得られた情報を基に指定したプロトコル名のモジュールに対して、機器側から機器情報を取得して、各プロトコル管理部54に通知する(5−13〜5−15)。例えば、sysNameとprtLocalizationCharacterSetのMIBオブジェクトIDの値を機器側から取得する。
次いで、各プロトコル管理部54は、取得した情報の中に文字コード(Code)に関する情報がある場合、文字コードの情報(prtLocalizationCharacterSetに関する情報)を文字コード管理部60に通知する(5−16)。
文字コード管理部60は、文字コードの情報を基にXML管理に統一文字コードへの変換を通知する(5−17)。文字コード管理部60が通知する文字コードの情報は、文字コードをIDや略号など、プロトコルによって表現が異なっている。例えば、SNMPの場合は、Printer−MIBのprtLocalizationCharacterSetの値が、世界共通の文字コード(参照URL:http://www.iana.org/assignments/character-sets)のMIBenum番号(ID)で表されており、Shift−JISの場合は、17もしくは2024である。
また、SOAPの場合は、XMLデータに記載されているencodingが文字コードを表しており、XMLデータが、<?XML Version="1.0" encoding="UTF―8">の場合、UTF−8が文字コードである。
このように、各プロトコルによって異なる文字コードの情報を、統一した文字コードに変換し、変換結果を返すようにする。
XML管理は、文字コードの情報を基に統一文字コードに変換し、変換結果(統一文字コード)を文字コード管理部60に通知する(5−18)。例えば、文字コードをMIBenum番号として返す場合、XMLデータに記載されているencodingがUTF−8であれば、UTF−8をキーに、図25(b)の統一文字コード変換用データファイル61を参照し、106に変換される。
文字コード管理部60は、統一文字コードを各プロトコル管理部54に通知し(5−19)、各プロトコル管理部54は、機器情報及び統一文字コードを、プロトコル制御部53を介して共通I/Fに通知し(5−20〜5−21)、共通I/Fは、アプリケーションプログラムAPに機器情報及び統一文字コードを通知する(5−22)。
そして、アプリケーションプログラムAPは、共通I/FにCloseを要求し(5−23)、共通I/Fは、プロトコル制御部53を介して各プロトコル管理部54にCloseを要求し(5−24〜5−25)、各プロトコル管理部54は、各プロトコル管理部54内での終了処理を行い、プロトコル制御部53を介して共通I/Fに終了処理を終えたことを通知する(5−26〜5−27)。それにより、共通I/Fは、アプリケーションプログラムAPに終了処理を終えたことを通知する(5−30)。
以上のように、本発明の実施例4によれば、アプリケーションプログラムAPは、機器情報を取得する際に、文字コードを取得する必要がなく、プロトコルによって扱う文字コード体系による文字コードの違いを意識することなく、機器との通信が可能となり、アプリケーションプログラムAPの負担を軽減することができる。
本実施例では、複数のプロトコルで取得できる機器情報のうち、各プロトコルから取得した機器情報の値が文字列であり、かつ文字列の文字コードに関する情報がない場合でも、扱えるようにするための通信制御機能について説明する。
本実施例と実施例1及び3の異なる点は、実施例3の通信制御機能を基に、取得した機器情報の文字列について文字コードの解析を行う文字コード解析機能が付加された点である。
そのため、実施例1及び3の説明で用いた、本実施例との共通点である図1のシステム構成や図2のハードウェア構成の例などについては、同一の符号を用いて説明を省略し、実施例1と異なる文字コード解析機能に関する内容を中心に説明する。
図29は、本発明の実施例5に係る通信制御機能の主要な機能構成例を示す図である。
この通信制御機能は、共通情報ID定義ファイル52、プロトコル制御部53、各プロトコル管理部54、プロトコル情報ID定義ファイル55、各プロトコルモジュール管理部56、統一文字コード変換部60及び統一文字コード変換用データファイル61の他、取得した機器情報の文字列の文字コードを解析する文字コード解析部62を備えて構成され、各プロトコルから取得した機器情報の文字列の文字コードに関する情報がない場合でも、アプリケーションにプロトコルにおける文字コードの違いを意識させることなく通信制御を行うことを目的としている。
次に、通信制御機能において上述した、取得した機器情報の文字列を統一した文字コードに変換する統一文字コード変換部60について図30〜32を用いて説明する。
図30は、本発明の実施例5に係る通信制御機能におけるDeviceGet()の基本フローチャートである。以下の説明において、DeviceOpen()、DeviceClose()及びプロトコル別通信処理については、図9を用いて説明する。
まず、図9(a)のDeviceOpen()は、アプリケーションに呼ばれた際、プロトコル指定パラメータに自動を指定しておくか否かを判断し(S1)、DeviceOpen()は、プロトコル指定の値が自動を指定された場合(S1でYESのルート)、プロトコル指定フラグをONにしておく(S2)。その後、初期処理を行い(S3)、アプリケーションに返す。アプリケーションが機器側から取得したい機器情報の情報IDを指定して図26のDeviceGet()を呼ぶ。DeviceGet()は、プロトコル指定フラグがONか否かを判断し(S11)、プロトコル指定フラグがONの時(S11でYESのルート)、情報IDを基に情報ID検索処理を呼び(S12)、情報ID検索処理は、情報IDを基に各プロトコルのプロトコル情報ID定義ファイル55に登録されているかどうかを検索する(S13)。その結果をDeviceGet()に返す。DeviceGet()は、情報IDが存在した場合(S13でYESのルート)、検出されたプロトコルと情報IDを基にプロトコル別通信処理を呼ぶ(S14)。DeviceGet()は、プロトコル別通信処理からの通信結果に対して、取得した情報が文字列であり、かつ文字コードに関する情報があるかを調べる(S501)。文字列で、かつ文字コードに関する情報があった場合(S501でYESのルート)、統一文字コード変換処理を呼び(402)、DeviceGet()は、通信結果(取得した機器情報)と変換結果(統一した文字コード)を基に戻り値を作成し、アプリケーションに返す(S15)。一方、ステップS501で取得した情報が文字列でなかった場合(S501で「文字列でない場合」のルート)、統一文字コード変換処理を呼ばず、DeviceGet()は、プロトコル別通信処理からの通信結果(取得した機器情報)を基に戻り値を作成し、アプリケーションに返す(S15)。また、ステップS501で取得した情報が文字列で、かつ文字コードに関する情報がない場合(S501で「文字コードに関する情報がない場合」のルート)、文字データ解析処理を呼び(S502)、解析処理後、解析結果(文字コードの情報)を基に、統一文字コード変換処理を行い(S402)、DeviceGet()は、統一文字コード変換処理からの変換結果を基に戻り値を作成し、アプリケーションに返す(S15)。
また、ステップS13で情報IDが存在しなかった場合(S13でNOのルート)、その旨を通知する戻り値を作成し、アプリケーションに返す(S15)。そしてアプリケーションがDeviceClose()を呼ぶ。DeviceClose()は、図9(c)のように後処理を行い(S21)、その結果をアプリケーションに返す。
プロトコル別通信処理は、図9(d)により情報IDを基にプロトコル情報ID定義ファイル55に登録されているかどうかを調べる(S22)。登録されている場合は(S22でYESのルート)、その情報IDに関する情報(該当するアクセス手順)を取得し(S23)、その情報に従って通信処理を行い(S24)、通信結果(取得した機器情報)をDeviceGet()に返す(S25)。
図31は、本発明の実施例5に係る通信制御機能における文字コード解析処理の基本フローチャートである。
文字コード解析処理は、取得した機器情報の文字列に対して文字コードの解析を行い(S511)、解析結果(解析後の文字コード)をDeviceGet()に返す(S512)。
図32は、本発明の実施例5に係る通信制御機能の処理手順の一例を示しており、図32のシーケンス図を参照して説明する。
まず、アプリケーションプログラムAPは、共通I/FのOpen関数を呼ぶ(6−1)。これにより、共通I/Fは、プロトコル制御部53を介して各プロトコル管理部54に対してOpenを要求し(6−2〜6−3)、各プロトコル管理部54は、各プロトコルの初期化処理を行い、Open要求の処理を終えたことを、プロトコル制御部53を介して共通I/F管理に通知する(6−4〜6―5)。また、共通I/Fは、プロトコル制御部53から通知されたら、アプリケーションプログラムAPにOpen要求の処理を終えたことを通知する(6−6)。
次に、アプリケーションプログラムAPは、機器情報を取得するために共通I/Fに対して、取得したい機器情報に関する情報IDを引数(パラメータ)にDeviceGet()をコールすることで要求する(6−7)。共通I/Fは、プロトコル制御部53を介して各プロトコル管理部54に対して、取得したい機器情報に関する情報IDを要求し(6−8〜6−9)、各プロトコル管理部54は、共通I/Fから要求された取得したい機器情報に関する情報IDの各IDについて、XML管理に、要求された情報IDを基に、情報IDがXML形式で保持された情報ID定義ファイル52、55を検索するように要求する(6−10)。
XML管理は、文字コードに関する共通情報ID定義ファイル(図25(a)参照)から情報IDについての情報を取得し、各プロトコル管理部54に通知する(6−11)。
各プロトコル管理54は、XML管理から得られた情報を各プロトコルモジュール管理部56に通知し(6−12)、各プロトコルモジュール管理56は、XML管理から得られた情報を基に指定したプロトコル名のモジュールに対して、機器側から機器情報を取得して、各プロトコル管理部54に通知する(6−13〜6−15)。例えば、sysNameとprtLocalizationCharacterSetのMIBオブジェクトIDの値を機器側から取得する。
ここで、各プロトコル管理部54は、取得した情報の中に文字コードに関する情報が含まれているかどうかを調べ、文字コードに関する情報が含まれていない場合には、文字コード解析部62に機器情報(文字列)を通知する(6−16)。
文字コード解析部62は、機器情報に書かれている文字コードを解析し、解析結果(文字コードの情報)を各プロトコル管理部54に通知し(6−17)、各プロトコル管理部54は、解析結果を文字コード管理60に通知する(6−18)。
また、各プロトコル管理部54は、取得した情報の中に文字コードに関する情報が含まれているかどうかを調べた際に、文字コードに関する情報が含まれている場合には、各プロトコル管理部54は、取得した文字コードの情報を文字コード管理部60に通知する(6−18)。
文字コード管理部60は、文字コードの情報を基にXML管理に統一文字コードへの変換を通知する(6−19)。
XML管理は、文字コードの情報を基に統一文字コードに変換し、変換結果(統一文字コード)を文字コード管理部60に通知する(6−20)。例えば、文字コードをMIBenum番号として返す場合、XMLデータに記載されているencodingがUTF−8であれば、UTF−8をキーに、図25(b)の統一文字コード変換用データファイル61を参照し、106に変換される。
文字コード管理部60は、統一文字コードを各プロトコル管理部54に通知し(6−21)、各プロトコル管理部54は、機器情報及び統一文字コードを、プロトコル制御部53を介して共通I/Fに通知し(6−22〜6−23)、共通I/Fは、アプリケーションプログラムAPに機器情報及び統一文字コードを通知する(6−24)。
そして、アプリケーションプログラムAPは、共通I/FにCloseを要求し(6−25)、共通I/Fは、プロトコル制御部53を介して各プロトコル管理部54にCloseを要求し(6−26〜6−27)、各プロトコル管理部54は、各プロトコル管理部54内での終了処理を行い、プロトコル制御部53を介して共通I/Fに終了処理を終えたことを通知する(6−28〜6−29)。それにより、共通I/Fは、アプリケーションプログラムAPに終了処理を終えたことを通知する(6−30)。
以上のように、本発明の実施例5によれば、アプリケーションプログラムAPは、機器情報を取得する際に、文字コードを取得する必要がなく、プロトコルによって扱う文字コード体系による文字コードの違いを意識することなく、機器との通信が可能となり、アプリケーションプログラムAPの負担を軽減することができる。
また、機器情報の文字列から文字コードを判別しているので、文字コードを判別する処理を行う必要がなく、各プロトコルにおける文字コードの相違を吸収することができるので、アプリケーションプログラムAPを実装する際の開発作業にかかる負担が軽減される。
本実施例では、これまでに説明した実施例3、4及び5の通信制御機能を組み合わせ、機器情報の値である文字列を適切な文字コードに変換する通信制御機能について説明する。
本実施例は、実施例3の文字コード変換処理、実施例4の統一文字コード変換処理及び実施例5の文字コード解析処理を組み合わせ、取得した機器情報の文字列に対して統一文字コード変換又は文字コード解析処理を行い、変換又は解析結果を基に、文字コード変換処理を用いて、文字コードの変換を行う通信制御機能である。
そのため、実施例1、3、4及び5の説明で用いた、本実施例との共通点である図1のシステム構成や図2のハードウェア構成の例などについては、同一の符号を用いて説明を省略し、文字コードに関する内容を中心に説明する。
図33は、本発明の実施例6に係る通信制御機能の主要な機能構成例を示す図である。
この通信制御機能は、共通情報ID定義ファイル52、プロトコル制御部53、各プロトコル管理部54、プロトコル情報ID定義ファイル55、各プロトコルモジュール管理部56、文字コード変換部59、統一文字コード変換部60、統一文字コード変換用データファイル61及び文字コード解析部62とを備えて構成され、アプリケーションにプロトコルにおける文字コードの違いを意識させることなく通信制御を行うことを目的としている。
図34は、本発明の実施例6に係る通信制御機能の処理手順の一例を示しており、図34のシーケンス図を参照して説明する。
まず、アプリケーションプログラムAPは、共通I/FのOpen関数を呼ぶ(7−1)。これにより、共通I/Fは、プロトコル制御部53を介して各プロトコル管理部54に対してOpenを要求し(7−2〜7−3)、各プロトコル管理部54は、各プロトコルの初期化処理を行い、アプリケーションプログラムAPから指定された文字コードがある場合は、指定文字コードを文字コード変換部59に通知する(7−4)。
文字コード変換部59は、指定文字コードが存在するかどうかを調べるために、文字コード管理部61に指定文字コードを通知し(7−5)、文字コード管理部61は、指定文字コードをXML管理に通知する(7−6)。XML管理は、文字コードに関する共通情報ID定義ファイル(図25(a)参照)を参照し、指定文字コードが存在するかどうかを調べ、その結果を文字コード管理部61に通知し(7−7)、文字コード管理部61は、結果を文字コード変換部59に通知し(7−8)、文字コード変換部59は、結果を各プロトコル管理部54に通知し(7−9)、各プロトコル管理部54は、各プロトコルの初期化処理を行い、Open要求の処理を終えたことを、プロトコル制御部53を介して共通I/F管理に通知する(7−10〜7−11)。
また、共通I/Fは、各プロトコル管理部54から通知されたら、アプリケーションにOpen要求の処理を終えたことを通知する(7−12)。
次に、アプリケーションプログラムAPは、機器情報を取得するために共通I/Fに対して、取得したい機器情報に関する情報IDを引数(パラメータ)にDeviceGet()をコールすることで要求する(7−13)。共通I/Fは、プロトコル制御部53を介して各プロトコル管理部54に対して、取得したい機器情報に関する情報IDを要求し(7−14〜7−15)、各プロトコル管理部54は、共通I/Fから要求された取得したい機器情報に関する情報IDの各IDについて、XML管理に、要求された情報IDを基に、情報IDがXML形式で保持された情報ID定義ファイル52、55を検索するように要求する(7−16)。
XML管理は、文字コードに関する共通情報ID定義ファイル(図25(a)参照)から情報IDについての情報を取得し、各プロトコル管理部54に通知する(7−17)。
各プロトコル管理部54は、XML管理から得られた情報を各プロトコルモジュール管理部56に通知し(7−18)、各プロトコルモジュール管理部56は、XML管理から得られた情報を基に指定したプロトコル名のモジュールに対して、機器側から機器情報を取得して、各プロトコル管理部54に通知する(7−19〜7−21)。
ここで、各プロトコル管理部54は、取得した情報の中に文字コードに関する情報が含まれているかどうかを調べ、文字コードに関する情報が含まれていない場合には、文字コード解析部62に機器情報(文字列)を通知する(7−22)。
文字コード解析部62は、機器情報に書かれている文字コードを解析し、解析結果(文字コードの情報)を各プロトコル管理部54に通知し(7−23)、各プロトコル管理部54は、解析結果を文字コード管理部60に通知する(7−24)。
また、各プロトコル管理部54は、取得した情報の中に文字コードに関する情報が含まれているかどうかを調べた際に、文字コードに関する情報が含まれている場合には、各プロトコル管理部54は、取得した文字コードの情報を文字コード管理部60に通知する(7−24)。
文字コード管理部60は、文字コードの情報を基にXML管理に統一文字コードへの変換を通知する(7−25)。
XML管理は、文字コードの情報を基に統一文字コードに変換し、変換結果(統一文字コード)を文字コード管理部60に通知する(7−26)。例えば、文字コードをMIBenum番号として返す場合、XMLデータに記載されているencodingがUTF−8であれば、UTF−8をキーに、図25(b)の統一文字コード変換用データファイル61を参照し、106に変換される。
文字コード管理部60は、統一文字コードを各プロトコル管理部54に通知し(7−27)、各プロトコル管理部54は、機器情報及び統一文字コードを文字コード変換部59へ通知し(7−28)、文字コード変換部59は、文字コード解析部62の解析結果である文字コードとあらかじめ指定された指定文字コードとを比較し、互いの文字コードが異なる場合、機器情報及び統一文字コードを指定文字コードに変換し、変換した機器情報及び指定文字コードを各プロトコル管理部54に通知する(7−29)。解析結果である文字コードと指定文字コードが一致する場合は、文字コード変換を行わない。
各プロトコル管理部54は、変換した機器情報及び指定文字コードを、プロトコル制御部53を介して共通I/Fに通知し(7−30〜7−31)、共通I/Fは、アプリケーションプログラムAPに機器情報及び統一文字コードを通知する(7−32)。
そして、アプリケーションプログラムAPは、共通I/FにCloseを要求し(7−33)、共通I/Fは、プロトコル制御部53を介して各プロトコル管理部54にCloseを要求し(7−34〜7−35)、各プロトコル管理部54は、各プロトコル管理部54内での終了処理を行い、プロトコル制御部53を介して共通I/Fに終了処理を終えたことを通知する(7−36〜7−37)。それにより、共通I/Fは、アプリケーションプログラムAPに終了処理を終えたことを通知する(7−38)。
以上のように、本発明の実施例6によれば、アプリケーションプログラムAPは、機器情報を取得する際に、文字コードを取得する必要がなく、プロトコルによって扱う文字コード体系による文字コードの違いを意識することなく、自動的に文字コード変換を行って機器との通信が可能となり、アプリケーションプログラムAPの負担を軽減することができる。
また、機器情報の文字列から文字コードを判別しているので、文字コードを判別する処理を行う必要がなく、各プロトコルにおける文字コードの相違を吸収することができるの
また、各プロトコルにおける文字コードの相違を吸収することができるので、アプリケーションプログラムAPを実装する際の開発作業にかかる負担が軽減される。
なお、上述した実施例では、図1に示したようなネットワークシステムに本発明を適用した場合について説明したが、それ以外の適宜な通信制御装置について、本発明を同様にして適用することができる。
また、本発明の通信制御機能は、実施例1〜6で説明した処理手順を通信制御プログラムとして設計・開発し、開発したプログラムをCPU21において実行する(演算処理する)ことで機能する。よって、コンピュータなどのCPU21を備えた情報処理装置WS1〜WSnが読み取り可能な記憶媒体に格納することができる。
最後に、上記実施例に挙げた形状に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。
これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
本発明の実施例1に係るネットワークシステムの一例を示す図である。
本発明の実施例1に係る画像形成装置の構成例を示す図である。
本発明の実施例1に係る情報処理装置の構成例を示す図である。
本発明の実施例1に係る情報処理装置におけるソフトウェア構成の要部(部分)を示す図である。
本発明の実施例1に係るネットワーク層のより詳細な構成例を示す図である。
本発明の実施例1に係る機器情報のカテゴリの例を示す図である。
本発明の実施例1に係る通信制御機能の主要な機能構成例を示す図である。
本発明の実施例1に係るアクセス手順のXMLファイルの一例を示す図である。
本発明の実施例1に係る機器名称に関する共通情報ID定義ファイルの一例を示す図である。
本発明の実施例1に係る通信制御機能(情報IDがプロトコル情報IDで指定可能な場合)におけるDeviceOpen()の基本フローチャートである。
本発明の実施例1に係る通信制御機能(情報IDがプロトコル情報IDで指定可能な場合)におけるDeviceGet()の基本フローチャートである。
本発明の実施例1に係る通信制御機能(情報IDがプロトコル情報IDで指定可能な場合)におけるDeviceClose()の基本フローチャートである。
本発明の実施例1に係る通信制御機能(情報IDがプロトコル情報IDで指定可能な場合)におけるプロトコル別通信処理の基本フローチャートである。
本発明の実施例1に係る通信制御機能(情報IDが共通情報IDとプロトコル情報IDの両方を指定可能な場合)におけるDeviceOpen()の基本フローチャートである。
本発明の実施例1に係る通信制御機能(情報IDが共通情報IDとプロトコル情報IDの両方を指定可能な場合)におけるDeviceGet()の基本フローチャートである。
本発明の実施例1に係る通信制御機能(情報IDが共通情報IDとプロトコル情報IDの両方を指定可能な場合)におけるDeviceClose()の基本フローチャートである。
本発明の実施例1に係る通信制御機能(情報IDが共通情報IDとプロトコル情報IDの両方を指定可能な場合)におけるプロトコル別通信処理の基本フローチャートである。
本発明の実施例1に係る通信制御機能(情報IDがプロトコル情報IDで指定可能な場合)の処理手順の一例を示すシーケンス図である。
本発明の実施例1に係る通信制御機能(情報IDが共通情報IDとプロトコル情報IDの両方を指定可能な場合)の処理手順の一例を示すシーケンス図である。
本発明の実施例2に係る通信制御機能の主要な機能構成例を示す図である。
本発明の実施例2に係るトナーに関する共通情報ID定義ファイルの一例を示す図である。
本発明の実施例2に係るデータタイプ変換用データファイルの一例を示す図である。
本発明の実施例2に係る通信制御機能におけるDeviceGet()の基本フローチャートである。
本発明の実施例2に係る通信制御機能におけるデータタイプ変換処理の基本フローチャートである。
本発明の実施例2に係る通信制御機能の処理手順の一例を示すシーケンス図である。
本発明の実施例3に係る通信制御機能の主要な機能構成例を示す図である。
本発明の実施例3に係る通信制御機能におけるデータタイプ変換処理の基本フローチャートである。
本発明の実施例3に係る通信制御機能におけるSetCharCode()の基本フローチャートである。
本発明の実施例3に係る通信制御機能における文字コード変換処理の基本フローチャートである。
本発明の実施例3に係る通信制御機能の処理手順の一例を示すシーケンス図である。
本発明の実施例4に係るネットワーク層の構成例を示す図である。
本発明の実施例4に係る通信制御機能の主要な機能構成例を示す図である。
本発明の実施例4に係る文字コードに関する共通情報ID定義ファイルの一例を示す図である。
本発明の実施例4に係る統一文字コード変換用データファイルの一例を示す図である。
本発明の実施例4に係る通信制御機能におけるDeviceGet()の基本フローチャートである。
本発明の実施例4に係る通信制御機能における統一文字コード変換処理の基本フローチャートである。
本発明の実施例4に係る通信制御機能の処理手順の一例を示すシーケンス図である。
本発明の実施例5に係る通信制御機能の主要な機能構成例を示す図である。
本発明の実施例5に係る通信制御機能におけるDeviceGet()の基本フローチャートである。
本発明の実施例5に係る通信制御機能における文字コード解析処理の基本フローチャートである。
本発明の実施例5に係る通信制御機能の処理手順の一例を示すシーケンス図である。
本発明の実施例6に係る通信制御機能の主要な機能構成例を示す図である。
本発明の実施例6に係る通信制御機能の処理手順の一例を示すシーケンス図である。
符号の説明
1 システム制御部
2 システムメモリ
3 パラメータメモリ
4 時計回路
5 スキャナ
6 プロッタ
7 操作表示部
8 画像処理部
9、28 磁気ディスク装置
10、26 LAN I/F
11、27 LAN伝送制御装置
14、36 バス
21 CPU
22 ROM
23 RAM
24 キャラクタジェネレータ
25 時計回路
29 CD−ROM装置
31 CRT画面表示装置
32 表示制御部
33 キーボード装置
34 画面指示装置
35 入力制御部
51 共通情報ID制御部
52 共通情報ID定義ファイル(共通情報IDXMLファイル)
53 プロトコル制御部
54 各プロトコル管理部
55 プロトコル情報ID定義ファイル(プロトコル情報IDXMLファイル)
56 各プロトコルモジュール管理部
57 データタイプ管理部
58 データタイプ変換用データファイル
59 文字コード変換部
60 文字コード管理部
61 統一文字コード変換用データファイル
62 文字コード解析部
61 統一文字コード変換用データファイル
AP アプリケーションプログラム
OS オペレーティングシステム
SL サービス層
NL ネットワーク層
LS ソケットライブラリ(通信ライブラリ)
API 共通インタフェース(共通API:通信制御インタフェース)層
MS サービス層
MS5 共通ID管理サービス
MS6 XML管理サービス
MS7 文字コードサービス
PL プロトコル層
WS1〜WSn 情報処理装置
MFP1〜MFPn 画像形成装置