JP2017102777A - 負荷分散処理サーバ、負荷分散処理方法、及び、システム - Google Patents

負荷分散処理サーバ、負荷分散処理方法、及び、システム Download PDF

Info

Publication number
JP2017102777A
JP2017102777A JP2015236562A JP2015236562A JP2017102777A JP 2017102777 A JP2017102777 A JP 2017102777A JP 2015236562 A JP2015236562 A JP 2015236562A JP 2015236562 A JP2015236562 A JP 2015236562A JP 2017102777 A JP2017102777 A JP 2017102777A
Authority
JP
Japan
Prior art keywords
workflow
processing
server
execution
processing component
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015236562A
Other languages
English (en)
Inventor
清子 田村
Kiyoko Tamura
清子 田村
浩昭 小峰
Hiroaki Komine
浩昭 小峰
浩文 井之口
Hirofumi Inoguchi
浩文 井之口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015236562A priority Critical patent/JP2017102777A/ja
Priority to US15/354,505 priority patent/US10353741B2/en
Publication of JP2017102777A publication Critical patent/JP2017102777A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ワークフローの負荷分散処理を柔軟に行う負荷分散処理サーバ、方法及びシステムを提供する。【解決手段】ワークフローエンジン830−1〜830−nは、処理の実行単位である処理部品を複数含む、処理部品の実行手順を示すワークフローの第1の実行要求を受信する受信部220と、前記第1の実行要求で指定される処理部品を実行し、自サーバの負荷状況と次に実行する処理部品を処理可能な他サーバの負荷状況とに基づいて、該次の処理部品を実行するサーバを決定する実行部230と、決定された前記サーバが決定した前記他サーバの場合、前記ワークフローの識別子と、前記次の処理部品までに実施した処理に基づく該ワークフローの引継情報と、該次の処理部品の識別子とを含む第2の実行要求を送信する引継部250とを有する。【選択図】図4

Description

本発明は、負荷分散処理サーバ、負荷分散処理方法、及び、システムに関する。
近年、処理手順を規定したワークフローに従って、複数のコンピュータ(エージェント)が連携してワークを行うシステムが導入されている。エージェントの能力と負荷状態を観測し、適切なワークの実行、エージェント間の通信量を抑制する技術等が知られている。
特開平11−96011号公報 特開平8−123744号公報 特表2003−528358号公報
ビデオ、写真、ゲーム等様々なデータを扱うアプリケーションの増加、更に、センサー、ウェアラブル端末等を用いた新しいスタイルのデータ通信の増加が、ワークフローを複雑化し、また、ワークフローの種類を増加させている。
上述した技術では、能力と負荷状態の観測は、全てのエージェントに対して行われるため、ワークフローに係る様々な変動に柔軟に対応することができないといった問題がある。
したがって、1つの側面では、本発明は、ワークフローの負荷分散処理を柔軟に行うことを目的とする。
一態様によれば、処理の実行単位である処理部品を複数含む、処理部品の実行手順を示すワークフローの第1の実行要求を受信する受信部と、前記第1の実行要求で指定される処理部品を実行し、自サーバの負荷状況と次に実行する処理部品を処理可能な他サーバの負荷状況とに基づいて、該次の処理部品を実行するサーバを決定する実行部と、決定された前記サーバが決定した前記他サーバの場合、前記ワークフローの識別子と、前記次の処理部品までに実施した処理に基づく該ワークフローの引継情報と、該次の処理部品の識別子とを含む第2の実行要求を送信する引継部とを有する負荷分散処理サーバが提供される。
また、上記課題を解決するための手段として、負荷分散処理方法、及びシステムとすることもできる。
ワークフローの負荷分散処理を柔軟に行うことができる。
本実施例におけるネットワーク構成例を示す図である。 ワークフローシステム内のネットワーク構成例を示す図である。 ワークフローシステムにおけるハードウェア構成を示す図である。 ワークフローシステムの機能構成例を示す図である。 ワークフローデータの例を示す図である。 部品情報テーブルのデータ構成例を示す図である。 ワークエンジン情報テーブルのデータ構成例を示す図である。 ワークフロー管理部による処理を説明するためのフローチャート図である。 ワークフローエンジンによる処理を説明するためのフローチャート図である。 ワークフロー例を示す図である。 本実施例における第一の動作例を示す図である。 本実施例における第二の動作例を示す図である。 外部システムへのアクセス競合を防止する部品情報テーブルの設定例を示す図である。
以下、本発明の実施の形態を図面に基づいて説明する。図1は、本実施例におけるネットワーク構成例を示す図である。図1において、本実施例におけるネットワーク構成1000は、ユーザ端末3と、ゲートウェイ4と、WAN(広域ネットワーク)5と、データデンター6と、管理者端末7と、ワークフローシステム800とを有する。
ユーザ端末3は、ゲートウェイ4及びWAN5を介して接続されるデータセンター6とのデータ送受信により、業務が行われる情報処理端末である。ユーザ端末3は、デスクトップ型、ノートブック型、タブレット型、携帯型の種々の情報処理端末のいずれであってもよい、
ゲートウェイ4は、ユーザ端末3と、外部のWAN5とを接続するネットワーク機器である。外部のWAN5は、ユーザ端末3と、データセンター6との間でデータ通信を行うための複数の中継装置5rを有する。
ユーザ端末3によって行われる業務は、データセンター6とのデータ通信を含むことに限定されない。業務は、種々のサーバと連携してなされ、データセンター6は、その一例として例示したにすぎない。
管理者端末7は、ユーザ端末3からのパスリクエスト3rに応じて、パスリクエスト3rに従ったワークフロー7fの制御をワークフローシステム800に行わせる情報処理端末であり、ワークフロー7fを監視する管理者によって利用される。管理者は、管理者端末7から、ワークフロー7fを実行した結果を、ワークフローサーバ810、外部システム850に接続して、確認できる。
ワークフローシステム800は、ワークフローサーバ810と、ワークフローエンジン830−1、・・・830−nを含む複数のワークフローエンジン830と、外部システムA、外部システムB等を含む複数の外部システム850とを有する。ワークフローサーバ810と、複数のワークフローエンジン830とは、ネットワーク等により接続される。また、複数のワークフローエンジン830の各々は、1以上の外部システム850とネットワーク等により接続される。
本実施例では、ワークフロー7fを記述したワークフローデータ7dは、予め、管理者端末7からワークフローサーバ810及び複数のワークフローエンジン830に設定される。ワークフローサーバ810及び複数のワークフローエンジン830の各々は、ワークフローデータ7dを保持する。
ワークフローサーバ810は、管理者端末7からのワークフロー7fを識別するワークフロー名を指定した実行要求を受信すると、ワークフローデータ7dに基づいて、複数のワークフローエンジン830の中から、負荷情報に基づいて1つを選択して実行要求を送信し、ワークフローエンジン830に他のワークフローエンジン830と連携して、実行要求で示されるワークフロー7fの内容を行わせるサーバ装置である。
ワークフローエンジン830は、ワークフローサーバ810又は他のワークフローエンジン830からの実行要求の受信に応じて、1以上の外部システム850に処理を行わせる情報処理装置である。
各ワークフローエンジン830は、外部システム1以上を制御して特定の処理を行う処理部品a1、a2、・・・、b1、b2、・・・等の1又は複数を有するサーバである。各処理部品a1、・・・、b1、・・・等は、外部システムA、B等を含む複数の外部システム850の1つを制御して、特定の処理を実行する。
外部システム850の例として、外部システムAは、ユーザ端末3とデータセンター6とのデータ転送が正常に行なわれるよう、ゲートウェイ4、WAN5、データセンター6内のLAN6a及びデータベース(DB)サーバ6c等を含めて、ユーザ端末3とデータセンター6間のネットワーク全体を監視し、制御するコンピュータ装置である。外部システムBは、種々の業務に係る契約(アプリケーションの使用権等)を管理し、契約に基づき業務を遂行するコンピュータ装置であってもよい。
図2は、ワークフローシステム内のネットワーク構成例を示す図である。図2において、ワークフローサーバ810は、ネットワーク2を介して、複数のワークフローエンジン830に接続される。
各ワークフローエンジン830は、ネットワーク2を介して外部システム850に接続可能である。各ワークフローエンジン830は、実行する処理に係る外部システム850を制御して、ワークフロー3fの内容を実現する。
次に、本実施例に係るハードウェア構成について説明する。図3は、ワークフローシステムにおけるハードウェア構成を示す図である。図3では、本実施例に係るハードウェア構成を示し、他を省略している。
図3において、ワークフローサーバ810は、コンピュータによって制御されるサーバ装置であって、CPU(Central Processing Unit)811と、主記憶装置812と、補助記憶装置813と、回線I/F(インターフェース)814と、ドライブ装置818とを有し、バスB1に接続される。
CPU811は、主記憶装置812に格納されたプログラムに従ってワークフローサーバ810を制御するプロセッサに相当する。主記憶装置812には、RAM(Random Access Memory)、ROM(Read Only Memory)等が用いられ、CPU811にて実行されるプログラム、CPU811での処理に必要なデータ、CPU811での処理にて得られたデータ等を記憶又は一時保存する。
補助記憶装置813には、HDD(Hard Disk Drive)等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置813に格納されているプログラムの一部が主記憶装置812にロードされ、CPU811に実行されることによって、各種処理が実現される。記憶部820は、主記憶装置812と、補助記憶装置813とに相当する。
回線I/F814は、ネットワーク2を介して、複数のワークフローエンジン830の各々との通信を行う。回線I/F814は、また、管理者端末7との通信を行う。回線I/F814による通信は無線又は有線に限定されるものではない。
ワークフローサーバ810によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read‐Only Memory)等の記憶媒体819によってワークフローサーバ810に提供される。
ドライブ装置818は、ドライブ装置818にセットされた記憶媒体819(例えば、CD−ROM等)とワークフローサーバ810とのインターフェースを行う。
また、記憶媒体819に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体819に格納されたプログラムは、ドライブ装置818を介してワークフローサーバ810にインストールされる。インストールされたプログラムは、ワークフローサーバ810により実行可能となる。
尚、プログラムを格納する記憶媒体819はCD−ROMに限定されず、コンピュータが読み取り可能な、構造(structure)を有する1つ以上の非一時的(non‐transitory)な、有形(tangible)な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
ワークフローサーバ810は管理者端末7から制御可能な構成とした場合のハードウェア構成を示すが、マウス、キーボード等の入力装置、各種情報を表示する表示装置等を有しても良い。
ワークフローサーバ810には、ネットワーク2を介して、ワークフローエンジン830−1、830−2等を含む複数のワークフローエンジン830が接続される。各ワークフローエンジン830は、コンピュータによって制御される情報処理装置であって、略同様のハードウェア構成を有し、CPU831と、主記憶装置832と、補助記憶装置833と、回線I/F834a及び834bと、ドライブ装置838とを有する。
CPU831、主記憶装置832に格納されたプログラムに従ってワークフローサーバ810を制御するプロセッサに相当する。主記憶装置832には、RAM(Random Access Memory)、ROM(Read Only Memory)等が用いられ、CPU831にて実行されるプログラム、CPU831での処理に必要なデータ、CPU831での処理にて得られたデータ等を記憶又は一時保存する。
補助記憶装置833には、HDD(Hard Disk Drive)等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置833に格納されているプログラムの一部が主記憶装置832にロードされ、CPU831に実行されることによって、各種処理が実現される。記憶部840は、主記憶装置832と、補助記憶装置833とに相当する。
回線I/F834aは、ネットワーク2を介して、ワークフローサーバ810、及び他のワークフローエンジン830の各々との通信を行う。回線I/F834bは、1以上の外部システム850との通信を行う。回線I/F834a及び834bによる通信は無線又は有線に限定されるものではない。
ワークフローエンジン830によって行われる処理を実現するプログラムは、例えば、CD−ROM(Compact Disc Read‐Only Memory)等の記憶媒体839によってワークフローエンジン830に提供される。
ドライブ装置838は、ドライブ装置838にセットされた記憶媒体839(例えば、CD−ROM等)とワークフローエンジン830とのインターフェースを行う。
また、記憶媒体839に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体839に格納されたプログラムは、ドライブ装置838を介してワークフローエンジン830にインストールされる。インストールされたプログラムは、ワークフローエンジン830により実行可能となる。
尚、プログラムを格納する記憶媒体839はCD−ROMに限定されず、コンピュータが読み取り可能な、構造(structure)を有する1つ以上の非一時的(non‐transitory)な、有形(tangible)な媒体であればよい。コンピュータ読取可能な記憶媒体として、CD−ROMの他に、DVDディスク、USBメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
図4は、ワークフローシステムの機能構成例を示す図である。図4に示すワークフローシステム800では、ワークフローデータ7d(図1)は、予め、ワークフローサーバ810及び各ワークフローエンジン830へ提供される。ワークフローサーバ810では、ワークフローデータ7dをワークフロー情報テーブル121に記憶し管理する。各ワークフローエンジン830においても、ワークフローデータ7dをワークフロー情報テーブル221に記憶し管理する。
ワークフローサーバ810は、主に、ワークフロー管理部110を有する。ワークフロー管理部110は、回線I/F814を介して管理者端末7から受信した実行要求で指定されるワークフロー7fに従った処理を行うために、複数のワークフローエンジン830の負荷を管理し、負荷に応じて、ワークフローエンジン830を選択し、選択したワークフローエンジン830に実行要求を行う。
ワークフロー管理部110は、複数のワークフローエンジン830の一つから実行要求に対する処理結果を受信すると、管理者端末7へ通知する。
ワークフロー管理部110は、更に、ワークフロー実行受付部120と、ワークフローエンジン負荷監視部130とを有する。また、ワークフローサーバ810の記憶部820には、ワークフロー情報テーブル121、部品情報テーブル131、ワークフローエンジン情報テーブル132等が記憶される。
ワークフロー実行受付部120は、ワークフロー7fの実行要求を受け付け、ワークフローエンジン830を決定し、ワークフロー7fの実行要求を行う。先ず、ワークフロー実行受付部120は、ワークフロー情報テーブル121から、実行要求のワークフロー名のワークフローデータ7dを取得する。
次に、ワークフロー実行受付部120は、部品情報テーブル131を参照して、ワークフロー7fにおいて最初に実行する処理部品を確認し、その処理部品を処理できるワークフローエンジン830を特定する。
複数のワークフローエンジン830が候補として特定された場合、ワークフロー実行受付部120は、ワークフローエンジン情報テーブル132を参照して、負荷が最も少ないワークフローエンジン830を選択する。負荷は、CPU使用率、又は稼働中のワークフロー7fの個数等であればよい。
ワークフロー情報テーブル121は、ワークフロー7fのワークフロー名とワークフローデータ7dとを対応付けたテーブルに相当する。
部品情報テーブル131は、各ワークフローエンジン830が有する外部システム850にアクセスするための処理部品名を示すテーブルに相当する。処理部品名は、処理部品を識別可能な名称、又は、処理部品IDを示す。或いは、部品情報テーブル131では、処理部品の名称を管理し、別のテーブルで処理部品の名称と処理部品IDとが対応付けて管理されていてもよい。
ワークフローエンジン情報テーブル132は、各ワークフローエンジン830にアクセスするための情報と負荷情報とを格納したテーブルに相当する。負荷情報は、CPU使用率、実行しているワークフロー数等を示す。
ワークフローエンジン負荷監視部130は、ワークフローシステム800内の各ワークフローエンジン830の業務管理部220から周期的に負荷情報を収集して、ワークフローエンジン情報テーブル132を更新する。
また、ワークフローエンジン負荷監視部130は、各ワークフローエンジン830のワークフローエンジン情報テーブル232を更新する。負荷情報では、CPU使用率、又は稼働中のワークフロー7fの個数等が示される。
ワークフローシステム800において、各ワークフローエンジン830は、主に、業務管理部220と、1以上のワークフロー実行部230と、連携ライブラリ240と、ワークフロー引継部250とを有する。
また、各ワークフローエンジン830の記憶部840には、ワークフロー情報テーブル221、部品情報テーブル231、ワークフローエンジン情報テーブル232等が記憶される。ワークフロー情報テーブル221、部品情報テーブル231、ワークフローエンジン情報テーブル232は、夫々、ワークフロー情報テーブル121、部品情報テーブル131、ワークフローエンジン情報テーブル132に相当するため、その説明を省力する。
業務管理部220は、ワークフローサーバ810又は他ワークフローエンジン830からワークフロー7fの実行要求を回線I/F834bにより受信すると、ワークフロー実行部230を起動し、ワークフロー7fの実行要求を行って、ワークフロー実行部230によるワークフロー7fの実行結果を管理する。業務管理部220は、ワークフロー7fの実行要求を受信する受信部を有する。
業務管理部220は、ワークフロー情報テーブル221を参照して、実行要求で指定されるワークフロー名に対応するフローデータ7dを取得して、ワークフロー実行部230に通知する。
ワークフロー実行部230は、業務管理部220からの実行要求で指定されるワークフロー7f内で指定される処理内容を順次実行する。ワークフロー実行部230は、部品情報テーブル231を参照して処理可否を判断し、連携ライブラリ240を介して、外部システム850を制御して処理を実行するか、又は、ワークフロー引継部250に、他のワークフローエンジン830にワークフロー7fを引き継ぐ処理を行わせるかのいずれかを行う。
連携ライブラリ240は、外部システムA、外部システムB等の外部システム850にアクセスするためのAPI(Application Programming Interface)部品の集合である。
ワークフロー引継部250は、ワークフロー実行部230からの引継要求に応じて、他ワークフローエンジン830にワークフロー7fの途中から処理を引き継ぐ実行要求を行う。
図4において、ワークフローサーバ810が、ワークフローエンジン830−1を選択した場合について説明する。他のワークフローエンジン830−2等が選択された場合も同様である。
ワークフローエンジン830−1は、ワークフローサーバ810から実行要求を受信すると、業務管理部220が、ワークフロー情報テーブル221から実行要求で指定されるワークフロー名に対応付けられたワークフローデータ7dを取得し、ワークフロー実行部230を起動する。
ワークフロー実行部230は、ワークフローデータ7dに示される処理部品及びその実行手順に従って、自身で実行可能な処理部品による処理を行う。連携ライブラリ240は、処理部品からAPI呼び出しされることで、外部システムAを制御する。
ワークフローデータ7dに示される処理部品が存在しない場合、ワークフローエンジン830−1のワークフロー実行部230は、部品情報テーブル231を参照して、自身で次のワークフローエンジン830を決定し、ワークフロー引継部250に引継要求を行う。ワークフローエンジン830−2が決定されたとする。
引継要求では、次のワークフローエンジン830−2を特定する情報(IP(Internet Protocol)アドレス等)、ワークフロー7fのワークフロー名、次に実行する処理部品までに実施した処理に基づく引継情報、次に実行する処理部品のID(処理部品ID)等の情報が指定される。
ワークフロー引継部250は、ワークフロー実行部230からの引継要求に応じて、引継用の実行要求(以下、実行要求(引継)という)を作成し、引継要求で指定されるワークフローエンジン830−2に対して送信する。実行要求(引継)には、引継要求で指定される、ワークフロー名、引継情報、次に実行する処理部品ID等の情報が含まれる。
ワークフローエンジン830−2では、ワークフローエンジン830−1からの実行要求(引継)を受信すると、業務管理部220が、ワークフロー情報テーブル221から実行要求で指定されるワークフロー名に対応付けられたワークフローデータ7dを取得し、ワークフロー実行部230を起動する。
ワークフロー実行部230は、ワークフローデータ7dに示される処理部品及びその実行手順に従って、指定された処理部品IDで特定される処理部品による処理から開始する。連携ライブラリ240は、処理部品からAPI呼び出しされることで、外部システムBを制御する。
ワークフローデータ7dに示される処理部品が存在しない場合、ワークフローエンジン830−2のは、部品情報テーブル231を参照して、自身で次のワークフローエンジン830を決定し、ワークフロー引継部250に引継要求を行う。ワークフローエンジン830−1が決定されたとする。
引継要求では、次のワークフローエンジン830−1を特定する情報(IP(Internet Protocol)アドレス等)、ワークフロー7fのワークフロー名、次に実行する処理部品までに実施した処理に基づく引継情報、次に実行する処理部品ID等の情報が指定される。
ワークフロー引継部250は、ワークフロー実行部230からの引継要求に応じて、実行要求(引継)を作成し、引継要求で指定されるワークフローエンジン830−1に対して送信する。実行要求(引継)には、引継要求で指定される、ワークフロー名、引継情報、次に実行する処理部品ID等の情報が含まれる。
ワークフロー7fに基づく処理完了の通知は、ワークフロー7fを完了したワークフローエンジン830がワークフローサーバ810に行う。また、ワークフロー7fに基づく処理が実行不可と判断された場合には、実行不可を判断したワークフローエンジン830がワークフローサーバ810に行う。
このように、本実施例では、初期の実行要求は、負荷情報に基づいて、複数のワークフローエンジン830の1つにのみ行えばよい。各ワークフローエンジン830は、処理の可否の判断結果と負荷情報等に基づき、ワークフロー7fの途中から処理を引き継ぐ次のワークフローエンジン830を決定する。従って、処理分散をワークフロー7fの実行中に適宜行える。また、ワークフローサーバ810の管理処理に係る負荷を軽減させることができる。
図5は、ワークフローデータの例を示す図である。図5では、XML(Extensible Markup Language)で記述されたワークフローデータ7dを例示する。ワークフロー名7nにより、ワークフローデータ7dが特定され、タグ<branch>毎に、idにより処理部品ID7idが指定され、処理部品7pが特定される。
処理部品7pは、処理の実行単位である。即ち、ワークフロー7fは、処理部品7pを複数含み、ワークフローデータ7dによって複数の処理部品7pの実行順序を示す。
次に、部品情報テーブル131及びワークフローエンジン情報テーブル132のデータ構成例について、図6及び図7で説明する。
図6は、部品情報テーブルのデータ構成例を示す図である。図6において、部品情報テーブル131は、ワークフローエンジン830毎に処理可能な処理部品を示したテーブルであり、ワークフローエンジン名、処理部品名等の項目を有する。
ワークフローエンジン名は、複数のワークフローエンジン830の各々を識別する名称等の情報を示す。処理部品名は、ワークフローエンジン830が処理可能な処理部品を識別する名称等の情報を示す。
図6に示すデータ例では、ワークフローエンジン名「WFE−1」のワークフローエンジン830が処理可能な処理部品は、処理部品名により、a1、a2、及びa3であることが示されている。
ワークフローエンジン名「WFE−2」のワークフローエンジン830が処理可能な処理部品は、処理部品名により、b1、b2、及びb3であることが示されている。
ワークフローエンジン名「WFE−3」のワークフローエンジン830が処理可能な処理部品は、処理部品名により、a1、a2、a3、b1、b2、及びb3であることが示されている。
図7は、ワークエンジン情報テーブルのデータ構成例を示す図である。図7において、ワークフローエンジン情報テーブル132は、ワークフローエンジン830を決定する際に参照されるテーブルであり、ワークフローエンジン名、アクセス用情報、負荷等の項目を有する。
ワークフローエンジン名は、現在稼働中のワークフローエンジン830を識別する名称(例えば、ホスト名)等の情報を示す。アクセス用情報は、アクセスするためのIPアドレス、アカウント情報、又は認証情報等の情報を示す。負荷は、ワークフローエンジン830のCPU使用率、又は実行中のワークフローの個数等を示す。
図7に示すデータ例では、ワークフローエンジン名「WFE−1」のワークフローエンジン830に関して、アクセスはアクセス用情報により「IP1」であり、負荷は「10」であることを示している。
ワークフローエンジン名「WFE−2」のワークフローエンジン830に関して、アクセスはアクセス用情報により「IP2」であり、負荷は「20」であることを示している。ワークフローエンジン名「WFE−3」のワークフローエンジン830に関して、アクセスはアクセス用情報により「IP3」であり、負荷は「40」であることを示している。
次に、ワークフローサーバ810のワークフロー管理部110による処理を説明する。図8は、ワークフロー管理部による処理を説明するためのフローチャート図である。
図8において、ワークフロー管理部110は、回線I/F814によって、管理者端末7からワークフロー7fのワークフロー名を指定した実行要求を受信すると(ステップS101)、ワークフロー情報テーブル121から、実行要求のワークフロー名のワークフローデータ7dを取得する(ステップS102)。
ワークフロー管理部110は、部品情報テーブル131を参照して、ワークフロー7f内の最初に実行する処理部品を持っているワークフローエンジン830を検索する(ステップS103)。
即ち、ワークフロー管理部110は、ワークフローデータ7dを解析して、ワークフロー7fにおいて、最初に実行する処理部品名を抽出し、抽出した処理部品名を用いて部品情報テーブル131から最初に処理を実行するワークフローエンジン830を検索する。検索できた場合には、ワークフローエンジン830のワークフローエンジン名が抽出される。
ワークフロー管理部110は、ワークフローエンジン830を検索できたか否かを判断する(ステップS104)。ワークフローエンジン830を検索できなかった場合(ステップS104のNO)、ワークフロー管理部110は、要求されたワークフロー7fにおいて、最初に実行する処理を行えるワークフローエンジン830は存在しないと判断し、管理者端末7へ実行不可を通知する(ステップS105)。その後、ワークフロー管理部110は、ステップS101で受信したワークフロー7fの実行要求に対する処理を終了する。
ワークフローエンジン830を検索できた場合(ステップS104のYES)、ワークフロー管理部110は、要求されたワークフロー7fにおいて、最初に実行する処理を行えるワークフローエンジン830が存在すると判断し、2以上のワークフローエンジン830が存在するか否かを判断する(ステップS106)。
2以上のワークフローエンジン830が存在しない場合(ステップS106のNO)、ワークフロー管理部110は、検索したワークフローエンジン830にワークフロー7fの実行要求を行うためステップS108へと進む。
一方、2以上のワークフローエンジン830が存在する場合(ステップS106のYES)、ワークフロー管理部110は、ワークフローエンジン情報テーブル132を参照して、2以上のワークフローエンジン830のうち負荷の一番小さいワークフローエンジン830を選択する(ステップS107)。
ワークフロー管理部110は、ワークフローエンジン830に、少なくとも、ワークフロー名と、最初の処理部品の処理部品IDとを指定した実行要求を送信する(ステップS108)。その後、ワークフロー管理部110は、実行要求を送信したワークフローエンジン830から、応答を受信して、権利者端末7へ通知する(ステップS109)。その後、ワークフロー管理部110は、この処理を終了する。
次に、ワークフローエンジン830での処理を説明する。図9は、ワークフローエンジンによる処理を説明するためのフローチャート図である。
図9において、ワークフローエンジン830では、業務管理部220が、回線I/F834bによって、ワークフローサーバ810又はワークフローエンジン830から、少なくとも、ワークフロー7fのワークフロー名と、実行する処理部品の処理部品IDとを指定した実行要求を受信すると(ステップS201)、ワークフロー情報テーブル221から、実行要求のワークフロー名のワークフローデータ7dを取得する(ステップS202)。
ワークフローサーバ810から実行要求を受信した場合、ワークフロー7fにおける最初の処理部品IDが指定される。ワークフローエンジン830から実行要求を受信した場合、ワークフロー7fにおける途中の処理部品IDが指定される。
業務管理部220は、ワークフロー実行部230を起動して、取得したワークフローデータ7dと、実行要求で指定された処理部品IDとをワークフロー実行部230に通知する(ステップS202−2)。実行要求で指定された処理部品IDで特定される処理部品から、以下の処理が繰り返される。
ワークフロー実行部230は、処理部品IDで特定される処理部品を実行し(ステップS203)、ワークフローデータ7dから次の処理部品IDを検索することで、ワークフロー7fを終了したか否かを判断する(ステップS204)。次の処理部品IDが存在する場合、ワークフロー7fを終了していないと判断する。
次の処理部品IDが存在せず、ワークフロー7fを終了したと判断した場合(ステップS204のYES)、ワークフロー実行部230は、処理完了をワークフローサーバ810に通知する(ステップS205)。ワークフローサーバ810から管理者端末7へ処理完了が通知される。その後、ワークフローエンジン830は、ステップS101で受信したワークフロー7fの実行要求に対する処理を終了する。
一方、次の処理部品IDが存在し、ワークフロー7fを終了していないと判断した場合(ステップS204のNO)、ワークフロー実行部230は、部品情報テーブル231を参照して、ワークフロー7f内で次に実行する処理部品を持っているワークフローエンジン830を検索する(ステップS206)。
即ち、ワークフロー実行部230は、ワークフローデータ7dを解析して、ワークフロー7fにおいて、ステップS203で実行した処理部品の次の処理部品を抽出し、抽出した処理部品名を用いて部品情報テーブル131から最初に処理を実行するワークフローエンジン830を検索する。検索できた場合には、ワークフローエンジン830のワークフローエンジン名が抽出される。
ワークフロー実行部230は、ワークフローエンジン830を検索できたか否かを判断する(ステップS207)。ワークフローエンジン830を検索できなかった場合(ステップS207のNO)、ワークフロー実行部230は、要求されたワークフロー7fにおいて、最初に実行する処理を行えるワークフローエンジン830は存在しないと判断し、管理者端末7へ実行不可を通知する(ステップS208)。その後、ワークフロー実行部230は、ステップS201で受信したワークフロー7fの実行要求に対する処理を終了する。
ワークフローエンジン830を検索できた場合(ステップS207のYES)、ワークフロー実行部230は、要求されたワークフロー7fにおいて、次の処理を行えるワークフローエンジン830が存在すると判断し、2以上のワークフローエンジン830が存在したか否かを判断する(ステップS209)。
2以上のワークフローエンジン830が存在しない場合(ステップS209のNO)、ワークフロー実行部230は、ステップS211へと進む。
一方、2以上のワークフローエンジン830が存在する場合(ステップS209のYES)、ワークフロー実行部230は、ワークフローエンジン情報テーブル132を参照して、2以上のワークフローエンジン830のうち負荷の一番小さいワークフローエンジン830を選択する(ステップS210)。
ワークフロー実行部230は、次の処理を行うワークフローエンジン830が自身が否かを判断する(ステップS211)。次の処理を行うワークフローエンジン830が自身の場合(ステップS211のYES)、ワークフロー実行部230は、ステップS203へと戻り、上述した同様の処理を行う。
一方、次の処理を行うワークフローエンジン830が他のワークフローエンジン830である場合(ステップS211のNO)、ワークフロー実行部230は、次のワークフローエンジン830に、少なくとも、ワークフロー名と、引継情報と、次に実行する処理部品IDとを指定した実行要求を送信する(ステップS212)。その後、ワークフロー実行部230は、この処理を終了する。
次に、図8及び図9に示すフローチャートによって、本実施例で実現される処理例を説明する。図10は、ワークフロー例を示す図である。図10では、ワークフロー7fの単純な例を示すが、この例に限定されない。
図10において、ワークフロー7fは、処理部品a1による処理を行い(ステップS301)、次に、処理部品b1による処理を行い(ステップS302)、そして、処理部品b2による処理を行う(ステップS303)、ことを示す。
このようなワークフロー7fの一例として、サービスを設定し、ユーザ端末3の位置情報を取得し、ユーザ端末3とデータセンター6とのパスを設定するような一連の処理が考えられる。
図10のワークフロー7f、図6の部品情報テーブル131、及び図7のワークフローエンジン情報テーブル132に基づく、動作例を以下に示す。各ワークフローエンジン830のワークフロー情報テーブル221、部品情報テーブル231、及びワークフローエンジン情報232は、各々、ワークフロー情報テーブル121、図6の部品情報テーブル131、及び図7のワークフローエンジン情報132と同様であるとする。
図11は、本実施例における第一の動作例を示す図である。図11において、ワークフローサーバ810は、管理者端末7から実行要求を受信すると、ワークフロー実行受付部120は、ワークフロー情報テーブル121から、ワークフロー名からワークフロー7fを記述したワークフローデータ7dを取得する。
ワークフロー実行受付部120は、ワークフローデータ7dを解析して、最初の処理部品IDに対応する処理部品名を、部品情報テーブル131から検索することで、ワークフローエンジン名を取得する。図10の例では、最初の処理部品名「a1」であるため、ワークフローエンジン名「WFE−1」と「WFE−2」とが抽出される。
次に、ワークフロー実行受付部120は、ワークフローエンジン情報テーブル132(図7)を参照して、ワークフローエンジン名「WFE−1」と「WFE−2」のうち、最も小さい負荷「10」を示すワークフローエンジン名「WFE−1」と、ワークフローエンジン名「WFE−1」に対応付けられるアクセス用情報「IP1」とを取得する。
ワークフロー実行受付部120は、実行要求を作成し、アクセス用情報「IP1」を宛先として、ワークフローエンジン名「WFE−1」のワークフローエンジン830(以下、ワークフローエンジン「WFE−1」という)に、作成した実行要求を送信する。実行要求には、ワークフロー名、処理部品ID、依頼元等の情報が含まれる。処理部品IDには「a1」が示され、依頼元にはワークフローサーバ810のアドレス等の情報が示される。
複数のワークフローエンジン830のうち、選択されたワークフローエンジン「WFE−1」が、ワークフローサーバ810から実行要求を受信する。
ワークフローエンジン「WFE−1」において、業務管理部220は、ワークフロー情報テーブル221を参照して、ワークフロー名からワークフローデータ7dを取得し、ワークフローデータ7d内の実行要求で指定された処理部品「a1」から、ワークフロー7fを開始する。業務管理部220は、ワークフロー実行部230を起動して、処理部品「a1」を行わせる。
ワークフロー実行部230は、処理部品「a1」での処理を終了すると、ワークフローデータ7d内の次の処理部品IDを取得する。この場合、処理部品「b1」が取得される。そして、ワークフロー実行部230は、部品情報テーブル231(図6)から、取得した処理部品「b1」に対応付けられるワークフローエンジン名「WFE−2」と「WFE−3」とを抽出する。
次に、ワークフロー実行部230は、ワークフローエンジン情報テーブル232(図7)を参照して、ワークフローエンジン名「WFE−2」と「WFE−3」に関して、最も小さい負荷「20」を示すワークフローエンジン名「WFE−2」と、アクセス用情報「IP2」とを取得する。
ワークフロー実行部230は、実行要求を作成し、アクセス用情報「IP2」を宛先として、ワークフローエンジン名「WFE−2」のワークフローエンジン830(以下、ワークフローエンジン「WFE−2」という)に、作成した実行要求を送信する。実行要求には、ワークフロー名、処理部品ID、依頼元等の情報が含まれる。処理部品IDには「b1」が示され、依頼元にはワークフローエンジン「WFE−1」のアドレス等の情報が示される。
複数のワークフローエンジン830のうち、選択されたワークフローエンジン「WFE−2」が、ワークフローエンジン「WFE−1」から実行要求を受信する。
ワークフローエンジン「WFE−2」において、業務管理部220は、ワークフロー情報テーブル221を参照して、ワークフロー名からワークフローデータ7dを取得し、ワークフローデータ7d内の実行要求で指定された処理部品「b1」から、ワークフロー7fを開始する。業務管理部220は、ワークフロー実行部230を起動して、処理部品「b1」を行わせる。
ワークフロー実行部230は、処理部品「b1」での処理を終了すると、ワークフローデータ7d内の次の処理部品IDを取得する。この場合、処理部品「b2」が取得される。そして、ワークフロー実行部230は、部品情報テーブル231(図6)から、取得した処理部品「b2」に対応付けられるワークフローエンジン名「WFE−2」と「WFE−3」とを抽出する。
次に、ワークフロー実行部230は、ワークフローエンジン情報テーブル232(図7)を参照して、ワークフローエンジン名「WFE−2」と「WFE−3」に関して、最も小さい負荷を示すワークフローエンジン名「WFE−2」と、アクセス用情報「IP2」とを取得する。
ワークフロー実行部230は、ワークフローエンジン名「WFE−2」は自装置のワークフローエンジン名と一致するため、継続して、処理部品「b2」の処理を実行する。処理部品「b2」の処理を終了したことにより、図10のワークフロー7fが終了する。
次に、図7に示すワークフローエンジン情報テーブル132において、ワークフローエンジン名「WFE−2」に対応付けられた負荷の値が「40」から「15」に更新された場合の第二の動作例について図12で説明する。
図12は、本実施例における第二の動作例を示す図である。図12において、処理部品名「a1」での処理がワークフローエンジン「WFE−1」で行われ、ワークフロー7fがワークフローエンジン「WFE−2」に引き継がれて、処理部品名「b1」での処理がワークフローエンジン「WFE−2」で行われるまでは、図11の第一の動作例と同様であるため、その説明を省略する。
ワークフローエンジン「WFE−2」において、業務管理部220は、ワークフロー情報テーブル221を参照して、ワークフロー名からワークフローデータ7dを取得し、ワークフローデータ7d内の実行要求で指定された処理部品「a1」から、ワークフロー7fを開始する。業務管理部220は、ワークフロー実行部230を起動して、処理部品「a1」を行わせる。
ワークフロー実行部230は、処理部品「a1」での処理を終了すると、ワークフローデータ7d内の次の処理部品IDを取得する。この場合、処理部品「b1」が取得される。そして、ワークフロー実行部230は、部品情報テーブル231(図6)から、取得した処理部品「b1」に対応付けられるワークフローエンジン名「WFE−2」と「WFE−3」とを抽出する。
次に、ワークフロー実行部230は、ワークフローエンジン情報テーブル232(図7)を参照して、ワークフローエンジン名「WFE−2」と「WFE−3」に関して、最も小さい負荷「15」を示すワークフローエンジン名「WFE−3」と、アクセス用情報「IP3」とを取得する。
ワークフロー実行部230は、実行要求を作成し、アクセス用情報「IP3」を宛先として、ワークフローエンジン名「WFE−3」のワークフローエンジン830(以下、ワークフローエンジン「WFE−3」という)に、作成した実行要求を送信する。実行要求には、ワークフロー名、処理部品ID、依頼元等の情報が含まれる。処理部品IDには「b2」が示され、依頼元にはワークフローエンジン「WFE−2」のアドレス等の情報が示される。
複数のワークフローエンジン830のうち、選択されたワークフローエンジン「WFE−3」が、ワークフローエンジン「WFE−2」から実行要求を受信する。
ワークフローエンジン「WFE−3」において、業務管理部220は、ワークフロー情報テーブル221を参照して、ワークフロー名からワークフローデータ7dを取得し、ワークフローデータ7d内の実行要求で指定された処理部品「b2」から、ワークフロー7fを開始する。業務管理部220は、ワークフロー実行部230を起動して、処理部品「b2」を行わせる。
ワークフロー実行部230は、処理部品「b2」を実行し、処理部品「b2」の処理を終了することで、図10のワークフロー7fが終了する。
次に、管理者端末7は、図6に示す部品情報テーブル131を変更するのみで、特定のワークフローエンジン830間での特定の外部システム850へのアクセス競合を回避できる例について説明する。
図13は、外部システムへのアクセス競合を防止する部品情報テーブルの設定例を示す図である。図13において、処理部品「a1」、「a2」、及び「a3」は、複数の外部システム850のうち外部システムAを利用して処理を行う処理部品であり、処理部品「b1」、「b2」、及び「b3」は、複数の外部システム850のうち外部システムBを利用して処理を行う処理部品である。
図6に示すワークエンジン情報テーブル132では、外部システムAに係る処理部品「a1」、「a2」、及び「a3」が、ワークフローエンジン「WFE−1」と「WFE−3」とで処理可能な設定を示している。この場合、ワークフローエンジン「WFE−1」と「WFE−3」とで外部システムAへのアクセスが競合する場合がある。
本実施例では、管理者端末7から、外部システムAへのアクセスが競合しないように、ワークフローエンジン「WFE−1」でのみ外部システムAに係る処理部品「a1」、「a2」、及び「a3」を対応付けた設定に変更すればよい。
図13に示すようなワークフローエンジン情報テーブル132−2が、ワークフローサーバ810に記憶される。ワークフローエンジン「WFE−1」でのみによって、外部システムAに係る処理部品「a1」、「a2」、及び「a3」での処理が実行される。
また、ワークフローエンジン情報テーブル132−2と同様の設定がなされたワークフロー情報テーブル221が、各ワークフローエンジン830の記憶部840に記憶される。従って、ワークフローエンジン「WFE−1」以外のワークフローエンジン830では、処理部品「a1」、「a2」、及び「a3」での処理を実行する場合には、ワークフロー引継部250によって、ワークフローエンジン「WFE−1」へとワークフロー7fが引き継がれる。
従って、外部システムAに係る処理部品「a1」、「a2」、及び「a3」を実行するための、ワークフローエンジン830間における外部システムAへのアクセス競合を回避できる。
本実施例では、第1に、ワークフローエンジン830毎に処理できる処理部品を割り当てることにより、1つのワークフロー7fをワークフローエンジン830間で分散して処理を行うことができる。
第2に、ワークフローサーバ810のワークフローエンジン負荷監視部130により、ワークフローエンジン情報テーブル132、及び、各ワークフローエンジン830のワークフローエンジン情報テーブル232を周期的に更新する。
第3に、設計者は、ワークフローシステム800における、複数のワークフローエンジン830の構成を意識することなく、ワークフロー7fを設計できる。具体的には、複数のワークフローエンジン830の構成に寄らず、ワークフロー7fを記述したワークフローデータ7dを作成できる。
第4に、各ワークフローエンジン830は自律的に動作できるため、ワークフロー管理部110は、一つの実行要求に対して、少なくとも負荷の少ない、ワークフローエンジン830を1回選択するのみで、1以上のワークフローエンジン830によってワークフロー7fを遂行させることができる。
第5に、運用の中で、管理者は、管理者端末7からワークフローエンジン830に対する処理部品の割り当てを、部品情報テーブル131及び231を変更するのみで容易に調整でき、かつ、ワークフローエンジン830の負荷をチューニングできる。
第6に、同時に、複数の実行要求を受け付けることができない外部システム850が存在する場合、管理者は、単に、部品情報テーブル131及び231を変更するのみの簡単な操作で、ワークフローエンジン830間のアクセスの競合を回避することができる。
近年の、スマートフォン等の携帯端末の増加や、ビデオ、写真、ゲームなど様々なデータを扱うアプリケーションの増加、さらにセンサーやウェアラブル端末等を用いた新しいスタイルのデータ通信の増加により、通信サービスには、様々なデータ通信に対応できる通信品質を確保することが求められている。
キャリア、サービスプロバイダ等は、より少ない投資と運用コストで、すばやく新しいネットワークサービスを提供し、かつネットワーク利用形態の変化に対応して、使いやすいものに素早く変更できる仕組みが望まれている。
このような状況に対して、上述した種々の効果を有する本実施例の適用は、有効であると言える。
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
処理の実行単位である処理部品を複数含む、処理部品の実行手順を示すワークフローの第1の実行要求を受信する受信部と、
前記第1の実行要求で指定される処理部品を実行し、自サーバの負荷状況と次に実行する処理部品を処理可能な他サーバの負荷状況とに基づいて、該次の処理部品を実行するサーバを決定する実行部と、
決定された前記サーバが決定した前記他サーバの場合、前記ワークフローの識別子と、前記次の処理部品までに実施した処理に基づく該ワークフローの引継情報と、該次の処理部品の識別子とを含む第2の実行要求を送信する引継部と
を有する負荷分散処理サーバ。
(付記2)
決定された前記サーバが自サーバの場合、前記実行部は、継続して次の処理部品を実行することを特徴とする付記1記載の負荷分散処理サーバ。
(付記3)
前記受信部は、前記第2の実行要求を受信し、
前記実行部は、前記第2の実行要求で指定される前記次の処理部品を実行することで、前記ワークフローの途中から処理を開始する
ことを特徴とする付記1又は2記載の負荷分散処理サーバ。
(付記4)
自サーバを含む複数のサーバに対して、該サーバ毎に、実行可能な前記処理部品の識別子を対応付けた部品情報テーブルを記憶した記憶部を有し、
前記実行部は、
前記ワークフローに従って前記次の処理部品を特定し、前記部品情報テーブルを参照して、前記複数のサーバの中から、特定した該次の処理部品を処理可能なサーバを特定する
ことを特徴とする付記1乃至3のいずれか一項記載の負荷分散処理サーバ。
(付記5)
前記部品情報テーブルの変更により、前記複数のサーバにおいて、同一の処理部品が処理可能である2以上のサーバによる同一の外部システムへのアクセス競合を回避可能とすることを特徴とする付記4記載の負荷分散処理サーバ。
(付記6)
処理の実行単位である処理部品を複数含む、処理部品の実行手順を示すワークフローの第1の実行要求を受信し、
前記第1の実行要求で指定される処理部品を実行し、自サーバの負荷状況と次に実行する処理部品を処理可能な他サーバの負荷状況とに基づいて、該次の処理部品を実行するサーバを決定し、
決定された前記サーバが決定した前記他サーバの場合、前記ワークフローの識別子と、前記次の処理部品までに実施した処理に基づく該ワークフローの引継情報と、該次の処理部品の識別子とを含む第2の実行要求を送信する
処理をコンピュータが行う負荷分散処理方法。
(付記7)
ワークフローを管理する管理サーバと、
前記ワークフローを遂行する複数の実行サーバとを有し、
前記管理サーバは、
処理の実行単位である処理部品を複数含む、処理部品の実行手順を示すワークフローの第1の実行要求を受け付けて、該ワークフローの最初の処理部品を処理可能な実行サーバに該第1の実行要求を送信する実行受付部を有し、
前記複数の実行サーバの各々は、
前記ワークフローの前記第1の実行要求を受信する受信部と、
前記第1の実行要求で指定される前記最初の処理部品を実行し、自サーバの負荷状況と次に実行する処理部品を処理可能な他サーバの負荷状況とに基づいて、該次の処理部品を実行するサーバを決定する実行部と、
決定された前記サーバが決定した前記他サーバの場合、前記ワークフローの識別子と、前記次の処理部品までに実施した処理に基づく該ワークフローの引継情報と、該次の処理部品の識別子とを含む第2の実行要求を送信する引継部と
を有するシステム。
(付記8)
前記管理サーバは、
前記複数の実行サーバの負荷状況を監視し、各実行サーバの該負荷状況を示す負荷状況テーブルを該前記複数の実行サーバに送信する負荷監視部を有することを特徴とする付記7記載のシステム。
3 ユーザ端末、 3r パスリクエスト
4 ゲートウェイ
5 WAN、 5r 中継装置
6 データセンター
6a LAN、 6c データベースサーバ
7 管理者端末
7d ワークフローデータ、 7f ワークフロー
110 ワークフロー管理部
120 ワークフロー実行受付部
121 ワークフロー情報テーブル
130 ワークフローエンジン負荷監視部
131 部品情報テーブル
132 ワークフローエンジン情報テーブル
220 業務管理部
230 ワークフロー実行部
231 部品情報テーブル
232 ワークフローエンジン情報テーブル
240 連携ライブラリ
250 ワークフロー引継部
810 ワークフローサーバ
830 ワークフローエンジン
850 外部システム
1000 ネットワーク構成

Claims (6)

  1. 処理の実行単位である処理部品を複数含む、処理部品の実行手順を示すワークフローの第1の実行要求を受信する受信部と、
    前記第1の実行要求で指定される処理部品を実行し、自サーバの負荷状況と次に実行する処理部品を処理可能な他サーバの負荷状況とに基づいて、該次の処理部品を実行するサーバを決定する実行部と、
    決定された前記サーバが決定した前記他サーバの場合、前記ワークフローの識別子と、前記次の処理部品までに実施した処理に基づく該ワークフローの引継情報と、該次の処理部品の識別子とを含む第2の実行要求を送信する引継部と
    を有する負荷分散処理サーバ。
  2. 決定された前記サーバが自サーバの場合、前記実行部は、継続して次の処理部品を実行することを特徴とする請求項1記載の負荷分散処理サーバ。
  3. 前記受信部は、前記第2の実行要求を受信し、
    前記実行部は、前記第2の実行要求で指定される前記次の処理部品を実行することで、前記ワークフローの途中から処理を開始する
    ことを特徴とする請求項1又は2記載の負荷分散処理サーバ。
  4. 自サーバを含む複数のサーバに対して、該サーバ毎に、実行可能な前記処理部品の識別子を対応付けた部品情報テーブルを記憶した記憶部を有し、
    前記実行部は、
    前記ワークフローに従って前記次の処理部品を特定し、前記部品情報テーブルを参照して、前記複数のサーバの中から、特定した該次の処理部品を処理可能なサーバを特定する
    ことを特徴とする請求項1乃至3のいずれか一項記載の負荷分散処理サーバ。
  5. 処理の実行単位である処理部品を複数含む、処理部品の実行手順を示すワークフローの第1の実行要求を受信し、
    前記第1の実行要求で指定される処理部品を実行し、自サーバの負荷状況と次に実行する処理部品を処理可能な他サーバの負荷状況とに基づいて、該次の処理部品を実行するサーバを決定し、
    決定された前記サーバが決定した前記他サーバの場合、前記ワークフローの識別子と、前記次の処理部品までに実施した処理に基づく該ワークフローの引継情報と、該次の処理部品の識別子とを含む第2の実行要求を送信する
    処理をコンピュータが行う負荷分散処理方法。
  6. ワークフローを管理する管理サーバと、
    前記ワークフローを遂行する複数の実行サーバとを有し、
    前記管理サーバは、
    処理の実行単位である処理部品を複数含む、処理部品の実行手順を示すワークフローの第1の実行要求を受け付けて、該ワークフローの最初の処理部品を処理可能な実行サーバに該第1の実行要求を送信する実行受付部を有し、
    前記複数の実行サーバの各々は、
    前記ワークフローの前記第1の実行要求を受信する受信部と、
    前記第1の実行要求で指定される前記最初の処理部品を実行し、自サーバの負荷状況と次に実行する処理部品を処理可能な他サーバの負荷状況とに基づいて、該次の処理部品を実行するサーバを決定する実行部と、
    決定された前記サーバが決定した前記他サーバの場合、前記ワークフローの識別子と、前記次の処理部品までに実施した処理に基づく該ワークフローの引継情報と、該次の処理部品の識別子とを含む第2の実行要求を送信する引継部と
    を有するシステム。
JP2015236562A 2015-12-03 2015-12-03 負荷分散処理サーバ、負荷分散処理方法、及び、システム Pending JP2017102777A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015236562A JP2017102777A (ja) 2015-12-03 2015-12-03 負荷分散処理サーバ、負荷分散処理方法、及び、システム
US15/354,505 US10353741B2 (en) 2015-12-03 2016-11-17 Load distribution of workflow execution request among distributed servers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015236562A JP2017102777A (ja) 2015-12-03 2015-12-03 負荷分散処理サーバ、負荷分散処理方法、及び、システム

Publications (1)

Publication Number Publication Date
JP2017102777A true JP2017102777A (ja) 2017-06-08

Family

ID=58799034

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015236562A Pending JP2017102777A (ja) 2015-12-03 2015-12-03 負荷分散処理サーバ、負荷分散処理方法、及び、システム

Country Status (2)

Country Link
US (1) US10353741B2 (ja)
JP (1) JP2017102777A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021026577A (ja) * 2019-08-07 2021-02-22 三菱電機株式会社 制御装置、演算装置、制御方法、及び制御プログラム
JP6861895B1 (ja) * 2019-05-17 2021-04-21 三菱電機株式会社 データ処理装置、データ処理システム、データ処理方法およびプログラム
JP2022100620A (ja) * 2020-12-24 2022-07-06 株式会社日立製作所 情報処理システム及び情報処理システムにおけるデータ配置方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025203061A1 (en) * 2024-03-23 2025-10-02 Jio Platforms Limited System for assigning workflow approval paths in a network and a method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212911A (ja) * 1998-01-28 1999-08-06 Mitsubishi Electric Corp 分散サービス連携装置
JP2005228252A (ja) * 2004-02-16 2005-08-25 Fuji Xerox Co Ltd サービス処理装置及び連携処理システム
JP2008310687A (ja) * 2007-06-15 2008-12-25 Hitachi Ltd 情報処理システム、情報処理方法、およびプログラム

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503499A (en) * 1982-09-14 1985-03-05 Eaton Corporation Controlled work flow system
JPH08123744A (ja) 1994-10-26 1996-05-17 Hitachi Ltd ワークフローシステム
JPH1196011A (ja) 1997-09-19 1999-04-09 Mitsubishi Electric Corp 自律分散システムにおける自律協調制御装置
JP2003528358A (ja) 1998-08-24 2003-09-24 富士通株式会社 ワークフローシステムおよび方法
US6434637B1 (en) * 1998-12-31 2002-08-13 Emc Corporation Method and apparatus for balancing workloads among paths in a multi-path computer system based on the state of previous I/O operations
EP1120712A4 (en) * 1999-06-30 2006-04-05 Suntory Ltd WEB APPLICATION SYSTEM WITH MEETING MANAGEMENT / DISTRIBUTED MANAGEMENT AND MECHANISM AT ITS OPERATION
US6757577B1 (en) * 2000-08-08 2004-06-29 Taiwan Semiconductor Manufacturing Co., Ltd. System and method for managing work-in-process (WIP) workload within a fabrication facility
US7500243B2 (en) * 2000-08-17 2009-03-03 Sun Microsystems, Inc. Load balancing method and system using multiple load balancing servers
US7127716B2 (en) * 2002-02-13 2006-10-24 Hewlett-Packard Development Company, L.P. Method of load balancing a distributed workflow management system
WO2005062176A1 (ja) * 2003-12-18 2005-07-07 Club It Corporation サーバ・クライアント・システム、負荷分散装置、負荷分散方法および負荷分散プログラム
US8930536B2 (en) * 2005-03-16 2015-01-06 Adaptive Computing Enterprises, Inc. Virtual private cluster
JP4161998B2 (ja) * 2005-03-28 2008-10-08 日本電気株式会社 負荷分散振り分けシステム、イベント処理分散制御装置並びにイベント処理分散制御プログラム
US8136114B1 (en) * 2006-04-21 2012-03-13 Sprint Communications Company L.P. Business process management system having dynamic task assignment
US7996250B2 (en) * 2006-10-30 2011-08-09 Hewlett-Packard Development Company, L.P. Workflow control using an aggregate utility function
US8059292B2 (en) * 2007-05-18 2011-11-15 Xerox Corporation System and method for assigning print jobs to autonomous cells in a transaction printing environment
US9953282B2 (en) * 2007-09-04 2018-04-24 International Business Machines Corporation System and method for providing automatic task assignment and notification
US9020829B2 (en) * 2008-05-07 2015-04-28 International Business Machines Corporation Quality of service aware scheduling for composite web service workflows
US8675507B2 (en) * 2009-01-28 2014-03-18 Headwater Partners I Llc Service profile management with user preference, adaptive policy, network neutrality and user privacy for intermediate networking devices
JP5245852B2 (ja) * 2009-01-17 2013-07-24 日本電気株式会社 サーバ処理分散装置、サーバ処理分散方法及びサーバ処理分散プログラム
JP5609868B2 (ja) * 2009-05-15 2014-10-22 日本電気株式会社 ワークフロー監視制御システム、監視制御方法および監視制御プログラム
US9727829B2 (en) * 2009-11-25 2017-08-08 General Electric Company Systems and methods for multi-resource scheduling
US8417805B2 (en) * 2010-01-26 2013-04-09 Microsoft Corporation Controlling execution of services across servers
US8504400B2 (en) * 2010-03-24 2013-08-06 International Business Machines Corporation Dynamically optimized distributed cloud computing-based business process management (BPM) system
US20130085799A1 (en) * 2010-04-08 2013-04-04 Agilepoint, Inc. Method and apparatus for improving business process management systems
US9589240B2 (en) * 2010-05-14 2017-03-07 Oracle International Corporation System and method for flexible chaining of distinct workflow task instances in a business process execution language workflow
US8856800B2 (en) * 2010-05-21 2014-10-07 Red Hat, Inc. Service-level enterprise service bus load balancing
US10560541B2 (en) * 2010-05-26 2020-02-11 Sap Se Service delivery management for brokered service delivery
US20110320240A1 (en) * 2010-06-28 2011-12-29 International Business Machines Corporation Video-based analysis workflow proposal tool
JP5556498B2 (ja) * 2010-08-17 2014-07-23 富士通株式会社 管理装置,ファイルサーバシステム,処理方法及び管理プログラム
US9065831B2 (en) * 2011-03-01 2015-06-23 Cisco Technology, Inc. Active load distribution for control plane traffic using a messaging and presence protocol
WO2012150943A1 (en) * 2011-05-05 2012-11-08 Hewlett-Packard Development Company L.P. Method and system for online planning of a workflow of processing an article in a plant
US8909785B2 (en) * 2011-08-08 2014-12-09 International Business Machines Corporation Smart cloud workload balancer
US8976647B2 (en) * 2011-11-08 2015-03-10 Futurewei Technologies, Inc. Hardware-based dynamic load balancing that avoids flow packet reordering statistically
US20140089034A1 (en) * 2011-12-28 2014-03-27 Ips Co., Ltd. Portable terminal management server and portable terminal management program
JP6019818B2 (ja) * 2012-06-29 2016-11-02 富士通株式会社 管理装置,管理プログラム,管理方法
US9602423B2 (en) * 2013-06-28 2017-03-21 Pepperdata, Inc. Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system
US9773218B2 (en) * 2013-07-30 2017-09-26 Red Hat, Inc. Segmented business process engine
US20150046212A1 (en) * 2013-08-09 2015-02-12 Xerox Corporation Monitoring of business processes and services using concept probes and business process probes
JP6264800B2 (ja) * 2013-09-17 2018-01-24 株式会社リコー 情報処理システム、情報処理装置、プログラムおよび情報処理方法
JP6303505B2 (ja) * 2014-01-07 2018-04-04 株式会社リコー 情報処理システム、情報処理方法、機器、及びプログラム
US9525727B2 (en) * 2014-06-10 2016-12-20 Alcatel Lucent Efficient and scalable pull-based load distribution
JP6056811B2 (ja) * 2014-07-14 2017-01-11 コニカミノルタ株式会社 ワークフローシステム、ワークフロー実行装置、ワークフロー実行方法およびワークフロー実行プログラム
JP2016178570A (ja) * 2015-03-20 2016-10-06 株式会社リコー ワークフロー実行処理装置、ワークフロー実行システム、ワークフロー実行システムの制御方法、及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11212911A (ja) * 1998-01-28 1999-08-06 Mitsubishi Electric Corp 分散サービス連携装置
JP2005228252A (ja) * 2004-02-16 2005-08-25 Fuji Xerox Co Ltd サービス処理装置及び連携処理システム
JP2008310687A (ja) * 2007-06-15 2008-12-25 Hitachi Ltd 情報処理システム、情報処理方法、およびプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6861895B1 (ja) * 2019-05-17 2021-04-21 三菱電機株式会社 データ処理装置、データ処理システム、データ処理方法およびプログラム
US11474876B2 (en) 2019-05-17 2022-10-18 Mitsubishi Electric Corporation Data processing device including a data collector to collect data and output information relating to a result of execution of a data processing flow, data processing system, data processing method, and program
JP2021026577A (ja) * 2019-08-07 2021-02-22 三菱電機株式会社 制御装置、演算装置、制御方法、及び制御プログラム
JP2022100620A (ja) * 2020-12-24 2022-07-06 株式会社日立製作所 情報処理システム及び情報処理システムにおけるデータ配置方法
JP7247161B2 (ja) 2020-12-24 2023-03-28 株式会社日立製作所 情報処理システム及び情報処理システムにおけるデータ配置方法

Also Published As

Publication number Publication date
US20170161108A1 (en) 2017-06-08
US10353741B2 (en) 2019-07-16

Similar Documents

Publication Publication Date Title
JP5817348B2 (ja) ファイル同期方法、ファイル同期サーバ装置及びファイル同期プログラム
CN108616424B (zh) 一种资源调度方法、计算机设备和系统
CN111258726B (zh) 任务调度方法和装置
JP2013174945A (ja) シンクライアントシステム、接続管理サーバ、接続管理方法、及び接続管理プログラム
JP6364160B2 (ja) メニュー制御方法、メニュー制御装置およびメニュー制御プログラム
JP2017102777A (ja) 負荷分散処理サーバ、負荷分散処理方法、及び、システム
JP2018147301A (ja) 計算機システム及び処理の割当方法
CN110650209B (zh) 实现负载均衡的方法和装置
US9401953B2 (en) Intelligent high-volume cloud application programming interface request caching
JP2018055479A (ja) サービス条件処理プログラム、装置、及び方法
US7885995B2 (en) Processing service requests in a distributed environment
JP2015103862A (ja) 通信端末、通信方法及びプログラム
US9860313B2 (en) Maintaining state synchronization of an application between computing devices as well as maintaining state synchronization of common information between different applications without requiring perioidic synchronization
JP2018513460A (ja) 制限されたサービスインスタンスへのアクセスを要求する方法およびシステム
US11606399B2 (en) System and method for meeting preparation and user content management using heterogeneous cloud service providers
CN112804279B (zh) 一种请求处理方法和装置
US20210256600A1 (en) Connector leasing for long-running software operations
US9497194B2 (en) Protection of resources downloaded to portable devices from enterprise systems
JP5852922B2 (ja) マシン管理支援装置、マシン管理支援方法、マシン管理支援プログラム
JP6511006B2 (ja) リソース割当管理装置および割当て先サーバ決定方法
JP6563807B2 (ja) 情報処理システム、情報処理装置、処理制御方法、及び処理制御プログラム
JP2019096244A (ja) 情報処理システムおよび情報処理方法
JP2017058734A (ja) 仮想マシン管理方法、仮想マシン管理装置及び仮想マシン管理プログラム
JP6252016B2 (ja) セッション管理プログラム、セッション管理方法およびセッション管理装置
JP2013168044A (ja) SaaS管理システム、SaaS管理方法およびSaaS管理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180810

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190716

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200107