JP2019200577A - 制御方法、システム及びプログラム - Google Patents
制御方法、システム及びプログラム Download PDFInfo
- Publication number
- JP2019200577A JP2019200577A JP2018094506A JP2018094506A JP2019200577A JP 2019200577 A JP2019200577 A JP 2019200577A JP 2018094506 A JP2018094506 A JP 2018094506A JP 2018094506 A JP2018094506 A JP 2018094506A JP 2019200577 A JP2019200577 A JP 2019200577A
- Authority
- JP
- Japan
- Prior art keywords
- event
- time
- event data
- parameter
- database
- 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.)
- Granted
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
Description
また、プリンタ等のデバイスから発生した消耗品切れ等のイベントを蓄積し、イベントをWebAPIとして提供するサーバと、そのサーバからイベントを取得するために時刻を指定してポーリングを行うクライアントから構成されるシステムも存在する。このクライアントは、イベントの発生時刻を指定してサーバに対してリクエストを送信し、取得できたイベントの最新時刻を次回のポーリング時に指定することで、継続的にイベントを取得することができる。このようなシステム構成の場合、ポーリングを行うクライアント側で、どの時刻までのイベントを取得したかを管理する必要がある。
一方で、データベースからデータを取得する場合、コンピュータリソースの制限により一度のクエリで取得できるデータの件数に上限を設けることが多い。特に、WebAPIなどのインターネット上のサードパーティに公開するようなAPIの場合、大容量のデータ取得によるリソースの枯渇からサーバを守るために、データの取得件数に上限を設けることは必須である。
<ネットワーク構成>
図1は、本発明の一実施形態を示す管理システムを含むネットワークシステムの構成の一例を示す図である。
図1に示すように、本実施形態のネットワークシステムは、MFP101と、サーバ102、クライアント103を含む。なお、MFPは「Multifunction Peripheral」の略称であり、多機能周辺装置を示す。
図2は、本実施形態のネットワークシステムを構成する各装置のハードウェア構成の一例を示す図である。
図2(A)は、サーバ102、クライアント103を構成する情報処理装置のハードウェア構成の一例を示す図である。
CPU201は、RAM202、ROM203、記憶装置206などから読み込んだプログラムを実行する。RAM202は、CPU201のメモリやワークエリアとして機能する。ROM203は、プログラムや各種データを記憶する。記憶装置206は、プログラムや各種データを記憶する。
図2(B)は、MFP101のハードウェア構成の一例を示す図である。
CPU221は、RAM222、ROM223、記憶装置224などから読み込んだプログラムを実行し、内部バス230を介して各リソースを統括的に制御する。RAM222は、CPU221のメモリやワークエリアとして機能する。ROM223は、プログラムや各種データを記憶する。記憶装置224は、プログラムや各種データを記憶するHDD、SSDなどである。ネットワークI/F225は、LANなどのネットワークに接続されて、外部のネットワーク機器と片方向または双方向にデータとの通信を可能にする。
図3(A)は、MFP101のソフトウェア構成の一例を示す図である。
図3(A)に示すソフトウェア構成は、CPU221がRAM222、ROM223、記憶装置224などから読み込んだプログラムを実行することにより実現される。
イベント送信実行部313は、イベントを外部に送信、あるいは外部からの要求に応じてイベントを返却(送信)する判断を行うソフトウェアモジュールである。
通信部314は、ネットワークI/F225を介してサーバ102などの外部の機器と通信するためのソフトウェアモジュールである。
図3(B)に示すソフトウェア構成は、サーバ102を構成する情報処理装置のCPU201が、RAM202、ROM203、記憶装置206などから読み込んだプログラムを実行することにより実現される。
コード実行部325は、予め登録されたいくつかの条件を管理し、通信部324により受信した外部からのリクエスト、データの内容がいずれかの条件を満たす場合に、その条件に対応するコードの実行制御を行う。この実行制御に従い、前述したイベント処理部321やイベント取得部323による処理が実現されることになる。コード実行部325は、イベント処理部321やイベント取得部323などの処理を包括的に管理し、コードの実行制御に加え、リソースの割り当てや所定時間内に終えないコードの処理を終了する手段も備えている。
図3(C)に示すソフトウェア構成は、クライアント103を構成する情報処理装置のCPU201が、RAM202、ROM203、記憶装置206などから読み込んだプログラムを実行することにより実現される。
カーソル格納部332は、ポーリング処理部331が時刻を指定してポーリングを行う際に、どの時刻までのイベントまで取得したかを記憶するための情報(以下「カーソル」)を、クライアント103の記憶装置206に格納するためのソフトウェアである。
カーソル格納部332は、例えばデータベース等である。
通信部334は、ネットワークI/F205を介してサーバ102などの外部の機器と通信するためのソフトウェアモジュールである。
図4は、サーバ102の通信部324でMFP101のイベント送信実行部313からのイベントデータを受信した際に、コード実行部325によって実行されるイベント処理部321の処理(イベントを格納する処理系)の一例を示すフローチャートである。イベント処理部321は、第1の実行コードをサーバ102のリソース(メモリやCPU等)を用いて実行することによって実現される、本フローチャートの処理の主体となるソフトウェアモジュールである。なお、イベントを格納する処理系では、MFP101のイベント送信実行部313が通信部314によりサーバ102に対して送信されたイベントデータを、サーバ102で受信することでイベント格納処理が開始される。
一方、上記S411において、MFP101から受信したイベントがイベント格納条件に合致していると判定した場合(S411でYesの場合)、イベント処理部321は、S412に処理を進める。
”event”: {
”id”: ”c327d5eb-5fc6-4e5b-ad74-07aa119ccb65”,
”occurred_at”: ”2018-01-01T12:57:45.920Z_c327d5eb-5fc6-4e5b-ad74-07aa119ccb65”,
”device_id”: ”a9e431dc-1a48-406a-8c01-138f2e396062”,
”properties”: {
”consumable_type”: ”toner”,
”color”: ”cyan”,
”remaining_level”: ”Low”,
”cartridge_serial”: ”22b38b0f-46b0-402e-8219-4d62edf5209f”
}
}
}
図5は、イベントをポーリングで取得する処理系におけるイベント取得部323とポーリング処理部331の処理の一例を示すフローチャートである。
図5(A)は、クライアント103のポーリング処理部331の処理の一例を示すフローチャートである。このフローチャートの処理は、クライアント103を構成する情報処理装置のCPU201が、RAM202、ROM203、記憶装置206などから読み込んだプログラムを実行することにより実現される。なお、クライアント103のポーリング処理部331は、既定の間隔でサーバ102に対してイベントを取得するためのリクエストを送信する。以下、ポーリング処理部331を処理の主体として説明する。
一方、上記S511において、カーソルが取得できなかったと判定した場合(S511でNoの場合)、ポーリング処理部331は、S513に処理を進める。
GET https://api.sample.com/event?from=2018-01-01T12:56:43.687Z_f368c048-5c60-4eb6-9cae-ffe447fdcd26
”events”: [
{
”id”: ”c327d5eb-5fc6-4e5b-ad74-07aa119ccb65”,
”occurred_at”: ”2018-01-01T12:57:45.920Z_c327d5eb-5fc6-4e5b-ad74-07aa119ccb65”,
”device_id”: ”a9e431dc-1a48-406a-8c01-138f2e396062”,
”properties”: {
”consumable_type”: ”toner”,
”color”: ”cyan”,
”remaining_level”: ”Low”,
”cartridge_serial”: ”22b38b0f-46b0-402e-8219-4d62edf5209f”
}
},
{
”id”: ”a58b5915-dbe6-4a83-9c9c-3ae5ee7394ee”,
”occurred_at”: ”2018-01-01T12:57:46.345Z_a58b5915-dbe6-4a83-9c9c-3ae5ee7394ee”,
”device_id”: ”5919e52b-f81b-4249-b813-0455a20eaf81”,
”properties”: {
”consumable_type”: ”toner”,
”color”: ”magenta”,
”remaining_level”: ”Empty”,
”cartridge_serial”: ”f1887d40-ea99-4c3d-ac92-6ab7f5da5d8e”
}
},
{
”id”: ”42b4f7c1-c950-4485-8102-39aa4c9ba3fa”,
”occurred_at”: ”2018-01-01T12:57:47.324Z_42b4f7c1-c950-4485-8102-39aa4c9ba3fa”,
”device_id”: ”beeee118-06d7-4ba3-b761-7f10816dee3b”,
”properties”: {
”consumable_type”: ”toner”,
”color”: ”yellow”,
”remaining_level”: ”Low”,
”cartridge_serial”: ”8db99bb5-6073-4947-9d4a-fe936351ec57”
}
}
]
}
「取得対象期間の始点の時刻 < イベント発生時刻 ≦ 取得対象期間の終点の時刻」
なお、詳細は図5(B)で示す。
GET https://api.sample.com/event?from=2000-01-01T00:00:00.000Z
なお、デフォルト値がカーソルとして使用されるのは、主に初回のポーリング時や何らかの理由によりカーソル格納部332がリセットされた場合などである。
S514において、ポーリング処理部331は、取得したイベントデータをクライアント103のイベント格納部333に格納する。それと共に、ポーリング処理部331は、取得できたイベントのうち、最新のイベントの発生時刻(“occurred_at”に相当)を次回のポーリング時に指定するカーソルとしてカーソル格納部332に格納し、本フローチャートの処理を終了する。
表1に、イベントの発生時刻に一意な識別子を付与しないでイベント格納部322に格納されているイベントとその発生時刻の例を示す。
クライアント103は、カーソルを管理しているため、イベント取得部323がイベントを切り捨てた場合でも次回のポーリング時に取得することが可能である。しかし、同一発生時刻のイベント(例えば表1の「イベント100」と「イベント101」)が、一度に取得できるデータの上限をまたいで存在した場合に問題が発生する。以下、詳細に説明する。
表2に、イベントの発生時刻に一意な識別子を付与してイベント格納部322に格納されているイベントとその発生時刻の例を示す。
表3に、ある期間でのイベントの発生時刻と、イベント処理部321が実際にサーバ102のイベント格納部322に格納した時刻の例を示す。
図6(A)は、イベントの取得漏れが発生するケースを例示するタイミングチャートである。
TO1は、イベント1001の発生時刻である。
TO2は、イベント1002の発生時刻である。
TS2は、イベント1002がイベント処理部321によりイベント格納部322に格納された時刻である。
TEは、イベント取得対象期間の終点とする時刻である。
図6(A)において各処理の時刻の関係は以下の通りである。
TI < TO1 < TO2 < TS2 < TE < TS1
TO1、TO2、TS2、TS1の時刻関係は、図6(A)と同じである。
上述したようにイベント処理部321は、アーキテクチャの制限上、所定時間内に処理を終える必要があるが、割り当てられたリソースの不具合等により、コード実行部325によって処理が終了させられる(タイムアウトする)場合がある。本実施形態では、このタイムアウト時間を利用してイベント処理の追い越しによるイベントの取得漏れを防止する。
時間P1は、イベント処理部321のタイムアウト時間であり、時間P1は、時刻TT1とTO1の差に対応する。時刻T0は、現在時刻である。
従って、イベント取得対象期間の終点を現在時刻からP1以上過去に設定することで、仮に「イベント1002」が「イベント1001」の処理を追い越しても、現在時刻においてこれらのイベントは取得対象期間外のイベントであるため取得されることはない。
TE = T0 - P2 (ただし、P2 ≧ P1)
このように、現在時刻からタイムアウト時間を差し引くことで、イベント処理の追い越しに起因するイベントの取得漏れを防止することが可能となる。
S523において、イベント取得部323は、S521で設定したポーリング処理部331が指定したURLクエリパラメータ(カーソル)を始点、S522で設定した現在時刻からタイムアウト時間を差引いた時刻を終点としイベント取得対象期間を設定する。そして、イベント取得部323は、イベント格納部322から指定された期間分のイベントを取得する。すなわち、イベント取得部323は、上記始点と終点で特定されるイベント取得対象期間に含まれるイベント発生時刻を有するイベントデータを取得する。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施形態を組み合わせた構成も全て本発明に含まれるものである。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施形態及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
Claims (11)
- ネットワークデバイスで発生したイベントのそれぞれに係るイベントデータを、イベントの発生時刻とイベントごとにユニークな識別子とからなる時間情報をそれぞれに付与して管理するデータベースから、少なくとも一部のイベントデータを取得するためのシステムにおける制御方法であって、
指定された時刻と識別子とを含む情報を第1パラメータとして設定する第1設定工程と、
現在時刻から既定の時間を差し引いた時間情報を第2パラメータとして設定する第2設定工程と、
前記データベースから、前記第1パラメータ及び前記第2パラメータを用いて特定されたイベントデータを取得する取得工程と、
を有することを特徴とする制御方法。 - 前記取得工程では、前記第1パラメータと前記第2パラメータとで特定される期間に含まれる時間情報を有するイベントデータを、前記データベースから取得することを特徴とする請求項1に記載の制御方法。
- 前記第1パラメータとして設定される前記時刻と識別子とを含む情報は、イベントデータの取得を要求する要求元から指定されるものであり、
前記取得工程で取得されたイベントデータを、前記要求元に送信する送信工程を有することを特徴とする請求項1又は2に記載の制御方法。 - 前記要求元から指定される前記時刻と識別子とを含む情報は、前記要求元で取得済みのイベントデータの最新の時間情報に対応することを特徴とする請求項3に記載の制御方法。
- 前記既定の時間は、前記イベントデータをデータベースに格納する処理のタイムアウト時間以上の時間であることを特徴とする請求項1〜4のいずれか1項に記載の制御方法。
- コンピュータに、請求項1〜5のいずれか1項に記載の制御方法を実行させるためのプログラム。
- ネットワークデバイスで発生したイベントのそれぞれに係るイベントデータを管理するためのデータベースから、少なくとも一部のログを取得するためのシステムであって、
ネットワークデバイスから受信したイベントデータに、イベントの発生時刻とイベントごとにユニークな識別子とからなる時間情報を付与する付与手段と、
前記時間情報が付与されたイベントデータを前記データベースに格納する格納手段と、
指定された時刻と識別子とを含む情報を第1パラメータとして設定する第1設定手段と、
現在時刻から既定の時間を差し引いた時間情報を第2パラメータとして設定する第2設定手段と、
前記データベースから、第1パラメータ及び第2パラメータを用いて特定されたイベントデータを取得する取得手段と、
を有することを特徴とするシステム。 - 前記取得手段は、前記第1パラメータと前記第2パラメータとで特定される期間に含まれる時間情報を有するイベントデータを、前記データベースから取得することを特徴とする請求項7に記載のシステム。
- 前記第1パラメータとして設定される前記時刻と識別子とを含む情報は、イベントデータの取得を要求する要求元から指定されるものであり、
前記取得手段で取得されたイベントデータを、前記要求元に送信する送信手段を有することを特徴とする請求項7又は8に記載のシステム。 - 前記要求元から指定される前記時刻と識別子とを含む情報は、前記要求元で取得済みのイベントデータの最新の時間情報に対応することを特徴とする請求項9に記載のシステム。
- 前記既定の時間は、前記イベントデータをデータベースに格納する処理のタイムアウト時間以上の時間であることを特徴とする請求項7〜10のいずれか1項に記載のシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018094506A JP7114331B2 (ja) | 2018-05-16 | 2018-05-16 | 制御方法、システム及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2018094506A JP7114331B2 (ja) | 2018-05-16 | 2018-05-16 | 制御方法、システム及びプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2019200577A true JP2019200577A (ja) | 2019-11-21 |
| JP7114331B2 JP7114331B2 (ja) | 2022-08-08 |
Family
ID=68612168
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2018094506A Active JP7114331B2 (ja) | 2018-05-16 | 2018-05-16 | 制御方法、システム及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7114331B2 (ja) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10283276A (ja) * | 1997-04-10 | 1998-10-23 | Nippon Telegr & Teleph Corp <Ntt> | イベント順序補正方法 |
| JP2012169831A (ja) * | 2011-02-14 | 2012-09-06 | Fujitsu Ltd | トラフィックデータの監視システムおよびサーバ間データ整合方法 |
| JP2012198714A (ja) * | 2011-03-18 | 2012-10-18 | Fujitsu Ltd | イベント処理方法、イベント処理装置及びイベント処理プログラム |
-
2018
- 2018-05-16 JP JP2018094506A patent/JP7114331B2/ja active Active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH10283276A (ja) * | 1997-04-10 | 1998-10-23 | Nippon Telegr & Teleph Corp <Ntt> | イベント順序補正方法 |
| JP2012169831A (ja) * | 2011-02-14 | 2012-09-06 | Fujitsu Ltd | トラフィックデータの監視システムおよびサーバ間データ整合方法 |
| JP2012198714A (ja) * | 2011-03-18 | 2012-10-18 | Fujitsu Ltd | イベント処理方法、イベント処理装置及びイベント処理プログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP7114331B2 (ja) | 2022-08-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9053126B2 (en) | Information processing apparatus, information processing system, and recording medium | |
| JP5882837B2 (ja) | 情報処理システム、画像形成装置、制御方法およびコンピュータプログラム | |
| US8775504B2 (en) | Document management system, document management method and recording medium | |
| US9426322B2 (en) | Network device, control method, and storage medium with management of a shared setting value and a unique setting value for each network device of a plurality of network devices | |
| US10656892B2 (en) | Printer registration apparatus, display apparatus, and method for printer registration | |
| JP2021071879A (ja) | 印刷システム、サーバ、及び印刷方法 | |
| JP2011076626A (ja) | 管理仲介装置、画像形成装置、管理仲介プログラム及び管理仲介プログラムを記録した記録媒体 | |
| JP2015121989A (ja) | ネットワークデバイス、ネットワークデバイスの制御方法およびそのプログラム | |
| US20170039005A1 (en) | Printing system capable of printing in any one of plural image forming apparatuses over a network | |
| US9086831B2 (en) | Information processing system comprising one or more apparatuses which manage job information of a job | |
| US11740939B2 (en) | Data linkage system and API platform | |
| KR102821506B1 (ko) | 시스템, 인쇄 시스템 및, 제어 방법 | |
| JP2011133981A (ja) | 情報処理装置、情報処理装置の制御方法及び処理プログラム | |
| JP6183119B2 (ja) | 中継装置、画像処理装置、中継装置のプログラムおよび画像処理装置のプログラム | |
| JP7114331B2 (ja) | 制御方法、システム及びプログラム | |
| US8819692B2 (en) | Job executing system, job executing device and computer-readable medium | |
| JP7140614B2 (ja) | 管理システム及び管理方法 | |
| US20120327462A1 (en) | Image processing apparatus, image forming system, and image output method | |
| US9571677B2 (en) | Image processing apparatus and non-transitory computer readable medium | |
| US20150220661A1 (en) | Information processing apparatus, information processing method, and storage medium | |
| JP2010278665A (ja) | 複数の画像処理サーバに通信可能に接続される通信装置 | |
| JP2014241008A (ja) | 情報処理装置及び情報処理システム | |
| JP2020042425A (ja) | 情報処理装置、制御方法、およびプログラム | |
| US11366706B2 (en) | Data linkage system and API platform | |
| JP2010061212A (ja) | データ配信方法、データ配信プログラムおよび記憶媒体 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210412 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220228 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220329 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220526 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20220628 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220727 |
|
| R151 | Written notification of patent or utility model registration |
Ref document number: 7114331 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |