(57)【要約】      （修正有）【課題】一つのデバイスを制御する共有ライブラリにて複数のデバイスを制御する情報処理装置を提供する。【解決手段】記憶部１１は、一つのデバイスを制御する共有ライブラリ２２０を格納する。ライブラリロード制御部１１０は、記憶部に格納された共有ライブラリ２２０をロードして実行する際に、制御するデバイスに対応づけられたフォルダを動的に生成し、フォルダに共有ライブラリ２２０の複製を作成する。ライブラリ実行部１２０は、ライブラリロード制御部１１０により作成されたフォルダ内の共有ライブラリ２２０の複製を実行し、対応づけられたデバイスを制御する。【選択図】図１
2020013199.tif 000002
【特許請求の範囲】
【請求項１】
一つのデバイスを制御する共有ライブラリを格納する記憶部と、
前記記憶部に格納された前記共有ライブラリをロードして実行する際に、制御する前記デバイスに対応づけられたフォルダを動的に生成し、前記フォルダに前記共有ライブラリの複製を作成するライブラリロード制御部と、
前記ライブラリロード制御部により作成された前記フォルダ内の前記共有ライブラリの前記複製を実行し、対応づけられた前記デバイスを制御するライブラリ実行部とを備える
ことを特徴とする情報処理装置。
【請求項２】
前記記憶部は、前記共有ライブラリの上位の共有ライブラリである上位ライブラリを更に格納し、
前記ライブラリロード制御部は、前記上位ライブラリを実行して、前記共有ライブラリをロードして実行する際の処理を実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ライブラリロード制御部は、アプリケーションプログラムの一つの処理単位として、前記共有ライブラリをロードして実行する際の処理を実行する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記デバイスは、カードリーダである
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
一つのデバイスを制御する共有ライブラリを格納する記憶部を備え、前記デバイスと接続して制御可能な情報処理装置により実行される情報処理方法であって、
前記記憶部に格納された前記共有ライブラリをロードして実行する際に、制御する前記デバイスに対応づけられたフォルダを動的に生成し、前記フォルダに前記共有ライブラリの複製を作成し、
作成された前記フォルダ内の前記共有ライブラリの前記複製を実行し、対応づけられた前記デバイスを制御する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及び情報処理方法に係り、特に接続されたカードリーダ等のデバイスを制御する情報処理装置及び情報処理方法に関する。
【背景技術】
【０００２】
従来から、カードリーダ等の複数のデバイスをＵＳＢ（Universal Serial Bus）等で接続して制御する情報処理システムが存在する。
特許文献１には、このような情報処理システムの一例が記載されている。
【０００３】
このような従来の情報処理システムでは、上位装置（情報処理装置）において、接続されたデバイスを制御するためのデバイスドライバ等のプログラムをインストールする必要がある。
このデバイスドライバ等では、デバイスを制御するためのＤＬＬ（Dynamic Link Library）や共有ライブラリ（Shared library）（以下、単に「共有ライブラリ」という。）を用いることがある。この共有ライブラリでは、変数等のインスタンスがグローバルスコープ（グローバル変数）として確保される。この上で、共有ライブラリは、ＯＳが管理する処理の単位であるプロセス（process、以下、単に「処理単位」という。）間で共有されるため、通常、一つの処理単位から、共有ライブラリを複数個ロードして実行することはできない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１８６７５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ここで、従来の情報処理装置では、単一デバイスを制御することしか想定していない（以下、「一つのデバイスを制御する」という。）共有ライブラリを用いることがあった。
この場合、当該一つのデバイスを制御する共有ライブラリを用いて、一つのアプリケーションプログラム（Application Program、以下、単に「アプリ」という。）の処理単位から、複数台のデバイスを制御することができないという問題があった。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、一つのデバイスを制御する共有ライブラリにて、複数台のデバイスを制御する情報処理装置を提供することを目的とする。また、本発明は、このような状況に鑑みてなされたものであり、一つのデバイスを制御する共有ライブラリにて、複数台のデバイスを制御する情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、一つのデバイスを制御する共有ライブラリを格納する記憶部と、前記記憶部に格納された前記共有ライブラリをロードして実行する際に、制御する前記デバイスに対応づけられたフォルダを動的に生成し、前記フォルダに前記共有ライブラリの複製を作成するライブラリロード制御部と、前記ライブラリロード制御部により作成された前記フォルダ内の前記共有ライブラリの前記複製を実行し、対応づけられた前記デバイスを制御するライブラリ実行部とを備えることを特徴とする。
このように構成することで、一つのデバイスを制御する共有ライブラリを用いて、複数台のデバイスを制御することができる。
【０００８】
本発明の情報処理装置は、前記記憶部は、前記共有ライブラリの上位の共有ライブラリである上位ライブラリを更に格納し、前記ライブラリロード制御部は、前記上位ライブラリを実行して、前記共有ライブラリをロードして実行する際の処理を実行することを特徴とする。
このように構成することで、容易に複数のデバイスを制御するアプリを実現できる。
【０００９】
本発明の情報処理装置は、前記ライブラリロード制御部は、アプリケーションプログラムの一つの処理単位として、前記共有ライブラリをロードして実行する際の処理を実行することを特徴とする。
このように構成することで、一つのデバイスを制御する共有ライブラリを用いて、アプリから直接、複数のデバイスを制御することができる。
【００１０】
本発明の情報処理装置は、前記デバイスは、カードリーダであることを特徴とする。
このように構成することで、一つのデバイスを制御する共有ライブラリを用いて、複数のカードリーダを制御することができる。
【００１１】
本発明の情報処理方法は、一つのデバイスを制御する共有ライブラリを格納する記憶部を備え、前記デバイスと接続して制御可能な情報処理装置により実行される情報処理方法であって、前記記憶部に格納された前記共有ライブラリをロードして実行する際に、制御する前記デバイスに対応づけられたフォルダを動的に生成し、前記フォルダに前記共有ライブラリの複製を作成し、作成された前記フォルダ内の前記共有ライブラリの前記複製を実行し、対応づけられた前記デバイスを制御することを特徴とする。
このように構成することで、一つのデバイスを制御する共有ライブラリを用いて、複数台のデバイスを制御することができる。
【発明の効果】
【００１２】
本発明によれば、共有ライブラリをロードして実行する際に、制御するデバイスに対応づけられたフォルダを動的に生成し、このフォルダに共有ライブラリの複製を作成し、フォルダ内の複製を実行して、対応づけられたデバイスを制御するように構成することで、一つのデバイスを制御する共有ライブラリにて複数台のデバイスを制御することが可能な情報処理装置及び情報処理方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態に係る情報処理システムのシステム構成図である。
【図２】本発明の実施の形態に係るデバイス制御処理のフローチャートである。
【図３】図２に示すデバイス制御処理におけるデバイス制御の概念図である。
【図４】本発明の他の実施の形態に係るデバイス制御の概念図である。
【発明を実施するための形態】
【００１４】
＜実施の形態＞
〔情報処理システムＸの構成〕
まず、図１を参照して、本発明の実施の形態に係る情報処理システムＸの構成について説明する。
本実施形態の情報処理システムＸは、本実施形態においては、カード発行機能を備えたＡＴＭ（Automated Teller Machine）、キオスク（Kiosk）の端末、交通機関のチケット発行システム、コンビニエンスストア等のポイントカード発行システム、小売店のメンバーカード発行システム、遊技機のカード発行／支払システム、入退場管理システム等（以下、単に「ＡＴＭ等」と省略して記載する。）である。
【００１５】
情報処理システムＸは、上位装置１及びカードリーダ２を含んでいる。
【００１６】
上位装置１は、ＡＴＭ等の各機能を実現するための本実施形態の情報処理装置の一例である。具体的には、上位装置１は、例えば、各部の制御用のＰＣ（Personal Computer）、タブレット端末、携帯電話等の制御演算装置を含み、情報処理システムＸの機能を実現するためのアプリ２００を実行する。加えて、上位装置１には、カード媒体の表面に印刷や刻印を行うプリンタ、ＬＣＤパネルや有機ＥＬパネル等のディスプレイ、タッチパネル、及びボタン等の周辺装置（図示せず）が接続されている。
上位装置１の詳細な構成については後述する。
【００１７】
カードリーダ２は、カード媒体を読み込み（リード）又は書き込み（ライト）可能な装置（デバイス）の一例である。本実施形態のカード媒体は、接触型又は非接触型のＩＣカード及び／又は磁気ストライプを備えた磁気カードである。このカード媒体は、例えば、個人認証ＩＤ（Identification）カード等の特殊なカードであってもよい。
加えて、本実施形態において、カードリーダ２は、プロダクトＩＤ等が異なる同一の製品を、上位装置１にＵＳＢ（Universal Serial Bus）等により複数接続可能である。
【００１８】
より具体的に説明すると、上位装置１は、制御部１０、記憶部１１、及びＩ／Ｆ部１２を含む情報処理装置である。
【００１９】
制御部１０は、ＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）等の制御演算手段である。
【００２０】
記憶部１１は、主記憶部及び補助記憶部を含む一時的でない記憶媒体である。主記憶部は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、ＳＲＡＭ（Static RAM）等である。補助記憶部は、フラッシュメモリ（Flash Memory）のようなＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）等を含む。補助記憶部には、制御部１０の制御プログラム（プログラム）が格納されている。この制御プログラムは、デバイスと接続して制御可能な上位装置１により実行されるプログラムである。本実施形態において、例えば、制御プログラムは、ＯＳ（Operating System）、アプリ２００、上位ライブラリ２１０及び共有ライブラリ２２０を含むデバイスドライバ、その他のファームウェア等を含む。
【００２１】
Ｉ／Ｆ部１２は、各カードリーダを接続するためのインターフェイス等である。Ｉ／Ｆ部１２は、例えば、ＵＳＢ、シリアル、パラレル等のインターフェイスを含んでいる。Ｉ／Ｆ部１２は、複数のポートを備えている。さらに、Ｉ／Ｆ部１２は、ハブ（Hub）を介して、複数のデバイスを接続することが可能である。
【００２２】
より詳細に説明すると、機能構成部として、制御部１０は、アプリ実行部１００、ライブラリロード制御部１１０、ライブラリ実行部１２０を備えている。
記憶部１１は、アプリ２００、上位ライブラリ２１０、及び共有ライブラリ２２０を格納する。
【００２３】
アプリ実行部１００は、上位装置１を制御するアプリ２００を実行する。本実施形態において、アプリ実行部１００は、記憶部１１のＲＯＭに格納されたアプリ２００をＲＡＭ等に展開して、ＯＳ上で実行する。
【００２４】
ライブラリロード制御部１１０は、記憶部１１に格納された共有ライブラリ２２０をロードして実行する際に、制御するデバイスに対応づけられたフォルダを動的に生成し、フォルダに共有ライブラリ２２０の複製を作成する。これにより、複数のデバイスを、それぞれについて区別して制御することが可能となる。
本実施形態においては、ライブラリロード制御部１１０は、上位ライブラリ２１０を実行して、共有ライブラリ２２０をロードして実行する際の処理を実行する。より具体的には、ライブラリロード制御部１１０は、アプリ２００の一つの処理単位として、共有ライブラリ２２０をロードして実行する際の処理を実行する。
【００２５】
ライブラリ実行部１２０は、ライブラリロード制御部１１０により作成されたフォルダ内の共有ライブラリ２２０の複製を実行し、対応づけられたデバイスを制御する。
【００２６】
アプリ２００は、本実施形態のアプリである。アプリ２００は、例えば、ＡＴＭ等の制御を行う。
【００２７】
共有ライブラリ２２０は、デバイスを制御する共有ライブラリ２２０である。本実施形態において、この共有ライブラリ２２０は、例えば、組み込み用のＷｉｎｄｏｗｓ（登録商標）系のＯＳにインストールされたＤＬＬ等の共有ライブラリである。この共有ライブラリ２２０は、上述のように、デバイス制御に必要なデータ、変数等のインスタンスがグローバルスコープで確保され、制御対象となるデバイス毎に独立して確保されない。これは、本実施形態の共有ライブラリ２２０は、一つのデバイスを制御するように作成され、複数のデバイスを制御することを想定して設計されていないためである。
【００２８】
上位ライブラリ２１０は、共有ライブラリ２２０の上位の共有ライブラリである。すなわち、本実施形態のＯＳでは、共有ライブラリを多層化して、共有ライブラリから共有ライブラリを呼び出すことが可能である。このため、上位ライブラリ２１０は、共有ライブラリ２２０を呼び出して実行する上位の共有ライブラリとして構成される。具体的には、上位ライブラリ２１０は、アプリ２００から呼び出されて、ライブラリロード制御部１１０として制御部１０に実行され、共有ライブラリ２２０を呼び出して各デバイスの制御を行わせる。
【００２９】
ここで、制御部１０は、内蔵する記録媒体に格納された制御プログラムを実行することで、アプリ実行部１００、ライブラリロード制御部１１０、ライブラリ実行部１２０として機能させられる。
また、上述の上位装置１の各部は、本発明の制御プログラム及び情報処理方法を実行するハードウェア資源となる。
なお、上述の機能構成部の一部又は任意の組み合わせをＩＣやプログラマブルロジックやＦＰＧＡ（Field-Programmable Gate Array）等でハードウェア的に構成してもよい。
【００３０】
〔デバイス制御処理〕
次に、図２及び図３により、本発明の実施の形態に係るデバイス制御処理の説明を行う。
本実施形態のデバイス制御処理では、記憶部１１に格納された共有ライブラリ２２０をロードして実行する際に、制御するデバイスに対応づけられたフォルダを動的に生成し、フォルダに共有ライブラリ２２０の複製を作成する。そして、作成されたフォルダ内の共有ライブラリ２２０の複製を実行し、対応づけられたデバイスを制御する。
本実施形態のデバイス制御処理は、制御部１０が、記憶部１１に格納された制御プログラム（図示せず）を、各部と協働し、ハードウェア資源を用いて実行する。
以下で、図２のフローチャートにより、本実施形態のデバイス制御処理をステップ毎に説明する。
【００３１】
（ステップＳ１０１）
まず、アプリ実行部１００が、アプリ実行開始処理を行う。
上位装置１の起動時や実行時等に、アプリ２００が補助記憶部から主記憶部に展開（ロード）されると、制御部１０はアプリ実行部１００として、ＡＴＭ等の処理を実行する。
この際、アプリ実行部１００は、デバイスの制御を実行するために、上位ライブラリ２１０を呼び出す。
【００３２】
（ステップＳ１０２）
次に、ライブラリロード制御部１１０が、ライブラリロード制御処理を行う。
ライブラリロード制御部１１０は、上位装置１へ接続されているデバイスを確認する。この際、ＵＳＢポート毎に、ポートの場所、ベンダーＩＤ、プロダクトＩＤ、ハードウェアＩＤ、デバイスＩＤ等の各デバイスを区別する情報を確認する。これにより、ライブラリロード制御部１１０は、制御するデバイスを決定し、デバイス番号等のＩＤ（Identification）を設定する。
【００３３】
次に、ライブラリロード制御部１１０は、制御するデバイス毎に、ユニークなフォルダ（ディレクトリ）を動的に生成する。このユニークなフォルダは、例えば、ＩＤに対応して作成されてもよい。
図３の例では、制御するカードリーダ２−１、２−２、２−３に対して、それぞれ、「ｔｅｍｐ１」「ｔｅｍｐ２」「ｔｅｍｐ３」のフォルダがそれぞれ作成されている。
【００３４】
次に、ライブラリロード制御部１１０は、それぞれのフォルダに共有ライブラリ２２０の複製を作成して、格納する。
ライブラリロード制御部１１０は、アプリ実行部１００からの指示等に対応して各デバイスを制御する際に、作成されたフォルダ名を含むファイル名に基づいて、作成された共有ライブラリ２２０の複製をロードする。
図３の例では、制御するカードリーダ２−１、２−２、２−３に対して、それぞれ、「ｔｅｍｐ１／ｌｉｂｒａｒｙ．ｄｌｌ」「ｔｅｍｐ２／ｌｉｂｒａｒｙ．ｄｌｌ」「ｔｅｍｐ３／ｌｉｂｒａｒｙ．ｄｌｌ」として、共有ライブラリ２２０がロードされる。
【００３５】
（ステップＳ１０３）
次に、ライブラリ実行部１２０が、ライブラリ実行処理を行う。
ライブラリ実行部１２０は、ロードされた共有ライブラリ２２０の複製毎に、対応するカードリーダ２を制御する。これにより、共有ライブラリ２２０のインスタンスを共有しないようにロードして実行し、各カードリーダを制御することが可能となる。
図３の例では、ライブラリ実行部１２０−１、１２０−２、１２０−３が実行され、それぞれ、カードリーダ２−１、２−２、２−３が制御される。
以上により、本発明の実施の形態に係るデバイス制御処理を終了する。
【００３６】
〔本実施形態の主な効果〕
以上のように構成することで、以下のような効果を得ることができる。
従来、一つのデバイスを制御する共有ライブラリでは、複数のデバイスを制御することはできなかった。これは、共有ライブラリは「共有」であるため、通常、一つの処理単位から複数個をロードして実行することはできず、デバイス毎にインスタンスを確保することができないためであった。すなわち、通常のロードでは、共有ライブラリのインスタンスが共有されてしまうため、デバイス毎にユニークなインスタンスを備えることはできなかった。
これに対して、本発明の実施の形態に係る上位装置１は、一つのデバイスを制御する共有ライブラリ２２０を格納する記憶部１１と、記憶部１１に格納された共有ライブラリ２２０をロードして実行する際に、制御するデバイスに対応づけられたフォルダを動的に生成し、フォルダに共有ライブラリ２２０の複製を作成するライブラリロード制御部１１０と、ライブラリロード制御部１１０により作成されたフォルダ内の共有ライブラリ２２０の複製を実行し、対応づけられたデバイスを制御するライブラリ実行部１２０とを備える情報処理装置であることを特徴とする。
このように構成し、動的に作成されたフォルダに共有ライブラリ２２０の複製を作成し、この複製を実行することにより、実体は同一のソフトウェアモジュールである共有ライブラリ２２０を、それぞれ別のモジュールとしてＯＳに認識させ、ロードさせることが可能となる。このため、結果としてデバイス毎にユニークなインスタンスを備えることができる。これにより、一つのデバイスを制御する共有ライブラリ２２０をそのまま利用し、複数台のデバイスを制御することが可能となる。すなわち、複雑な実装を必要とせず、既存の共有ライブラリ２２０で複数のデバイスを制御することができ、開発及びメンテナンスコストを削減できる。
【００３７】
ここで、一つのデバイスを制御する共有ライブラリについて、ソースコードを改変し、複数台のデバイスを制御するインスタンスが持てるよう作成しなおすことも考えられる。
しかしながら、共有ライブラリを作成しなおすことが不可能な場合や、コストが大きくかかる場合がありうる。これは、例えば、当該共有ライブラリのソースコードが入手不可能である場合、ソースコードが入手できてもライセンス等の関係で変更することが制限されている場合、若しくは、開発スケジュールにおいて時間的な余裕がない場合等が考えられる。
これに対して、本実施形態の上位装置１は、このような一つのデバイスを制御する共有ライブラリ２２０を改変することなくそのまま利用し、複数のデバイスを制御することが可能となる。すなわち、既存の共有ライブラリ２２０に一切変更を加えることなく、制御対象となるデバイスに対し、ユニークなインスタンスを確保することができる。
【００３８】
本発明の実施の形態に係る上位装置１は、記憶部１１は、共有ライブラリ２２０の上位の共有ライブラリである上位ライブラリ２１０を更に格納し、ライブラリロード制御部１１０は、上位ライブラリ２１０を実行して、共有ライブラリ２２０をロードして実行する際の処理を実行する情報処理装置であることを特徴とする。
このように構成し、共有ライブラリ２２０を多層化し、デバイス制御を行う共有ライブラリ２２０を改変せず、その共有ライブラリ２２０の上に上述の処理を行う共有ライブラリである上位ライブラリ２１０を配置する。これにより、容易に複数のデバイスを制御するアプリ２００を実現することが可能となる。すなわち、アプリ２００を大きく変更しなくても、複数台のデバイスを容易に制御することができる。
【００３９】
本発明の実施の形態に係る上位装置１は、制御するデバイスは、カードリーダ２であることを特徴とする。
このように構成することで、一つのデバイスを制御する共有ライブラリ２２０を用いても、複数のカードリーダ２を制御することができる。
【００４０】
〔他の実施の形態〕
なお、上述の実施の形態においては、上位ライブラリ２１０を用いて、既存の共有ライブラリ２２０を複数制御する例について説明した。
しかしながら、共有ライブラリを複数層にし、上位ライブラリ２１０を用いるような構成にしなくてもよい。すなわち、アプリ２００に上位ライブラリ２１０と同様の機能を備え、アプリ２００から直接、共有ライブラリ２２０をロードするように構成してもよい。
たとえば、図４の制御部１０ｂ及び記憶部１１ｂの概念図に示すように、本発明の他の実施の形態として、ライブラリロード制御部１１０と同様な構成のアプリ実行部１００ｂが、アプリ２００の一つの処理単位として、共有ライブラリ２２０をロードして実行する際の処理を実行するようにすることも可能である。
このように構成することで、アプリ２００から直接、一つのデバイスを制御する共有ライブラリ２２０を用いて、複数のデバイスを制御することが可能となる。このため、上位ライブラリ２１０を用意しないで複数のデバイスを制御するような構成に対応できる。
【００４１】
なお、最初から複数のデバイスを制御するように構成されたデバイスの制御用の共有ライブラリと、一つのデバイスを制御する共有ライブラリ２２０とを混在させて、複数のデバイスを制御させるように構成することも可能である。この場合、同種のデバイス又は異なるデバイスを制御させてもよい。
加えて、上述の実施の形態及び他の実施の形態では、三個のデバイスを制御する例について説明したものの、上位装置１が備える任意のポートに接続されたデバイスを制御することが可能である。さらに、ハブ等を一段又は多段で経由して接続されたデバイスにも適用可能である。
【００４２】
さらに、上述の実施の形態においては、制御するデバイスとして、カードリーダ２を用いる例について説明した。しかしながら、本発明は、これに限定されるものではなく、制御を行う任意のデバイスについて、適用可能である。たとえば、カードプリンタ、スキャナ、カード発行機構等に用いることも可能である。
加えて、上述の実施の形態では、共有ライブラリ２２０として、主にＤＬＬを用いる例について説明したものの、Ｌｉｎｕｘ（登録商標）等のＵｎｉｘ（登録商標）系ＯＳの共有ライブラリ、他の種類のＯＳの同種の共有されるライブラリ等であってもよい。
【００４３】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
【符号の説明】
【００４４】
１  上位装置
２、２−１、２−２、２−３  カードリーダ
１０、１０ｂ  制御部
１１、１１ｂ  記憶部
１２  Ｉ／Ｆ部
１００、１００ｂ  アプリ実行部
１１０  ライブラリロード制御部
１２０、１２０−１、１２０−２、１２０−３  ライブラリ実行部
２００  アプリ
２１０  上位ライブラリ
２２０  共有ライブラリ
Ｘ  情報処理システム
【図１】
2020013199.tif 000003
【図２】
2020013199.tif 000004
【図３】
2020013199.tif 000005
【図４】
2020013199.tif 000006