JP2018005744A - メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム - Google Patents

メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム Download PDF

Info

Publication number
JP2018005744A
JP2018005744A JP2016134562A JP2016134562A JP2018005744A JP 2018005744 A JP2018005744 A JP 2018005744A JP 2016134562 A JP2016134562 A JP 2016134562A JP 2016134562 A JP2016134562 A JP 2016134562A JP 2018005744 A JP2018005744 A JP 2018005744A
Authority
JP
Japan
Prior art keywords
message
authentication
storage area
information
stored
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016134562A
Other languages
English (en)
Inventor
磨 宮本
Osamu Miyamoto
磨 宮本
智弘 川崎
Toshihiro Kawasaki
智弘 川崎
雄平 渋川
Yuhei SHIBUKAWA
雄平 渋川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016134562A priority Critical patent/JP2018005744A/ja
Priority to US15/603,775 priority patent/US20180013741A1/en
Publication of JP2018005744A publication Critical patent/JP2018005744A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】メッセージキューシステムの処理性能を向上させる。【解決手段】メッセージ処理装置は、メッセージと、ユーザを認証するための認証情報と、記憶エリアを識別するための識別情報とを含むメッセージの送信指示を情報処理装置から受信すると、識別情報で識別される記憶エリアにメッセージを記録させる指示を出力するとともに、認証情報を用いて認証を依頼し、依頼に対する応答結果に基づいて、ユーザが記憶エリアにメッセージを記憶する権限を有する場合、記憶エリアに記憶されたメッセージに関連付けて、記憶エリアに認証済みを示す情報を記憶させる第2の指示を出力する、ことを含む。【選択図】図7

Description

本発明は、メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラムに関する。
昨今、インターネット上で仮想マシンやミドルウェアを提供するクラウドサービスが利用され、ユーザは独自にサーバを用意しなくとも、手軽にサービスを受けることが可能となっている。クラウド上では、お互いに関係のない複数のユーザのデータが取り扱われるため、ユーザのデータの秘匿性を確保することが重要である。そのため、例えば、ユーザの要求に対して認証を行うことで秘匿性を確保することが行われている。
また、この様なクラウド上で動作するシステムの1つに、例えば、メッセージキューを提供するマルチテナント型のメッセージキューシステムがある。ユーザはクラウド上のメッセージキューに対して、キューの操作のためのAPIを実行することで、メッセージキューシステムを利用することができる。なお、キューの操作のためのAPIは、例えば、キューの作成、キューの削除、メッセージの送信、及びメッセージの受信などを含んでよい。
特開2011−170766号公報
例えば、メッセージキューシステムが異なるサーバ間での情報のやり取りに利用される場合など、メッセージキューシステムに非常に高い処理性能(例えば、数ミリ秒〜数十ミリ秒での処理)が望まれることがある。しかしながら、メッセージキューシステムにおいて、例えば、認証処理がボトルネックとなり、十分に処理性能を高められないことがある。
1つの側面では、本発明は、メッセージキューの処理性能を向上させることを目的とする。
本発明の一つの態様のコンピュータが実行するメッセージ処理方法は、メッセージと、ユーザを認証するための認証情報と、記憶エリアを識別するための識別情報とを含むメッセージの送信指示を情報処理装置から受信すると、識別情報で識別される記憶エリアにメッセージを記録させる指示を出力するとともに、認証情報を用いて認証を依頼し、依頼に対する応答結果に基づいて、ユーザが記憶エリアにメッセージを記憶する権限を有する場合、記憶エリアに記憶されたメッセージに関連付けて、記憶エリアに認証済みを示す情報を記憶させる第2の指示を出力する、ことを含む。
メッセージキューシステムの処理性能を向上させることができる。
例示的なメッセージキューシステムの構成を例示する図である。 メッセージ送信における認証処理及びキュー操作処理の実行タイミングの例を示す図である。 いくつかの実施形態に係るメッセージ処理装置の機能ブロック構成を例示する図である。 実施形態に係るメッセージ送信時のキュー操作を例示する図である。 実施形態に係るメッセージ送信処理における認証処理を説明する図である。 メッセージ受信における認証処理及びキュー操作処理の実行タイミングの例を示す図である。 実施形態に係るメッセージ受信時のキュー操作を例示する図である。 受信時のキュー操作を更に説明する図である。 実施形態に係るメッセージ受信処理における認証処理を説明する図である。 認証失敗時の処理を例示する図である。 実施形態に係るメッセージキューを例示する図である。 実施形態に係るキャッシュを例示する図である。 実施形態に係るメッセージ送信処理の動作フローを例示する図である。 実施形態における送信時のキュー操作処理を例示する図である。 実施形態に係るメッセージ受信処理の動作フローを例示する図である。 実施形態における受信時のキュー操作処理を例示する図である。 第2の実施形態に係るメッセージキューシステムの構成を例示する図である。 第2の実施形態に係るメッセージ処理装置の機能ブロック構成を例示する図である。 第2の実施形態に係るメッセージ送信処理の動作フローを例示する図である。 第2の実施形態における送信時のキュー操作処理を例示する図である。 第2の実施形態に係るメッセージ受信処理の動作フローを例示する図である。 第2の実施形態における受信時のキュー操作処理を例示する図である。 記憶エリア情報を例示する図である。 実施形態に係るメッセージ処理装置を実現するためのハードウェア構成を例示する図である。
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
図1は、例示的なメッセージキューシステム100の構成を例示する図である。メッセージキューシステム100は、例えば、メッセージ処理装置101、情報処理装置102、認証サーバ103、及びデータサーバ104を含む。メッセージ処理装置101は、情報処理装置102、認証サーバ103、及びデータサーバ104と、通信可能に接続されてよい。メッセージ処理装置101は、例えば、接続した複数の情報処理装置102からメッセージキューの操作指示を受け付ける。例えば、情報処理装置102は、メッセージ処理装置101においてメッセージキューの操作に関するAPI(Application Programming Interface)をHTTPプロトコルで呼び出すことで、メッセージ処理装置101にメッセージキューの操作指示を出力する。なお、メッセージキューは、例えば、ユーザが送受信するメッセージを格納するために用いる記憶エリアの一例である。また、以下では、メッセージキューを単にキューと呼ぶことがある。
メッセージ処理装置101は、例えば、メッセージキューの操作指示の入力を受け付けると、情報処理装置102を用いて操作指示を入力してきたユーザの認証を認証サーバ103に依頼し、ユーザを認証する。また、メッセージ処理装置101は、例えば、メッセージキューの操作指示に従って、操作指示を通知してきたユーザのメッセージキューをデータサーバ104において操作する。なお、メッセージキューシステム100は、複数のデータサーバ104を含んでいてよく、その場合、そのうちの1台が管理サーバとして動作してよい。そして、メッセージ処理装置101は、まず、管理サーバに、どこのデータサーバに操作対象のメッセージキューが登録されているのかを問い合わせて教えてもらってよい。次に、メッセージ処理装置101は、その操作対象のデータサーバ104にメッセージキューの操作を依頼してメッセージキューを操作してよい。それにより、メッセージキューシステム100において、複数の情報処理装置102は、例えば、メッセージ処理装置101を介してメッセージをやり取りすることができる。
そして、この様にメッセージキューシステム100が、例えば、異なる情報処理装置102間でのメッセージのやり取りに利用される場合、メッセージキューシステム100には非常に速い処理速度(例えば、数ミリ秒〜数十ミリ秒での処理)が望まれることがある。しかしながら、一方で、お互いに関係のない複数のユーザのデータがメッセージキューシステム100で取り扱われるため、ユーザのデータの秘匿性を確保することも重要である。そのため、認証処理が行われることがあるが、例えば、メッセージキューシステム100において、認証処理の完了を待ってからメッセージキューを処理した場合、認証処理がボトルネックとなり、十分に処理速度を高められないことがある。
図2は、メッセージ送信における認証処理及びキュー操作処理の実行タイミングを例示する図である。図2(a)は、例示的な認証処理及びキュー操作処理の実行タイミングを示しており、メッセージ処理装置101はAPIを受け付けると、認証処理を動作させて、認証が成功した場合、APIに応じたキューの操作を行って、APIを返却している。そのため、まず認証処理を完了して、次にキューの操作が完了するまで、APIが返却されず、時間がかかっている。そこで、以下で述べる実施形態では、メッセージ処理装置101は、認証の完了を待たずに、認証処理と並列して、APIに応じたキューの操作を行う。例えば、図2(b)は、メッセージ送信における実施形態に係る認証処理及びキュー操作処理の実行タイミングを例示する図である。図2(b)では、メッセージ処理装置101は、認証の完了を待たずに、認証処理と並列して、APIに応じたキューの操作を開始している。また、メッセージ処理装置101は、認証の完了を待たずにAPIを返却している。そのため、APIの処理時間を短縮することができ、メッセージキューシステムの処理性能を向上させることができる。以下、実施形態を更に詳細に説明する。
<実施形態>
図3は、いくつかの実施形態に係るメッセージ処理装置101の機能ブロック構成を例示する図である。メッセージ処理装置101は、例えば、制御部301、記憶部302、及び通信部303を含んでいる。制御部301は、例えば、操作部311、及び認証部312などとして動作する。また、操作部311は、例えば、依頼部321、出力部322、判定部323、及び取得部324を含む。メッセージ処理装置101の記憶部302は、例えば、後述するキャッシュ1200などの情報を記憶している。通信部303は、例えば、制御部301の指示に従って、情報処理装置102、認証サーバ103、及びデータサーバ104と通信する。これらの各部の詳細及び記憶部302に格納されている情報の詳細については後述する。
続いて、メッセージ処理装置101が実行するメッセージの送信処理及び受信処理を説明する。なお、例えば、送信処理は、情報処理装置102から受信したメッセージをメッセージキューに格納する処理であり、受信処理は、メッセージキューから取得したメッセージを情報処理装置102に提供する処理である。以下では、まずメッセージの送信処理について説明する。
<メッセージ送信>
[メッセージ送信時のキュー操作]
図4は、実施形態に係るメッセージ送信時のキュー操作を例示する図である。例えば、メッセージキューへのメッセージの送信を指示する送信指示であるメッセージ送信APIを、ユーザが情報処理装置102を用いてHTTPプロトコルで呼び出したとする。すると、呼び出されたAPIはメッセージ処理装置101の操作部311で受け付けられる(図4の(1))。なお、メッセージ送信APIには、ユーザの認証に用いるためのユーザ固有の認証トークンが含まれていてよい。認証トークンは、例えば、ユーザの認証に用いるための認証情報の一例である。認証トークンは、例えば、認証対象のユーザを示す鍵であってよい。そして、メッセージ処理装置101の操作部311は、受け付けたAPIが、どのようなAPIであり、どのキューに対して発行されたか解釈する(図4の(2))。ここでは、操作部311は、メッセージ送信APIであると判定したものとする。
続いて、操作部311は、メッセージを送信してきた情報処理装置102のユーザの認証を要求するメッセージ送信用の認証要求を認証部312に通知する(図4の(3))。この時、操作部311は、認証トークン、メッセージに紐付く固有の情報であるユニークID(Identifier)、メッセージの格納先のメッセージキューを識別するための識別情報を認証部312に渡す。また、操作部311は、認証の結果を待たずに、実行されたメッセージ送信APIの正当性を検証する(図4の(4))。例えば、操作部311は、APIに設定されたパラメータが正しいか、及びAPIで伝送されるデータの形式が誤っていないかなどを検証する。
続いて、操作部311は、メッセージ送信APIの操作対象となるメッセージキューが、どのデータサーバ104のどの領域に存在するかを確認する(図4の(5))。例えば、操作部311は、複数のデータサーバ104を管理する管理サーバに、操作対象となるメッセージキューを、どのデータサーバ104が保持しているか、及びそのデータサーバ104のどの領域にメッセージキューが存在するかを問い合わせる。それにより、操作部311は、操作対象のメッセージキューの所在を確認する。そして、操作部311は、特定されたメッセージキューにメッセージを格納するようにデータサーバ104に指示する(図4の(6))。操作部311は、メッセージ送信APIの実行が完了したことを示す実行結果をユーザの情報処理装置102に返却する(図4の(7))。このように、操作部311は、認証結果を待たずに、メッセージをメッセージキューに格納し、また、API実行の実行結果を返却するため、メッセージキューシステム100のメッセージ送信にかかる処理時間を短縮することができる。
[メッセージ送信における認証処理]
続いて、メッセージ送信における認証処理を説明する。図5は、実施形態に係るメッセージ送信における認証処理を説明する図である。認証処理は、例えば、図4の(3)において、認証部312が、操作部311からメッセージ送信用の認証要求を受信すると開始してよい。
認証部312は、操作部311からメッセージ送信用の認証要求を受け付けると(図5の(1))、操作部311から受け取った認証トークンが記憶部302のキャッシュに格納されているか確認する(図5の(2))。キャッシュには、後述するように、過去に不正と判定された認証トークンが格納されていてよい。例えば、認証対象の認証トークンがキャッシュに格納されている場合、認証部312は、操作部311に認証拒否の返答を即時行い、認証要求をキャンセルする。一方、認証対象の認証トークンがキャッシュに格納されていなかった場合は、認証部312は、認証サーバ103に認証の依頼を行い、認証を継続する(図5(3))。
認証サーバ103からの認証結果が、認証成功である場合、認証部312は、キューに格納された認証対象のメッセージに関連付けて認証済みのマークを行うようにデータサーバ104に指示する(図5の(4))。なお、認証結果が認証成功である場合、認証結果には、認証トークンと対応するユーザを示す情報が含まれていてよい。一方、認証サーバ103からの認証結果が、認証失敗である(即ち、不正な認証トークンであった)場合、認証部312は、メッセージキューに格納した認証対象のメッセージを削除するようにデータサーバ104に指示する(図5の(4’))。そして、認証部312は、認証に失敗した認証トークンを不正な認証トークンとしてキャッシュする(図5の(5’))。
この様に、認証が成功すれば、メッセージキューのメッセージに関連付けて認証済みのマークが付される。また、認証に失敗すると、操作対象のメッセージはメッセージキューから削除される。そのため、例えば、メッセージの通知先で受信の際に、認証済みのマークを確認してからメッセージを受信することで、不正なメッセージが、メッセージの通知先で受信されることを抑制することができる。この様に、実施形態によれば、認証結果を待たずに、メッセージをメッセージキューに格納したとしても、メッセージキューの秘匿性を確保することができる。
<メッセージ受信>
続いて、メッセージの受信処理について説明する。図6は、メッセージ受信における認証処理及びキュー操作処理の実行タイミングの例を示す図である。図6(a)は、例示的な認証処理及びキュー操作処理の実行タイミングを示している。そして、図6(a)において、メッセージ処理装置101はメッセージ受信APIを受け付けると、認証処理を動作させて、認証が成功した場合、メッセージ受信APIに応じたキューの操作を行って、APIを返却している。そのため、まず認証処理を完了させて、次にキューの操作の実行を完了させた後まで、APIが返却されず、時間がかかってしまう。そこで、実施形態に係るメッセージ処理装置101は、認証の完了を待たずに、メッセージ受信APIに応じたキューの操作を並行して開始する。図6(b)は、実施形態に係る認証処理及びキュー操作処理の実行タイミングを示す図である。図6(b)に示すように、実施形態に係るメッセージ処理装置101は、認証の完了を待たずにキュー操作を並行して開始している。そのため、メッセージの受信処理においても、処理時間を短縮することができ、メッセージキューシステム100の処理性能を向上させることができる。なお、メッセージ受信では、例えば、キュー操作と認証との双方が完了してから、APIの返却が行われてよい。また、認証の完了を待っている間に、メッセージ送信APIによりメッセージキューに登録されているメッセージに関連付けて認証済みのマークが新たに付される可能性がある。そのため、認証の待ち時間中に、メッセージキューに登録されているメッセージの認証済みマークを確認する処理が実行されてもよい(図6(b)の点線矢印)。
[メッセージ受信時のキュー操作]
図7は、実施形態に係るメッセージ受信時のキュー操作を例示する図である。図7において、(1)〜(4)までの処理では、例えば、図4の(1)〜(4)までと類似する処理が実行されてよい。ただし、図7(1)では、操作部311は、メッセージキューからメッセージを受信するための受信指示であるメッセージ受信APIを受信する。メッセージ受信APIには、キューの操作を実行するユーザの情報処理装置102を表す認証トークンが含まれていてよい。そして、図7(3)では、認証トークンを含むメッセージ受信用の認証要求を認証部312に通知する。続いて、操作部311は、認証の結果を待たずに図7(4)の処理を実行し、メッセージ受信APIの正当性を検証する。
図7(5)において、操作部311は、APIの処理対象となるメッセージキューが、どのデータサーバ104のどの領域に存在するかを確認する。例えば、操作部311は、管理サーバに問い合わせることでメッセージキューの所在を確認してよい。図7(6)において操作部311は、メッセージキューの情報を取得し、メッセージキューの更新内容を決定する。例えば、操作部311は、どのメッセージを受信し、メッセージキューのどのメッセージをどんな値に書き換えるかを決定してよい。また、操作部311は、既に内容を登録可能な情報をAPI実行結果に設定し、API実行結果の返却の準備をする。例えば、操作部311は、受け付けたメッセージ受信APIのユニークIDや、受信時刻などの情報をAPI実行結果のベース(枠組み)に設定してよい。
図7(7)において、操作部311は、認証部312に認証の確認要求を出力して認証結果を取得し、認証結果に基づいて、ユーザがメッセージ受信APIで処理対象となっているメッセージキューの操作権限を有するか否かを判定する。そして、ユーザがメッセージ受信APIで処理対象となっているメッセージキューの操作権限を有することが保証された場合、図7(8)において、操作部311は、操作対象のメッセージキューからメッセージを取得して、メッセージキューのデータを更新する。なお、メッセージキューのデータを更新では、操作部311は、例えば、メッセージを削除する。また、図7(8)では、操作部311は、認証済みマークの付いたメッセージのみを取得対象とする。図7(9)において、操作部311は、取得したメッセージをAPI実行結果のベースに埋め込み、ユーザにAPI実行結果を返却する。
図8は、以上で述べた図7(5)〜図7(8)までの処理を、更に説明する図である。図8(5)において、操作部311は、APIの処理対象となるメッセージキューが、どのデータサーバ104のどの領域に存在するかを確認する。図8(6)において操作部311がメッセージキューの情報を取得すると、図8(7)において操作部311は、認証部312に認証の確認要求を出力する。そして、操作部311は、確認要求の応答から認証結果を確認し、ユーザがメッセージ受信APIによる操作対象のメッセージキューの操作権限を有するか否かを判定する。そして、ユーザがメッセージ受信APIによる操作対象のメッセージキューの操作権限を有する場合、操作部311は、メッセージキューからメッセージを取得する(図8(8))。ここで、操作部311によるキュー操作処理よりも認証部312による認証処理の方に時間がかかる場合があり、その場合、認証部312による認証の完了待ちとなることがある。この場合、操作部311は、認証部312による認証を待つ間、メッセージ受信APIによる操作対象のメッセージキューに登録されているメッセージの認証済みマークを確認する処理を実行して、最新のメッセージの認証完了状況を把握してよい。これにより、図8(5)〜図8(7)の処理の間に認証済みとなったメッセージについても、操作部311は、メッセージ取得(図8(8))において取得することができる。
以上で述べた様に、実施形態に係るメッセージ受信処理によれば、認証処理とキュー操作処理とが並行して実施されるため、処理時間を短縮することができ、メッセージキューシステム100の処理性能を向上させることができる。また、操作部311は、認証が完了しなければ、キューからメッセージを取り出さないため、メッセージキューの秘匿性はメッセージ受信においても確保される。なお、図8(7)において認証部312による認証結果が認証失敗の場合、認証に失敗したことを示すAPI実行結果を情報処理装置102に返却する。また、例えば、メッセージキューに、認証済みマークの付されたメッセージが無い場合、操作部311は、メッセージがないことを示すAPI実行結果を情報処理装置102に返却する。
[メッセージ受信における認証処理]
図9は、実施形態に係るメッセージ受信における認証処理を説明する図である。認証処理は、例えば、図7の(3)において、認証部312が、操作部311からメッセージ受信用の認証要求を受信すると開始してよい。
認証部312は、操作部311からメッセージ受信用の認証要求を受け付けると(図9(1))、操作部311から受け取った認証トークンが記憶部302のキャッシュに格納されているか確認する(図9(2))。キャッシュには、過去に不正と判定された認証トークンが格納されていてよく、操作部311は、例えば、認証対象の認証トークンがキャッシュに格納されている場合、操作部311に認証拒否の返答を即時行い、認証要求をキャンセルする。一方、認証対象の認証トークンがキャッシュに格納されていなかった場合は、認証サーバ103に認証の依頼を行い、認証を継続する(図9(3))。
続いて、認証部312は、操作部311から認証の確認要求を受け付けると(図9(4−1))、認証の結果を操作部311に返却する(図9(4−2))。なお、認証サーバ103からの認証結果が認証失敗である場合(不正な認証トークンであった)、認証部312は、認証できなかった認証トークンを不正なトークンとしてキャッシュに格納する(図9(4’))。
以上で述べた様に、ユーザの認証に成功し、且つ、メッセージキューのメッセージに認証済みのマークが付されている場合に、メッセージをユーザに返却するので、メッセージキューの秘匿性を確保することができる。また、メッセージの取得と、認証とが並行して行われるため、メッセージの受信処理にかかる時間を短縮することができる。
<認証失敗時の処理>
図10は、認証失敗時の処理を例示する図である。なお、図10の処理は、メッセージの送信と受信の双方に適用されてよい。例えば、ユーザの情報処理装置102が、ユーザのメッセージキューを操作するためのAPIを実行すると、実行したAPIはメッセージ処理装置101の操作部311で受け付けられる(図10の(1))。そして、メッセージ処理装置101の操作部311は、受け付けたAPIが、どのようなAPIであり、どのメッセージキューに対して発行されたか解釈する(図10の(2))。
続いて、操作部311は、認証部312に対してAPIを送信してきた情報処理装置102の認証を要求する(図10の(3))。そして、操作部311が、認証部312から認証が失敗したことを示す通知を受けたとする(図10の(4))。この場合に、操作部311は、キュー操作を依頼してきたユーザの情報処理装置102に認証が失敗したことを示すAPI実行結果を返却する。
続いて、以上で述べた、メッセージ送信処理とメッセージ受信処理のそれぞれについて動作フローを説明する。
図11は、実施形態に係るメッセージキュー1100を例示する図である。メッセージキュー1100は、例えば、データサーバ104の記憶装置に記憶されていてよい。メッセージキュー1100には、例えば、ユニークIDと、メッセージと、メッセージに対する認証状況とを含むエントリが登録されている。ユニークIDは、例えば、エントリのメッセージをメッセージキュー1100に登録する際に用いられたメッセージ送信APIのユニークIDである。メッセージは、例えば、メッセージ送信APIで送信されてきたメッセージである。また、認証状況は、例えば、エントリで対応づけられるメッセージが認証済みか否かを示す情報であってよい。図11の例では、エントリで対応づけられるメッセージが認証済みである場合、認証状況に「認証済み」が登録されており、認証済みでない場合には、未認証であることを表す「‐」が登録されている。
図12は、不正な認証トークンを格納するキャッシュ1200を例示する図である。キャッシュ1200は、例えば、メッセージ処理装置101の記憶部302に記憶されていてよい。図12に示すように、キャッシュ1200には、例えば、不正な認証トークンと判定された認証トークンが登録されている。
<メッセージ送信の動作フロー>
図13は、実施形態に係るメッセージ送信処理の動作フローを例示する図である。図13のメッセージ送信処理の動作フローは、メッセージ処理装置101の操作部311が、メッセージ送信APIを受け付けると開始してよい。
ステップ1301において操作部311は、受信したメッセージ送信APIに含まれる認証トークン、メッセージに紐付く固有の情報であるユニークID、メッセージの格納先のキューの識別情報を取得し、認証要求を認証部312に通知する。なお、以降、ステップを“S”と記載し、例えば、S1301と表記する。S1302において認証部312は、認証要求に含まれる認証トークンが、キャッシュ1200に格納されているか否かを判定する。
S1302において認証トークンがキャッシュ1200に格納されている場合(S1302がYES)、フローはS1311に進む。S1311において操作部311は、メッセージ送信APIの実行結果を認証エラーに設定し、フローはS1310に進み、操作部311は、認証エラーに設定したAPI実行結果を、メッセージ送信APIの呼び出し元の情報処理装置102に返却する。
一方、S1302において認証トークンがキャッシュ1200に格納されていない場合(S1302がNO)、操作部311と、認証部312とは並列処理を開始する。まず、認証部312は、S1303において認証処理を開始し、S1304において認証サーバ103に認証依頼を送信する。S1305において認証部312は、認証サーバ103からの応答として受け取った認証結果に基づいて、認証に成功したか否かを判定する。認証に成功した場合(S1305がYES)、フローはS1306に進む。S1306において、認証部312は、メッセージキュー1100において認証対象のメッセージを含むエントリの認証状況を認証済みに変更するようにデータサーバ104に指示を出力し、メッセージに認証済みのマークを行う。S1306の処理が終了すると、認証部312は認証処理を終了する。
また、認証に失敗した場合(S1305がNO)、フローはS1307に進み、認証部312は、メッセージキュー1100において認証対象のメッセージを含むエントリを削除するようにデータサーバ104に指示する。S1308において認証部312は、認証で用いた認証トークンを不正な認証トークンとしてキャッシュ1200に保存し、認証部312は認証処理を終了する。
また、S1303の認証部312の認証処理と並行して、操作部311は、S1309においてメッセージの送信時のキュー操作処理を実行する。送信時のキュー操作処理の詳細は、図14を参照して後述する。S1309のキュー操作処理を完了すると、S1310において操作部311は、メッセージ送信APIのAPI実行結果をメッセージ送信APIの呼び出し元の情報処理装置102に返却する。この場合、メッセージ送信APIのAPI実行結果は、例えば、メッセージキューへのメッセージの登録が完了したことを示す情報を含んでよい。
また、図14は、実施形態における送信時のキュー操作処理を例示する図である。例えば、操作部311は、図13のS1309の処理に進むと、図14のキュー操作処理の実行を開始してよい。
S1401において操作部311は、メッセージ送信APIの正当性を検証する。例えば、操作部311は、メッセージ送信APIに設定されているパラメータが正しいか、及びメッセージ送信APIで伝送されるデータの形式が誤っていないかなどを検証する。そして、S1402において操作部311は、APIの検証の結果、メッセージ送信APIに誤りがあるか否かを判定する。APIの検証の結果、誤りがあれば(S1402がYES)、フローはS1405に進む。S1405において操作部311は、メッセージ送信APIのAPI実行結果をエラーに設定し、本動作フローは終了し、図13のS1310に進む。
一方、APIの検証の結果、メッセージ送信APIに誤りがなければ(S1402がNO)、フローはS1403に進む。S1403において操作部311は、メッセージ送信APIで操作対象に指定されているメッセージキューの所在を確認する。例えば、操作部311は、データサーバ104を管理する管理サーバに問い合わせることで、メッセージキューの所在を確認してよい。S1404において操作部311は、確認の結果に基づいて、APIで操作対象に指定されているメッセージキューが未登録か否かを判定する。APIで操作対象に指定されているメッセージキューが未登録であり、いずれのデータサーバ104にも存在しない場合(S1404がYES)、フローはS1405に進む。
一方、APIで操作対象に指定されているメッセージキューがデータサーバ104に登録されている場合(S1404がNO)、フローはS1406に進む。S1406において操作部311は、APIで指定されたメッセージを、操作対象のメッセージキューに格納するようにデータサーバ104に指示を出力して、メッセージキューを更新する。S1407において操作部311は、API実行結果にメッセージキューへのメッセージの格納の成功を示す情報を設定し、本動作フローは終了する。
<メッセージ受信の動作フロー>
続いて、メッセージ受信の動作フローを説明する。図15は、実施形態に係るメッセージ受信処理の動作フローを例示する図である。図15のメッセージ受信処理の動作フローは、メッセージ処理装置101の操作部311が、メッセージ受信APIを受け付けると開始してよい。
S1501においてメッセージ処理装置101の操作部311は、受け付けたメッセージ受信APIに含まれる認証トークン、メッセージの格納先のキューの識別情報を取得し、認証要求を認証部312に通知する。S1502において認証部312は、認証要求に含まれる認証トークンが、キャッシュ1200に格納されているか否かを判定する。
S1502において認証トークンがキャッシュ1200に格納されている場合(S1502がYES)、フローはS1509に進む。S1509において操作部311は、API実行結果を認証エラーに設定し、フローはS1510に進み、認証エラーに設定されたAPI実行結果をAPIの呼び出し元の情報処理装置102に返却する。
一方、S1502において認証トークンがキャッシュ1200に格納されていない場合(S1502がNO)、操作部311と、認証部312とは並列処理を開始する。まず、認証部312は、S1503において認証処理を開始し、S1504において認証サーバ103に認証依頼を送信する。S1505において認証部312は、認証サーバ103から応答として受け取った認証結果に基づいて、認証に成功したか否かを判定する。認証に成功した場合(S1505がYES)、認証部312は認証処理を終了し、操作部311の処理が完了するのを待機する。
また、S1505において認証に失敗した場合(S1505がNO)、フローはS1506に進み、認証部312は、操作部311に強制割り込みの通知を出力して、キュー操作処理を終了させる。S1507において認証部312は、認証に失敗した認証トークンを、不正な認証トークンとしてキャッシュ1200に格納し、認証部312の認証処理は終了し、操作部311の処理が完了するのを待機する。
また、認証部312の認証処理と並行して、操作部311は、S1508においてメッセージの受信時のキュー操作処理を実行する。なお、受信時のキュー操作処理の詳細は、図16を参照して後述する。S1508のキュー操作処理を完了すると、操作部311は、認証部312の認証処理が完了するまで待機する。
そして、操作部311の処理と認証部312の認証処理との双方が完了すると、操作部311は、API実行結果をAPIの呼び出し元の情報処理装置102に返却する。この場合、API実行結果は、例えば、メッセージキューから取得したメッセージを含んでよい。
また、図16は、実施形態における受信時のキュー操作処理を例示する図である。例えば、制御部301は、図15のS1508の処理に進むと、図16のキュー操作処理の実行を開始してよい。
S1601において操作部311は、メッセージ受信APIの正当性を検証する。例えば、操作部311は、メッセージ受信APIに設定されているパラメータが正しいか、及びAPIで伝送されるデータの形式が誤っていないかなどを検証する。そして、S1602において操作部311は、APIに誤りがあるか否かを判定する。APIの検証の結果、APIに誤りがあれば(S1602がYES)、フローはS1605に進む。S1605において操作部311は、API実行結果をエラーに設定し、本動作フローは終了し、図15のS1510に進む。
一方、APIの検証の結果、APIに誤りがなければ(S1602がNO)、フローはS1603に進む。S1603において操作部311は、APIで操作対象に指定されているメッセージキューに登録されているメッセージリストの取得を試みる。なお、メッセージリストには、メッセージのユニークIDと、そのメッセージの認証済みマークの情報が含まれていてよい。S1604において操作部311は、APIで操作対象に指定されているメッセージキュー1100が未登録か否かを判定する。APIで操作対象に指定されているメッセージキュー1100が未登録であり、いずれのデータサーバ104にも存在しない場合(S1604がNO)、フローはS1605に進む。
一方、APIで操作対象に指定されているメッセージキュー1100がデータサーバ104に登録されている場合(S1604がNO)、フローはS1606に進む。S1606において操作部311は、メッセージキュー1100の更新内容を決定する。更新内容の決定では、操作部311は、例えば、メッセージリストの認証済みマークの情報を基に、データサーバ104からメッセージキューのどのメッセージを受信し、メッセージキュー1100をどんな値に書き換えるかを決定してよい。
S1607において操作部311は、API実行結果に既に内容を登録可能な情報を設定し、API実行結果の返却の準備をする。例えば、操作部311は、受け付けたメッセージ受信APIのメッセージに紐付く固有の情報であるユニークIDや、メッセージ受信APIを受け付けた受付時刻などの情報をAPI実行結果に設定してよい。S1608において操作部311は、認証部312に認証の確認要求を通知して、認証結果を確認する。S1610において操作部311は、認証に成功したかを判定する。
S1610においてまだ認証中である場合(S1610が認証中)、操作部311は、メッセージキュー1100のメッセージリストを再度取得して、認証済みマークのあるメッセージを特定し、S1606に戻り、メッセージキューの更新内容を再度決定する。
S1610において認証に失敗した場合(S1610が失敗)、フローはS1611に進み、API実行結果に認証エラーを示す情報を設定する。一方、S1610において認証に成功した場合(S1610が成功)、フローはS1612に進む。
S1612において操作部311は、データサーバ104に、メッセージキュー1100から認証済みマークが付されているメッセージの送付と、送付したメッセージを含むエントリの削除を指示する依頼を出力する。それにより、操作部311は、認証済みマークが付されているメッセージをデータサーバ104から取得し、データサーバ104はメッセージキュー1100を更新する。S1613において操作部311は、API実行結果に、メッセージキュー1100から取得したメッセージを格納し、本動作フローは終了する。
また、例えば、S1601〜S1609までの処理において、操作部311が認証部312からの割り込みを受けた場合、フローはS1614に進み、操作部311は、API実行結果に、認証エラーを設定し、本動作フローは終了する。
以上で述べた様に、実施形態によればメッセージ処理装置101の制御部301は、APIの操作と、認証とを並行して行うため、処理時間を短縮でき、メッセージキューシステム100の処理性能を向上させることができる。
例えば、メッセージ処理装置101の制御部301は、情報処理装置102からメッセージ送信APIを受信した場合、認証の完了を待たずに、メッセージをメッセージキュー1100に登録する依頼を出力し、API実行結果を返却する。この様に、制御部301は、認証の完了を待たずに処理を進めるため、処理時間を短縮することができる。
一方で、メッセージ送信において認証が完了した場合、メッセージ処理装置101の制御部301は、データサーバ104に、メッセージキュー1100において、メッセージ送信APIで登録されたメッセージに認証済みのマークを付与するように依頼する。そのため、メッセージ送信において、メッセージキュー1100の秘匿性を確保することができる。
また、同様に、情報処理装置102からメッセージ受信APIを受信した場合も、制御部301は、メッセージ処理装置101の制御部301は、APIの操作と、認証とを並行して行うため、処理時間を短縮できる。そして、制御部301は、認証を完了させてから、認証結果に応じてAPI実行結果を情報処理装置102に返却する。そして、制御部301は、メッセージの受信する際は、メッセージに認証済みのマークが付与されたメッセージを取得する。そのため、メッセージ受信においても、メッセージキュー1100の秘匿性を確保することができる。
また更に、制御部301は、認証に失敗した場合には、認証に用いた認証トークンをキャッシュ1200に保存しておくため、以降、メッセージ送信及びメッセージ受信において認証エラーを迅速に判定することができる。そして、キャッシュ1200を用いて認証エラーが検出された場合、制御部301は、例えば、図13のS1303以降の処理及び、図15のS1503以降の処理の少なくとも一部を省略可能である。そのため、実施形態によれば、メッセージキューシステム100の処理性能を向上させることができる。
なお、上述のメッセージ送信の動作フローにおいて、例えば、図13のS1304において制御部301は、依頼部321として動作する。また、例えば、図13のS1306において制御部301は、出力部322として動作する。
また、上述のメッセージ受信の動作フローにおいて、例えば、図15のS1505において制御部301は、判定部323として動作する。例えば、図16のS1612において制御部301は、取得部324として動作する。
また、上述の実施形態では、図2に示す様に、認証サーバ103が認証を行い、また、データサーバ104にメッセージキュー1100が記憶されている場合を例示している。しかしながら、実施形態はこれに限定されるものではない。例えば、別の実施形態では、メッセージ処理装置101、認証サーバ103、データサーバ104は、これらを一体型にした装置として実装されてもよい。以下、このような一体型の装置を用いる第2の実施形態を説明する。
図17は、第2の実施形態におけるメッセージキューシステム1700を例示する図である。メッセージキューシステム1700は、メッセージ処理装置101及び情報処理装置102を含む。メッセージ処理装置101は、情報処理装置102と通信可能に接続されてよい。メッセージ処理装置101は、例えば、接続した複数の情報処理装置102からメッセージキューの操作指示を受け付ける。例えば、情報処理装置102は、メッセージ処理装置101においてメッセージキューの操作に関するAPIをHTTPプロトコルで呼び出すことで、メッセージ処理装置101にメッセージキューの操作指示を出力する。
メッセージ処理装置101は、例えば、メッセージキューの操作指示の入力を受け付けると、メッセージキューの操作指示に従って、操作指示を通知してきたユーザのメッセージキューを操作するとともに、操作指示を入力してきたユーザの認証を行う。
図18は、第2の実施形態に係るメッセージ処理装置101のブロック構成を例示する図である。メッセージ処理装置101は、例えば、制御部1801、記憶部1802、通信部1803を含んでいる。制御部1801は、例えば記憶制御部1811、取得部1812、認証部1813などとして動作する。メッセージ処理装置101の記憶部1802は、例えば、メッセージキュー1100、キャッシュ1200、及び後述する記憶エリア情報2300などの情報を記憶している。通信部1803は、例えば、制御部1801の指示に従って、情報処理装置102と通信する。これらの各部の詳細及び記憶部1802に格納されている情報の詳細については後述する。続いて、第2の実施形態に係る処理の動作フローを例示する。
<メッセージ送信の動作フロー>
図19は、実施形態に係るメッセージ送信処理の動作フローを例示する図である。図19のメッセージ送信処理の動作フローは、メッセージ処理装置101の制御部1801が、メッセージ送信APIを受け付けると開始してよい。
S1901において制御部1801は、受信したメッセージ送信APIに含まれる認証トークン、メッセージに紐付く固有の情報であるユニークID、メッセージの格納先のキューの識別情報を取得し、認証要求を認証部1813に通知する。S1902において認証部1813は、認証要求に含まれる認証トークンが、キャッシュ1200に格納されているか否かを判定する。
S1902において認証トークンがキャッシュ1200に格納されている場合(S1902がYES)、フローはS1911に進む。S1911において制御部1801は、メッセージ送信APIの実行結果を認証エラーに設定し、フローはS1910に進み、制御部1801は、認証エラーに設定したAPI実行結果を、メッセージ送信APIの呼び出し元の情報処理装置102に返却する。
一方、S1902において認証トークンがキャッシュ1200に格納されていない場合(S1902がNO)、制御部1801と、認証部1813とは並列処理を開始する。まず、認証部1813は、S1903において認証処理を開始し、S1904において認証を実行する。S1905において認証部1813は、認証結果に基づいて、認証に成功したか否かを判定する。認証に成功した場合(S1905がYES)、フローはS1906に進む。S1906において、認証部1813は、記憶部1802のメッセージキュー1100において認証対象のメッセージを含むエントリの認証状況を認証済みに変更し、メッセージに認証済みのマークを行う。S1906の処理が終了すると、認証部1813は認証処理を終了する。
また、認証に失敗した場合(S1905がNO)、フローはS1907に進み、認証部1813は、記憶部1802のメッセージキュー1100において認証対象のメッセージを含むエントリを削除する。S1908において認証部1813は、認証で用いた認証トークンを不正な認証トークンとしてキャッシュ1200に保存し、認証部1813は認証処理を終了する。
また、S1903の認証部1813の認証処理と並行して、制御部1801は、S1909においてメッセージの送信時のキュー操作処理を実行する。送信時のキュー操作処理の詳細は、図20を参照して後述する。S1909のキュー操作処理を完了すると、S1910において制御部1801は、メッセージ送信APIのAPI実行結果をメッセージ送信APIの呼び出し元の情報処理装置102に返却する。この場合、メッセージ送信APIのAPI実行結果は、例えば、メッセージキューへのメッセージの登録が完了したことを示す情報を含んでよい。
また、図20は、実施形態における送信時のキュー操作処理を例示する図である。例えば、制御部1801は、図19のS1909の処理に進むと、図20のキュー操作処理の実行を開始してよい。
S2001において制御部1801は、メッセージ送信APIの正当性を検証する。例えば、制御部1801は、メッセージ送信APIに設定されているパラメータが正しいか、及びメッセージ送信APIで伝送されるデータの形式が誤っていないかなどを検証する。そして、S2002において制御部1801は、APIの検証の結果、メッセージ送信APIに誤りがあるか否かを判定する。APIの検証の結果、誤りがあれば(S2002がYES)、フローはS2005に進む。S2005において制御部1801は、メッセージ送信APIのAPI実行結果をエラーに設定し、本動作フローは終了し、図19のS1910に進む。
一方、APIの検証の結果、メッセージ送信APIに誤りがなければ(S2002がNO)、フローはS2003に進む。S2003において制御部1801は、メッセージ送信APIで操作対象に指定されているメッセージキューの所在を記憶部1802において確認する。例えば、制御部1801は、記憶エリア情報2300を参照して、メッセージの格納先のメッセージキューを識別するための識別情報と対応する記憶エリアを特定する。なお、記憶エリアは、識別情報と対応するメッセージキューの記憶部1802における格納先を示す情報である。
図23は、記憶エリア情報2300を例示する図である。記憶エリア情報2300では、識別情報と、記憶エリアとが対応付けられて記憶されている。例えば、制御部1801は、記憶エリア情報2300を参照して、メッセージの格納先のメッセージキューを識別するための識別情報と対応する記憶エリアを特定し、操作対象のメッセージキューを特定してよい。
S2004において制御部1801は、確認の結果に基づいて、APIで操作対象に指定されているメッセージキューが未登録か否かを判定する。APIで操作対象に指定されているメッセージキューが未登録であり、記憶部1802に存在しない場合(S2004がYES)、フローはS2005に進む。
一方、APIで操作対象に指定されているメッセージキューが記憶部1802に登録されている場合(S2004がNO)、フローはS2006に進む。S2006において制御部1801は、APIで指定されたメッセージを、記憶部1802の特定した記憶エリアに存在する操作対象のメッセージキューに格納し、メッセージキューを更新する。S2007において制御部1801は、API実行結果にメッセージキューへのメッセージの格納の成功を示す情報を設定し、本動作フローは終了する。
<メッセージ受信の動作フロー>
続いて、メッセージ受信の動作フローを説明する。図21は、実施形態に係るメッセージ受信処理の動作フローを例示する図である。図21のメッセージ受信処理の動作フローは、メッセージ処理装置101の制御部1801が、メッセージ受信APIを受け付けると開始してよい。
S2101においてメッセージ処理装置101の制御部1801は、受け付けたメッセージ受信APIに含まれる認証トークン、メッセージの格納先のキューの識別情報を取得し、認証要求を認証部1813に通知する。S2102において認証部1813は、認証要求に含まれる認証トークンが、キャッシュ1200に格納されているか否かを判定する。
S2102において認証トークンがキャッシュ1200に格納されている場合(S2102がYES)、フローはS2109に進む。S2109において制御部1801は、API実行結果を認証エラーに設定し、フローはS2110に進み、認証エラーに設定されたAPI実行結果をAPIの呼び出し元の情報処理装置102に返却する。
一方、S2102において認証トークンがキャッシュ1200に格納されていない場合(S2102がNO)、制御部1801と、認証部1813とは並列処理を開始する。まず、認証部1813は、S2103において認証処理を開始し、S2104において認証を実行する。S2105において認証部1813は、認証結果に基づいて、認証に成功したか否かを判定する。認証に成功した場合(S2105がYES)、認証部1813は認証処理を終了し、制御部1801の処理が完了するのを待機する。
また、S2105において認証に失敗した場合(S2105がNO)、フローはS2106に進み、認証部1813は、制御部1801に強制割り込みの通知を出力して、キュー操作処理を終了させる。S2107において認証部1813は、認証に失敗した認証トークンを、不正な認証トークンとしてキャッシュ1200に格納し、認証部1813の認証処理は終了し、制御部1801の処理が完了するのを待機する。
また、認証部1813の認証処理と並行して、制御部1801は、S2108においてメッセージの受信時のキュー操作処理を実行する。なお、受信時のキュー操作処理の詳細は、図22を参照して後述する。S2108のキュー操作処理を完了すると、制御部1801は、認証部1813の認証処理が完了するまで待機する。
そして、制御部1801の処理と認証部1813の認証処理との双方が完了すると、制御部1801は、API実行結果をAPIの呼び出し元の情報処理装置102に返却する。この場合、API実行結果は、例えば、メッセージキューから取得したメッセージを含んでよい。
また、図22は、実施形態における受信時のキュー操作処理を例示する図である。例えば、制御部1801は、図21のS2108の処理に進むと、図22のキュー操作処理の実行を開始してよい。
S2201において制御部1801は、メッセージ受信APIの正当性を検証する。例えば、制御部1801は、メッセージ受信APIに設定されているパラメータが正しいか、及びAPIで伝送されるデータの形式が誤っていないかなどを検証する。そして、S2202において制御部1801は、APIに誤りがあるか否かを判定する。APIの検証の結果、APIに誤りがあれば(S2202がYES)、フローはS2205に進む。S2205において制御部1801は、API実行結果をエラーに設定し、本動作フローは終了し、図21のS2110に進む。
一方、APIの検証の結果、APIに誤りがなければ(S2202がNO)、フローはS2203に進む。S2203において制御部1801は、APIで操作対象に指定されているメッセージキューに登録されているメッセージリストの取得を試みる。例えば、制御部1801は、記憶エリア情報2300を参照して、メッセージの格納先のメッセージキューを識別するための識別情報と対応する記憶エリアを特定する。そして、制御部1801は、記憶エリアに格納されたメッセージキューから情報を取得し、メッセージリストを生成する。なお、メッセージリストには、メッセージのユニークIDと、そのメッセージの認証済みマークの情報が含まれていてよい。S2204において制御部1801は、APIで操作対象に指定されているメッセージキュー1100が未登録か否かを判定する。APIで操作対象に指定されているメッセージキュー1100が未登録である場合(S2204がNO)、フローはS2205に進む。
一方、APIで操作対象に指定されているメッセージキュー1100が記憶部1802に登録されている場合(S2204がNO)、フローはS2206に進む。S2206において制御部1801は、メッセージキュー1100の更新内容を決定する。更新内容の決定では、制御部1801は、例えば、メッセージリストの認証済みマークの情報を基に、メッセージキューのどのメッセージを受信し、メッセージキュー1100をどんな値に書き換えるかを決定してよい。
S2207において制御部1801は、API実行結果に既に内容を登録可能な情報を設定し、API実行結果の返却の準備をする。例えば、制御部1801は、受け付けたメッセージ受信APIのメッセージに紐付く固有の情報であるユニークIDや、メッセージ受信APIを受け付けた受付時刻などの情報をAPI実行結果に設定してよい。S2208において制御部1801は、認証部1813に認証の確認要求を通知して、認証結果を確認する。S2210において制御部1801は、認証に成功したかを判定する。
S2210においてまだ認証中である場合(S2210が認証中)、制御部1801は、メッセージキュー1100のメッセージリストを再度取得して、認証済みマークのあるメッセージを特定し、S2206に戻り、メッセージキューの更新内容を再度決定する。
S2210において認証に失敗した場合(S2210が失敗)、フローはS2211に進み、API実行結果に認証エラーを示す情報を設定する。一方、S2210において認証に成功した場合(S2210が成功)、フローはS2212に進む。
S2212において制御部1801は、メッセージキュー1100から認証済みマークが付されているメッセージを取得し、取得したメッセージを含むエントリを削除して、メッセージキュー1100を更新する。S2213において制御部1801は、API実行結果に、メッセージキュー1100から取得したメッセージを格納し、本動作フローは終了する。
また、例えば、S2201〜S2209までの処理において、制御部1801が認証部1813からの割り込みを受けた場合、フローはS2214に進み、制御部1801は、API実行結果に、認証エラーを設定し、本動作フローは終了する。
以上で述べた様に、メッセージ処理装置101に、認証サーバ103、及びデータサーバ104の機能を備えさせて、処理を実行することができる。
第2の実施形態では、制御部1801は、メッセージと、メッセージの格納先のメッセージキューを識別するための識別情報とを含むメッセージ送信APIを情報処理装置102から受信すると、記憶部1802の記憶エリア情報2300を参照する。そして、制御部1801は、識別情報と対応する記憶エリアを特定する。続いて、制御部1801は、特定した記憶エリアに記憶されているメッセージキューに、受信したメッセージを記憶させる。また、それと共に、制御部1801は、情報処理装置102が、特定したメッセージキューにメッセージを記憶させる権限を有するか否かの認証を行う。そして、制御部1801は、権限を有する場合、特定したメッセージキューに記憶されたメッセージに対応付けて認証済みのマークを記憶する。そのため、第2の実施形態においても、メッセージキューの送信にかかる時間を短縮することができる。なお、S1906の処理において、制御部1801は、例えば、記憶制御部1811として動作する。
また、第2の実施形態では、制御部1801は、メッセージの格納先のメッセージキューを識別するための識別情報を含むメッセージ受信APIを情報処理装置102から受信すると、記憶部1802の記憶エリア情報2300を参照する。そして、制御部1801は、識別情報と対応する記憶エリアに記憶されているメッセージキューを特定する。また、それと共に、制御部1801は、情報処理装置102が、特定したメッセージキューに記憶されたメッセージを取得する権限を有するか否かの認証を行う。制御部1801は、権限を有する場合、特定したメッセージキューに記憶されたメッセージを取得する。そのため、第2の実施形態においても、メッセージキューの受信にかかる時間を短縮することができる。なお、図22のS2212において制御部1801は、取得部1812として動作する。
従って、第2の実施形態によれば、メッセージキューシステム1700の処理性能を向上させることができる。
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、又は、一部の処理が省略されてもよい。例えば、図13のS1307とS1308の処理、S1506とS1507の処理は、順序を入れ替えて実行されてもよい。
図24は、実施形態に係るメッセージ処理装置101を実現するためのコンピュータ2400のハードウェア構成を例示する図である。なお、例えば、情報処理装置102、認証サーバ103、及びデータサーバ104も、同様に、図24のハードウェア構成を有していてもよい。図24のコンピュータ2400のハードウェア構成は、例えば、プロセッサ2401、メモリ2402、記憶装置2403、読取装置2404、通信インタフェース2406、及び入出力インタフェース2407を備える。なお、プロセッサ2401、メモリ2402、記憶装置2403、読取装置2404、通信インタフェース2406、入出力インタフェース2407は、例えば、バス2408を介して互いに接続されている。
プロセッサ2401は、メモリ2402を利用して例えば上述の動作フローの手順を記述したプログラムを実行することにより、上述した制御部301、又は制御部1801の一部または全部の機能を提供する。また、記憶部302、又は記憶部1802は、例えばメモリ2402、記憶装置2403、及び着脱可能記憶媒体2405を含んでいる。メッセージ処理装置101のプロセッサ2401は、例えば、記憶装置2403に格納されているプログラムを読み出して実行することで、操作部311、認証部312、依頼部321、出力部322、判定部323、及び取得部324として動作してよい。また、プロセッサ2401は、例えば、記憶装置2403に格納されているプログラムを読み出して実行することで、記憶制御部1811、取得部1812、及び認証部1813として動作してよい。メッセージ処理装置101の記憶装置2403には、例えば、キャッシュ1200が記憶されていてよい。また、例えば、データサーバ104の記憶装置2403には、メッセージキュー1100が記憶されていてよい。或いは、メッセージ処理装置101の記憶装置2403には、例えば、メッセージキュー1100、キャッシュ1200、及び記憶エリア情報2300が記憶されていてもよい。
メモリ2402は、例えば半導体メモリであり、RAM領域及びROM領域を含んでいてよい。記憶装置2403は、例えばハードディスク、フラッシュメモリ等の半導体メモリ、又は外部記憶装置である。なお、RAMは、Random Access Memoryの略称である。また、ROMは、Read Only Memoryの略称である。
読取装置2404は、プロセッサ2401の指示に従って着脱可能記憶媒体2405にアクセスする。着脱可能記憶媒体2405は、例えば、半導体デバイス(USBメモリ等)、磁気的作用により情報が入出力される媒体(磁気ディスク等)、光学的作用により情報が入出力される媒体(CD−ROM、DVD等)などにより実現される。なお、USBは、Universal Serial Busの略称である。CDは、Compact Discの略称である。DVDは、Digital Versatile Diskの略称である。
通信インタフェース2406は、プロセッサ2401の指示に従ってネットワーク2420を介してデータを送受信する。通信部303は、例えば、通信インタフェース2406であってよい。入出力インタフェース2407は、例えば、入力装置及び出力装置との間のインタフェースであってよい。入力装置は、例えばユーザからの指示を受け付けるキーボードやマウスなどのデバイスである。出力装置は、例えばディスプレーなどの表示装置、及びスピーカなどの音声装置である。
実施形態に係る各プログラムは、例えば、下記の形態でメッセージ処理装置101に提供される。
(1)記憶装置2403に予めインストールされている。
(2)着脱可能記憶媒体2405により提供される。
(3)プログラムサーバなどのサーバ2430から提供される。
なお、図24を参照して述べたメッセージ処理装置101を実現するためのコンピュータ2400のハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の機能部の一部または全部の機能がFPGA及びSoCなどによるハードウェアとして実装されてもよい。なお、FPGAは、Field Programmable Gate Arrayの略称である。SoCは、System-on-a-chipの略称である。
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
100 メッセージキューシステム
101 メッセージ処理装置
102 情報処理装置
103 認証サーバ
104 データサーバ
301 制御部
302 記憶部
303 通信部
311 操作部
312 認証部
321 依頼部
322 出力部
323 判定部
324 取得部
1801 制御部
1802 記憶部
1803 通信部
1811 記憶制御部
1812 取得部
1813 認証部
2400 コンピュータ
2401 プロセッサ
2402 メモリ
2403 記憶装置
2404 読取装置
2405 着脱可能記憶媒体
2406 通信インタフェース
2407 入出力インタフェース
2408 バス

Claims (12)

  1. メッセージと、ユーザを認証するための認証情報と、記憶エリアを識別するための識別情報とを含む前記メッセージの送信指示を情報処理装置から受信すると、前記識別情報で識別される前記記憶エリアに前記メッセージを記録させる指示を出力するとともに、前記認証情報を用いて認証を依頼し、
    前記依頼に対する応答結果に基づいて、前記ユーザが前記記憶エリアに前記メッセージを記憶する権限を有する場合、前記記憶エリアに記憶された前記メッセージに関連付けて、前記記憶エリアに認証済みを示す情報を記憶させる第2の指示を出力する、
    ことを含む、コンピュータが実行するメッセージ処理方法。
  2. 前記認証の結果が得られる前に、前記情報処理装置に前記送信指示に対する応答を通知することを更に含む、請求項1に記載のメッセージ処理方法。
  3. 前記認証情報を用いて行われた前記認証に失敗した場合、前記認証情報を記憶装置に記憶し、
    前記メッセージの前記送信指示を受信すると、前記送信指示に含まれる前記認証情報が前記記憶装置に記憶されているか否かを判定し、
    前記認証情報が前記記憶装置に記憶されている場合、前記送信指示に対する応答で認証に失敗したことを示す情報を前記情報処理装置に通知する、
    ことを含む、請求項1又は2に記載のメッセージ処理方法。
  4. ユーザを認証するための認証情報と、記憶エリアを識別するための識別情報と、を含むメッセージの受信指示を情報処理装置から受信すると、前記認証情報を用いて行われた認証の結果に基づいて、前記ユーザが前記記憶エリアに記憶されたメッセージを取得する権限を有するか否かの判定を行い、
    前記権限を有する場合、前記メッセージを取得するための要求を出力して、前記記憶エリアに記憶されているメッセージのうちで、認証済みを示す情報が関連付けられているメッセージを取得する、
    ことを含む、コンピュータが実行するメッセージ処理方法。
  5. 前記受信指示を前記情報処理装置から受信すると、前記権限を有するか否かの判定を行う前に、前記記憶エリアに記憶されているメッセージのうちから、前記認証済みを示す情報が関連付けられているメッセージを特定することを更に含む、請求項4に記載のコンピュータが実行するメッセージ処理方法。
  6. 前記認証情報を用いて行われた前記認証に失敗した場合、前記認証情報を記憶装置に記憶し、
    前記メッセージの前記受信指示を受信すると、前記受信指示に含まれる前記認証情報が前記記憶装置に記憶されているか否かを判定し、
    前記認証情報が前記記憶装置に記憶されている場合、前記受信指示に対する応答で認証に失敗したことを示す情報を前記情報処理装置に通知することを含む、請求項4又は5に記載のメッセージ処理方法。
  7. メッセージと、ユーザを認証するための認証情報と、記憶エリアを識別するための識別情報とを含む前記メッセージの送信指示を情報処理装置から受信すると、前記識別情報で識別される前記記憶エリアに前記メッセージを記録させる指示を出力するとともに、前記認証情報を用いて認証を依頼し、
    前記依頼に対する応答結果に基づいて、前記ユーザが前記記憶エリアに前記メッセージを記憶する権限を有する場合、前記記憶エリアに記憶された前記メッセージに関連付けて、前記記憶エリアに認証済みを示す情報を記憶させる第2の指示を出力する、
    処理を、コンピュータに実行させるメッセージ処理プログラム。
  8. ユーザを認証するための認証情報と、記憶エリアを識別するための識別情報と、を含むメッセージの受信指示を情報処理装置から受信すると、前記認証情報を用いて行われた認証の結果に基づいて、前記ユーザが前記記憶エリアに記憶されたメッセージを取得する権限を有するか否かの判定を行い、
    前記権限を有する場合、前記メッセージを取得するための要求を出力して、前記記憶エリアに記憶されているメッセージのうちで、認証済みを示す情報が関連付けられているメッセージを取得する、
    処理を、コンピュータに実行させるメッセージ処理プログラム。
  9. メッセージと、ユーザを認証するための認証情報と、記憶エリアを識別するための識別情報とを含む前記メッセージの送信指示を情報処理装置から受信すると、前記識別情報で識別される前記記憶エリアに前記メッセージを記録させる指示を出力するとともに、前記認証情報を用いて認証を依頼する依頼部と、
    前記依頼に対する応答結果に基づいて、前記ユーザが前記記憶エリアに前記メッセージを記憶する権限を有する場合、前記記憶エリアに記憶された前記メッセージに関連付けて、前記記憶エリアに認証済みを示す情報を記憶させる第2の指示を出力する出力部と、
    を含む、メッセージ処理装置。
  10. ユーザを認証するための認証情報と、記憶エリアを識別するための識別情報と、を含むメッセージの受信指示を情報処理装置から受信すると、前記認証情報を用いて行われた認証の結果に基づいて、前記ユーザが前記記憶エリアに記憶されたメッセージを取得する権限を有するか否かの判定を行う判定部と、
    前記権限を有する場合、前記メッセージを取得するための要求を出力して、前記記憶エリアに記憶されているメッセージのうちで、認証済みを示す情報が関連付けられているメッセージを取得する取得部と、
    を含む、メッセージ処理装置。
  11. メッセージと、記憶エリアの識別情報と、該記憶エリアに該メッセージを記憶させる指示と、を情報処理装置から受信すると、記憶エリアを該記憶エリアの識別情報に対応付けて記憶する記憶部を参照して、受信した前記識別情報に対応付けられた記憶エリアを特定して、特定した前記記憶エリアに、受信した前記メッセージを記憶させると共に、前記情報処理装置が、特定した前記記憶エリアにメッセージを記憶させる権限を有するか否かの判定を行う制御部と、
    前記権限を有する場合、特定した前記記憶エリアに記憶された前記メッセージに、前記権限を有することを示す情報を対応付けて記憶する記憶制御部と、
    を備えることを特徴とするメッセージ処理装置。
  12. 記憶エリアの識別情報と、該記憶エリアに記憶されたメッセージを取得する指示と、を情報処理装置から受信すると、記憶エリアを該記憶エリアの識別情報に対応付けて記憶する記憶部を参照して、受信した前記識別情報に対応付けられた記憶エリアを特定すると共に、前記情報処理装置が、特定した前記記憶エリアに記憶されたメッセージを取得する権限を有するか否かの判定を行う制御部と、
    前記権限を有する場合、特定した前記記憶エリアに記憶された前記メッセージを取得する取得部と、
    を備えることを特徴とするメッセージ処理装置。
JP2016134562A 2016-07-06 2016-07-06 メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム Pending JP2018005744A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016134562A JP2018005744A (ja) 2016-07-06 2016-07-06 メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム
US15/603,775 US20180013741A1 (en) 2016-07-06 2017-05-24 Message processing device and message processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016134562A JP2018005744A (ja) 2016-07-06 2016-07-06 メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム

Publications (1)

Publication Number Publication Date
JP2018005744A true JP2018005744A (ja) 2018-01-11

Family

ID=60911383

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016134562A Pending JP2018005744A (ja) 2016-07-06 2016-07-06 メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム

Country Status (2)

Country Link
US (1) US20180013741A1 (ja)
JP (1) JP2018005744A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022518136A (ja) * 2019-01-03 2022-03-14 サイトリックス システムズ,インコーポレイテッド 作業空間におけるポリシベースの通知保護サービス

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4983047B2 (ja) * 2006-03-02 2012-07-25 富士ゼロックス株式会社 電子データ格納装置、及びプログラム
US20130110607A1 (en) * 2011-10-28 2013-05-02 Steven Allen Basmajian Coupon generation, authentication, and redemption via a network
JP6545000B2 (ja) * 2015-06-01 2019-07-17 キヤノン株式会社 アップロード管理システム、アップロード管理システムの制御方法、及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022518136A (ja) * 2019-01-03 2022-03-14 サイトリックス システムズ,インコーポレイテッド 作業空間におけるポリシベースの通知保護サービス
US11748513B2 (en) 2019-01-03 2023-09-05 Citrix Systems, Inc. Policy based notification protection service in workspace

Also Published As

Publication number Publication date
US20180013741A1 (en) 2018-01-11

Similar Documents

Publication Publication Date Title
US9164710B2 (en) Service providing system and service providing method
US20140230020A1 (en) Authorization server and client apparatus, server cooperative system, and token management method
US10237255B2 (en) Data synchronizing system, control method thereof, authorization server, and storage medium thereof
JP2013534675A (ja) 複数のネットワークリソースのプロビジョニング
JP2018081643A (ja) 認可サーバーおよびその制御方法、プログラム、並びに権限委譲システム
JP2015001974A (ja) 認証システム、その制御方法、サービス提供装置およびコンピュータプログラム
CN108073823B (zh) 数据处理方法、装置及系统
JP2013011956A (ja) 印刷システム、プリントサーバ、印刷管理方法、およびプログラム
JP2018033005A (ja) 情報処理システム、情報処理装置及びその制御方法、及びプログラム
US20210144138A1 (en) Authority transfer system, server and method of controlling the server, and storage medium
JP6183035B2 (ja) サービス提供システム、サービス提供方法及びプログラム
JP5849639B2 (ja) 文書管理装置及び文書管理システム
JP6489835B2 (ja) 情報処理システム、情報処理装置の制御方法、及びプログラム
JP2014035643A (ja) ライセンス管理システムおよびライセンス管理方法、クライアント装置
JP2018005744A (ja) メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム
JP7208807B2 (ja) システム、テナントの移動方法、情報処理装置およびその制御方法、並びにプログラム
JP6161278B2 (ja) 画像処理システム、管理装置、画像処理装置、画像処理方法およびコンピュータプログラム
JP2013051597A (ja) 画像処理装置とその制御方法、及びプログラム
JP2018045632A (ja) 情報配信装置、情報配信プログラム、情報配信システムおよび情報配信方法
JP2014002583A (ja) 情報処理装置、情報処理システム、情報処理方法、及び、プログラム
US20170011482A1 (en) License number management system and license number management method
JP2013114526A (ja) ユーザ認証方法及びwebシステム
JP2014241113A (ja) コンテンツ管理装置、コンテンツ管理システム、コンテンツ管理方法及びプログラム
JP2016206971A (ja) 連携システム、連携システムの制御方法、及びプログラム
JP6754079B2 (ja) 情報処理装置、情報処理システム、ユーザ認証方法、およびユーザ認証プログラム