(57)【要約】  本発明のシステムは、所望のデバイスを使用するアプリケーションを安定的に起動する情報処理システムである。この情報処理システムは、アプリケーションと、アプリケーションの実行に必要なデバイスとを対応付けて記憶するアプリケーション記憶部と、デバイス用のデバイスドライバが起動されたか否かにより、デバイスが使用可能であるか否かを判定するデバイス判定部と、使用可能と判定されたデバイスに対応付けられたアプリケーションを起動するアプリケーション起動部と、を備える。
2016080429.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションと、該アプリケーションの実行に必要なデバイスとを対応付けて記憶するアプリケーション記憶手段と、
前記デバイス用のデバイスドライバが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定手段と、
使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動手段と、
を備える情報処理装置。
【請求項２】
前記アプリケーション記憶手段は、アプリケーションと、該アプリケーションの実行に必要な複数のデバイスの組み合わせとを対応付けて記憶し、
前記アプリケーション起動手段は、使用可能と判定された複数のデバイスの組み合わせに対応するアプリケーションを起動する、請求項１に記載の情報処理装置。
【請求項３】
情報処理装置の利用者を判定する利用者判定手段をさらに備え、
前記アプリケーション起動手段は、前記利用者に対応するアプリケーションを起動する、請求項１または２に記載の情報処理装置。
【請求項４】
前記デバイスに接続された前記通信端末を検知する通信端末検知手段をさらに備え、
前記アプリケーション起動手段は、前記通信端末に対応するアプリケーションを起動する、請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
デバイス用のデバイスドライバが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定ステップと、
アプリケーションと、該アプリケーションの実行に必要なデバイスとを対応付けて記憶するアプリケーション記憶手段を参照して、使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動ステップと、
を含む情報処理装置の制御方法。
【請求項６】
デバイス用のデバイスドライバが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定ステップと、
アプリケーションと、該アプリケーションの実行に必要なデバイスとを対応付けて記憶するアプリケーション記憶手段を参照して、使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動ステップと、
をコンピュータに実行させる情報処理装置の制御プログラム。
【請求項７】
情報処理装置と、
前記情報処理装置と通信接続される通信端末と、
前記通信端末に接続されるデバイスと、
を備え、
前記情報処理装置は、前記デバイスを駆動するデバイスドライバのアプリケーションインタフェースを有し、前記通信端末は、前記デバイスドライバのデバイスコントロールインタフェースを有し、
前記情報処理装置は、
アプリケーションと、該アプリケーションの実行に必要なデバイスとを対応付けて記憶するアプリケーション記憶手段と、
前記デバイスドライバのアプリケーションインタフェースが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定手段と、
使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動手段と、
を備える情報処理システム。
【請求項８】
情報処理装置と、
前記情報処理装置と通信接続される通信端末と、
前記通信端末に接続されるデバイスと、
を備える情報処理システムの情報処理方法であって、
前記情報処理装置は、前記デバイスを駆動するデバイスドライバのアプリケーションインタフェースを有し、前記通信端末は、前記デバイスドライバのデバイスコントロールインタフェースを有し、
前記情報処理装置は、さらに、アプリケーションと、該アプリケーションの実行に必要な前記デバイスとを対応付けて記憶するアプリケーション記憶手段を有し、
前記情報処理装置は、
デバイス用のデバイスドライバが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定ステップと、
前記アプリケーション記憶手段を参照して、使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動ステップと、
を含むミドルウェアを有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラムに関する。
【背景技術】
【０００２】
上記技術分野において、特許文献１には、ＰＯＳ（Point of Sales）システムにおけるＰＯＳ端末の電源投入時に、ＵＳＢ(Universal Serial Bus)インタフェースを介してキーボード、ハンドスキャナ、プリンタが認識できると、ＰＯＳ端末の業務を実行するアプリケーションソフトが起動される技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開2008−003927号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記文献に記載の技術では、ＰＯＳ端末のアプリケーションソフトに必須のデバイスが遠隔のＵＳＢインタフェースに接続されている場合、ＰＯＳ端末から安定的にデバイスを認識できないことがある。その場合には、必須のデバイスが動作可能でなくてもアプリケーションソフトを起動したり、必須のデバイスが動作可能であるのにアプリケーションソフトを起動できなかったりすることになる。【０００５】
本発明の目的は、上述の課題を解決する技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係る情報処理装置は、
アプリケーションと、該アプリケーションの実行に必要なデバイスとを対応付けて記憶するアプリケーション記憶手段と、
前記デバイス用のデバイスドライバが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定手段と、
使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動手段と、
を備える。【０００７】
上記目的を達成するため、本発明に係る情報処理装置の制御方法は、
デバイス用のデバイスドライバが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定ステップと、
アプリケーションと、該アプリケーションの実行に必要なデバイスとを対応付けて記憶するアプリケーション記憶手段を参照して、使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動ステップと、
を含む。【０００８】
上記目的を達成するため、本発明に係る情報処理装置の制御プログラムは、
デバイス用のデバイスドライバが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定ステップと、
アプリケーションと、該アプリケーションの実行に必要なデバイスとを対応付けて記憶するアプリケーション記憶手段を参照して、使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動ステップと、
をコンピュータに実行させる。【０００９】
上記目的を達成するため、本発明に係る情報処理システムは、
情報処理装置と、
前記情報処理装置と通信接続される通信端末と、
前記通信端末に接続されるデバイスと、
を備え、
前記情報処理装置は、前記デバイスを駆動するデバイスドライバのアプリケーションインタフェースを有し、前記通信端末は、前記デバイスドライバのデバイスコントロールインタフェースを有し、
前記情報処理装置は、
アプリケーションと、該アプリケーションの実行に必要なデバイスとを対応付けて記憶するアプリケーション記憶手段と、
前記デバイスドライバのアプリケーションインタフェースが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定手段と、
使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動手段と、
を備える。【００１０】
上記目的を達成するため、本発明に係る情報処理方法は、
情報処理装置と、
前記情報処理装置と通信接続される通信端末と、
前記通信端末に接続されるデバイスと、
を備える情報処理システムの情報処理方法であって、
前記情報処理装置は、前記デバイスを駆動するデバイスドライバのアプリケーションインタフェースを有し、前記通信端末は、前記デバイスドライバのデバイスコントロールインタフェースを有し、
前記情報処理装置は、さらに、アプリケーションと、該アプリケーションの実行に必要な前記デバイスとを対応付けて記憶するアプリケーション記憶手段を有し、
前記情報処理装置は、
デバイス用のデバイスドライバが起動されたか否かにより、前記デバイスが使用可能であるか否かを判定するデバイス判定ステップと、
前記アプリケーション記憶手段を参照して、使用可能と判定された前記デバイスに対応付けられた前記アプリケーションを起動するアプリケーション起動ステップと、
を含むミドルウェアを有する。
【発明の効果】
【００１１】
本発明によれば、所望のデバイスを使用するアプリケーションを安定的に起動することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態に係る情報処理装置の構成を示すブロック図である。
【図２Ａ】本発明の第２実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システムの動作を示す図である。
【図２Ｂ】本発明の第２実施形態に係る情報処理システムの構成を示す図である。
【図２Ｃ】本発明の第２実施形態に係る情報処理システムの概念を示す図である。
【図２Ｄ】本発明の第２実施形態に係る情報処理システムのデバイス接続を示す図である。
【図２Ｅ】本発明の第２実施形態に係る通信メッセージの構成を示す図である。
【図２Ｆ】本発明の第２実施形態に係る通信データ構成を示す図である。
【図２Ｇ】本発明の第２実施形態に係る情報処理システムにおけるデータ伝送を示す図である。
【図３】本発明の第２実施形態に係る情報処理システムのソフトウェア構成を示す図である。
【図４】本発明の第２実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図５】本発明の第２実施形態に係る通信端末の機能構成を示すブロック図である。
【図６】本発明の第２実施形態に係るアプリケーション起動テーブルの構成を示す図である。
【図７】本発明の第２実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。
【図８】本発明の第２実施形態に係る情報処理装置の処理手順を示すフローチャートである。
【図９】本発明の第２実施形態に係るアプリケーション起動処理の手順を示すフローチャートである。
【図１０Ａ】本発明の第３実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システムの動作を示す図である。
【図１０Ｂ】本発明の第３実施形態に係る通信メッセージの構成を示す図である。
【図１１】本発明の第３実施形態に係るアプリケーション起動テーブルの構成を示す図である。
【図１２】本発明の第３実施形態に係るアプリケーション起動処理の手順を示すフローチャートである。
【図１３】本発明の第４実施形態に係るアプリケーション起動テーブルの構成を示す図である。
【図１４】本発明の第４実施形態に係るアプリケーション起動処理の手順を示すフローチャートである。
【図１５Ａ】本発明の第５実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システムの動作を示す図である。
【図１５Ｂ】本発明の第５実施形態に係る情報処理システムの操作共有動作を示す図である。
【図１６Ａ】本発明の第５実施形態に係る情報処理システムの操作共有の構成を示す図である。
【図１６Ｂ】本発明の第５実施形態に係る情報処理システムの操作共有の概念を示す図である。
【図１７】本発明の第５実施形態に係るアプリケーション起動および操作共有テーブルの構成を示す図である。
【図１８】本発明の第５実施形態に係る実行状態蓄積処理の手順を示すフローチャートである。
【図１９】本発明の第６実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システムの動作を示す図である。
【図２０】本発明の第６実施形態に係る実行状態蓄積処理の手順を示すフローチャートである。
【図２１】本発明の第７実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システムの動作を示す図である。
【図２２】本発明の第７実施形態に係るアプリケーション起動および関連アプリケーションテーブルの構成を示す図である。
【図２３】本発明の第７実施形態に係る実行状態蓄積処理の手順を示すフローチャートである。
【図２４Ａ】本発明の第８実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システムの動作を示す図である。
【図２４Ｂ】本発明の第８実施形態に係る情報処理システムの構成を示す図である。
【図２５】本発明の第８実施形態に係る情報処理システムの動作手順を示すシーケンス図である。
【図２６】本発明の第８実施形態に係るアプリケーション起動テーブルの構成を示す図である。
【図２７】本発明の第８実施形態に係るアプリケーション起動処理の手順を示すフローチャートである。
【図２８】本発明の第９実施形態に係る情報処理システムにおけるデータ伝送を示す図である。
【図２９】本発明の第９実施形態に係る情報処理システムにおける他のデータ伝送を示す図である。
【発明を実施するための形態】
【００１３】
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
【００１４】
［第１実施形態］
本発明の第１実施形態としての情報処理装置１００について、図１を用いて説明する。情報処理装置１００は、デバイスを用いるアプリケーションを実行する装置である。
【００１５】
図１に示すように、情報処理装置１００は、アプリケーション記憶部１０１と、デバイス判定部１０２と、アプリケーション起動部１０３と、を含む。アプリケーション記憶部１０１は、アプリケーション１１１と、アプリケーション１１１の実行に必要なデバイスデバイス１０５（１１２）とを対応付けて記憶する。デバイス判定部１０２は、デバイス１０５用のデバイスドライバ１２１が起動されたか否かにより、デバイスが使用可能１２２であるか否かを判定する。アプリケーション起動部１０３は、使用可能と判定されたデバイス１０５に対応付けられたアプリケーション１１１を起動する。
【００１６】
本実施形態によれば、遠隔のデバイス用のデバイスドライブの起動を判定することにより、所望のデバイスを使用するアプリケーションを安定的に起動することができる。
【００１７】
［第２実施形態］
次に、本発明の第２実施形態に係る情報処理装置を含む情報処理システムについ説明する。本実施形態に係る情報処理システムは、情報処理装置と遠隔のデバイスとを含み、遠隔のデバイスが準備されたことを検出して、情報処理装置の対応するアプリケーションを起動する。これにより、アプリケーションを起動したにも関わらず必須のデバイスが準備されていないなどの問題を回避する。なお、本実施形態においては、具体例としてＰＯＳシステムにより説明するが、他の情報処理装置と遠隔のデバイスとを含む情報処理システム、例えば、診断支援システムや教育支援システムなどに適用されても同様の効果を奏する。
【００１８】
《情報処理システム》
図２Ａは、本実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システム２００の動作を示す図である。
【００１９】
情報処理システム２００は、ＰＯＳアプリケーション（図中、ＰＯＳアプリ）２３１が実行される情報処理装置２３０と、情報処理装置２３０と通信接続される通信端末２２０と、通信端末２２０にバス接続されるデバイス２１０と、を含む。情報処理装置２３０は、デバイスマネージャ２３６により、直接接続されたデバイス、および、通信端末２２０を介して遠隔に接続されたデバイスを管理する。なお、通信端末２２０を介して遠隔に接続されたデバイスは、情報処理装置２３０と通信端末２２０とで協働するデバイスドライバにより制御するのが望ましい。
【００２０】
図２Ａの情報処理装置２３０において、デバイスマネージャ２３６により接続デバイスの管理画面を表示すると、直接接続されたデバイス、および、通信端末２２０を介して遠隔に接続されたデバイスが同様に表示され、選択できる。なお、図２Ａの情報処理装置２３０は、デスクトップＰＣ(Personal Computer)やノートＰＣであっても、クラウドサーバに構築された仮想ＰＣであってもよい。
【００２１】
情報処理システム２００においては、コメント２０１に記載のように、例として、ＵＳＢディスプレイ（モニタ）、キーボード、バーコードリーダ、という所定のデバイスセットが接続されたことを、起動ドライバと対応付けて、定期的あるいは起動ドライバの変更があった時にチェックする。そして、必要なデバイスが揃ったことを検出したら、あらかじめ定めたアプリケーション、この例ではＰＯＳアプリケーション２３１が起動する。
【００２２】
図２Ｂは、本実施形態に係る情報処理システム２００の構成を示す図である。図２Ｂは、情報処理装置２３０がクラウドサーバに構築された仮想ＰＣであり、通信端末２２０がスマートフォンやタブレットなどのスマートデバイスである場合の、店舗ＰＯＳの一例を示す。
【００２３】
情報処理システム２００は、クラウドサーバとしての情報処理装置２３０と、店舗２０１に配置されたスマートデバイスとしての通信端末２２０、情報処理装置２３０と通信端末２２０とを接続する３Ｇ網やインターネットを含むネットワーク２４０、通信端末２２０にバス接続されるデバイス２１０と、を備える。情報処理装置２３０は、本実施形態においてはＰＯＳアプリケーションや電子マネー(e-money)アプリケーションなどのＰＯＳシステムを処理するアプリケーションが実行される。そして、情報処理装置２３０は、通信端末２２０に接続するデバイスを制御するデバイスドライバの中でアプリケーションインタフェース部分を分担して実行する。
【００２４】
通信端末２２０には、ＰＯＳシステムを実現するためのデバイスであるディスプレイ、キーボード、ポインティングデバイス（不図示）の外に、キャッシュドロア、レシートプリンタ、バーコードリーダ、クレジットカードリーダ、無接触ＲＷ端末、などがバス接続される。通信端末２２０は、接続する各デバイスを制御するデバイスドライバの中でホストコントローラインタフェース部分を分担して実行する。情報処理装置２３０のアプリケーションインタフェース部分と通信端末２２０のホストコントローラインタフェース部分とが通信しながら、デバイスドライバを構成する。
【００２５】
本情報処理システムにおいて、ＰＯＳ／ＣＲＭ(Customer Relationship Management)関連機能として、会員データや購買データの蓄積、蓄積データの分析、アウトプット、ＣＲＭ関連機能（クーポン、ポイント等）が実行される。また、電子マネー機能であるマルチサービスゲートウェイ、サービス連携（電子マネー）が実行される。また、ＰＯＳ機能としては、スマートデバイスを活用したレジ機能、要望に応じて選択可能な周辺機器、売上情報記録と精算機能、電子マネー精算機能、などが実行される。
【００２６】
本実施形態においては、例えば、情報処理装置２３０のミドルウェアが、スマードデバイスである通信端末２２０に接続されたデバイスに対して起動されたデバイスドライバをチェックして、そのチェック結果から接続され使用可能となったデバイスで実行可能なアプリケーションを起動する。ここで、接続され使用可能となったデバイスの増減により、アプリケーションの更新や停止が制御される。すなわち、接続され使用可能となったデバイスが増加すると、実行可能となった機能を実行する新たなアプリケーションを起動したり、実行中のアプリケーヨンの機能を追加実行したりする。また、接続され使用可能となったデバイスが減少すると、実行不可となったアプリケーションを終了したり、実行中のアプリケーヨンの実行不可となった機能を停止したりする。
【００２７】
図２Ｃは、本実施形態に係る情報処理システム２００の概念を示す図である。図２Ｃは、本実施形態における情報処理装置２３０と通信端末２２０との間のデバイスドライバの構成について示している。
【００２８】
図２Ｃでは、ＰＯＳアプリケーションを起動する最低限のデバイスとして、モニタとしてのディスプレイ２１２と、入力指示用のキーボード２１３と、商品情報を読み取るバーコードリーダ２１４と、が通信端末２２０に接続されて、各デバイスドライバが起動された状態を示している。ディスプレイ２１２と、キーボード２１３とは、ハブ２１１を介して、通信端末２２０のバスインタフェース２２１に接続される。バーコードリーダ２１４は、通信端末２２０のバスインタフェース２２１に接続される。
【００２９】
ディスプレイ２１２を制御するためのモニタ・デバイスドライバとして、通信端末２２０のホストコントローラインタフェース２２２と情報処理装置２３０のアプリケーションインタフェース２３２とが起動している。そして、ホストコントローラインタフェース２２２とアプリケーションインタフェース２３２との間にネットワーク２４０を介してパイプが確立する。また、キーボード２１３を制御するためのキーボード・デバイスドライバとして、通信端末２２０のホストコントローラインタフェース２２３と情報処理装置２３０のアプリケーションインタフェース２３３とが起動している。そして、ホストコントローラインタフェース２２３とアプリケーションインタフェース２３３との間にネットワーク２４０を介してパイプが確立する。また、バーコードリーダ２１４を制御するためのバーコードリーダ・デバイスドライバとして、通信端末２２０のホストコントローラインタフェース２２４と情報処理装置２３０のアプリケーションインタフェース２３４とが起動している。そして、ホストコントローラインタフェース２２４とアプリケーションインタフェース２３４との間にネットワーク２４０を介してパイプが確立する。
【００３０】
情報処理装置２３０は、アプリケーションインタフェース２３２〜２３４が起動しているか否かをチェックして、モニタとキーボードとバーコードリーダとが使用可能であると判定すると、アプリケーションソフトウェアとしてＰＯＳアプリケーション２３１を起動する。なお、モニタとキーボードとバーコードリーダとが使用可能である場合には、ＰＯＳアプリケーション２３１を起動するが、その機能の内、商品への割引値札による値段設定処理が実行可能となる。例えば、キャッシュドロアとレシートプリンタとが使用可能と判定すると、ＰＯＳアプリケーション２３１の内、現金清算処理が実行可能となる。また、クレジットカードリーダが使用可能と判定すると、ＰＯＳアプリケーション２３１の内、クレジット清算処理が実行可能となる。また、非セッショクＲＷ端末が使用可能と判定すると、ＰＯＳアプリケーション２３１の内、電子マネー清算処理が実行可能となる。
【００３１】
このように、同じＰＯＳアプリケーション２３１の機能が、デバイスセットにより段階的に実行可能となる構成であってもよいし、デバイスセットにより異なるＰＯＳアプリケーションが起動される構成であってもよい。
【００３２】
図２Ｄは、本実施形態に係る情報処理システム２００のデバイス接続を示す図である。図２Ｄは、ホスト（情報処理装置）２３０と通信端末２２０とＵＳＢデバイス２１０との間において、どのように制御パイプ（デフォルトパイプ）とデータパイプが確立するかを示す図である。なお、図２Ｄにおいては、常備のソフトウェアであるＯＳ(Operating System)やＢＩＯＳ(Basic Input/Output System)などの図示を省略している。
【００３３】
図２Ｄの情報処理システム２００は、情報処理装置としてのホスト２３０と、遠隔にあって、ホスト２３０とネットワーク２４０を介して接続する通信端末２２０と、通信端末２２０のＵＳＢコネクタに接続されたＵＳＢデバイス２１０と、を備える。
【００３４】
ホスト２３０は、ソフトウェアとして、アプリケーションソフトウェア２３１と、デバイスドライバの一部としてのアプリケーションインタフェース（図中、アプリケーションＩＦ）２３５とを有する。アプリケーションソフトウェア２３１は、あらかじめホスト２３０が提供するサービス、あるいは、ユーザが開発したサービスを提供するためのソフトウェアである。アプリケーションインタフェース２３５は、アプリケーションソフトウェア２３１が要求した入出力ファイル操作の構造体を解釈して、入出力ファイル操作の対象デバイスやそのプロトコル、データフォーマットなどに従って、ネットワーク２４０を介して送受信する制御情報やデータを定義する構造体を生成する。本例ではＵＳＢデバイス２１０に対する入出力ファイルのアクセスなので、ＵＳＢのプロトコルに応じたコマンドやデータフォーマットに従うデータの送受信を準備する。
【００３５】
通信端末２２０は、ソフトウェアとして、デバイスドライバの一部としてのホストコントローラインタフェース（図中、ホストコントローラＩＦ）２２５と、ホストコントローラおよびＳＩＥを有するＵＳＢバスインタフェース２２６とを有する。ホストコントローラインタフェース２２５は、ネットワーク２４０を介して、アプリケーションインタフェース２３５から受信したＵＳＢのプロトコルに応じたコマンドやデータなどを、ＵＳＢバスインタフェース２２６のホストコントローラに理解できる形式で渡す。また、ホストコントローラインタフェース２２５は、ネットワーク２４０を介して、ＵＳＢバスインタフェース２２６のホストコントローラから渡されたデータやデバイスステータスなどを、ネットワーク２４０を介して、アプリケーションインタフェース２３５に送信する。ＵＳＢバスインタフェース２２６のホストコントローラは、ホストコントローラインタフェース２２５とコマンドやデータなどを交換しながら、ＵＳＢケーブル２６０を介したシリアル通信をＵＳＢプロトコルに従い実行する。ＵＳＢバスインタフェース２２６のＳＩＥは、ＵＳＢケーブル２６０上の信号をＵＳＢ通信の仕様に従い制御する。
【００３６】
ＵＳＢデバイス２１０は、ソフトウェアとして、通信端末２２０のＵＳＢバスインタフェース２２６とＵＳＢケーブル２６０を介して接続して、信号をやり取りするＵＳＢデバイス２１０のＵＳＢバスインタフェース２１６を有する。また、ＵＳＢデバイス２１０は、デバイス情報や制御情報を含むディスクリプタを記憶するＦＩＦＯ(First-in First-out)０からなるエンドポイント０２１７と、入出力データを記憶するＦＩＦＯ１〜ｎからなるエンドポイント１〜ｎ２１８とを有する。
【００３７】
かかる接続により、通信端末２２０とＵＳＢデバイス２１０とは、お互いのＵＳＢバスインタフェース２２６、２１６により物理レベルの通信を実行する。また、アプリケーションインタフェース２３５、ネットワーク２４０およびホストコントローラインタフェース２２５を介したシステムレベルのコントロール転送により、デフォルトパイプ２５１を介してアプリケーションソフトウェア２３１とエンドポイント０２１７との間で、基本処理としての制御通信を実現する。また、アプリケーションレベルのデータ転送では、データパイプ群２５２を介してアプリケーションソフトウェア２３１とエンドポイント１〜ｎ２１８との間で、デバイスクラスの各メソッドとしてのデータ通信を実現する。
【００３８】
以上のように、ネットワーク２４０を介した、ホスト２３０のアプリケーションインタフェース２３５と通信端末２２０のホストコントローラインタフェース２２５とのネットワーク通信と、ＵＳＢケーブルを介した、ＵＳＢバスインタフェース２２６と２１６間のシリアル通信とから、統一された通信チャネル（パイプ）を形成することができる。
【００３９】
（通信メッセージ）
図２Ｅは、本実施形態に係る通信メッセージの構成を示す図である。なお、通信メッセージのフォーマットは、図２Ｅに限定されるものではない。
【００４０】
図２Ｅには、デフォルトパイプ２５１である制御チャネルで送受信される制御メッセージ２７０と、データパイプ群２５２となるデータチャネルで送受信されるデータメッセージ２８０とが図示されている。
【００４１】
制御メッセージ２７０の内、ホスト２３０から通信端末２２０に送信される制御メッセージは、ＩＰアドレス２７１と、伝送先エリア／伝送元エリア２７２と、通信データ２７３と、誤り訂正の例えばＣＲＣ２７４と、を有する。ＩＰアドレス２７１としては、送信先の通信端末アドレスと送信元のホストアドレスとがセットされる。伝送先エリア／伝送元エリア２７２としては、伝送先エリアにＵＳＢデバイス２１０のＦＩＦＯ0が、伝送元エリアにホスト２３０のＵＳＢバッファ0が、指示される。また、通信データ２７３としては、ホスト２３０が割り当てたデバイスアドレスやＵＳＢデバイス２１０の制御コマンドが伝送される。
【００４２】
制御メッセージ２７０の内、通信端末２２０からホスト２３０に送信される制御メッセージは、ＩＰアドレス２７５と、伝送先エリア／伝送元エリア２７６と、通信データ２７７と、誤り訂正の例えばＣＲＣ２７８と、を有する。ＩＰアドレス２７５としては、送信先のホストアドレスと送信元の通信端末アドレスとがセットされる。伝送先エリア／伝送元エリア２７６としては、伝送先エリアにホスト２３０のＵＳＢバッファ0が、伝送元エリアにＵＳＢデバイス２１０のＦＩＦＯ0が、指示される。また、通信データ２７７としては、ＵＳＢデバイス２１０のデバイスディスクリプタやデバイスステータスが伝送される。
【００４３】
データメッセージ２８０の内、ホスト２３０から通信端末２２０に送信されるデータメッセージは、ＩＰアドレス２８１と、伝送先エリア／伝送元エリア２８２と、通信データ２８３と、誤り訂正の例えばＣＲＣ２８４と、を有する。ＩＰアドレス２８１としては、送信先の通信端末アドレスと送信元のホストアドレスとがセットされる。伝送先エリア／伝送元エリア２８２としては、伝送先エリアにＵＳＢデバイス２１０のＦＩＦＯ1〜nが、伝送元エリアにホスト２３０のＵＳＢバッファ1〜nが、対応付けられて指示される。また、通信データ２８３としては、１つまたは複数のバルクＯＵＴデータが伝送される。
【００４４】
データメッセージ２８０の内、通信端末２２０からホスト２３０に送信されるデータメッセージは、ＩＰアドレス２８５と、伝送先エリア／伝送元エリア２８６と、通信データ２８７と、誤り訂正の例えばＣＲＣ２８８と、を有する。ＩＰアドレス２８５としては、送信先のホストアドレスと送信元の通信端末アドレスとがセットされる。伝送先エリア／伝送元エリア２８６としては、伝送先エリアにホスト２３０のＵＳＢバッファ1〜nが、伝送元エリアにＵＳＢデバイス２１０のＦＩＦＯ1〜nが、対応付けられて指示される。また、通信データ２８７としては、１つまたは複数のバルクＩＮデータが伝送される。
【００４５】
なお、コントロール転送、バルク転送の外に、インタラプト転送やアイソクロナス転送があるが、データメッセージの構成としては、“ＳＥＴＵＰ”ステージが省略されるが同様であるので、それらのメッセージの説明を省略する。
【００４６】
このように、カプセリングしたＩＰアドレスとしては、ホスト２３０と通信端末２２０との間のネットワーク通信であるが、データは、ホスト２３０にアプリケーションソフトウェア２３１が確保させたＵＳＢバッファと、ＵＳＢデバイス２１０のエンドポイントであるＦＩＦＯとの間で伝送される。
【００４７】
（通信データ構成例）
図２Ｆは、本実施形態に係る通信データ構成を示す図である。図２Ｆにおいては、図２Ｅにおける、カブセル化のためのＩＰアドレスなどは省かれている。なお、図２Ｆには、本実施形態を実現する通信データ構成の一例を示すが、これに限定されるわけではない。例えば、デバイスドライバの上位層における通信データとして、関数のパラメータ（引数）を送受信することや、さらに、関数自体を送受信することなどもできる。
【００４８】
図２Ｆには、基本的な通信データ構成２７３／２７７と、ＵＳＢの場合の通信データ構成２７３と、他のＨＤＭＩ（登録商標）やＳＣＳＩの場合の通信データ構成２７７が示されている。
【００４９】
通信データ構成２７３／２７７は、デバイス特定情報を有する。デバイス特定情報は、デバイス種類と、接続バス種類と、デバイス識別子と、を含む。通信データ構成２７３／２７７は、接続バスにおける転送モードと、接続バスを介して転送すべき情報と、を有する。転送すべき情報には、コマンドやステータスやデータを含む。
【００５０】
ＵＳＢの場合の通信データ構成２７３は、デバイス特定情報として、デバイス種類である産業機器と、接続バスであるＵＳＢと、デバイス識別子であるＩＥ００１と、を有する。ＵＳＢの場合の通信データ構成２７３は、転送モードとしてＵＳＢコントロール転送と、転送情報としてＵＳＢリクエストやデバイスディスクリプタを含む。かかる構成によれば、従来のＵＳＢ接続による最大１２７台という制限を考慮する必要はなくなる。
【００５１】
他のＨＤＭＩ（登録商標）やＳＣＳＩの場合の通信データ構成２７７は、デバイス特定情報として、モニタ、ＨＤＭＩ（登録商標）、ＭＴ０００２や、ＣＤ、ＳＣＳＩ、ＣＤ０００５を有する。また、転送モード２としてＨＤＭＩ（登録商標）制御やＳＣＳＩ制御、転送情報としてＤＤＣ／ＣＥＤやコマンド／レスポンスを含む。
【００５２】
（データ伝送例）
図２Ｇは、本実施形態に係る情報処理システム２００におけるデータ伝送を示す図である。なお、図２Ｇは、ＵＳＢデバイスにおけるＬ２レベルの通信を示すが、通信はさらに下位レベルであっても上位レベルであってもよい。
【００５３】
図２Ｇは、ＵＳＢ接続されたＵＳＢデバイスのディスクリプタ取得手順を示すシーケンス図である。
【００５４】
デバイス２１０に設定されているディスクリプタは、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲなどのＵＳＢリクエストにより取得される。ＵＳＢリクエストは、それぞれコントロール転送によりデバイス２１０とやり取りされる。各コントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。デバイス２１０から取得したディスクリプタはＩＰヘッダやＴＣＰヘッダでＩＰカプセリングして、携帯端末からなるＵＳＢハブ２２１から情報処理装置２３０に送信される。
【００５５】
ここで、情報処理装置２３０のアプリケーションインタフェースを構成するクラスドライバ２３２およびバスドライバは、アプリケーション２３１のデバイス入出力要求に応じて、まず接続デバイスを確認するためコントロール転送とＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストとを生成して、通信制御部に渡す。
【００５６】
ＩＰヘッダやＴＣＰヘッダでＩＰカプセリングされたコントロール転送とＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストとは、通信端末からなるＵＳＢハブ２２１の通信制御部で受信されてＩＰアンカプセリングされる。コントロール転送とＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストとは、ホストコントローラドライバ２２５に渡される。ホストコントローラドライバ２２５は、コントロール転送とＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストとに基づいて、デバイス２１０へのＵＳＢバスにおける各パケットを生成するようＵＳＢバスインタフェース（不図示）に指示する。
【００５７】
ホストコントローラドライバ２２５は、デバイス２１０から受信した、データ・ステージで受信したデータ・パケットをデバイスディスクリプタとして抽出し、コントロール転送とデバイスディスクリプタとして、通信制御部に渡す。ＩＰヘッダやＴＣＰヘッダでＩＰカプセリングされたコントロール転送とデバイスディスクリプタとは、通信端末からなるＵＳＢハブ２２１の通信制御部から情報処理装置２３０の通信制御部に送信される。
【００５８】
情報処理装置の通信制御部は、アンカプセリングしたコントロール転送とデバイスディスクリプタを、アプリケーションインタフェースを構成するバスドライバおよびクラスドライバ２３２に渡すと、クラスドライバ２３２はアプリケーション２３１のデバイス入出力要求に応答して、接続デバイス情報を通知する。
【００５９】
以下、他のコントロール転送や、バルク転送、インタラプト転送、アイソロナス転送においても、同様のデータ伝送が行なわれる。なお、ホストコントローラドライバ２２５とＵＳＢバスインタフェース２２６とが一体にされたソフトウェアであってもよい。
【００６０】
《ソフトウェア構成》
図３は、本実施形態に係る情報処理システム２００のソフトウェア構成を示す図である。なお、図３には、本実施形態におけるソフトウェア構成の概略を示し、詳細な構成については省略する。
【００６１】
情報処理装置２３０に構築された仮想ＰＣでは、アプリケーション３３３と、ミドルウェア３３２と、ＯＳ３３１と、各デバイスドライバ３４０のアプリケーションインタフェースと、が実行される。通信端末２２０では、各デバイスドライバ３４０のホストコントローラインタフェースと、デバイスハードウェア２１０へのバス制御を行なうバスインタフェース２２１と、が実行される。ここで、ミドルウェア３３２は、本実施形態におけるアプリケーション起動を制御するような、アプリケーション３３３とＯＳ３３１との間における制御を実行するアプリケーション管理ソフトを含む、各アプリケーションの起動・停止・監視などを含めた制御を行う。ミドルウェア３３２は、その他、データベース管理ソフトやトランザクションモニタソフトなども含まれる。
【００６２】
《情報処理装置の機能構成》
図４は、本実施形態に係る情報処理装置２３０の機能構成を示すブロック図である。なお、図４には、本実施形態の動作に関連の深い機能構成部を図示し、情報処理装置２３０が有する通常の機能構成部は図示していない。例えば、情報処理装置２３０がＰＣの場合の種々の処理機能については示していない
【００６３】
情報処理装置２３０は、通信制御部４０１と、アプリケーション実行部４０２と、ドライブアプリインタフェース部４０３と、アプリケーション起動部４０４と、を備える。なお、情報処理装置２３０の外部あるいは内部に、アプリケーションデータベース（図中、アプリケーションＤＢ）４０５を備える。アプリケーションデータベース４０５は、複数のアプリケーション４５１、および、デバイスドライバの一部である複数のアプリケーションインタフェース４５２を格納する。
【００６４】
通信制御部４０１は、ネットワーク２４０を介する通信端末２２０との通信を制御する。アプリケーション実行部４０２は、アプリケーション起動部４０４の指示に従って、アプリケーションデータデータベース４０５に格納されたアプリケーションを実行する。図４においては、ＰＯＳアプリケーションが実行されている例を示している。ドライブアプリインタフェース部４０３は、通信端末２２０に接続されたデバイスに対応して入出力ファイル操作を実現するためのアプリケーションインタフェースを、アプリケーションデータベース４０５から検索して実行する。なお、図４には、ディスプレイドライバ・アプリインタフェース４３１とキーボードドライバ・アプリインタフェース４３２とバーコードリーダドライバ・アプリインタフェース４３３とが動作中の例を示している。アプリケーション起動部４０４は、ドライブアプリインタフェース部４０３から動作中のアプリケーションインタフェースをチェックして、アプリケーション起動テーブル４４１に基づいて起動するアプリケーションを選択して、アプリケーション実行部４０２に実行を指示する。
【００６５】
なお、ディスプレイドライバ・アプリインタフェース４３１とキーボードドライバ・アプリインタフェース４３２とバーコードリーダドライバ・アプリインタフェース４３３とは、それぞれ通信端末２２０のディスプレイドライバ・ホストコントローラインタフェース５２１とキーボードドライバ・ホストコントローラインタフェース５２２とバーコードリーダドライバ・ホストコントローラインタフェース５２３と連動して、各デバイスドライバを構成する。
【００６６】
《通信端末の機能構成》
図５は、本実施形態に係る通信端末の機能構成を示すブロック図である。なお、図５には、本実施形態の動作に関連の深い機能構成部を図示し、通信端末２２０が有する通常の機能構成部は図示していない。例えば、通信端末２２０がスマートフォンやタブレットの場合の種々の処理機能については示していない。
【００６７】
通信端末２２０は、通信制御部５０１と、ホストコントローラインタフェース部５０２と、デバイス制御部５０３と、バスインタフェース２２１と、を備える。
【００６８】
通信制御部５０１は、ネットワーク２４０を介する情報処理装置２３０との通信を制御する。ホストコントロールインタフェース部５０２は、接続されたデバイスに対応して入出力ファイル操作を実現するためのホストコントローラインタフェースを実行する。なお、図５には、ディスプレイドライバ・ホストコントロールインタフェース５２１とキーボードドライバ・ホストコントロールインタフェース５２２とバーコードリーダドライバ・ホストコントロールインタフェース５２３とが動作中の例を示している。なお、ディスプレイドライバ・ホストコントローラインタフェース５２１とキーボードドライバ・ホストコントローラインタフェース５２２とバーコードリーダドライバ・ホストコントローラインタフェース５２３とは、は、それぞれ情報処理装置２３０のディスプレイドライバ・アプリインタフェース４３１とキーボードドライバ・アプリインタフェース４３２とバーコードリーダドライバ・アプリインタフェース４３３と連動して、各デバイスドライバを構成する。
【００６９】
デバイス制御部５０３は、各デバイスの接続バスに対応してデバイスを制御する。なお、図５には、ディスプレイ・デバイス制御部５３１とキーボード・デバイス制御部５３２とバーコードリーダ・デバイス制御部５３３とが動作中の例を示している。バスインタフェース２２１は、デバイスであるディスプレイ２１２や、キーボード２１３や、バーコードリーダ２１４とのバス通信を制御する。
【００７０】
（アプリケーション起動テーブル）
図６は、本実施形態に係るアプリケーション起動テーブル４４１の構成を示す図である。アプリケーション起動テーブル４４１は、デバイスドライバの起動からデバイスの使用可能をチェックして、使用可能なデバイスに対応するアプリケーションを選択して起動するために、アプリケーション起動部４０４により使用される。
【００７１】
アプリケーション起動テーブル４４１は、デバイスドライバの動作から使用可能か否かを判定したデバイス接続状態６０１と、デバイス接続状態６０１に対応して起動アプリケーション６０２と、を記憶する。デバイス接続状態６０１には、本実施形態のＰＯＳシステムにおいては、例えば、ディスプレイ、キーボード、バーコードリーダ、キャッシュドロア、レシートプリンタ、クレジットカードリーダ、非接触端末、などの接続状態を記憶する。図６においては、○が接続されて使用可能、×が使用不能を示す。起動アプリケーション６０２としては、ＰＯＳアプリケーションと、その種類、機能、を記憶する。なお、起動アプリケーション６０２は、同じＰＯＳアプリケーションでその中の実行機能を選択するように記憶しても、異なる機能を異なるＰＯＳアプリケーションで記憶してもよい。
【００７２】
図６には、本実施形態で注目するＰＯＳシステムについてアプリケーション起動テーブル４４１の構成を詳細に示したが、例えば、診断支援システムのアプリケーションや、学習支援システムのアプリケーションなどの対しても、同様のアプリケーション起動テーブルが生成でき、そのアプリケーション起動制御は本実施形態と同様の効果を奏する。
【００７３】
《情報処理装置のハードウェア構成》
図７は、本実施形態に係る情報処理装置２３０のハードウェア構成を示すブロック図である。なお、図７においては、情報処理装置２３０を実際のＰＣにように図示しているが、クラウドサーバに構築された仮想ＰＣであってもよい。
【００７４】
図７で、ＣＰＵ(Central Processing Unit)７１０は演算制御用のプロセッサであり、プログラムを実行することで図４の情報処理装置２３０の機能構成部を実現する。ＲＯＭ(Read Only Memory)７２０は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部４０１は、ネットワーク２４０を介して通信端末２２０と通信する。なお、ＣＰＵ７１０は１つに限定されず、複数のＣＰＵであっても、あるいは画像処理用のＧＰＵを含んでもよい。また、通信制御部４０１は、ＣＰＵ７１０とは独立したＣＰＵを有して、ＲＡＭ(Random Access Memory)７４０の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、ＲＡＭ７４０とストレージ７５０との間でデータを転送するＤＭＡＣを設けるのが望ましい（図示なし）。したがって、ＣＰＵ７１０は、ＲＡＭ７４０にデータが受信あるいは転送されたことを認識してデータを処理する。また、ＣＰＵ７１０は、処理結果をＲＡＭ７４０に準備し、後の送信あるいは転送は通信制御部４０１やＤＭＡＣに任せる。
【００７５】
ＲＡＭ７４０は、ＣＰＵ７１０が一時記憶のワークエリアとして使用するランダムアクセスメモリである。ＲＡＭ７４０には、本実施形態の実現に必要なデータを記憶する領域が確保されている。デバイス接続テーブル７４１は、デバイスドライバが起動しているか否かから接続され使用可能なデバイスを判定して記憶する。起動アプリケーションＩＤ７４２は、デバイス接続テーブル７４１の内容に基づき、アプリケーション起動テーブル４４１を参照して選択された起動アプリケーションの識別子（ＩＤ）を記憶する。送受信データ７４３は、通信制御部４０１を介して通信端末２２０および通信端末２２０に接続するデバイス２１０と送受信するデータである。
【００７６】
ストレージ７５０には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。アプリケーション４５１は、情報処理装置２３０が提供する検索可能なプリケーションソフトウェアである。アプリケーションインタフェース４５２は、情報処理装置２３０がデバイスに対応して提供するデバイスドライバの一部である。アプリケーション起動データベース７５１は、接続され使用可能となったデバイスセットと起動するアプリケーションとの関係を蓄積するデータベースである。アプリケーション起動テーブル４４１は、アプリケーション起動データベース７５１の一部であって、ユーザにより設定されても、アプリケーション起動データベース７５１に蓄積されたデータに基づく学習により生成されてもよい。
【００７７】
ストレージ７５０には、以下のプログラムが格納される。情報処理装置制御プログラム７５２は、本情報処理装置２３０全体を制御するプログラムである。アプリケーションインタフェース７５３は、起動した各デバイスドライバの一部である。アプリケーション起動モジュール７５４は、デバイス接続テーブル７４１とアプリケーション起動データベース７５１とに基づいて、アプリケーションを選択して起動を指示するミドルウェアとしてのモジュールである。アプリケーションプログラム７５５は、アプリケーション起動モジュール７５４により選択され起動されたアプリケーションである。
【００７８】
なお、図７のＲＡＭ７４０やストレージ７５０には、情報処理装置２３０が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
【００７９】
《情報処理装置の処理手順》
図８は、本実施形態に係る情報処理装置２３０の処理手順を示すフローチャートである。このフローチャートは、図７のＣＰＵ７１０がＲＡＭ７４０を使用して実行し、図４の機能構成部を実現する。
【００８０】
情報処理装置２３０は、ステップＳ８０１において、アプリケーション起動条件をアプリケーション起動データベース７５１に登録する。この登録は、ユーザによるデバイスセットと起動アプリケーションとの入力であっても、過去の履歴から学習して生成したデバイスセットと起動アプリケーションとであってもよい。情報処理装置２３０は、ステップＳ８０３において、アプリケーション起動テーブル４４１に従ったアプリケーション起動処理を実行する。情報処理装置２３０は、ステップＳ８０５において、アプリケーションの実行状態を蓄積する。そして、情報処理装置２３０は、ステップＳ８０７において、アプリケーション処理の終了か否かを判定する。アプリケーション処理の終了でなければ、情報処理装置２３０は、ステップＳ８０３に戻って、次のアプリケーションの起動処理をする。
【００８１】
（アプリケーション起動処理）
図９は、本実施形態に係るアプリケーション起動処理（Ｓ８０３）の手順を示すフローチャートである。
【００８２】
情報処理装置２３０は、ステップＳ９０１において、起動されたデバイスドライバを確認するための時間を計時するタイマを起動する。情報処理装置２３０は、ステップＳ９０３において、あらかじめ定めた終了処理が有ったか否かを判定する。終了処理があれば、処理を終了してリターンする。
【００８３】
終了処理がなければ、情報処理装置２３０は、ステップＳ９０５において、タイマが所定期間を計時したか否かを判定する。タイマが所定期間を計時してなければ、情報処理装置２３０は、ステップＳ９０３に戻って、起動されたデバイスドライバを確認するための時間計時を継続する。
【００８４】
タイマが所定期間を計時すると、情報処理装置２３０は、ステップＳ９０７において、起動しているデバイスドライバを接続したデバイスとして確認する。そして、情報処理装置２３０は、ステップＳ９０９において、起動しているデバイスドライバとステップＳ８０１で登録した起動デバイスとが一致するか否かを判定する。不一致であれば必要なデバイスが接続してないあるいは使用可能でないとして、処理を終了してリターンする。
【００８５】
一致していれば、情報処理装置２３０は、ステップＳ９１１において、一致した起動デバイスに対応してステップＳ８０１で登録されたアプリケーションを選択して起動を指示する。かかるアプリケーションの選択と起動指示によりアプリケーションが起動する。
【００８６】
情報処理装置２３０は、ステップＳ９１３において、起動されているデバイスドライバを確認するための時間を計時するタイマを起動する。なお、タイマの計時する時間は、ステップＳ９０１と同じでも異なってもよい。情報処理装置２３０は、ステップＳ９１５において、あらかじめ定めた終了処理が有ったか否かを判定する。終了処理があれば、情報処理装置２３０は、ステップＳ９２３において、ステップＳ９１１で起動指示したアプリケーションの終了指示を行なう。
【００８７】
終了処理がなければ、情報処理装置２３０は、ステップＳ９１７において、タイマが所定期間を計時したか否かを判定する。タイマが所定期間を計時してなければ、情報処理装置２３０は、ステップＳ９１５に戻って、起動されているデバイスドライバを確認するための時間計時を継続する。
【００８８】
タイマが所定期間を計時すると、情報処理装置２３０は、ステップＳ９１９において、起動しているデバイスドライバを接続したデバイスとして確認する。そして、情報処理装置２３０は、ステップＳ９２１において、起動しているデバイスドライバとステップＳ８０１で登録した起動デバイスとが一致するか否かを判定する。不一致であれば必要なデバイスが切り離されたあるいは使用不能になったとして、情報処理装置２３０は、ステップＳ９２３において、ステップＳ９１１で起動指示したアプリケーションの終了指示を行なう。
【００８９】
一致であれば、情報処理装置２３０は、ステップＳ９１３に戻って、再度、タイマ時間後の起動ドライバ確認の処理を継続する。
【００９０】
なお、図９のフローチャートでは、起動デバイスによりアプリケーションを起動または終了させる場合を示した。しかし、起動デバイスの増減に対応して異なるアプリケーションを起動させても、起動デバイスの増減に対応して同じアプリケーションの中で実行機能を選択させてもよい。これらのフローチャートは複雑になるので詳細は省略するが、容易に作成できる。
【００９１】
本実施形態によれば、遠隔のＰＯＳデバイス用のデバイスドライブの起動を判定することにより、所望のＰＯＳデバイスを使用するＰＯＳアプリケーションを安定的に起動することができる。
【００９２】
［第３実施形態］
次に、本発明の第３実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態と比べると、起動アプリケーションが利用者に対応して選択される点で異なる。その他の構成および動作は、第２実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【００９３】
《情報処理システム》
図１０Ａは、本実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システム１０００の動作を示す図である。なお、図１０Ａにおいて、図２Ａと同様の構成要素には同じ参照番号を付す。
【００９４】
情報処理システム１０００は、接続確認１０３６として利用者であるユーザを確認し、利用者に対応するＰＯＳアプリケーション（図中、ＰＯＳアプリ）１０３１またはＰＯＳ上司アプリケーション（図中、ＰＯＳ上司アプリ）１０３２を実行する、情報処理装置１０３０を含む。また、情報処理システム１０００は情報処理装置１０３０と通信接続される通信端末１０２０と、通信端末１０２０にバス接続されるデバイス１０１０と、を含む。情報処理装置１０３０は、デバイスマネージャ２３６により、直接接続されたデバイス、および、通信端末１０２０を介して遠隔に接続されたデバイスを管理する。なお、通信端末１０２０を介して遠隔に接続されたデバイスは、情報処理装置１０３０と通信端末１０２０とで協働するデバイスドライバにより制御するのが望ましい。
【００９５】
図１０Ａの情報処理装置１０３０において、デバイスマネージャ２３６により接続デバイスの管理画面を表示すると、直接接続されたデバイス、および、通信端末１０２０を介して遠隔に接続されたデバイスが同様に表示され、選択できる。なお、図１０Ａの情報処理装置１０３０は、デスクトップＰＣやノートＰＣであっても、クラウドサーバに構築された仮想ＰＣであってもよい。
【００９６】
情報処理システム１０００においては、コメント１００１に記載のように、例として、ＵＳＢディスプレイ（モニタ）、キーボード、バーコードリーダ、という所定のデバイスセットが接続されたこと、および、起動するアプリケーションの利用者を、起動ドライバと対応付けて、定期的あるいは起動ドライバの変更があった時にチェックする。そして、必要なデバイスが揃ったことを検出したら、利用者に対応してあらかじめ定めたアプリケーションが起動する。この例では、利用者が従業員のＡさんの場合は通常のＰＯＳアプリケーション１０３１が起動し、利用者が管理者のＢさんの場合はＰＯＳ上司アプリケーション１０３２が起動する。
【００９７】
（通信メッセージ）
図１０Ｂは、本実施形態に係る通信メッセージの構成を示す図である。通信メッセージのフォーマットは、図１０Ｂに限定されるものではない。なお、図１０Ｂにおいて、図２Ｅと同様の要素には同じ参照番号を付して、説明を省略する。
【００９８】
図１０Ｂには、各デバイスについて制御チャネルで送受信される制御メッセージ２７０の送受信の前に、通信端末１０２０を操作する利用者の情報を情報処理装置１０３０から通信端末１０２０に問い合わせて、通信端末１０２０から情報処理装置１０３０に応答する使用者メッセージ１０７０が図示されている。
【００９９】
使用者メッセージ１０７０の内、情報処理装置１０３０から通信端末１０２０に送信されるメッセージは、ＩＰアドレス１０７１と、コマンド１０７２と、誤り訂正の例えばＣＲＣ１０７３と、を有する。ＩＰアドレス１０７１としては、送信先の通信端末アドレスと送信元のホストアドレスとがセットされる。コマンド１０７２としては、使用者情報取得のコマンドが伝送される。
【０１００】
使用者メッセージ１０７０の内、通信端末１０２０から情報処理装置１０３０に送信される使用者メッセージは、ＩＰアドレス１０７５と、応答データ１０７６と、誤り訂正の例えばＣＲＣ２７８と、を有する。ＩＰアドレス１０７５としては、送信先のホストアドレスと送信元の通信端末アドレスとがセットされる。応答データ１０７６としては、使用者情報が伝送される。
【０１０１】
なお、プロトコルとしては、情報処理装置１０３０から通信端末１０２０への問い合わせ無しに、通信端末１０２０から情報処理装置１０３０に使用者情報が伝送されてもよい。
【０１０２】
（アプリケーション起動テーブル）
図１１は、本実施形態に係るアプリケーション起動テーブルの構成を示す図である。なお、図１１において、図６と同様の要素には同じ参照番号を付して、説明は省略する。
【０１０３】
図１１において、利用者に対応する起動アプリケーションを記憶するテーブル１１００は、アプリケーションの利用者１１０１と、使用する言語１１０２と、アプリケーションのクラス１１０３との組に対応して、起動アプリケーション１１０４を記憶する。なお、利用者１１０１以外の条件はこれに限らない。
【０１０４】
（アプリケーション起動処理）
図１２は、本実施形態に係るアプリケーション起動処理の手順を示すフローチャートである。なお、図１２において、ステップＳ９０１〜Ｓ９２３は図９と同様であるので、説明を省略する。
【０１０５】
情報処理装置１０３０は、ステップＳ１２０１において、利用者あるいは利用者を含む情報を取得する。情報処理装置１０３０は、ステップＳ１２０３において、テーブル１１００を参照して、利用者あるいは利用者を含む情報に基づいて起動アプリケーションを選択する。
【０１０６】
本実施形態によれば、利用者あるいは利用者を含む情報により起動アプリケーションを選択するので、さらに利用者に対応するアプリケーションを起動できる。
【０１０７】
［第４実施形態］
次に、本発明の第４実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態、第３実施形態と比べると、起動アプリケーションがログイン端末に対応して選択される点で異なる。その他の構成および動作は、第２実施形態、第３実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。なお、図示しないが、本実施形態の情報処理システムにおいては、図１０Ａの接続確認１０３６としてログイン端末を確認する。
【０１０８】
（アプリケーション起動テーブル）
図１３は、本実施形態に係るアプリケーション起動テーブルの構成を示す図である。なお、図１３において、図６と同様の要素には同じ参照番号を付して、説明は省略する。
【０１０９】
図１３において、ログイン端末に対応する起動アプリケーションを記憶するテーブル１３００は、アプリケーションの起動を要求したログイン端末１３０１に対応して、起動アプリケーション１３０２を記憶する。ログイン端末１３０１の情報として端末ＩＤや機種などを含む。なお、ログイン端末１３０１の情報はこれに限らない。
【０１１０】
（アプリケーション起動処理）
図１４は、本実施形態に係るアプリケーション起動処理の手順を示すフローチャートである。なお、図１４において、ステップＳ９０１〜Ｓ９２３は図９と同様であるので、説明を省略する。
【０１１１】
情報処理装置は、ステップＳ１４０１において、ログイン端末の情報を取得する。情報処理装置は、ステップＳ１４０３において、テーブル１３００を参照して、ログイン端末の情報に基づいて起動アプリケーションを選択する。
【０１１２】
本実施形態によれば、ログイン端末情報により起動アプリケーションを選択するので、さらにログイン端末に対応するアプリケーションを起動できる。
【０１１３】
［第５実施形態］
次に、本発明の第５実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態乃至第４実施形態と比べると、複数の利用者あるいは複数のログイン端末からの操作を共有する点で異なる。その他の構成および動作は、第２実施形態から第４実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１１４】
《情報処理システム》
図１５Ａは、本実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システム１５００の動作を示す図である。なお、図１５Ａにおいて、図２Ａまたは図１０Ａと同様の構成要素には同じ参照番号を付す。
【０１１５】
情報処理システム１５００は、接続確認１０３６として利用者であるユーザを確認し、利用者に対応するＰＯＳアプリケーション（図中、ＰＯＳアプリ）１０３１およびＰＯＳ上司アプリケーション（図中、ＰＯＳ上司アプリ）１０３２を実行する、情報処理装置１５３０を含む。情報処理装置１５３０は、さらに、ＰＯＳアプリケーション１０３１およびＰＯＳ上司アプリケーション１０３２における操作を共有するための、操作共有部１５３３を有する。
【０１１６】
すなわち、情報処理システム１５００においては、コメント１５０１に記載のように、さらに、同時ログイン時の操作共有部１５３３と操作記憶部（ＤＢ）１５３４とを用意する。うまく行った時、通信端末１５２０においてＤＢに登録するボタンを押すと、その操作指導パターンが操作記憶部（ＤＢ）１５３４に記憶される。操作記憶部（ＤＢ）１５３４に類似のパターンが増えると、他のワーカ（従業員）と指導者との適切な操作ワークフローとして提案される。
【０１１７】
また、情報処理システム１５００は情報処理装置１５３０と通信接続される通信端末１５２０と、通信端末１５２０にバス接続されるデバイス１５１０と、を含む。なお、ＰＯＳアプリケーション１０３１およびＰＯＳ上司アプリケーション１０３２は、複数の通信端末１５２０のそれぞれに対応して起動してもよいし、１つの通信端末１５２０に接続された複数のデバイスのそれぞれに対応して起動されてもよい。
【０１１８】
情報処理装置１５３０は、デバイスマネージャ２３６により、直接接続されたデバイス、および、通信端末１５２０を介して遠隔に接続されたデバイスを管理する。なお、通信端末１５２０を介して遠隔に接続されたデバイスは、情報処理装置１５３０と通信端末１５２０とで協働するデバイスドライバにより制御するのが望ましい。
【０１１９】
図１５Ａの情報処理装置１５３０において、デバイスマネージャ２３６により接続デバイスの管理画面を表示すると、直接接続されたデバイス、および、通信端末１３２０を介して遠隔に接続されたデバイスが同様に表示され、選択できる。なお、図１５Ａの情報処理装置１５３０は、デスクトップＰＣやノートＰＣであっても、クラウドサーバに構築された仮想ＰＣであってもよい。
【０１２０】
情報処理システム１５００においては、コメント１００１に記載のように、例として、ＵＳＢディスプレイ（モニタ）、キーボード、バーコードリーダ、という所定のデバイスセットが接続されたこと、および、起動するアプリケーションの利用者を、起動ドライバと対応付けて、定期的あるいは起動ドライバの変更があった時にチェックする。そして、必要なデバイスが揃ったことを検出したら、利用者に対応してあらかじめ定めたアプリケーションが起動する。この例では、利用者が従業員のＡさんの場合に通常のＰＯＳアプリケーション１０３１が起動し、利用者が管理者のＢさんの場合にＰＯＳ上司アプリケーション１０３２が起動し、その操作が共有される。
【０１２１】
図１５Ｂは、本実施形態に係る情報処理システム１５００の操作共有動作を示す図である。なお、図１５においては、画面の共有を説明するが、キーボードやポインチングデバイス、その他のデバイスの共有も同様である。
【０１２２】
図１５Ｂのように、ＰＯＳ上司アプリケーション１５３２における画面操作と、ＰＯＳアプリケーション１５３１における画面操作とが共有されて、管理者と従業員とが同じ画面を見ながらＰＯＳ機器の操作を伝達あるいは学習できる。
【０１２３】
例えば、管理者がステップＳ１５１１において初期画面としてチェックすべき注目箇所を指示すると、従業員はステップＳ１５３１においてその注目箇所を確認することができる。また、管理者がステップＳ１５１３においてバーコードリーダで商品および価格を読み込み、一方、従業員がステップＳ１５３３においてバーコードリーダで同じ商品および価格を読み込みと、共通画面においてその操作の正否が確認できる。また、清算処理（Ｓ１５１５とＳ１５３５）、入金処理（Ｓ１５１７とＳ１５３７）、出金処理（Ｓ１５１９とＳ１５３９）においても、それらの操作の確認ができる。さらに、値引き処理（Ｓ１５２１とＳ１５４１）や、さらに高度な他の処理（Ｓ１５２３とＳ１５４３）においても、その正否を共通画面により確認できる。
【０１２４】
図１６Ａは、本実施形態に係る情報処理システム１５００の操作共有の構成を示す図である。図１６Ａは、図１５Ａの構成をＰＯＳシステムとして具体化した図である。なお、図１６Ａにおいて、図１５Ａと同様の機能構成部には同じ参照番号を付して、説明は省略する。
【０１２５】
図１６Ａにおいては、モニタであるディスプレイをソフト化したモニタ分配機１６３２によって画面共有し、キーボードおよびマウスをソフト化したＨＵＢ１６３１によって操作共有する。かかる画面共有および操作共有には、仮想ＤＳＰ(digital signal processor)や仮想イーサ等の技術が利用される（１６３３参照）。
【０１２６】
また、ネットワーク（ＩＰ／ＭＡＣ通信）２４０において発生するジッタを吸収するために、ＦＩＦＯ(first-in first-out)バッファを設ける。それでも、一定量が確保できない場合には、通信路エラーを表示したり、さらに、通信路の帯域拡大制御をしたりしてもよい（１６４０参照）。
【０１２７】
図１６Ｂは、本実施形態に係る情報処理システム１５００の操作共有の概念を示す図である。図１６Ｂは、本実施形態における情報処理装置１５３０と、通信端末２２０、１５２０との間のデバイスドライバの構成について示している。なお、図１６Ｂにおいて、図２Ｃと同様の構成要素には同じ参照番号を付して、説明を省略する。
【０１２８】
図１６Ｂの下段における、情報処理装置１５３０と通信端末２２０とデバイス２１０との構成は図２Ｃと同様なので、説明は省略する。図１６Ｂでは、操作共有する情報処理装置１５３０と通信端末１５２０とデバイス１５１０との構成が追加されている。
【０１２９】
図１６Ｂでは、ＰＯＳアプリケーションを起動する最低限のデバイスとして、モニタとしてのディスプレイ１６１２と、入力指示用のキーボード１６１３と、商品情報を読み取るバーコードリーダ１６１４と、が通信端末１５２０に接続されて、各デバイスドライバが起動された状態を示している。ディスプレイ１６１２と、キーボード１６１３と、バーコードリーダ２１４とは、通信端末１５２０のバスインタフェース１６２１に接続される。
【０１３０】
ディスプレイ１６１２を制御するためのモニタ・デバイスドライバとして、通信端末１５２０のホストコントローラインタフェース１６２２と情報処理装置１５３０のアプリケーションインタフェース１６３２とが起動している。そして、ホストコントローラインタフェース１６２２とアプリケーションインタフェース１６３２との間にネットワーク２４０を介してパイプが確立する。また、キーボード１６１３を制御するためのキーボード・デバイスドライバとして、通信端末１５２０のホストコントローラインタフェース１６２３と情報処理装置１５３０のアプリケーションインタフェース１６３３とが起動している。そして、ホストコントローラインタフェース１６２３とアプリケーションインタフェース１６３３との間にネットワーク２４０を介してパイプが確立する。また、バーコードリーダ１６１４を制御するためのバーコードリーダ・デバイスドライバとして、通信端末１５２０のホストコントローラインタフェース１６２４と情報処理装置１５３０のアプリケーションインタフェース１６３４とが起動している。そして、ホストコントローラインタフェース１６２４とアプリケーションインタフェース１６３４との間にネットワーク２４０を介してパイプが確立する。
【０１３１】
情報処理装置１５３０は、アプリケーションインタフェース２３２〜２３４が起動しているか否かをチェックして、モニタとキーボードとバーコードリーダとが使用可能であると判定すると、アプリケーションソフトウェアとしてＰＯＳアプリケーション２３１を起動する。また、情報処理装置１５３０は、アプリケーションインタフェース１６３２〜１６３４が起動しているか否かをチェックして、モニタとキーボードとバーコードリーダとが使用可能であると判定すると、アプリケーションソフトウェアとしてＰＯＳ上司アプリケーション１６３１を起動する。
【０１３２】
そして、情報処理装置１５３０は、ＰＯＳアプリケーション２３１とＰＯＳ上司アプリケーション１６３１とが起動すると共に、操作共有部１６３５を介して、例えば、モニタ画面を共有する。操作共有部１６３５のモニタ画面は、アプリケーションインタフェース１６３２、ネットワーク２４０、ホストコントローラインタフェース１６２２を介して、ディスプレイ１６１２へ送信され、アプリケーションインタフェース２３２、ネットワーク２４０、ホストコントローラインタフェース２２２を介して、ディスプレイ２１２へ送信されて、共有される。
【０１３３】
このように、モニタ画面がＰＯＳアプリケーション２３１とＰＯＳ上司アプリケーション１６３１とで共有される。他のデバイスの操作共有も同様である。
【０１３４】
（アプリケーション起動および操作共有テーブル）
図１７は、本実施形態に係るアプリケーション起動および操作共有テーブル１７４１の構成を示す図である。図１７は、図１５Ａの操作記憶部１５３４に蓄積されて、アプリケーション起動および操作共有の学習に使用される。
【０１３５】
アプリケーション起動および操作共有テーブル１７４１は、操作共有している起動アプリケーション１７０１に対応して、複数のワークフロー１７０２と、各ワークフローの評価レベル１７０３と、を記憶する。ここで、ワークフローとは、図１５Ｂで示したような複数の起動アプリケーション間での処理手順や、１つの起動アプリケーションにおける操作共有間での処理手順を含むミドルウェアである。評価レベル１７０３は、各ワークフローが、例えば学習結果として効果的であったか否かなどの評価である。
【０１３６】
なお、本実施形態において、起動アプリケーションを選択するアプリケーション起動テーブル４４１は、アプリケーション起動および操作共有テーブル１７４１とは別に設けられている。
【０１３７】
（実行状態蓄積処理）
図１８は、本実施形態に係る実行状態蓄積処理（Ｓ８０５）の手順を示すフローチャートである。
【０１３８】
情報処理装置１５３０は、ステップＳ１８０１において、アプリケーション起動処理が終了した後、ワークフローの記憶が指示されたか否かを判定する。記憶が指示された場合、情報処理装置１５３０は、ステップＳ１８０３において、ワークフローを評価する。そして、情報処理装置１５３０は、ステップＳ１８０５において、ワークフローを格納する。
【０１３９】
記憶が指示されない場合あるいは格納後、情報処理装置１５３０は、ステップＳ１８０７において、格納されているワークフローの評価順位を生成して、以降のワークフローの使用に対応する。
【０１４０】
本実施形態によれば、所望のデバイスを使用するアプリケーションを安定的に起動し、起動アプリケーションによる操作共有ができる。
【０１４１】
［第６実施形態］
次に、本発明の第６実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態から第５実施形態と比べると、音声によりワークフローの評価をして格納する点で異なる。その他の構成および動作は、第２実施形態から第５実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１４２】
《情報処理システム》
図１９は、本実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システム１９００の動作を示す図である。なお、図１９において、図２Ａ、図１０Ａまたは図１５Ａと同様の構成要素には同じ参照番号を付す。
【０１４３】
情報処理システム１９００は、ＰＯＳアプリケーション（図中、ＰＯＳアプリ）１５３１およびＰＯＳ上司アプリケーション（図中、ＰＯＳ上司アプリ）１５３２を実行し、ＰＯＳアプリケーション１５３１およびＰＯＳ上司アプリケーション１５３２における操作を共有するための操作共有部１５３３を有する、情報処理装置１９３０を含む。情報処理装置１９３０は、さらに、マイク１９１１が取得した音声を認識する音声認識部１９３１を有する。
【０１４４】
すなわち、情報処理システム１９００においては、コメント１９０１に記載のように、うまく行った成功パターンをマイクで拾ったつぶやきや会話の音声認識から、自動的に成功パターンとして登録する。
【０１４５】
また、情報処理システム１９００は情報処理装置１９３０と通信接続される通信端末１９２０と、通信端末１９２０にバス接続されるマイク１９１１を含むデバイス１９１０と、を含む。
【０１４６】
（実行状態蓄積処理）
図２０は、本実施形態に係る実行状態蓄積処理（Ｓ８０５）の手順を示すフローチャートである。
【０１４７】
情報処理装置１９３０は、ステップＳ２００１において、アプリケーション起動処理が終了した後、マイク１９１１が拾ったつぶやきや会話の音声認識から、今回のワークフローが成功例か否かを判定する。成功例と判定された場合、情報処理装置１９３０は、ステップＳ２００３において、成功例のワークフローを格納する。
【０１４８】
そして、情報処理装置１９３０は、ステップＳ２００５において、格納された成功例を読み出し、ステップＳ２００７において、以降のワークフローの使用のために成功例の順序付けをする。
【０１４９】
本実施形態によれば、所望のデバイスを使用するアプリケーションを安定的に起動し、起動アプリケーションによる操作共有ができると共に、操作共有のワークフローの成功例を自動に得ることができる。
【０１５０】
［第７実施形態］
次に、本発明の第７実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態から第６実施形態と比べると、関連する他のアプリケーションを起動する点で異なる。その他の構成および動作は、第２実施形態から第６実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１５１】
《情報処理システム》
図２１は、本実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システム２１００の動作を示す図である。なお、図２１において、図２Ａ、図１０Ａ、図１５Ａまたは図１９と同様の構成要素には同じ参照番号を付す。
【０１５２】
情報処理システム２１００は、ＰＯＳアプリケーション（図中、ＰＯＳアプリ）１５３１およびＰＯＳ上司アプリケーション（図中、ＰＯＳ上司アプリ）１５３２を実行し、ＰＯＳアプリケーション１５３１およびＰＯＳ上司アプリケーション１５３２における操作を共有するための操作共有部１５３３を有する、情報処理装置１９３０を含む。情報処理装置１９３０は、マイク１９１１が取得した音声を認識する音声認識部１９３１を有し、さらに、関連する他のアプリケーションを起動する他のアプリ起動部２１３１を有する。
【０１５３】
すなわち、情報処理システム２１００においては、コメント２１０１に記載のように、さらに、成功パターンとして、併用起動していた他のアプリも記憶し、後から、他のアプリも含めた起動をしてワークフローを支援し、起動したアプリを関連する他のアプリに切り替えつつ、デバイスを活用する。さらに、使っている周辺機器で、前面に出す画面を自動的に切り替える。
【０１５４】
また、情報処理システム２１００は情報処理装置２１３０と通信接続される通信端末２１２０を含む。
【０１５５】
（アプリケーション起動および関連アプリケーションテーブル）
図２２は、本実施形態に係るアプリケーション起動および関連アプリケーションテーブル２２４１の構成を示す図である。図２２は、図２１の操作記憶部１５３４に蓄積されて、アプリケーション起動および関連アプリケーション起動に使用される。
【０１５６】
アプリケーション起動および関連アプリケーションテーブル２２４１は、起動アプリケーション２２０１に対応して、関連して起動するアプリケーション２２０３を記憶する。ここで、関連して起動するアプリケーション２２０３には、操作共有する操作共有アプリケーション、ワークフロー内で関連付けられたワークフロー関連アプリケーション、そのワークフロー、が含まれる。
【０１５７】
なお、本実施形態において、起動アプリケーションを選択するアプリケーション起動テーブル４４１は、アプリケーション起動および操作共有テーブル１７４１とは別に設けられている。
【０１５８】
（実行状態蓄積処理）
図２３は、本実施形態に係る実行状態蓄積処理（Ｓ８０５）の手順を示すフローチャートである。
【０１５９】
情報処理装置２１３０は、ステップＳ２３０１において、アプリケーション起動処理が終了した後、操作共有をしたアプリケーションが有るか否かを判定する。操作共有をしたアプリケーションが有れば、情報処理装置２１３０は、ステップＳ２３０３において、操作共有アプリケーションを関連アプリケーション２２０３として記憶する。
【０１６０】
情報処理装置２１３０は、ステップＳ２３０５において、ワークフロー内で関連をしたアプリケーションが有るか否かを判定する。ワークフロー内で関連をしたアプリケーションが有れば、情報処理装置２１３０は、ステップＳ２３０７において、ワークフロー関連アプリと対応するワークフローとを関連アプリケーション２２０３として記憶する。
【０１６１】
本実施形態によれば、所望のデバイスを使用するアプリケーションを安定的に起動し、起動アプリケーションによる操作共有ができると共に、関連するアプリケーションを起動ことができる。
【０１６２】
［第８実施形態］
次に、本発明の第８実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態から第７実施形態と比べると、多言語の従業員および客が集まるレストランでの多言語処理をする点で異なる。その他の構成および動作は、第２実施形態から第７実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１６３】
《情報処理システム》
図２４Ａは、本実施形態に係る情報処理装置と遠隔のデバイスとを含む情報処理システム２４００の動作を示す図である。
【０１６４】
情報処理システム２４００は、クラウドサーバ２４３０と、クラウドサーバ２４３０とレストラン２４０１の通信端末とを接続するネットワーク２４０と、を備える。
【０１６５】
クラウドサーバ２４３０は、起動アプリケーションとして、例えば、種々の言語に対応するＰＯＳアプリケーション、広東語や英語の注文アプリケーション、スペイン後の料理場アプリケーション、など多言語のアプリケーションが、必要なデバイスが準備されて使用言語を判定すると、異なる言語間で互いに情報交換可能なように実行される。
【０１６６】
レストラン２４０１の通信端末としては、上記実施形態のＰＯＳシステムのレジ処理端末２４１０を含む。また、レストラン２４０１の通信端末としては、表示画面から客が注文可能なタブレット２４１６、注文バーコードを読み取るバーコードリーダをＵＳＢ接続して客が注文可能なスマートフォン２４１７、ウェイトレスが注文する専用端末２４１５を含む。また、レストラン２４０１の通信端末としては、厨房に注文を表示するモニタ用のディスプレイ２４１８を含む。
【０１６７】
さらに、情報処理システム２４００は、通信端末をネットワーク２４０に中継するＡＰ(Access Point)２４１９を有してもよい。
【０１６８】
このように、アメリカ人が英語画面から注文し、中国人が中国語メニューから注文し、厨房のスペイン人コックはスペイン語の注文を見ながら、調理する。
【０１６９】
図２４Ｂは、本実施形態に係る情報処理システム２４００の構成を示す図である。なお、図２４Ｂにおいて、図２Ｂと同様の構成要素については、説明を省略する。
【０１７０】
情報処理システム２４００は、クラウドサーバ２４３０と、レストラン２４０１に配置されたスマートデバイスとしての各通信端末、クラウドサーバ２４３０と各通信端末とを接続する３Ｇ網やインターネットを含むネットワーク２４０、各通信端末にバス接続されるデバイスと、を備える。
【０１７１】
レジ２４１０の構成は、図２Ｂの店舗デバイスと同様である。フロアにおいては、ＡＰ２４１９を中継してスマートデバイスが接続される。厨房には、ディスプレイ２４１８が接続される。さらに、在庫管理２４５０などのためのスマートデバイスが接続されてもよい。
【０１７２】
図２５は、本実施形態に係る情報処理システム２４００の動作手順を示すシーケンス図である。
【０１７３】
レジでは、ステップＳ２５０１において、デバイスが通信端末に接続されてデバイスドライバが起動する。クラウドサーバは、ステップＳ２５０３において、起動したデバイスドライバをチェックし、レジ言語に対応したレジアプリケーションを起動する。
【０１７４】
また、ステップＳ２５０５において、厨房のモニタがＯＮされ、フロアの注文機器がＯＮされると、クラウドサーバは、ステップＳ２５０７において、料理人言語あるいは注文言語に対応して、注文サービスアプリケーションを起動する。
【０１７５】
また、客が自身のスマートデバイスを使って、ステップＳ２５０９において、レストランのホームページに接続して、使用言語を設定、メニュー画面の表示要求をすると、クラウドサーバは、ステップＳ２５１１において、客機器による注文アプリケーションを起動する。
【０１７６】
その後、ステップＳ２５１３において、フロア機器あるいは客機器による注文入力が行なわれる。厨房では、ステップＳ２５１５において、注文が調理人言語で表示され、ステップＳ２５１７においては、各言語で注文処理通知が行なわれる。
【０１７７】
清算時には、そのままでは現金精算が行なわれるが、ステップＳ２５２１において、レジにおいてクレジットカードリーダがＯＮになると、クサウドサーバにおいてクレジット決済アプリが起動する。また、ステップＳ２５２３において、レジにおいて非接触ＲＷ機器がＯＮになると、クサウドサーバにおいて電子マネー決済アプリが起動する。
【０１７８】
（アプリケーション起動テーブル）
図２６は、本実施形態に係るアプリケーション起動テーブルの構成を示す図である。なお、図２６において、図６、図１１または図１３と同様の要素には同じ参照番号を付して、説明は省略する。
【０１７９】
図２６において、アプリケーション起動テーブル４４１には、ＰＯＳアプリケーションの他に注文アプリケーションや厨房アプリケーションの起動条件を追加した。
【０１８０】
また、図２６において、起動アプリケーションを記憶するテーブル２６００は、アプリケーションの利用者２６０１と、ログイン端末２６０２と、使用する言語２６０３と、の組に対応して、起動アプリケーション２６０４を記憶する。なお、条件はこれに限らない。
【０１８１】
《情報処理装置の処理手順》
図２７は、本実施形態に係るアプリケーション起動処理（Ｓ８０３）の手順を示すフローチャートである。なお、図２７において、ステップＳ９０１〜Ｓ９２３は図９と同様であるので、説明を省略する。
【０１８２】
情報処理装置としてのクラウドサーバ２４３０は、ステップＳ２７０１において、ロクイン端末の情報を取得する。また、クラウドサーバ２４３０は、ステップＳ２７０３において、利用者あるいは利用者を含む情報を取得する。また、クラウドサーバ２４３０は、ステップＳ２７０５において、使用言語の情報を取得する。クラウドサーバ２４３０は、ステップＳ２７０７において、ログイン端末、利用者、使用言語に対応するアプリケーションを選択する。
【０１８３】
本実施形態によれば、所望のデバイスを使用する利用者の言語に対応のアプリケーションを安定的に起動できる。
【０１８４】
［第９実施形態］
次に、本発明の第９実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第２実施形態乃至第８実施形態と比べると、情報処理装置２３０（仮想ＰＣ）とデバイスが接続された通信端末２２０との間で異なるデータが通信される点で異なる。すなわち、本実施形態においては、情報処理装置２３０のアプリケーションＩＦと通信端末２２０のホストコントローラＩＦとが、第２実施形態と異なる部分で分離されている。例えば、ホストコントローラチップ（ＨＣ）を含めて全体のデバイスドライバをソフトウェアで実現した場合に、特に、ホストコントローラドライバとホストコントローラチップとの組を種々の階層で通信効率や通信速度を考慮して分割する。そして、分割された階層間の情報を情報処理装置２３０と通信端末２２０間でネットワーク通信するよう設計する。その他の構成および動作は、第２実施形態から第８実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
【０１８５】
（データ伝送例）
図２８は、本実施形態に係る情報処理システムにおけるデータ伝送を示す図である。なお、図２８は、図２Ｇと同様に、ＵＳＢ接続されたＵＳＢデバイスのディスクリプタ取得手順を示す図である。したがって、図２８において、図２Ｇと同様の構成要素には同じ参照番号を付して、説明は省略する。
【０１８６】
デバイス２１０に設定されているディスクリプタは、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲなどのＵＳＢリクエストにより取得される。コントロール転送であるＵＳＢリクエストのＵＳＢプロトコルを含むフレームは、情報処理装置２３０とデバイス２１０間でやり取りされる。各コントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。デバイス２１０から取得したディスクリプタはＩＰヘッダやＴＣＰヘッダでＩＰカプセリングされたフレームに挿入されて、携帯端末２２０から情報処理装置２３０に送信される。
【０１８７】
ここで、情報処理装置２３０のアプリケーションインタフェース２８３２は、アプリケーション２３１のデバイス入出力要求に応じて、まず接続デバイスを確認するためＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストのＵＳＢプロトコルを含むフレームを生成して、通信制御部４０１に渡す。
【０１８８】
ＩＰヘッダやＴＣＰヘッダでＩＰカプセリングされたＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストを含むフレームは、通信端末２２０の通信制御部５０１で受信されてＩＰアンカプセリングされる。ＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストは、ホストコントローラインタフェース２８２５に渡される。ホストコントローラインタフェース２８２５は、ＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストのＵＳＢプロトコルを含むフレームに基づいて、デバイス２１０へのＵＳＢバスにおける各パケットを転送するようＵＳＢバスインタフェース２２６（不図示）に指示する。
【０１８９】
ホストコントローラインタフェース２８２５は、デバイス２１０からデータ・ステージにおいて受信したデータ・パケットをデバイスディスクリプタ２８６３として含むフレームを、通信制御部５０１に渡す。ＩＰヘッダやＴＣＰヘッダでＩＰカプセリングされたデバイスディスクリプタ２８６３を含むフレームは、通信端末２２０の通信制御部５０１から情報処理装置２３０の通信制御部４０１に送信される。
【０１９０】
情報処理装置の通信制御部４０１は、アンカプセリングしたデバイスディスクリプタ２８６３を含むフレームをアプリケーションインタフェース２８３２に渡すと、アプリケーションインタフェース２８３２はアプリケーション２３１のデバイス入出力要求に応答して、接続デバイス情報を通知する。
【０１９１】
以下、他のコントロール転送や、バルク転送、インタラプト転送、アイソロナス転送においても、同様のデータ伝送が行なわれる。なお、ホストコントローラインタフェース２８２５とＵＳＢバスインタフェース２２６とが一体にされたソフトウェアであってもよい。
【０１９２】
図２９は、本実施形態に係る情報処理システムにおける他のデータ伝送を示す図である。なお、図２９は、図２Ｇおよび図２８と同様に、ＵＳＢ接続されたＵＳＢデバイスのディスクリプタ取得手順を示す図である。したがって、図２９において、図２Ｇおよび図２８と同様の構成要素には同じ参照番号を付して、説明は省略する。
【０１９３】
デバイス２１０に設定されているディスクリプタは、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲなどのＵＳＢリクエストにより取得される。ＵＳＢリクエストのＵＳＢプロトコルを含むコントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。コントロール転送であるＵＳＢリクエストのＵＳＢプロトコルを含むセット・ステージと、データ・ステージと、ステータス・ステージとは、それぞれ、情報処理装置２３０とデバイス２１０間でやり取りされる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。デバイス２１０から取得したディスクリプタはＩＰヘッダやＴＣＰヘッダでＩＰカプセリングされたデータ・ステージに挿入されて、携帯端末２２０から情報処理装置２３０に送信される。
【０１９４】
ここで、情報処理装置２３０のアプリケーションインタフェース２９３２は、アプリケーション２３１のデバイス入出力要求に応じて、まず接続デバイスを確認するためＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストのＵＳＢプロトコルを含むセット・ステージを生成して、通信制御部４０１に渡す。
【０１９５】
ＩＰヘッダやＴＣＰヘッダでＩＰカプセリングされたＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストを含むセット・ステージは、通信端末２２０の通信制御部５０１で受信されてＩＰアンカプセリングされる。ＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストは、ホストコントローラインタフェース２９２５に渡される。ホストコントローラインタフェース２９２５は、ＧＥＴ  ＤＥＳＣＲＩＰＴＯＲのＵＳＢリクエストのＵＳＢプロトコルを含むセット・ステージに基づいて、デバイス２１０へのＵＳＢバスにおける各パケットを転送するようＵＳＢバスインタフェース２２６（不図示）に指示する。
【０１９６】
ホストコントローラインタフェース２９２５は、デバイス２１０からデータ・ステージにおいて受信したデータ・パケットをデバイスディスクリプタ２９６３として含むデータ・ステージを、通信制御部５０１に渡す。ＩＰヘッダやＴＣＰヘッダでＩＰカプセリングされたデバイスディスクリプタ２９６３を含むデータ・ステージは、通信端末２２０の通信制御部５０１から情報処理装置２３０の通信制御部４０１に送信される。
【０１９７】
情報処理装置の通信制御部４０１は、アンカプセリングしたデバイスディスクリプタ２９６３を含むデータ・ステージをアプリケーションインタフェース２９３２に渡すと、アプリケーションインタフェース２９３２はアプリケーション２３１のデバイス入出力要求に応答して、接続デバイス情報を通知する。
【０１９８】
また、ホストコントローラインタフェース２９２５は、デバイス２１０からステータス・ステージで受信したデータ・パケットをステータスデータ２９６４として含むステータス・ステージを、通信制御部５０１に渡す。ＩＰヘッダやＴＣＰヘッダでＩＰカプセリングされたステータスデータ２９６４を含むステータス・ステージは、通信端末２２０の通信制御部５０１から情報処理装置２３０の通信制御部４０１に送信される。
【０１９９】
情報処理装置の通信制御部４０１は、アンカプセリングしたステータスデータ２９６４を含むステータス・ステージをアプリケーションインタフェース２９３２に渡すと、アプリケーションインタフェース２９３２はアプリケーション２３１のデバイス入出力要求に応答して、接続デバイス情報を通知する。
【０２００】
なお、上記説明では、アプリケーションインタフェース２９３２においては、ハンドシェイク・パケットについて判定していないが、アプリケーションインタフェース２９３２が各ステージにおけるハンドシェイク・パケットを確認する構成であってもよい。
【０２０１】
以下、他のコントロール転送や、バルク転送、インタラプト転送、アイソロナス転送においても、同様のデータ伝送が行なわれる。なお、ホストコントローラインタフェース２９２５とＵＳＢバスインタフェース２２６とが一体にされたソフトウェアであってもよい。
【０２０２】
本実施形態によれば、情報処理装置（仮想ＰＣ）と通信端末間の通信が互いのドライバを分割したフレーム単位の通信であってもステージ単位の通信であっても、ＵＳＢデバイスを遠隔の通信端末に接続した時にも、情報処理装置に直接接続した場合と同じ操作ができる。
【０２０３】
［他の実施形態］
なお、上記実施形態においては、ＵＳＢ、ＨＤＭＩ（登録商標）によるデバイスの接続例を示したが、ＳＣＳＩなどの他の接続であっても同様の効果を奏する。さらに、デバイスを近距離無線、例えば、赤外線通信、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）などで接続する場合にも適用でき、同様の効果を奏する。
【０２０４】
また、上記実施形態においては、主にＰＯＳシステムのＰＯＳアプリケーションについて説明したが、本発明はＰＯＳシステムのＰＯＳアプリケーションにおける処理に限定されない。例えば、医療分野における診察支援システムや教育分野における学習支援システム、あるいは、産業分野における機器操作支援システムにおいても、適用され同様の効果を奏する。
【０２０５】
また、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
【０２０６】
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるＷＷＷ(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体（non-transitory computer readable medium）は本発明の範疇に含まれる。
【０２０７】
なお、この出願は、同日出願された日本国特許出願（特願２０１４−２３５１０８，特願２０１４−２３５１０９、特願２０１４−２３５１１０）と関連し、その開示の全てをここに取り込む。
【０２０８】
この出願は、２０１４年１１月１９日に出願された日本国特許出願  特願２０１４−２３５１１１号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2016080429.tif 000003
【図２Ａ】
2016080429.tif 000004
【図２Ｂ】
2016080429.tif 000005
【図２Ｃ】
2016080429.tif 000006
【図２Ｄ】
2016080429.tif 000007
【図２Ｅ】
2016080429.tif 000008
【図２Ｆ】
2016080429.tif 000009
【図２Ｇ】
2016080429.tif 000010
【図３】
2016080429.tif 000011
【図４】
2016080429.tif 000012
【図５】
2016080429.tif 000013
【図６】
2016080429.tif 000014
【図７】
2016080429.tif 000015
【図８】
2016080429.tif 000016
【図９】
2016080429.tif 000017
【図１０Ａ】
2016080429.tif 000018
【図１０Ｂ】
2016080429.tif 000019
【図１１】
2016080429.tif 000020
【図１２】
2016080429.tif 000021
【図１３】
2016080429.tif 000022
【図１４】
2016080429.tif 000023
【図１５Ａ】
2016080429.tif 000024
【図１５Ｂ】
2016080429.tif 000025
【図１６Ａ】
2016080429.tif 000026
【図１６Ｂ】
2016080429.tif 000027
【図１７】
2016080429.tif 000028
【図１８】
2016080429.tif 000029
【図１９】
2016080429.tif 000030
【図２０】
2016080429.tif 000031
【図２１】
2016080429.tif 000032
【図２２】
2016080429.tif 000033
【図２３】
2016080429.tif 000034
【図２４Ａ】
2016080429.tif 000035
【図２４Ｂ】
2016080429.tif 000036
【図２５】
2016080429.tif 000037
【図２６】
2016080429.tif 000038
【図２７】
2016080429.tif 000039
【図２８】
2016080429.tif 000040
【図２９】
2016080429.tif 000041
【国際調査報告】
2016080429.tif 000042
2016080429.tif 000043
2016080429.tif 000044
2016080429.tif 000045