IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特開2023-151992データ収集システム、方法およびプログラム
<>
  • 特開-データ収集システム、方法およびプログラム 図1
  • 特開-データ収集システム、方法およびプログラム 図2
  • 特開-データ収集システム、方法およびプログラム 図3
  • 特開-データ収集システム、方法およびプログラム 図4
  • 特開-データ収集システム、方法およびプログラム 図5
  • 特開-データ収集システム、方法およびプログラム 図6
  • 特開-データ収集システム、方法およびプログラム 図7
  • 特開-データ収集システム、方法およびプログラム 図8
  • 特開-データ収集システム、方法およびプログラム 図9
  • 特開-データ収集システム、方法およびプログラム 図10
  • 特開-データ収集システム、方法およびプログラム 図11
  • 特開-データ収集システム、方法およびプログラム 図12
  • 特開-データ収集システム、方法およびプログラム 図13
  • 特開-データ収集システム、方法およびプログラム 図14
  • 特開-データ収集システム、方法およびプログラム 図15
  • 特開-データ収集システム、方法およびプログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023151992
(43)【公開日】2023-10-16
(54)【発明の名称】データ収集システム、方法およびプログラム
(51)【国際特許分類】
   H04L 67/561 20220101AFI20231005BHJP
   G06F 16/21 20190101ALI20231005BHJP
   H04L 67/1004 20220101ALI20231005BHJP
【FI】
H04L67/561
G06F16/21
H04L67/1004
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022061897
(22)【出願日】2022-04-01
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】伊藤 大輔
(72)【発明者】
【氏名】齊藤 信一郎
(72)【発明者】
【氏名】羽原 拓哉
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA07
(57)【要約】
【課題】データの順序保証と高いスケーラビリティとを実現する。
【解決手段】データ受信部103,113は、互いに同期した時刻管理を行っており、データソースから受け付けたデータに対して、時刻管理に基づく時刻を表すタイムスタンプを付与し、データと、データの識別情報とタイムスタンプとを対応づけた対応付け情報とをデータ転送部104,114に送信し、データ転送部104,114は、データ受信部103,113からデータと対応付け情報とを受信し、対応付け情報を一時的に保存してデータおよび対応付け情報をデータ蓄積部105に転送し、データがデータ蓄積部105に保存されたことを確認してから対応付け情報の一時的な保存を解除する。
【選択図】図1
【特許請求の範囲】
【請求項1】
データソースからのデータの受け付けの処理を分担する複数のデータ受信部と、
前記データ受信部のそれぞれに対応して設けられ、前記データ受信部で受け付けられたデータを転送する複数のデータ転送部と、
前記複数のデータ転送部から転送された前記データを受信して保存するデータ蓄積部と、
を有し、
前記複数のデータ受信部は、互いに同期した時刻管理を行っており、前記受け付けたデータに対して、前記時刻管理に基づく時刻を表すタイムスタンプを付与し、前記データと、前記データの識別情報と前記タイムスタンプとを対応づけた対応付け情報とを前記データ転送部に送信し、
前記データ転送部は、前記データ受信部から前記データと前記対応付け情報とを受信し、前記対応付け情報を一時的に保存して前記データおよび前記対応付け情報を前記データ蓄積部に転送し、前記データが前記データ蓄積部に保存されたことを確認してから前記対応付け情報の一時的な保存を解除する、
データ収集システム。
【請求項2】
前記データ蓄積部は、前記対応付け情報内の前記タイムスタンプにより示された時刻を前記データの作成時刻とし、前記データと該作成時刻とを対応づけて保存する、
請求項1に記載のデータ収集システム。
【請求項3】
前記データ転送部は、前記データと前記対応付け情報とを受信した後に障害となり該障害から再開した場合、前記データの再送を促す応答を前記データ受信部を介して前記データソースに送信するとともに、前記対応付け情報を保持しておき、再送されてきたデータに対して該対応付け情報内のタイムスタンプを用いる、
請求項1に記載のデータ収集システム。
【請求項4】
前記データ転送部は、前記対応付け情報と共に前記データを一時的に保存し、前記データが保存されたことを示す応答を前記データ受信部を介して前記データソースに送信し、前記対応付け情報および前記データを前記データ蓄積部に転送し、前記データが前記データ蓄積部に保存されたことを確認してから前記対応付け情報および前記データの一時的な保存を解除する、
請求項1に記載のデータ収集システム。
【請求項5】
前記複数のデータ受信部は、Global Positioning SystemまたはPrecision Time Protocolにより互いに同期した時刻管理を行う、
請求項1に記載のデータ収集システム。
【請求項6】
データソースからのデータの受け付けの処理を分担する複数のデータ受信部と、前記データ受信部のそれぞれに対応して設けられ、前記データ受信部で受け付けられたデータを転送する複数のデータ転送部と、前記複数のデータ転送部から転送された前記データを受信して保存するデータ蓄積部と、を有するデータ収集システムにおけるデータ収集方法であって、
前記複数のデータ受信部が、互いに同期した時刻管理を行っており、前記受け付けたデータに対して、前記時刻管理に基づく時刻を表すタイムスタンプを付与し、前記データと、前記データの識別情報と前記タイムスタンプとを対応づけた対応付け情報とを前記データ転送部に送信し、
前記データ転送部が、前記データ受信部から前記データと前記対応付け情報とを受信し、前記対応付け情報を一時的に保存して前記データおよび前記対応付け情報を前記データ蓄積部に転送し、前記データが前記データ蓄積部に保存されたことを確認してから前記対応付け情報の一時的な保存を解除する、
データ収集方法。
【請求項7】
前記データ蓄積部が、前記対応付け情報内の前記タイムスタンプにより示された時刻を前記データの作成時刻とし、前記データと該作成時刻とを対応づけて保存する、
請求項6に記載のデータ収集方法。
【請求項8】
前記データ転送部が、前記データと前記対応付け情報を受信した後に障害となり該障害から再開した場合、前記データの再送を促す応答を前記データ受信部を介して前記データソースに送信するとともに、前記対応付け情報を保持しておき、再送されてきたデータに対して該対応付け情報内のタイムスタンプを用いる、
請求項6に記載のデータ収集方法。
【請求項9】
データソースからのデータの受け付けの処理を分担する複数のデータ受信部と、前記データ受信部のそれぞれに対応して設けられ、前記データ受信部で受け付けられたデータを転送する複数のデータ転送部と、前記複数のデータ転送部から転送された前記データを受信して保存するデータ蓄積部と、を有するデータ収集システムをコンピュータが動作させるためのデータ収集プログラムであって、
前記複数のデータ受信部が、互いに同期した時刻管理を行っており、前記受け付けたデータに対して、前記時刻管理に基づく時刻を表すタイムスタンプを付与し、前記データと、前記データの識別情報と前記タイムスタンプとを対応づけた対応付け情報とを前記データ転送部に送信し、
前記データ転送部が、前記データ受信部から前記データと前記対応付け情報とを受信し、前記対応付け情報を一時的に保存して前記データおよび前記対応付け情報を前記データ蓄積部に転送し、前記データが前記データ蓄積部に保存されたことを確認してから前記対応付け情報の一時的な保存を解除する、ことを前記コンピュータに実行させるためのデータ収集プログラム。
【請求項10】
前記データ蓄積部が、前記対応付け情報内の前記タイムスタンプにより示された時刻を前記データの作成時刻とし、前記データと該作成時刻とを対応づけて保存する、ことをコンピュータに実行させる、
請求項9に記載のデータ収集プログラム。
【請求項11】
前記データ転送部が、前記データと前記対応付け情報を受信した後に障害となり該障害から再開した場合、前記データの再送を促す応答を前記データ受信部を介して前記データソースに送信するとともに、前記対応付け情報を保持しておき、再送されてきたデータに対して該対応付け情報内のタイムスタンプを用いる、ことをコンピュータに実行させる、
請求項9に記載のデータ収集プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データを収集する技術に関する。
【背景技術】
【0002】
複数の情報システムによるデータの連携を図るためにデータハブが注目されている。データハブにはデータロスが少なくかつスケーラビリティが高いという特徴がある。近年では、データハブが適用される領域が拡大し、それに伴ってデータハブによって扱うデータも多様化している。例えば、データハブには、装置から出力される数値情報の収集だけでなく、ファイル転送への利用も要求される。ファイル転送ではデータ間の順序保証が要求される場合も多い。そして、バッチ処理を行う情報システムからは同時期に大量のデータがデータハブに出力される。
【0003】
特許文献1には、データの順序保証を行う技術が開示されている。特許文献1に開示されたデータ処理システムは、ネットワークに接続されるルータと、ルータに接続される負荷分散サーバと、負荷分散サーバに接続される複数の受付サーバと、複数の受付サーバに接続される処理サーバとから構成される。ルータは、入力されるパケットに対しタイムスタンプを付与する。受付サーバは、同一の識別子を有する複数のパケットに分割されて伝送されたトランザクションに対し、複数のパケットに付与したタイムスタンプの最も遅い時刻をトランザクションの受付時刻として付与する。処理サーバは、複数の受付サーバから受信した複数のトランザクションを、予め設定した最大遅延時間を経過したトランザクションに対し付与されたトランザクションの受付時刻に従ってソートして処理する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2012-129857号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述のように特許文献1の技術ではルータがパケットにタイムスタンプを付与する。ルータはパケットが必ず通る経路となり、そこでタイムスタンプを付与することによりパケットの順序保証が実現される。
【0006】
しかしながら、順序保証を実現するために1箇所のルータでパケットにタイムスタンプを付与するため、複数の受付サーバによってパケットの処理負荷を分散する構成であっても、システム全体としてのスケーラビリティに限界がある。
【0007】
本開示の目的のひとつは、データの順序保証と高いスケーラビリティとを実現する技術を提供することである。
【課題を解決するための手段】
【0008】
本開示のひとつの態様に従うデータ収集システムは、データソースからのデータの受け付けの処理を分担する複数のデータ受信部と、前記データ受信部のそれぞれに対応して設けられ、前記データ受信部で受け付けられたデータを転送する複数のデータ転送部と、前記複数のデータ転送部から転送された前記データを受信して保存するデータ蓄積部と、を有し、前記複数のデータ受信部は、互いに同期した時刻管理を行っており、前記受け付けたデータに対して、前記時刻管理に基づく時刻を表すタイムスタンプを付与し、前記データと、前記データの識別情報と前記タイムスタンプとを対応づけた対応付け情報とを前記データ転送部に送信し、前記データ転送部は、前記データ受信部から前記データと前記対応付け情報とを受信し、前記対応付け情報を一時的に保存して前記データおよび前記対応付け情報を前記データ蓄積部に転送し、前記データが前記データ蓄積部に保存されたことを確認してから前記対応付け情報の一時的な保存を解除する。
【発明の効果】
【0009】
本開示のひとつの態様によれば、データの順序保証と高いスケーラビリティとを実現することが可能となる。
【図面の簡単な説明】
【0010】
図1】本実施形態の情報収集システムを示すブロック図である。
図2図1に示した情報収集システムにおいてデータ受信部及びデータ転送部にて障害が発生していない場合の処理を説明するためのシーケンス図である。
図3図2に示したデータ受信部における処理の詳細を説明するためのフローチャートである。
図4図2に示したデータ転送部における処理の詳細を説明するためのフローチャートである。
図5図1に示した仕掛中状態管理データベースの構成の一例を示す図である。
図6図1に示したデータ保存先データベースの構成の一例を示す図である。
図7図1に示した情報収集システムにおいてデータ収集処理中にデータ受信部にて障害が発生した場合の処理を説明するためのシーケンス図である。
図8図1に示した情報収集システムにおいてデータ受信部からデータ転送部にデータ転送後にデータ受信部にて障害が発生した場合の処理を説明するためのシーケンス図である。
図9図1に示した情報収集システムにおいてデータ転送部からデータ蓄積部にデータを転送する前にデータ転送部にて障害が発生した場合の処理を説明するためのシーケンス図である。
図10図1に示した情報収集システムにおいてデータ転送部からデータ蓄積部にデータを転送中にデータ転送部にて障害が発生した場合の処理を説明するためのシーケンス図である。
図11図9及び図10に示したデータ転送部における処理の詳細を説明するためのフローチャートである。
図12図1に示した情報収集システムにおいてデータ受信部及びデータ転送部にて障害が発生していない場合の処理の他の例を説明するためのシーケンス図である。
図13図12に示したデータ転送部における処理の詳細を説明するためのフローチャートである。
図14図1に示した仕掛中状態管理データベースの構成の一例を示す図である。
図15図1に示した情報収集システムにおいてデータ転送部からデータ蓄積部にデータを転送する前にデータ転送部にて障害が発生した場合の処理の他の例を説明するためのシーケンス図である。
図16図15に示したデータ転送部における処理の詳細を説明するためのフローチャートである。
【発明を実施するための形態】
【0011】
以下に、本発明の実施の形態について図面を参照して説明する。
【0012】
図1は、本実施形態の情報収集システムを示すブロック図である。
【0013】
本実施形態のデータ収集システム100は、図1に示すように、データソース101,111から送信されてきたデータをデータ利活用106のために転送するシステムであって、負荷分散部102と、データ受信部103,113と、データ転送部104,114と、データ蓄積部105とを有する。なお、データ受信部103,113及びデータ転送部104,114の数はそれぞれ2つに限らない。
【0014】
負荷分散部102は、データソース101,111から送信されてきたデータを、例えばラウンドロビン等の決められた負荷分散方式でデータ受信部103,113に振り分けて送信する。なお、データを振り分ける方式は、負荷分散方式に限らず、また、振り分けたデータをチャンクと称する場合もある。
【0015】
データ受信部103,113は、データソース101,111から負荷分散部102を介して送信されてきたデータの受付の処理を分担するものであって、それぞれ、互いに同期した時刻管理を行っており、受け付けたデータに対して、時刻管理に基づく時刻を表すタイムスタンプを時刻同期生成部131,132にて生成して付与し、受け付けたデータと、データの識別情報となるIDとタイムスタンプとを対応づけた対応付け情報とをデータ転送部104,114に送信する。
【0016】
データ転送部104,114は、データ受信部103,113のそれぞれに対応して設けられ、データ受信部103,113で受け付けられたデータを転送するものであって、データ受信部103,113からデータと対応付け情報とを受信し、対応付け情報を一時的に保存してデータおよび対応付け情報をデータ蓄積部105に転送し、データがデータ蓄積部105に保存されたことを確認してから対応付け情報の一時的な保存を解除する。また、データ転送部104,114は、データ受信部103,113から受信したデータと対応付け情報とを用いて、仕掛中状態管理データベース141,142に新たなレコードを生成し、データ受信部103,113から受信したデータと対応付け情報とを仕掛中状態管理データベース141,142に保存するとともに、その転送状態となる仕掛中の状態を設定する。また、データ転送部104,114は、データ受信部103,113からデータと対応付け情報とを受信した後に障害となり、その障害から再開した場合、データの再送を促す応答を、データ受信部103,113を介してデータソース101,111に送信するとともに、対応付け情報を保持しておき、再送されてきたデータに対して、保持しておいた対応付け情報内のタイムスタンプを用いる。
【0017】
データ蓄積部105は、データ転送部104,114から転送されたデータを受信して保存するものであって、データ転送部104,114から転送されてきた対応付け情報内のタイムスタンプにより示された時刻をデータの作成時刻とし、データとその作成時刻とを対応づけてデータ保存先データベース151に保存する。
【0018】
以下に、上記のように構成された情報収集システムにおける処理について説明する。
【0019】
まず、データ受信部103,113及びデータ転送部104,114にて障害が発生していない場合の処理について説明する。
【0020】
図2は、図1に示した情報収集システムにおいてデータ受信部103,113及びデータ転送部104,114にて障害が発生していない場合の処理を説明するためのシーケンス図である。なお、図2においては、データソース101,111、データ受信部103,113及びデータ転送部104,114のうち、データソース101、データ受信部103及びデータ転送部104にデータを転送する場合を例に挙げて説明する。
【0021】
ステップ201においてデータソース101からデータが送信されてくると、負荷分散部102は、ステップ202において、決められた負荷分散方式で転送先のデータ受信部を決定し、決定したデータ受信部103に対してステップ222にてデータを転送する。
【0022】
負荷分散部102から転送されたデータを受信したデータ受信部103は、ステップ203における処理を行う。
【0023】
図3は、図2に示したデータ受信部103における処理の詳細を説明するためのフローチャートである。
【0024】
ステップ203における処理では、データ受信部103は、負荷分散部102から転送されたデータを受信すると、まずステップ231において、互いに同期した時刻管理を行うために時刻同期生成部131にて高精度時刻同期(例えば、GPS(Global Positioning System)やPTP(Precision Time Protocol))により生成されたタイムスタンプを取得し、また、ステップ232において、データを識別するためのデータIDを生成する。なお、データIDは、例えば、「ファイル名」+「データソースのID」(IPアドレスやクライアントID等)からなり、同一のデータソースからの同一の名前のファイルには同一のIDが付与され、同一の名前のファイルであってもそれらが互いに異なるデータソースからのものであれば異なるIDが付与される。なお、GPSやPTPによって時刻管理を行うことで、高精度の時刻同期が可能となる。
【0025】
次に、データ受信部103は、ステップ233において、時刻同期生成部131から取得したタイムスタンプと、データ名と、データIDとを組み合わせて、対応付け情報となる三つ組を作成する。
【0026】
次に、データ受信部103は、ステップ234において、負荷分散部102から転送されたデータと、ステップ233にて作成した三つ組とをデータ転送部104に転送し、ステップ705において、ステップ203における処理を終了する。
【0027】
データ受信部103から転送されたデータ及び三つ組を受信したデータ転送部104は、ステップ204における処理を行う。
【0028】
図4は、図2に示したデータ転送部104における処理の詳細を説明するためのフローチャートである。
【0029】
ステップ204における処理では、データ転送部104は、データ受信部103から転送されたデータ及び三つ組を受信すると、まずステップ801において、仕掛中状態管理データベース141に、受信した三つ組が保存されているかどうかを判断する。これは、三つ組内のデータIDを用いて行う。
【0030】
仕掛中状態管理データベース141に、受信した三つ組が保存されていない場合は、データ転送部104は、ステップ241において、仕掛中状態管理データベース141に新たなレコードを生成し、データ受信部103から受信したデータと三つ組とを仕掛中状態管理データベース141に保存するとともに、その転送状態となる仕掛中の状態を「受信」に設定する。
【0031】
また、仕掛中状態管理データベース141に、受信した三つ組が保存されている場合は、データ転送部104は、ステップ242において、保存されている三つ組の転送状態となる仕掛中の状態を「転送中」に変更する。
【0032】
図5は、図1に示した仕掛中状態管理データベース141,142の構成の一例を示す図である。
【0033】
図5に示すように、図1に示した仕掛中状態管理データベース141,142には、タイムスタンプ1001,データ名102及びデータID1003からなる三つ組について、その転送状態1004が対応づけて設定されている。
【0034】
次に、データ転送部104は、ステップ243において、データ受信部103から受信したデータと三つ組とをデータ蓄積部105に転送し、ステップ802においてデータ蓄積部105からの応答を待つ。
【0035】
データ蓄積部105は、データ転送部104から転送されてきたデータとその三つ組を受信すると、ステップ205における処理において、受信したデータをデータ保存先データベース151にステップ251にて保存し、ステップ252において、データ転送部104から受信したデータをデータ保存先データベース151にステップ251にて保存した旨をACKとしてデータ転送部104に返す。
【0036】
また、データ蓄積部105は、その際、ステップ253において、三つ組内のタイムスタンプにより示された時刻をデータの作成時刻とし、データとその作成時刻とを対応づけてデータ保存先データベース151に保存する。
【0037】
図6は、図1に示したデータ保存先データベース151の構成の一例を示す図である。
【0038】
図6に示すように、図1に示したデータ保存先データベース151には、データ蓄積部105がデータ転送部104から受信した三つ組内のデータ名1101、データID1102及びタイムスタンプ1103が、そのデータのコンテンツを示すデータコンテンツ1104と対応づけて保存される。
【0039】
このように、データ受信部103でのタイムスタンプをデータの作成時刻とするので、複数のデータ受信部が管理する精度の高い時刻により作成時刻を設定することができる。
【0040】
データ転送部104は、データ蓄積部105からのACKを受信すると、ステップ244において、仕掛中状態管理データベース141に保存されている三つ組のうち、データ蓄積部105からのACKに対応する三つ組についてデータがデータ蓄積部105に保存されたことを確認し、その転送状態となる仕掛中の状態を「転送完了」に変更する。
【0041】
その後、データ転送部104は、ステップ245において、データ蓄積部105からのACKに対応する三つ組についてのACKをデータ受信部103に返し、ステップ246において、仕掛中状態管理データベース141に保存されていた三つ組の一時的な保存を解除して削除し、ステップ807において、ステップ204における処理を終了する。
【0042】
データ受信部103は、データ転送部104からのACKを受信すると、ステップ206において、ステップ261として負荷分散部102にACKを返し、負荷分散部102は、データ受信部103からのACKを受信すると、ステップ202において、ステップ223としてデータソース101にACKを返す。
【0043】
その後、データソース101は、ステップ212において、負荷分散部102に送信したデータを削除する。
【0044】
このように、複数で負荷分散するデータ受信部での時刻管理に基づいてデータの順序保証を行うので、データの順序保証と高いスケラビリティとを併せて実現することができる。
【0045】
次に、データ収集処理中にデータ受信部103,113にて障害が発生した場合の処理について説明する。
【0046】
図7は、図1に示した情報収集システムにおいてデータ収集処理中にデータ受信部103にて障害が発生した場合の処理を説明するためのシーケンス図である。
【0047】
図2に示したデータソース101におけるステップ201の処理からデータ受信部103におけるステップ233の処理を行った後に、データ受信部103においてステップ301にて障害が発生し、負荷分散部102において、ステップ321にて例えばタイムアウトやハートビートを用いて障害を検出した場合、負荷分散部102は、データの収集処理に失敗した旨を示すネガティブACKをステップ322にてデータソース101に返す。
【0048】
その後、データ受信部103は、ステップ302にて障害から回復したとしても、負荷分散部102から送信されてきたデータを保持していないため、図2に示した処理と同様の処理が行われることになる。
【0049】
次に、データ受信部103からデータ転送部104にデータ転送後にデータ受信部103にて障害が発生した場合の処理について説明する。
【0050】
図8は、図1に示した情報収集システムにおいてデータ受信部103からデータ転送部104にデータ転送後にデータ受信部103にて障害が発生した場合の処理を説明するためのシーケンス図である。
【0051】
図2に示したデータソース101におけるステップ201の処理からデータ受信部103におけるステップ234の処理を行った後に、データ受信部103においてステップ401にて障害が発生したとしても、データ受信部103からデータ転送部104にデータとその三つ組が転送されているため、データ転送部104とデータ蓄積部105においては、図2の示したものと同様の処理が行われる。
【0052】
また、データ転送部104からステップ245にてACKが返された際、ステップ402にてデータ受信部103が障害から回復していれば、その後のデータ受信部103,負荷分散部102及びデータソース101においては、図2の示したものと同様の処理が行われる。
【0053】
次に、データ転送部104からデータ蓄積部105にデータを転送する前にデータ転送部104にて障害が発生した場合の処理について説明する。
【0054】
図9は、図1に示した情報収集システムにおいてデータ転送部104からデータ蓄積部105にデータを転送する前にデータ転送部104にて障害が発生した場合の処理を説明するためのシーケンス図である。
【0055】
図2に示したデータソース101におけるステップ201の処理からデータ転送部104におけるステップ241の処理を行った後に、データ転送部104においてステップ501にて障害が発生した場合、その後、データ転送部104がステップ502にて障害から回復すると、データ転送部104は、ステップ504において、仕掛中状態管理データベース141から、状態が「受信」となっている三つ組をステップ541として検出する。
【0056】
そして、データ転送部104は、データの収集処理に失敗した旨を示すネガティブACKをステップ542にてデータ受信部103に返す。この際、データ転送部104は、仕掛中状態管理データベース141から検出した三つ組を削除しない。
【0057】
データ受信部103は、データ転送部104からネガティブACKを受け取ると、ステップ506においてネガティブACKをステップ561として負荷分散部102に返す。
【0058】
負荷分散部102は、データ受信部103からネガティブACKを受け取ると、ステップ202においてネガティブACKをステップ521としてデータソース101に返す。
【0059】
その後、図2に示した一連の処理が再度行われることなるが、データ転送部104においては、仕掛中状態管理データベース141から検出した三つ組を削除していないため、再送されてきたデータに、保持していたタイムスタンプを用いることになる。
【0060】
このように、データの再送時に前回のタイムスタンプを用いるので、再送によるデータの順序入れ替わりを防止することができる。
【0061】
次に、データ転送部104からデータ蓄積部105にデータを転送中にデータ転送部104にて障害が発生した場合の処理について説明する。
【0062】
図10は、図1に示した情報収集システムにおいてデータ転送部104からデータ蓄積部105にデータを転送中にデータ転送部104にて障害が発生した場合の処理を説明するためのシーケンス図である。
【0063】
図2に示したデータソース101におけるステップ201の処理からデータ転送部104におけるステップ243の処理を行った後に、データ転送部104においてステップ601にて障害が発生した場合、データ蓄積部105においては、ステップ205において、データ蓄積部105から転送されてきたデータをデータ保存先データベース151に保存しているものの、全てのデータを転送したか不明である。
【0064】
そのため、その後にデータ転送部104がステップ602にて障害から回復すると、ステップ604における処理を行う。
【0065】
図11は、図9及び図10に示したデータ転送部104における処理の詳細を説明するためのフローチャートである。
【0066】
データ転送部104はステップ901にて処理を開始すると、まず、ステップ902において、仕掛中状態管理データベース141の中に、状態が「受信」の三つ組があるか判断する。
【0067】
そして、仕掛中状態管理データベース141の中に、状態が「受信」の三つ組がある場合は、図9に示したように、ステップ542において、状態が「受信」の三つ組に関するネガティブACKをデータ受信部103に返す。
【0068】
仕掛中状態管理データベース141の中に、状態が「受信」の三つ組がない場合や、仕掛中状態管理データベース141の中に、状態が「受信」の三つ組がある場合であって、状態が「受信」の三つ組に関するネガティブACKをデータ受信部103に返した後、データ転送部104は、ステップ903において、仕掛中状態管理データベース141の中に、状態が「転送中」の三つ組があるか判断する。
【0069】
そして、仕掛中状態管理データベース141の中に、状態が「転送中」の三つ組がある場合は、ステップ641において、仕掛中状態管理データベース141の中に、状態が「転送中」の三つ組を検出したとして、ステップ642において、データ蓄積部105に対して、検出した三つ組のデータIDが示すデータの削除を依頼し、ステップ931において、それに対するデータ蓄積部105からのACKを待つ。
【0070】
データ蓄積部105は、ステップ651において、データ転送部104からの依頼に従ってデータ保存先データベース151からデータを削除し、ステップ652において、データを削除した旨を示すACKをデータ転送部104に返す。
【0071】
データ転送部104は、データ蓄積部105からのACKを受け取ると、ステップ604において、データ蓄積部105に削除を依頼した三つ組のデータの収集処理に失敗した旨を示すネガティブACKをステップ643としてデータ受信部103に返す。
【0072】
また、データ転送部104は、仕掛中状態管理データベース141に保存された三つ組を削除せず、ステップ644において、その状態を「転送中」から「受信」に変更する。
【0073】
そして、データ転送部104は、ステップ904にてその処理を終了する。
【0074】
データ受信部103は、データ転送部104からネガティブACKを受け取ると、ステップ661においてネガティブACKをステップ662として負荷分散部102に返す。
【0075】
負荷分散部102は、データ受信部103からネガティブACKを受け取ると、ステップ202においてネガティブACKをステップ621としてデータソース101に返す。
【0076】
その後、図2に示した一連の処理が再度行われることなるが、データ転送部104においては、仕掛中状態管理データベース141から検出した三つ組を削除していないため、再送されてきたデータに、保持していたタイムスタンプを用いることになる。
【0077】
(他の実施の形態)
【0078】
以下に、図1に示した情報収集システムにおいて、情報収集システム1側のリソースを用いて、データソース101,111側でデータを削除できるタイミングを早める実施形態について説明する。
【0079】
まず、データ受信部103,113及びデータ転送部104,114にて障害が発生していない場合の処理について説明する。
【0080】
図12は、図1に示した情報収集システムにおいてデータ受信部103,113及びデータ転送部104,114にて障害が発生していない場合の処理の他の例を説明するためのシーケンス図である。
【0081】
図2に示したデータソース101におけるステップ201の処理からデータ転送部104におけるステップ243の処理を行った後に、データ転送部104においてステップ1204の処理を行う。
【0082】
図13は、図12に示したデータ転送部104における処理の詳細を説明するためのフローチャートである。
【0083】
ステップ1204における処理では、データ転送部104は、データ受信部103から転送されたデータ及び三つ組を受信すると、まずステップ1801において、仕掛中状態管理データベース141に、受信した三つ組及びデータが保存されているかどうかを判断する。これは、三つ組内のデータIDを用いて行う。
【0084】
仕掛中状態管理データベース141に、受信した三つ組及びデータが保存されていない場合は、データ転送部104は、ステップ1241において、仕掛中状態管理データベース141に新たなレコードを生成し、データ受信部103から受信したデータと三つ組とを仕掛中状態管理データベース141に保存するとともに、その転送状態となる仕掛中の状態を「受信」に設定する。
【0085】
データ転送部104は、データ受信部103から受信したデータと三つ組とを仕掛中状態管理データベース141に保存するとともにその転送状態となる仕掛中の状態を「受信」に設定した後や、仕掛中状態管理データベース141に、受信した三つ組及びデータが保存されている場合は、データ転送部104は、ステップ1201において、データ受信部103に対して受信した三つ組に関するACKを返す。
【0086】
データ受信部103は、データ転送部104からのACKを受信すると、ステップ206において、ステップ261として負荷分散部102にACKを返し、負荷分散部102は、データ受信部103からのACKを受信すると、ステップ202において、ステップ223としてデータソース101にACKを返す。
【0087】
その後、データソース101は、ステップ212において、負荷分散部102に送信したデータを削除する。
【0088】
データ転送部104は、ステップ1242において、保存されている三つ組の転送状態となる仕掛中の状態を「転送中」に変更する。
【0089】
図14は、図1に示した仕掛中状態管理データベース141,142の構成の一例を示す図である。
【0090】
図14に示すように、図1に示した仕掛中状態管理データベース141,142には、タイムスタンプ1601,データ名1602及びデータID1603からなる三つ組について、そのデータとなるデータコンテンツ1604とその転送状態1605とが対応づけて設定されている。
【0091】
次に、データ転送部104は、ステップ243において、データ受信部103から受信したデータと三つ組とをデータ蓄積部105に転送し、ステップ802においてデータ蓄積部105からの応答を待つ。
【0092】
データ蓄積部105は、データ転送部104から転送されてきたデータとその三つ組を受信すると、ステップ205における処理において、受信したデータをデータ保存先データベース151にステップ251にて保存し、ステップ252において、データ転送部104から受信したデータをデータ保存先データベース151にステップ251にて保存した旨をACKとしてデータ転送部104に返す。
【0093】
また、データ蓄積部105は、その際、ステップ253において、三つ組内のタイムスタンプにより示された時刻をデータの作成時刻とし、データとその作成時刻とを対応づけてデータ保存先データベース151に保存する。
【0094】
データ転送部104は、データ蓄積部105からのACKを受信すると、ステップ1244において、仕掛中状態管理データベース141に保存されている三つ組及びデータのうち、データ蓄積部105からのACKに対応する三つ組及びデータについてデータがデータ蓄積部105に保存されたことを確認し、その転送状態となる仕掛中の状態を「転送完了」に変更する。
【0095】
その後、データ転送部104は、ステップ1245において、仕掛中状態管理データベース141に保存されていた三つ組及びデータの一時的な保存を解除して削除し、ステップ1405において、ステップ1204における処理を終了する。
【0096】
このように、データ転送部104が、三つ組と共にデータを一時的に保存し、データが保存されたことを示すACKをデータ受信部103を介してデータソース101に送信し、三つ組およびデータをデータ蓄積部105に転送し、データがデータ蓄積部105に保存されたことを確認してから三つ組およびデータの一時的な保存を解除するので、データソースにおけるデータの削除が早い段階で可能となる。
【0097】
次に、データ転送部104からデータ蓄積部105にデータを転送する前にデータ転送部104にて障害が発生した場合の処理について説明する。
【0098】
図15は、図1に示した情報収集システムにおいてデータ転送部104からデータ蓄積部105にデータを転送する前にデータ転送部104にて障害が発生した場合の処理の他の例を説明するためのシーケンス図である。
【0099】
図12に示したデータソース101におけるステップ201の処理からデータ転送部104におけるステップ1201の処理を行った後に、データ転送部104においてステップ1301にて障害が発生した場合、その後、データ転送部104がステップ1302にて障害から回復すると、データ転送部104は、ステップ1304の処理を行う。
【0100】
データ転送部104は、ステップ1341において、仕掛中状態管理データベース141から、状態が「受信」となっている三つ組とデータを検出し、ステップ1342において、その状態を「転送中」に変更する。
【0101】
次に、データ転送部104は、ステップ1343において、仕掛中状態管理データベース141に保存されたデータおよび三つ組をデータ蓄積部105に転送する。
【0102】
データ蓄積部105は、データ転送部104から転送されてきたデータとその三つ組を受信すると、ステップ205における処理において、受信したデータをデータ保存先データベース151にステップ251にて保存し、ステップ252において、データ転送部104から受信したデータをデータ保存先データベース151にステップ251にて保存した旨をACKとしてデータ転送部104に返す。
【0103】
また、データ蓄積部105は、その際、ステップ253において、三つ組内のタイムスタンプにより示された時刻をデータの作成時刻とし、データとその作成時刻とを対応づけてデータ保存先データベース151に保存する。
【0104】
データ転送部104は、データ蓄積部105からのACKを受信すると、ステップ1244において、仕掛中状態管理データベース141に保存されている三つ組及びデータのうち、データ蓄積部105からのACKに対応する三つ組及びデータについてデータがデータ蓄積部105に保存されたことを確認し、その転送状態となる仕掛中の状態を「転送完了」に変更する。
【0105】
その後、データ転送部104は、ステップ1245において、仕掛中状態管理データベース141に保存されていた三つ組及びデータの一時的な保存を解除して削除する。
【0106】
図16は、図15に示したデータ転送部104における処理の詳細を説明するためのフローチャートである。
【0107】
ステップ1204における処理では、データ転送部104は、ステップ1501にて処理を開始すると、まず、ステップ1502において、データ転送部104は、仕掛中状態管理データベース141に、状態が「受信」の三つ組及びデータが保存されているかどうかを判断する。
【0108】
仕掛中状態管理データベース141に、状態が「受信」の三つ組及びデータが保存されている場合は、データ転送部104は、ステップ1521において、図13に示したステップ1201の処理を行う。
【0109】
また、仕掛中状態管理データベース141に、状態が「受信」の三つ組及びデータが保存されていない場合は、データ転送部104は、ステップ1503において、仕掛中状態管理データベース141に、状態が「転送中」の三つ組及びデータが保存されているかどうかを判断する。
【0110】
仕掛中状態管理データベース141に、状態が「転送中」の三つ組及びデータが保存されている場合は、データ転送部104は、ステップ1531において、データ蓄積部105に対して、その三つ組のデータIDが示すデータの削除を依頼し、ステップ1532においてデータ蓄積部105からのACKを待つ。
【0111】
その後、データ転送部104は、データ蓄積部105からデータを削除した旨のACKを受けると、ステップ1533において、図13のステップ243の処理を行う。
【0112】
データ転送部104は、上述した一連の処理を行い、ステップ1504にて終了する。
【0113】
なお、本実施形態の情報収集システムが実行する方法はソフトウェアプログラムとして記述することもできる。また、そのソフトウェアプログラムを記憶媒体に格納することも可能であり、ネットワークを介して外部に提供することも可能である。コンピュータがそのソフトウェアプログラムを実行することにより本実施形態の情報収集システムを実現することができる。
【0114】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態のみに限定する趣旨ではない。当業者は、本発明の範囲を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【0115】
100…データ収集システム、101,111…データソース、102…付加分散部、103,113…データ受信部、104,114…データ転送部、105…データ蓄積部、131,132…時刻同期生成部、141,142…仕掛中状態管理データベース、151…データ保存先データベース
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16