JP7013326B2 - 情報処理システム、情報処理装置、および情報処理システムの制御方法 - Google Patents

情報処理システム、情報処理装置、および情報処理システムの制御方法 Download PDF

Info

Publication number
JP7013326B2
JP7013326B2 JP2018102404A JP2018102404A JP7013326B2 JP 7013326 B2 JP7013326 B2 JP 7013326B2 JP 2018102404 A JP2018102404 A JP 2018102404A JP 2018102404 A JP2018102404 A JP 2018102404A JP 7013326 B2 JP7013326 B2 JP 7013326B2
Authority
JP
Japan
Prior art keywords
processing
block
execution
information processing
distributed processing
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.)
Active
Application number
JP2018102404A
Other languages
English (en)
Other versions
JP2019207546A (ja
Inventor
大輝 田中
侑 中田
真規 阪口
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2018102404A priority Critical patent/JP7013326B2/ja
Priority to EP19811719.4A priority patent/EP3805923A4/en
Priority to US16/982,112 priority patent/US20210019186A1/en
Priority to PCT/JP2019/016298 priority patent/WO2019230228A1/ja
Publication of JP2019207546A publication Critical patent/JP2019207546A/ja
Application granted granted Critical
Publication of JP7013326B2 publication Critical patent/JP7013326B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、情報処理システム、情報処理装置、および情報処理システムの制御方法に関する。
特許文献1には、「アプリケーション開発の生産性を向上させることが可能な分散システムにおけるシステム間連携装置を提供する」、「システム間連携装置は、他のシステムにアクセスして所定のアプリケーションを実行させるためのアプリケーション処理部と、アプリケーション処理部が所定のアプリケーションの実行指示を受けた場合に、所定のアプリケーションからの要求に応じて、プロトコル定義に含まれる通信プロトコル形態およびシステム構成およびネットワーク構成に基づいて定められるシステムと他のシステムとの間の処理を行うために必要な要件値と非機能要件との組み合わせに基づいて、複数のモジュールの中からアプリケーションによる処理を実行させるために必要なモジュールを選択する組合せ処理部とを備える」と記載されている。
特開2013-61762号公報
ビジネスの変化が激しい昨今においては、仮説検証の過程で試行錯誤しつつデータフローを迅速かつ効率よく構築することが可能なツールが求められている。そのようなツールとして、GUI(Graphical User Interface)を利用してノンプログラミングにデータフローを定義していくことが可能なフローエディタがある。フローエディタは豊富な入出力インタフェースを提供し、ブロックを組み合わせていく感覚でデータフローを作成することができるため、従来のプログラムやスクリプトによる方法に比べて編集環境が直感的で理解しやすく、高度な技術知識を有していない場合でも取り扱いが容易で生産性に優れるといった利点を有する。
一方で、現状の多くのフローエディタはロジックの構築容易性を主目的とした構成であるため、情報処理システムのスケーラビリティや信頼性といった観点でのサポートが十分でないことがある。ここで情報処理システムのスケーラビリティや信頼性を向上させる方法として分散処理技術があるが、現状のフローエディタには分散処理に対する仕組みが用意されておらず、フローエディタにより作成されたデータフローに基くソフトウェアについて、分散処理を実現するための仕組みを別途開発する必要がある。またフローエディタによりロジックが変更されるたびに分散処理の仕組みも変更する必要があり、生産効率や保守効率の観点から課題がある。
特許文献1には、アプリケーション開発の生産性を向上させることを目的として構成された、分散システムにおけるシステム間連携装置について記載されている。しかし特許文献1には、フローエディタにより作成されたデータフローに基づくソフトウェアを分散処理する仕組みについては何も開示されていない。また特許文献1には、システムのスケーラビリティや信頼性を向上させる観点に基づく技術についても何も開示されていない。
本発明はこうした背景に鑑みてなされたもので、フローエディタの高い生産性を享受しつつ情報処理システムのスケーラビリティや信頼性を確保することが可能な、情報処理シ
ステム、情報処理装置、および情報処理システムの制御方法を提供することを目的とする。
上記目的を達成するための本発明の一つは、フローエディタにより編集されたデータフローに基づくソフトウェアを実行する情報処理システムであって、前記ソフトウェアの分散処理を行うクラスタを構成する複数の情報処理装置を含み、前記データフローは、分散処理を開始させるブロックである分散処理開始ブロック、分散処理を終了させるブロックである分散処理終了ブロック、および前記分散処理開始ブロックと前記分散処理終了ブロックとの間に記述されるブロックである分散処理対象ブロックを含み、前記クラスタを構成する前記情報処理装置であるマスタ装置は、前記データフローの実行時に前記分散処理開始ブロックに到達すると、前記分散処理対象ブロックの実行指示を含むメッセージを、前記クラスタを構成する複数のワーカ装置に送信し、前記ワーカ装置の夫々は、前記メッセージを受信すると前記分散処理対象ブロックを実行し、前記分散処理対象ブロックの実行結果を含むメッセージを前記マスタ装置に送信し、前記マスタ装置は、前記複数のワーカ装置から前記実行結果を受信すると、前記分散処理終了ブロックに後続する前記データフローのブロックを実行する。
その他、本願が開示する課題、及びその解決方法は、発明を実施するための形態の欄、及び図面により明らかにされる。
本発明によれば、フローエディタの高い生産性を享受しつつ情報処理システムのスケーラビリティや信頼性を確保することができる。
情報処理システムの概略的な構成を示す図である。 フロー編集装置、センサ装置、クラスタ管理装置、AP実行装置、および管理装置として利用可能な情報処理装置のハードウェアの一例である。 フロー編集装置が備える主な機能を示す図である。 センサ装置が備える主な機能を示す図である。 クラスタ管理装置が備える主な機能を示す図である。 管理装置が備える主な機能を示す図である。 AP実行装置が備える主な機能を示す図である。 APソフトウェアの機能を概念的に示した図である。 データフローの一例を示す図である。 コンテナ配信シーケンスを説明する図である。 APソフト実行シーケンスを説明する図である。 APソフト実行シーケンス(ワーカ障害時)を説明する図である。 APソフト実行シーケンス(マスタ障害時)を説明する図である。 処理Iの詳細を説明するフローチャートである。 処理IIの詳細を説明するフローチャートである。 処理IIIの詳細を説明するフローチャートである。 障害監視処理(処理IV)の詳細を説明するフローチャートである。 分散処理シーケンスを説明する図である。 フロー実行制御部の処理を説明するフローチャートである。 処理連携部の処理を説明するフローチャートである。 メッセージのデータ構成を示す図である。 クラスタ管理情報の一例である。
以下、実施形態につき図面を参照しつつ説明する。以下の説明において、同一のまたは類似する構成に同一の符号を付して重複した説明を省略することがある。また「アプリケ
ーション」のことを「AP」と表記することがある。
図1に実施形態として説明する情報処理システム1の概略的な構成を示している。同図に示すように、情報処理システム1は、フロー編集装置2、一つ以上のセンサ装置3、クラスタ管理装置4、4つのAP実行装置10、および管理装置5を含む。これらの装置は、いずれも情報処理装置(コンピュータ)を用いて構成されており、通信ネットワーク8を介して互いに通信可能に接続されている。
通信ネットワーク8は、イーサネット(登録商標)やTCP/IP等の所定の通信プロトコルに従った通信を実現する通信基盤(インフラストラクチャ)であり、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、専用線、
公衆通信網等である。
4つのAP実行装置10はクラスタ(cluster)を構成しており、夫々、AP実行装置(マスタ)(稼動系)10ML、AP実行装置(マスタ)(待機系)10MS、およびAP実行装置(ワーカ)10Wとして機能する。尚、本例では、説明の簡単のため、AP実行装置10の数を4つとしているが、AP実行装置10の数は必ずしも限定されない。
AP実行装置(マスタ)(稼動系)10MLとAP実行装置(マスタ)(待機系)10MSとは、AP実行装置(マスタ)(稼動系)10MLを稼動系(Leader)とし、AP実行装置(マスタ)(待機系)10MSを待機系(Stand-by)(障害発生時のバックアップ先)とする、障害対応クラスタ(フェールオーバクラスタ)を構成している。
また4つのAP実行装置10は、負荷分散クラスタを構成し、AP実行装置(マスタ)(稼動系)10MLおよびAP実行装置(マスタ)(待機系)10MSは、上記負荷分散クラスタにおいて主側(マスタ側)装置として機能し、2つのAP実行装置(ワーカ)10Wは、上記負荷分散クラスタにおいて従側(ワーカ側)装置として機能する。尚、本例ではAP実行装置(ワーカ)10Wを2つとしているが、AP実行装置(ワーカ)10Wは3つ以上としてもよい。
図2に、フロー編集装置2、センサ装置3、クラスタ管理装置4、AP実行装置10、および管理装置5、として利用可能な情報処理装置100のハードウェアの一例を示している。同図に示すように、情報処理装置100は、プロセッサ11、主記憶装置12、補助記憶装置13、入力装置14、出力装置15、通信装置16、およびセンサ17を備える。尚、センサ17はセンサ装置3についてのみ必須の構成である。
フロー編集装置2、センサ装置3、クラスタ管理装置4、AP実行装置10、および管理装置5は、例えば、クラウドシステム(Cloud System)により提供されるクラウドサーバ(Cloud Server)のような仮想的な情報処理資源を用いて実現されるものであってもよい。また例えば、フロー編集装置2、センサ装置3、クラスタ管理装置4、AP実行装置10、および管理装置5は、協調して動作する複数の情報処理装置100によって実現されるものであってもよい。また例えば、フロー編集装置2、センサ装置3、クラスタ管理装置4、AP実行装置10、および管理装置5のうちの2つ以上を共通の情報処理装置100で実現するようにしてもよい。
プロセッサ11は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等を用いて構成されている。主記憶装置12は、プログラムやデータを記憶する装置であり、例えば、ROM(Read Only Memory)(SRAM(Static Random Access Memory)、NVRAM(Non Volatile RAM
)、マスクROM(Mask Read Only Memory)、PROM(Programmable ROM)等)、R
AM(Random Access Memory)(DRAM(Dynamic Random Access Memory)等)等である。補助記憶装置13は、ハードディスクドライブ(Hard Disk Drive)、フラッシュメ
モリ(Flash Memory)、SSD(Solid State Drive)、光学式記憶装置(CD(Compact
Disc)、DVD(Digital Versatile Disc)等)等である。補助記憶装置13に格納され
ているプログラムやデータは、随時、主記憶装置12に読み込まれる。
入力装置14は、ユーザから情報を受け付けるユーザインタフェースであり、例えば、キーボード、マウス、カードリーダ、タッチパネル等である。出力装置15は、情報を出力(表示出力、音声出力、印字出力等)することによりユーザに情報を提供するユーザインタフェースであり、例えば、各種情報を可視化する表示装置(LCD(Liquid Crystal
Display)、グラフィックカード等)や音声出力装置(スピーカ)、印字装置等である。通信装置16は、通信ネットワーク8を介して他の装置と通信する通信インタフェースであり、例えば、NIC(Network Interface Card)、無線通信モジュール、USB(Universal Serial Interface)モジュール、シリアル通信モジュール等である。通信装置16は、通信可能に接続する他の装置から情報を受信する入力装置として機能させることもできる。また通信装置16は、通信可能に接続する他の装置に情報を送信する出力装置として機能させることもできる。
センサ装置3は、上記の構成に加えて、センシング対象から環境情報等の種々のデータ(以下、センサデータとも称する。)を収集する一つ以上のセンサ17(カメラ、赤外線検知機器、ミリ波レーダ、温度計、振動計等)を備える。情報処理システム1はセンサ装置3を複数含んでいてもよい。
フロー編集装置2、センサ装置3、クラスタ管理装置4、AP実行装置10、および管理装置5の機能は、プロセッサ11が、主記憶装置12に格納されているプログラムを読み出して実行することにより実現される。また上記のプログラムは、例えば、記録媒体に記録して配布することができる。また上記のプログラムは、例えば、上記プログラムを蓄積管理する配信サーバ装置から通信設備を介してフロー編集装置2、センサ装置3、クラスタ管理装置4、AP実行装置10、および管理装置5にダウンロードすることにより配布することができる。
フロー編集装置2、センサ装置3、クラスタ管理装置4、AP実行装置10、および管理装置5は、上記の機能に加えて、例えば、オペレーティングシステム、ファイルシステム、デバイスドライバ、DBMS(DataBase Management System)等の他の機能をさらに備えていてもよい。フロー編集装置2、センサ装置3、クラスタ管理装置4、AP実行装置10、および管理装置5は、各種の情報(データ)を、例えば、データベースのテーブルやファイルとして記憶する。
図1に示すフロー編集装置2は、対話処理によりデータフローを編集する環境(以下、フローエディタと称する。)をユーザに提供する。フロー編集装置2は、フローエディタを利用して作成されたデータフローを記述したファイル形式のデータであるフローファイルを生成し、生成したフローファイルを管理装置5に転送する。
図3にフロー編集装置2が備える主な機能を示している。同図に示すように、フロー編集装置2は、記憶部205およびフロー編集部210の各機能を備える。
記憶部205は、編集されたデータフローの実体(アプリケーションのロジック)を記述したファイルであるフローファイル251を記憶する。フロー編集部210は、フローエディタによるデータフローのインタラクティブな編集環境をユーザに提供するフロー編集環境提供部211と、フローファイル251の管理装置5への転送を行うフローファイ
ル転送部212とを含む。
図1に戻り、センサ装置3は、センシング対象から種々のデータを収集し、収集したデータ(以下、センサデータと称する。)を通信ネットワーク8を介してAP実行装置10に供給する。
図4にセンサ装置3が備える主な機能を示している。同図に示すように、センサ装置3は、記憶部305および計測部310の各機能を備える。
計測部310は、センサ17からセンサデータを取得するセンサデータ取得部311と、センサデータ351をAP実行装置10に転送するセンサデータ転送部312とを含む。記憶部305は、センサデータ取得部311によって取得されたセンサデータをセンサデータ351として記憶する。
尚、センサ装置3は、AP実行装置10の処理対象となる入力データを提供する装置の一例に過ぎず、上記入力データは他の方法により提供されるデータ(インターネット(internet)上の情報提供サイトのクローリング(crawling)により収集されたデータやIoTシステムによって収集されたビッグデータ等)であってもよい。
図1に示すクラスタ管理装置4は、AP実行装置10により構成される前述のクラスタの稼動状況の監視を行う。
図5にクラスタ管理装置4が備える主な機能を示している。同図に示すように、クラスタ管理装置4は、記憶部405およびクラスタ管理部410を備える。
記憶部405は、クラスタの構成や稼動状況に関する情報が管理されるクラスタ管理情報451を記憶する。クラスタ管理部410は、クラスタの構成を管理するクラスタ構成管理部411と、クラスタの稼動状況を監視するクラスタ稼動状況監視部412を備える。
図6に管理装置5が備える主な機能を示している。同図に示すように、管理装置5は、記憶部505、コンテナ管理部510、およびコンテナ実行状況監視部520を備える。
記憶部505は、フローファイル551、コンテナ552、コンテナ実行状況553、およびAP実行装置構成情報554を記憶する。
コンテナ管理部510は、フローファイル受信部511、コンテナ生成部512、およびコンテナ配信部513を含む。
フローファイル受信部511は、フロー編集装置2から通信ネットワーク8を介して送られてくるフローファイルを受信する。フローファイル受信部511が受信したフローファイルは、記憶部505がフローファイル551として記憶する。
コンテナ生成部512は、フローファイル551に基づくアプリケーションソフトウェア(以下、APソフトウェアと称する。)のイメージデータであるコンテナを生成する。コンテナは、APソフトウェアの実行モジュール、実行環境に関する情報、展開方法や操作方法に関する情報をパッケージ化したものである。コンテナの一例としてDocker(登録商標)におけるコンテナがある。コンテナ生成部512が生成したコンテナは、記憶部505がコンテナ552として記憶する。
コンテナ配信部513は、通信ネットワーク8を介してコンテナ552をAP実行装置10に配信(デプロイ)する。AP実行装置構成情報554には、通信ネットワーク8におけるAP実行装置10に関する情報(ネットワークID等)が管理されている。コンテナ配信部513は、AP実行装置構成情報554に基づき配信先を特定する。
コンテナ実行状況監視部520は、AP実行装置10の夫々におけるコンテナの実行状況に関する情報を取得する。記憶部505は、上記情報をコンテナ実行状況553として記憶する。
図1に戻り、AP実行装置10は、管理装置5によって配信されたコンテナ552に基づきAPソフトウェアを実行する。本実施形態では、上記APソフトウェアは、一例としてセンサ装置3から受信したセンサデータを分析してその結果を出力するソフトウェアであるものとするが、APソフトウェアの種類は必ずしも限定されない。
図7にAP実行装置10が備える主な機能を示している。同図に示すように、AP実行装置10は、記憶部105、コンテナ受信部110、およびコンテナ実行制御部120を備える。
コンテナ受信部110は、管理装置5から送られてくるコンテナを受信する。コンテナ受信部110が受信したコンテナは、記憶部105がコンテナ151として記憶する。センサデータ受信部115は、センサ装置3から送られてくるセンサデータを受信する。センサデータ受信部115が受信したセンサデータは、記憶部105がセンサデータ152として記憶する。コンテナ実行制御部120は、コンテナに基づくAPソフトウェアの実行制御や状態監視を行う。
図8はコンテナを実行することにより実現されるAPソフトウェアの機能を概念的に示したものである。同図に示すように、APソフトウェア800は、フロー実行制御部811および処理連携部812の各機能を備える。尚、これらの機能の一部は、AP実行装置10が備えるオペレーティングシステムやコンテナ実行制御部120によって実現されるものであってもよい。
フロー実行制御部811は、APソフトウェア800の主要部分のロジック(アルゴリズム)を実行する。
処理連携部812は、APソフトウェア800を複数のAP実行装置10により負荷分散(例えば、並列分散や並行分散)して実行するための機能(AP実行装置10間でメッセージを送受信してAP実行装置10間の処理を連携する機能等)を提供する。
図9にフロー編集装置2のフロー編集部210が提供するフローエディタによって生成されるデータフローの一例を示す。データフロー900は、APソフトウェア800の処理の流れ(ロジック)を、同図において矩形枠で示す複数のブロック(ノードとも称される。)を、同図において矢線で示す接続線(リンクとも称される。)で接続した構造として記述したものである。
同図に示すように、データフロー900は、一つ以上の前処理ブロック911、前処理ブロック911に後続する一つ以上の分散処理開始ブロック912、分散処理開始ブロック912に後続する一つ以上の分散処理対象ブロック913、分散処理対象ブロック913に後続する一つ以上の分散処理終了ブロック914、および、分散処理終了ブロック914に後続する一つ以上の後処理ブロック915、の各ブロックを含む。
分散処理対象ブロック913は、前述した負荷分散クラスタによる分散処理の対象となるブロックである。同図に示すように、データフロー900において、分散処理対象ブロック913は、分散処理開始ブロック912と分散処理終了ブロック914との間に挟まれた位置に記述される。
分散処理開始ブロック912は、AP実行装置(マスタ)(稼動系)10MLが分散処理を開始するためのロジックを含む。また分散処理終了ブロック914は、AP実行装置(ワーカ)10Wが分散処理を終了するためのロジックを含む。
前処理ブロック911は、例えば、APソフトウェア800の入力データに対する前処理を行うロジック(センサデータ351を所定形式のデータに変換するロジック等)を含む。
後処理ブロック915は、例えば、分散処理対象ブロック913で生成されたデータに対する後処理を行うロジック(生成されたデータを所定形式のデータに変換する生成するロジック等)を含む。
管理装置5は、クラスタを構成する複数のAP実行装置10の夫々に、図9に示す構成を有するデータフロー900に基づき生成されるコンテナを配信する。
図10は、管理装置5がコンテナ552をAP実行装置10に配信(デプロイ)する際に情報処理システム1にて行われる処理(以下、コンテナ配信シーケンスS1000と称する。)を説明するシーケンス図である。
同図に示すように、まずフロー編集装置2が、管理装置5にフローファイルを転送し、管理装置5がこれをフローファイル551として記憶する(S1011)。
管理装置5は、フローファイル551に基づきコンテナ552を生成し、生成したコンテナ552を4つのAP実行装置10の夫々に配信(デプロイ)する(S1012)。
尚、本実施形態では、管理装置5は、クラスタを構成する4つのAP実行装置10の夫々に内容が共通するコンテナ552を配信する。このように各AP実行装置10に配信されるコンテナ552の内容を共通にすることで、管理装置5側ではAP実行装置10に配信するコンテナをAP実行装置10毎に管理する必要がなく、コンテナの管理やコンテナの配信処理を簡素化することができる。尚、各AP実行装置10に配信されるコンテナ552の内容を共通にするための仕組みについては後述する。
図11は、コンテナ151に基づきAP実行装置10がAPソフトウェア800を実行する際に情報処理システム1にて行われる処理(以下、APソフト実行シーケンスS1100と称する。)の流れを説明するシーケンス図である。
まずS1111では、センサ装置3が、AP実行装置(マスタ)(稼動系)10MLにセンサデータを送信する。
AP実行装置(マスタ)(稼動系)10MLは、センサデータを受信すると、受信したセンサデータをセンサデータ152として記憶し、センサデータ152を入力データとしてコンテナ151に基づきAPソフトウェア800の実行を開始する。
具体的には、AP実行装置(マスタ)(稼動系)10MLは、まず前処理ブロック911を実行して前処理(センサデータのデータ形式の変換等)を行う。前処理ブロック91
1が終了し、分散処理開始ブロック912に到達すると、続いてAP実行装置(マスタ)(稼動系)10MLは、2つのAP実行装置(ワーカ)10Wに対し、センサデータとともに分散処理対象ブロック913の実行を指示するメッセージ(以下、実行指示とも称する。)を送信(ディスパッチ)する(S1112)。尚、本例では、AP実行装置(マスタ)(稼動系)10MLは、2つのAP実行装置(ワーカ)10Wの夫々に異なるセンサデータを送信し、夫々が異なるセンサデータについて共通の分散処理対象ブロック913を実行するものとする。
AP実行装置(マスタ)(稼動系)10MLから実行指示を受信したAP実行装置(ワーカ)10W(より詳細にはAP実行装置(ワーカ)10Wの分散処理開始ブロック912により実現される機能)は、夫々、実行指示とともに受信したセンサデータについて分散処理対象ブロック913の実行を開始する。分散処理対象ブロック913の実行後、AP実行装置(ワーカ)10W(より詳細にはAP実行装置(ワーカ)10Wの分散処理終了ブロック914により実現される機能)は、AP実行装置(マスタ)(稼動系)10MLに実行結果を通知するメッセージ(以下、実行結果とも称する。)を送信する(S1113)。
AP実行装置(マスタ)(稼動系)10ML(より詳細にはAP実行装置(マスタ)(稼動系)10MLの分散処理終了ブロック914により実現される機能)は、2つのAP実行装置(ワーカ)10Wの夫々から実行結果を受信すると、後処理ブロック915を実行する(S1114)。
ここで以上のAPソフト実行シーケンスS1100において、AP実行装置(ワーカ)10Wの一つに障害が発生した場合には、前述した障害対応クラスタによって処理が自動的に継続される。
図12は、AP実行装置(ワーカ)10Wの一つに障害が発生した場合に情報処理システム1にて行われる処理(以下、APソフト実行シーケンス(ワーカ障害時)S1200と称する。)の流れを説明するシーケンス図である。
同図に示すように、AP実行装置(ワーカ)10Wは、クラスタ管理装置4にハートビートを送信している(S1211)。
続いて実行されるS1212、S1213、およびS1214の処理は、夫々、図11のS1111、S1112、およびS1113と同様である。尚、図11に示したAPソフト実行シーケンスS1100においても同様にAP実行装置(ワーカ)10Wからクラスタ管理装置4にハートビートの送信が行われているが、説明の簡単のため同図では省略している。
クラスタ管理装置4は、AP実行装置(マスタ)(稼動系)10MLからAP実行装置(ワーカ)10Wに実行指示が送信された後、ハートビートの途絶によりAP実行装置(ワーカ)10Wの一つに障害の発生を検知すると(S1216)、当該AP実行装置(ワーカ)10Wに障害が発生していることをAP実行装置(マスタ)(稼動系)10MLに通知する(S1217)。
AP実行装置(マスタ)(稼動系)10MLは、上記通知を受信すると、正常に稼動している他方のAP実行装置(ワーカ)10Wに、障害が発生している一方のAP実行装置(ワーカ)10Wに送信すべきセンサデータとともに実行指示を再送する(S1218)。
上記実行指示を受信すると、他方のAP実行装置(ワーカ)10Wは、上記実行指示とともに受信したセンサデータについて分散処理対象ブロック913を実行し、実行結果をAP実行装置(マスタ)(稼動系)10MLに送信する(S1219)。
AP実行装置(マスタ)(稼動系)10MLは、2つのAP実行装置(ワーカ)10Wから実行結果を受信すると、後処理ブロック915を実行する(S1215,S1220)。
図13は、AP実行装置(マスタ)(稼動系)10MLに障害が発生した場合に情報処理システム1にて行われる処理(以下、APソフト実行シーケンス(マスタ障害時)S1300と称する。)の流れを説明するシーケンス図である。以下、同図とともにAPソフト実行シーケンス(マスタ障害時)S1300について説明する。
同図に示すように、AP実行装置(マスタ)(稼動系)10MLおよびAP実行装置(マスタ)(待機系)10MSは、クラスタ管理装置4にハートビートを送信している(S1311)。尚、同図におけるS1312の処理は、夫々、図11のS1111と同様であるので説明を省略する。尚、図11に示したAPソフト実行シーケンスS1100でも同様にAP実行装置(マスタ)(稼動系)10MLおよびAP実行装置(マスタ)(待機系)10MSからクラスタ管理装置4にハートビートの送信が行われているが、説明の簡単のため同図では省略している。また同図では、図12に示したAP実行装置(ワーカ)10Wからクラスタ管理装置4へのハートビートの送信も省略している。
クラスタ管理装置4は、ハートビートの途絶によりAP実行装置(マスタ)(稼動系)10MLの障害の発生を検知すると(S1313)、AP実行装置(マスタ)(稼動系)10MLに障害が発生していることをAP実行装置(マスタ)(待機系)10MSに通知する(S1314)。
AP実行装置(マスタ)(待機系)10MSは、上記通知を受信すると、稼動系として動作を開始し、センサ装置3からセンサデータを受信する(S1315)。その後、情報処理システム1では、図11のS1112~S1114と同様の処理(S1316~S1318)が行われる。
図14は、AP実行装置(マスタ)(稼動系)10MLが行う、図11のS1112の処理(以下、処理I(S1400)と称する。)の詳細を説明するフローチャートである
。以下、同図とともに処理I(S1400)について説明する。
まずAP実行装置(マスタ)(稼動系)10MLは、センサ装置3からセンサデータを受信する(S1411)。
続いて、AP実行装置(マスタ)(稼動系)10MLは、APソフトウェア800の実行を開始し、APソフトウェア800のフロー実行制御部811が、前処理ブロック911の実行を開始する(S1412)。
上記のフロー実行制御部811は、前処理ブロック911が終了して処理が分散処理開始ブロック912に到達したか否かを判定する(S1413)。処理が分散処理開始ブロック912に到達すると(S1413:YES)、APソフトウェア800の処理連携部812は、AP実行装置(ワーカ)10Wに実行指示を送信する(S1414)。
図15は、AP実行装置(ワーカ)10Wが行う図11のS1113の処理(以下、処理II(S1500)と称する。)の詳細を説明するフローチャートである。以下、同図と
ともに処理II(S1500)について説明する。
まずAP実行装置(ワーカ)10WのAPソフトウェア800の処理連携部812は、AP実行装置(マスタ)(稼動系)10MLからセンサデータと実行指示を受信する(S1511)。
続いて、AP実行装置(ワーカ)10Wのフロー実行制御部811は、実行指示とともに受信したセンサデータについて分散処理対象ブロック913を実行する(S1512)。
AP実行装置(ワーカ)10Wのフロー実行制御部811は、分散処理対象ブロック913が終了して処理が分散処理終了ブロック914に到達したか否かを判定する(S1513)。処理が分散処理終了ブロック914に到達すると(S1513:YES)、AP実行装置(ワーカ)10WのAPソフトウェア800の処理連携部812は、AP実行装置(マスタ)(稼動系)10MLに実行結果を送信する(S1514)。
図16は、AP実行装置(マスタ)(稼動系)10MLが行う図11のS1114の処理(以下、処理III(S1600)と称する。)の詳細を説明するフローチャートである
。以下、同図とともに処理IIIについて説明する。
AP実行装置(マスタ)(稼動系)10MLの処理連携部812は、AP実行装置(ワーカ)10Wの処理連携部812から実行結果を受信する(S1611)。
続いて、AP実行装置(マスタ)(稼動系)10MLのフロー実行制御部811が、後処理ブロック915を実行する(S1612)。
図17は、クラスタ管理装置4が図12および図13において行う、AP実行装置(マスタ)(稼動系)10MLまたはAP実行装置(ワーカ)10Wの障害の発生を監視する処理(以下、処理IV(S1700)と称する。)を説明するフローチャートである。以下、同図とともに処理IV(S1700)について説明する。
前述したように、AP実行装置(マスタ)(稼動系)10ML、AP実行装置(マスタ)(待機系)10MSおよび2つのAP実行装置(ワーカ)10Wは、正常な稼動状態においてクラスタ管理装置4にハートビートを送信している。クラスタ管理装置4は、いずれかのAP実行装置10についてハートビートの途絶を検知すると(S1711:YES)、ハートビートが途絶した装置の種類を判定する(S1712)。
装置の種類がAP実行装置(ワーカ)10Wであった場合(S1712:ワーカ)、クラスタ管理装置4は、AP実行装置(マスタ)(稼動系)10MLにAP実行装置(ワーカ)10Wの障害の発生を通知する(S1713)。
一方、装置の種類がAP実行装置(マスタ)(稼動系)10MLであった場合(S1712:マスタ)、クラスタ管理装置4は、AP実行装置(マスタ)(待機系)10MSにAP実行装置(マスタ)(稼動系)10MLの障害の発生を通知する(S1714)。
尚、クラスタ管理装置4は、以上の処理(S1711~S1714)を繰り返し実行する。
以上の障害監視処理(処理IV)によれば、AP実行装置(ワーカ)10WおよびAP実行装置(マスタ)(稼動系)10MLの双方における障害の発生に対応することができ、
システムの信頼性を担保することができる。
図18は、図11のS1112~S1114の処理(処理I~処理III)に際し、AP実行装置(マスタ)(稼動系)10MLとAP実行装置(ワーカ)10Wとの間で行われる処理(以下、分散処理シーケンスS1800と称する。)の詳細を、各装置でロジックの内容が共通するAPソフトウェア800(フロー実行制御部811および処理連携部812)の動作に着目して説明したシーケンス図である。以下、同図とともに分散処理シーケンスS1800について説明する。尚、AP実行装置(マスタ)(稼動系)10MLの障害発生時に稼動系として動作するAP実行装置(マスタ)(待機系)10MSのAPソフトウェア800も同様の処理を行う。
同図に示すように、まずS1112の分散処理開始ブロック912の一つであるブロック(1805-1)において、AP実行装置(マスタ)(稼動系)10MLのフロー実行制御部811が、当該装置の処理連携部812に実行指示(メッセージ)を送信する。このときフロー実行制御部811は、送信する実行指示に、当該実行指示が分散処理開始ブロック912に起因するものであるか分散処理終了ブロック914に起因するものであるかを示す情報(以下、分散処理状態情報と称する。)を設定する(含ませる)。本例では、フロー実行制御部811は、分散処理状態情報として、分散処理開始ブロック912のブロックIDである「1805」を設定するものとする。
続いて、同ブロックS1112の一つであるブロック(1807-1)において、AP実行装置(マスタ)(稼動系)10MLの処理連携部812が、AP実行装置(ワーカ)10Wの処理連携部812に、フロー実行制御部811から受信した実行指示をセンサデータとともに送信する。
AP実行装置(ワーカ)10Wの処理連携部812は、上記実行指示を受信すると、AP実行装置(ワーカ)10Wのフロー実行制御部811に実行指示をセンサデータとともに送信する(1807-2)。
以上により、AP実行装置(ワーカ)10Wにおいて、分散処理対象ブロック913の処理が開始される(1805-2)。
分散処理対象ブロック913の処理が終了すると、AP実行装置(ワーカ)10Wのフロー実行制御部811が、AP実行装置(ワーカ)10Wの処理連携部812に実行結果(メッセージ)を送信する(S1806-2)。またこのときフロー実行制御部811は、送信する実行結果に、分散処理状態情報として、当該実行結果が分散処理終了ブロック914に起因するものであることを示す情報を設定する(含ませる)。本例では、フロー実行制御部811は、分散処理状態情報として、分散処理終了ブロック914のブロックIDである「1806」を設定するものとする。
AP実行装置(ワーカ)10Wの処理連携部812は、上記実行結果を受信すると、AP実行装置(マスタ)(稼動系)10MLの処理連携部812に実行結果を送信する(S1808-2)。
AP実行装置(マスタ)(稼動系)10MLの処理連携部812は、上記実行結果を受信すると、AP実行装置(マスタ)(稼動系)10MLのフロー実行制御部811に実行結果を送信する(S1808-1)。
AP実行装置(マスタ)(稼動系)10MLのフロー実行制御部811は、上記実行結果を受信すると(S1806-1)、続いて、後処理ブロック915の実行を開始する(
S1806-1)。
図19は、AP実行装置(マスタ)(稼動系)10MLのフロー実行制御部811、またはAP実行装置(ワーカ)10Wのフロー実行制御部811の処理S1900(図18の1805-1、1805-2、1806-2、1806-1の各ブロックにおける処理)の詳細を説明するフローチャートである。
まずフロー実行制御部811が、イベントの発生を契機として(S1911:YES)、メッセージの発信元を判定する(S1912)。尚、ここでいうイベントの発生とは、当該ブロック(図18の1805-1、1805-2、1806-2、1806-1のいずれか)の処理を開始する契機が到来したことを意味する。またここでいう発信元とは、上記契機を生じさせたブロックの実行主体(フロー実行制御部811または処理連携部812)をいう。
発信元がフロー実行制御部811である場合(S1912:フロー実行制御部)、処理はS1913に進む。発信元が処理連携部812である場合(S1912:処理連携部)、処理はS1915に進む。
S1913では、フロー実行制御部811は、分散処理状態情報に当該ブロックのブロックIDを設定したメッセージ(実行指示または実行結果)を生成し、生成したメッセージを自装置の処理連携部812に送信する(S1914)。その後、処理はS1911に戻る。
一方、S1915では、フロー実行制御部811は、分散処理状態情報に当該ブロックのブロックIDを設定したメッセージ(実行指示または実行結果)を生成し、生成したメッセージの処理を継続する(S1916)。その後、処理はS1911に戻る。
図18とともに図19の処理を具体的に説明する。
例えば、分散処理開始ブロック912である1805-1のブロックを開始する契機が到来した場合(S1911:YES)、AP実行装置(マスタ)(稼動系)10MLのフロー実行制御部811は、メッセージの発信元をフロー実行制御部811であると判定し(S1912:フロー実行制御部)、分散処理状態情報に当該ブロック(分散処理開始ブロック912)のブロックIDである「1805」を設定した実行指示を生成し(S1913)、生成した実行指示を自装置であるAP実行装置(マスタ)(稼動系)10MLの処理連携部812に送信する(S1914)。
また例えば、分散処理開始ブロック912である1805-2のブロックを開始する契機が到来した場合(S1911:YES)、AP実行装置(ワーカ)10Wのフロー実行制御部811は、メッセージの発信元を処理連携部812であると判定し(S1912:処理連携部)、分散処理状態情報に当該ブロック(分散処理開始ブロック912)のブロックIDである「1805」を設定した実行指示を生成し(S1915)、当該フロー実行制御部811は分散処理対象ブロック913の処理を開始する(S1916)。
また例えば、分散処理終了ブロック914である1806-2のブロックを開始する契機が到来した場合(S1911:YES)、AP実行装置(ワーカ)10Wのフロー実行制御部811は、メッセージの発信元をフロー実行制御部811であると判定し(S1912:フロー実行制御部)、分散処理状態情報に当該ブロック(分散処理終了ブロック914)のブロックIDである「1806」を設定した実行指示を生成し(S1913)、生成した実行結果を自装置であるAP実行装置(ワーカ)10Wの処理連携部812に送
信する(S1914)。
また例えば、分散処理終了ブロック914である1806-1のブロックを開始する契機が到来した場合(S1911:YES)、AP実行装置(マスタ)(稼動系)10MLのフロー実行制御部811は、メッセージの発信元を処理連携部812であると判定し(S1912:処理連携部)、分散処理状態情報に当該ブロック(分散処理終了ブロック914)のブロックIDである「1806」を設定した実行指示を生成し(S1915)、当該フロー実行制御部811は後処理ブロック915の処理を開始する(S1916)。
以上に説明したように、フロー実行制御部811の処理は、AP実行装置(マスタ)(稼動系)10MLとAP実行装置(ワーカ)10Wとで共通のロジックとすることができる。そのため、APソフトウェア800の生産性や保守性を向上することができる。
図20は、AP実行装置(マスタ)(稼動系)10MLの処理連携部812、またはAP実行装置(ワーカ)10Wの処理連携部812の処理S2000(図18の1807-1、1807-2、1808-2、1808-1のブロックにおける処理)の詳細を説明するフローチャートである。
S2011では、処理連携部812は、イベントの発生を契機として(S2011:YES)、メッセージの発信元を判定する(S2012)。尚、ここでいうイベントの発生とは、当該ブロック(図18の1807-1、1807-2、1808-2、1808-1のいずれか)の処理を開始する契機が到来したことを意味する。またここでいう発信元とは、上記契機を生じさせたブロックの実行主体(フロー実行制御部811または処理連携部812)をいう。
発信元がフロー実行制御部811である場合(S2012:フロー実行制御部)、処理はS2013に進む。発信元が処理連携部812である場合(S2012:処理連携部)、処理はS2016に進む。
S2013では、処理連携部812は、自装置の種類(自装置がマスタであるかワーカであるか)を判定する。自装置がマスタである場合(S2013:マスタ)、処理はS2014に進む。自装置がワーカである場合(S2013:ワーカ)、処理はS2015に進む。
S2014では、処理連携部812は、AP実行装置(ワーカ)10Wの処理連携部812にメッセージを送信する。
S2015では、処理連携部812は、AP実行装置(マスタ)(稼動系)10MLの処理連携部812にメッセージを送信する。
一方、S2016では、自装置のフロー実行制御部811がメッセージの処理を継続する。
図18とともに図20の処理を具体的に説明する。
例えば、分散処理開始ブロック912である1807-1のブロックを開始する契機が到来した場合(S2011:YES)、AP実行装置(マスタ)(稼動系)10MLの処理連携部812は、メッセージの発信元をフロー実行制御部811であると判定し(S2012:フロー実行制御部)、続いて、自装置の種類をマスタであると判定し(S2013:マスタ)、AP実行装置(ワーカ)10Wの処理連携部812にセンサデータととも
に実行指示を送信する(S2014)。
また例えば、分散処理開始ブロック912である1807-2のブロックを開始する契機が到来した場合(S2011:YES)、AP実行装置(ワーカ)10Wの処理連携部812は、メッセージの発信元を処理連携部812であると判定し(S2012:処理連携部)、続いて、自装置の種類をマスタと判定し(S2013:マスタ)、実行指示を自装置であるAP実行装置(ワーカ)10Wのフロー実行制御部811に送信して当該ブロックの処理を継続する(S2016)。
また例えば、分散処理終了ブロック914である1808-2のブロックを開始する契機が到来した場合(S2011:YES)、AP実行装置(ワーカ)10Wの処理連携部812は、メッセージの発信元をフロー実行制御部811であると判定し(S2012:フロー実行制御部)、続いて、自装置の種類をワーカであると判定し(S2013:ワーカ)、AP実行装置(マスタ)(稼動系)10MLの処理連携部812に実行結果を送信する(S2015)。
また例えば、分散処理終了ブロック914である1808-1のブロックを開始する契機が到来した場合(S2011:YES)、AP実行装置(マスタ)(稼動系)10MLの処理連携部812は、メッセージの発信元を処理連携部812であると判定し(S2012:処理連携部)、続いて、実行結果を自装置であるAP実行装置(マスタ)(稼動系)10MLのフロー実行制御部811に送信して自装置のフロー実行制御部811が後処理ブロック915の処理を開始する(S2016)。
以上に説明したように、処理連携部812の処理は、AP実行装置(マスタ)(稼動系)10MLとAP実行装置(ワーカ)10Wとで共通のロジック(アルゴリズム)とすることができる。そのため、APソフトウェア800の生産性や保守性を向上することができる。
図21に、前述したメッセージ(実行指示、実行結果)のデータ構成の一例を示す。同図に示すように、メッセージ2100は、種別2111、分散処理状態情報2112、およびデータ2113の各項目を有する。
種別2111には、当該メッセージ2100の種別(実行指示であるか、実行結果であるか)を示す情報が設定される。分散処理状態情報2112には、前述した分散処理状態情報が設定される。データ2113には、例えば、当該メッセージ2100の種別が実行指示である場合は実行指示とともに送信されるセンサデータが設定され、また当該メッセージ2100の種別が実行結果である場合はAPソフトウェア800の処理の結果(例えば、センサデータについて分散処理対象ブロック913が行った処理の結果)が設定される。
図22は、クラスタ管理装置4が管理するクラスタ管理情報451の一例である。クラスタ管理装置4は、AP実行装置10と通信することによりクラスタ管理情報451の内容を随時(例えば、リアルタイムに)取得し、取得した内容をクラスタ管理情報451に反映する。
同図に示すように、クラスタ管理情報451は、AP実行装置ID2211、種類2212、および稼動状態2213の各項目を有する複数(クラスタを構成しているAP実行装置10の数)のレコードを含む。
AP実行装置ID2211には、AP実行装置10の識別子(以下、AP実行装置ID
と称する。)が設定される。種類2212には、当該AP実行装置10の種類(マスタまたはワーカ)を示す情報が設定される。稼動状態2213には、当該AP実行装置10の稼動状態を示す情報(正常または異常)が設定される。
以上、詳細に説明したように、本実施形態の情報処理システム1によれば、フローエディタによりデータフローを編集することで分散処理に対応したソフトウェアを作成することができる。とくにユーザは、データフローに分散処理開始ブロック912および分散処理終了ブロックを挿入するだけで、分散処理に対応したソフトウェアを容易に作成することができ、生産コストを削減するとともに開発期間を短縮することができる。
このように、本実施形態の情報処理システム1によれば、フローエディタの高い生産性を享受しつつスケーラビリティや信頼性を確保することができ、ひいてはフローエディタにより構築したロジックをそのまま大規模システムや高信頼性が求められるミッションクリティカルなシステムにも適用することができる。
以上、本発明の一実施形態について説明したが、本発明は上記の実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また上記実施形態の構成の一部について、他の構成の追加や削除、置換をすることが可能である。
また上記の各構成、機能部、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、IC
カード、SDカード、DVD等の記録媒体に置くことができる。
また上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。例えば、実際には殆ど全ての構成が相互に接続されていると考えてもよい。
また以上に説明したフロー編集装置2、センサ装置3、クラスタ管理装置4、AP実行装置10、および管理装置5の各種機能部、各種処理部、各種データベースの配置形態は一例に過ぎない。各種機能部、各種処理部、各種データベースの配置形態は、これらの装置が備えるハードウェアやソフトウェアの性能、処理効率、通信効率等の観点から最適な配置形態に変更し得る。
例えば、クラスタ管理装置4と管理装置5を1つの情報処理装置100において実現してもよい。また以上の実施形態では、マスタとして動作するAP実行装置10を稼動系と待機系によるデュプレックスシステムとしたが、デュアルシステムとして冗長性を確保するようにしてもよい。
また前述した各種のデータを格納するデータベースの構成(スキーマ(Schema)等)は、リソースの効率的な利用、処理効率向上、アクセス効率向上、検索効率向上等の観点から柔軟に変更し得る。
1 情報処理システム、2 フロー編集装置、205 記憶部、210 フロー編集部、211 フロー編集環境提供部、212 フローファイル転送部、251 フローファイ
ル、3 センサ装置、4 クラスタ管理装置、405 記憶部、410 クラスタ管理部、411 クラスタ構成管理部、412 クラスタ稼動状況監視部、451 クラスタ管理情報、5 管理装置、505 記憶部、510 コンテナ管理部、511 フローファイル受信部、512 コンテナ生成部、513 コンテナ配信部、520 コンテナ実行状況監視部、551 フローファイル、552 コンテナ、553 コンテナ実行状況、554 AP実行装置構成情報、8 通信ネットワーク、10 AP実行装置、10ML
AP実行装置(マスタ)(稼動系)、10MS AP実行装置(マスタ)(待機系)、10W AP実行装置(ワーカ)、100 情報処理装置、105 記憶部、110 コンテナ受信部、120 コンテナ実行制御部120、151 コンテナ、800 APソフトウェア、811 フロー実行制御部、812 処理連携部、900 データフロー

Claims (15)

  1. フローエディタにより編集されたデータフローに基づくソフトウェアを実行する情報処理システムであって、
    前記ソフトウェアの分散処理を行うクラスタを構成する複数の情報処理装置を含み、
    前記データフローは、分散処理を開始させるブロックである分散処理開始ブロック、分散処理を終了させるブロックである分散処理終了ブロック、および前記分散処理開始ブロックと前記分散処理終了ブロックとの間に記述されるブロックである分散処理対象ブロックを含み、
    前記クラスタを構成する前記情報処理装置であるマスタ装置は、前記データフローの実行時に前記分散処理開始ブロックに到達すると、前記分散処理対象ブロックの実行指示を含むメッセージを、前記クラスタを構成する複数のワーカ装置に送信し、
    前記ワーカ装置の夫々は、前記メッセージを受信すると前記分散処理対象ブロックを実行し、前記分散処理対象ブロックの実行結果を含むメッセージを前記マスタ装置に送信し、
    前記マスタ装置は、前記複数のワーカ装置から前記実行結果を受信すると、前記分散処理終了ブロックに後続する前記データフローのブロックを実行する、
    情報処理システム。
  2. 請求項1に記載の情報処理システムであって、
    前記ソフトウェアは、前記データフローの実行制御を行うフロー実行制御部、および前記分散処理に際して前記実行指示または前記実行結果を含む前記メッセージを送受信して前記情報処理装置間の処理を連携する処理連携部、の各機能を実現するプログラムを含み、
    前記分散処理は、前記情報処理装置が、共通のロジックで記述された前記プログラムを実行することにより実現される、
    情報処理システム。
  3. 請求項2に記載の情報処理システムであって、
    前記フロー実行制御部は、
    前記データフローのブロックを開始する契機が到来すると、前記契機を生じさせたブロックの実行主体である発信元が前記フロー実行制御部または前記処理連携部のいずれであるかを判定し、
    前記発信元が前記フロー実行制御部である場合、前記ブロックが前記分散処理開始ブロックに起因するものであるか前記分散処理終了ブロックに起因するものであるかを示す情報である分散処理状態情報を設定した前記メッセージを自装置の前記処理連携部に送信し
    前記発信元が前記処理連携部である場合、前記分散処理開始ブロックに起因するものであるか前記分散処理終了ブロックに起因するものであるかを示す情報である分散処理状態情報を前記メッセージに設定して前記メッセージの処理を継続する、
    情報処理システム。
  4. 請求項2または3に記載の情報処理システムであって、
    前記処理連携部は、
    前記データフローのブロックを開始する契機が到来すると、前記契機を生じさせたブロックの実行主体である発信元が前記フロー実行制御部または前記処理連携部のいずれであるかを判定し、
    前記発信元が前記フロー実行制御部である場合、自装置が前記マスタ装置または前記ワーカ装置のいずれであるかを判定し、自装置が前記マスタ装置である場合は前記ワーカ装置の前記処理連携部に前記メッセージを送信し、自装置が前記ワーカ装置である場合は前記マスタ装置の前記処理連携部に前記メッセージを送信し、
    前記発信元が前記処理連携部である場合は前記メッセージの処理を継続する、
    情報処理システム。
  5. 請求項2に記載の情報処理システムであって、
    前記ソフトウェアは、前記フロー実行制御部および前記処理連携部の各機能を実現するためのプログラムを含んだコンテナとして、前記クラスタを構成する前記情報処理装置に記憶される、
    情報処理システム。
  6. 請求項1に記載の情報処理システムであって、
    前記クラスタを構成する前記複数の情報処理装置と通信可能に接続する情報処理装置であるクラスタ管理装置を含み、
    前記クラスタ管理装置は、前記ワーカ装置の夫々から送られてくるハートビートに基づき前記ワーカ装置における障害の発生有無を監視し、前記ワーカ装置の一つに障害が発生したことを検知すると、前記障害の発生を前記マスタ装置に通知し、
    前記マスタ装置は、障害の発生していない他の前記ワーカ装置に前記実行指示を再送する、
    情報処理システム。
  7. 請求項1に記載の情報処理システムであって、
    前記クラスタを構成する前記複数の情報処理装置と通信可能に接続する情報処理装置であるクラスタ管理装置を含み、
    前記クラスタは、稼動系の前記マスタ装置と待機系の前記マスタ装置とを含み、
    前記クラスタ管理装置は、前記稼動系のマスタ装置から送られてくるハートビートに基づき前記稼動系のマスタ装置における障害の発生有無を監視し、前記稼動系のマスタ装置に障害が発生したことを検知すると、前記障害の発生を前記待機系のマスタ装置に通知し、
    前記待機系のマスタ装置は、前記通知を受信すると稼動系の前記マスタ装置として動作を開始する、
    情報処理システム。
  8. 請求項1に記載の前記情報処理システムにおける前記データフローの編集環境を提供する情報処理装置であって、
    前記分散処理開始ブロック、前記分散処理終了ブロック、および前記分散処理対象ブロックを含んだデータフローの編集環境を提供する、
    情報処理装置。
  9. フローエディタにより編集されたデータフローに基づくソフトウェアを実行し、前記ソフトウェアの分散処理を行うクラスタを構成する複数の情報処理装置を含んで構成される情報処理システムの制御方法であって、
    前記データフローは、分散処理を開始させるブロックである分散処理開始ブロック、分散処理を終了させるブロックである分散処理終了ブロック、および前記分散処理開始ブロックと前記分散処理終了ブロックとの間に記述されるブロックである分散処理対象ブロックを含み、
    前記クラスタを構成する前記情報処理装置であるマスタ装置が、前記データフローの実行時に前記分散処理開始ブロックに到達すると、前記分散処理対象ブロックの実行指示を含むメッセージを、前記クラスタを構成する複数のワーカ装置に送信するステップ、
    前記ワーカ装置の夫々が、前記メッセージを受信すると前記分散処理対象ブロックを実行し、前記分散処理対象ブロックの実行結果を含むメッセージを前記マスタ装置に送信するステップ、および、
    前記マスタ装置が、前記複数のワーカ装置から前記実行結果を受信すると、前記分散処理終了ブロックに後続する前記データフローのブロックを実行するステップ、
    を実行する、情報処理システムの制御方法。
  10. 請求項9に記載の情報処理システムの制御方法であって、
    前記ソフトウェアは、前記データフローの実行制御を行うフロー実行制御部、および前記分散処理に際して前記実行指示または前記実行結果を含む前記メッセージを送受信して前記情報処理装置間の処理を連携する処理連携部、の各機能を実現するプログラムを含み、
    前記分散処理は、前記情報処理装置が、共通のロジックで記述された前記プログラムを実行することにより実現される、
    情報処理システムの制御方法。
  11. 請求項10に記載の情報処理システムの制御方法であって、
    前記フロー実行制御部が、
    前記データフローのブロックを開始する契機が到来すると、前記契機を生じさせたブロックの実行主体である発信元が前記フロー実行制御部または前記処理連携部のいずれであるかを判定するステップ、
    前記発信元が前記フロー実行制御部である場合、前記ブロックが前記分散処理開始ブロックに起因するものであるか前記分散処理終了ブロックに起因するものであるかを示す情報である分散処理状態情報を設定した前記メッセージを自装置の前記処理連携部に送信するステップ、
    前記発信元が前記処理連携部である場合、前記分散処理開始ブロックに起因するものであるか前記分散処理終了ブロックに起因するものであるかを示す情報である分散処理状態情報を前記メッセージに設定し、前記メッセージの処理を継続するステップ、
    を実行する、情報処理システムの制御方法。
  12. 請求項10または11に記載の情報処理システムの制御方法あって、
    前記処理連携部が、
    前記データフローのブロックを開始する契機が到来すると、前記契機を生じさせたブロックの実行主体である発信元が前記フロー実行制御部または前記処理連携部のいずれであるかを判定するステップ、
    前記発信元が前記フロー実行制御部である場合、自装置が前記マスタ装置または前記ワーカ装置のいずれであるかを判定し、自装置が前記マスタ装置である場合は前記ワーカ装置の前記処理連携部に前記メッセージを送信し、自装置が前記ワーカ装置である場合は前記マスタ装置の前記処理連携部に前記メッセージを送信するステップ、
    前記発信元が前記処理連携部である場合、前記メッセージについての処理を継続するステップ、
    をさらに実行する、情報処理システムの制御方法。
  13. 請求項10に記載の情報処理システムの制御方法であって、
    前記ソフトウェアは、前記フロー実行制御部および前記処理連携部の各機能を実現するためのプログラムを含んだコンテナとして、前記クラスタを構成する前記情報処理装置に記憶される、
    情報処理システムの制御方法。
  14. 請求項9に記載の情報処理システムの制御方法であって、
    前記クラスタを構成する前記複数の情報処理装置と通信可能に接続する情報処理装置であるクラスタ管理装置を含み、
    前記クラスタ管理装置が、前記ワーカ装置の夫々から送られてくるハートビートに基づ
    き前記ワーカ装置における障害の発生有無を監視し、前記ワーカ装置の一つに障害が発生したことを検知すると、前記障害の発生を前記マスタ装置に通知するステップ、および、
    前記マスタ装置が、障害の発生していない他の前記ワーカ装置に前記実行指示を再送するステップ、
    をさらに実行する、情報処理システムの制御方法。
  15. 請求項9に記載の情報処理システムの制御方法であって、
    前記クラスタを構成する前記複数の情報処理装置と通信可能に接続する情報処理装置であるクラスタ管理装置を含み、
    前記クラスタは、稼動系の前記マスタ装置と待機系の前記マスタ装置とを含み、
    前記クラスタ管理装置が、前記稼動系のマスタ装置から送られてくるハートビートに基づき前記稼動系のマスタ装置における障害の発生有無を監視し、前記稼動系のマスタ装置に障害が発生したことを検知すると、前記障害の発生を前記待機系のマスタ装置に通知するステップ、及び、
    前記待機系のマスタ装置が、前記通知を受信すると稼動系の前記マスタ装置として動作を開始するステップ、
    をさらに実行する、情報処理システムの制御方法。
JP2018102404A 2018-05-29 2018-05-29 情報処理システム、情報処理装置、および情報処理システムの制御方法 Active JP7013326B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018102404A JP7013326B2 (ja) 2018-05-29 2018-05-29 情報処理システム、情報処理装置、および情報処理システムの制御方法
EP19811719.4A EP3805923A4 (en) 2018-05-29 2019-04-16 INFORMATION PROCESSING SYSTEM, INFORMATION PROCESSING DEVICE AND METHOD FOR CONTROLLING THE INFORMATION PROCESSING SYSTEM
US16/982,112 US20210019186A1 (en) 2018-05-29 2019-04-16 Information processing system, information processing apparatus, and method of controlling an information processing system
PCT/JP2019/016298 WO2019230228A1 (ja) 2018-05-29 2019-04-16 情報処理システム、情報処理装置、および情報処理システムの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018102404A JP7013326B2 (ja) 2018-05-29 2018-05-29 情報処理システム、情報処理装置、および情報処理システムの制御方法

Publications (2)

Publication Number Publication Date
JP2019207546A JP2019207546A (ja) 2019-12-05
JP7013326B2 true JP7013326B2 (ja) 2022-01-31

Family

ID=68698101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018102404A Active JP7013326B2 (ja) 2018-05-29 2018-05-29 情報処理システム、情報処理装置、および情報処理システムの制御方法

Country Status (4)

Country Link
US (1) US20210019186A1 (ja)
EP (1) EP3805923A4 (ja)
JP (1) JP7013326B2 (ja)
WO (1) WO2019230228A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110445871A (zh) * 2019-08-14 2019-11-12 益逻触控系统公司 自助服务终端的操作方法及自助服务终端

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016146148A (ja) 2015-02-09 2016-08-12 株式会社ソシオネクスト 設計支援装置、および設計支援方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7634756B2 (en) * 2001-03-22 2009-12-15 Robert Dean Bjornson Method and apparatus for dataflow creation and execution
US8059125B2 (en) * 2003-06-25 2011-11-15 Ab Initio Technology Llc Computer-aided parallelizing of computation graphs
US20050071842A1 (en) * 2003-08-04 2005-03-31 Totaletl, Inc. Method and system for managing data using parallel processing in a clustered network
US20060277170A1 (en) * 2005-06-06 2006-12-07 Paul Watry Digital library system
US8316113B2 (en) * 2008-12-19 2012-11-20 Watchguard Technologies, Inc. Cluster architecture and configuration for network security devices
JP5568067B2 (ja) 2011-09-13 2014-08-06 株式会社日立製作所 分散システムにおけるシステム間連携装置
US9086923B2 (en) * 2011-09-16 2015-07-21 Rutgers, The State University Of New Jersey Autonomic workflow management in dynamically federated, hybrid cloud infrastructures
US10630559B2 (en) * 2011-09-27 2020-04-21 UST Global (Singapore) Pte. Ltd. Virtual machine (VM) realm integration and management
US9185156B2 (en) * 2012-11-13 2015-11-10 Google Inc. Network-independent programming model for online processing in distributed systems
US9256460B2 (en) * 2013-03-15 2016-02-09 International Business Machines Corporation Selective checkpointing of links in a data flow based on a set of predefined criteria
US9690829B2 (en) * 2013-04-15 2017-06-27 Vmware, Inc. Dynamic load balancing during distributed query processing using query operator motion
US20150161536A1 (en) * 2013-12-06 2015-06-11 Biodatomics, LLC Scientific workflow execution engine
KR20160087706A (ko) * 2015-01-14 2016-07-22 한국전자통신연구원 가상화 플랫폼을 고려한 분산 데이터 처리 시스템의 자원 할당 장치 및 할당 방법
WO2017023259A1 (en) * 2015-07-31 2017-02-09 AppDynamics, Inc. Quorum based distributed anomaly detection and repair
US10803413B1 (en) * 2016-06-23 2020-10-13 Amazon Technologies, Inc. Workflow service with translator
US10467195B2 (en) * 2016-09-06 2019-11-05 Samsung Electronics Co., Ltd. Adaptive caching replacement manager with dynamic updating granulates and partitions for shared flash-based storage system
JP2018102404A (ja) 2016-12-22 2018-07-05 グンゼ株式会社 生体電極

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016146148A (ja) 2015-02-09 2016-08-12 株式会社ソシオネクスト 設計支援装置、および設計支援方法

Also Published As

Publication number Publication date
US20210019186A1 (en) 2021-01-21
EP3805923A4 (en) 2022-03-02
JP2019207546A (ja) 2019-12-05
EP3805923A1 (en) 2021-04-14
WO2019230228A1 (ja) 2019-12-05

Similar Documents

Publication Publication Date Title
CN111638970B (zh) 以网络为中心的进程控制系统中的冗余
AU2016238870B2 (en) Fault-tolerant key management system
JP6164747B2 (ja) 協働環境におけるフロー制御のためのおよび信頼性のある通信のための方法
US7937716B2 (en) Managing collections of appliances
US20080028048A1 (en) System and method for server configuration control and management
KR20110044858A (ko) 데이터 센터들에 걸쳐 데이터 서버들내 데이터 무결정의 유지
CN111258780B (zh) 基于前置机进行数据交换的系统及方法
US9503422B2 (en) Apparatus, systems, platforms, and methods for securing communication data exchanges between multiple networks for industrial and non-industrial applications
CN102158498B (zh) 一种支持服务定制与扩展的网络节点结构实现方法
CN109769001A (zh) 一种物联网数据传输方法及系统
US20130227568A1 (en) Systems and methods involving virtual machine host isolation over a network
JP7013326B2 (ja) 情報処理システム、情報処理装置、および情報処理システムの制御方法
EP3429128B1 (en) Hard drive operation method and hard drive manager
KR101605455B1 (ko) 데이터 손실 없는 데이터베이스 리두 로그 이중화 방법 및 그를 위한 시스템
JP2008283608A (ja) 冗長化された通信経路を切り替える計算機、プログラム及び方法
WO2020238746A1 (zh) 日志信息处理系统、日志信息处理方法及装置和交换机
CN113347066B (zh) 请求处理方法、Ambari架构、设备及可读存储介质
EA006307B1 (ru) Система, способы и устройства, предназначенные для интеграции распределенных приложений
CN103929320A (zh) 一种针对it系统灾难恢复的集成平台
CN113961398A (zh) 业务处理方法、装置、系统、设备、存储介质和产品
CN112732495A (zh) 一种信息交互方法、装置及存储介质
CN104734923B (zh) 应用任务的执行控制方法和系统、消息服务器
Albassam et al. Variable recovery and adaptation connectors for dynamic software product lines
JP2018060420A (ja) 情報処理システム、情報処理装置およびプログラム
US20150205685A1 (en) In-band recovery mechanism for i/o modules in a data storage system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190201

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

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: 20220118

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220119

R150 Certificate of patent or registration of utility model

Ref document number: 7013326

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150