JP2019028599A - 情報処理システムおよび制御方法 - Google Patents
情報処理システムおよび制御方法 Download PDFInfo
- Publication number
- JP2019028599A JP2019028599A JP2017145474A JP2017145474A JP2019028599A JP 2019028599 A JP2019028599 A JP 2019028599A JP 2017145474 A JP2017145474 A JP 2017145474A JP 2017145474 A JP2017145474 A JP 2017145474A JP 2019028599 A JP2019028599 A JP 2019028599A
- Authority
- JP
- Japan
- Prior art keywords
- message
- processing
- service
- topic
- information
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Transfer Between Computers (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
- Computer And Data Communications (AREA)
- Facsimiles In General (AREA)
Abstract
【課題】Publisherがメッセージを送信するTopicに複数のSubscriberが存在する場合でも、疎結合性を確保しつつ、複数のSubscriberに適切にメッセージを配信できる情報処理システムを提供する。【解決手段】ネットワークデバイスをパブリッシャーとしてメッセージを受け取るデバイス情報Topic321と、ネットワークデバイスをサブスクライバーとしてメッセージの処理の成功を示すメッセージを配信するための成功確認Topic322を含む情報処理システムを設ける。情報処理システムは、デバイス情報Topicにより配信された第1メッセージの即時処理Action361及び非即時処理Action362での処理の完了に応じて処理結果を情報管理サービスに登録し、上記処理結果に従い、成功確認Topicに対し、第1メッセージの処理の成功を示す第2メッセージを配信する。【選択図】図4
Description
本発明は、情報処理システムおよび制御方法
インターネットに家電や自動車などのオブジェクトをクライアントとして接続する「Internet of Things」(以下、「IoT」と記載)を実現するシステムが提案されている。また、近年、画像処理装置の多機能化が進み、MFPと呼ばれる複合機もIoTクライアントに対応することが可能となった。MFPは、Multifunction Peripheralの略称である。また、IoTは、Internet of Thingsの略称である。IoTにおいて、IoTクライアントとなるオブジェクトは、不特定多数存在するので、IoTシステムは、様々なオブジェクトの膨大な情報を収集することが可能となる。一方で、不特定多数存在するIoTクライアントとの情報の送受信を、IoTシステムが管理することは容易ではない。したがって、IoTを実現する多くのシステムは、IoTデバイスとシステム間のメッセージの送受信方法に「出版−購読型モデル」を採用している。また、特許文献1は、Publish、Subscribe方式で実現されたソーシャルネットワーキングシステムを開示している。
出版−購読型モデルとは、Publish、Subscribe方式でメッセージを送受信するためのモデルである。出版−購読型モデルでは、メッセージを作成し、送信するクライアントを「Publisher(パブリッシャー)」と定義する。また、メッセージを受信するクライアントを「Subscriber(サブスクライバー)」と定義する。そして、PublisherとSubscriber間のメッセージの送受信を管理するサービスを「Broker」と定義する。Brokerは、Publisherから送信されたメッセージを仕分けした上で、Subscriberに届けるために、「Topic」というメッセージの送信先としてのメッセージ管理サービスを用意する。この際、Topicは、階層構造を持つことができる。例えば、MFPの現在のトナー情報を管理するサービスの場合には、「DeviceA/Toner」という階層構造でTopicを定義することで分かりやすく表現できる。
Publisherは、順次メッセージを作成し、送信先であるTopicに登録する行為であるPublish(以下、「Pub」と記載)を行う。一方、Subscriberは、順次Topicからメッセージを受信する行為であるSubscribe(以下、「Sub」と記載)を行う。上記のように、PublisherとSubscriberがそれぞれ独立して、PubとSubを行うことが出版−購読型モデルの特徴である。したがって、PublisherとSubscriberは、高い疎結合性を実現している。高い疎結合性がもたらす最大のメリットとして、PublisherとSubscriberは、お互いの構成に依存せずにそれぞれが拡張、縮小を行うことができる点が挙げられる。このメリットは、IoTにおいて、最大限に発揮される。一例をあげると、Subscriberを追加しつつも、Publisherの修正影響なしという構成を容易に実現できる。したがって、出版−購読型モデルはIoTを実現するための強力なメッセージングモデルである。
出版−購読型モデルにおいて、PublisherからTopicへPubしたメッセージの到達は保証される。一方で、SubscriberがTopicからのSubの成功は保証されない。SubscriberがSubに失敗した場合、PublisherがPubのリトライを行う対処が一般的である。しかし、出版−購読型モデルは、PublisherとSubscriberがそれぞれ独立して処理を行うので、Publisherは、Subscriberの処理結果を知ることはできない。したがって、PublisherがPubのリトライを行うべきかどうかを判断することができないという問題がある。この問題に対する対処として、システムにSubscriberの処理結果通知用Topicを設けることが考えられる。このシステムでは、Subscriberが処理に成功した場合、処理結果通知用Topicにその旨をPubする。Publisherは、処理結果通知用TopicをSubし、処理に成功した旨のメッセージを受信した場合は、Pubのリトライを行わない。しかし、所定の時間が経過しても処理に成功した旨のメッセージを受信できない場合は、Pubのリトライを行う。
出版−購読型モデルにおいて、1つのTopicに対し、Subscriberが複数存在するシステムを想定する。このシステムに従来技術を適用すると、Publisherは、複数のSubscriberの処理の内、いずれかが失敗した場合、Pubのリトライを行うことになる。より具体的には、Publisherは、第1のSubscriberの処理結果通知用Topicと、第2のSubscriberの処理結果通知用TopicをそれぞれSubし、処理結果を判断することになる。したがって、PublisherがSubscriberの構成に依存することになり、出版−購読型モデルの利点である疎結合性を失ってしまう。また、例えば、さらに第3のSubscriberを追加した場合に、Publisherが当該Subscriberの処理結果を判断するように変更する必要性が生じる。したがって、Subscriberの追加を行ってもPublisherの影響を受けない、という疎結合性のメリットを失ってしまう。本発明は、Publisherがメッセージを送信するTopicに複数のSubscriberが存在する場合でも、疎結合性を確保しつつ、複数のSubscriberに適切にメッセージを配信できる情報処理システムの提供を目的とする。
本発明の一実施形態の情報処理システムは、ネットワークデバイスをパブリッシャーとしてメッセージを受け取る第1メッセージ管理サービスと、該ネットワークデバイスをサブスクライバーとして前記メッセージの処理の成功を示すメッセージを配信するための第2メッセージ管理サービスを含むシステムである。前記情報処理システムは、前記第1メッセージ管理サービスにより配信された第1メッセージの第1サービスでの処理の完了に応じて、前記第1サービスでの処理結果を情報管理サービスに登録する第1登録手段と、前記第1メッセージ管理サービスにより配信された前記第1メッセージの第2サービスでの処理の完了に応じて、前記第2サービスでの処理結果を前記情報管理サービスに登録する第2登録手段と、前記第1メッセージの処理結果に従い、前記第2メッセージ管理サービスに対して、前記第1メッセージの処理の成功を示す第2メッセージを配信する配信手段と、を有する。
本発明の情報処理システムによれば、Publisherがメッセージを送信するTopicに複数のSubscriberが存在する場合でも、疎結合性を確保しつつ、複数のSubscriberに適切にメッセージを配信できる。
(実施例1)
[システムの全体構成]
図1は、実施例1の全体システム構成を示す図である。
図1に示す情報処理システムは、IoT管理サービス101、Topicイベント管理サービス102、データベース管理サービス103、スクリプト管理サービス104、MFP111を備える。IoT管理サービス101乃至MFP111は、ネットワーク120を介して接続されている。ネットワーク120は、例えば、インターネット等のLAN、WAN、電話回線、専用デジタル回線等であり、またこれらの組み合わせにより実現される通信ネットワークである。LANは、Local Area Networkの略称である。また、WANは、Wide Area Networkの略称である。
[システムの全体構成]
図1は、実施例1の全体システム構成を示す図である。
図1に示す情報処理システムは、IoT管理サービス101、Topicイベント管理サービス102、データベース管理サービス103、スクリプト管理サービス104、MFP111を備える。IoT管理サービス101乃至MFP111は、ネットワーク120を介して接続されている。ネットワーク120は、例えば、インターネット等のLAN、WAN、電話回線、専用デジタル回線等であり、またこれらの組み合わせにより実現される通信ネットワークである。LANは、Local Area Networkの略称である。また、WANは、Wide Area Networkの略称である。
IoT管理サービス101、Topicイベント管理サービス102、データベース管理サービス103、スクリプト管理サービス104は、例えば、AmazonWebService株式会社が提供するクラウドサービスを想定する。一方で、本発明における上記サービスは、AmazonWebService株式会社が提供するクラウドサービスに限定されないものとする。例えば、IoT管理サービス101乃至スクリプト管理サービス104が、GoogleCloudPlatformや、MicrosoftAzureなどのクラウドサービスで実現されても良い。
IoT管理サービス101は、IoTに関する各種機能を提供するクラウドサービスである。IoT管理サービス101は、例えば、AmazonWebService株式会社が提供するAWSIoTを想定する。Topicイベント管理サービス102は、IoT管理サービス101が提供するメッセージ管理システムであるTopicのPub,Subイベントに関する情報を管理する。
以下の説明において、「Pubする」あるいは「Subする」とは、識別情報(ID)付きでメッセージを送信することをいう。「Pubする」とは、例えば、Publisherとしてのネットワークデバイスが、自身の所定の稼働情報を示すメッセージをTopicに対して送信することをいう。また、「Subする」とは、例えば、Subscriberとしての仮想マシンなどで実現されたサービスに対して、受信した所定のメッセージを配信することをいう。
Topicイベント管理サービス102は、例えば、AmazonWebService株式会社が提供するクラウド上の仮想サーバである、AmazonEC2上で稼働するWebサービスを想定する。データベース管理サービス103は、例えば、NoSQL型構造のデータベース管理サービス(情報管理サービス)である。データベース管理サービス103は、例えば、AmazonWebService株式会社が提供するAmazonDynamoDBを想定する。また、データベース管理サービス103は、NoSQL型構造のデータベース管理サービスであるとしたが、本発明に適用可能なデータベースの構造に関して特に限定しないものとする。例えば、データベース管理サービス103が、RDS型のデータベース管理サービスなどでもよい。
スクリプト管理サービス104は、IoT管理サービス101や、データベース管理サービス103の各種イベントをトリガーとして駆動するスクリプトを管理するサービスである。スクリプト管理サービス104は、例えば、AmazonWebService株式会社が提供するAWSLambdaを想定する。
MFP111は、IoTクライアントとなる複合機であり、IoT管理サービス101が提供するTopicに対し、デバイスの情報をPubする機能を有する。また、MFP111は、複数台存在していてもよく、それぞれのMFP111がIoT管理サービス101と接続することも可能である。
[ハードウェア構成]
図2は、IoT管理サービス101、Topicイベント管理サービス102、データベース管理サービス103、スクリプト管理サービス104、MFP111のハードウェア構成例を示す図である。
図2は、IoT管理サービス101、Topicイベント管理サービス102、データベース管理サービス103、スクリプト管理サービス104、MFP111のハードウェア構成例を示す図である。
IoT管理サービス101乃至MFP111は、図2に示すような一般的なコンピュータのハードウェア構成を適用できる。図2に示すコンピュータは、ユーザインタフェース201乃至入出力インタフェース207を備える。
ユーザインタフェース201は、ディスプレイ、キーボード、マウス、タッチパネル等のハードウェアによって、情報の入出力を行う。これらのハードウェアを備えないコンピュータは、リモートデスクトップやリモートシェルなどにより、他のコンピュータから接続・操作することも可能である。ネットワークインタフェース202は、LANなどのネットワークに接続して、他のコンピュータやネットワーク機器との通信を行う。CPU203は、コンピュータ全体を制御する。具体的には、CPU203は、ROM204、RAM205、記憶装置206などから読み込んだプログラムを実行する。CPUは、Central Processing Unitの略称である。ROMは、Read Only Memoryの略称で3ある。RAMは、Random Access Memoryの略称である。ROM204には、組込済みプログラムおよびデータが記録されている。RAM205は、一時メモリ領域として機能する。記憶装置206は、例えばHDD等の記憶手段である。HDDは、Hard Disk Driveの略称である。各部は、入出力インタフェース207を介して接続されている。
ユーザインタフェース201は、ディスプレイ、キーボード、マウス、タッチパネル等のハードウェアによって、情報の入出力を行う。これらのハードウェアを備えないコンピュータは、リモートデスクトップやリモートシェルなどにより、他のコンピュータから接続・操作することも可能である。ネットワークインタフェース202は、LANなどのネットワークに接続して、他のコンピュータやネットワーク機器との通信を行う。CPU203は、コンピュータ全体を制御する。具体的には、CPU203は、ROM204、RAM205、記憶装置206などから読み込んだプログラムを実行する。CPUは、Central Processing Unitの略称である。ROMは、Read Only Memoryの略称で3ある。RAMは、Random Access Memoryの略称である。ROM204には、組込済みプログラムおよびデータが記録されている。RAM205は、一時メモリ領域として機能する。記憶装置206は、例えばHDD等の記憶手段である。HDDは、Hard Disk Driveの略称である。各部は、入出力インタフェース207を介して接続されている。
[ソフトウェア構成]
図3は、実施例1のソフトウェア構成を示す図である。
MFP111は、デバイス情報送信アプリケーション300を有する。デバイス情報送信アプリケーション300は、MFP111の記憶装置206に格納され、CPU203によって実行される。デバイス情報送信アプリケーション300は、通信部301、デバイス情報管理部302、メッセージ生成部303、メッセージ解析部304、再送判定部305を有する。
図3は、実施例1のソフトウェア構成を示す図である。
MFP111は、デバイス情報送信アプリケーション300を有する。デバイス情報送信アプリケーション300は、MFP111の記憶装置206に格納され、CPU203によって実行される。デバイス情報送信アプリケーション300は、通信部301、デバイス情報管理部302、メッセージ生成部303、メッセージ解析部304、再送判定部305を有する。
通信部301は、ネットワークインタフェース202を介して、IoT管理アプリケーション310と通信を行う。デバイス情報管理部302は、MFP111で発生したエラー情報や、機器の構成などのデバイス情報を管理する。メッセージ生成部303は、デバイス情報Topic321にPublish(Pub)するメッセージの生成を行う。この際、メッセージ生成部303は、メッセージごとの一意のメッセージIDを発行し、PubメッセージにメッセージIDを含める。さらに、メッセージ生成部303は、通信部301を介して、デバイス情報Topic321へメッセージをPubする。なお、メッセージ生成部303が生成したメッセージIDは、RAM205に記憶される。
メッセージ解析部304は、通信部301を介して、成功確認Topic322とのSubscribe(Sub)の開始を行う。さらに、メッセージ解析部304は、成功確認Topic322から受信したメッセージの解析を行い、メッセージの中に含まれるメッセージIDを取得する。メッセージ解析部304は、取得したメッセージIDとメッセージ生成部303が生成したメッセージIDを照合し、処理の成功を判定する。再送判定部305は、Pubのリトライの必要性を判断する。再送判定部305は、Pubを行ったタイミングから所定の時刻が経過した場合に、Pubのリトライが必要であると判断する。
IoT管理サービス101は、IoT管理アプリケーション310を有する。IoT管理アプリケーション310は、IoT管理サービス101の記憶装置206に格納され、CPU203によって実行される。IoT管理アプリケーション310は、通信部311、Topic情報管理部320を有する。
通信部311は、ネットワークインタフェース202を介して、デバイス情報送信アプリケーション300、スクリプト管理アプリケーション330、Topicイベント管理アプリケーション340と通信を行う。Topic情報管理部320は、Pub、Sub通信におけるメッセージの登録先であるTopicを管理する。Topic情報管理部320は、デバイス情報Topic321、成功確認Topic322、Action処理結果Topic323、Subイベント情報通知Topic324を管理する。
Topic情報管理部320は、通信部311を介して受信したPubリクエストを解析し、対応するTopicに対し、メッセージの登録を行う。また、Topic情報管理部320は、通信部311を介して受信したSub開始リクエストを解析し、リクエストを送信したクライアントとの接続を確立する。
デバイス情報Topic321は、MFP111のデバイス情報を登録するためのTopicであり、ネットワークデバイス(MFP111)をパブリッシャーとしてメッセージを受け取る第1メッセージ管理システムとして機能する。成功確認Topic322は、該ネットワークデバイスをサブスクライバーとしてメッセージの処理の成功を示すメッセージを配信するための第2メッセージ管理サービスとして機能する。すなわち、成功確認Topic322は、デバイス情報Topic321のSubscriberの処理が成功したことをデバイス情報送信アプリケーション300が確認するためのTopicである。Action処理結果Topic323は、デバイス情報Topic321のSubscriberの処理結果をTopicイベント管理サービス102に伝えるためのTopicである。Subイベント情報通知Topic324は、IoT管理アプリケーション310のすべてのTopicのSubイベントが登録されるTopicである。
スクリプト管理サービス104は、スクリプト管理アプリケーション330を有する。スクリプト管理アプリケーション330は、スクリプト管理サービス104の記憶装置206に格納され、CPU203によって実行される。スクリプト管理アプリケーション330は、通信部331、スクリプト管理部360を有する。
通信部331は、ネットワークインタフェース202を介して、IoT管理アプリケーション310と通信を行う。スクリプト管理部360は、IoT管理アプリケーション310のTopicのPubイベントを受けて駆動するスクリプトを管理する。スクリプト管理部360は、即時処理Action361、非即時処理Action362を管理する。
即時処理Action321は、メッセージにエラーコードがあった場合に関係者に通知を行う処理を担当し、非即時処理Action322は、メッセージを加工せず、ストレージ環境などに保管する処理を行う。即時処理Action361は、デバイス情報Topic321に対するPubが行われたことを受けて駆動するスクリプトである。即時処理Action361は、デバイス情報Topic321に対するSubを開始し、Pubされたメッセージを受信する。さらに、即時処理Action361は、受信したメッセージを解析し、エラーコードが含まれるなど即時対処を要すると判断した場合に、エラー通知などの処理を行う。そして、即時処理Action361は、スクリプト処理の結果をPubメッセージとして生成し、Action処理結果Topic323にPubする。
非即時処理Action362は、デバイス情報Topic321に対するPubが行われたことを受けて駆動するスクリプトである。非即時処理Action362は、デバイス情報Topic321に対するSubを開始し、Pubされたメッセージを受信する。非即時処理Action362は、即時処理Action361とは異なり、メッセージの解析は行わず、受信したメッセージをストレージ環境などに保存する。そして、非即時処理Action362は、スクリプト処理の結果をPubメッセージとして生成し、Action処理結果Topic323にPubする。
Topicイベント管理サービス102は、Topicイベント管理アプリケーション340を有する。Topicイベント管理アプリケーション340は、Topicイベント管理サービス102の記憶装置206に格納され、CPU203によって実行される。Topicイベント管理アプリケーション340は、通信部341、メッセージ生成部342、メッセージ解析部343を有する。
通信部341は、ネットワークインタフェース202を介して、IoT管理アプリケーション310、データベース管理アプリケーション350と通信を行う。メッセージ生成部342は、成功確認Topic322にPubするメッセージの生成を行う。さらにメッセージ生成部303は、通信部311を介して、成功確認Topic322へメッセージのPubを行う。
メッセージ解析部343は、通信部341を介して、Subイベント情報通知Topic324、Action処理結果Topic323とのSubを開始する。メッセージ解析部343は、通信部341を介して、Subイベント情報通知Topic324から受信したメッセージの解析を行い、即時処理Action361、非即時処理Action362がSubを開始したことを検知する。この際、メッセージ解析部343は、通信部341を介して、当該Action情報の登録をデータベース管理アプリケーション350に要求する。また、メッセージ解析部343は、通信部341を介して、Action処理結果Topic323から受信したメッセージの解析を行い、特定メッセージIDに紐づくActionの処理が完了したことを検知する。この際、メッセージ解析部343は、通信部341を介して、メッセージの管理情報(メッセージ情報)の登録をデータベース管理アプリケーション350に要求する。
また、メッセージ解析部343は、通信部341を介して、データベース管理アプリケーション350に、特定メッセージIDに紐づくActionの処理状況の要求を行う。メッセージ解析部343は、通信部341を介して、特定メッセージIDに紐づくActionの処理状況を受信し、すべてのActionが完了していると判断した場合、メッセージ生成部342にPub要求を行う。
データベース管理アプリケーション350は、データベース管理サービス103の記憶装置206に格納され、CPU203によって実行される。データベース管理アプリケーション350は、通信部351、データベース管理部352、オブジェクトデータベース353を有する。通信部351は、ネットワークインタフェース202を介して、Topicイベント管理アプリケーション340と通信を行う。データベース管理部352は、オブジェクトデータベース353の管理を行う。データベース管理部352は、通信部351を介して、オブジェクトデータベース353のテーブル情報更新要求や、取得要求を受信する。データベース管理部352は、通信部351を介した要求を受けて、オブジェクトデータベース353に対し、テーブル情報更新操作やデータの取得処理を行い、通信部351を介して、処理結果を返す。
オブジェクトデータベース353は、NoSQL型のデータベースである。オブジェクトデータベース353は、スクリプト管理部360のスクリプトの処理結果を管理するAction情報テーブルと、デバイス情報Topic321のメッセージ情報を管理するメッセージ情報テーブルとを有する。
Action情報テーブルの一例を表1に示す。
Action情報テーブルの一例を表1に示す。
ActionIdカラムは、スクリプト管理部360の各スクリプトを一意に識別するための値を格納するカラムである。Topicカラムは、ActionIdに対応するスクリプトがSubを行っている登録先Topicのキーを格納するカラムである。
メッセージ情報テーブルの一例を表2に示す。
メッセージ情報テーブルの一例を表2に示す。
MessageIdカラムは、各メッセージを一意に識別する値を格納するカラムである。Topicカラムは、MessageIdに対応するTopicの登録先を格納するカラムである。ActionIdカラムは、MessageIdに紐づいた処理を行っているスクリプト管理部360のスクリプトを一意に識別する値を格納するカラムである。Resultカラムは、ActionIdに対応するスクリプトの処理結果を示す値を格納するカラムである。「Success」は、処理の成功、「Error」は、処理の失敗、「Unnecessary」は、結果を無視しても構わない状態、空白は初期状態であることを示す。
[処理シーケンス]
図4は、実施例1のシステム全体の処理シーケンスを示す図である。
図4の処理シーケンスは、MFP111のトナーカートリッジのエンプティエラーが発生してから、エラーに対する処理が完了したことをMFP111が検知するまでの処理シーケンスである。前提として、デバイス情報送信アプリケーション300による成功確認Topic322からのメッセージのSub、Topicイベント管理アプリケーション340によるデバイス情報Topic321からのメッセージのSubが開始されているものとする。
図4は、実施例1のシステム全体の処理シーケンスを示す図である。
図4の処理シーケンスは、MFP111のトナーカートリッジのエンプティエラーが発生してから、エラーに対する処理が完了したことをMFP111が検知するまでの処理シーケンスである。前提として、デバイス情報送信アプリケーション300による成功確認Topic322からのメッセージのSub、Topicイベント管理アプリケーション340によるデバイス情報Topic321からのメッセージのSubが開始されているものとする。
S400において、デバイス情報送信アプリケーション300が有するデバイス情報管理部302が、トナーカートリッジのエンプティエラーを検知し、メッセージ生成部303がエラー情報のPubメッセージを生成する。そして、通信部301が、メッセージ生成部303が生成したPubメッセージを、デバイス情報Topic321にPubする。また、メッセージのPubが行われると同時に、再送判定部305が、Pubのリトライを判断するための時刻カウントを開始する。Pubされたメッセージは、IoT管理アプリケーション310のTopic管理部320によって、デバイス情報Topic321に登録される。登録されるメッセージの内容に関して、図5を参照して説明する。
図5は、デバイス情報Topic321に登録されるメッセージの一例である。
メッセージ500は、json形式で構成されている。「messageId」は、メッセージ500を一意に識別するIDであり、メッセージ生成部303が発行したIDである「MESSAGE001」が記載されている。「topics」はメッセージの登録先を示す値であり、MFP111のデバイス情報Topicを示す「DeviceA/DeviceInfo」が記載されている。「eventType」は、メッセージのイベント種別であり、カートリッジエラーを示す値が記載されている。「errorCode」は、エラーを一意に識別するIDであり、カートリッジのエンプティエラーを示す値が記載されている。
メッセージ500は、json形式で構成されている。「messageId」は、メッセージ500を一意に識別するIDであり、メッセージ生成部303が発行したIDである「MESSAGE001」が記載されている。「topics」はメッセージの登録先を示す値であり、MFP111のデバイス情報Topicを示す「DeviceA/DeviceInfo」が記載されている。「eventType」は、メッセージのイベント種別であり、カートリッジエラーを示す値が記載されている。「errorCode」は、エラーを一意に識別するIDであり、カートリッジのエンプティエラーを示す値が記載されている。
図4の説明に戻る。S401において、Topicイベント管理アプリケーション340が有するメッセージ解析部343が、通信部341を介して、デバイス情報Topic321からメッセージ500を受信する。続いて、S402において、S400でデバイス情報Topic321にメッセージが登録されたことがスクリプト管理アプリケーション330に通知される。スクリプト管理アプリケーション330が有するスクリプト管理部360が、即時処理Action361と、非即時処理Action362とを駆動させる。そして、即時処理Action361が、デバイス情報Topic321に対し、Subの開始リクエストを行い、デバイス情報Topic321からメッセージの受信が開始される。
S403において、S402で即時処理Action361がSubを開始したことに応じて、Topic情報管理部320が、即時処理Action361がSubを開始したことをSubイベント情報通知Topic324にメッセージとして登録する。このメッセージの内容に関して、図6を参照して説明する。
図6は、Subイベント情報通知Topic324に登録されるメッセージの一例である。
図6(A)のメッセージ600は、即時処理Action361のSub開始イベントを示し、json形式で構成されている。「clientId」は、Subを開始したクライアントを一意に特定するIDである。なお、この例では、即時処理Action361のClientIdは「ImmediateAction」、非即時処理Action362のClientIdは「StoreAction」であるものとする。メッセージ600の「cilentId」は、即時処理Action361を示す「ImmediateAction」である。「timeStamp」は、イベント発生時刻を示す。「eventType」はイベントの種別を示し、Subの開始を示すsubscribedが記載されている。「topics」は、イベントが発生した登録先を示す値であり、MFP111のデバイス情報Topicを示す「DeviceA/DeviceInfo」が記載されている。
図6(A)のメッセージ600は、即時処理Action361のSub開始イベントを示し、json形式で構成されている。「clientId」は、Subを開始したクライアントを一意に特定するIDである。なお、この例では、即時処理Action361のClientIdは「ImmediateAction」、非即時処理Action362のClientIdは「StoreAction」であるものとする。メッセージ600の「cilentId」は、即時処理Action361を示す「ImmediateAction」である。「timeStamp」は、イベント発生時刻を示す。「eventType」はイベントの種別を示し、Subの開始を示すsubscribedが記載されている。「topics」は、イベントが発生した登録先を示す値であり、MFP111のデバイス情報Topicを示す「DeviceA/DeviceInfo」が記載されている。
図6(B)のメッセージ601は、非即時処理Action361のSub開始イベントを示し、json形式で構成されている。メッセージ601の「cilentId」は、非即時処理Action362を示す「StoreAction」である。その他の要素に関しては、メッセージ600に準じているので、詳細な説明は割愛する。
図4の説明に戻る。S404において、Topicイベント管理アプリケーション340が有するメッセージ解析部343が、通信部341を介して、Subイベント情報通知Topic324からメッセージ600を受信する。メッセージ解析部343は、受信したメッセージ600を解析することによって、即時処理Action361がデバイス情報Topic321からSubを開始したことを検知する。
S405において、メッセージ解析部343が、通信部341を介して、データベース管理アプリケーション350に、即時処理Action361が処理を開始した旨を送信し、情報の更新を要求する。データベース管理アプリケーション350が有するデータベース管理部352が、通信部351を介して更新要求を受信する。データベース管理部352は、受信した更新要求に従って、オブジェクトデータベース353のAction情報テーブルとメッセージ情報テーブルを更新する。
表3は、実施例1におけるS405の処理が完了した時のAction情報テーブルを示す。
表3は、実施例1におけるS405の処理が完了した時のAction情報テーブルを示す。
ActionIdカラムには、即時処理Action361のActionIdである「ImmediateAction」が格納される。Topicカラムには、即時処理ActionがSubを開始したTopicであるデバイス情報Topic321を示す「DeviceA/DeviceInfo」が格納される。
表4は、実施例1におけるS405の処理が完了した時のメッセージ情報テーブルを示す。
表4は、実施例1におけるS405の処理が完了した時のメッセージ情報テーブルを示す。
MessageIdカラムには、処理結果に対応するMessageIdである「MESSAGE001」が格納される。Topicカラムには、MessageIdに対応するTopicの登録先である「DeviceA/DeviceInfo」が格納される。ActionIdカラムには、即時処理Action361のActionIdである「ImmediateAction」が格納される。Resultカラムは、処理初期状態のため空白となっている。なお、Actionがユースケースにおいて重要なActionでない場合は、この時点で、Resultを「Unnecessary」の値にする。なお、即時処理Action361、非即時処理Action362は、ユースケースにおいて重要なActionであるため、Resultは「Unnecessary」に設定されない。
図4の説明に戻る。S406において、非即時処理Action362が、デバイス情報Topic321に対し、Subの開始リクエストを行う。これにより、デバイス情報Topic321からメッセージの受信が開始される。S406で非即時処理Action362がSubを開始したことに応じて、S407において、Topic情報管理部320が、その旨をSubイベント情報通知Topic324にメッセージとして登録する。登録されるメッセージは、図6(B)のメッセージ601である。
S408において、Topicイベント管理アプリケーション340が有するメッセージ解析部343が、通信部341を介して、デバイス情報Topic321からメッセージ601を受信する。メッセージ解析部343は、受信したメッセージ601を解析することによって、非即時処理Action362がデバイス情報Topic321からSubを開始したことを検知する。
S409において、メッセージ解析部343が、通信部341を介して、データベース管理アプリケーション350に、非即時処理Action362が処理を開始した旨をAction情報更新要求として送信する。データベース管理アプリケーション350が有するデータベース管理部352は、通信部351を介して、Action情報更新要求を受信する。そして、データベース管理部352は、Action情報更新要求に従って、オブジェクトデータベース353のAction情報テーブルを更新する。
表5は、実施例1におけるS409の処理が完了した時のAction情報テーブルを示す。
表5は、実施例1におけるS409の処理が完了した時のAction情報テーブルを示す。
ActionIdカラムには、非即時処理Action362のActionIdである「StoreAction」が格納される。Topicカラムには、非即時処理Action362がSubを開始したTopicであるデバイス情報Topic321を示す「DeviceA/DeviceInfo」が格納される。つまり、S409の処理が完了した時点では、Action情報テーブルに、デバイス情報Topic321のSubscriberとして、即時処理Action361と非即時処理Action362とが登録されている。
表6は、実施例1におけるS409の処理が完了した時のメッセージ情報テーブルを示す。
表6は、実施例1におけるS409の処理が完了した時のメッセージ情報テーブルを示す。
MessageIdカラムには、処理結果に対応するMessageIdである「MESSAGE001」が格納される。Topicカラムには、MessageIdに対応するTopicの登録先である「DeviceA/DeviceInfo」が格納される。ActionIdカラムには、非即時処理Action362のActionIdである「StoreAction」が格納される。Resultカラムは、処理初期状態のため空白となっている。
図4の説明に戻る。S410において、即時処理Action361が、デバイス情報Topic321からメッセージ500(第1メッセージ)を受信する。即時処理Action361が、受信したメッセージ500を解析し、即時処理を要するかを判定し、所定の処理を行う。例えば、即時処理Action361は、トナーカートリッジのエンプティエラーを受けて、関係者へのメール通知処理を行う処理を行う。即時処理の判定および処理の内容に関しては、特に限定しない。
S411において、即時処理Action361が、処理の結果をPubメッセージとして生成し、Action処理結果Topic323にPubする。Pubされたメッセージは、IoT管理アプリケーション310のTopic管理部320によって、Action処理結果Topic323に登録される。すなわち、Action処理結果Topic323は、以下の処理を行う第3メッセージ管理サービスとして機能する。Action処理結果Topic323は、即時処理Action361をパブリッシャーとして、第1メッセージ(メッセージ500)の即時処理Action361での処理結果に対応するメッセージを受け取る。Action処理結果Topic323に登録されるメッセージの内容に関して、図8を参照して説明する。なお、S411において、即時処理Action361は、処理に成功したことをPubしたものとする。
図8は、Action処理結果Topic323に登録されるメッセージの一例である。
図8(A)のメッセージ800は、json形式で構成されている。「clientId」は、Actionを一意に識別するIDである。メッセージ600の「cilentId」は、非即時処理Action362を示す「ImmediateAction」である。「topics」は、Actionが処理を行う際の、メッセージを受信した登録先を示すキーである。「topics」には、MFP111のデバイス情報Topicを示す「DeviceA/DeviceInfo」が記載されている。「result」は、処理の結果を示す値である。「messageId」は、メッセージ500を一意に識別するIDである。「result」には、メッセージ500の「messageId」がそのまま転載される。
図8(A)のメッセージ800は、json形式で構成されている。「clientId」は、Actionを一意に識別するIDである。メッセージ600の「cilentId」は、非即時処理Action362を示す「ImmediateAction」である。「topics」は、Actionが処理を行う際の、メッセージを受信した登録先を示すキーである。「topics」には、MFP111のデバイス情報Topicを示す「DeviceA/DeviceInfo」が記載されている。「result」は、処理の結果を示す値である。「messageId」は、メッセージ500を一意に識別するIDである。「result」には、メッセージ500の「messageId」がそのまま転載される。
図8(B)のメッセージ801は、非即時処理Action361のSub開始イベントを示し、json形式で構成されている。メッセージ601の「cilentId」は、非即時処理Action362を示す「StoreAction」である。その他の要素に関しては、メッセージ800に準じているので、詳細な説明は割愛する。
図4の説明に戻る。S412において、Topicイベント管理アプリケーション340が有するメッセージ解析部343が、Action処理結果Topic323からメッセージ800を受信する。メッセージ解析部343は、受信したメッセージ800の解析を行い、即時処理Action361がMESSAGE001に紐づく処理に成功したことを検知する。
S413において、メッセージ解析部343が、S412での解析結果に従い、データベース管理アプリケーション350にデータの更新依頼を行う。データベース管理アプリケーション350が有するデータベース管理部352は、更新依頼を受けて、オブジェクトデータベース353の更新を行う。即時処理Action361のMESSAGE001に紐づく処理が完了したことが、メッセージ情報テーブルに反映される。すなわち、Topicイベント管理アプリケーション340は、デバイス情報Topic321から配信された第1メッセージの第1サービス(即時処理Action361)での処理の完了に応じ、以下の処理を行う第1登録手段として機能する。Topicイベント管理アプリケーション340は、即時処理Action361での第1メッセージの処理結果をデータベース管理サービス103に登録する。
表7は、実施例1におけるS413の処理が完了した時のメッセージ情報テーブルを示す。
表7は、実施例1におけるS413の処理が完了した時のメッセージ情報テーブルを示す。
表7では、1行目のResultカラムの処理結果が、空白から「Success」に更新されている。その他の要素に関しては、表6と同様であるので、詳細な説明は割愛する。
S414において、Topicイベント管理アプリケーション340が、即時処理Action361、非即時処理Action362の処理状況の確認と、処理の完了の判定を行う。本処理に関しては、図7のフローチャートを参照して説明する。
S414において、Topicイベント管理アプリケーション340が、即時処理Action361、非即時処理Action362の処理状況の確認と、処理の完了の判定を行う。本処理に関しては、図7のフローチャートを参照して説明する。
図7は、Topicイベント管理アプリケーション340によるAction処理状況の判定処理の一例を説明するフローチャートである。
S700において、Topicイベント管理アプリケーション340が、通信部341を介して、データベース管理アプリケーション350からAction情報を取得する。Topicイベント管理アプリケーション340は、表3に示すAction情報を取得する。
S700において、Topicイベント管理アプリケーション340が、通信部341を介して、データベース管理アプリケーション350からAction情報を取得する。Topicイベント管理アプリケーション340は、表3に示すAction情報を取得する。
S701において、メッセージ解析部343が、S700で取得したAction情報を参照して、デバイス情報Topic321のSubscriberとなっているActionを特定する。デバイス情報Topic321のSubscriberが即時処理Action361と非即時処理Action362であることが特定される。
S702において、メッセージ解析部343が、通信部341を介して、データベース管理アプリケーション350からメッセージ情報を取得する。取得されるメッセージ情報は、S701で特定されたActionに限定される。即時処理Action361と非即時処理Action362のメッセージ情報が取得される。
S703において、メッセージ解析部343が、S702で取得したメッセージ情報を参照して、S701で特定したActionの処理のうち、予め決められた重要なActionが完了しているかを判定する。具体的には、メッセージ解析部343は、メッセージ情報の「Result」を参照して判定を行う。「Result」に空白の値が存在する場合、あるいは要素が見つからなかった場合、メッセージ解析部343は、まだ重要なActionが完了していないと判断して、処理を終了する。「Result」に空白の値が存在しない場合、メッセージ解析部343は、重要なActionが完了していると判断して、処理がS704に進む。S704において、Topicイベント管理アプリケーション340が有するメッセージ生成部342が、重要なActionの処理が成功したことを示すPubメッセージを生成する。
図4の説明に戻る。S414における処理が完了した時点では、メッセージ情報は、表7が示す通りであり、非即時処理Action362の「Result」が空白であるので、重要なActionが完了していないと判断される。S415において、非即時処理Action362が、デバイス情報Topic321からメッセージ500を受信する。非即時処理Action362は、受信したメッセージ500を、例えばAmazonS3やAmazon Kinesisストリームなどに送信し、メッセージの保管処理を行うが、処理の内容に関しては、特に限定しない。
S416において、非即時処理Action362が、処理の結果をPubメッセージとして生成し、Action処理結果Topic323にPubする。すなわち、Action処理結果Topic323は、非即時処理Action362をパブリッシャーとして、第1メッセージの非即時処理Action362での処理結果に対応するメッセージを受け取る。具体的には、Pubされたメッセージは、IoT管理アプリケーション310が有するTopic管理部320によって、Action処理結果Topic323に登録される。なお、S416において、非即時処理Action362は、処理に成功したことを示すメッセージをPubしたものとし、Action処理結果Topic323に登録されたメッセージは、メッセージ801とする。
S417において、Topicイベント管理アプリケーション340が有するメッセージ解析部343が、Action処理結果Topic323からメッセージ801を受信する。メッセージ解析部343は、受信したメッセージ801の解析を行い、非即時処理Action361がMESSAGE001に紐づく処理に成功したことを検知する。また、メッセージ解析部343は、メッセージ801を解析することで、非即時処理Action362がMESSAGE001に紐づく処理に成功したことを検知する。
S418において、メッセージ解析部343が、S416で解析した結果に従い、Toデータベース管理アプリケーション350にデータの更新依頼を行う。データベース管理アプリケーション350が有するデータベース管理部352は、更新依頼を受けて、オブジェクトデータベース353の更新を行う。非即時処理Action362のMESSAGE001に紐づく処理が完了したことが、メッセージ情報テーブルに反映される。すなわち、Topicイベント管理アプリケーション340は、デバイス情報Topic321により配信された第1メッセージの第2サービス(非即時処理Action362)での処理の完了に応じて、以下の処理を行う第2登録手段として機能する。Topicイベント管理アプリケーション340は、非即時処理Action362での第1メッセージの処理結果をデータベース管理サービス103に登録する。
表8は、実施例1におけるS418の処理が完了した時のメッセージ情報テーブルを示す。
表8に示すメッセージ情報テーブルでは、2行目のResultカラムの処理結果が、空白から「Success」に更新されている。
表8は、実施例1におけるS418の処理が完了した時のメッセージ情報テーブルを示す。
S419において、S414と同様に、図7のフローチャートの処理が実行される。つまり、Topicイベント管理アプリケーション340が、即時処理Action361、非即時処理Action362の処理状況の判定処理を実行する。S419における処理が完了した時点では、メッセージ情報は、表8に示す通りであり、「Result」が空白のActionは存在しない。したがって、重要なActionが完了していると判定される。その結果、メッセージ生成部342が、重要なActionの処理が成功したことを示すPubメッセージを生成する。この例では、デバイス情報Topic321の全てのSubscriberでの処理結果が成功を示している場合に、重要なActionの処理が成功したことを示すPubメッセージが生成される。もちろん、デバイス情報Topic321の予め決められた一部のSubscriberでの処理が成功した場合に、重要なActionの処理が成功したことを示すPubメッセージが生成されるようにしてもよい。
S420において、メッセージ生成部342が、S419で生成されたPubメッセージを、通信部341を介して、成功確認Topic322にPubする。Pubされたメッセージは、IoT管理アプリケーション310のTopic管理部320によって、成功確認Topic322に登録される。すなわち、Topicイベント管理アプリケーション340は、第1メッセージの処理結果に従い、以下の処理を行う配信手段として機能する。Topicイベント管理アプリケーション340は、成功確認Topic322に対し、第1メッセージの処理の成功を示す第2メッセージを配信する。成功確認Topic322に登録される第2メッセージに関して、図9を参照して説明する。
図9は、成功確認Topic322に登録されるメッセージの一例である。
メッセージ900は、json形式で構成されている。「messageId」には、図5のメッセージ500を示す「MESSAGE001」が記載されている。「result」は、処理の結果を示す値である。図9に示す例では、「result」には、SubscriberとしてのActionでのメッセージ500の処理が全て成功したことを示す「Success」が記載されている。
メッセージ900は、json形式で構成されている。「messageId」には、図5のメッセージ500を示す「MESSAGE001」が記載されている。「result」は、処理の結果を示す値である。図9に示す例では、「result」には、SubscriberとしてのActionでのメッセージ500の処理が全て成功したことを示す「Success」が記載されている。
図4の説明に戻る。S421において、デバイス管理アプリケーション300のメッセージ生成部304が、通信部301を介して、成功確認Topic322からメッセージ900を受信する。メッセージ解析部343は、受信したメッセージ900を解析することで、S400で発行したメッセージIDである「MESSAGE001」に関連するActionが全て正常に成功したと判断する。「MESSAGE001」に関連するActionがすべて正常に成功したので、再送判定部305が、S400で開始した時刻カウントのカウントアップを終了する。これにより、デバイス管理アプリケーション300は、S400を再度実行する必要がないと判断する。なお、S400からS421の処理が、リトライの所定時間を超えていないものとする。S400からS421の処理の途中で、リトライの所定時間を超えた場合、S400の処理が再度実行される。実施例1の情報処理システムによれば、1つのPublisherがメッセージを送信するTopicに複数のSubscriberが存在する場合でも、疎結合性を確保しつつ、複数のSubscriberに適切にメッセージを届けることができる。
(実施例2)
実施例2の情報処理システムは、実施形態2では、WebサービスとしてのTopicイベント管理サービス102を稼働させないことで、運用コストの削減を図る。
実施例2の情報処理システムは、実施形態2では、WebサービスとしてのTopicイベント管理サービス102を稼働させないことで、運用コストの削減を図る。
図10は、実施例2の全体システム構成を示す図である。
IoT管理サービス101、データベース管理サービス103、スクリプト管理サービス104、MFP111は、ネットワーク120を介して接続されている。その他の要素に関しては、図1と同様のため、詳細な説明は割愛する。
IoT管理サービス101、データベース管理サービス103、スクリプト管理サービス104、MFP111は、ネットワーク120を介して接続されている。その他の要素に関しては、図1と同様のため、詳細な説明は割愛する。
図11は、実施例2のソフトウェア構成を示す図である。
図3を参照して説明したシステムの要素と同様の要素については同じ符号を付し、詳細な説明は割愛する。
図3を参照して説明したシステムの要素と同様の要素については同じ符号を付し、詳細な説明は割愛する。
データベース管理アプリケーション1100は、データベース管理サービス103の記憶装置206に格納され、CPU203によって実行される。データベース管理アプリケーション1100は、通信部1101、データベース管理部352、オブジェクトデータベース353を有する。通信部1101は、ネットワークインタフェース202を介して、スクリプト管理アプリケーション330と通信を行う。
IoT管理アプリケーション310のTopic情報管理部1110は、デバイス情報Topic321、成功確認Topic322、Subイベント情報通知Topic324を有する。
スクリプトアプリケーション330のスクリプト管理部1120は、即時処理Action1121、非即時処理Action1122、Subイベント解析Action1123を管理する。即時処理Action1121は、図3の即時処理Action361の機能に加えて、図7を参照して説明したAction処理状況の判定処理を行うことが可能である。また、非即時処理Action1122は、図3の非即時処理Action362の機能に加えて、図7を参照して説明したAction処理状況の判定処理を行うことが可能である。
Subイベント解析Action1123は、Subイベント情報通知Topic324に対するPubが行われたことを受けて駆動するスクリプトである。Subイベント解析Action1123は、Subイベント情報通知Topic324に対するSubを開始し、Pubされたメッセージを受信する。Subイベント解析Action1123は、受信したメッセージの解析を行い、即時処理Action1121、非即時処理Action1122がSubを開始したことを検知する。そして、Subイベント解析Action1123は、Action情報の登録をデータベース管理アプリケーション1100に要求する。
図12は、実施例2のシステム全体の処理シーケンスを示す図である。
図12の処理シーケンスの前提として、デバイス情報送信アプリケーション300による成功確認Topic322からのメッセージのSubが開始されているものとする。S1200の処理は、図4のS400の処理と同様であるので、詳細な説明は割愛する。また、S1201乃至S1202の処理は、図4のS402乃至S403の処理と同様であるので、詳細な説明は割愛する。
図12の処理シーケンスの前提として、デバイス情報送信アプリケーション300による成功確認Topic322からのメッセージのSubが開始されているものとする。S1200の処理は、図4のS400の処理と同様であるので、詳細な説明は割愛する。また、S1201乃至S1202の処理は、図4のS402乃至S403の処理と同様であるので、詳細な説明は割愛する。
S1203において、S1202でSubイベント情報通知Topic324にメッセージが登録されたことが、スクリプト管理アプリケーション330に通知される。スクリプト管理アプリケーション330のスクリプト管理部1120は、この通知を受けて、Subイベント解析Action1123を駆動させる。Subイベント解析Action1123は、Subイベント情報通知Topic324に対し、Subの開始リクエストを行い、Subイベント情報通知Topic324からのメッセージの受信を開始する。S1204において、Subイベント解析Action1123が、Subイベント情報通知Topic324からメッセージ600を受信する。Subイベント解析Action1123は、受信したメッセージ600を解析することで、即時処理Action1121がデバイス情報Topic321からSubを開始したことを検知する。
S1205において、Subイベント解析Action1123が、データベース管理アプリケーション350に、即時処理Action1121が処理を開始したことを示すメッセージを送信することで、情報の更新要求を行う。データベース管理アプリケーション350のデータベース管理部352は、通信部351を介して、情報の更新要求を受信し、オブジェクトデータベース353のAction情報テーブルを更新する。S1205の処理が完了した時のAction情報テーブルの状態は表3の通りとなる。
S1206乃至S1207の処理は、図4のS406乃至S407の処理と同様であるので、詳細な説明は割愛する。S1208において、Subイベント解析Action1123が、Subイベント情報通知Topic324からメッセージ601を受信する。Subイベント解析Action1123は、受信したメッセージ601を解析することで、非即時処理Action1122がデバイス情報Topic321からSubを開始したことを検知する。
S1209において、Subイベント解析Action1123が、データベース管理アプリケーション350に、非即時処理Action1122が処理を開始したことを示すメッセージを送信することで、情報の更新要求を行う。データベース管理アプリケーション350のデータベース管理部352は、通信部351を介して、情報の更新要求を受信し、オブジェクトデータベース353のAction情報テーブルを更新する。S1209の処理が完了した時のAction情報テーブルの状態は表5の通りとなる。
S1210の処理は、図4のS410の処理と同様であるので、詳細な説明は割愛する。S1211において、即時処理Action1121が、処理の結果をデータベース管理アプリケーション350に送信することで、情報の更新要求を行う。データベース管理アプリケーション350のデータベース管理部352は、通信部351を介して、情報の更新要求を受信し、オブジェクトデータベース353のメッセージ情報テーブルを更新する。すなわち、即時処理Action1121自身が、第1登録手段として、即時処理Action1121での処理結果をデータベース管理サービス103に登録する。表9は、S1211の処理が完了した時のメッセージ情報テーブルを示す。
S1212において、即時処理Action1121が、図7を参照して説明したAction処理状況の判定処理を実行する。S1212の処理の時点では、メッセージ情報は、表9の通りである。非即時処理Actionの情報が登録されていない。したがって、Action処理状況の判定処理において、重要なActionが完了していないと判断される。S1213の処理は、図4のS415の処理と同様であるので、詳細な説明は割愛する。
S1214において、非即時処理Action1122が、処理結果をデータベース管理アプリケーション350に送信することで、情報の更新要求を行う。データベース管理アプリケーション350のデータベース管理部352は、通信部351を介して、情報の更新要求を受信し、オブジェクトデータベース353のメッセージ情報テーブルを更新する。すなわち、非即時処理Action1122自身が、第2登録手段として、非即時処理Action1122での処理結果をデータベース管理サービス103に登録する。S1214の処理が完了した時のメッセージ情報テーブルの状態は、表8の通りとなる。
S1215において、非即時処理Action1122が、図7を参照して説明したAction処理状況の判定処理を実行する。S1215の処理の時点では、メッセージ情報は、表8の通りである。「Result」が空白のActionは存在しないので、重要なActionが完了していると判断される。したがって、非即時処理Action1122が、重要なActionの処理が成功したことを示すPubメッセージを生成する。S1216において、Topicイベント管理アプリケーション340が有するメッセージ生成部342が、S1215で生成されたPubメッセージを、通信部341を介して、成功確認Topic322にPubする。S1217の処理は、図4のS421の処理と同様であるので、説明は割愛する。実施例2の情報処理システムによれば、Topicイベント管理サービス102を稼働させずに、実施例1の情報処理システムと同様の効果を得ることができる。
(実施例3)
実施例3の情報処理システムは、Topicイベント管理サービス102、データベース管理サービス103を稼働させずに、実施例1と同様の効果を得る。
実施例3の情報処理システムは、Topicイベント管理サービス102、データベース管理サービス103を稼働させずに、実施例1と同様の効果を得る。
図13は、実施例3の全体システム構成を示す図である。
IoT管理サービス101、スクリプト管理サービス104、MFP111は、ネットワーク120を介して接続されている。その他の要素に関しては、図1と同様のため、詳細な説明は割愛する。
IoT管理サービス101、スクリプト管理サービス104、MFP111は、ネットワーク120を介して接続されている。その他の要素に関しては、図1と同様のため、詳細な説明は割愛する。
図14は、実施例3のソフトウェア構成を示す図である。
図3を参照して説明したシステムの要素と同様の要素については同じ符号を付し、詳細な説明は割愛する。
IoT管理アプリケーション310が有するTopic情報管理部1400は、デバイス情報Topic321、成功確認Topic322、非即時処理Topic1401を管理する。非即時処理Topic1401は、非即時処理Action1412にデバイス情報を伝えるためのTopicである。
図3を参照して説明したシステムの要素と同様の要素については同じ符号を付し、詳細な説明は割愛する。
IoT管理アプリケーション310が有するTopic情報管理部1400は、デバイス情報Topic321、成功確認Topic322、非即時処理Topic1401を管理する。非即時処理Topic1401は、非即時処理Action1412にデバイス情報を伝えるためのTopicである。
スクリプト管理アプリケーション1110が有するスクリプト管理部1410は、即時処理Action1411、非即時処理Action1412を管理する。即時処理Action1411は、スクリプト処理の結果をPubメッセージとして生成し、非即時処理Topic1401にPubする。即時処理Action1411のその他の機能に関しては、図3の即時処理Action361と同様のため、詳細な説明は割愛する。
非即時処理Action1412は、非即時処理Topic1401に対するメッセージのPubが行われたことを受けて駆動するスクリプトである。非即時処理Action1412は、非即時処理Topic1401に対するSubを開始し、Pubされたメッセージを受信する。非即時処理Action1412のその他の機能に関しては、図3の非即時処理Action362と同様のため、詳細な説明は割愛する。
図15は、実施例3のシステム全体の処理シーケンスを示す図である。
図15の処理シーケンスの前提として、デバイス情報送信アプリケーション300による成功確認Topic322からのメッセージのSubが開始されているものとする。S1500,S1501,S1502の処理は、それぞれ、図4のS400,S402,S410の処理と同様であるので、詳細な説明は割愛する。
図15の処理シーケンスの前提として、デバイス情報送信アプリケーション300による成功確認Topic322からのメッセージのSubが開始されているものとする。S1500,S1501,S1502の処理は、それぞれ、図4のS400,S402,S410の処理と同様であるので、詳細な説明は割愛する。
S1503において、即時処理Action1411が、S1502で受信したメッセージ600を非即時処理Topic1401にPubする。S1504において、S1503で非即時処理Topic1401にメッセージが登録されたことがスクリプト管理アプリケーション330に通知される。スクリプト管理アプリケーション330が有するスクリプト管理部1410が、この通知を受けて、非即時処理Action1412を駆動させる。非即時処理Action1412は、非即時処理Topic1401に対し、Subの開始リクエストを行う。これにより、非即時処理Topic1401からのメッセージの受信が開始される。
S1505において、非即時処理Action1412が、非即時処理Topic1401からメッセージ600を受信し、図4のS415と同様に、メッセージの保管処理を行う。続いて、S1506において、非即時処理Action1412が、メッセージ900と同様のPubメッセージを生成し、成功確認Topic322にPubする。S1507の処理は、図4のS421の処理と同様であるので、詳細な説明は割愛する。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
Claims (8)
- ネットワークデバイスをパブリッシャーとしてメッセージを受け取る第1メッセージ管理サービスと、該ネットワークデバイスをサブスクライバーとして前記メッセージの処理の成功を示すメッセージを配信するための第2メッセージ管理サービスを含むシステムにおいて、
前記第1メッセージ管理サービスにより配信された第1メッセージの第1サービスでの処理の完了に応じて、前記第1サービスでの処理結果を情報管理サービスに登録する第1登録手段と、
前記第1メッセージ管理サービスにより配信された前記第1メッセージの第2サービスでの処理の完了に応じて、前記第2サービスでの処理結果を前記情報管理サービスに登録する第2登録手段と、
前記第1メッセージの処理結果に従い、前記第2メッセージ管理サービスに対して、前記第1メッセージの処理の成功を示す第2メッセージを配信する配信手段と、を有する
ことを特徴とする情報処理システム。 - 前記第1サービスをパブリッシャーとして、前記第1メッセージの前記第1サービスでの処理結果に対応するメッセージを受け取り、前記第2サービスをパブリッシャーとして前記第1メッセージの前記第2サービスでの処理結果に対応するメッセージを受け取る第3メッセージ管理サービスを有し、
前記第1登録手段および前記第2登録手段は、前記第3メッセージ管理サービスから前記第1メッセージの処理結果を受信して、前記第1メッセージの処理結果を含む前記第1メッセージの管理情報を前記情報管理サービスに登録する
ことを特徴とする請求項1に記載の情報処理システム。 - 前記情報管理サービスは、メッセージの識別情報と、前記第1メッセージ管理サービスの登録先と、前記第1メッセージを処理するサービスの識別情報と、前記第1メッセージの処理結果を管理する
ことを特徴とする請求項1または請求項2に記載の情報処理システム。 - 前記情報管理サービスには、前記第1メッセージ管理サービスのサブスクライバーとして、前記第1サービスと前記第2サービスとが登録され、
前記配信手段によって、前記サブスクライバーでの前記第1メッセージの処理結果に従い、前記第2メッセージ管理サービスに対して前記第2メッセージが配信される
ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。 - 前記第1サービスが、前記第1登録手段として、前記第1メッセージの前記第1サービスでの処理の完了に応じて、前記第1サービスでの処理結果を前記情報管理サービスに登録し、
前記第2サービスが、前記第2登録手段として、前記第1メッセージの前記第2サービスでの処理の完了に応じて、前記第2サービスでの処理結果を前記情報管理サービスに登録し、
前記第2サービスが、前記配信手段として、前記第1メッセージの処理結果に従い、前記第2メッセージ管理サービスに対して、前記第2メッセージを配信する
ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。 - 前記ネットワークデバイスは、画像処理装置を含み、
前記画像処理装置は、前記パブリッシャーとして、自身の所定の稼働情報を示すメッセージを前記第1メッセージ管理サービスに対して送信する
ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。 - 前記配信手段は、前記第1サービスと前記第2サービスにおける前記第1メッセージの処理結果が全て成功を示している場合に、前記第2メッセージ管理サービスに対して、前記第2メッセージを配信する
ことを特徴とする請求項1乃至6のいずれか1項に記載の情報処理システム。 - ネットワークデバイスをパブリッシャーとしてメッセージを受け取る第1メッセージ管理サービスと、該ネットワークデバイスをサブスクライバーとして前記メッセージの処理の成功を示すメッセージを配信するための第2メッセージ管理サービスを含むシステムにおける制御方法であって、
前記第1メッセージ管理サービスにより配信された第1メッセージの第1サービスでの処理の完了に応じて、前記第1サービスでの処理結果を情報管理サービスに登録する第1登録工程と、
前記第1メッセージ管理サービスにより配信された前記第1メッセージの第2サービスでの処理の完了に応じて、前記第2サービスでの処理結果を前記情報管理サービスに登録する第2登録工程と、
前記第1メッセージの処理結果に従い、前記第2メッセージ管理サービスに対して、前記第1メッセージの処理の成功を示す第2メッセージを配信する配信工程と、を有する
ことを特徴とする制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017145474A JP2019028599A (ja) | 2017-07-27 | 2017-07-27 | 情報処理システムおよび制御方法 |
US16/043,766 US10848580B2 (en) | 2017-07-27 | 2018-07-24 | Information processing system and control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017145474A JP2019028599A (ja) | 2017-07-27 | 2017-07-27 | 情報処理システムおよび制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019028599A true JP2019028599A (ja) | 2019-02-21 |
Family
ID=65039029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017145474A Pending JP2019028599A (ja) | 2017-07-27 | 2017-07-27 | 情報処理システムおよび制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10848580B2 (ja) |
JP (1) | JP2019028599A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210367829A1 (en) * | 2018-09-04 | 2021-11-25 | Palo Alto Networks, Inc. | Iot application learning |
CN114339456B (zh) * | 2022-03-16 | 2022-05-27 | 飞狐信息技术(天津)有限公司 | 一种视频发布方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080385B1 (en) * | 1997-08-18 | 2006-07-18 | Tibco Software Inc. | Certified message delivery and queuing in multipoint publish/subscribe communications |
GB2345164A (en) * | 1998-12-24 | 2000-06-28 | Ibm | Publish and subscribe data processing with subscriber option to request subscription propagation prior to acknowledgment |
US20080104044A1 (en) * | 2006-10-30 | 2008-05-01 | Constantinos Kardamilas | System and method for the remote operation and management of networked multi-function peripheral (MFP) devices via web feeds |
US7865550B2 (en) * | 2008-01-21 | 2011-01-04 | International Business Machines Corporation | Message processing control in a publish/subscribe system |
US8429238B2 (en) * | 2009-08-25 | 2013-04-23 | International Business Machines Corporation | Method for providing feedback to a publisher |
US8615580B2 (en) * | 2011-02-20 | 2013-12-24 | International Business Machines Corporation | Message publication feedback in a publish/subscribe messaging environment |
US9372739B2 (en) * | 2011-04-20 | 2016-06-21 | International Business Machines Corporation | Monitoring of subscriber message processing in a publish/subscribe messaging environment |
US9319473B2 (en) | 2012-12-18 | 2016-04-19 | Facebook, Inc. | Mobile push notification |
KR102272875B1 (ko) * | 2013-08-29 | 2021-07-05 | 콘비다 와이어리스, 엘엘씨 | 사물 인터넷 이벤트 관리 시스템 및 방법 |
US9654571B2 (en) * | 2014-01-21 | 2017-05-16 | Time Warner Cable Enterprises Llc | Publish-subscribe messaging in a content network |
US10001759B2 (en) * | 2014-08-11 | 2018-06-19 | Qualcomm Incorporated | Method and apparatus for automatically generating an events dictionary in an internet of things (IOT) network |
JP2018061142A (ja) * | 2016-10-05 | 2018-04-12 | キヤノン株式会社 | 管理装置、制御方法、及びプログラム |
-
2017
- 2017-07-27 JP JP2017145474A patent/JP2019028599A/ja active Pending
-
2018
- 2018-07-24 US US16/043,766 patent/US10848580B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10848580B2 (en) | 2020-11-24 |
US20190037041A1 (en) | 2019-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105025189B (zh) | 通信系统、图像处理装置及图像处理装置的控制方法 | |
WO2016131365A1 (zh) | 信息处理方法、客户端、服务器及计算机可读存储介质 | |
US9208476B2 (en) | Counting and resetting broadcast system badge counters | |
US20130067024A1 (en) | Distributing multi-source push notifications to multiple targets | |
US20030212834A1 (en) | High availability for event forwarding | |
JP2011076371A (ja) | ジョブ処理システム及びその方法、そのプログラム | |
US20130066980A1 (en) | Mapping raw event data to customized notifications | |
US10466942B2 (en) | Information processing system, method for controlling information processing system, and storage medium | |
CA2843284C (en) | Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application | |
JP6405255B2 (ja) | 通信システム、キュー管理サーバ、及び、通信方法 | |
US8694462B2 (en) | Scale-out system to acquire event data | |
US20130182288A1 (en) | Account management system | |
JP2019028599A (ja) | 情報処理システムおよび制御方法 | |
CN100468340C (zh) | 控制簇系统中事件消息递送的设备和方法 | |
CN109491767A (zh) | 分布式事务的处理方法和分布式系统 | |
JP6812673B2 (ja) | 画像処理システム、画像形成装置、データ共有方法、およびコンピュータプログラム | |
US10891096B2 (en) | Communication device, non-transitory computer-readable recording medium storing computer-readable instructions for communication device, and method performed by communication device | |
CN110928872B (zh) | 处理系统和方法 | |
JP2009199378A (ja) | メールチャットシステムに用いる中継装置 | |
CN110866743A (zh) | 提供装置、处理系统以及通信方法 | |
JP2018181012A (ja) | 業務連携システムおよび業務連携方法 | |
JP2019121081A (ja) | データ処理プログラム、データ処理方法、及びデータ処理装置 | |
JP2019160082A (ja) | システムおよびシステムにおける方法 | |
JP2016181144A (ja) | 情報管理システム、情報管理システムの制御方法、及び管理装置 | |
JP3006469B2 (ja) | メッセージ重送チェックシステム |