(57)【要約】【課題】共有メモリを介さずに、異なるセッションのプロセス間で接続可能な情報処理システムを提供する。【解決手段】  サービス実行部１００は、デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行する。プロセス実行部１１０は、サービス実行部１００により実行されるサービスを介して、デバイスに対する各種処理を行うプロセスを実行する。プロセス実行部１１０は、プロセスの実行時にユニークな識別子を生成して、サービスに出力する。サービス実行部１００は、ユニークな識別子を入力し、当該ユニークな識別子に対応するプロセスとの通信用パイプを設定して、プロセスを区別して通信する。【選択図】図２
2020009015.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と、該上位装置からの指示に従って処理を実行するデバイスとを含む情報処理システムであって、
前記上位装置は、
前記デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行するサービス実行部と、
前記サービス実行部により実行される前記サービスを介して、前記デバイスに対する各種処理を行うプロセスを実行するプロセス実行部とを備え、
前記プロセス実行部は、前記プロセスの実行時にユニークな識別子を生成して、前記サービスに出力し、
前記サービス実行部は、前記ユニークな識別子を入力し、当該ユニークな識別子に対応する前記プロセスとの通信用パイプを設定して、前記プロセスを区別して通信する
ことを特徴とする情報処理システム。
【請求項２】
前記プロセスは、複数であり、前記デバイスに対する制御を行う制御用プロセスと、前記デバイスの状態を監視する状態監視用プロセスとを含み、
前記プロセス実行部は、前記状態監視用プロセスを、前記制御用プロセスよりも上位権限のアカウントで実行する
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記サービス実行部は、
前記制御用プロセスから発行される動作コマンドを格納する制御用ＦＩＦＯと、
前記状態監視用プロセスから発行される状態通知コマンドを格納する状態通知用ＦＩＦＯとを含み、
前記状態通知用ＦＩＦＯに格納された前記状態通知コマンドより、前記制御用ＦＩＦＯに格納された前記動作コマンドを優先して前記デバイスに送信する
ことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記プロセス実行部は、前記状態監視用プロセスについて、外部ネットワークからのアクセスを受け付けて、前記アクセスに対応した処理を実行する
ことを特徴とする請求項２又は３に記載の情報処理システム。
【請求項５】
前記サービス及び前記プロセスは、共通で使用される共通識別子を含み、
前記プロセス実行部は、前記共通識別子を用いてユニークな識別子を出力する
ことを特徴とする請求項１乃至４のいずれか１項に記載の情報処理システム。
【請求項６】
前記デバイスは、非接触式カードリーダを含む
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理システム。
【請求項７】
デバイスに指示して処理を実行させる情報処理装置であって、
前記デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行するサービス実行部と、
前記サービス実行部により実行される前記サービスを介して、前記サービスとアカウントが異なっていてもよいプロセスであって、前記デバイスに対する各種処理を行う前記プロセスを実行するプロセス実行部とを備え、
前記プロセス実行部は、前記プロセスの実行時にユニークな識別子を生成して、前記サービスに出力し、
前記サービス実行部は、前記ユニークな識別子を入力し、当該ユニークな識別子に対応する前記プロセスとの通信用パイプを設定して、前記プロセスを区別して通信する
ことを特徴とする情報処理装置。
【請求項８】
デバイスに指示して処理を実行させる情報処理装置により実行される情報処理方法であって、
前記デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行し、
実行される前記サービスを介して、前記サービスとアカウントが異なっていてもよいプロセスであって、前記デバイスに対する各種処理を行う前記プロセスを実行し、
前記プロセスの実行時にユニークな識別子を生成して、前記サービスに出力し、
前記サービスにより、前記ユニークな識別子を入力し、当該ユニークな識別子に対応する前記プロセスとの通信用パイプを設定して、前記プロセスを区別して通信する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、及び情報処理方法に係り、特に複数のプロセスによる処理を実行する情報処理システム、情報処理装置、及び情報処理方法に関する。
【背景技術】
【０００２】
従来から、カードリーダ等のデバイスをＲＳ−２３２Ｃ（シリアル）等の信号線で接続して、複数のプロセスにより処理する情報処理システムが存在する。
たとえば、特許文献１に記載の情報処理システムは、上位装置（情報処理装置）において、ＲＳ−２３２Ｃに対して、通信制御を行うプロセスをローカルサーバ（ローカルサーバアプリケーションプログラム）として設けるように構成している。
この特許文献１の情報処理システムでは、上位装置で実行される、他のアプリケーションプログラム（Application Program、以下、単に「アプリ」という。）を変更することなく、デバイスを制御する制御用プロセス間で、プロセス間通信を行うことができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１９９４８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、セキュリティ上の観点から、ＡＴＭやＫＩＯＳＫ端末等の取引画面のプロセスをユーザ権限のアカウント（以下、「ユーザアカウント」という。）で実行し、カード等の取引を行わせたいという技術的な要求があった。一方、デバイス監視用のプロセスは管理者権限のアカウント（以下、「管理者アカウント」という。）で実行することが好適であった。
しかしながら、特許文献１に記載されたようなローカルサーバは、通常、異なるアカウントで実行された場合、すなわちセッションが異なる場合、プロセス間通信による接続ができないという問題があった。このためにセッション間でデータを共有するための共有メモリを設定することは、セキュリティ上できなかった。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、上述の問題を解消し、共有メモリを介さずに、異なるセッションのプロセス間で接続可能な情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理システムは、上位装置と、該上位装置からの指示に従って処理を実行するデバイスとを含む情報処理システムであって、前記上位装置は、前記デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行するサービス実行部と、前記サービス実行部により実行される前記サービスを介して、前記デバイスに対する各種処理を行うプロセスを実行するプロセス実行部とを備え、前記プロセス実行部は、前記プロセスの実行時にユニークな識別子を生成して、前記サービスに出力し、前記サービス実行部は、前記ユニークな識別子を入力し、当該ユニークな識別子に対応する前記プロセスとの通信用パイプを設定して、前記プロセスを区別して通信することを特徴とする。
このように構成することで、共有メモリを介さずに、異なるセッションのプロセス間で接続可能となる。
【０００７】
本発明の情報処理システムは、前記プロセスは、複数であり、前記デバイスに対する制御を行う制御用プロセスと、前記デバイスの状態を監視する状態監視用プロセスとを含み、前記プロセス実行部は、前記状態監視用プロセスを、前記制御用プロセスよりも上位権限のアカウントで実行することを特徴とする。
このように構成することで、デバイスの動作不具合等があった場合でも、アカウントを切り換えて対応等する必要がなくなる。
【０００８】
本発明の情報処理システムは、前記サービス実行部は、前記制御用プロセスから発行される動作コマンドを格納する制御用ＦＩＦＯと、前記状態監視用プロセスから発行される状態通知コマンドを格納する状態通知用ＦＩＦＯとを含み、前記状態通知用ＦＩＦＯに格納された前記状態通知コマンドより、前記制御用ＦＩＦＯに格納された前記動作コマンドを優先して前記デバイスに送信することを特徴とする。
このように構成することで、システムをスムーズに稼働できる。
【０００９】
本発明の情報処理システムは、前記プロセス実行部は、前記状態監視用プロセスについて、外部ネットワークからのアクセスを受け付けて、前記アクセスに対応した処理を実行することを特徴とする。
このように構成することで、遠隔環境から状態を把握することができる。
【００１０】
本発明の情報処理システムは、前記サービス及び前記プロセスは、共通で使用される共通識別子を含み、前記プロセス実行部は、前記共通識別子を用いてユニークな識別子を出力することを特徴とする。
このように構成することで、セキュリティ性を高めることができる。
【００１１】
本発明の情報処理システムは、前記デバイスは、非接触式カードリーダを含むことを特徴とする。
このように構成することで、セキュリティ性の高いサービスを提供できる。
【００１２】
本発明の情報処理装置は、デバイスに指示して処理を実行させる情報処理装置であって、前記デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行するサービス実行部と、前記サービス実行部により実行される前記サービスを介して、前記サービスとアカウントが異なっていてもよいプロセスであって、前記デバイスに対する各種処理を行う前記プロセスを実行するプロセス実行部とを備え、前記プロセス実行部は、前記プロセスの実行時にユニークな識別子を生成して、前記サービスに出力し、前記サービス実行部は、前記ユニークな識別子を入力し、当該ユニークな識別子に対応する前記プロセスとの通信用パイプを設定して、前記プロセスを区別して通信することを特徴とする。
このように構成することで、共有メモリを介さずに、異なるセッションのプロセス間で接続可能となる。
【００１３】
本発明の情報処理方法は、デバイスに指示して処理を実行させる情報処理装置により実行される情報処理方法であって、前記デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行し、実行される前記サービスを介して、前記サービスとアカウントが異なっていてもよいプロセスであって、前記デバイスに対する各種処理を行う前記プロセスを実行し、前記プロセスの実行時にユニークな識別子を生成して、前記サービスに出力し、前記サービスにより、前記ユニークな識別子を入力し、当該ユニークな識別子に対応する前記プロセスとの通信用パイプを設定して、前記プロセスを区別して通信することを特徴とする。
このように構成することで、共有メモリを介さずに、異なるセッションのプロセス間で接続可能となる。
【発明の効果】
【００１４】
本発明によれば、プロセスの実行時にユニークな識別子を生成して、サービスに出力し、サービスにおいて、当該ユニークな識別子に対応するプロセスとの通信用パイプを設定して、プロセスを区別して通信することで、共有メモリを介さずに、異なるセッションのプロセス間で接続可能な情報処理システムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係る情報処理システムのシステム構成図である。
【図２】本発明の実施の形態に係る機能構成の一例を示すブロック図である。
【図３】本発明の実施の形態に係るサービス接続処理のフローチャートである。
【図４】本発明の実施の形態に係るコマンド実行処理のフローチャートである。
【図５】本発明の実施の形態に係るプロセス間の接続及びコマンドの処理を説明するための概念図である。
【図６】従来の情報処理システムにおけるプロセス間の接続について説明するための概念図である。
【発明を実施するための形態】
【００１６】
＜実施の形態＞
〔情報処理システムＸのシステム構成〕
図１を参照して、本発明の実施の形態に係る情報処理システムＸの構成について説明する。情報処理システムＸは、本実施形態においては、カード発行機能を備えたＡＴＭ（Automated Teller Machine）、キオスク（Kiosk）端末、交通機関のチケット発行システム、コンビニエンスストア等のポイントカード発行システム、小売店のメンバーカード発行システム、遊技機のカード発行／支払システム、入退場管理システム等（以下、単に「ＡＴＭ等」と省略して記載する。）である。
【００１７】
情報処理システムＸは、上位装置１、カードリーダ２、及びサーバ３を含んでいる。
上位装置１とカードリーダ２とは、ＵＳＢ（Universal Serial Bus）等により接続されている。上位装置１とサーバ３とは、ネットワーク５を介して接続されている。
【００１８】
上位装置１は、本実施形態においては、ＡＴＭ等の各機能を実現するための情報処理装置である。具体的には、上位装置１は、例えば、ＡＴＭ等の本体装置であり制御用のＰＣ（Personal Computer）、タブレット端末、携帯電話等の制御演算装置を含み、情報処理システムＸの機能を実現するためのアプリを実行する。本実施形態において、上位装置１は、制御対象のデバイスとしてカードリーダ２と接続される。これに加え、上位装置１は、ネットワーク５、各種の周辺機器等とも接続可能である。
【００１９】
カードリーダ２は、上位装置１の制御対象であり、カード媒体４を読み込み（リード）又は書き込み（ライト）可能なデバイスの一例である。本実施形態においては、カードリーダ２は、例えば、非接触式カードリーダである。この非接触式カードリーダは、カード媒体４をアンテナの箇所でかざすことにより、相互の通信が可能である。
このため、カードリーダ２は、例えば、ＮＦＣ（Near Field Communication）のＲＦ（Radio Frequency）アンテナ、制御ＩＣ、ＬＥＤ（Light Emitting Diode）、ブザー等を含む。さらに、カードリーダ２は、カード媒体４のリードライトの暗号化、復号化等に用いるＳＡＭ（Secure Application Module）カードも内蔵可能である。本実施形態において、カードリーダ２と上位装置１との通信は、例えば、接続されているＵＳＢケーブルにて行われる。この通信により、カード媒体４の情報の送受信、及びＳＡＭカードの情報の送受信、カードリーダ２の状態の監視等が可能である。
【００２０】
サーバ３は、いわゆる「クラウド」上のＰＣサーバ（Server）、イントラネット上のサーバ等である。サーバ３は、上位装置１を介してカードリーダ２の保守管理を行うことが可能である。このため、サーバ３は、後述するようにカードリーダ２の状態の監視を行う。
【００２１】
カード媒体４は、本実施形態においては、非接触型のＩＣカードである。このカード媒体は、例えば、電磁誘導アンテナと、ＲＯＭ（Read Only Memory）及びＭＰＵ（Micro Processing Unit）を含むＩＣチップとを含んでいてもよい。
【００２２】
ネットワーク５は、インターネットや携帯電話網等のＷＡＮ（Wide Area Network）、ＬＡＮ（Local Area Network）のＩＰネットワーク等である。
【００２３】
より具体的に説明すると、上位装置１は、制御部１０、記憶部２０、Ｉ／Ｆ部３０、表示部４０、及び入力部５０を含んで構成される。
【００２４】
制御部１０は、ＭＰＵ（Micro Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）等を含む制御演算手段である。
【００２５】
記憶部２０は、ＲＡＭ（Random Access Memory ）、フラッシュメモリ（Flash Memory）等を含むＲＯＭ、ＳＳＤ（Solid State Drive）、ＨＤＤ（Hard Disk Drive）等の一時的でない記録媒体である。
【００２６】
Ｉ／Ｆ部３０は、外部の機器と接続するためのチップセット（Chipset）、Ｉ／Ｏ（Input / Output）等の回路及びインターフェイスである。Ｉ／Ｆ部３０は、例えば、デバイスや周辺機器と接続するためのＵＳＢ等の汎用シリアルインターフェイス、パラレルインターフェイス、デジタルビデオインターフェイス等を含んでいる。加えて、Ｉ／Ｆ部３０は、ネットワーク５に接続するためのネットワークインターフェイスも含んでいる。
【００２７】
表示部４０は、ＬＣＤ（Liquid Crystal Display）パネルや有機ＥＬパネル等のディスプレイである。表示部４０には、ＡＴＭ等の画面が表示される。これに加えて、本実施形態においては、表示部４０に、別途、管理者用の管理画面を表示させることも可能である。
【００２８】
入力部５０は、タッチパネル及び各種ボタン等である。このタッチパネルは、表示部４０と一体的に形成されていてもよい。
入力部５０は、ＡＴＭ等のユーザにより入力された情報を取得する。これに加え、本実施形態においては、入力部５０は、別途、管理者による保守管理の指示の情報を取得することも可能である。
【００２９】
〔情報処理システムＸの機能構成〕
次に、図２により、情報処理システムＸの機能構成について説明する。
本実施形態の情報処理システムＸの上位装置１は、カードリーダ２を制御及び監視し、サーバ３との接続を行うための機能構成として、サービス実行部１００及びプロセス実行部１１０を備えている。
【００３０】
サービス実行部１００は、デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行する。このサービスは、実際のカードリーダ２との通信の送受信を行う。
加えて、本実施形態においては、サービス実行部１００は、ユニークな識別子を入力し、当該ユニークな識別子に対応するプロセスとの通信用パイプを設定して、プロセスを区別して通信する。
【００３１】
具体的には、本実施形態のサービスは、例えば、Ｗｉｎｄｏｗｓ（登録商標）ＯＳ（Operating System）のサービスとして構成されたローカルサーバである。このため、サービス実行部１００は、ＯＳのサービス用の特殊なアカウントであるシステムアカウントでサービスのプロセスを実行する。これにより、サービスは、ＯＳ起動時に通常のアプリよりも先行して起動され、実行される。このため、管理者やゲストアカウントのセッション等で起動されるアプリのプロセスから、任意のタイミングで常時アクセス可能となる。
【００３２】
図２の具体例によれば、サービス実行部１００は、サービスＳを実行する。このサービスＳは、例えば、カードリーダ２のデバイスドライバとしてインストールされ、サービスアプリと、通信用ミドルウェアとを含んでいる。サービスアプリは、サービスとして、ＡＰＩ（Application Programming Interface）を提供し、各プロセスとの間での通信を行う。通信用ミドルウェアは、ＡＰＩに対応したカードリーダ２との実際の制御を行う。
【００３３】
プロセス実行部１１０は、サービス実行部１００により実行されるサービスを介して、デバイスに対する各種処理を行うプロセスを実行する。本実施形態において、このプロセスは、複数であり、制御用プロセスと、状態監視用プロセスとを含む。制御用プロセスは、デバイスに対する制御を行い、例えば、ＡＴＭ等の取引画面を介してデバイスを制御するプロセスである。状態監視用プロセスは、状態通知コマンド等を介して、デバイスの状態を監視する。ここで、プロセス実行部１１０は、状態監視用プロセスについては、制御用プロセスよりも上位権限のアカウントで実行する。本実施形態では、プロセス実行部１１０は、この状態監視用プロセスを、管理者アカウントで実行する。
加えて、本実施形態においては、プロセス実行部１１０は、プロセスの実行時にユニークな識別子を生成して、サービスに出力する。このユニークな識別子は、共通で使用される共通識別子を含む。この共通識別子は、カードリーダ２に関連するプロセスであることを認識させ得る文字列等を含む。プロセス実行部１１０は、この共通識別子を用いて、上述のユニークな識別子を出力する。
【００３４】
図２の具体例によれば、プロセス実行部１１０は、制御用プロセスＰ１、制御用プロセスＰ２、状態監視用プロセスＰＷをそれぞれ実行する。
【００３５】
制御用プロセスＰ１は、非接触カード制御用アプリと、通信用ミドルウェアとを含んでいる。非接触カード制御用アプリは、ＡＴＭ等の機能に対応して、通信用ミドルウェアを介して、コマンドをサービスＳに送信し、コマンドの実行結果を取得する。このコマンドは、カードリーダ２に対し、カード媒体４のリードライトの待機、ＬＥＤの点灯、ブザー制御等である。通信用ミドルウェアは、この上述のサービスＳ用のＡＰＩに対応したコマンドを送信し、サービスから実行結果通知等のデータを受信する。
【００３６】
制御用プロセスＰ２は、ＳＡＭカードアプリと、通信用ミドルウェアとを含んでいる。ＳＡＭカードアプリは、ＳＡＭカード通信コマンド等について、通信用ミドルウェアを介して送受信する。
ここで、プロセス実行部１１０は、制御用プロセスＰ１、制御用プロセスＰ２を、ゲスト用のユーザアカウントであるゲストアカウントにて実行する。
【００３７】
さらに、状態監視用プロセスＰＷは、状態監視用アプリと、通信用ミドルウェアとを含んでいる。状態監視用アプリは、通信用ミドルウェアを介してサービスＳと接続し、ＵＳＢとの通信状況、カードリーダ２の状態の監視等を行う。加えて、状態監視用アプリは、上位装置１に接続された周辺機器の状態も監視可能である。さらに、状態監視用アプリは、サーバ３と接続する通信機能を含んでいる。
ここで、プロセス実行部１１０は、状態監視用プロセスＰＷについては、管理者アカウントで実行する。
【００３８】
ここで、制御部１０は、記憶部２０に格納された制御プログラムを実行することで、サービス実行部１００及びプロセス実行部１１０として機能させられる。
また、上述の上位装置１の各部は、本発明の制御プログラム及び情報処理方法を実行するハードウェア資源となる。
なお、上述の機能構成の一部又は任意の組み合わせをＩＣやプログラマブルロジックやＦＰＧＡ（Field-Programmable Gate Array）等でハードウェア的に構成してもよい。
【００３９】
〔サービス接続処理及びコマンド実行処理〕
次に、図３〜図５により、本発明の実施の形態に係るサービス接続処理及びコマンド実行処理について説明する。
本実施形態のサービス接続処理及びコマンド実行処理では、デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行する。この上で、実行されるサービスを介して、サービスとアカウントが異なっていてもよいプロセスであって、デバイスに対する各種処理を行うプロセスを実行する。この際、プロセスの実行時にユニークな識別子を生成して、サービスに出力する。そして、サービスにより、ユニークな識別子を入力し、当該ユニークな識別子に対応するプロセスとの通信用パイプを設定して、プロセスを区別して通信する。
本実施形態のこれらの処理は、主に制御部１０が、記憶部２０に記憶された制御プログラム（図示せず）を、各部と協働し、ハードウェア資源を用いて実行する。
【００４０】
まず、図３により、本実施形態のサービス接続処理をステップ毎に説明する。
【００４１】
（ステップＳ１０１）
プロセス実行部１１０が、識別子生成処理を行う。
プロセス実行部１１０は、例えば、実行開始の際やサービスに接続する際、すなわちアプリのプロセスの実行時に、ユニークな識別子を生成する。本実施形態においては、この識別子は、各プロセスを区別可能となるユニークな（固有）ＩＤ（Identification）を含むセキュリティ識別子として生成される。具体的には、例えば、カードリーダ２を示す文字列である共通識別子と、ランダムに選択されたＩＤの文字列とを含む数文字〜数百文字程度の文字列が、セキュリティ識別子として設定される。
加えて、このセキュリティ識別子は、例えば、制御用プロセスと状態監視用プロセスとを区別する文字列を含んでいる。このセキュリティ識別子は、ＯＳが提供するＧＵＩＤ（Globally Unique Identifier）とは異なる値を基に設定可能である。
【００４２】
（ステップＳ１０２）
次に、プロセス実行部１１０が、識別子引き渡し処理を行う。
本実施形態においては、プロセス実行部１１０は、通信用ミドルウェアを介して、セキュリティ識別子を、サービス実行部１００が実行するサービスに出力して引き渡す。
【００４３】
（ステップＳ１０３）
次に、サービス実行部１００が、プロセス間通信パイプ確立処理を行う。
サービス実行部１００は、サービスのサービスアプリにより提供されるＣＯＭインターフェイスのＡＰＩで、引き渡されたセキュリティ識別子を入力する。この際、サービス実行部１００は、セキュリティ識別子に含まれるＩＤを基に、プロセス間通信用パイプを設定（確立）する。
【００４４】
（ステップＳ１０４）
次に、サービス実行部１００が、通信パイプデータ送受信処理を行う。
サービス実行部１００は、プロセス間通信パイプにてデータの送受信を開始する。サービス実行部１００は、セキュリティ識別子に対応する通信用パイプにより、プロセスを区別して通信する。これにより、セッションが異なっていても、プロセス間通信により、プロセスとサービスとの間、制御用プロセスと状態監視用プロセスとの間でコマンド及びデータを送受信可能となる。
以上により、本発明の実施の形態に係るサービス接続処理を終了する。
【００４５】
次に、図４により、本実施形態のコマンド実行処理をステップ毎に説明する。
【００４６】
（ステップＳ１１１）
まず、プロセス実行部１１０が、識別子コマンド送信処理を行う。
プロセス実行部１１０は、アプリのプロセスを実行してサービスにコマンドを送信する。この際、プロセス実行部１１０は、コマンドとセキュリティ識別子とを、通信用ミドルウェアを介して送信する。
【００４７】
（ステップＳ１１２）
次に、サービス実行部１００が、識別子パイプ返答処理を行う。
サービス実行部１００は、サービスアプリ及び通信用ミドルウェアのＣＯＭインターフェイスのＡＰＩにより、プロセスからコマンド及びセキュリティ識別子を受信する。図５の例では、サービスＳのサービスアプリ及び通信用ミドルウェアにおいて、制御用プロセスからのコマンド及びセキュリティ識別子は、制御用コマンド受付ＡＰＩにて受信する。状態監視用プロセスからのコマンド及びセキュリティ識別子は、状態監視用コマンド受付ＡＰＩにて受信する。
【００４８】
サービス実行部１００は、コマンドの処理を実行して、通信用ミドルウェアにより、Ｉ／Ｆ部３０を介してカードリーダ２にコマンドを送信し、返答を受信する。
その後、サービス実行部１００は、コマンドに含まれる識別子のプロセス間通信用パイプに、返答データとして実行結果通知を送信する。
【００４９】
このように、サービス実行部１００は、各プロセスにユニークな識別子のプロセス間通信用パイプを確立しているため、特定のプロセスから受け取ったコマンドの処理を実行した実行結果通知を、どのプロセスに処理を返却するかを判断することができる。
さらに、プロセスとサービスとの通信を確立させる際、ユニークな識別子を生成しているため、同じアプリのプロセスが複数起動されたとしても、サービス実行部１００は、どのアプリと通信をすべきか判断して、実行結果通知を送信可能となる。
以上により、本発明の実施の形態に係るコマンド実行処理を終了する。
【００５０】
〔プロセス間の接続及びコマンドの処理〕
次に、図５により、本発明の実施の形態に係るプロセス間の接続及びコマンドの処理の具体例について説明する。
図５の具体例により、プロセス間の接続及びコマンドの処理について説明する。
本実施形態のサービス実行部１００は、サービスＳについて、制御用スレッドと、状態監視用スレッドとに分けて実行する。上述したように、各プロセスからのコマンドは、サービスＳが提供するＣＯＭインターフェイスで実装されている各ＡＰＩにて引き渡される。
【００５１】
この上で、このサービスＳのスレッド毎にＦＩＦＯ（First-In First Out Buffer）が記憶部２０に確保され、コマンドが蓄積される。具体的には、制御用プロセスから発行される動作コマンドを格納する制御用ＦＩＦＯと、状態監視用プロセスから発行される状態通知コマンドを格納する状態通知用ＦＩＦＯとが確保される。
制御用ＦＩＦＯには、例えば、カード媒体４のＩＣ非活性化コマンド、カードリーダ２のＳＡＭカードを非活性化するＳＡＭ非活性化コマンド、ＳＡＭカードとの通信を行うＳＡＭ通信コマンド、ＳＡＭカードを活性化するＳＡＭ活性化コマンド、ＩＣ通信コマンド、ＩＣ活性化コマンド等を格納する。
状態通知用ＦＩＦＯには、主にカードリーダ２の状態監視を行うため、カードリーダ２に状態を通知させる状態通知コマンドが格納される。
【００５２】
制御用ＦＩＦＯに格納された制御用コマンドは、制御用電文変換部により、カードリーダ２へ送信されるコマンドに変換される。同様に、状態通知用ＦＩＦＯに格納された状態通知コマンドは、状態監視用電文変換部により、カードリーダ２へ送信されるコマンドに変換される。
【００５３】
この上で、同時にこれらのコマンドが送信されないように、セマフォ（mutex）等を含む排他権記録用オブジェクトが用意され、送信制御部により、コマンドがタイミングを設定されて、Ｉ／Ｆ部３０を介して、カードリーダ２に送信される。この際、送信制御部により、状態（状態通知用）ＦＩＦＯに格納された状態通知コマンドより、動作（制御用）ＦＩＦＯに格納された動作コマンドが、優先してデバイスに送信されるように制御される。
【００５４】
カードリーダからのコマンド実行のレスポンス（返答）は、Ｉ／Ｆ部３０を介して、送信制御部により取得される。この上で、制御用電文変換部及び状態監視用電文変換部により、各プロセスにユニークな識別子のプロセス間通信用パイプを介して、対応するプロセスへ実行結果通知が送信される。
【００５５】
〔本実施形態の主な効果〕
以上のように構成することで、以下のような効果を得ることができる。
従来、特許文献１に記載されたような情報処理システムでは、異なるアカウントで実行された、すなわちセッションが異なる場合、プロセス間通信によるプロセス同士のパイプ等の接続ができなかった。
具体的に、図６を参照して説明すると、従来の情報処理システムＺの上位装置では、各プロセスとローカルサーバとは、例えば、管理者アカウントのような単一のアカウントで実行されていた。図６（ａ）には、制御用プロセスとして、磁気・ＩＣカードリーダライタ制御用アプリのプロセス、カード発行機能制御用アプリのプロセス、及びローカルサーバのプロセスが実行されている例を示す。すなわち、単一のＲＳ−２３２Ｃ通信ケーブルに対して、通信制御を行うプロセスをローカルサーバとして設けることにより、このローカルサーバと、磁気・ＩＣカードリーダライタ制御用プロセス、及びカード発行機能制御用プロセスとのプロセス間通信を行う構成となっている。複数のプロセスがローカルサーバと同一のセッション内にある場合、このローカルサーバを介して、複数のプロセスが同時に一つのデバイスに対して制御を行うことができる。
【００５６】
しかしながら、ローカルサーバが属するセッション以外で起動されたプロセスは、ローカルサーバにセッションを超えてアクセスするための権限がなく、結果的に複数のプロセスから制御をすることができなかった。
図６（ｂ）によると、例えば、制御用プロセスがゲストアカウントでログインされ、ユーザ権限のセッションで実行され、カード等の取引を行いたいという技術的要求があった。しかしながら、デバイス監視用プロセス及びローカルサーバを管理者アカウントで起動すると、通常のプロセス間通信では接続不可能となっていた。この際、セッションが異なっても情報を共有可能な共有メモリを用いる手法については、セキュリティ上、用いることができなかった。
【００５７】
これに対して、本発明の実施の形態に係る情報処理システムＸは、上位装置１と、上位装置１からの指示に従って処理を実行するデバイスの一例であるカードリーダ２とを含む情報処理システムであって、上位装置１は、デバイスと接続し、コマンドに対応した制御及び監視を行うサービスを実行するサービス実行部１００と、サービス実行部１００により実行されるサービスを介して、デバイスに対する各種処理を行うプロセスを実行するプロセス実行部１１０とを備え、プロセス実行部１１０は、プロセスの実行時にユニークな識別子を生成して、サービスに出力し、サービス実行部１００は、ユニークな識別子を入力し、当該ユニークな識別子に対応するプロセスとの通信用パイプを設定して、プロセスを区別して通信することを特徴とする。
このように構成し、プロセス毎にユニークな識別子を生成し、サービスとのプロセス間通信パイプを確立させてプロセス間通信を行うことで、共有メモリを介さずに、異なるセッションのプロセス間でも接続可能となる。これにより、複数のセッションから一つのデバイスを制御することが可能となる。各プロセスに対応したアカウントで各プロセスを実行することで、システムのセキュリティ性を向上できるとともにアカウントの異なる各プロセスとサービスのプロセスとの接続を確保できる。
【００５８】
さらに、アプリとサービスとの通信を確立させる際、その都度、ユニークな識別子を生成するため、同一プロセスが複数起動されたとしても、サービスが各プロセスを識別できる。これにより、サービスが、どのプロセスと通信をすべきか、容易に判断することができる。
【００５９】
本発明の実施の形態に係る上位装置１は、プロセスは、複数であり、デバイスに対する制御を行う制御用プロセスと、デバイスの状態を監視する状態監視用プロセスとを含み、プロセス実行部１１０は、状態監視用プロセスを、制御用プロセスよりも上位権限のアカウントで実行することを特徴とする。
このように構成し、複数のプロセスについて、制御用プロセスと状態監視用プロセスとでは異なるアカウントで実行することで、デバイスの動作不具合等があった場合でも、アカウントを切り換えて対応等する必要がなくなる。すなわち、ＡＴＭ等の不具合をユーザから通知された場合、ゲストアカウントのセッションをログアウトしてＡＴＭ等の取引を停止し、管理者権限でデバイスの監視処理等を行うアプリを起動するという手順を行う必要がなくなる。これにより、管理コストを低減できる。
また、状態監視用プロセスを、制御用プロセスよりも上位権限のアカウントで実行することで、制御用プロセスの脆弱性等により状態監視用プロセスをハッキング等されることがなくなり、セキュリティを向上させられる。
【００６０】
本発明の実施の形態に係る上位装置１は、サービス実行部１００は、制御用プロセスから発行される動作コマンドを格納する制御用ＦＩＦＯと、状態監視用プロセスから発行される状態通知コマンドを格納する状態通知用ＦＩＦＯとを含み、状態通知用ＦＩＦＯに格納された状態通知コマンドより、制御用ＦＩＦＯに格納された動作コマンドを優先してデバイスに送信することを特徴とする。
このように構成することで、情報処理システムＸをスムーズに稼働できる。すなわち、制御を停滞させずに、状態監視を行うことが可能となる。また、状態監視の負担により、ＡＴＭ等の取引が誤動作したり、セキュリティリスクが生じたりすることを防ぐことができる。
【００６１】
本発明の実施の形態に係る上位装置１は、プロセス実行部１１０は、状態監視用プロセスについて、外部ネットワークからのアクセスを受け付けて、アクセスに対応した処理を実行することを特徴とする。
このように構成することで、状態監視用プロセスに対して、インターネット等のネットワーク５を介して常時管理している外部のサーバ３からアクセス可能となる。これにより、遠隔環境から情報処理システムＸの状態を把握できる。
このため、例えば、ログ等を取得している間にも、ゲストアカウントでＡＴＭ等を稼働させ続けることができ、ＡＴＭ等の稼働率を向上させてコストを低減できる。
【００６２】
また、ユーザがカードリーダ２に置かれたカード媒体４を取り忘れた場合に、状態通知コマンドの実行通知結果により、その旨の警告を状態監視用アプリが取得し、サーバ３に報知するといった構成も可能となる。これにより、サーバ３の管理者が、遠隔操作で、取り忘れの旨をユーザに報知することができる。結果として、セキュリティ性を向上させることができる。
加えて、状態監視用プロセスに外部のネットワーク５から遠隔操作可能とすることで、例えば、ＡＴＭ等の紙詰まり、紙幣の詰まり等が生じた場合、サービスパーソンが取り除いて状態を確認しつつ、そのままカード媒体４による取引を継続することができる。これにより、ユーザの不便を低減させることができる。
【００６３】
本発明の実施の形態に係る上位装置１は、サービス及びプロセスは、共通で使用される共通識別子を含み、プロセス実行部１１０は、共通識別子を用いてユニークな識別子を出力することを特徴とする。
このように構成することで、共通識別子を用いてセキュリティ性をさらに高めることができる。
【００６４】
本発明の実施の形態に係る情報処理システムＸは、デバイスの一例は、非接触式カードリーダであるカードリーダ２を含むことを特徴とする。
このように構成することで、カード媒体４に関するセキュリティ性の高いサービスを提供できる。
【００６５】
〔他の実施の形態〕
なお、上述の実施の形態においては、情報処理システムＸの制御対象として、非接触カードリーダであるカードリーダ２へ適用する例について説明した。しかしながら、接触型のＩＣカード及び／又は磁気ストライプを備えた磁気カードのカードリーダ、カード媒体の表面に印刷や刻印を行うプリンタ等についても適用可能である。加えて、カード発行機のように、複数のデバイスがコンパウンドデバイスとして実装されている複合ユニット等にも適用可能である。
このように様々な構成に対応して、共有メモリを介さずに、異なるセッションのプロセス間で接続可能した情報処理システムを提供することが可能である。
【００６６】
また、上述の実施の形態においては、カードリーダ２との通信方式がＵＳＢである例について説明した。しかしながら、ＲＳ−２３２Ｃ、ＷｉＦｉ、Ｂｌｕｔｏｏｔｈ（登録商標）等、様々な通信方式でデバイスと通信するように構成してもよい。
このように構成することで、任意の通信方式に対応したデバイスの制御を行う際に、共有メモリを介さずに、異なるセッションのプロセス間で接続可能とすることができる。
【００６７】
また、上述の実施の形態においては、主にＡＴＭの制御を行う例について説明しているものの、ＫＩＯＳＫ端末等に適用することも可能である。
このように構成することで、柔軟な構成に適用可能となる。
【００６８】
また、上述の実施の形態においては、主にＷｉｎｄｏｗｓ（登録商標）ＯＳのプロセス間通信、サービス等に適用する例について説明した。しかしながら、Ｌｉｎｕｘ（登録商標）等のＯＳにおけるセッションの異なるプロセス間通信、デーモン（Daemon）との接続等についても、同様に適用可能である。
このように構成することで、様々なＯＳに対して適用可能となる。
【００６９】
また、上述の実施の形態においては、セキュリティ識別子をそのままプロセス間通信で用いる例について説明した。しかしながら、識別子を、例えば、通信用ミドルウェアに含まれる公開鍵で暗号化（ハッシュ化）して用いてもよい。この場合、この暗号化されたセキュリティ識別子を、サービスにおいて、通信用ミドルウェアに含まれる秘密鍵で復号化して、プロセスを識別することも可能である。
加えて、共通識別子として、上述の実施形態で説明したカードリーダ２を示す文字列以外にも、共通鍵等の鍵データを用いることも可能である。
このように構成することで、上位装置１に不正なプログラムがインストールされたり、ハッキングされたりしても、サービスを介したデバイスの制御を防ぐことができ、セキュリティ性を高めることができる。
【００７０】
なお、上記実施の形態の構成及び動作は例であって、本発明の趣旨を逸脱しない範囲で適宜変更して実行することができることは言うまでもない。
【符号の説明】
【００７１】
１  上位装置
２  カードリーダ
３  サーバ
４  カード媒体
５  ネットワーク
１０  制御部
２０  記憶部
３０  Ｉ／Ｆ部
４０  表示部
５０  入力部
１００  サービス実行部
１１０  プロセス実行部
Ｐ１、Ｐ２  制御用プロセス
ＰＷ  状態監視用プロセス
Ｓ  サービス
Ｘ、Ｚ  情報処理システム
【図１】
2020009015.tif 000003
【図２】
2020009015.tif 000004
【図３】
2020009015.tif 000005
【図４】
2020009015.tif 000006
【図５】
2020009015.tif 000007
【図６】
2020009015.tif 000008