(57)【要約】【課題】１対１での通信を想定した規格に基づく通信環境下においても、複数のアクセス元それぞれからのアクセスを排他的に制御することが可能な情報処理装置、情報処理方法、及びプログラムを提案する。【解決手段】少なくとも一部に乱数化された情報を含む第１の識別情報を外部装置から取得する取得部と、外部装置から送信された通信データのうち、取得された前記第１の識別情報に関連付けられた前記通信データを処理対象とする制御部と、を備え、前記制御部は、前記第１の識別情報に関連付けられた前記通信データに基づく処理の結果を、第２の識別情報に関連付けて、当該外部装置に送信する、情報処理装置。【選択図】図１
2019071083.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一部に乱数化された情報を含む第１の識別情報を外部装置から取得する取得部と、
外部装置から送信された通信データのうち、取得された前記第１の識別情報に関連付けられた前記通信データを処理対象とする制御部と、
を備え、
前記制御部は、前記第１の識別情報に関連付けられた前記通信データに基づく処理の結果を、第２の識別情報に関連付けて、当該外部装置に送信する、
情報処理装置。
【請求項２】
前記第１の識別情報に関連付けられた前記通信データに基づく処理の結果を前記第２の識別情報に関連付けて、前記外部装置に送信する、請求項１に記載の情報処理装置。
【請求項３】
前記制御部は、前記第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする、請求項１または２に記載の情報処理装置。
【請求項４】
前記制御部は、前記第１の識別情報の取得元である前記外部装置からの指示に基づき、取得された前記第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を終了する、請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、当該第１の識別情報に関連付けられた前記通信データに対して、前記排他制御の継続を示す制御情報が関連付けられている場合に、当該排他制御を継続する、請求項４に記載の情報処理装置。
【請求項６】
前記制御部は、取得された前記第１の識別情報に関連付けられた前記通信データを前記外部装置から受信しない期間が、あらかじめ決められた期間以上となった場合に、当該第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を終了する、請求項３に記載の情報処理装置。
【請求項７】
前記制御部は、取得された前記第１の識別情報に関連付けられた前記通信データに基づく処理の完了後に、当該第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を終了する、請求項３に記載の情報処理装置。
【請求項８】
前記制御部は、前記第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御の完了後に、当該第１の識別情報を破棄する、請求項３〜７のいずれか一項に記載の情報処理装置。
【請求項９】
前記制御部は、前記第１の識別情報の取得元である前記外部装置からの指示に基づき、取得された前記第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を開始する、請求項３〜８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記制御部は、取得された前記第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御中に、当該第１の識別情報に関連付けられていない通信データが取得された場合に、当該通信データを破棄する、請求項３に記載の情報処理装置。
【請求項１１】
前記制御部は、取得された前記第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御中に、当該第１の識別情報とは異なる他の識別情報が取得された場合に、当該他の識別情報を破棄する、請求項３〜９のいずれか一項に記載の情報処理装置。
【請求項１２】
前記第１の識別情報に基づき前記第２の識別情報を生成する生成部を備え、
前記取得部は、前記生成部により生成された当該第２の識別情報を取得する、請求項３〜１１のいずれか一項に記載の情報処理装置。
【請求項１３】
前記取得部は、前記第１の識別情報の取得元である前記外部装置から、前記第２の識別情報を取得する、請求項３〜１１のいずれか一項に記載の情報処理装置。
【請求項１４】
前記制御部は、取得された前記第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御中に、当該第１の識別情報とは異なる他の第１の識別情報に関連付けられた通信データが取得された場合に、当該通信データを処理対象としないことを示す情報を、当該他の第１の識別情報に対応する前記第２の識別情報と関連付けて、当該通信データの送信元である前記外部装置に通知する、請求項３〜１１のいずれか一項に記載の情報処理装置。
【請求項１５】
前記取得部は、前記第１の識別情報に関連付けられた認証情報を前記外部装置から取得し、
前記制御部は、当該認証情報に基づく認証に成功した場合に、当該第１の識別情報が関連付けられた前記通信データの送信元を、前記認証が行われた送信元として認識する、請求項３〜１４のいずれか一項に記載の情報処理装置。
【請求項１６】
前記取得部は、前記第１の識別情報に関連付けられた前記通信データを複数の部分データに分けて当該部分データごとに取得し、
前記制御部は、取得された前記第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を、少なくとも一連の前記部分データの取得が完了するまで継続する、請求項３〜１５のいずれか一項に記載の情報処理装置。
【請求項１７】
前記制御部は、一連の前記部分データの取得の完了を、当該部分データに関連付けられた、当該部分データを識別するための制御情報に基づき認識する、請求項１６に記載の情報処理装置。
【請求項１８】
前記取得部は、前記部分データに関連付けられた前記通信データを識別するための制御情報を取得し、
前記制御部は、取得された前記通信データを識別するための制御情報に基づき、前記部分データが、当該通信データを構成する部分データであることを認識する、請求項１６に記載の情報処理装置。
【請求項１９】
取得された前記第１の識別情報に関連付けられた前記通信データに基づく処理結果を報知する報知部を備えた、請求項３〜１８のいずれか一項に記載の情報処理装置。
【請求項２０】
コンピュータが、
少なくとも一部に乱数化された情報を含む第１の識別情報を外部装置から取得することと、
外部装置から送信された通信データのうち、取得された前記第１の識別情報に関連付けられた前記通信データを処理対象とすることと、
を含み、
前記第１の識別情報に関連付けられた前記通信データに基づく処理の結果が、第２の識別情報に関連付けて、当該外部装置に送信される、
情報処理方法。
【請求項２１】
コンピュータに、
少なくとも一部に乱数化された情報を含む第１の識別情報を外部装置から取得することと、
外部装置から送信された通信データのうち、取得された前記第１の識別情報に関連付けられた前記通信データを処理対象とすることと、
を実行させ、
前記第１の識別情報に関連付けられた前記通信データに基づく処理の結果が、第２の識別情報に関連付けて、当該外部装置に送信される、
プログラム。
【請求項２２】
少なくとも一部に乱数化された情報を含む第１の識別情報を生成する生成部と、
生成された前記第１の識別情報を外部装置に通知し、通信データに対して当該第１の識別情報を関連付けて、当該通信データを当該外部装置に送信する制御部と、
を備え、
前記制御部は、前記外部装置から送信される応答のうち、第２の識別情報が関連付けられた応答を処理対象とする、
情報処理装置。
【請求項２３】
コンピュータが、
少なくとも一部に乱数化された情報を含む第１の識別情報を生成することと、
生成された前記第１の識別情報を外部装置に通知し、通信データに対して当該第１の識別情報を関連付けて、当該通信データを当該外部装置に送信することと、
を含み、
前記外部装置から送信される応答のうち、第２の識別情報が関連付けられた応答が処理対象とされる、
情報処理方法。
【請求項２４】
コンピュータに、
少なくとも一部に乱数化された情報を含む第１の識別情報を生成することと、
生成された前記第１の識別情報を外部装置に通知し、通信データに対して当該第１の識別情報を関連付けて、当該通信データを当該外部装置に送信することと、
を実行させ、
前記外部装置から送信される応答のうち、第２の識別情報が関連付けられた応答が処理対象とされる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来から利用されている磁気タイプのキャッシュカードやクレジットカードに代わって、電気的にデータを記憶するメモリや、そのデータの記憶処理を行う処理回路を含むＩＣ（Integrated  Circuit）チップが多用されるようになった。このようなＩＣチップは、通常、ＩＣタグやＩＣカードに埋設され、無線通信により非接触式にデータ通信を行うことができる。従って、上記カードの外観を損なわず、メンテナンス性や耐蝕性に優れたサービスを提供することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−６５９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年では、ブルートゥース（登録商標）等のように、非接触式の無線通信よりも通信範囲の広い無線の通信経路を介して、異なる機器間でのデータの送受信を行う技術が普及してきている。そのため、例えば、スマートフォン等の情報処理装置から、当該情報処理装置とは異なるデバイスに設けられたＩＣチップに対して、ブルートゥース（登録商標）等のような無線の通信経路を介してアクセスし、情報の参照や更新を行いたいという要望もある。
【０００５】
その一方で、非接触式の無線通信よりも通信範囲の広い無線の通信経路を介してデータを送受信する場合には、スマートフォンのような情報処理装置上で動作する複数のアプリケーションから、ＩＣチップに対してアクセスされる場合が少なからず想定される。
【０００６】
しかしながら、無線通信の規格が、機器対機器のように１対１の通信を想定している場合がある。このような規格に基づく通信においては、複数のアクセス元（例えば、アプリケーション）それぞれからのアクセスに対して、アクセス対象（例えば、ＩＣチップ）側でアクセス元を識別し、当該複数のアクセス元それぞれからのアクセスを排他的に制御することが困難な場合がある。
【０００７】
そこで、本開示では、１対１での通信を想定した規格に基づく通信環境下においても、複数のアクセス元それぞれからのアクセスを排他的に制御することが可能な、新規かつ改良された情報処理装置、情報処理方法、及びプログラムを提案する。
【課題を解決するための手段】
【０００８】
本開示によれば、少なくとも一部に乱数化された情報を含む第１の識別情報を外部装置から取得する取得部と、外部装置から送信された通信データのうち、取得された前記第１の識別情報に関連付けられた前記通信データを処理対象とする制御部と、を備え、前記制御部は、前記第１の識別情報に関連付けられた前記通信データに基づく処理の結果を、第２の識別情報に関連付けて、当該外部装置に送信する、情報処理装置が提供される。
【０００９】
また、本開示によれば、コンピュータが、少なくとも一部に乱数化された情報を含む第１の識別情報を外部装置から取得することと、外部装置から送信された通信データのうち、取得された前記第１の識別情報に関連付けられた前記通信データを処理対象とすることと、を含み、前記第１の識別情報に関連付けられた前記通信データに基づく処理の結果が、第２の識別情報に関連付けて、当該外部装置に送信される、情報処理方法が提供される。
【００１０】
また、本開示によれば、コンピュータに、少なくとも一部に乱数化された情報を含む第１の識別情報を外部装置から取得することと、外部装置から送信された通信データのうち、取得された前記第１の識別情報に関連付けられた前記通信データを処理対象とすることと、を実行させ、前記第１の識別情報に関連付けられた前記通信データに基づく処理の結果が、第２の識別情報に関連付けて、当該外部装置に送信される、プログラムが提供される。
【００１１】
また、本開示によれば、少なくとも一部に乱数化された情報を含む第１の識別情報を生成する生成部と、生成された前記第１の識別情報を外部装置に通知し、通信データに対して当該第１の識別情報を関連付けて、当該通信データを当該外部装置に送信する制御部と、を備え、前記制御部は、前記外部装置から送信される応答のうち、第２の識別情報が関連付けられた応答を処理対象とする、情報処理装置が提供される。
【００１２】
また、本開示によれば、コンピュータが、少なくとも一部に乱数化された情報を含む第１の識別情報を生成することと、生成された前記第１の識別情報を外部装置に通知し、通信データに対して当該第１の識別情報を関連付けて、当該通信データを当該外部装置に送信することと、を含み、前記外部装置から送信される応答のうち、第２の識別情報が関連付けられた応答が処理対象とされる、情報処理方法が提供される。
【００１３】
また、本開示によれば、コンピュータに、少なくとも一部に乱数化された情報を含む第１の識別情報を生成することと、生成された前記第１の識別情報を外部装置に通知し、通信データに対して当該第１の識別情報を関連付けて、当該通信データを当該外部装置に送信することと、を実行させ、前記外部装置から送信される応答のうち、第２の識別情報が関連付けられた応答が処理対象とされる、プログラムが提供される。
【発明の効果】
【００１４】
以上説明したように本開示によれば、１対１での通信を想定した規格に基づく通信環境下においても、複数のアクセス元それぞれからのアクセスを排他的に制御することが可能な、情報処理装置、情報処理方法、及びプログラムが提供される。
【００１５】
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１６】
【図１】本開示の第１の実施形態に係る情報処理システムの概略的なシステム構成について説明するための説明図である。
【図２】同実施形態に係る情報処理システムの概略的な構成について説明するための説明図である。
【図３】情報処理装置と外部デバイスとの間の通信の一態様について説明するための説明図である。
【図４】情報処理装置と外部デバイスとの間の通信の一態様について説明するための説明図である
【図５】図４に示す通信態様の他の一例について説明するための説明図である。
【図６】同実施形態に係る情報処理システムの動作概要について説明するための説明図である。
【図７】同実施形態に係る情報処理システムの機能構成の一例を示したブロック図である。
【図８】同実施形態に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。
【図９】本開示の第２の実施形態に係る情報処理システムの機能構成の一例を示したブロック図である。
【図１０】同実施形態に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。
【図１１】実施例１に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。
【図１２】要求データ及び結果データを送信するための通信データのデータ構造の一例について説明するための説明図である。
【図１３】実施例２に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。
【図１４】実施例３に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。
【図１５】本開示の各実施形態に係るアプリケーションのソフトウェア構成の一例を示している。
【図１６】本開示の各実施形態に係る外部デバイス３０のハードウェア構成の一例を示した図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１８】
なお、説明は以下の順序で行うものとする。
１．第１の実施形態
１．１．課題の整理
１．２．動作概要
１．３．機能構成
１．４．処理
２．第２の実施形態
２．１．概要
２．２．機能構成
２．３．処理
３．実施例
３．１．実施例１：プロセス単位での排他制御
３．２．実施例２：トランザクション単位での排他制御
３．３．実施例３：認証処理を行う場合の通信シーケンス
４．ソフトウェア構成
５．ハードウェア構成
６．まとめ
【００１９】
＜１．第１の実施形態＞
［１．１．課題の整理］
本開示の第１の実施形態に係る情報処理システムの説明にあたり、まず、本実施形態に係る情報処理システムの概略的なシステム構成について説明し、そのうえで、本実施形態に係る情報処理システムの課題について整理する。
【００２０】
まず、図１及び図２を参照して、本実施形態に係る情報処理システムの概略的なシステム構成について説明する。図１は、本実施形態に係る情報処理システムの概略的なシステム構成について説明するための説明図である。また、図２は、本実施形態に係る情報処理システムの概略的な構成について説明するための説明図である。
【００２１】
図１に示すように、本実施形態に係る情報処理システムは、情報処理装置１０と、外部デバイス３０とを含む。情報処理装置１０と外部デバイス３０とはネットワークｎ１を介して互いに情報を送受信可能に構成されている。ネットワークｎ１は、例えば、ブルートゥース（登録商標）規格に基づく通信経路のように、異なる機器間を接続可能な無線の通信経路を示している。なお、異なる機器間を接続可能であれば、ネットワークｎ１の態様はブルートゥース（登録商標）規格に基づく通信経路のような無線の通信経路には限定されない。例えば、ネットワークｎ１は、有線の通信経路であってもよい。
【００２２】
ここで、図２を参照して、本実施形態に係る情報処理システムの概略的な構成について説明する。
【００２３】
本実施形態に係る情報処理装置１０は、所謂スマートフォンのようなユーザ端末に相当し、複数のアプリケーションが並列して動作可能に構成されている。例えば、図２に示す例は、情報処理装置１０上で、アプリケーション１１ａ〜１１ｃが動作している場合を示している。なお、以降では、アプリケーション１１ａ〜１１ｃを特に区別しない場合には、「アプリケーション１１」と記載する場合がある。
【００２４】
また、図２において、参照符号３１は、外部デバイス３０に設けられた、当該外部デバイス３０がネットワークｎ１を介して情報処理装置１０と通信を行うための通信部に相当する。当該通信部３１は、例えば、ＩＣチップとして構成されており、外部デバイス３０に埋設されている。
【００２５】
本実施形態に係る情報処理システムでは、情報処理装置１０上で動作するアプリケーション１１ａ〜１１ｃのそれぞれが、ネットワークｎ１を介して通信部３１にアクセスし、外部デバイス３０に記憶された情報の参照や更新を行う。
【００２６】
一方で、無線または有線の通信経路を介して異なる機器間で情報を送受信するための通信の規格の中には、１対１の通信を想定している場合がある。このような規格に基づき、アプリケーション１１ａ〜１１ｃのそれぞれと、通信部３１との間で情報を送受信する場合には、例えば、通信部３１は、アプリケーション１１側から送信された情報の送信元の識別が困難な場合がある。
【００２７】
具体的な一例として、アプリケーション１１ａ〜１１ｃのそれぞれから送信されたデータのいずれについても、送信元が「情報処理装置１０」として、通信部３１に通知される場合がある。このような場合には、通信部３１は、情報処理装置１０から送信された各データが、当該情報処理装置１０で動作するどのアプリケーションから送信されたデータであるかを識別することが困難な場合がある。
【００２８】
また、通信部３１から情報処理装置１０に向けて送信されるデータについても同様に、当該データの宛先が「情報処理装置１０」であると、当該情報処理装置１０に通知される場合がある。そのため、情報処理装置１０は、通信部３１側から送信されたデータの宛先が、アプリケーション１１ａ〜１１ｃのうちのいずれかを識別することが困難な場合がある。
【００２９】
このようにアプリケーション１１ａ〜１１ｃのそれぞれから送信されたデータの送信元の識別が困難な場合には、例えば、通信部３１は、アプリケーション１１ａ〜１１ｃのそれぞれからのアクセスを排他的に制御することが困難となる場合が少なからずある。
【００３０】
特に、異なる機器間の通信（特に、無線通信）の中には、通信経路の帯域が機器間で送受信されるデータの容量よりも制限されている場合があり、当該データが複数回の通信に分けて送受信される場合もある。その一方で、通信部３１側において、アプリケーション１１ａ〜１１ｃからのアクセスの排他制御が困難な場合には、通信部３１は、例えば、複数回に分けて行われる一連の通信を、他の通信の割り込みにより正しく処理できない可能性がある。
【００３１】
このような問題を解決する方法の一例として、ＯＳ（Operating  System）のように、情報処理装置１０内において唯一の構成が、アプリケーション１１ａ〜１１ｃと通信部３１との間の通信を仲介する方法が挙げられる。
【００３２】
例えば、図３は、情報処理装置１０と外部デバイス３０との間の通信の一態様について説明するための説明図であり、情報処理装置１０内において唯一の構成が、アプリケーション１１ａ〜１１ｃと通信部３１との間の通信を仲介する場合の例を示している。
【００３３】
図３に示す例では、情報処理装置１０のＯＳ９０が、アプリケーション１１ａ〜１１ｃと通信部３１との間の通信を仲介している。具体的には、ＯＳ９０は、アプリケーション１１ａ〜１１ｃそれぞれからの通信部３１への要求を受け付けて、当該要求を通信部３１に送信し、当該要求に対する通信部３１から応答（処理結果）を要求元のアプリケーションに通知する。
【００３４】
このような構成により、図３に示す例では、１対１の通信を想定した通信規格に基づく通信環境においても、アプリケーション１１ａ〜１１ｃと通信部３１との間の通信、即ち、ｎ対１の通信を実現することが可能となる。
【００３５】
一方で、図３に示す構成の場合には、ＯＳ９０自体に対して、アプリケーション１１ａ〜１１ｃと通信部３１との間の通信を仲介する機能を実装する必要がある。しかしながら、ＯＳ９０や、いわゆるフレームワークは、それ自体に対して機能の追加や改修を行うことが困難な場合が少なくは無く、図３に示す方法が現実的な解決法とはならない場合が少なくない。
【００３６】
これに対して、前述した問題を解決する他の一例として、通信部３１に向けて送信されるデータの送信元や、通信部３１から送信されるデータの宛先を明示的に指定する方法が挙げられる。
【００３７】
例えば、図４は、情報処理装置１０と外部デバイス３０との間の通信の一態様について説明するための説明図であり、通信部３１に向けて送信されるデータの送信元や、通信部３１から送信されるデータの宛先を明示的に指定する場合の例を示している。
【００３８】
図４に示す例では、アプリケーション１１は、通信部３１にデータを送信する場合に、当該データに対して、例えば、アプリケーション名等のような、送信元を識別可能な識別情報を関連付ける。
【００３９】
具体的な一例として、アプリケーション１１ａは、通信部３１に送信するデータに対して、自身を識別可能な識別情報を付帯情報として付帯することで、当該データに当該識別情報を関連付けている。この場合には、通信部３１は、受信したデータに関連付けられた識別情報に基づき、当該データの送信元がアプリケーション１１ａであることを認識することができる。
【００４０】
また、通信部３１は、アプリケーション１１ａ〜１１ｃのいずれかにデータを送信する場合に、当該データに対して、宛先となるアプリケーションを示す識別情報を関連付ける。
【００４１】
具体的な一例として、通信部３１は、アプリケーション１１ａに送信するデータに対して、当該アプリケーション１１ａの識別情報を付帯情報として付帯することで、当該データに当該識別情報を関連付けている。この場合には、アプリケーション１１ａは、受信したデータに関連付けられた識別情報に基づき、当該データの宛先が自身（即ち、アプリケーション１１ａ）であることを認識することができる。同様に、アプリケーション１１ｂ及び１１ｃについては、受信したデータに関連付けられた識別情報に基づき、当該データの宛先が自身ではないと認識することができる。なお、アプリケーション１１は、受信したデータの宛先が自身ではないと認識した場合には、当該データを破棄してもよい。
【００４２】
このような構成により、図４に示す例では、１対１の通信を想定した通信規格に基づく通信環境においても、アプリケーション１１ａ〜１１ｃと通信部３１との間の通信、即ち、ｎ対１の通信を実現することが可能となる。
【００４３】
しかしながら、図４に示す例の場合には、悪意あるアプリケーションが、識別情報を詐称することで、自身とは異なる他のアプリケーションになりすまし、通信部３１にアクセスすることが可能となる場合がある。例えば、図５は、図４に示す通信態様の他の一例について説明するための説明図であり、悪意あるアプリケーションが、他のアプリケーションになりすまして通信部３１にアクセスする場合の一例を示している。
【００４４】
図５に示す例では、アプリケーション１１ａは、送信対象となるデータを複数の部分データに分割することで、当該データを複数回の通信に分けて、一連の通信Ｔ１０として通信部３１に送信している。このとき、アプリケーション１１ａは、各部分データに対して自身の識別情報（例えば、アプリケーション名）を関連付けることで、当該各部分データの送信元が自身（即ち、アプリケーション１１ａ）であることを通信部３１に通知している。
【００４５】
このような状況下において、例えば、図５に示ように、アプリケーション１１ｚが、「アプリケーション１１ａ」の識別情報を関連付けたデータを通信部３１に送信すると、当該通信部３１は、当該データの送信元を「アプリケーション１１ａ」と認識する。
【００４６】
そのため、通信部３１は、受信したデータに関連付けられた識別情報に基づき排他制御を行ったとしても、アプリケーション１１ｚから送信されたデータを、排他的に拒絶することが困難となる。即ち、アプリケーション１１ｚは、識別情報を詐称することで、アプリケーション１１ａから通信部３１に向けて送信されたデータに対して、悪意のあるコードを含むデータを挿入することが可能となる。
【００４７】
また、通信部３１から送信されるデータには、当該データの宛先を示す識別情報（例えば、アプリケーション１１ａを示す識別情報）が関連付けられて、情報処理装置１０上で動作する各アプリケーションに送信される。そのため、アプリケーション１１ｚは、当該データに関連付けられた識別情報に基づき、通信部３１の通信相手として、アプリケーション１１ａの存在を認識することが可能となる。
【００４８】
本実施形態に係る情報処理システムは、上記課題を鑑みてなされたものであり、１対１での通信を想定した規格に基づく通信環境下においても、複数のアクセス元それぞれからのアクセスを、アクセス対象が排他的に制御可能とすることを目的とする。以降では、本実施形態に係る情報処理システムについて詳しく説明する。
【００４９】
［１．２．動作概要］
まず、図６を参照して、本実施形態に係る情報処理システムの動作概要について説明する。図６は、本実施形態に係る情報処理システムの動作概要について説明するための説明図である。なお、本説明では、アプリケーション１１ａと通信部３１とが互いデータを送受信する場合に着目して説明する。
【００５０】
図６に示すように、本実施形態に係る情報処理システムでは、情報処理装置１０上で動作するアプリケーション１１ａは、通信部３１に対してデータを送信する前に、セッションＩＤ１を生成し、当該セッションＩＤ１を通信部３１に送信する。また、アプリケーション１１ａと通信部３１とは、互いに共通の鍵情報をあらかじめ記憶しており、双方ともに当該鍵情報によりセッションＩＤ１に対して不可逆処理を施して符号化（乱数化）することで、当該セッションＩＤ１とは異なるセッションＩＤ２を生成する。
【００５１】
このように、本実施形態に係る情報処理システムでは、アプリケーション１１と通信部３１とは、互いにデータを送受信する事前に、共通のセッションＩＤ１及びＩＤ２を保持した状態とする。なお、セッションＩＤ１が、「第１の識別情報」の一例に相当し、セッションＩＤ２が、「第２の識別情報」の一例に相当する。
【００５２】
そのうえで、本実施形態に係るアプリケーション１１ａは、通信部３１にデータを送信する際に、当該データに対してセッションＩＤ１を関連付ける。通信部３１は、アプリケーション１１ａからデータを取得すると、当該データに関連付けられたセッションＩＤを抽出し、抽出したセッションＩＤを、自身が保持するセッションＩＤ１（即ち、アプリケーション１１ａからあらかじめ取得したセッションＩＤ１）と照合する。
【００５３】
通信部３１は、取得したデータから抽出したセッションＩＤが、自身が保持するセッションＩＤ１と一致する場合には、当該データの送信元をアプリケーション１１ａと認識し、当該データを処理対象とする。
【００５４】
一方で、通信部３１は、取得したデータから抽出したセッションＩＤが、自身が保持するセッションＩＤ１と一致しなかった場合には、当該データの送信元がアプリケーション１１ａ以外であると認識し、当該データを処理対象とはしない。また、通信部３１は、取得したデータに対してセッションＩＤが関連付けられていなかった場合についても同様に、当該データの送信元がアプリケーション１１ａ以外であると認識し、当該データを処理対象とはしない。
【００５５】
また、通信部３１は、アプリケーション１１ａにデータを送信する際に、当該データに対してセッションＩＤ２を関連付ける。アプリケーション１１ａは、通信部３１からデータを取得すると、当該データに関連付けられたセッションＩＤを抽出し、抽出したセッションＩＤを、自身が保持するセッションＩＤ２と照合する。
【００５６】
アプリケーション１１ａは、取得したデータから抽出したセッションＩＤが、自身が保持するセッションＩＤ２と一致する場合には、当該データの宛先が自身（即ち、アプリケーション１１ａ）であると認識し、当該データを処理対象とする。
【００５７】
一方で、アプリケーション１１ａは、取得したデータから抽出したセッションＩＤが、自身が保持するセッションＩＤ２と一致しなかった場合には、当該データの宛先が自身（即ち、アプリケーション１１ａ）とは異なるアプリケーション１１であると認識し、当該データを処理対象とはしない。また、アプリケーション１１ａは、取得したデータに対してセッションＩＤが関連付けられていなかった場合についても同様に、当該データを処理対象とはしない。
【００５８】
上記に示すアプリケーション１１ａの動作は、他のアプリケーション１１についても同様である。
【００５９】
なお、上記に示すセッションＩＤ１は、送信元となるアプリケーション１１を類推することが困難な情報であることが望ましい。そのため、セッションＩＤ１は、少なくとも一部に乱数化された情報を含むように構成されていることが望ましい。また、セッションＩＤ２は、上述の通り、セッションＩＤ１に不可逆処理を施して符号化（乱数化）されることで生成されるため、少なくとも一部に乱数化された情報を含むこととなる。
【００６０】
なお、上記においてセッションＩＤ１及びＩＤ２として説明された情報は、少なくとも一部に乱数化された情報を含んでいれば、必ずしもセッションＩＤに限定はされない。例えば、アプリケーション１１は、乱数を生成し、当該乱数をセッションＩＤ１としてもよい。また、他の一例として、アプリケーション１１は、日時等のようにその時々に応じて変化する情報に不可逆処理を施すことで乱数化し、当該乱数化された情報をセッションＩＤ１として使用してもよい。また、上記では、アプリケーション１１と外部デバイス３０との間で共通の鍵情報に基づきセッションＩＤ１を乱数化することでセッションＩＤ２を生成する例について説明した。しかしながら、アプリケーション１１と外部デバイス３０との間で共通のロジックに基づきセッションＩＤ１を乱数化することで、共通のセッションＩＤ２が生成できれば、その方法は、必ずしも鍵情報を用いた方法には限定されない。
【００６１】
以上のような構成に基づき、本実施形態に係る情報処理システムでは、外部デバイス３０の通信部３１は、データの送信元となるアプリケーション１１を識別し、複数のアプリケーション１１からのアクセスを排他的に制御することが可能となる。
【００６２】
なお、前述したように、セッションＩＤ２は、セッションＩＤ１に対して不可逆処理を施すことで符号化（乱数化）されて生成された情報である。そのため、各アプリケーション１１は、自身が保持するセッションＩＤ２と異なるセッションＩＤを取得したとしても、当該セッションＩＤが、自身以外のどのアプリケーション１１の保持するセッションＩＤ２に相当するかを認識することは困難である。
【００６３】
また、アプリケーション１１と通信部３１とは、互いに異なるセッションＩＤ（即ちセッションＩＤ１及びＩＤ２）を関連付けてデータを送信する。そのため、例えば、アプリケーション１１ａ宛てに送信されたデータに関連付けられたセッションＩＤは、当該アプリケーション１１ａが通信部３１にデータを送信する際に、当該データに関連付けるセッションＩＤ１とは異なる。そのため、アプリケーション１１ａ宛てに送信されたデータを他のアプリケーション１１ｚが受信したとしても、当該アプリケーション１１ｚは、当該データに関連付けられたセッションＩＤに基づきアプリケーション１１ａになりすますことは困難である。
【００６４】
このような構成により、本実施形態に係る情報処理システムにおいては、１対１での通信を想定した規格に基づく通信環境下においても、外部デバイス３０は、複数のアプリケーション１１それぞれからのアクセスを排他的に制御することが可能となる。
【００６５】
以上、図６を参照しながら、本実施形態に係る情報処理システムの概略的な動作について説明した。
【００６６】
［１．３．機能構成］
次に、図７を参照して、本実施形態に係る情報処理システムの機能構成について説明する。図７は、本実施形態に係る情報処理システムの機能構成の一例を示したブロック図である。
【００６７】
前述したように、情報処理装置１０は、複数のアプリケーション１１が動作可能に構成されている。図７における参照符号１１ａ〜１１ｃのそれぞれは、当該アプリケーション１１の機能構成を模式的に示しており、図６に示したアプリケーション１１ａ〜１１ｃに対応している。なお、前述の通り、アプリケーション１１ａ〜１１ｃを特に区別しない場合には、「アプリケーション１１」と記載する。また、外部デバイス３０は、通信部３１と、データ記憶部３３とを含む。また、外部デバイス３０は、報知部３５を含んでもよい。通信部３１は、図６に示した通信部３１に対応している。
【００６８】
まず、情報処理装置１０側の各構成について説明する。図７に示すように、アプリケーション１１は、通信制御部１１１と、セッション情報生成部１１３と、セッション情報記憶部１１５と、処理実行部１１７とを含む。
【００６９】
処理実行部１１７は、アプリケーション１１に定義された各処理を実行する構成を模式的に示したものである。処理実行部１１７は、ネットワークｎ１を介して外部デバイス３０内にアクセスする場合に、後述する通信制御部１１１を介して、当該外部デバイス３０との間で情報の送受信を行う。
【００７０】
なお、アプリケーション１１と外部デバイス３０との間で送受信される情報としては、例えば、アプリケーション１１から外部デバイス３０に対する処理要求や、当該処理要求に対する外部デバイス３０からの処理結果の応答が挙げられる。また、アプリケーション１１と外部デバイス３０とは、処理対象となるデータや、処理結果に基づくデータを互いに送受信してもよい。なお、以降では、処理実行部１１７が、外部デバイス３０との間で送受信する情報を、他の情報と区別するために「通信データ」と記載する場合がある。
【００７１】
セッション情報生成部１１３は、通信制御部１１１からの指示に基づき、図６に示したセッションＩＤ１を生成する。このとき、セッション情報生成部１１３は、少なくとも一部に乱数化された情報が含まれるように、当該セッションＩＤ１を生成する。そして、セッション情報生成部１１３は、生成したセッションＩＤ１を、セッション情報記憶部１１５に記憶させる。なお、セッション情報記憶部１１５は、生成されたセッションＩＤ１や、後述するセッションＩＤ２を記憶するための記憶部である。
【００７２】
また、セッション情報生成部１１３は、外部デバイス３０側と共通の鍵情報をあらかじめ記憶している。セッション情報生成部１１３は、セッションＩＤ１を生成すると、生成したセッションＩＤ１に対して当該鍵情報に基づき不可逆処理を施して符号化（乱数化）することで、当該セッションＩＤ１とは異なるセッションＩＤ２を生成する。そして、セッション情報生成部１１３は、生成したセッションＩＤ２を、セッション情報記憶部１１５に記憶させる。
【００７３】
なお、セッションＩＤ２を生成するための鍵情報は、例えば、アプリケーション１１の各プログラム（例えば、ライブラリ）とあわせて情報処理装置１０にインストールされるように、当該アプリケーション１１のインストーラを構成すればよい。また、セッション情報生成部１１３が、アプリケーション１１が動作する情報処理装置１０における「生成部」の一例に相当する。
【００７４】
通信制御部１１１は、処理実行部１１７から外部デバイス３０へのアクセスに係る指示を受けると、セッション情報生成部１１３に、セッションＩＤ１の生成を指示する。そして、通信制御部１１１は、生成されたセッションＩＤ１をセッション情報記憶部１１５から読み出し、読み出したセッションＩＤ１を外部デバイス３０に通知する。
【００７５】
外部デバイス３０へのセッションＩＤ１の通知が完了すると、通信制御部１１１は、処理実行部１１７から通信データ（例えば、外部デバイス３０への処理要求や送信対象のデータ）を取得する。そして、通信制御部１１１は、取得した通信データにセッション情報記憶部１１５から読み出したセッションＩＤ１を関連付けて、当該セッションＩＤ１が関連付けられた通信データを、ネットワークｎ１を介して外部デバイス３０に送信する。なお、当該通信データを受けた場合の外部デバイス３０側の動作については、別途後述する。
【００７６】
また、詳細は後述するが、外部デバイス３０からアプリケーション１１に対して通信データが送信される場合には、外部デバイス３０は、通信データに対してセッションＩＤ２を関連付けたうえで、当該通信データを情報処理装置１０側に送信する。外部デバイス３０から情報処理装置１０に送信された通信データは、当該情報処理装置１０で動作する各アプリケーション１１それぞれの通信制御部１１１で受信される。
【００７７】
通信制御部１１１は、外部デバイス３０から通信データを受信すると、受信した通信データに関連付けられたセッションＩＤを抽出する。通信データからセッションＩＤを抽出できた場合には、通信制御部１１１は、抽出したセッションＩＤを、セッション情報記憶部１１５に記憶されたセッションＩＤ２と照合する。
【００７８】
通信制御部１１１は、通信データから抽出したセッションＩＤが、セッション情報記憶部１１５に記憶されたセッションＩＤ２と一致する場合には、当該通信データの宛先が自身であると認識し、受信した通信データを処理実行部１１７に出力する。
【００７９】
一方で、通信制御部１１１は、通信データから抽出したセッションＩＤがセッション情報記憶部１１５に記憶されたセッションＩＤ２と一致しなかった場合には、当該通信データの宛先が自身ではないものと認識し、当該通信データを処理対象とはしない。また、通信制御部１１１は、受信した通信データに対してセッションＩＤが関連付けられていなかった場合についても同様に、当該通信データを処理対象とはしない。なお、通信制御部１１１は、受信した通信データを処理対象と認識しなかった場合には、当該通信データを破棄してもよい。また、通信制御部１１１が、アプリケーション１１が動作する情報処理装置１０における「制御部」の一例に相当する。
【００８０】
次に、外部デバイス３０側の各構成について説明する。図７に示すように、通信部３１は、通信制御部３１１と、セッション情報生成部３１３と、セッション情報記憶部３１５と、処理実行部３１７とを含む。
【００８１】
データ記憶部３３は、ユーザ情報等の各種データを記憶するための記憶部である。データ記憶部３３は、例えば、外部デバイス３０に埋設されたＩＣチップ中における各種データを記憶するためのデバイスに相当する。本実施形態に係る情報処理システムでは、例えば、情報処理装置１０で動作するアプリケーション１１が、通信部３１にアクセスすることで、データ記憶部３３に記憶された各種データの参照や更新を行う。なお、データ記憶部３３は、通信部３１内に設けられていてもよい。
【００８２】
処理実行部３１７は、情報処理装置１０からの要求に応じて、当該要求で示された処理を実行する。このとき、処理実行部３１７は、後述する通信制御部３１１を介して、当該情報処理装置１０との間で通信データの送受信を行う。
【００８３】
また、処理実行部３１７は、情報処理装置１０からの要求に応じて、データ記憶部３３に記憶されたデータを読み出し、読み出した当該データを通信データとして当該情報処理装置１０に送信してもよい。また、他の一例として、処理実行部３１７は、情報処理装置１０からの要求に応じて、データ記憶部３３に記憶されたデータを更新してもよい。また、処理実行部３１７は、情報処理装置１０から各種データを取得し、取得した各種データをデータ記憶部３３に記憶させてもよい。
【００８４】
また、処理実行部３１７は、情報処理装置１０からの要求に基づく処理の結果を、報知部３５に報知させてもよい。
【００８５】
報知部３５は、処理実行部３１７による処理の結果をユーザに報知するための構成である。報知部３５は、例えば、ディスプレイのような表示デバイスにより構成されていてもよい。この場合には、報知部３５は、情報処理装置１０からの要求に基づく処理の結果を示す表示情報を処理実行部３１７から取得し、取得した表示情報を表示することで、当該処理の結果をユーザに報知すればよい。
【００８６】
なお、上記に示す報知部３５の態様はあくまで一例であり、情報処理装置１０からの要求に基づく処理の結果をユーザに報知できれば、報知部３５の態様は特に限定されない。具体的な一例として、報知部３５は、ＬＥＤ（Light  Emitting  Diode）のように、点灯又は点滅のパターンにより、所定の情報をユーザに報知するデバイスであってもよい。また、報知部３５は、スピーカ等のように、所定の音響（または音声）を出力することで、所定の情報をユーザに報知するデバイスであってもよい。
【００８７】
通信制御部３１１は、情報処理装置１０内で動作する各アプリケーション１１との間で通信（データの送受信）を開始する場合に、まず、通信相手となるアプリケーション１１から送信されたセッションＩＤ１を受信する。そして、通信制御部３１１は、受信したセッションＩＤ１を、セッション情報記憶部３１５に記憶させる。セッション情報記憶部３１５は、アプリケーション１１から取得されたセッションＩＤ１や、後述するセッションＩＤ２を記憶するための記憶部である。なお、通信制御部３１１のうち、アプリケーション１１から送信されたセッションＩＤ１を受信する構成や、セッション情報記憶部３１５に記憶されたセッションＩＤ１及びＩＤ２を参照する構成が、「取得部」の一例に相当する。
【００８８】
取得したセッションＩＤ１をセッション情報記憶部３１５に記憶させると、通信制御部３１１は、後述するセッション情報生成部３１３にセッションＩＤ２の生成を指示する。この指示を受けて、セッション情報生成部３１３によりセッションＩＤ２が生成され、当該セッションＩＤ２がセッション情報記憶部３１５に記憶される。
【００８９】
次いで、通信制御部３１１は、情報処理装置１０内で動作する各アプリケーション１１から送信された通信データを受信する。
【００９０】
通信制御部３１１は、アプリケーション１１から通信データを受信すると、受信した通信データに関連付けられたセッションＩＤを抽出する。通信データからセッションＩＤを抽出できた場合には、通信制御部３１１は、抽出したセッションＩＤを、セッション情報記憶部３１５に記憶されたセッションＩＤ１と照合する。
【００９１】
通信制御部３１１は、通信データから抽出したセッションＩＤが、セッション情報記憶部３１５に記憶されたセッションＩＤ１と一致する場合には、当該通信データが、当該セッションＩＤ１の送信元から送信された通信データであると認識する。この場合には、通信制御部３１１は、受信した通信データを処理対象のデータであると認識し、当該通信データを処理実行部３１７に出力する。
【００９２】
一方で、通信制御部３１１は、抽出したセッションＩＤがセッション情報記憶部３１５に記憶されたセッションＩＤ１と一致しなかった場合には、当該通信データが、当該セッションＩＤ１の送信元とは異なる送信元から送信された通信データであると認識する。この場合には、通信制御部３１１は、受信した通信データを処理対象とはしない。また、通信制御部３１１は、受信した通信データに対してセッションＩＤが関連付けられていなかった場合についても同様に、当該通信データを処理対象とはしない。なお、通信制御部３１１は、受信した通信データを処理対象と認識しなかった場合には、当該通信データを破棄してもよい。また、通信制御部３１１は、一のセッションＩＤ１に基づく排他制御中に他のセッションＩＤ１を受信した場合には、当該他のセッションＩＤ１を処理対象とは認識せずに、当該他のセッションＩＤ１に基づく排他制御の開始を拒否してもよい。
【００９３】
以上のような構成により、通信制御部３１１は、通信データからに関連付けられたセッションＩＤに基づき、当該通信データが、セッション情報記憶部３１５に記憶されたセッションＩＤ１の送信元から送信された通信データか否かを認識する。そして、通信制御部３１１は、当該セッションＩＤ１の送信元から送信された通信データのみを排他的に処理対象とする（このような制御を、以降では「排他制御」と呼ぶ場合がある）。なお、上記に説明したように、通信制御部３１１において排他制御を行う構成が、外部デバイス３０における「制御部」の一例に相当する。
【００９４】
なお、通信制御部３１１が上記に示した排他制御を行う期間は適宜変更することができる。例えば、通信制御部３１１は、処理対象と認識した通信データの受信の完了をもって、排他制御を完了してもよい。また、他の一例として、通信制御部３１１は、処理対象と認識した通信データが示す処理要求（即ち、アプリケーション１１からの処理要求）を受けて、当該処理要求の要求元に対する応答の完了をもって、排他制御を完了してもよい。また、他の一例として、通信制御部３１１は、セッションＩＤ１の送信元であるアプリケーション１１からの指示に基づき、排他制御の継続及び完了を判断してもよい。また、他の一例として、通信制御部３１１は、セッションＩＤ１が関連付けられた通信データを受信しない期間が、あらかじめ決められた期間以上となった場合（所謂、タイムアウト）に、排他制御を完了してもよい。
【００９５】
排他制御を完了した場合には、通信制御部３１１は、セッション情報記憶部３１５に記憶されたセッションＩＤ１及びＩＤ２を破棄してもよい。このことは、アプリケーション１１についても同様である。即ち、当該アプリケーション１１の通信制御部１１１は、外部デバイス３０の通信制御部３１１による排他制御が完了した場合には、セッション情報記憶部１１５に記憶されたセッションＩＤ１及びＩＤ２を破棄してもよい。
【００９６】
また、通信制御部３１１は、処理実行部３１７からの指示に基づき、当該処理実行部３１７から出力される通信データを情報処理装置１０に送信する。このとき、通信制御部３１１は、処理実行部３１７から取得した通信データに対して、セッション情報記憶部３１５に記憶されたセッションＩＤ２を関連付けて、当該セッションＩＤ２が関連付けられた当該通信データを情報処理装置１０に送信する。
【００９７】
このような構成により、通信制御部３１１は、セッション情報記憶部３１５に記憶されたセッションＩＤ２と同じセッションＩＤを記憶するアプリケーション１１に宛てて、当該通信データを送信することが可能となる。なお、セッション情報記憶部３１５に記憶されたセッションＩＤ２と同じセッションＩＤを記憶するアプリケーション１１とは、当該セッションＩＤ２の生成元となるセッションＩＤ１の送信元に相当する。
【００９８】
また、通信制御部３１１は、受信した通信データから抽出したセッションＩＤが、セッション情報記憶部３１５に記憶されたセッションＩＤ１と異なる場合には、当該通信データの送信元に、当該通信データを処理対象としない旨を通知してもよい。この場合には、通信制御部３１１は、抽出したセッションＩＤを基にセッションＩＤ２をセッション情報生成部３１３に生成させ、当該セッションＩＤ２を通知する情報に関連付けて通信データとして、通知先に送信すればよい。
【００９９】
なお、通信制御部１１１は、通信データを外部デバイス３０に送信する際に、当該通信データを複数の部分データに分割し、当該複数の部分データのそれぞれを、複数の通信に分けて当該外部デバイス３０（即ち、通信制御部３１１）に送信してもよい。この場合には、通信制御部１１１は、各部分データのそれぞれに対して、セッションＩＤ１を関連付ければよい。これにより、通信制御部３１１は、受信した各部分データに関連付けられたセッションＩＤ１に基づき、当該各部分データを処理対象と認識し、処理対象と認識した複数の部分データに基づき通信データを復元することが可能となる。このことは、通信制御部３１１から情報処理装置１０（即ち、通信制御部１１１）に向けて通信データを送信する場合についても同様である。なお、通信データを、複数の通信に分けて送受信する場合の詳細については、実施例として別途後述する。
【０１００】
以上、図７を参照しながら、本実施形態に係る情報処理システムの機能構成の一例について説明した。
【０１０１】
［１．４．処理］
次に、図８を参照して、本実施形態に係る情報処理システムの一連の処理の流れの一例について、情報処理装置１０上で動作するアプリケーション１１ａと外部デバイス３０との間で情報を送受信する場合を例に説明する。図８は、本実施形態に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。
【０１０２】
（ステップＳ１０１）
アプリケーション１１ａの通信制御部１１１は、処理実行部１１７から外部デバイス３０へのアクセスに係る指示を受けると、セッション情報生成部１１３に、セッションＩＤ１の生成を指示する。この指示を受けると、セッション情報生成部１１３は、セッションＩＤ１を生成し、生成したセッションＩＤ１を、セッション情報記憶部１１５に記憶させる。
【０１０３】
（ステップＳ１０３）
通信制御部１１１は、セッション情報生成部１１３により生成されたセッションＩＤ１をセッション情報記憶部１１５から読み出し、読み出したセッションＩＤ１を外部デバイス３０に通知する。
【０１０４】
（ステップＳ１０５）
また、セッション情報生成部１１３は、あらかじめ記憶されている鍵情報に基づき、生成したセッションＩＤ１に対して不可逆処理を施して符号化（乱数化）することで、当該セッションＩＤ１とは異なるセッションＩＤ２を生成する。そして、セッション情報生成部１１３は、生成したセッションＩＤ２を、セッション情報記憶部１１５に記憶させる。
【０１０５】
（ステップＳ１０７）
通信制御部３１１は、情報処理装置１０内で動作するアプリケーション１１ａから送信されたセッションＩＤ１を受信し、受信したセッションＩＤ１を、セッション情報記憶部３１５に記憶させる。
【０１０６】
（ステップＳ１０９）
取得したセッションＩＤ１をセッション情報記憶部３１５に記憶させると、通信制御部３１１は、セッション情報生成部３１３にセッションＩＤ２の生成を指示する。この指示を受けて、セッション情報生成部３１３によりセッションＩＤ２が生成され、当該セッションＩＤ２がセッション情報記憶部３１５に記憶される。
【０１０７】
（ステップＳ１１１ａ〜Ｓ１１５ａ）
外部デバイス３０へのセッションＩＤ１の通知が完了すると、アプリケーション１１ａの通信制御部１１１は、処理実行部１１７から通信データを取得する。そして、通信制御部１１１は、取得した通信データにセッション情報記憶部１１５から読み出したセッションＩＤ１を関連付けて、当該セッションＩＤ１が関連付けられた通信データを、ネットワークｎ１を介して外部デバイス３０に送信する。
【０１０８】
外部デバイス３０の通信制御部３１１は、アプリケーション１１ａから通信データを受信すると、受信した通信データに関連付けられたセッションＩＤを抽出する。通信データからセッションＩＤを抽出できた場合には、通信制御部３１１は、抽出したセッションＩＤを、セッション情報記憶部３１５に記憶されたセッションＩＤ１と照合する。
【０１０９】
このとき、セッション情報記憶部３１５には、当該アプリケーション１１ａから受信したセッションＩＤ１が記憶されている。そのため、アプリケーション１１ａから受信した通信データに関連付けられたセッションＩＤは、セッション情報記憶部３１５に記憶されたセッションＩＤ１と一致することとなる。即ち、通信制御部３１１は、抽出したセッションＩＤがセッション情報記憶部３１５に記憶されたセッションＩＤ１と一致した場合には、アプリケーション１１ａから受信した通信データを処理対象のデータであると認識し、当該通信データを処理実行部３１７に出力する。
【０１１０】
（ステップＳ１１１ｂ）
一方で、通信制御部３１１が、アプリケーション１１ａとは異なるアプリケーション１１ｂから通信データを受信したとする。この場合についても同様に、通信制御部３１１は、通信データに関連付けられたセッションＩＤを抽出し、抽出したセッションＩＤを、セッション情報記憶部３１５に記憶されたセッションＩＤ１と照合する。
【０１１１】
しかしながら、アプリケーション１１ｂから受信した通信データに関連付けられたセッションＩＤは、セッション情報記憶部３１５に記憶されたセッションＩＤ１とは一致しない。そのため、通信制御部３１１は、アプリケーション１１ｂから受信した通信データが、当該セッションＩＤ１の送信元であるアプリケーション１１ａとは異なる送信元から送信された通信データであると認識する。この場合には、通信制御部３１１は、受信した通信データを処理対象とはしない。
【０１１２】
（ステップＳ１１７ａ、Ｓ１１７ｂ）
また、外部デバイス３０の通信制御部３１１は、処理実行部３１７からの指示に基づき、当該処理実行部３１７から出力される通信データを情報処理装置１０に送信する。このとき、通信制御部３１１は、処理実行部３１７から取得した通信データに対して、セッション情報記憶部３１５に記憶されたセッションＩＤ２を関連付けて、当該セッションＩＤ２が関連付けられた当該通信データを情報処理装置１０に送信する。外部デバイス３０から情報処理装置１０に送信された通信データは、情報処理装置１０で動作する各アプリケーション１１それぞれの通信制御部１１１で受信される。
【０１１３】
（ステップＳ１１９ａ）
アプリケーション１１ａの通信制御部１１１は、外部デバイス３０から通信データを受信すると、受信した通信データに関連付けられたセッションＩＤを抽出する。通信データからセッションＩＤを抽出できた場合には、通信制御部１１１は、抽出したセッションＩＤを、セッション情報記憶部１１５に記憶されたセッションＩＤ２と照合する。
【０１１４】
このとき、当該通信データに関連付けられたセッションＩＤと、セッション情報記憶部１１５に記憶されたセッションＩＤ２とは、互いに同じセッションＩＤ１と、アプリケーション１１ａと外部デバイス３０との間で共通の鍵情報とに基づき生成されている。そのため、外部デバイス３０から受信した通信データに関連付けられたセッションＩＤは、セッション情報記憶部１１５に記憶されたセッションＩＤ２と一致することとなる。この場合には、通信制御部１１１は、外部デバイス３０から受信した通信データを処理対象のデータであると認識し、当該通信データを処理実行部１１７に出力する。
【０１１５】
（ステップＳ１１９ｂ）
また、アプリケーション１１ｂの通信制御部１１１についても、同様に、外部デバイス３０から通信データを受信すると、受信した通信データに関連付けられたセッションＩＤを抽出する。通信データからセッションＩＤを抽出できた場合には、通信制御部１１１は、抽出したセッションＩＤを、セッション情報記憶部１１５に記憶されたセッションＩＤ２と照合する。
【０１１６】
一方で、セッション情報記憶部１１５に記憶されたセッションＩＤ２と、通信データに関連付けられたセッションＩＤとは、互いに異なるセッションＩＤ１に基づき生成されている。そのため、外部デバイス３０から受信した通信データに関連付けられたセッションＩＤは、セッション情報記憶部１１５に記憶されたセッションＩＤ２と一致しないこととなる。この場合には、通信制御部１１１は、受信した通信データの宛先が自身ではないものと認識し、当該通信データを処理対象とはしない。
【０１１７】
以上のような構成に基づき、本実施形態に係る情報処理システムでは、外部デバイス３０の通信部３１は、データの送信元となるアプリケーション１１を識別し、複数のアプリケーション１１からのアクセスを排他的に制御することが可能となる。なお、上記では、アプリケーション１１と外部デバイス３０との間で鍵情報に基づきセッションＩＤ１を乱数化することでセッションＩＤ２を生成する例について説明した。しかしながら、アプリケーション１１と外部デバイス３０との間で共通のロジックに基づきセッションＩＤ１を乱数化することで、共通のセッションＩＤ２が生成できれば、その方法は、必ずしも鍵情報を用いた方法には限定されない。
【０１１８】
また、前述したように、セッションＩＤ２は、セッションＩＤ１に対して不可逆処理を施すことで符号化されて生成された情報である。そのため、各アプリケーション１１は、自身が保持するセッションＩＤ２と異なるセッションＩＤを取得したとしても、当該セッションＩＤが、自身以外のどのアプリケーション１１の保持するセッションＩＤ２に相当するかを認識することは困難である。
【０１１９】
また、アプリケーション１１と通信部３１とは、互いに異なるセッションＩＤ（即ちセッションＩＤ１及びＩＤ２）を関連付けて通信データを送信する。具体的な一例として、アプリケーション１１ａ宛てに送信された通信データに関連付けられたセッションＩＤは、当該アプリケーション１１ａが通信部３１に通信データを送信する際に、当該通信データに関連付けるセッションＩＤ１とは異なる。そのため、アプリケーション１１ａ宛てに送信された通信データを他のアプリケーション１１ｚが受信したとしても、当該アプリケーション１１ｚは、当該通信データに関連付けられたセッションＩＤに基づきアプリケーション１１ａになりすますことは困難である。
【０１２０】
また、上記に示す排他制御の例では、外部デバイス３０は、排他制御中は１つのアプリケーション１１からの要求のみを処理する例について説明した。しかしながら、外部デバイス３０は、並列に処理可能であれば、複数のアプリケーション１１からの要求に基づく処理のそれぞれを、個々に排他的に処理してもよい。具体的な一例として、複数のアプリケーション１１からの要求に基づく処理の対象が、外部デバイス３０に記憶された各データのうち、互いに異なるデータの場合には、当該外部デバイス３０は、各アプリケーション１１からの要求を並列に処理してもよい。
【０１２１】
以上のような構成により、本実施形態に係る情報処理システムでは、１対１での通信を想定した規格に基づく通信環境下においても、外部デバイス３０は、複数のアプリケーション１１それぞれからのアクセスを排他的に制御することが可能となる。
【０１２２】
＜２．第２の実施形態＞
［２．１．概要］
次に、第２の実施形態に係る情報処理システムについて説明する。前述した第１の実施形態では、情報処理装置１０側のアプリケーション１１と、外部デバイス３０とが、個々にセッションＩＤ２を生成していた。
【０１２３】
これに対して、第２の実施形態に係る情報処理システムでは、アプリケーション１１が、セッションＩＤ２を生成し、生成したセッションＩＤ２を外部デバイス３０側に通知する点で、前述した第１の実施形態に係る情報処理システムと異なる。そこで、以降では、本実施形態に係る情報処理システムについて、前述した第１の実施形態に係る情報処理システムと異なる部分に着目して説明する。
【０１２４】
［２．２．機能構成］
図９を参照して、本実施形態に係る情報処理システムの機能構成の一例について説明する。図９は、本実施形態に係る情報処理システムの機能構成の一例を示したブロック図である。
【０１２５】
まず、情報処理装置１０側の構成に着目して説明する。本実施形態に係る情報処理装置１０は、通信制御部１１１と、セッション情報生成部１１３との動作が、前述した第１の実施形態に係る情報処理装置１０（図７参照）と異なる。そのため、本説明では、通信制御部１１１と、セッション情報生成部１１３とについて、前述した第１の実施形態と異なる部分に着目して説明する。なお、以降では、本実施形態に係る外部デバイス３０を、前述した第１の実施形態に係る外部デバイス３０と明示的に区別する場合には、「外部デバイス３０ａ」と記載する場合がある。
【０１２６】
前述した第１の実施形態では、セッション情報生成部１１３は、セッションＩＤ１に対して、あらかじめ記憶された外部デバイス３０と共通のロジックに基づき（例えば、鍵情報に基づき）非可逆処理を施すことで符号化（乱数化）してセッションＩＤ２を生成していた。
【０１２７】
これに対して、本実施形態に係るセッション情報生成部１１３においては、セッションＩＤ１と異なり、かつ、少なくとも一部に乱数化された情報が含まれるようにセッションＩＤ２を生成可能であれば、当該セッションＩＤ２を生成する方法は特に限定されない。そのため、本実施形態に係るセッション情報生成部１１３は、必ずしも、外部デバイス３０ａと共通の鍵情報を保持している必要はない。もちろん、本実施形態に係るセッション情報生成部１１３は、前述した第１の実施形態に係るセッション情報生成部１１３と同様に、セッションＩＤ１に対して鍵情報に基づき非可逆処理を施すことで符号化（乱数化）してセッションＩＤ２を生成してもよい。
【０１２８】
また、本実施形態に係る通信制御部１１１は、外部デバイス３０ａとの間で通信を開始する際の動作が、前述した第１の実施形態に係る通信制御部１１１と異なる。
【０１２９】
具体的には、本実施形態に係る通信制御部１１１は、処理実行部１１７から外部デバイス３０ａへのアクセスに係る指示を受けると、セッション情報生成部１１３に、セッションＩＤ１及びＩＤ２の生成を指示する。そして、通信制御部１１１は、生成されたセッションＩＤ１及びＩＤ２をセッション情報記憶部１１５から読み出し、読み出したセッションＩＤ１及びＩＤ２を外部デバイス３０ａに通知する。なお、以降の処理については、前述した第１の実施形態に係る通信制御部１１１と同様である。
【０１３０】
次に、外部デバイス３０ａ側の構成に着目して説明する。本実施形態に係る外部デバイス３０は、主に通信部３１の構成が前述した前述した第１の実施形態と異なる。具体的には、本実施形態に係る通信部３１は、セッション情報生成部３１３を含まない点と、通信制御部３１１の動作とが、前述した第１の実施形態に係る通信部３１と異なる。
【０１３１】
そのため、本説明では、主に通信制御部３１１の動作について、前述した第１の実施形態と異なる部分に着目して説明する。なお、以降では、本実施形態に係る通信部３１を、前述した第１の実施形態に係る通信部３１と明示的に区別する場合には、「通信部３１ａ」と記載する場合がある。
【０１３２】
本実施形態に係る通信部３１ａの通信制御部３１１は、情報処理装置１０内で動作する各アプリケーション１１との間で通信（データの送受信）を開始する場合に、まず、通信相手となるアプリケーション１１から送信されたセッションＩＤ１及びＩＤ２を受信する。そして、通信制御部３１１は、受信したセッションＩＤ１及びＩＤ２を、セッション情報記憶部３１５に記憶させる。
【０１３３】
このように、通信部３１ａの通信制御部３１１は、セッションＩＤ２を通信相手となるアプリケーション１１から取得する点で、前述した第１の実施形態に係る通信制御部３１１と異なる。なお、以降の処理については前述した第１の実施形態に係る通信制御部３１１と同様である。
【０１３４】
なお、通信部３１ａの通信制御部３１１は、受信した通信データから抽出したセッションＩＤ１が、セッション情報記憶部３１５に記憶されたセッションＩＤ１と異なる場合には、当該通信データの送信元に、当該通信データを処理対象としない旨を通知してもよい。この場合には、通信制御部３１１は、当該通信データにあわせて関連付けられたセッションＩＤ２を抽出し、当該セッションＩＤ２を通知する情報に関連付けて通信データとして、通知先に送信すればよい。
【０１３５】
以上、図９を参照しながら、本実施形態に係る情報処理システムの機能構成の一例について、前述した第１の実施形態に係る情報処理システムと異なる部分に着目して説明した。
【０１３６】
［２．３．処理］
次に、図１０を参照して、本実施形態に係る情報処理システムの一連の処理の流れの一例について、情報処理装置１０上で動作するアプリケーション１１ａと外部デバイス３０ａとの間で情報を送受信する場合を例に説明する。図１０は、本実施形態に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。
【０１３７】
なお、「２．２．機能構成」でも説明したように、本実施形態に係る情報処理システムでは、アプリケーション１１で生成されたセッションＩＤ２が外部デバイス３０ａに通知される点が、前述した第１の実施形態に係る情報処理システムと異なる。そのため、本説明においても、前述した第１の実施形態に係る情報処理システムと異なる部分に着目して説明する。
【０１３８】
（ステップＳ２０１）
アプリケーション１１ａの通信制御部１１１は、処理実行部１１７から外部デバイス３０ａへのアクセスに係る指示を受けると、セッション情報生成部１１３に、セッションＩＤ１及びＩＤ２の生成を指示する。この指示を受けて、セッション情報生成部１１３は、セッションＩＤ１及びＩＤ２を生成し、生成した当該セッションＩＤ１及びＩＤ２を、セッション情報記憶部１１５に記憶させる。
【０１３９】
（ステップＳ２０３、Ｓ２０５）
そして、通信制御部１１１は、生成されたセッションＩＤ１及びＩＤ２をセッション情報記憶部１１５から読み出し、読み出したセッションＩＤ１及びＩＤ２を外部デバイス３０ａに通知する。
【０１４０】
（ステップＳ２０７）
外部デバイス３０ａの通信制御部３１１は、情報処理装置１０内で動作するアプリケーション１１ａとの間で通信（データの送受信）を開始する場合に、まず、当該アプリケーション１１ａから送信されたセッションＩＤ１及びＩＤ２を受信する。そして、通信制御部３１１は、受信したセッションＩＤ１及びＩＤ２を、セッション情報記憶部３１５に記憶させる。
【０１４１】
これにより、アプリケーション１１ａと、外部デバイス３０ａとの双方に、共通のセッションＩＤ１及びＩＤ２が保持される。なお、以降の動作については、前述した第１の実施形態に係る情報処理システムと同様である。
【０１４２】
以上、説明したように、本実施形態に係る情報処理システムでは、アプリケーション１１がセッションＩＤ１及びＩＤ２を生成し、当該セッションＩＤ１及びＩＤ２を外部デバイス３０ａに通知する。
【０１４３】
そして、アプリケーション１１の通信制御部１１１は、外部デバイス３０ａに通信データを送信する際には、当該通信データにセッションＩＤ１を関連付ける。この場合には、外部デバイス３０ａの通信制御部３１１は、通信データに関連付けられたセッションＩＤ１に基づき、当該通信データの送信元がアプリケーション１１ａであることを認識する。
【０１４４】
また、外部デバイス３０ａの通信制御部３１１は、情報処理装置１０に通信データを送信する際に、当該通信データにセッションＩＤ２を関連付ける。この場合には、情報処理装置１０上で動作するアプリケーション１１ａの通信制御部１１１は、通信データに関連付けられたセッションＩＤ２に基づき、当該通信データの宛先が自身（アプリケーション１１ａ）であることを認識する。
【０１４５】
このような構成により、本実施形態に係る情報処理システムは、１対１での通信を想定した規格に基づく通信環境下においても、前述した第１の実施形態に係る情報処理システムと同様に、外部デバイス３０における排他制御を実現することが可能となる。
【０１４６】
また、本実施形態に係る情報処理システムでは、外部デバイス３０はセッションＩＤ２を生成する必要が無い。そのため、本実施形態に係る情報処理システムでは、前述した第１の実施形態に係る情報処理システムに比べて、外部デバイス３０の処理負荷を軽減することが可能となる。
【０１４７】
＜３．実施例＞
次に、実施例として、本実施形態に係る情報処理システムにおける排他制御の一例について説明する。なお、本説明では、情報処理装置１０と外部デバイス３０とが、互いに通信データを送受信する際に、当該通信データを複数の通信に分けて送信する場合を例に説明する。
【０１４８】
［３．１．実施例１：プロセス単位での排他制御］
まず、実施例１として、外部デバイス３０が、アプリケーション１１ａからの要求のみを排他的に受け付けて、当該要求に基づく処理を実行し、当該処理の結果をアプリケーション１１ａに通知するまでの期間を排他制御の対象とする場合の例について説明する。なお、アプリケーション１１から外部デバイス３０に要求が送信され、当該要求に基づく処理の結果が、外部デバイス３０からアプリケーション１１に通知されるまでの一連の処理を、以降では「プロセス」と呼ぶ場合がある。
【０１４９】
例えば、図１１は、実施例１に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。具体的には、図１１は、アプリケーション１１ａから外部デバイス３０に要求が送信され、当該要求に基づく処理の結果が、外部デバイス３０からアプリケーション１１ａに通知されるまでの処理、即ち、１プロセス分の処理の流れを示している。なお、図１１に示す例では、説明をわかりやすくするために、アプリケーション１１ａと外部デバイス３０との双方が、互いに共通のセッションＩＤ１及びＩＤ２を既に保持しているものとして説明するが、必ずしも本態様に限定するものではない。例えば、アプリケーション１１ａは、外部デバイス３０に対して最初の通信データの送信する際に、当該通信データとあわせてセッションＩＤ１（及びセッションＩＤ２）を、当該外部デバイス３０に通知してもよい。
【０１５０】
図１１において、参照符号Ｓ３００は、１つのプロセスを示している。図１１に示すように、プロセスＳ３００は、例えば、要求データ送信フェーズＳ３１０と、要求データ受信フェーズＳ３２０と、処理実行フェーズＳ３３０と、結果データ送信フェーズＳ３４０と、結果データ受信フェーズＳ３５０とを含む。
【０１５１】
要求データ送信フェーズＳ３１０は、アプリケーション１１ａが、外部デバイス３０に対して所望の処理を要するための要求データを、通信データとして当該外部デバイス３０に送信するフェーズを示している。なお、アプリケーション１１ａは、要求データを外部デバイス３０に送信する際に、当該要求データに対してセッションＩＤ１を関連付ける点は、前述したとおりである。
【０１５２】
また、前述したように、アプリケーション１１ａは、外部デバイス３０に通信データを送信する際に、当該通信データを複数の通信に分けて送信してもよい。そのため、例えば、図１１に示す例では、アプリケーション１１ａは、参照符号Ｓ３１１〜Ｓ３１３で示すように、要求データをｍ個の部分データに分割することで、当該要求データを部分データごとにｍ回の通信に分けて送信している。なお、以降では、要求データから分割されたｍ個の部分データを、「要求データ１／ｍ〜ｍ／ｍ」と記載する場合がある。
【０１５３】
また、アプリケーション１１ａは、要求データ１／ｍ〜ｍ／ｍのそれぞれを外部デバイス３０に送信する際には、要求データｉ／ｍ（ｉは、１≦ｉ≦ｍの整数）に対してセッションＩＤ１を関連付ける。これにより、外部デバイス３０は、当該セッションＩＤ１に基づき、アプリケーション１１ａから送信された要求データｉ／ｍのみが処理対象となるように排他制御を行うことが可能となる。
【０１５４】
なお、アプリケーション１１ａは、参照符号Ｓ３１３に示すように、一連の要求データ１／ｍ〜ｍ／ｍのうち最後の要求データｍ／ｍを送信する際に、当該要求データｍ／ｍが最後のデータであることを示す制御情報を、当該要求データｍ／ｍに関連付けてもよい。これにより、外部デバイス３０は、当該制御情報が関連付けられた要求データｍ／ｍを、一連の要求データ１／ｍ〜ｍ／ｍのうちの最後のデータとして認識することが可能となる。
【０１５５】
要求データ受信フェーズＳ３２０は、外部デバイス３０が、アプリケーション１１ａから送信された要求データを受信するフェーズを示している。
【０１５６】
要求データ受信フェーズＳ３２０では、外部デバイス３０は、情報処理装置１０上で動作する各アプリケーション１１から送信される要求データ（換言すると、通信データ）を受信する。このとき、外部デバイス３０は、受信した要求データに関連付けられているセッションＩＤ１に基づき、当該要求データの送信元がアプリケーション１１ａか否かを認識する。そして、外部デバイス３０は、アプリケーション１１ａから送信された要求データのみを処理対象と認識し、当該要求データが示すアプリケーション１１ａの要求を実行する。なお、外部デバイス３０が、要求データが示すアプリケーション１１ａの要求を実行するフェーズが、処理実行フェーズＳ３３０に相当する。
【０１５７】
また、前述したように、外部デバイス３０は、要求データを複数の通信に分けて受信してもよい。この場合には、外部デバイス３０は、一連の要求データ１／ｍ〜ｍ／ｍを受信したら、当該要求データ１／ｍ〜ｍ／ｍを結合することで、分割前の要求データを復元し、復元された要求データに基づき、アプリケーション１１ａの要求を認識すればよい。
【０１５８】
結果データ送信フェーズＳ３４０は、外部デバイス３０が、処理実行フェーズＳ３３０で実行された処理の結果を示す結果データを、通信データとして要求データの送信元となるアプリケーション１１ａに送信するフェーズを示している。なお、外部デバイス３０は、結果データをアプリケーション１１ａに送信する際に、当該結果データに対してセッションＩＤ２を関連付ける点は、前述したとおりである。また、結果データ受信フェーズＳ３５０は、アプリケーション１１ａが、外部デバイス３０から送信された結果データを受信するフェーズを示している。
【０１５９】
なお、外部デバイス３０は、アプリケーション１１ａに通信データを送信する際に、当該通信データを複数の通信に分けて送信してもよい。そのため、例えば、図１１に示す例では、外部デバイス３０は、参照符号Ｓ３５１〜Ｓ３５３で示すように、結果データをｎ個の部分データに分割することで、当該結果データを部分データごとにｎ回の通信に分けて送信している。なお、以降では、結果データから分割されたｎ個の部分データを、「結果データ１／ｎ〜ｎ／ｎ」と記載する場合がある。
【０１６０】
また、外部デバイス３０は、結果データ１／ｎ〜ｎ／ｎのそれぞれをアプリケーション１１ａに送信する際には、結果データｊ／ｎ（ｊは、１≦ｊ≦ｎの整数）に対してセッションＩＤ２を関連付ける。これにより、アプリケーション１１ａは、当該セッションＩＤ２に基づき、外部デバイス３０から送信された結果データｊ／ｎが自身（アプリケーション１１ａ）に宛てて送信されたデータであると認識することが可能となる。
【０１６１】
なお、外部デバイス３０は、参照符号Ｓ３５３に示すように、一連の結果データ１／ｎ〜ｎ／ｎのうち最後の結果データｎ／ｎを送信する際に、当該結果データｎ／ｎが最後のデータであることを示す制御情報を、当該結果データｎ／ｎに関連付けてもよい。これにより、アプリケーション１１ａは、当該制御情報が関連付けられた結果データｎ／ｎを、一連の結果データ１／ｎ〜ｎ／ｎのうちの最後のデータとして認識することが可能となる。
【０１６２】
結果データ受信フェーズＳ３５０では、アプリケーション１１ａは、外部デバイス３０から送信される結果データ（換言すると、通信データ）を受信する。このとき、アプリケーション１１ａは、受信した結果データに関連付けられているセッションＩＤ２に基づき、当該結果データの宛先が自身（アプリケーション１１ａ）か否かを認識する。そして、アプリケーション１１ａは、受信した結果データが自身宛てのデータの場合には、当該結果データを処理対象と認識し、当該結果データから処理の結果を示す情報を取得する。もちろん、アプリケーション１１ａは、結果データが複数の通信に分けて送信された場合には、受信した結果データ１／ｎ〜ｎ／ｎを結合することで結果データを復元すればよい。
【０１６３】
以上説明した内容が、プロセスＳ３００の一連の処理の流れである。なお、外部デバイス３０は、プロセス単位で排他制御を行う場合には、例えば、アプリケーション１１ａからセッションＩＤ１の受信をもって、当該排他制御を開始してもよい。また、外部デバイス３０は、一連の結果データ１／ｎ〜ｎ／ｎのうち最後の結果データｎ／ｎの送信をもって、当該排他制御を終了してもよい。また、他の一例として、外部デバイス３０は、アプリケーション１１ａから最後の結果データｎ／ｎの受信が完了したことを示す制御情報を取得し、当該制御情報の取得をもって当該排他制御を終了してもよい。
【０１６４】
次に、図１２を参照して、前述した要求データ及び結果データを送信するための通信データのデータ構造の一例について説明する。図１２は、要求データ及び結果データを送信するための通信データのデータ構造の一例について説明するための説明図である。
【０１６５】
図１２において、参照符号ｄ１０は、アプリケーション１１から外部デバイス３０に向けて、要求データを送信するための通信データのデータ構造の一例を示している。
【０１６６】
図１２に示すように、通信データｄ１０は、セッションＩＤ１ｄ１１１と、トランザクション種別ｄ１１３と、データグループ番号ｄ１１５と、データ通番ｄ１１７と、継続フラグｄ１１９と、要求データｄ１２１とを含む。
【０１６７】
セッションＩＤ１ｄ１１１は、アプリケーション１１が外部デバイス３０に通知するセッションＩＤ１を格納するための領域である。また、要求データｄ１２１は、送信対象となる要求データを格納するための領域である。
【０１６８】
また、データ通番ｄ１１７は、アプリケーション１１が、要求データを複数の通信に分けて外部デバイス３０に送信する際に、使用する制御情報を格納するための領域である。データ通番ｄ１１７には、要求データ１／ｍ〜ｍ／ｍのそれぞれを識別するための制御情報、換言すると、要求データ１／ｍ〜ｍ／ｍそれぞれの通し番号を示す制御情報が格納される。
【０１６９】
継続フラグｄ１１９は、主に、要求データを複数の通信に分けて送信する場合に用いられ、要求データｄ１２１で示された領域に格納された要求データｉ／ｍが、最後の要求データｍ／ｍか否かを示す制御情報が格納される領域を示している。
【０１７０】
例えば、要求データｄ１２１で示された領域に格納された要求データｉ／ｍが、最後の要求データｍ／ｍの場合には、継続フラグｄ１１９には、「偽（false）」を示すフラグが設定される。また、当該要求データｉ／ｍが、最後の要求データｍ／ｍ以外の場合には、継続フラグｄ１１９には、「真（true）」を示すフラグが設定される。
【０１７１】
即ち、外部デバイス３０は、継続フラグｄ１１９に「真（true）」が設定されている限り、要求データｉ／ｍの受信を継続する。また、外部デバイス３０は、継続フラグｄ１１９に「偽（false）」が設定されている場合には、受信した要求データｉ／ｍが、最後の要求データｍ／ｍであると認識し、要求データｉ／ｍの受信に係る処理を終了する。
【０１７２】
なお、要求データを複数の通信に分けて送信しない場合（即ち、１送信で要求データを送信する場合）には、継続フラグｄ１１９には、「偽（false）」を示すフラグが設定されればよい。
【０１７３】
また、トランザクション種別ｄ１１３と、データグループ番号ｄ１１５とは、主に、複数プロセスを１つのトランザクションとして、当該トランザクション単位で排他制御を行う場合に用いられる。なお、トランザクション単位で排他制御を行う場合については、実施例２、３として詳細を後述する、
【０１７４】
トランザクション種別ｄ１１３には、トランザクションの開始、継続、終了を示す制御情報を格納するための領域である。トランザクション種別ｄ１１３には、例えば、「開始」、「終了」、及び「通常」のうちのいずれかがフラグとして設定される。
【０１７５】
「開始」フラグは、アプリケーション１１が、外部デバイス３０に対して、トランザクションの開始を指示するためのフラグである。また、「終了」フラグは、アプリケーション１１が、外部デバイス３０に対して、開始されているトランザクションの終了を指示するためのフラグである。即ち、外部デバイス３０は、「開始」フラグが設定された通信データｄ１０の受信をもってトランザクションの開始を認識して、排他制御を開始する。また外部デバイス３０は、「終了」フラグが設定された通信データｄ１０の受信をもってトランザクションの終了を認識して、開始されている当該排他制御を終了する。
【０１７６】
「通常」フラグは、「開始」及び「終了」のいずれにも相当しない場合に設定されるフラグである。外部デバイス３０は、「開始」フラグに基づきトランザクションが開始されているときに、「通常」フラグが設定された通信データｄ１０を受信した場合には、当該トランザクションが継続されているものと認識する。また、外部デバイス３０は、トランザクションが開始されていないときに、「通常」フラグが設定された通信データｄ１０を受信した場合には、プロセス単位の排他制御が指示されたものとして認識してもよい。
【０１７７】
データグループ番号ｄ１１５は、各プロセスを識別するための識別情報を格納するための領域である。外部デバイス３０は、データグループ番号ｄ１１５に格納された識別情報に基づき、要求データｄ１２１で示された領域に格納された要求データが、どのプロセスに対応する要求データであるかを識別することが可能となる。そのため、例えば、要求データが再送されるような状況下においても、外部デバイス３０は、データグループ番号ｄ１１５に格納された識別情報に基づき、あわせて再送された要求データがどのプロセスに対応する要求データであるかを識別することが可能となる。
【０１７８】
また、参照符号ｄ３０は、外部デバイス３０からアプリケーション１１に向けて、結果データを送信するための通信データのデータ構造の一例を示している。
【０１７９】
図１２に示すように、通信データｄ３０は、セッションＩＤ２ｄ３１１と、データグループ番号ｄ３１３と、データ通番ｄ３１５と、継続フラグｄ３１７と、結果データｄ３１９とを含む。
【０１８０】
セッションＩＤ２ｄ３１１は、外部デバイス３０がアプリケーション１１に通知するセッションＩＤ２を格納するための領域である。また、結果データｄ３１９は、送信対象となる結果データを格納するための領域である。
【０１８１】
また、データ通番ｄ３１５は、外部デバイス３０が、結果データを複数の通信に分けてアプリケーション１１に送信する際に、使用する制御情報を格納するための領域である。データ通番ｄ３１５には、結果データ１／ｎ〜ｎ／ｎのそれぞれを識別するための制御情報、換言すると、結果データ１／ｎ〜ｎ／ｎそれぞれの通し番号を示す制御情報が格納される。
【０１８２】
継続フラグｄ３１７は、主に、結果データを複数の通信に分けて送信する場合に用いられ、結果データｄ３１９で示された領域に格納された結果データｊ／ｎが、最後の結果データｎ／ｎか否かを示す制御情報が格納される領域を示している。
【０１８３】
例えば、結果データｄ３１９で示された領域に格納された結果データｊ／ｎが、最後の結果データｎ／ｎの場合には、継続フラグｄ３１７には、「偽（false）」を示すフラグが設定される。また、当該結果データｊ／ｎが、最後の結果データｎ／ｎ以外の場合には、継続フラグｄ３１７には、「真（true）」を示すフラグが設定される。
【０１８４】
即ち、アプリケーション１１は、継続フラグｄ３１７に「真（true）」が設定されている限り、結果データｊ／ｎの受信を継続する。また、アプリケーション１１は、継続フラグｄ３１７に「偽（false）」が設定されている場合には、受信した結果データｊ／ｎが、最後の結果データｎ／ｎであると認識し、結果データｊ／ｎの受信に係る処理を終了する。
【０１８５】
なお、結果データを複数の通信に分けて送信しない場合（即ち、１送信で結果データを送信する場合）には、継続フラグｄ３１７には、「偽（false）」を示すフラグが設定されればよい。
【０１８６】
また、データグループ番号ｄ３１３は、通信データｄ１０におけるデータグループ番号ｄ１１５と同様である。
【０１８７】
なお、図１２に示した通信データｄ１０及びｄ３０のデータ構造はあくまで一例であり、各実施例として説明された一連の処理を実現可能であれば、当該通信データｄ１０及びｄ３０に含まれる情報は特に限定されない。具体的な一例として、通信データｄ１０及びｄ３０は、図１２に示された情報以外の他の情報を格納するための拡張領域が別途設けられていてもよい。また、前述した第２の実施形態のように、情報処理装置１０から外部デバイス３０にセッションＩＤ２を通知する場合には、通信データｄ１０に対して、当該セッションＩＤ２を格納するための領域を別途設けてもよい。
【０１８８】
以上、実施例１として、外部デバイス３０が、プロセス単位で排他制御を行う場合の例と、外部デバイス３０とアプリケーション１１との間で送受信される通信データのデータ構造の一例とについて説明した。
【０１８９】
［３．２．実施例２：トランザクション単位での排他制御］
次に、図１３を参照して、外部デバイス３０が、トランザクション単位で排他制御を行う場合の一例について説明する。図１３は、実施例２に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。なお、図１３は、プロセスＳ３０１〜Ｓ３０３が１つのトランザクションＳ５００として管理される場合の例を示している。また、図１３に示す例では、説明をわかりやすくするために、アプリケーション１１ａと外部デバイス３０との双方が、互いに共通のセッションＩＤ１及びＩＤ２を既に保持しているものとして説明するが、必ずしも本態様に限定するものではない。例えば、アプリケーション１１ａは、外部デバイス３０に対して最初の通信データの送信する際に、当該通信データとあわせてセッションＩＤ１（及びセッションＩＤ２）を、当該外部デバイス３０に通知してもよい。
【０１９０】
図１３に示すように、アプリケーション１１ａは、外部デバイス３０に対してトランザクション単位での排他制御を指示する場合には、最初のプロセスＳ３０１において最初に送信される要求データ１／ｍに、トランザクションの開始を示す制御情報を関連付ける。
【０１９１】
具体的には、アプリケーション１１ａは、プロセスＳ３０１において最初の要求データ１／ｍを送信する際に、図１２に示す通信データｄ１０のトランザクション種別ｄ１１３に「開始」フラグを設定し、当該通信データを外部デバイス３０に送信すればよい。これにより、外部デバイス３０は、当該通信データｄ１０のトランザクション種別ｄ１１３に設定された「開始」フラグに基づき、トランザクションＳ５００を開始する。なお、この場合には、外部デバイス３０は、プロセスＳ３０１の一連の処理が完了しても、排他制御を終了させずに継続する。
【０１９２】
また、アプリケーション１１ａは、トランザクションＳ５００の開始後に、プロセスＳ３０１とは異なる他のプロセスを開始する場合には、当該プロセスの最初に送信される要求データ１／ｍに、トランザクションの継続か終了を示す制御情報を関連付ける。この制御情報により、外部デバイス３０は、開始されたトランザクションＳ５００を終了するか否かを判断することが可能となる。
【０１９３】
例えば、アプリケーション１１ａは、プロセスＳ３０２において、外部デバイス３０に対してトランザクションＳ５００の継続を指示している。具体的には、アプリケーション１１ａは、プロセスＳ３０２において最初の要求データ１／ｍを送信する際に、図１２に示す通信データｄ１０のトランザクション種別ｄ１１３に「通常」フラグを設定し、当該通信データを外部デバイス３０に送信する。これにより、外部デバイス３０は、当該通信データｄ１０のトランザクション種別ｄ１１３に設定された「通常」フラグに基づき、トランザクションＳ５００の継続が指示されたことを認識することができる。なお、この場合には、外部デバイス３０は、プロセスＳ３０２の一連の処理が完了しても、排他制御を終了させずに継続する。
【０１９４】
また、アプリケーション１１ａは、プロセスＳ３０３において、外部デバイス３０に対してトランザクションＳ５００の終了を指示している。具体的には、アプリケーション１１ａは、プロセスＳ３０３において最初の要求データ１／ｍを送信する際に、図１２に示す通信データｄ１０のトランザクション種別ｄ１１３に「終了」フラグを設定し、当該通信データを外部デバイス３０に送信する。これにより、外部デバイス３０は、当該通信データｄ１０のトランザクション種別ｄ１１３に設定された「終了」フラグに基づき、トランザクションＳ５００の終了が指示されたことを認識することができる。なお、この場合には、外部デバイス３０は、プロセスＳ３０３の一連の処理の完了をもって、排他制御を終了する。
【０１９５】
以上、図１３を参照しながら実施例２として説明したように、本実施形態に係る情報処理システムでは、複数のプロセスを１つのトランザクションとして、トランザクション単位で排他制御を行うことも可能となる。
【０１９６】
なお、トランザクション単位で排他制御が行われている場合には、外部デバイス３０は、当該トランザクション中に、他のアプリケーション１１からセッションＩＤ１や要求データを受信したとしても、当該セッションＩＤ１や要求データを処理対象とはしない。そのため、例えば、図１３の参照符号Ｓ４１０に示すように、異なるプロセス間においても、外部デバイス３０は、他のアプリケーション１１から受信したセッションＩＤ１や要求データを処理対象としないこととなる。
【０１９７】
［３．３．実施例３：認証処理を行う場合の通信シーケンス］
次に、実施例３として、認証処理を伴う場合の排他制御の一例について説明する。アプリケーション１１ａから外部デバイス３０に対して処理の要求を行う場合には、外部デバイス３０側において、要求元の認証を行う必要がある場合が少なからずある。
【０１９８】
具体的な一例として、外部デバイス３０側に、ユーザ情報が記憶されており、当該ユーザ情報の参照や更新が、当該ユーザ情報を登録したユーザに限られている場合がある。このような場合には、外部デバイス３０は、例えば、アプリケーション１１から当該ユーザ情報を登録したユーザであることを示す認証情報を取得し、取得した認証情報に基づき認証を行うことで、当該アプリケーション１１を実行しているユーザの正当性を確認する。
【０１９９】
一方で、情報処理装置１０と外部デバイス３０との間の通信帯域が制限されている場合も少なくはない。このような場合には、情報処理装置１０と外部デバイス３０との間の通信ごとに認証情報を送受信すると、１回に送受信される実データの容量が更に制限され、結果として、当該通信を圧迫する可能性がある。
【０２００】
そこで、実施例３として、認証情報に基づく認証処理を要する場合においても、アプリケーション１１と外部デバイス３０との間で送受信されるデータの量を最小限に抑えることが可能な情報処理システムについて、図１４を参照して説明する。図１４は、実施例３に係る情報処理システムの一連の処理の流れの一例について説明するための説明図である。なお、本説明では、アプリケーション１１ａと外部デバイス３０との間で、図１３に示した一連の処理を、認証処理を伴って実行する場合について説明する。
【０２０１】
図１３と図１４とを比較するとわかるように、本実施例に係る情報処理システムでは、アプリケーション１１ａは、最初のプロセスＳ３０１において最初に送信される要求データ１／ｍに対してのみ、認証情報を関連付ける。
【０２０２】
外部デバイス３０は、要求データ１／ｍに関連付けられた認証情報を取得すると、当該認証情報に基づき認証処理を実行する。認証に成功した場合には、外部デバイス３０は、当該認証に用いた認証情報を、当該認証情報とあわせて受信したセッションＩＤ１と関連付けて記憶する。
【０２０３】
なお、以降の処理については、外部デバイス３０は、受信した要求データに対して、当該認証情報に関連付けられたセッションＩＤ１と同じセッションＩＤが関連付けられている場合には、当該要求データを、認証が完了したユーザからの要求に基づくデータと認識する。
【０２０４】
このような構成により、本実施例に係る情報処理システムでは、トランザクションＳ５００中にアプリケーション１１ａから外部デバイス３０に送信される各要求データ１／ｍ〜ｍ／ｍのそれぞれに認証情報を関連付ける必要がなくなる。そのため、本実施例に係る情報処理システムでは、認証情報に基づく認証処理を要する場合においても、アプリケーション１１と外部デバイス３０との間で送受信されるデータの量を最小限に抑えることが可能となる。また、外部デバイス３０において、プロセスＳ３０１〜Ｓ３０３の処理実行フェーズＳ３３０ごとに認証処理を行う必要がなくなるため、当該認証処理の実行に伴う外部デバイス３０の負荷を最小限に抑えることが可能となる。
【０２０５】
＜４．ソフトウェア構成＞
次に、図１５を参照して、前述した各実施形態に係るアプリケーション１１を実現するためのソフトウェア構成の一例について説明する。図１５は、本開示の各実施形態に係るアプリケーションのソフトウェア構成の一例を示している。
【０２０６】
各実施形態及び各実施例にて説明した、アプリケーション１１の各機能（即ち、外部デバイス３０に対してアクセスするための機能）は、例えば、図１５に示すように、ＡＰＩ５１として提供することも可能である。また、当該ＡＰＩ５１は、例えば、情報処理装置１０のＯＳが提供するフレームワーク９１が提供する機能（例えば、無線通信の機能）を利用して構成されていてもよい。
【０２０７】
このような構成とすることで、例えば、外部デバイス３０の通信部３１を提供するベンダーが、当該通信部３１を介して外部デバイス３０にアクセスするためのＡＰＩ５１を、ライブラリとして各アプリケーションの開発者に提供することが可能となる。また、このようにして提供されたＡＰＩ５１に基づきアプリケーション１１が生成されることで、当該アプリケーション１１を、各実施形態及び各実施例として前述したように、外部デバイス３０に対してアクセスさせることが可能となる。
【０２０８】
＜５．ハードウェア構成＞
次に、図１６を参照して、本開示の実施形態に係る外部デバイス３０のハードウェア構成の一例について説明する。図１６は、本開示の各実施形態に係る外部デバイス３０のハードウェア構成の一例を示した図である。
【０２０９】
図１６に示すように、本実施形態に係る外部デバイス３０は、プロセッサ９０１と、メモリ９０３と、ストレージ９０５と、通信デバイス９１１と、バス９１３とを含む。また、外部デバイス３０は、操作デバイス９０７と、報知デバイス９０９とを含んでもよい。
【０２１０】
プロセッサ９０１は、例えばＣＰＵ（Central  Processing  Unit）、ＧＰＵ（Graphics  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）又はＳｏＣ（System  on  Chip）であってよく、情報処理装置１０の様々な処理を実行する。プロセッサ９０１は、例えば、各種演算処理を実行するための電子回路により構成することが可能である。なお、前述した通信制御部３１１、セッション情報生成部３１３、及び処理実行部３１７は、プロセッサ９０１により実現され得る。
【０２１１】
メモリ９０３は、ＲＡＭ（Random  Access  Memory）及びＲＯＭ（Read  Only  Memory）を含み、プロセッサ９０１により実行されるプログラム及びデータを記憶する。ストレージ９０５は、半導体メモリ又はハードディスクなどの記憶媒体を含み得る。例えば、前述したセッション情報記憶部３１５は、メモリ９０３及びストレージ９０５の少なくともいずれか、もしくは、双方の組み合わせにより構成され得る
【０２１２】
操作デバイス９０７は、ユーザが所望の操作を行うための入力信号を生成する機能を有する。操作デバイス９０７は、例えばボタン及びスイッチなどユーザが情報を入力するための入力部と、ユーザによる入力に基づいて入力信号を生成し、プロセッサ９０１に供給する入力制御回路などから構成されてよい。
【０２１３】
報知デバイス９０９は、出力デバイスの一例であり、例えば、液晶ディスプレイ（ＬＣＤ：Liquid  Crystal  Display）装置、有機ＥＬ（ＯＬＥＤ：Organic  Light  Emitting  Diode）ディスプレイなどのデバイスであってよい。この場合には、報知デバイス９０９は、画面を表示することにより、ユーザに対して所定の情報を報知することができる。
【０２１４】
また、他の一例として、報知デバイス９０９は、ＬＥＤ（Light  Emitting  Diode）のように、点灯又は点滅のパターンにより、所定の情報をユーザに報知するデバイスであってもよい。また、報知デバイス９０９は、スピーカ等のように、所定の音響信号を出力することで、所定の情報をユーザに報知するデバイスであってもよい。
【０２１５】
なお、前述した報知部３５は、当該報知デバイス９０９により構成され得る。
【０２１６】
通信デバイス９１１は、情報処理装置１０が備える通信手段であり、ネットワークを介して外部装置と通信する。通信デバイス９１１は、有線または無線用の通信インタフェースである。通信デバイス９１１を、無線通信インタフェースとして構成する場合には、当該通信デバイス９１１は、通信アンテナ、ＲＦ（Radio  Frequency）回路、ベースバンドプロセッサなどを含んでもよい。
【０２１７】
通信デバイス９１１は、外部装置から受信した信号に各種の信号処理を行う機能を有し、受信したアナログ信号から生成したデジタル信号をプロセッサ９０１に供給することが可能である。前述した通信制御部３１１は、当該通信デバイス９１１により構成され得る。
【０２１８】
バス９１３は、プロセッサ９０１、メモリ９０３、ストレージ９０５、操作デバイス９０７、報知デバイス９０９、及び通信デバイス９１１を相互に接続する。バス９１３は、複数の種類のバスを含んでもよい。
【０２１９】
また、コンピュータに内蔵されるプロセッサ、メモリ、及びストレージなどのハードウェアを、上記した情報処理装置１０が有する構成と同等の機能を発揮させるためのプログラムも作成可能である。また、当該プログラムを記録した、コンピュータに読み取り可能な記憶媒体も提供され得る。
【０２２０】
＜６．まとめ＞
以上、説明したように、本開示の各実施形態に係る情報処理システムでは、情報処理装置１０上で動作するアプリケーション１１と外部デバイス３０とは、互いに通信データの送受信を行う場合に、互いに共通のセッションＩＤ１及びＩＤ２を事前に保持する。そのうえで、当該アプリケーション１１は、外部デバイス３０に通信データを送信する際に、当該通信データに対して、事前に保持しているセッションＩＤ１及びＩＤ２のうち、セッションＩＤ１を関連付ける。また、外部デバイス３０は、アプリケーション１１に通信データを送信する際に、当該通信データに対して、事前に保持しているセッションＩＤ１及びＩＤ２のうち、セッションＩＤ２を関連付ける。
【０２２１】
このような構成により、外部デバイス３０は、受信した通信データに関連付けられたセッションＩＤ１に基づき、当該通信データの送信元が、自身が保持するセッションＩＤ１と同じセッションＩＤを保持するアプリケーション１１か否かを認識できる。そのため、本開示の各実施形態に係る外部デバイス３０は、自身が保持するセッションＩＤ１と同じセッションＩＤを保持するアプリケーション１１から送信された通信データのみを、排他的に処理対象とすることが可能となる。
【０２２２】
また、アプリケーション１１は、受信した通信データに関連付けられたセッションＩＤ２に基づき、当該通信データの宛先が自身か否かを認識できる。
【０２２３】
なお、アプリケーション１１と外部デバイス３０とは、前述の通り互いに異なるセッションＩＤ（即ちセッションＩＤ１及びＩＤ２）を関連付けて通信データを送信する。具体的な一例として外部デバイス３０からアプリケーション１１ａに送信された通信データに関連付けられたセッションＩＤは、当該アプリケーション１１ａが外部デバイス３０に通信データを送信する際に、当該通信データに関連付けるセッションＩＤとは異なる。そのため、アプリケーション１１ａ宛てに送信された通信データを他のアプリケーション１１ｚが受信したとしても、当該アプリケーション１１ｚは、当該通信データに関連付けられたセッションＩＤに基づきアプリケーション１１ａになりすますことは困難である。
【０２２４】
以上のような構成により、本開示の各実施形態に係る情報処理システムでは、１対１での通信を想定した規格に基づく通信環境下においても、外部デバイス３０は、複数のアプリケーション１１それぞれからのアクセスを排他的に制御することが可能となる。
【０２２５】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０２２６】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
少なくとも一部に乱数化された情報を含む識別情報を外部装置から取得する取得部と、
外部装置から送信された通信データのうち、取得された前記識別情報に関連付けられた前記通信データのみを排他的に処理対象とする制御部と、
を備える、情報処理装置。
（２）
前記制御部は、前記識別情報の取得元である前記外部装置からの指示に基づき、取得された前記識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を終了する、前記（１）に記載の情報処理装置。
（３）
前記制御部は、当該識別情報に関連付けられた前記通信データに対して、前記排他制御の継続を示す制御情報が関連付けられている場合に、当該排他制御を継続する、前記（２）に記載の情報処理装置。
（４）
前記制御部は、取得された前記識別情報に関連付けられた前記通信データを前記外部装置から受信しない期間が、あらかじめ決められた期間以上となった場合に、当該識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を終了する、前記（１）に記載の情報処理装置。
（５）
前記制御部は、取得された前記識別情報に関連付けられた前記通信データに基づく処理の完了後に、当該識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を終了する、前記（１）に記載の情報処理装置。
（６）
前記制御部は、前記識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御の完了後に、当該識別情報を破棄する、前記（１）〜（５）のいずれか一項に記載の情報処理装置。
（７）
前記制御部は、前記識別情報の取得元である前記外部装置からの指示に基づき、取得された前記識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を開始する、前記（１）〜（６）のいずれか一項に記載の情報処理装置。
（８）
前記制御部は、取得された前記識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御中に、当該識別情報に関連付けられていない通信データが取得された場合に、当該通信データを破棄する、前記（１）〜（７）のいずれか一項に記載の情報処理装置。
（９）
前記制御部は、取得された前記識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御中に、当該識別情報とは異なる他の識別情報が取得された場合に、当該他の識別情報を破棄する、前記（１）〜（８）のいずれか一項に記載の情報処理装置。
（１０）
前記取得部は、前記識別情報として前記外部装置から取得した第１の識別情報とは異なる第２の識別情報を取得し、
前記制御部は、前記第１の識別情報に関連付けられた前記通信データに基づく処理の結果を、前記第２の識別情報に関連付けて、当該外部装置に送信する、前記（１）〜（９）のいずれか一項に記載の情報処理装置。
（１１）
前記第１の識別情報に基づき前記第２の識別情報を生成する生成部を備え、
前記取得部は、前記生成部により生成された当該第２の識別情報を取得する、前記（１０）に記載の情報処理装置。
（１２）
前記取得部は、前記第１の識別情報の取得元である前記外部装置から、前記第２の識別情報を取得する、前記（１０）に記載の情報処理装置。
（１３）
前記制御部は、取得された前記第１の識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御中に、当該第１の識別情報とは異なる他の第１の識別情報に関連付けられていない通信データが取得された場合に、当該通信データを処理対象としないことを示す情報を、当該他の第１の識別情報に対応する前記第２の識別情報と関連付けて、当該通信データの送信元である前記外部装置に通知する、前記（１０）〜（１２）のいずれか一項に記載の情報処理装置。
（１４）
前記取得部は、前記識別情報に関連付けられた認証情報を前記外部装置から取得し、
前記制御部は、当該認証情報に基づく認証に成功した場合に、当該識別情報が関連付けられた前記通信データの送信元を、前記認証が行われた送信元として認識する、前記（１）〜（１３）のいずれか一項に記載の情報処理装置。
（１５）
前記取得部は、前記識別情報に関連付けられた前記通信データを複数の部分データに分けて当該部分データごとに取得し、
前記制御部は、取得された前記識別情報に関連付けられた前記通信データのみを排他的に処理対象とする排他制御を、少なくとも一連の前記部分データの取得が完了するまで継続する、前記（１）〜（１４）のいずれか一項に記載の情報処理装置。
（１６）
前記制御部は、一連の前記部分データの取得の完了を、当該部分データに関連付けられた、当該部分データを識別するための制御情報に基づき認識する、前記（１５）に記載の情報処理装置。
（１７）
前記取得部は、前記部分データに関連付けられた前記通信データを識別するための制御情報を取得し、
前記制御部は、取得された前記通信データを識別するための制御情報に基づき、前記部分データが、当該通信データを構成する部分データであることを認識する、前記（１５）または（１６）に記載の情報処理装置。
（１８）
取得された前記識別情報に関連付けられた前記通信データに基づく処理結果を報知する報知部を備えた、前記（１）〜（１７）のいずれか一項に記載の情報処理装置。
（１９）
少なくとも一部に乱数化された情報を含む識別情報を生成する生成部と、
生成された前記識別情報を外部装置に通知し、通信データに対して当該識別情報を関連付けて、当該通信データを当該外部装置に送信する制御部と、
を備える、情報処理装置。
（２０）
前記生成部は、前記識別情報として生成した第１の識別情報を基に、当該第１の識別情報とは異なる第２の識別情報を生成し、
前記制御部は、生成された前記第１の識別情報を前記外部装置に通知し、前記通信データに対して前記第１の識別情報を関連付けて、当該通信データを当該外部装置に送信し、前記外部装置から送信される応答のうち、前記第２の識別情報が関連付けられた前記応答のみを処理対象とする、前記（１９）に記載の情報処理装置。
（２１）
前記生成部は、前記識別情報として、互いに異なる第１の識別情報と第２の識別情報とを生成し、
前記制御部は、生成された前記第１の識別情報及び前記第２の識別情報を前記外部装置に通知し、前記通信データに対して前記第１の識別情報を関連付けて、当該通信データを当該外部装置に送信し、前記外部装置から送信される応答のうち、前記第２の識別情報が関連付けられた前記応答のみを処理対象とする、前記（１９）に記載の情報処理装置。
（２２）
少なくとも一部に乱数化された情報を含む識別情報を外部装置から取得することと、
プロセッサが、外部装置から送信された通信データのうち、取得された前記識別情報に関連付けられた前記通信データのみを排他的に処理対象とすることと、
を含む、情報処理方法。
（２３）
少なくとも一部に乱数化された情報を含む識別情報を生成することと、
プロセッサが、生成された前記識別情報を外部装置に通知し、通信データに対して当該識別情報を関連付けて、当該通信データを当該外部装置に送信することと、
を含む、情報処理方法。
（２４）
コンピュータに、
少なくとも一部に乱数化された情報を含む識別情報を外部装置から取得することと、
外部装置から送信された通信データのうち、取得された前記識別情報に関連付けられた前記通信データのみを排他的に処理対象とすることと、
を実行させる、プログラム。
（２５）
コンピュータに、
少なくとも一部に乱数化された情報を含む識別情報を生成することと、
生成された前記識別情報を外部装置に通知し、通信データに対して当該識別情報を関連付けて、当該通信データを当該外部装置に送信することと、
を実行させる、プログラム。
【符号の説明】
【０２２７】
１０    情報処理装置
１１、１１ａ〜１１ｃ  アプリケーション
１１１  通信制御部
１１３  セッション情報生成部
１１５  セッション情報記憶部
１１７  処理実行部
３０、３０ａ  外部デバイス
３１    通信部
３１１  通信制御部
３１３  セッション情報生成部
３１５  セッション情報記憶部
３１７  処理実行部
３３    データ記憶部
３５    報知部
【図１】
2019071083.tif 000003
【図２】
2019071083.tif 000004
【図３】
2019071083.tif 000005
【図４】
2019071083.tif 000006
【図５】
2019071083.tif 000007
【図６】
2019071083.tif 000008
【図７】
2019071083.tif 000009
【図８】
2019071083.tif 000010
【図９】
2019071083.tif 000011
【図１０】
2019071083.tif 000012
【図１１】
2019071083.tif 000013
【図１２】
2019071083.tif 000014
【図１３】
2019071083.tif 000015
【図１４】
2019071083.tif 000016
【図１５】
2019071083.tif 000017
【図１６】
2019071083.tif 000018