JPWO2013186851A1 - 情報処理システム - Google Patents

情報処理システム Download PDF

Info

Publication number
JPWO2013186851A1
JPWO2013186851A1 JP2014520837A JP2014520837A JPWO2013186851A1 JP WO2013186851 A1 JPWO2013186851 A1 JP WO2013186851A1 JP 2014520837 A JP2014520837 A JP 2014520837A JP 2014520837 A JP2014520837 A JP 2014520837A JP WO2013186851 A1 JPWO2013186851 A1 JP WO2013186851A1
Authority
JP
Japan
Prior art keywords
service
token
execution
unit
priority
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014520837A
Other languages
English (en)
Other versions
JP5955385B2 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2013186851A1 publication Critical patent/JPWO2013186851A1/ja
Application granted granted Critical
Publication of JP5955385B2 publication Critical patent/JP5955385B2/ja
Expired - Fee Related 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

トークンキュー管理部503は、複数のトークンキューを有する。トークンキューは、それぞれが異なるサービスに対応し、それぞれが、対応するサービスについて、サービスのインスタンスの情報であるトークンを格納する。ルール記憶部504は、サービスの実行順序を調整するための実行順序調整ルールが定義されている実行順序調整ルール情報5041を記憶している。サービス実行待機評価部5011は、トークンキューごとにトークンが格納されているか否かを判断し、対応するトークンキューにトークンが格納されているサービスを実行候補サービスとして抽出し、実行候補サービスごとに、実行順序調整ルール情報5041に定義されている実行順序調整ルールを用いて、サービスの実行及びサービスの実行の保留のいずれかを決定する。

Description

本発明は、複数のサービスを連携するサービス連携技術に関する。
本発明は、例えば、スマートメータシステムに用いられる複数のサービスを連携するサービス連携技術に関する。
スマートメータシステムとは、各家庭に配置された通信機能の付いたスマートメータを電力会社のセンターシステムから制御して、電力量検針値の定期的な収集や、電力供給(ブレーカー開閉)の制御を行うステムである。
スマートメータシステムは、収集したデータの各家庭への公開や、電力使用状況のきめ細かい分析などを可能にする、エネルギーを最適化するための技術として注目されている。
スマートメータシステムは、各家庭のスマートメータ(以下、単に「メータ」ともいう)、電信柱などに配置され近いエリアの複数のスマートメータを取りまとめるコンセントレータ(Data Concentrator Unit)(以下、コンセントレータを「DCU」という)、センターシステム(以下、単に「センター」ともいう)からなる。
スマートメータとDCUは無人で運用される。
また、スマートメータとDCUは、携帯電話通信網やPLC(Power Line Communications)通信網など、あまり安定しない通信網を用いて通信を行う。
運用管理者はセンターのみに存在するため、すべての監視や運用はセンターシステムで行える必要がある。
スマートメータシステムでは、複数のアプリケーションを1つのセンターシステムで処理する必要がある。
センターシステムで処理するアプリケーションには、例えば、定期収集業務、メータ監視制御アプリケーション、イベント検知アプリケーションなどがある。
定期収集業務は、メータが示す電力量および異常フラグをセンターシステムが定期的に収集するためのアプリケーションである。
メータ監視制御アプリケーションは、センターシステムからメータに対して指示を出すためのアプリケーションである。
イベント検知アプリケーションは、メータで検知した停電・復電(停電の後に電力供給が再開されること)などを検知するためのアプリケーションである。
センターシステムの負荷バランスは、需要の変化、停電、地域災害、個々の家庭の電源に関する故障、メンテナンスなどシーンにより動的に変化する。
このため、センターシステムでの負荷バランスの調整は、業務の優先度、メータの配置されるエリア、メータが異常を検知したか否かなど、業務とシステム構成を考慮して行う必要がある。
例えば、定期収集業務中に、あるメータが停電などの異常を検知した場合、メータからDCUを通して停電メッセージが送られてイベント検知アプリケーションが動作する。
そして、センターにいる運用管理者に停電メッセージが伝えられ、運用管理者はメータ監視制御アプリケーションを動作させて、メータからのログ取得と障害を解決するための対応を行う。
この時、定期収集業務に優先して、イベント検知アプリケーションやメータ監視制御アプリケーションの実行を行う必要があり、定期収集業務がDCUやメータとの通信帯域、DCUやメータの処理リソースを占有するような場合には定期収集業務を一時停止させるなどの制御が必要である。
スマートメータシステムの各家庭への展開は10年など長期にわたり、エリア(DCUのエリア)ごとに段階的な増強が行われる。
エリアによっては、地域の通信事情などにより通信網などが増強されない場合もある。
このため、センターから、新旧の構成が混ざった状態でメータを制御する必要があり、エリアごとに異なった性能・優先制御が必要である。
従って、優先制御を考慮して、スマートメータシステム上の計算機や構成要素の機器のワークロードバランスのしくみを設けることが必要である。
そして、ワークロードバランスのしくみは、エリアごとの段階的な増強に合わせて拡張・変更できる必要がある。
特許文献1では、アプリケーション内のフローに含まれる各サービスについて、サービスレジストリにより、サービスが実行されるサーバとサービスごとの優先度の情報を設定する。
また、特許文献1では、マッチング制御部がアダプタを通してサービスを実行する計算機を制御することにより、優先度を考慮したサービスの負荷分散を行うことができる。
特開2008−186105号公報
特許文献1では、優先制御の対象はセンター内の計算機群のみであり、センター内の計算機群のCPU(Central Processing Unit)負荷容量に応じてサービスを実行する計算機間の負荷バランスを調整するだけである。
スマートメータシステムでは、サービス(アプリケーション)の優先度と進捗に応じた調整や、メータ、DCU、通信機器など、スマートメータシステムに含まれる構成要素に対する優先制御が必要である。
たとえば、特定のメータに対して優先度の低いサービス(アプリケーション)の処理と優先度の高いサービス(アプリケーション)の処理が重なった場合は、優先度の低いサービス(アプリケーション)の処理の中断させることが必要だが、特許文献1の技術ではこのような制御を行うことができない。
スマートメータシステムでは、構成要素の状況、他のサービスの優先度、他のサービスの進捗状況などを元に、次に行うべきサービスを判断する柔軟な制御が必要となる。
本発明は、これらに鑑みたものであり、構成要素の状況、他のサービスの優先度、他のサービスの進捗状況などに基づき、サービスの実行、サービスの実行の保留を柔軟に決定できるようにすることを主な目的とする。
本発明に係る情報処理システムは、
複数のサービスの実行を管理する情報処理システムであって、
それぞれが異なるサービスに対応し、それぞれが、対応するサービスについて、サービスのインスタンスの情報であるトークンを格納する、複数のトークン格納部と、
サービスの実行順序を調整するための実行順序調整ルールが定義されている実行順序調整ルール情報を記憶する実行順序調整ルール情報記憶部と、
トークン格納部ごとにトークンが格納されているか否かを判断し、対応するトークン格納部にトークンが格納されているサービスを実行候補サービスとして抽出し、実行候補サービスごとに、前記実行順序調整ルール情報に定義されている実行順序調整ルールを用いて、サービスの実行及びサービスの実行の保留のいずれかを決定するサービス実行判定部とを有することを特徴とする。
本発明では、実行順序調整ルールが定義されている実行順序調整ルール情報を用いて、サービスの実行及びサービスの実行の保留のいずれかを決定する。
このため、構成要素の状況、他のサービスの優先度、他のサービスの進捗状況などを反映させた実行順序調整ルールを用いることで、構成要素の状況、他のサービスの進捗状況などに基づき、サービスの実行、サービスの実行の保留を柔軟に決定することができる。
実施の形態1に係るスマートメータシステムの構成例を示す図。 実施の形態1に係るESBの構成例を示す図。 実施の形態1に係るルーティングファイルの例を示す図。 実施の形態1に係るトークンキューの例を示す図。 実施の形態1に係る実行順序調整ルールの例を示す図。 実施の形態1に係る移動ルールの例を示す図。 実施の形態1に係るルール適用対応表の例を示す図。 実施の形態1に係る負荷調整ルールの例を示す図。 実施の形態1に係る計算機間の関係を説明する図。 実施の形態1に係るセンターシステムにおける動作例を示すフローチャート図。 実施の形態1に係るセンターシステムにおける動作例を示すフローチャート図。 実施の形態1に係るセンターシステムにおける動作例を示すフローチャート図。 実施の形態2に係るスマートメータシステムの構成例を示す図。 実施の形態2に係るフロー・ルール置換部と調整ルールとルーティングファイルとの関係を説明する図。 実施の形態2に係る構成・業務パラメータ対応表の例を示す図。 実施の形態2に係る構成選択ルールの例を示す図。 実施の形態2に係る構成選択ルールの例を示す図。 実施の形態3に係る計算機の構成例を示す図。 実施の形態3に係るルーティングファイルの例を示す図。 実施の形態1〜3に係る計算機のハードウェア構成例を示す図。
実施の形態1.
上述したように、特許文献1の技術では、メータ、DCU、通信機器といった構成要素の状況、他のサービスの優先度、他のサービスの進捗状況などを元に、次に行うべきサービスを柔軟に決定することができないという課題(「課題1」という)がある。
また、特許文献1の技術では、優先パラメータとサービスと計算機は固定される。
スマートメータシステムは、長期間(例えば10年間)をかけてエリア(DCUのエリア)ごとに段階的に拡張される。
このため、新しい機器が設置されているエリアと、古い機器が設置されているエリアが混在する状態になる。
新しいエリアの機器と古いエリアの機器では、通信網の容量、DCUの受け入れ可能なコネクション数、メータの機能などが異なり、優先制御に対する制約条件が異なる。
例えば、初期の構成では、1つのDCUエリアのメータの台数は100万台までであり、また、DCUは、低スペックであり、各通信で1スレッドしか許容されない。
また、各メータはAMR(Automated Meter Reading)方式であり、自発通信は行われない。
初期の構成では、通信網が貧弱(例えば、メータとDCUの間の通信網は192KBps、DCUとセンターシステムの間の通信網も192KBps)であり、通信網を有効利用するための優先制御が必要である。
一方、後期の構成では、1つのDCUエリアのメータの台数は1000万台超も可能であり、また、DCUは、高スペックであり、各通信で10スレッドが許容される。
また、各メータはAMI(Advanced Metering Infrastructure)方式であり、HEMS(Home Energy Management System)に対応している。
後期の構成では、通信網は充実(例えば、メータとDCUの間の通信網は192KBps、DCUとセンターシステムの間の通信網は100MBps)しているものの、HEMSが導入されているため、通信量が初期の構成に比べて一桁多く、センター側の資源を多く利用する必要がある。
このように、エリアや使用機器により、優先制御とワークロードバランスの方法を変更できる必要があるが、特許文献1の技術では、センター上の計算機と優先パラメータとサービスとが固定されており、優先制御とワークロードバランスの方法を変更することができないという課題(「課題2」という)がある。
本実施の形態では、センターシステム上に配置する、サービス、サービスフローを実行するメッセージ連携ミドルウェア(ESB:Enterprise Service Bus)に対して、業務アプリケーションのフローの他に、アプリケーションの負荷調整を行うための調整ルールを設定する。
この調整ルールは、アーキテクチャ開発者が、構成要素やサービスフローを意識して設定する。
そして、調整ルールには、柔軟な優先制御を可能にするルールが定義される。
また、調整ルールに、スマートメータの段階的な拡張によって生じるDCUエリアごとの制御を定義することで、DCUエリアごとの制御をアプリケーションから切り離すことができ、アプリケーションの開発を効率化することができる。
本実施の形態では、センターシステム上に配置されるセンター計算機で業務アプリケーションを実行するためのシステム連携基盤を、SOA(Service Oriented Architecture)を実現するためのメッセージ連携ミドルウェア(ESB)として実現している。
SOAとは、複数のサービスを組み合わせてシステムを構築する設計手法である。
サービスとは、意味のある単位の機能を持つ一まとまりのソフトウェアの集合であって、外部から標準化された手順によって呼び出すことができるものである。
意味のあるとは、業務上、あるいは人間にとって何らかの意味があることを指す。
なお、複数のサービスを組み合わせて構成された一連の処理をプロセス又はサービスフローと呼ぶ場合がある。
SOAに基づくシステム構築では、ESBを用いることが一般的である。
ESBとは、外部システムとサービスとの間の連携や、サービス間の連携を図るミドルウェアである。
ESBでは、メッセージルータ(メッセージバス)を提供し、このメッセージルータを通じて、外部システムとサービスとの間や、サービス間でメッセージの交換を行い、外部システムとサービスとの間の連携や、サービス間の連携を図る。
図1は、本実施の形態に係るスマートメータシステムの構成例を示す。
情報処理システムの例に相当するセンターシステム1000は、計算機1(100)、計算機2(200)及び計算機3(300)から構成される。
センターシステム1000の計算機1(100)及び計算機2(200)は、多段構成のネットワーク401、402、403を介して複数のDCU404と接続される。
DCU404には、複数のメータ405、406が接続されている。
なお、計算機1(100)はC1とも表記し、計算機2(200)はC2とも表記する。
また、計算機1(100)及び計算機2(200)は、サーバともいう。
図1では、3台のセンター計算機によりセンターシステム1000が構成される例を示しているが、センターシステム1000の計算機の台数は任意である。
センターシステム1000において、計算機1(100)及び計算機2(200)は、各種サービス(定期収集業務、イベント検知アプリケーション、メータ監視制御アプリケーション等)を実行する。
計算機3(300)は、計算機1(100)及び計算機2(200)のワークロードバランスの調整のための動作を行う。
計算機1(100)及び計算機2(200)は、同じ機能ブロック構成を有する。
また、計算機1(100)、計算機2(200)及び計算機3(300)は、それぞれESB(ESB106、ESB206、ESB305)を含み、ESBのメッセージルータによって連携されている。
そして、ESBのメッセージルータを通して計算機間で互いに他の計算機上のサービスを呼び出すことができる。
メッセージルータで連携された計算機では、後述するルーティングファイルを共有している。
ルーティングファイルには、サービスの流れを示すサービスフロー(以下、「サービスフロー」を単に「フロー」ともいう)が記述されている。
計算機1(100)及び計算機2(200)の構成を説明する。
計算機1(100)と計算機2(200)は同じ構成を有するので、以下では、計算機1(100)の構成のみを説明する。
通信部101は、ネットワーク401等を介してDCU404と通信を行う。
また、通信部101は、計算機2(200)及び計算機3(300)と通信を行う。
入出力部102は、運用管理者(ユーザ)からの指示を入力し、また、運用管理者(ユーザ)に処理の実行結果等を出力する。
サービス実行部103は、サービスアプリケーションコード(サービスを実現するためのアプリケーションプログラムのコード)を実行する。
サービスアプリケーションコードは記憶部104に記憶されている。
性能統計更新部105は、計算機1(100)のトークンキュー内のトークンの集計を行い、統計情報として、計算機3(300)に送信する。
トークンキュー及びトークンについては、後述する。
また、ESB106の詳細も図2を参照して後述する。
計算機3(300)において、通信部301は、計算機1(100)及び計算機2(200)と通信を行う。
入出力部302は、運用管理者(ユーザ)からの指示を入力し、また、運用管理者(ユーザ)に処理の実行結果等を出力する。
負荷調整指示情報生成部303は、性能統計更新部105から統計情報を取得し、サービス実行部103が既に受け入れているトークン数を集計し、サービス実行部103が更に受け入れ可能なトークン数を算出し、算出したトークン数を通知する情報を負荷調整指示情報として計算機1(100)に出力する。
同様に、負荷調整指示情報生成部303は、性能統計更新部205から統計情報を取得し、サービス実行部203が既に受け入れているトークン数を集計し、サービス実行部203が更に受け入れ可能なトークン数を算出し、算出したトークン数を通知する情報を負荷調整指示情報として計算機2(200)に出力する。
なお、負荷調整指示情報生成部303は、トークン数算出部の例に相当する。
また、計算機間統計共有部304は、負荷調整ルール情報3041を保持する。
負荷調整ルール情報3041には、図8に例示する負荷調整ルールが定義されている。
負荷調整ルールは、計算機1(100)及び計算機2(200)の間で負荷を調整するための意思決定を行うためのルールである。
図8において、「シーン」とは、運用管理者が設定するシステム状態であり、スマートメータシステムでは通常時、停電時などがある。
シーンに応じて、各計算機の負荷を調整するために、負荷調整ルール情報3041では、計算機ごとにトークンの受入可能数と各優先度のトークンの比率を指定する。
図8では、例えば「シーン:通常時」の「計算機:C1」では、トークンの受入可能数は、トークンの受け入れの上限数である100から既に受け入れているトークンの数である実行トークン総数を引いた値であることが示されている。
また、同様に、「シーン:通常時」の「計算機:C1」では、受入可能数のうちの80%が高優先度のトークンであり、10%が中優先度のトークンであり、更に10%が低優先度のトークンであることが示されている。
負荷調整指示情報生成部303は、負荷調整ルール情報3041で定義された負荷調整ルールに基づき、サービス実行部103及びサービス実行部203が受入可能なトークン数を優先度別に算出する。
次に、図2を参照して、計算機1(100)のESB106及び計算機2(200)のESB206の詳細を説明する。
なお、ESB106とESB206は同じ構成を有するので、以下では、ESB106の構成のみを説明する。
ESB106は、サービス制御部501、ルーティングファイル記憶部502、トークンキュー管理部503、ルール記憶部504、メッセージルータ505、ESB間インタフェース506を有する。
なお、ESB305は、図2と同じ構成をとる必要はなく、少なくともメッセージルータ505及びESB間インタフェース506を有していればよい。
サービス制御部501は、サービスの実行順序の調整、ワークロードバランスの調整を行う。
サービス制御部501は、サービス実行待機評価部5011、他サーバ移動部5012、受信部5013及び送信部5014を含む。
サービス制御部501の構成要素の詳細は、後述する。
ルーティングファイル記憶部502は、ルーティングファイルを記憶している。
図2の例では、ルーティングファイル記憶部502は、P1(5021)、P2(5022)、通信サービス(5023)の3つのルーティングファイルを記憶している。
各ルーティングファイルは、例えば、図3に示す内容をもつ。
図3に示すように、P1(5021)は、定期収集業務のフローが示されるルーティングファイルである。
ルーティングファイルのフローでは、複数のサービスが、サービスの実行順序とともに定義されている。
P1(5021)のルーティングファイルにおいて、a1〜a5の各々がサービスに該当する。
また、「a2:通信1」サービスの詳細は、通信サービス(5023)の「通信1:DCU定期通信」に定義されている。
同様に、「a3:通信2」サービスの詳細は、通信サービス(5023)の「通信2:メータ通信」に定義されている。
P2(5022)は、メータ監視制御アプリケーションのルーティングファイルである。
P2(5022)のルーティングファイルにおいても、b1〜b3の各々がサービスに該当する。
P1(5021)及びP2(5022)において、各サービスの近傍に記述されている「L」、「M」及び「H」は優先度を示している。
つまり、「L」は低優先度、「M」は中優先度、「H」は高優先度を意味する。
なお、サービスの優先度は、サービスフローごとに一様ではない。
図2の例では、サービス:a1〜a3は、P1(5021)のフローでは、「M」(中優先度)となっているが、例えば、図2に図示していない「P3」という別のフローでは、サービス:a1〜a3は「L」(低優先度)又は「H」(高優先度)であってもよい。
トークンキュー管理部503には、複数のトークンキューが設けられている。
トークンキューは、それぞれ、異なるサービスに対応する両端キューである。
図2に示すように、トークンキュー5031は、サービスa1に対応し、サービスa1のトークンを格納する。
同様に、トークンキュー5032は、サービスa2に対応し、サービスa2のトークンを格納する。
各トークンキューは、トークン格納部の例に相当する。
また、トークンとは、サービスのアプリケーションの実行情報を保持実行するオブジェクトであり、サービスのインスタンスの情報である。
サービスの実行はトークンごとに行われる。
また、トークンには、サービスの優先度が設定されている。
トークンキューは、図4に示すように、優先度別にトークンの格納領域が区分されている。
図4は、サービスa2のトークンキュー5032を例示しているが、トークンキュー5032は高優先度、中優先度、低優先度に区分されている。
優先度別の格納領域を、優先度キューともいう。
そして、図4において符号600の円がトークンを表している。
前述したように、サービスの優先度はフローごとに一様ではないため、あるフローではサービスa2の優先度が「中」であり、他のフローでは「低」であるということが生じる。
ルール記憶部504は、複数のルール情報を記憶する。
具体的には、ルール記憶部504は、実行順序調整ルール情報5041、移動ルール情報5042及びルール適用対応表5043を記憶する。
なお、実行順序調整ルール情報5041、移動ルール情報5042及びルール適用対応表5043に記述されているルールを、まとめて調整ルールともいう。
実行順序調整ルール情報5041には、サービスの実行順序を調整するための実行順序調整ルールが1つ以上定義されている。
移動ルール情報5042には、トークンを計算機間で移動させるか否かの判定のための移動ルールが1つ以上定義されている。
ルール適用対応表5043は、実行順序調整ルール及び移動ルールを、ルーティングファイルに記述したどのフローのどのサービスに適用するかが定義されている。
実行順序調整ルール情報5041には、例えば、図5に示す実行順序調整ルールが定義されている。
実行順序調整ルール情報5041では、条件判断文(if文)を評価してTRUEの結果が得られた場合に実行する内容とFALSEの結果が得られた場合に実行する内容とが、スクリプト言語により記述されている。
実行順序調整ルール情報5041には、条件判断式(if文)を評価した結果に実行する内容として、例えば、wait()、stop()、receive()を記述することができる。
wait()は、トークンキューから取り出したトークンを同じトークンキューに戻させる命令である。
stop()は、トークンキューから取り出したトークンを同じトークンキューに戻すとともに、そのトークンキューからの取り出しを停止させる命令である。
receive()は、トークンキューから取り出したトークンを受信部5103に送らせる命令である。
receive()によって、受信部5103に送られたトークンは、受信部5013によってサービス実行部103に送られ、サービス実行部103がトークンに基づき、該当するサービスのサービスアプリケーションコードを実行する。
wait()及びstop()は、トークンキューから取り出したトークンのサービスの実行を保留する命令であり、receive()は、トークンキューから取り出したトークンのサービスの実行を開始させる命令である。
図5の実行順序調整ルールでは、優先して実行される優先サービスが定義され、優先サービスのトークンキューにトークンが格納されていない場合に、優先サービス以外のサービスが実行されるというルールが定義されている。
図5の実行順序調整ルールは、ルールID(Identifier)がR1であり、ルール適用対応表5043(図7)では、フロー「P1」のサービス「a1」、「a2」、「a3」に実行順序調整ルール(ID:R1)が適用される旨が規定されているため、図5のif文は、サービス「a1」、「a2」、「a3」のトークンがトークンキューから取り出される場合に評価される。
そして、図5の実行順序調整ルールでは、フロー「メータ監視制御」のサービス「準備2」、「通信2」、「MDM3」が優先サービスとして定義されており、優先サービスのトークンがトークンキューに存在している場合は、サービス「a1」、「a2」、「a3」のトークンは、トークンキューに戻される(wait)。
一方、優先サービスのトークンが存在しない場合は、サービス「a1」、「a2」、「a3」のトークンは受信部5013に送られる(receive)。
このように、実行順序調整ルール情報5041では、サービスの実行順序の調整ルールが、サービスの属性(図5の場合は、フロー「メータ監視制御」のサービス「準備2」、「通信2」、「MDM3」という属性)に関連付けて定義されている。
なお、図5は、実行順序調整ルール情報5041に記述される実行順序調整ルールの一例を示しており、他の評価基準が用いられたルールでもよい。
例えば、最も優先度が高いトークンのサービスが実行されるという実行順序調整ルールが定義されていてもよい。
また、サービスの実行に関連するDCUエリアに対応付けた実行順序調整ルールが定義されていてもよい。
例えば、DCUエリアAからデータを収集するサービスのトークンが存在していない場合のみ、他のエリアからデータを収集するサービスを実行することができるという実行順序調整ルールが定義されていてもよい。
また、評価対象の計算機(例えば計算機1(100))の負荷(トークン数)と他の計算機(例えば計算機2(200))の負荷(トークン数)とに対応付けた実行順序調整ルールが定義されていてもよい。
更に、前述の負荷調整ルール情報3041(図8)のオブジェクト変数が評価基準として含まれる条件判断式が記述された実行順序調整ルールであってもよい。
なお、負荷調整ルール情報3041は、計算機間で負荷バランスを調整するためのルール情報である。
また、DCUエリアごとに、異なる実行順序調整ルールを用いるようにしてもよい。
移動ルール情報5042には、例えば、図6に示す移動ルールが定義されている。
移動ルール情報5042では、条件判断文(if文)を評価してTRUEの結果が得られた場合に実行する内容とFALSEの結果が得られた場合に実行する内容とが、スクリプト言語により記述されている。
実行順序調整ルール情報5041には、条件判断式(if文)を評価した結果に実行する内容として、例えば、sendTo()、leave()を記述することができる。
sendTo()は、ある計算機(例えば計算機1(100))のトークンキューから取り出したトークンを他の計算機(例えば計算機2(200))のトークンキューに移動させる命令である。
leave()は、ある計算機(例えば計算機1(100))のトークンキューから取り出したトークンを他の計算機(例えば計算機2(200))のトークンキューに移動させずに、その計算機(例えば計算機1(100))のトークンキューに戻させる命令である。
図6の移動ルールでは、優先して実行される優先サービスが定義され、優先サービスのトークンが格納されている計算機から、優先サービスのトークンが格納されていない他の計算機にトークンを移動させるというルールが定義されている。
図6の移動ルールは、ルールIDがR2であり、ルール適用対応表5043(図7)では、全てのサービスに移動ルール(ID:R2)が適用される旨が規定されている。
つまり、図6のif文は、全てのサービスのトークンがトークンキューから取り出される場合に評価される。
そして、図6の移動ルールでは、フロー「メータ監視制御」のサービス「準備2」、「通信2」、「MDM3」が優先サービスとして定義され、計算機1(100)に優先サービスのトークンが存在しており、計算機2(200)に優先サービスのトークンが存在していない場合は、計算機1(100)において取り出されたトークンを、計算機2(200)トークンキューに移動させる(sendTo)。
一方、上記の条件が成立しない場合は、計算機1(100)において取り出されたトークンを、元のトークンキューに戻す(leave)。
このように、移動ルール情報5042では、トークンの移動ルールが、サービスの属性(図6の場合は、フロー「メータ監視制御」のサービス「準備2」、「通信2」、「MDM3」という属性)に関連付けて定義されている。
また、移動ルール情報5042では、優先サービスのトークンが存在する計算機がトークンの移動元として定義され、優先サービスのトークンが存在しない計算機がトークンの移動先として定義されている。
なお、図6は、実行順序調整ルール情報5041の一例を示しており、他の評価基準が用いられた移動ルールでもよい。
例えば、特定レベル以下の優先度のトークンは他の計算機に移動させるという移動ルールが定義されていてもよい。
また、サービスの実行に関連するDCUエリアに対応付けた移動ルールが定義されていてもよい。
例えば、DCUエリアAからデータを収集するサービスのトークンは他の計算機に移動させるという移動ルールが定義されていてもよい。
また、評価対象の計算機(例えば計算機1(100))の負荷(トークン数)と他の計算機(例えば計算機2(200))の負荷(トークン数)とに対応付けた移動ルールが定義されていてもよい。
更に、前述の負荷調整ルール情報3041(図8)のオブジェクト変数が評価基準として含まれる条件判断式が記述された実行順序調整ルール情報5041であってもよい。
また、DCUエリアごとに、異なる移動ルールを用いるようにしてもよい。
メッセージルータ505は、サービスが通信プロトコル等を意識せずに通信を行えるようにするためのメッセージバスである。
ESB間インタフェース506は、ESB間のインタフェースを提供する。
サービス制御部501は、ESBのサービスごとに構成されルーティングファイルに従ったフロー実行の際のサービス間の連携と優先制御を行う機能である。
サービス制御部501は、例えば、トークンごとにサービスの実行開始又は実行の保留を決定し、また、優先制御に従った負荷バランス調整のためトークンを他の計算機に移動させる。
図9は、サービス制御部501の各要素と調整ルールとの関係、サービス制御部501の各要素と他の要素との関係を示している。
サービス実行待機評価部5011は、調整ルールに従って、トークンごとにサービスを実行するか待機して実行しないかを決定する。
サービス実行待機評価部5011は、トークンキューごとにトークンキューの先頭のトークンを取り出し、図9に示すように、主に実行順序調整ルール情報5041とルール適用対応表5043を参照して、取り出したトークンに対応するサービスの実行又はサービスの実行の保留を決定する。
サービス実行待機評価部5011は、サービス実行判定部の例に相当する。
他サーバ移動部5012は、調整ルールに従った判断によりトークンを他の計算機に移動させる。
他サーバ移動部5012は、トークンキューごとにトークンキューの最後尾からトークンを取り出し、主に移動ルール情報5042とルール適用対応表5043を参照して、取り出したトークンを、他の計算機のトークンキューに移動させるか否かを決定し、トークンの移動を決定した場合に、移動の対象となるトークンを、他の計算機のトークンキューに移動させる。
他サーバ移動部5012は、トークン移動部の例に相当する。
また、サービス実行待機評価部5011は、実行順序調整ルール情報5041に記述されている実行順序調整ルールに応じて、負荷調整指示情報702を参照してサービスの実行又は実行の待機を決定する場合がある。
また、他サーバ移動部5012は、移動ルール情報5042に記述されている移動ルールに応じて、負荷調整指示情報702を参照してトークンを他の計算機に移動させるか否かを決定する場合がある。
負荷調整指示情報702は、負荷調整指示情報生成部303により生成された情報である。
負荷調整指示情報702において、計算機統計情報は、例えば、サービス実行待機評価部5011が実装されている計算機のサービス実行部(例えば計算機1(100)のサービス実行部103)で受入可能なトークンの数が優先度別に示される情報である。
また、サーバ間調整情報は、例えば、他の計算機(例えば計算機2(200))でサービスが実行されているトークンの数、トークンキュー内のトークンの数が優先度別に示される情報である。
サービス実行待機評価部5011は、負荷調整指示情報702を参照することで、自計算機の負荷レベルと他の計算機の負荷レベルとを判断して、サービスの実行又は実行の待機を決定することができる。
また、他サーバ移動部5012は、負荷調整指示情報702を参照することで、自計算機の負荷レベルと他の計算機の負荷レベルとを判断して、トークンを他の計算機に移動させるか否かを決定することができる。
なお、負荷調整指示情報生成部303は、各計算機の性能統計更新部105で生成された計算機統計情報701と負荷調整ルール情報3041を用いて、負荷調整指示情報702を生成する。
計算機統計情報701に含まれるサーバ実行負荷統計には、サービスが実行されているトークンの数が優先度別に示される。
また、サービス要求負荷統計には、トークンキュー内にあるトークンの数が優先度別に示される。
負荷調整ルール情報3041は、図8に例示したように、計算機ごとにトークンの受入可能数と各優先度のトークンの比率が指定された情報である。
受信部5013は、サービス実行待機評価部5011によりサービスの実行が決定されたトークンをサービス実行待機評価部5011から取得し、取得したトークンをサービス実行部103に出力して、サービス実行部103にサービスアプリケーションコードを実行させる。
送信部5014は、サービス実行部103のサービスアプリケーションコードの実行結果が格納された後のトークンを取得し、取得したトークンをメッセージルータ505に送信する。
なお、送信部5014からトークンを渡されたメッセージルータ505は、ルーティングファイル(図3)に従い、次に実行するサービスのトークンを送信部5014に渡す。
送信部5014は、メッセージルータ505から渡されたトークンを該当するサービスのトークンキューに格納する。
なお、通常のESBのサービス制御機能は、単一のメッセージルータの内部キューと、受信部5013に相当する機能、送信部5014に相当する機能、サービスアプリケーションコードで構成され、内部キューから取り出したトークンによりサービスアプリケーションを実行してメッセージルータに渡すだけであり、調整ルールに従って、トークンの優先制御、他サーバへの移動、サービス実行待機を行う機能はない。
次に、本実施の形態のセンターシステム1000の動作について説明する。
図10及び図11は、サービス実行待機評価部5011が、トークンをキューから取り出し、実行順序調整ルール情報5041を用いてサービスの実行又は待機を判断する動作の流れを示す。
なお、サービス実行待機評価部5011は、トークンキューごとに(つまり、サービスごとに)、図10及び図11の動作を行う。
st11では、サービス実行待機評価部5011は、トークンキューの各優先度キューにトークンが含まれるかどうかを調査する。
st12では、サービス実行待機評価部5011は、トークンが含まれる優先度キューがない場合は、処理を終了する。
一方、トークンが含まれる優先度キューがある場合はst13に遷移する。
なお、トークンが含まれる優先度キューがあるサービスが実行候補サービスの例に相当する。
st13では、サービス実行待機評価部5011は、トークンが含まれる優先度キューのうち最高優先度の優先度キューを選択し、以降の処理は、この選択した優先度キューを対象として行う。
st14では、st13で選択した優先度キューの先頭のトークンを取り出す。
st15では、サービス実行待機評価部5011は、ルール適用対応表5043を調査し、現在対象としているサービスに適用する実行順序調整ルールがルール適用対応表5043に定義されているか(サービス名に対してルールIDが定義されているか)を判断する。
st16では、現在対象としているサービスに適用する実行順序調整ルールがない場合は、サービス実行待機評価部5011は、st113に遷移する。
一方、適用するルールがある場合は、サービス実行待機評価部5011は、st17に遷移する。
st17では、サービス実行待機評価部5011は、実行順序調整ルールのオブジェクト変数を生成する。
st18では、サービス実行待機評価部5011は、ルールIDに対応するルール内容の条件式を評価する。
st19では、サービス実行待機評価部5011は、条件式の評価結果に応じた関数を選択する。
st110では、サービス実行待機評価部5011は、wait()を選択した場合はst111に遷移し、stop()を選択した場合はst112に遷移し、receive()を選択した場合は、st113に遷移する。
st111では、サービス実行待機評価部5011は、サービスの実行を待機させるために、st14で取り出したトークンを取り出し元の優先度キューの先頭に入れる。
st112では、サービス実行待機評価部5011は、st14で取り出したトークンを取り出し元の優先度キューの先頭に入れるとともに、取り出し元の優先度キューから以後トークンの取り出しを停止する。
st113では、サービス実行待機評価部5011が、取り出したトークンを受信部5013に送信し、受信部5013がトークンを受信する。
st114では、受信部5013がトークンをサービス実行部103に送信し、サービス実行部103がトークンを受け入れ、該当するサービスのサービスアプリケーションコードを実行する。
st115では、サービス実行部103が、サービスアプリケーションコードの実行結果をトークンに保存する。
st116では、サービス実行部103がトークンを送信部5014に送信し、送信部5014がトークンをメッセージルータ505に送信する。
st117では、メッセージルータ505がルーティングファイルより次のサービスを決定し、送信部5014が、次のサービスのトークンを、対応するトークンキューの優先度キューに格納する。
図12は、他サーバ移動部5012が、トークンをキューから取り出し、移動ルール情報5042を用いてトークンを移動させるか否かを判断する動作の流れを示す。
なお、他サーバ移動部5012は、トークンキューごとに(つまり、サービスごとに)、図12の動作を行う。
st21では、他サーバ移動部5012は、トークンキューの各優先度キューにトークンが含まれるかどうかを調査する。
st22では、他サーバ移動部5012は、トークンが含まれる優先度キューがない場合は、処理を終了する。
一方、トークンが含まれる優先度キューがある場合はst23に遷移する。
st23では、他サーバ移動部5012は、トークンが含まれる優先度キューのうち最高優先度の優先度キューを選択し、以降の処理は、この選択した優先度キューを対象として行う。
st24では、st23で選択した優先度キューの最後尾のトークンを取り出す。
st25では、他サーバ移動部5012は、ルール適用対応表5043を調査し、現在対象としているサービスに適用する移動ルールがルール適用対応表5043に定義されているか(サービス名に対してルールIDが定義されているか)を判断する。
st26では、現在対象としているサービスに適用する移動ルールがない場合は、他サーバ移動部5012は、st30に遷移する。
一方、適用するルールがある場合は、サービス実行待機評価部5011は、st27に遷移する。
st30では、他サーバ移動部5012は、st24で取り出したトークンを取り出し元の優先度キューの同じ位置に戻し、st24で取り出したトークンの1つ前のトークンを取り出す。
以降は、他サーバ移動部5012は、st25とst26の動作を繰り返す。
st27では、他サーバ移動部5012は、移動ルールのオブジェクト変数を生成する。
st28では、他サーバ移動部5012は、ルールIDに対応するルール内容の条件式を評価する。
st29では、他サーバ移動部5012は、条件式の評価結果に応じた関数を選択する。
st210では、他サーバ移動部5012は、sendTo()を選択した場合はst211に遷移し、leave()を選択した場合はst212に遷移する。
st211では、他サーバ移動部5012は、移動ルールで指定されている計算機のトークンキューにトークンを移動させる。
st212では、他サーバ移動部5012は、st24で取り出したトークンを取り出し元の優先度キューの同じ位置に戻す。
実施の形態1の効果について述べる。
実施の形態1によりルーティングのフローのサービス実行の粒度で負荷調整が可能である。
そして、調整ルールを用いたキューベースの優先制御により、後続処理として優先サービスがある場合なども考慮した柔軟な優先処理が可能となる。
また、本実施の形態では、CPUの負荷と単一のサービス優先度だけで負荷バランスを調整するのでなく、調整ルールの条件式を用いて状況判断を行いながらシーンに応じた負荷調整が可能となる。
このため、課題1を解決することができる。
実施の形態2.
図13に、実施の形態2のスマートメータシステムの構成例を示す。
図1の構成に比べて、図13では、計算機1(100)にフロー・ルール置換部107が追加され、計算機2(200)にフロー・ルール置換部207が追加されている。
図13の他の要素は、図1と同じである。
フロー・ルール置換部107及びフロー・ルール置換部207は、スマートメータのアプリケーションの起動時の業務パラメータに基づき、実行するルーティングファイルのフローと調整ルールを別のものに置き換える。
フロー・ルール置換部107とフロー・ルール置換部207の動作は同じであるため、以下では、フロー・ルール置換部107の動作を説明する。
図14は、フロー・ルール置換部107の動作を説明する図である。
本実施の形態では、あるサービスを実現するための処理アルゴリズムに複数のバリエーションがあることを前提としている。
なお、処理アルゴリズムに複数のバリエーションがあるサービスを、特例サービスという。
図14の例では、「通信1」が特例サービスである。
「通信1」のサービスを実現するための処理アルゴリズムとして、「DCU通信置換フローA」と「DCU通信置換フローB」という2つの処理アルゴリズムが存在している。
フロー・ルール置換部107は、例えば、「P1:定期収集」のサービスフローの開始要求をユーザから入力するとともに、「P1:定期収集」のサービスフローに関連する業務パラメータを入力する。
ここでは、フロー・ルール置換部107が入力する業務パラメータがDCUのIDであるとする。
フロー・ルール置換部107は、入力した業務パラメータ(DCUのID)と、業務パラメータルール・フロー置換設定ファイルに基づき、「P1:定期収集」の「通信1」に対して、「DCU通信置換フローA」又は「DCU通信置換フローB」を選択する。
そして、サービス実行部103は、「P1:定期収集」において、フロー・ルール置換部107により選択された処理アルゴリズム(「DCU通信置換フローA」又は「DCU通信置換フローB」)に従って「通信1」のサービスを行う。
また、本実施の形態では、「P1:定期収集」の「通信1」に対して「調整ルールA」と「調整ルールB」の2つが設定されている。
フロー・ルール置換部107は、入力した業務パラメータ(DCUのID)と、業務パラメータルール・フロー置換設定ファイルに基づき、「P1:定期収集」の「通信1」に対して、「調整ルールA」又は「調整ルールB」を選択する。
そして、サービス実行待機評価部5011は、「通信1」のトークンに対して、フロー・ルール置換部107により選択された調整ルール(「調整ルールA」又は「調整ルールB」)を適用して、「通信1」のサービスの開始又は待機を判断する。
また、他サーバ移動部5012は、「通信1」のトークンに対して、フロー・ルール置換部107により選択された調整ルール(「調整ルールA」又は「調整ルールB」)を適用して、「通信1」のトークンを他の計算機に移動させるかどうかを判断する。
フロー・ルール置換部107は、開始要求入力部、アルゴリズム選択部及びルール選択部の例に相当する。
図15は、業務パラメータルール・フロー置換設定ファイルに含まれる構成・業務パラメータ対応表の例を示す。
また、図16及び図17は、業務パラメータルール・フロー置換設定ファイルに含まれる構成選択ルールの例を示す。
図15では、構成Aと構成Bが示され、構成Aに対しては「調整ルールA」が用いられ、また、「DCU通信置換フローA」が用いられることが定義されている。
また、構成Bに対しては「調整ルールB」が用いられ、また、「DCU通信置換フローB」が用いられることが定義されている。
図16の構成選択ルールでは、業務パラメータとして入力されたDCUのIDが「0」から「1000」までであれば、「構成A」が選択されることが定義されている。
一方、図17の構成選択ルールでは、業務パラメータとして入力されたDCUのIDが「1001」から「10000」までであれば、「構成B」が選択されることが定義されている。
このようにして、フロー・ルール置換部107は、入力した業務パラメータ(DCUのID)と、業務パラメータルール・フロー置換設定ファイルとに基づき、サービス「通信1」に対して、「DCU通信置換フローA」又は「DCU通信置換フローB」を選択し、また、「調整ルールA」又は「調整ルールB」を選択する。
次に、実施の形態2の効果について説明する。
フロー・ルール置換部107により、フロー開始時に調整ルールとルーティングファイルのフローを、サービスのパラメータにより切り替えることができる。
そして、パラメータとしてDCUのエリア(DCUのID)を使用すると、エリアの違いによりルールを切り替えてそれぞれのエリアにふさわしい、優先制御とワークロードバランスが可能となる。
このため、課題2を解決することができる。
実施の形態3.
図18に、実施の形態3の計算機3(300)の構成例を示す。
本実施の形態では、計算機3(300)以外の構成は、図1又は13と同じである。
図1又は図13に示す計算機3(300)の構成と比べて、図18では、システム構成予約管理部306、システム構成要素予約サービス307及びシステム構成予約情報308が追加されている。
システム構成予約管理部306は、スマートメータシステム内のシステム構成要素のうちセンターシステム1000以外のシステム構成要素の使用状況をサービス間で共有して、各システム構成要素が使用可能かどうかを管理する。
システム構成要素予約サービス307は、センターシステム1000以外の各システム構成要素の使用状況の情報を保持する。
システム構成予約情報308は、センターシステム1000以外のシステム構成要素の使用状況を変更するサービスである。
また、本実施の形態では、図19に例示するルーティングファイルが用いられる。
図3の通信サービスのフロー5023と比較して、図19の通信サービスのフロー5024では通信予約が行われている。
また、図19のルーティングファイルでは、DCU、通信装置、メータとの通信予約のためのシステム構成要素予約サービスが含まれている。
本実施の形態では、実行順序調整ルール情報5041に、例えば、システム構成要素予約サービスを優先サービスとして定義し、システム構成要素予約サービスのトークンが存在していない場合にシステム構成要素予約サービス以外のサービスが実行されるという実行順序調整ルールを記述しておくことが考えられる。
この実行順序調整ルールにより、システム構成要素予約サービスは他のサービスに優先して実行される。
実施の形態3の効果について述べる。
システム構成予約管理部306とシステム構成要素予約サービス307とシステム構成予約情報308により、センターシステム1000以外のシステム構成要素を考慮した優先制御が可能となる。
すなわち、センターシステム1000上のアプリケーションだけでなく、メータ、DCU,通信機器などスマートメータシステムに含まれるシステム構成要素に対する優先制御が可能となる。
以上、実施の形態1〜3では、スマートメータシステムにおけるサービス、サービスフローを実行するメッセージ連携ミドルウェア(ESB)を用いたサービス連携装置を説明した。
そして、実施の形態1〜3では、業務アプリケーションのフローの他に、構成要素やフローを意識した個別のアプリケーションの負荷調整を行うことを目的とした、サービス実行機能とESBコンテナ間調整機能からなる優先制御つきサービス連携装置を説明した。
そして、サービス実行機能は、以下の機能を有することを説明した。
1)サービスの流れを定義したフローの定義と、システム構成要素予約サービスを含むルーティングファイルと、ルーティングファイルにより制御されるESBバス
2)以下の機能により構成されるサービスアプリケーションロジックを呼び出すサービス制御機能
a)サービスのインスタンスをトークンとして優先度ごとに保持する優先度キュー
b)優先度キューの最後尾からトークンを取り出し、調整ルール設定ファイルと負荷調整指示情報を用いて評価し他サーバに移動するかどうかを判断する他サーバ移動機能
c)優先度キューの先頭からトークンを取り出し、調整ルール設定ファイルと負荷調整指示情報を用いて評価し、サービス実行を行うか、実行しないで待機させるかを判断するサービス実行待機評価機能
d)サービス実行待機評価機能からトークンを受信して、サービスアプリケーションコードを実行する受信機能
e)サービスアプリケーションコードの結果より実行後のトークンを生成して次のサービスに遷移させる送信機能
3)システム連携サーバの計算機全体の性能情報(CPU負荷など)と、各サービスの優先度キュー上のトークンの統計情報を収集してESBコンテナ間調整機能の計算機統計情報に送る自サーバ性能統計更新機能。
また、ESB間コンテナ間調整機能は、以下の機能を有することを説明した。
1)複数のESBでサーバごとの、サーバ実行負荷統計とサービス要求負荷統計を含む計算機統計情報を共有するための計算機間統計共有機能
2)計算機間統計共有機能とシステム構成要素予約サービスから、各システム連携計算機に対する負荷調整指示メッセージを作成する負荷調整指示生成機能。
また、実施の形態1〜3では、サービス実行機能が、以下の機能を有することを説明した。
業務パラメータルール・フロー置換設定ファイルに従って、実行するトークンのエリア(DCUエリア)などのフロー開始時のパラメータより、実行するトークンのエリア(DCUエリア)などのパラメータに応じて、開始するフローを切り換えるフロー・ルール置換機能。
また、実施の形態1〜3では、ESBコンテナ間調整機能が、以下の機能を有することを説明した。
スマートメータの機器の構成と使用状況を含むシステム構成予約情報と、システム構成予約情報を管理するシステム構成予約管理機能と、アプリケーションからシステム構成予約を行うシステム構成要素予約サービス。
最後に、実施の形態1〜3に示した計算機1(100)、計算機2(200)、計算機3(300)のハードウェア構成例を図20を参照して説明する。
以下では、計算機1(100)のハードウェア構成例を説明するが、以下の説明は、計算機2(200)及び計算機3(300)にも適用可能である。
計算機1(100)はコンピュータであり、計算機1(100)の各要素をプログラムで実現することができる。
計算機1(100)のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPUである。
外部記憶装置902は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random Access Memory)である。
通信装置904は、例えば通信カードである。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。
実施の形態1〜3で示した、「記憶部104」、「ルーティングファイル記憶部502」、「トークンキュー管理部503」及び「ルール記憶部504」は、外部記憶装置902又は主記憶装置903で実現される。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、図1に示す「〜部」(「記憶部104」、「ルーティングファイル記憶部502」、「トークンキュー管理部503」及び「ルール記憶部504」を除く、以下でも同様)として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1に示す「〜部」の機能を実現するプログラムを実行する。
また、サービスアプリケーションコードも外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901により実行される。
また、実施の形態1〜4の説明において、「〜の判断」、「〜の判定」、「〜の決定」、「〜の抽出」、「〜の調査」、「〜の評価」、「〜の実行」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」、「〜の受信」、「〜の送信」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
また、DCUやメータから受信したデータが主記憶装置903や外部記憶装置902に記憶される。
また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置903にファイルとして記憶されてもよい。
なお、図20の構成は、あくまでも計算機1(100)のハードウェア構成の一例を示すものであり、計算機1(100)のハードウェア構成は図20に記載の構成に限らず、他の構成であってもよい。
100 計算機1、101 通信部、102 入出力部、103 サービス実行部、104 記憶部、105 性能統計更新部、106 ESB、107 フロー・ルール置換部、200 計算機2、201 通信部、202 入出力部、203 サービス実行部、204 記憶部、205 性能統計更新部、206 ESB、207 フロー・ルール置換部、300 計算機3、301 通信部、302 入出力部、303 負荷調整指示情報生成部、304 計算機間統計共有部、305 ESB、306 システム構成予約管理部、307 システム構成要素予約サービス、308 システム構成予約情報、401 ネットワーク、402 ネットワーク、403 ネットワーク、404 DCU、405 メータ、406 メータ、501 サービス制御部、502 ルーティングファイル記憶部、503 トークンキュー管理部、504 ルール記憶部、505 メッセージルータ、506 ESB間インタフェース、1000 センターシステム、3041 負荷調整ルール情報、5011 サービス実行待機評価部、5012 他サーバ移動部、5013 受信部、5014 送信部、5031 トークンキュー、5032 トークンキュー、5033 トークンキュー、5034 トークンキュー、5034 トークンキュー、5036 トークンキュー、5041 実行順序調整ルール情報、5042 移動ルール情報、5043 ルール適用対応表。

Claims (15)

  1. 複数のサービスの実行を管理する情報処理システムであって、
    それぞれが異なるサービスに対応し、それぞれが、対応するサービスについて、サービスのインスタンスの情報であるトークンを格納する、複数のトークン格納部と、
    サービスの実行順序を調整するための実行順序調整ルールが定義されている実行順序調整ルール情報を記憶する実行順序調整ルール情報記憶部と、
    トークン格納部ごとにトークンが格納されているか否かを判断し、対応するトークン格納部にトークンが格納されているサービスを実行候補サービスとして抽出し、実行候補サービスごとに、前記実行順序調整ルール情報に定義されている実行順序調整ルールを用いて、サービスの実行及びサービスの実行の保留のいずれかを決定するサービス実行判定部とを有することを特徴とする情報処理システム。
  2. 前記実行順序調整ルール情報記憶部は、
    実行順序調整ルールがサービスの属性に関連付けて定義されている実行順序調整ルール情報を記憶しており、
    前記サービス実行判定部は、
    実行候補サービスごとに、実行候補サービスの属性と前記実行順序調整ルール情報の実行順序調整ルールとの照合及び他の実行候補サービスの属性と前記実行順序調整ルール情報の実行順序調整ルールとの照合の少なくともいずれかを行い、
    実行候補サービスごとに、サービスの実行及びサービスの実行の保留のいずれかを決定することを特徴とする請求項1に記載の情報処理装置。
  3. 前記実行順序調整ルール情報記憶部は、
    優先して実行される優先サービスが示され、前記優先サービスのトークン格納部にトークンが格納されていない場合に、前記優先サービス以外のサービスが実行されるという実行順序調整ルールが定義されている実行順序調整ルール情報を記憶し、
    前記サービス実行判定部は、
    前記優先サービスのトークン格納部にトークンが格納されている場合は、実行候補サービスとして抽出された前記優先サービスの実行を決定し、前記優先サービス以外の実行候補サービスの実行の保留を決定し、
    前記優先サービスのトークン格納部にトークンが格納されていない場合は、前記優先サービス以外の実行候補サービスの実行を決定することを特徴とする請求項1又は2に記載の情報処理システム。
  4. 各トークン格納部は、
    優先度が設定されているトークンを格納し、
    前記実行順序調整ルール情報記憶部は、
    2つ以上のトークン格納部に格納されている2つ以上のトークンのうち、最も優先度が高いトークンのサービスが実行されるという実行順序調整ルールが定義されている実行順序調整ルール情報を記憶し、
    前記サービス実行判定部は、
    抽出した実行候補サービスごとに、対応するトークン格納部に格納されているトークンの優先度を検査し、
    トークンの優先度が最も高い実行候補サービスの実行を決定し、
    他の実行候補サービスの実行の保留を決定することを特徴とする請求項1〜3のいずれかに記載の情報処理システム。
  5. 各トークン格納部は、
    優先度別の格納領域を有し、優先度が設定されているトークンを、対応する優先度の格納領域に格納し、
    前記サービス実行判定部は、
    実行候補サービスごとに、対応するトークン格納部の優先度別の格納領域のうちトークンが格納されている格納領域で最も高い優先度の格納領域を選択し、選択した格納領域の先頭に格納されているトークンを抽出し、
    抽出したトークンに対するサービスの実行又はサービスの実行の保留を決定することを特徴とする請求項1〜4のいずれかに記載の情報処理システム。
  6. 前記情報処理システムは、更に、
    前記サービス実行判定部により実行が決定されたサービスのトークンを受け入れ、受け入れたトークンに対応するサービスを実行するサービス実行部と、
    前記サービス実行部が既に受け入れているトークン数を集計し、前記サービス実行部が更に受け入れ可能なトークン数を算出するトークン数算出部とを有し、
    前記サービス実行判定部は、
    前記実行順序調整ルール情報の実行順序調整ルールと、前記トークン数算出部により算出された、前記サービス実行部が更に受け入れ可能なトークン数とを用いて、実行候補サービスごとに、サービスの実行及びサービスの実行の保留のいずれかを決定することを特徴とする請求項1〜5のいずれかに記載の情報処理システム。
  7. 各トークン格納部は、
    優先度が設定されているトークンを格納し、
    前記トークン数算出部は、
    前記サービス実行部が既に受け入れているトークン数を優先度別に集計し、前記サービス実行部が更に受け入れ可能なトークン数を優先度別に算出し、
    前記サービス実行判定部は、
    実行候補サービスごとに、対応するトークン格納部から所定の条件に合致するトークンを抽出し、
    実行候補サービスごとに、抽出したトークンの優先度と、前記実行順序調整ルール情報の実行順序調整ルールと、前記トークン数算出部により算出された、前記サービス実行部が更に受け入れ可能な優先度別のトークン数とを用いて、サービスの実行及びサービスの実行の保留のいずれかを決定することを特徴とする請求項6に記載の情報処理システム。
  8. 前記情報処理システムは、更に、
    複数のサービスが含まれるサービスフローの開始要求を入力するとともに、前記サービスフローに関連するパラメータを入力する開始要求入力部と、
    開始要求のあったサービスフローに、処理アルゴリズムに複数種のバリエーションがある特例サービスが含まれている場合に、前記開始要求入力部により入力されたパラメータに基づき、前記特例サービスの複数の処理アルゴリズムの中から特定の処理アルゴリズムを選択するアルゴリズム選択部と、
    前記サービス実行部は、
    前記アルゴリズム選択部により選択された処理アルゴリズムに従って前記特例サービスを実行することを特徴とする請求項6又は7に記載の情報処理システム。
  9. 前記実行順序調整ルール情報記憶部は、
    複数の実行順序調整ルールが定義されている実行順序調整ルール情報を記憶しており、
    前記情報処理システムは、更に、
    複数のサービスが含まれるサービスフローの開始要求を入力するとともに、前記サービスフローに関連するパラメータを入力する開始要求入力部と、
    開始要求のあったサービスフローに含まれる特定のサービスに対して、前記開始要求入力部により入力されたパラメータに基づき、前記実行順序調整ルール情報に定義されている複数の実行順序調整ルールの中から特定の実行順序調整ルールを選択するルール選択部とを有し、
    前記サービス実行判定部は、
    前記特定のサービスを前記実行候補サービスとして抽出した場合に、前記ルール選択部により選択された実行順序調整ルールを用いて、前記特定のサービスに対して、サービスの実行及びサービスの実行の保留のいずれかを決定することを特徴とする請求項1〜8のいずれかに記載の情報処理システム。
  10. 複数のサービスの実行を管理する情報処理システムであって、
    それぞれがサービスを実行する、複数のサービス実行部と、
    それぞれが異なるサービス実行部に対応し、それぞれが、サービスのインスタンスの情報であるトークンを格納する、複数のトークン格納部と、
    トークンの移動ルールが定義されている移動ルール情報を記憶する移動ルール情報記憶部と、
    前記移動ルール情報に定義されている移動ルールに基づき、サービス実行部ごとに、対応するトークン格納部に格納されているトークンを、他のサービス実行部のトークン格納部に移動させるか否かを決定し、トークンの移動を決定したサービス実行部のトークン格納部に格納されているトークンを、他のサービス実行部のトークン格納部に移動させるトークン移動部とを有することを特徴とする情報処理システム。
  11. 前記移動ルール情報記憶部は、
    トークンの移動ルールがサービスの属性に関連付けて定義されている移動ルール情報を記憶しており、
    前記トークン移動部は、
    サービス実行部ごとに、対応するトークン格納部に格納されているトークンが対応しているサービスの属性と前記移動ルール情報の移動ルールとの照合及び他のサービス実行部のトークン格納部に格納されているトークンが対応しているサービスの属性と前記移動ルール情報の移動ルールとの照合の少なくともいずれかを行い、
    サービス実行部ごとに、対応するトークン格納部に格納されているトークンを、他のサービス実行部のトークン格納部に移動させるか否かを決定することを特徴とする請求項10に記載の情報処理装置。
  12. 前記移動ルール情報記憶部は、
    優先して実行される優先サービスが示され、対応するトークン格納部に前記優先サービスのトークンが格納されているサービス実行部から、対応するトークン格納部に前記優先サービスのトークンが格納されていない他のサービス実行部に、トークンを移動させるという移動ルールが定義されている移動ルール情報を記憶し、
    前記トークン移動部は、
    対応するトークン格納部に前記優先サービスのトークンが格納されているサービス実行部を移動元サービス実行部として抽出し、対応するトークン格納部に前記優先サービスのトークンが格納されていないサービス実行部を移動先サービス実行部として抽出し、
    前記移動元のサービス実行部のトークン格納部に格納されているいずれかのトークンを、前記移動先のサービス実行部のトークン格納部に移動することを特徴とする請求項10又は11に記載の情報処理システム。
  13. 前記トークン移動部は、
    前記移動元のサービス実行部のトークン格納部の最後尾に格納されているトークンを、前記移動先のサービス実行部のトークン格納部に移動することを特徴とする請求項10〜12のいずれかに記載の情報処理システム。
  14. 各サービス実行部は、
    対応するトークン格納部に格納されているトークンを順次受け入れ、受け入れたトークンに対応するサービスを実行し、
    前記情報処理装置は、更に、
    各サービス実行部が既に受け入れているトークン数を集計し、各サービス実行部が更に受け入れ可能なトークン数を算出するトークン数算出部を有し、
    前記トークン移動部は、
    前記移動ルール情報に定義されている移動ルールと、前記トークン数算出部により算出された、各サービス実行部が更に受け入れ可能なトークン数とを用いて、サービス実行部ごとに、対応するトークン格納部に格納されているトークンを、他のサービス実行部のトークン格納部に移動させるか否かを決定することを特徴とする請求項10〜13のいずれかに記載の情報処理システム。
  15. 各トークン格納部は、
    優先度が設定されたトークンを格納し、
    前記トークン数算出部は、
    各サービス実行部が既に受け入れているトークン数を優先度別に集計し、各サービス実行部が更に受け入れ可能なトークン数を優先度別に算出し、
    前記トークン移動部は、
    前記移動ルール情報に定義されている移動ルールと、前記トークン数算出部により算出された、各サービス実行部が更に受け入れ可能な優先度別のトークン数と、各サービス実行部のトークン格納部に格納されているトークンの優先度とを用いて、サービス実行部ごとに、対応するトークン格納部に格納されているトークンを、他のサービス実行部のトークン格納部に移動させるか否かを決定することを特徴とする請求項14に記載の情報処理システム。
JP2014520837A 2012-06-12 2012-06-12 情報処理システム Expired - Fee Related JP5955385B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/064956 WO2013186851A1 (ja) 2012-06-12 2012-06-12 情報処理システム

Publications (2)

Publication Number Publication Date
JPWO2013186851A1 true JPWO2013186851A1 (ja) 2016-02-01
JP5955385B2 JP5955385B2 (ja) 2016-07-20

Family

ID=49757715

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014520837A Expired - Fee Related JP5955385B2 (ja) 2012-06-12 2012-06-12 情報処理システム

Country Status (2)

Country Link
JP (1) JP5955385B2 (ja)
WO (1) WO2013186851A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115378810A (zh) * 2022-08-22 2022-11-22 深圳奇迹智慧网络有限公司 一种规则动态更新方法、装置、计算机设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249674A (ja) * 2006-03-16 2007-09-27 Fujitsu Ltd サーバシステム
JP2007328618A (ja) * 2006-06-08 2007-12-20 Nec Corp ジョブ管理システム
JP2008262351A (ja) * 2007-04-11 2008-10-30 Mitsubishi Electric Corp アクセス制御装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4340646B2 (ja) * 2005-10-26 2009-10-07 日本電信電話株式会社 通信処理回路、通信処理方法
WO2007099613A1 (ja) * 2006-02-28 2007-09-07 Fujitsu Limited コマンド選択方法、装置、コマンド投入方法、及び装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249674A (ja) * 2006-03-16 2007-09-27 Fujitsu Ltd サーバシステム
JP2007328618A (ja) * 2006-06-08 2007-12-20 Nec Corp ジョブ管理システム
JP2008262351A (ja) * 2007-04-11 2008-10-30 Mitsubishi Electric Corp アクセス制御装置

Also Published As

Publication number Publication date
WO2013186851A1 (ja) 2013-12-19
JP5955385B2 (ja) 2016-07-20

Similar Documents

Publication Publication Date Title
US8479215B2 (en) Decentralized load distribution to reduce power and/or cooling costs in an event-driven system
US8479216B2 (en) Method for decentralized load distribution in an event-driven system using localized migration between physically connected nodes and load exchange protocol preventing simultaneous migration of plurality of tasks to or from a same node
CN112162865B (zh) 服务器的调度方法、装置和服务器
CN108322345A (zh) 一种故障修复数据包的发布方法及服务器
US20070083642A1 (en) Fully distributed data collection and consumption to maximize the usage of context, resource, and capacity-based client server interactions
JP5038902B2 (ja) オン・デマンド・メッセージベースの金融ネットワーク統合ミドルウェア
CN102724103A (zh) 代理服务器、分层次网络系统及分布式工作负载管理方法
CN110677274A (zh) 一种基于事件的云网络服务调度方法及装置
US10498817B1 (en) Performance tuning in distributed computing systems
CN101405730A (zh) 用于在确保一致数据视图的同时供应数据仓库的技术
WO2021143590A1 (zh) 一种分布式容器镜像构建调度系统及方法
US20230229486A1 (en) Virtual machine workload prediction method, virtual machine management method having the same and virtual machine management system implementing the same
CN115033340A (zh) 一种宿主机的选择方法及相关装置
CN112631800A (zh) 面向kafka的数据传输方法、系统、计算机设备及存储介质
CN113014608B (zh) 一种流量分发控制方法、装置、电子设备及存储介质
Ruz et al. Flexible adaptation loop for component-based soa applications
JP5955385B2 (ja) 情報処理システム
Zhang et al. A load-aware pluggable cloud framework for real-time video processing
CN117118982A (zh) 基于云原生多集群的消息传输方法、装置、介质及设备
CN108989456B (zh) 一种基于大数据的网络实现方法
Vasconcelos et al. Autonomous load balancing of data stream processing and mobile communications in scalable data distribution systems
Yin et al. Eaers: An enhanced version of autonomic and elastic resource scheduling framework for cloud applications
Hou et al. Real-time optimization of dynamic speed scaling for distributed data centers
Li et al. Message Queue Optimization Model Based on Periodic Execution and Category Priority
JP2011238099A (ja) トランザクション処理装置、トランザクション処理方法およびトランザクション処理プログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160418

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160614

R150 Certificate of patent or registration of utility model

Ref document number: 5955385

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees