[go: up one dir, main page]

JP4223411B2 - 実行多重度制御システム、実行多重度制御システムの制御方法、及びプログラム - Google Patents

実行多重度制御システム、実行多重度制御システムの制御方法、及びプログラム Download PDF

Info

Publication number
JP4223411B2
JP4223411B2 JP2004011106A JP2004011106A JP4223411B2 JP 4223411 B2 JP4223411 B2 JP 4223411B2 JP 2004011106 A JP2004011106 A JP 2004011106A JP 2004011106 A JP2004011106 A JP 2004011106A JP 4223411 B2 JP4223411 B2 JP 4223411B2
Authority
JP
Japan
Prior art keywords
service
distribution
request
load
multiplicity
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.)
Expired - Fee Related
Application number
JP2004011106A
Other languages
English (en)
Other versions
JP2005202894A (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 JP2004011106A priority Critical patent/JP4223411B2/ja
Priority to US11/034,438 priority patent/US7721295B2/en
Publication of JP2005202894A publication Critical patent/JP2005202894A/ja
Application granted granted Critical
Publication of JP4223411B2 publication Critical patent/JP4223411B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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]
    • 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
    • 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/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/5055Allocation 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 software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/204Point-of-sale [POS] network systems comprising interface for record bearing medium or carrier for electronic funds transfer or payment credit

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)
  • Multi Processors (AREA)

Description

本発明は、複数のサービスオブジェクトによって実現される分散オブジェクトシステムにおける、前記サービスオブジェクトの実行多重度を動的に制御する実行多重度制御システムに関する。
近年、インターネットやイントラネット等のネットワークを利用したシステムが急激に普及している。これに伴い、これらのシステムを構成している情報処理装置への負荷が増大している。このため、企業におけるシステムセンターやデータセンタ等においては、複数のリソース(資源)に負荷を分散することによりサービスの応答速度を向上させることが求められている。また低コストかつ限られたハードウエア資源及びソフトウエア資源の範囲内で負荷バランスの最適化を実現しつつ、資源の利用効率を高める仕組みが求められている。
そのような負荷分散を行う技術として、例えば特許文献1には複数のサーバマシンに同じの処理を行うオブジェクトを配置してクライアントからの処理要求を振り分ける技術が開示されている。特許文献1に記載の技術では、クライアントからのサービス要求を処理する際に、各サーバマシンに対してメトリックストリングを送信し、その応答を分析することによりサーバマシンの負荷状態を測定し、最も負荷の低いサーバマシンを判定してクライアントからのサービス要求を処理するサーバを動的に決定し、決定したサーバマシンに対してサービス要求を転送するようにしている。
また特許文献2には、低負荷なサーバマシンにサービスオブジェクトを複製し、複製したサービスオブジェクトにクライアントからの処理要求を転送する技術が開示されている。特許文献2に記載の技術では、同じサービスを提供するオブジェクトをあらかじめ複数配置しておくのではなく、サーバプログラムの稼働中に動的にサーバオブジェクトの複製を作成し、CPU利用率が低い他のコンピュータ上にオブジェクトを転送して稼働させ、クライアントコンピュータからの遠隔メソッド呼出しに対して複製したオブジェクトに対して遠隔メソッド呼出しを行わせるようにしている。
特開平7−93238号公報 特開2000−17654号公報 特開2001−92766号公報 特開平5−143559号公報 特開2002−91936号公報 特開2001−175460号公報
ところで、昨今のシステムの中には、クライアント装置から直接的に呼び出されたサービスオブジェクトが、その処理の中から他のサービスオブジェクトを呼び出すというように、複数のサービスオブジェクトが連鎖的に呼び出される構成をとるシステム(以下、分散オブジェクトシステムと称する)がある。
ここで分散オブジェクトシステムにおいて負荷分散を実現するためには、例えばクライアントから直接呼び出されたサービスオブジェクトの負荷が上昇した場合に、そのサービスオブジェクトの実行多重度を単純に増やすように構成することが考えられる。しかしながら、この場合、第1のサービスオブジェクトの負荷上昇の要因が後続して実行される他のサービスオブジェクトにある場合には、リソースの消費量に見合った負荷分散効果を期待することができない。また特定のサービスオブジェクトがリソースを集中して消費してしまうことで、システムの全体的な負荷バランスを保てなくなってしまう。
また分散オブジェクトシステムにおける負荷分散を実現する他の方法として、クライアントから直接呼び出されたサービスオブジェクトに後続して実行される一連の他のサービスオブジェクトをまとめて多重化してしまうことが考えられる。しかしながら、この場合、多重化する必要のないサービスオブジェクトまでが多重化されてしまうことがあり、この方法の場合もリソースを無駄に消費してしまう可能性がある。
さらに、負荷分散を実現する他の方法として、一連のサービスオブジェクトにおいて前後するサービスオブジェクトの組み合わせごとに負荷を計測し、個々の組み合わせごとに個別に負荷分散を行うようにすることが考えられる。しかしながら、多重化のためのリソース量に制限がある場合、この方法では本来多重化が必要である部分について多重化がされないことがある。
本発明は、複数のサービスオブジェクトを含んで実現される分散オブジェクトシステムにおいて、システム全体としての負荷バランスを保ちつつ、リソースを無駄に消費することなく適切に負荷分散を実現することができる、実行多重度制御システムを提供することを目的とする。
上記目的を達成するための本発明の主たる発明の一つは、CPUがプログラムを実行することにより実現されるオブジェクトである複数のサービスオブジェクトによって構成される分散オブジェクトシステムにおける、前記サービスオブジェクトの実行多重度を動的に制御する実行多重度制御システムであって、少なくとも1台以上のコンピュータと、前記コンピュータがプログラムを実行することにより実現される、前記分散オブジェクトシステムにサービス要求を1種類ずつ入力した場合における前記分散オブジェクトシステムを構成している各サービスオブジェクトの負荷を計測し、計測した前記負荷に基づいて前記分散オブジェクトシステムを構成している前記サービスオブジェクトの負荷分布を求めて記憶する負荷情報取得部と、前記負荷分布に基づいて、前記サービスオブジェクトの実行多重度を前記サービスオブジェクトごとに変化させた場合における前記分散オブジェクトシステムの処理効率の改善効果を示す指標である効果指標を算出して記憶する効果指標算出部と、前記分散オブジェクトシステムに入力されるサービス要求の数を前記サービス要求の種類ごとに計測し、計測した前記サービス要求の数に基づいて前記各サービス要求の数の分布である要求分布を求め、求めた前記要求分布を記憶する要求情報取得部と、前記効果指標と前記要求分布とに基づいて、前記サービスオブジェクトの実行多重度を変化させた場合における、前記分散オブジェクトシステムの処理効率の改善効果を示す指標である全体効果指標を算出して記憶する全体効果指標算出部と、算出された前記全体効果指標の絶対値が大きいものから順に前記実行多重度の制御方法を適用していくことにより前記分散オブジェクトシステムにおける複数の前記サービスオブジェクトの実行多重度の増加および削減の制御する実行多重度制御部と、を備えることとする。
また本発明の主たる発明の他の一つは、CPUがプログラムを実行することにより実現されるオブジェクトである複数のサービスオブジェクトによって構成される分散オブジェクトシステムにおける、前記サービスオブジェクトの実行多重度を動的に制御する実行多重度制御システムであって、少なくとも1台以上のコンピュータと、前記コンピュータがプログラムを実行することにより実現される、前記分散オブジェクトシステムを構成している各サービスオブジェクトの負荷を計測し、計測した前記負荷に基づいて前記分散オブジェクトシステムを構成している前記サービスオブジェクトの負荷分布を求め、求めた前記負荷分布を累積的に記憶する負荷情報取得部と、前記分散オブジェクトシステムに入力されるサービス要求の数を前記サービス要求の種類ごとに計測し、計測した前記サービス要求の数に基づいて、前記各サービス要求の数の分布である要求分布を求め、求めた前記要求分布を前記計測時における前記サービスオブジェクトの実行状態に対応づけて累積的に記憶する要求情報取得部と、最新に取得した要求分布に類似する分布を前記要求情報取得部が記憶している前記要求分布の中から抽出し、抽出した前記要求分布に対応づけて記憶されている前記サービスオブジェクトと最新の前記サービスオブジェクトとの間の実行多重度の制御状態及び負荷分布の差分を求める差分取得部と、前記実行多重度の制御状態の差分と前記負荷分布の差分とに基づいて、前記サービスオブジェクトの実行多重度を変化させた場合における、前記分散オブジェクトシステムの処理効率の改善効果を示す指標である全体効果指標を算出して記憶する全体効果指標算出部と、算出した前記全体効果指標の絶対値が大きいものから順に前記実行多重度の制御方法を適用していくことにより前記分散オブジェクトシステムにおける複数の前記サービスオブジェクトの実行多重度の増加及び削減の制御する実行多重度制御部と、を備えることとする。
本発明のシステムの実行多重度制御システムによれば、複数のサービスオブジェクトを含んで実現される分散オブジェクトシステムにおいて、システム全体としての負荷バランスを保ちつつ、リソースの制限範囲内で、最適な負荷分散を実現することができる。
以下、本発明のいくつかの実施形態について詳細に説明する。
図1Aは、本発明の一実施形態として説明する、複数のサービスオブジェクトによって実現されるシステムである分散オブジェクトシステム、及び前記分散オブジェクトシステムを構成する上記サービスオブジェクトの実行多重度(多重度)を動的に制御する実行多重度制御システムの概略的な構成を示している。上記サービスオブジェクトとは、CPUがメモリに記憶されているプログラムを実行することにより実現されるオブジェクトである。サービスオブジェクトは、例えばクライアント装置から送信されてくるサービス要求に応じた処理を実行し、前記処理による結果を前記クライアント装置に送信するといった機能を提供する。
本実施例の分散オブジェクトシステム131は、オンラインブックストア等に代表されるWeb3階層システムの構成をとる。つまり図1Aに示すように、サービスオブジェクト135はプレゼンテーション層に配置されるプログラムを実行することにより実現され、サービスオブジェクト136はロジック層に配置するプログラムを実行することにより実現され、サービスオブジェクト137はデータベース層に配置するプログラムを実行することにより実現されている。以下の説明において、分散オブジェクトシステムに入力されるサービス要求名が「REQ_001」のサービス要求は書籍の検索処理についてのサービス要求であり、サービス要求名が「REQ_002」のサービス要求は書籍の注文処理についてのサービス要求であり、「REQ_003」のサービス要求は店舗スタッフによる売り上げ照会処理についてのサービス要求であるものとする。またサービス名が「WEB_001」であるサービスオブジェクトはプレゼンテーション層に配置されるサービスオブジェクト135であり、サービス名が「AP_001」であるサービスオブジェクトはロジック層に配置されるサービスオブジェクト136であり、サービス名が「DB_001」であるサービスオブジェクトはデータベース層に配置されるサービスオブジェクト137であるものとする。
なお、図1Aに示す分散オブジェクトシステム131の構成は、後述する第2乃至第4実施例において共通であるものとする。また図1には実行多重度制御システム101の制御対象となる分散オブジェクトシステム131を一つのみ例示しているが、一つの実行多重度制御システム101が、複数の分散オブジェクトシステム131の制御を行うこともできる。本実施形態における分散オブジェクトシステム131は、そのような制御を行っているものとしている。
<分散オブジェクトシステム131>
図1Aに示すように、分散オブジェクトシステム131は、情報処理装置1〜5(符号132a〜132e)、負荷分散装置133、ネーミングサービス134を含んで構成されている。また図1Aに示すクライアント装置140は分散オブジェクトシステム131に対してサービス要求を送信するコンピュータである。
情報処理装置1〜5(符号132a〜132e)、負荷分散装置133、及びネーミングサービス134は、それぞれコンピュータである。情報処理装置1〜5(符号132a〜132e)、負荷分散装置133、及びネーミングサービス134は、例えばそれぞれ複数台のコンピュータが協調して動作することにより実現される構成とすることもできる。そのような協調動作を実現するためのソフトウエアとしては、例えば負荷分散型クラスタやフェールオーバ型クラスタ等を実現するソフトウエアがある。
上記コンピュータのハードウエアとしては、パーソナルコンピュータやワークステーション、メインフレーム等が用いられる。情報処理装置1〜5(符号132a〜132e)、負荷分散装置133、及びネーミングサービス134、クライアント装置140は、それぞれLAN(Local Area Network)(有線LANもしくは無線LAN)等の図示しない適宜な通信手段によって互いに通信可能に接続されている。また情報処理装置1〜5(符号132a〜132e)、負荷分散装置133、及びネーミングサービス134は、それぞれLAN等の適宜な通信手段を介して実行多重度制御システム101とも通信可能に接続されている。
図1Bは、情報処理装置1〜5(符号132a〜132e)、負荷分散装置133、及びネーミングサービス134のハードウエアとして利用可能な典型的なコンピュータのブロック図である。図1Bに示すコンピュータは、当該コンピュータの全体的な統括制御を行うCPU(Central Processing Unit)11B、CPUによって実行されるプログラムやデータ等が記憶されるメモリ(ROM、RAM)12B、ハードディスクドライブ等からなる外部記憶装置13B、キーボードやマウス等の入力装置14B、ディスプレイ等の表示装置15B、CD−ROMやDVD−ROM等の記録媒体16Bからデータやプログラムを読み出す記録媒体読取装置17B、LANに接続するネットワークインタフェース18B、等を備えて構成されている。
情報処理装置1〜5(符号132a〜132e)は、分散オブジェクトシステムを実現しているサービスオブジェクト135〜137の実行環境を提供しているコンピュータ(サーバ装置)である。情報処理装置1〜5(符号132a〜132e)において実現されるサービスオブジェクト135〜137は、それぞれクライアント装置140から送信されてくるサービス要求についての処理を行う、CPU11Bがメモリ12Bに記憶されているプログラムを実行することにより実現されるオブジェクトである。
サービスオブジェクト136は、サービスオブジェクト135の処理に必要とされるオブジェクトであり、例えばサービスオブジェクト135のプログラムコード内から呼び出されるオブジェクトである。またサービスオブジェクト137は、サービスオブジェクト136の処理に必要とされるオブジェクトであり、サービスオブジェクト136のプログラムコード内から呼び出されるオブジェクトである。
負荷分散装置133は、エンドユーザ等が操作するクライアント装置140からの窓口装置として機能するコンピュータである。負荷分散装置133は、クライアント装置140から送信されてくるサービス要求を受け付けて、前記サービス要求についての処理を行うサービスオブジェクトを決定する。そして負荷分散装置133は、決定した情報処理装置1(132a)または情報処理装置2(132b)で動作しているサービスオブジェクト135a(A−1)、もしくは、サービスオブジェクト135b(A−2)の少なくともいずれかに対して前記サービス要求を送信する。つまり負荷分散装置133は、前記サービス要求の処理を行うサービスオブジェクトを、各情報処理装置135a,135bの負荷に応じて選択することにより、情報処理装置135a,135bについての負荷分散を行っている。
ネーミングサービス134は、情報処理装置1〜5(符号132c〜132e)についての負荷分散を実現するオブジェクトである。ネーミングサービス134は、サービスオブジェクト135〜137の識別情報と、各サービスオブジェクト135〜137を実現するプログラムが格納されている格納位置を示す位置情報とを対応づけて記憶している。各サービスオブジェクト135〜137がネーミングサービス134に対して各サービスオブジェクト135〜137の識別情報を通知すると、ネーミングサービス134は通知された識別情報に対応するプログラムの位置情報を通知する。各サービスオブジェクト135〜137は、通知された位置情報に対応する格納位置に記憶されているプログラムを起動させることで、サービスオブジェクト135〜137間で行われる処理の連携が図られる。ネーミングサービス134は、前記識別情報の一つに対して複数の前記位置情報を記憶し、同じ前記識別情報が付帯された複数の前記問い合わせ要求についての応答に際し、前記応答ごとに前記位置情報を変化させるように制御することができる。つまりこれにより前記サービスオブジェクト135〜137の実行多重度の制御を行うことが可能であり、サービスオブジェクト135〜137の負荷分散の仕組みを容易に実現することができる。
<実行多重度制御システム101>
図1Aに示す実行多重度制御システム101は、コンピュータ及び前記コンピュータにおいて実行されるプログラムによって実現されている。実行多重度制御システム101のハードウエアとして利用可能な典型的なコンピュータのブロック図を図1Cに示している。図1Cに示すコンピュータは、コンピュータの全体的な統括制御を行うCPU(Central Processing Unit)11C、CPUによって実行されるプログラムやデータ等が記憶されるメモリ(ROM、RAM)12C、ハードディスクドライブ等からなる外部記憶装置13C、キーボードやマウス等の入力装置14C、ディスプレイ等の表示装置15C、CD−ROMやDVD−ROM等の記録媒体16Cからデータやプログラムを読み出す記録媒体読取装置17C、LAN50に接続するためのネットワークインタフェース18C、等を備えて構成されている。
図1Aに示すように、実行多重度制御システム101では、負荷情報取得部111、負荷分布蓄積テーブル112、要求情報取得部113、要求分布蓄積テーブル114、効果指標算出部(効果指標算出部、全体効果指標算出部)115、効果指標テーブル116、実行多重度制御部117、クオータテーブル118、リソース管理テーブル120、等を備える。また、実行多重度制御部117は、構成決定部1171、リソース割り当て部1172、プログラム配付・設定部1173、等の機能を含む。
このうち負荷情報取得部111、要求情報取得部113、効果指標算出部(効果指標算出部、全体効果指標算出部)115、実行多重度制御部117については、実行多重度制御システム101を実現している上記コンピュータのハードウエア及びCPU11Cがメモリ12Cに記憶されているプログラムを実行することにより実現されている。また負荷分布蓄積テーブル112、要求分布蓄積テーブル114、効果指標テーブル116、クオータテーブル118、リソース管理テーブル120、等はメモリ12Cや外部記憶装置13Cに記憶され、上記コンピュータで動作しているデータベースに管理されている。
負荷情報取得部111は、実行多重度制御システム101の制御対象である分散オブジェクトシステム131を構成している各サービスオブジェクト135〜137の負荷を計測し、計測した負荷に基づいて各サービスオブジェクト135〜137の負荷分布を求めて負荷分布蓄積テーブル112に書き込む(登録、記憶)。
要求情報取得部113は、クライアント装置から分散オブジェクトシステム131に入力されるサービス要求の数を、前記サービス要求の種類ごとに計測し、計測した前記サービス要求の数に基づいて、前記各サービス要求の数の分布である要求分布を求めて要求分布蓄積テーブル114に書き込む(登録、記憶)。
効果指標算出部(効果指標算出部、全体効果指標算出部)115は、前記負荷分布に基づいてサービスオブジェクトの実行多重度をサービスオブジェクトごとに変化させた場合における分散オブジェクトシステム131の処理効率の改善効果を示す指標である効果指標を算出し、算出した効果指標を効果指標テーブル116に書き込む(登録、記憶)。また、効果指標算出部115は、算出した前記効果指標と前記要求分布とに基づいて、サービスオブジェクト135〜137の実行多重度を変化させた場合における、分散オブジェクトシステム131の処理効率の改善効果を示す指標である全体効果指標を、前記サービスオブジェクトごとに算出して効果指標テーブル116に書き込む(登録、記憶)。なお、効果指標算出部(効果指標算出部、全体効果指標算出部)115は、前記効果指標、もしくは、前記全体効果指標として、サービスオブジェクト135〜137の実行多重度を増やした場合の改善効果(追加効果)、もしくは、サービスオブジェクトの実行多重度を減らしたときの改善効果(削除効果)を算出する。
構成決定部1171は、要求分布蓄積テーブル114から最新の要求分布を取得して、クオータテーブル118から取得されるサービスオブジェクトを実行するために使用可能なリソースである情報処理装置132の台数から定まる上限値(この場合は全てのサービスオブジェクトにおいて利用される情報処理装置の合計が5台)の範囲内でサービスオブジェクト135〜137の最適な多重化方法を決定する。
リソース割り当て部1172は、例えば後述するプログラム配付・設定スクリプト1401の生成等、リソース(情報処理装置132)の使用状況が登録されているリソース管理テーブル120から、前記構成決定部1171により決定された実行多重度で分散オブジェクトシステム131を運用するために必要となるリソース(情報処理装置132)の取得に関する処理を行う。
プログラム配付・設定部1173は、リソース割り当て部1172により生成されたプログラム配付・設定スクリプト1401を実行し、構成決定部1171により決定された実行多重度の制御方法に従って実行多重度を実際に制御する。例えばサービスオブジェクト135〜137の実行多重度を増やすためにあるリソース(情報処理装置132)において新たにサービスオブジェクトを実行させようとする場合には、プログラム配付・設定部1173は、そのサービスオブジェクトを実行するために必要となるプログラムファイルやデータをプログラムリポジトリ122から読み出して、新たにサービスオブジェクトを実行させるリソース(情報処理装置132)に読み出したプログラムファイルやデータを転送する。またプログラム配付・設定部1173は、リソース(情報処理装置132)に対して上記サービスオブジェクトを実行させるために必要となる設定やインストール指示する命令を送信する。逆にサービスオブジェクト135〜137の実行多重度を減らす場合には、該当のリソース(情報処理装置132)に対して上記サービスオブジェクトを実現しているプログラムファイルやデータの実行の中止や削除を指示する命令を送信する。そしてプログラム配付・設定部1173は、以上のようにしてリソース(情報処理装置132)にプログラムファイルやデータの転送や削除を行った後、負荷分散装置133やネーミングサービス134に対して、分散オブジェクトシステム131に新たな形態での負荷分散を行うようにさせるための命令(再設定コマンド)を送信し、分散オブジェクトシステム131全体の再設定を行う。
プログラム配付・設定部1173は、前記リソース割り当て部1172は前記リソース管理テーブル120に削除するリソース(サーバマシン)を返却し、プログラム配付・設定部1173は前記返却したリソースから該当のサービスオブジェクトのプログラムやデータを削除し、分散オブジェクトシステム131全体の再設定を行う。
<負荷分布蓄積テーブル112>
図2に負荷分布蓄積テーブル112の一例を示している。負荷分布蓄積テーブル112には、分散オブジェクトシステム131を実現している各サービスオブジェクト135〜137についての負荷を計測した結果が負荷分布の形で累積的に登録されている。負荷分布蓄積テーブル112には、分散オブジェクトシステム131の識別情報であるシステムIDが設定されるシステムIDの欄201と、その計測が何回目の計測であるのかを示す識別情報である計測IDが設定される計測IDの欄202と、計測したサービスオブジェクト135〜137の識別情報であるサービス名が設定されるサービス名の欄203と、サービス名に対応するサービスオブジェクトが稼働している情報処理装置132が設定されるマシンIDの欄204と、分散オブジェクトシステム131の全体に対する各サービスオブジェクトの負荷の割合が設定される負荷割合の欄205、等が設けられている。なお、システムIDの欄201は、実行多重度制御システム101が複数の分散オブジェクトシステム131を制御しているために管理する必要のある項目である。
図2の符号211で示すデータ群のうち1行目に示すデータは、システムIDが「SYS_001」という分散オブジェクトシステム131についての計測IDが「1」の計測において、マシンIDが「M001」の情報処理装置132において実現されているサービス名が「WEB_001」であるサービスオブジェクト135〜137の負荷の割合が「80」であることを示している。また2行目に示すデータは、マシンIDが「M002」の情報処理装置132において実現されている、サービス名が「AP_001」であるサービスオブジェクト135〜137の負荷割合が「20」であることを示している。また3行目に示すデータは、マシンIDが「M003」の情報処理装置132において実現されている、サービス名が「DB_001」であるサービスオブジェクトの負荷割合が「0」であることを示している。なお、符号212〜216のデータについても同様に解釈する。
<要求分布蓄積テーブル114>
図3に要求分布蓄積テーブル114の一例を示している。要求分布蓄積テーブル114は、負荷情報取得部111が負荷情報を収集している最中に受け付けたサービス要求について、サービス要求の全数に対する、サービス要求の種類別のサービス要求の数の割合が累積的に登録されている。要求分布蓄積テーブル114には、実行多重度制御システム101の制御対象となる分散オブジェクトシステム131の識別情報であるシステムIDが設定されるシステムIDの欄301と、その計測が何回目の計測であるのかを示す計測IDが設定される計測IDの欄302と、計測したサービス要求の種類を示す識別情報であるサービス要求名が設定されるサービス要求名の欄303と、分散オブジェクトシステム131が受け付けた全てのサービス要求の数に対する、上記各種類に対応するサービス要求が占める割合が設定されるサービス要求割合の欄304等が設けられている。なお、システムIDの欄301は、実行多重度制御システム101が複数の分散オブジェクトシステム131を制御しているために管理する必要のある項目である。
図3の符号311で示すデータ群のうち1行目に示すデータは、システムIDが「SYS_001」という分散オブジェクトシステム131についての計測IDが「1」の計測において、サービス要求名が「REQ_001」という種類のサービス要求の数が占める割合が「100」であることを示している。また2行目に示すデータは、「REQ_002」という種類のサービス要求が占める割合は「0」でることを示している。また3行目のデータは、「REQ_003」という種類のサービス要求が占める割合は「0」であることを示している。なお、符号312〜316のデータについても同様に解釈する。
<効果指標テーブル116>
図4に効果指標テーブル116の一例を示している。分散オブジェクトシステム131の識別情報であるシステムIDが設定されるシステムIDの欄401と、サービス要求名が設定されるサービス要求名の欄402と、サービスオブジェクト135〜137の識別情報であるサービス名が設定されるサービス名の欄403と、追加効果指標が設定される追加効果指標の欄404と、削除効果指標が設定される削除効果指標の欄405、等が設けられている。なお、追加効果指標は、サービス要求によって呼び出される一連のサービスオブジェクト135〜137について、各サービスオブジェクト135〜137の実行多重度を1だけ増やした場合に分散オブジェクトシステム131にどれくらいの負荷分散効果が得られるかを表す効果指標である。また削除効果指標は、サービスオブジェクト135〜137の実行多重度を1つ減らしたときに分散オブジェクトシステム131にどれくらいの効果が得られるかを表わす効果指標である。
図4の符号411で示すデータは、システムID401が「SYS_001」である分散オブジェクトシステム131で「REQ_001」というサービス要求名のサービス要求を処理する場合に、サービス名403が「WEB_001」のサービスオブジェクトの実行多重度を1つ増やしたときの効果指標(追加効果指標)が「40」であることを示している。また符号412で示すデータは、システムID401が「SYS_001」である分散オブジェクトシステム131で「REQ_001」というサービス要求名のサービス要求を処理する場合に、サービス名が「AP_001」というサービスオブジェクトの多重度を1つ増加やしたときの効果指標(追加効果指標)が「10」であることを示している。また符号413で示すデータは、システムID401が「SYS_001」という分散オブジェクトシステムにおいて、「REQ_001」というサービス要求名のサービス要求を処理する場合に、「DB_001」というサービス名のサービスオブジェクトの実行多重度を1つ増やした場合の追加効果指標が「0」であることを示している。
なお、図4の符号411〜413で示すデータは、いずれも各サービスオブジェクトの実行多重度が1である場合のデータである。従ってこれらについてはこれ以上実行多重度を減らすことができないため、削除効果指標の欄405には値が設定されていない(「−」が設定されている)。また符号421で示すデータは、実行多重度が2以上である場合であり、削除効果指標として「−10」が設定されている。
<クオータテーブル118>
図5にクオータテーブル118の一例を示している。クオータテーブル118には、各分散オブジェクトシステム131がサービスオブジェクトを実現するために利用することができる情報処理装置132の台数、及び現在使用されている情報処理装置132の台数が管理されている。クオータテーブル118には、分散オブジェクトシステム131の識別情報が設定されるシステムID501の欄、その分散オブジェクトシステム131が利用可能な情報処理装置132の最大数が設定される最大マシン台数の欄502、現在使用中の情報処理装置の台数が設定される現在使用台数の欄502が設けられている。図5の符号511で示すデータは、システムIDが「SYS_001」という分散オブジェクトシステム131について、サービスオブジェクトを実現するために利用することができる情報処理装置132の台数は「5」台であり、現在既に「3」台が使用されていることを示している。
<リソース管理テーブル120>
図6にリソース管理テーブル120の一例を示している。リソース管理テーブル120は、どのサーバマシンがどのシステムに割り当てられているか、そのサーバマシンがどのシステムにも割り当てられていなくて利用可能な状態となっているかを示す情報が管理されているテーブルである。リソース管理テーブル120には、情報処理装置132の識別情報であるマシンIDが設定されるマシンIDの欄601、その情報処理装置132を現在利用している分散オブジェクトシステム131のシステムIDが設定されるシステムIDの欄602が設けられている。
図6の符号611〜613で示すデータは、マシンIDが「M_001」、「M_002」、「M_003」に対応する情報処理装置132は、システムIDが「SYS_001」である分散オブジェクトシステム131に割り当てられていることを示している。符号612、613のデータについても同様に解釈する。また、符号614で示すデータはシステムIDの欄602の値が空欄になっているが、これはその情報処理装置132が現在どの分散オブジェクトシステム131にも割り当てられていないことを示している。
<プログラムリポジトリ122>
図7はプログラムリポジトリ122の一例を示している。プログラムリポジトリ122は分散オブジェクトシステム131の実現に用いられるプログラムファイルやデータが管理されるデータベースである。プログラムリポジトリ122は実行多重度制御システム101を実現しているコンピュータ上で実行されるオペレーティングシステムによって実現されるファイルシステム上に構築されている。プログラムリポジトリ122には、システムIDごとにプログラムファイルやデータを格納するフォルダ(ディレクトリ)(701〜703)が設けられ、これにより各サービスオブジェクト135〜137を実現するために用いられるプログラムファイルやデータが、どの分散オブジェクトシステム131に使用されるものであるかどうかを区別できるようになっている。またシステムIDに対応するフォルダの下位には、サービスオブジェクト135〜137ごとのフォルダ(704〜706)が設けられ、これらの各フォルダには、該当する各サービスオブジェクト135〜137を実現するために必要となるプログラムファイルやデータが格納(記憶)されている。
図7に示すプログラムリポジトリ122の例では、システムIDが「SYS_001」であるプログラムファイルやデータが、符号701で示すフォルダ(ディレクトリ)以下に格納されている。そのうちの符号704で示すフォルダには、そしてサービス名が「WEB_001」であるサービスオブジェクトを実現するためのプログラムファイルである、ファイル名が「WEB_001.WAR」のプログラムファイル707が格納されている。また符号705で示すフォルダには、サービス名が「AP_001」であるサービスオブジェクトを実現するためのプログラムファイルである、ファイル名が「AP_001.JAR」で示されるプログラムファイル708が格納されている。また符号706で示すフォルダには、サービス名が「DB_001」であるサービスオブジェクトを実現するためのファイルである、ファイル名が「TABLE.SQL」及び「DATA.DAT」で示されるデータ(設定ファイル)709及びデータ(設定ファイル)710が格納されている。
<負荷情報取得部111による処理>
図8は負荷情報取得部111によって行われる処理の流れを説明するフローチャートである。
まず負荷情報取得部111は、これから計測・収集しようとする一連の情報を一意に特定するための計測IDを決定し、決定した計測IDを要求情報取得部113に送信する(ステップ801)。なお、この要求情報取得部113への計測IDの送信は、負荷情報取得部111の処理と要求情報取得部113の処理が時間的に並行して行われる必要があるために必要となる。
次に負荷情報取得部111は、負荷の計測の対象となるサービスオブジェクト135〜137の一覧を読み出す(ステップ802)。なお、この一覧は、実行多重度制御システム101内のいずれで管理されていてもよく、例えばリソース割り当て部1172等によって記憶されている。
次に負荷情報取得部111は、読み出した各サービスオブジェクト135〜137についての一定回数分の負荷計測を繰り返し行う(ステップ803〜805)。負荷情報取得部111は、ステップ803における判断において、計測を規定の回数分繰り返したかどうかを判断している。負荷情報取得部111は、ステップ803における判断が「NO」である場合、ステップ804に進む。ステップ804では、負荷情報取得部111は、負荷計測の対象となるすべてのサービスオブジェクト135〜137についての計測を行ったかどうかを判断している(ステップ804)。負荷情報取得部111は、ステップ804における判断が「NO」である場合、サービスオブジェクトの負荷の計測を行い、測定したサービスオブジェクト135〜137の負荷をメモリ12Cに記憶する(ステップ805)。なお、負荷情報取得部111は、例えば特許文献4等に記載されている方法により負荷の計測を行う。すなわち、負荷情報取得部111は、分散オブジェクトシステム131を実現している各情報処理装置132に対して負荷を問合せるメッセージをブロードキャストにより送出し、その応答を受信することに各情報処理装置132における負荷を取得する。
次に負荷情報取得部111は、上記処理により取得した各サービスオブジェクト135〜137の負荷の平均値(合計値でも良い)を算出する(ステップ806)。そして負荷情報取得部111は、全体の負荷を100としたときの各サービスオブジェクト135〜137の負荷の割合(負荷分布)を算出する。
次に負荷情報取得部111は、算出した負荷の割合をシステムID、計測ID、サービス名、及びマシンIDに対応づけて負荷分布蓄積テーブル112に書き込む(登録、記憶)(ステップ808)。以上のようにして負荷分布蓄積テーブル112に負荷の割合が書き込まれることになる。
<要求情報取得部113による処理>
図9は要求情報取得部113によって行われる処理の流れを説明するフローチャートである。負荷情報取得部111による処理の説明で述べたように、要求情報取得部113の処理は、負荷情報取得部111と時間的に並行して行われる必要がある。要求情報取得部113は、ステップ901において負荷情報取得部111から送信されてくる計測IDを受信する(ステップ901)。
ステップ902において、要求情報取得部113は、負荷情報取得部111の処理が終了したかどうかを判断している(ステップ902)。ここで要求情報取得部113は、ステップ902が「YES」となるまでクライアント装置140から分散オブジェクトシステム131に送信されてくるサービス要求の種類(サービス要求名)と要求数とを計測し続ける。ここでステップ902が「YES」となるのは、例えばあらかじめ設定された計測時間が経過した時である。
計測中において、要求情報取得部113は、対象となる分散オブジェクトシステム131へのサービス要求名を特定し(ステップ903)、サービス要求名ごとに要求された回数を計測する(ステップ904)。なお、要求情報取得部113は、例えば特許文献5に記載されている方法により分散オブジェクトシステム131に対するサービス要求の種類を特定する。すなわち、要求情報取得部113は、例えばHTTP(Hypertext Transfer Protocol)ヘッダに記載されている情報に基づいてサービス要求の種類を特定する。
次に要求情報取得部113は、計測が終了すると(ステップ902:YES)、計測された全てのサービス要求の数に対する、サービス要求の種類別のサービス要求の数の割合(要求分布)を算出する(ステップ905)。
次に要求情報取得部113は、算出した上記要求分布を、システムID、計測ID、サービス要求名に対応づけて要求分布蓄積テーブル114に書き込む(登録、記憶)(ステップ906)。
<計測結果の一例>
図3に示した要求分布蓄積テーブル144の内容は、以上に説明した負荷情報取得部111及び要求情報取得部113の処理により取得される計測結果の一例である。図3に示す計測結果のうち符号311〜313で示すデータは分散オブジェクトシステムの本番運用開始前の時点等において試験的に取得したデータである。なお、図2の符号311〜313で示すデータは、サービス名が「WEB_001」、「AP_001」、「DB_001」に対応する各サービスオブジェクトを、それぞれ一台の情報処理装置132で実行させている場合に計測されたデータ、すなわち、各サービスオブジェクトの実行多重度が1である場合に計測されたデータである。
このうち符号311で示すデータは、計測IDが「1」についてのデータである。この計測ではサービス要求名が「REQ_001」であるサービス要求のみを分散オブジェクトシステム131に入力している。従ってサービス要求の割合は、サービス要求名が「REQ_001」であるサービス要求のみが「100%」となっており、他のサービス要求についてのサービス要求の割合は「0%」になっている。また符号312で示すデータは、計測IDが「2」についてのデータである。この計測では、サービス要求名が「REQ_002」であるサービス要求のみを分散オブジェクトシステムに入力している。従ってサービス要求の割合はサービス要求名が「REQ_002」であるサービス要求のみが「100%」となっており、他のサービス要求についてのサービス要求の割合は「0%」になっている。さらに符号313で示すデータは、計測IDが「1」についてのデータである。この計測ではサービス要求名が「REQ_003」であるサービス要求のみを分散オブジェクトシステムに入力している。従ってサービス要求の割合はサービス要求名が「REQ_003」であるサービス要求のみが「100%」となっており、他のサービス要求についてのサービス要求の割合は「0%」になっている。
以上の符号311〜313で示すデータは、分散オブジェクトシステム131に対してサービス要求を1種類ずつ入力した場合に計測される負荷分布に対応する。つまり本実施例では、符号311〜313で示すデータのように、本番運用開始前等の時点において、効果指標をあらかじめ取得しておくために、サービス要求を1種類ずつ入力した場合について計測を行い、その場合の負荷分布を算出している。
図2の符号211〜213で示すデータは、図3の符号311〜313に示す計測に対応して時間的に並行して取得される負荷分布である。符号211で示す計測IDが「1」の計測では、サービス名が「WEB_001」であるサービスオブジェクトの負荷割合が「80%」、サービス名が「AP_001」であるサービスオブジェクトの負荷割合が「20%」、サービス名が「DB_001」であるサービスオブジェクトの負荷割合が「0%」となっている。また符号212で示す計測IDが「2」の計測では、サービス名が「WEB_001」であるサービスオブジェクトの負荷割合が「40%」、サービス名が「AP_001」であるサービスオブジェクトの負荷割合が「40%」、サービス名が「DB_001」であるサービスオブジェクトの負荷割合が「20%」となっている。さらに符号213で示す計測IDが「3」の計測では、サービス名が「WEB_001」であるサービスオブジェクトの負荷割合が「10%」、サービス名が「AP_001」であるサービスオブジェクトの負荷割合が「30%」、サービス名が「DB_001」であるサービスオブジェクトの負荷割合が「60%」となっている。
上述したようにこの実施例では、分散オブジェクトシステム131の形態として、オンラインブックストアを実現しているWEB3階層システムを想定しており、「REQ_001」は書籍の検索処理についてのサービス要求である。また「REQ_002」は書籍の注文処理についてのサービス要求である。また「REQ_003」は店舗スタッフによる売り上げ照会処理についてのサービス要求である。このため、図2の符号211〜213のデータに示すように、サービス要求名が「REQ_001」のサービス要求の処理では「WEB_001」のサービスオブジェクトの負荷の割合が高く、サービス要求名が「REQ_002」のサービス要求の処理では「AP_001」の負荷の割合が高く、サービス要求名が「REQ_003」のサービス要求の処理では「DB_001」の負荷の割合が高くなっている。
<効果指標算出部115の処理>
図10は効果指標算出部115によって行われる処理の流れを説明するフローチャートである。効果指標算出部115は、負荷分布蓄積テーブル112及び要求分布蓄積テーブル114に書き込まれているデータに基づいて、図4に示す効果指標テーブル116を生成する。
効果指標算出部115は、効果指標テーブル116の生成に際しまず図3に示す要求分布蓄積テーブル114からサービス要求の割合の欄304に「100%」が設定されているデータを抽出する(ステップ1001)。
次に効果指標算出部115は抽出したデータを対象としてステップ1003〜1006の処理を実行する。
ステップ1002において、効果指標算出部115はステップ1001において抽出した全てのデータについてステップ1003〜1006に示す処理を行ったかどうかを判断している(ステップ1002)。
ステップ1003において、効果指標算出部115は抽出したデータの計測IDに対応するデータを負荷分布蓄積テーブル112から抽出する(ステップ1003)。ステップ1004では、ステップ1003において抽出した全てのデータについての処理を行ったかどうかを判断している。
ステップ1005において、効果指標算出部115はステップ1001において取得したデータとステップ1003で取得したデータとに基づいて、追加効果指標及び削除効果指標を算出する(ステップ1005)。なお、この追加効果指標及び削除効果指標を算出するための具体的な仕組みについては後述する。
次に効果指標算出部115は、算出した追加効果指標、及び削除効果指標を、システムID、サービス要求名、及びサービス名に対応づけて効果指標テーブル116に書き込む(登録、記憶)(ステップ1006)。以上のようにして効果指標テーブル116が生成される。
<追加効果指標及び削除効果指標を算出する仕組み>
ここでは効果指標算出部115の上記ステップ1005において行われる、追加効果指標及び削除効果指標を算出する仕組みについて説明する。
追加効果指標はサービスオブジェクトの実行多重度を1つ増やしたときの効果を示す指標である。図2に示す負荷分布蓄積テーブル112に示すように、例えばサービス名が「WEB_001」であるサービスオブジェクトは、もともと実行多重度を1として動作していたときの負荷割合は「80」であった。ここで当該サービスオブジェクトの実行多重度を1つ増やして2にすると、負荷割合は「80/2=40」になる。また、実行多重度を3にすると、負荷割合は「80/3=27」となる。
本実施例では、サービスオブジェクトの実行多重度を1つ増やした時の実行多重度を増やす前後における負荷割合の差を追加効果指標としている。すなわち、上記の例では、実行多重度を1から2に増やした場合の追加効果指標は「80−40=40」として求められ、実行多重度を2から3に増やした場合の追加効果指標は「40−27=13」として求められる。つまり多重度を1増やしたときの追加効果指標は、「(負荷割合/現多重度)−(負荷割合/(現多重度+1))」として定式化できる。図4の効果指標テーブル116の符号411〜419に示すデータにおける追加効果指標404の欄の値は、このようにして求めた追加効果指標である。
上述したように、図3の符号311〜313で示すデータは、分散オブジェクトシステム131に、サービス要求を1種類ずつ入力した場合における要求割合であり、図2の符号211〜213で示すデータは、サービス要求を1種類ずつ入力した場合における負荷分布である。すなわち、図4の効果指標テーブル116の符号411〜419に示すデータにおける追加効果指標404の欄の値は、各サービスオブジェクトの実行多重度を1から2に増やした場合に対応する追加効果指標である。
削除効果指標も追加効果指標と同様の方法により、「(負荷割合/(現多重度+1))−(負荷割合/現多重度)」と定式化でき、実行多重度を1つ減らした場合における削除効果指標を上式から求めることができる。但し、図4の効果指標テーブル116における符号411〜419に対応するデータは、図2に示す符号211〜213に示すデータ及び図3に示す符号311〜313に示すデータに基づくものであり、各サービス要求の実行多重度が1である場合に計測した負荷分布及び要求分布に基づくデータであるのでいずれのサービスオブジェクトについても実行多重度をこれ以上減らすことができない。図4の効果指標テーブル116の符号411〜419に対応するデータにおける削除効果指標の欄405に値が設定されていないのはこのためである。
<実行多重度の制御>
次に分散オブジェクトシステムの稼働中において、実行多重度制御部117の構成決定部1171により行われる、各サービスオブジェクトの実行多重度を決定する処理の流れを図11に示すフローチャートを参照しつつ説明する。
なお、ここではサービス名が「WEB_001」のサービスオブジェクトの実行多重度が3、サービス名が「AP_001」のサービスオブジェクトの実行多重度が1、サービス名が「DB_001」のサービスオブジェクトの実行多重度が1の状態で分散オブジェクトシステムが稼働中であるものとする。また「稼働中」には分散オブジェクトシステムの本番稼働開始時も含まれるものとする。またその際の分散オブジェクトシステムの要求分布は図3の符号314で示すデータ、すなわち、サービス要求名が「REQ_001」のサービス要求の要求割合が60%、サービス要求名が「REQ_002」のサービス要求の要求割合が30%、サービス要求名が「REQ_003」のサービス要求の要求割合が10%であるものとする。さらに効果指標テーブル116の内容は、図16に示す状態であるものとする。また図16において追加効果指標404の括弧内の表記は、実行多重度の変化を示している。例えば図16の符号1611で示すデータの場合、追加効果指標の欄404には、「(3→4)」と示されているが、これはサービス名「WEB_001」を実現しているサービスオブジェクトの多重度を3から4に変化させたことを示している。
図11に示すフローチャートにおいて、まず最新の要求分布を取得するために、構成決定部1171は、要求分布蓄積テーブル114から最新の要求分布(図3の符号314で示すデータ)を取得する(ステップ1101)。
次に構成決定部1171はステップ1101で取得したデータについてステップ1103〜1105の処理を行ったかどうかを判断する(ステップ1102)。
次に構成決定部1171は図16に示す効果指標テーブル116から特定のサービス要求名に対応するデータ(例えば、図16において符号1611〜1613で示すサービス要求名が「REQ_001」であるデータ)を取得する(ステップ1103)。
次に構成決定部1171はステップ1103で取得した全てのデータについてステップ1105の処理を行ったかどうかを判断する(ステップ1104)。
次に構成決定部1171は、ステップ1103において取得した各データについて、図16に示す効果指標テーブル116の追加効果指標と、前記各データのサービス要求名に対応するステップ1101において取得される要求分布蓄積テーブル114のサービス要求の割合304の欄に設定されている値との積を求める(ステップ1105)。そして構成決定部1171は、求めた積をメモリ12C上に管理されている100で除した値を図12に示すテーブル(以下、テンポラリテーブル1200と称する)にサービス名及びサービス要求名に対応づけて書き込む(登録、記憶)。なお、テンポラリテーブル1200は、構成決定部1171によって一時的にメモリ上に作成されるテーブルである。テンポラリテーブル1200には、サービス名が設定されるサービス名の欄1201、サービス要求名が設定されるサービス要求名の欄1202、追加効果指標が設定される追加効果指標の欄1203、削除効果指標が設定される削除効果指標の欄1204が設けられている。
ステップ1105の処理について詳述する。例えばステップ1103において、要求分布蓄積テーブル114から取得される最新の要求分布が図3の符号314で示すデータであり、サービス要求名が「REQ_001」、サービス名が「WEB_001」に基づいて追加効果指標を求める場合(図4における符号411で示すデータ(図16の効果指標テーブル116における符号1611で示すデータ))、追加効果指標は、図3の符号314で示すデータから取得される「60」と、図16の符号1611で示すデータの追加効果指標である「6.7」との積を100で除した値、すなわち「60」×「6.7」/100=「4.0」として求めることができる。また削除効果指標についても同様にして図3の符号314で示すデータから取得される「60」と、図16の符号1611で示すデータの削除効果指標である「−13.3」との積を100で除した値、すなわち、「60」×「−13.7」/100=「−8.0」として求めることができる。
従ってこの場合に構成決定部1171は、テンポラリテーブル1200のサービス名の欄1201に「WEB_001」を、サービス要求名の欄1202に「REQ_001」を、追加効果指標1203に「4.0」を、削除効果指標1204に「−8.0」を、それぞれ書き込む(図12の符号1211で示すデータ)。同様の処理により、次のステップ1106が実行される直前では、図16に示す例ではサービス要求名について3通り、サービス名について3通りが存在するので、結局、テンポラリテーブル1200には、計9つのデータエントリが作成される(図12の符号1211〜1219で示すデータ)。
ステップ1106では、構成決定部1171はテンポラリテーブル1200を参照し、テンポラリテーブル1200の追加効果指標1203及び削除効果指標1204の合計値(全体効果指標)をサービス名ごとに算出し、その結果をテンポラリテーブル1200に書き込む(登録、記憶)(ステップ1106)。本実施例では、サービス名は「WEB_001」、「AP_001」、「DB_001」の3通りあるので、構成決定部1171は3件のデータエントリをテンポラリテーブル1200に追記する(図12の符号1220〜1222で示すデータ)。
次に構成決定部1171は、図5に示すクオータテーブル118を参照し、分散オブジェクトシステム131で使用可能な情報処理装置132の最大数を取得する(ステップ1107)。上記の例の場合では、システムIDが「SYS_001」の分散オブジェクトシステム131に関するものであるので、図5の符号511で示すデータが構成決定部1171により参照され、この場合、構成決定部1171は使用可能な情報処理装置132の最大数として「5」を取得する。
ステップ1108では、構成決定部1171はステップ1106で算出した合計値の大きい順、すなわち、算出した全体効果指標(図12の符号1220〜1222で示すデータの追加効果指標もしくは削除効果指標)の大きいものから順に、対応する実行多重度の変化のさせ方を適用していくことにより、分散オブジェクトシステム131におけるサービスオブジェクトの実行多重度を制御する。またこの制御において、構成決定部1171は、使用可能リソースの量、すなわちリソース(情報処理装置132)の台数から定まる上限値(この場合は全てのサービスオブジェクト135〜137において利用される情報処理装置132の合計が5台)の範囲内で上記実行多重度の制御方法を決定する(ステップ1108)。なお、構成決定部1171は、決定した内容をメモリ12C等に記憶する。
例えば図12に示すテンポラリテーブル1200の場合、構成決定部1171は「AP_001」という名前のサービスオブジェクトを実行する情報処理装置132を追加することが最も効果的であると判断する。そして最大マシン台数が5台であるところ、現在の使用マシン台数502が5台であるので、この場合には構成決定部1171は上記サービスオブジェクトを実行する情報処理装置132を追加することができず、そのような実行多重度の変化のさせ方を適用することはできないことを把握する。
一方、図12における符号1221に示すデータにおけるサービス名が「AP_001」のサービスオブジェクトについての追加効果指標は「13.5」であり、符号1220で示すサービス名が「WEB_001」のサービスオブジェクトについての削除効果指標は「−10.2」であり、サービス名が「AP_001」のサービスオブジェクトについての追加効果指標は「13.5」は、サービス名が「WEB_001」のサービスオブジェクトについての削除効果指標は「−10.2」よりも大きい(なお、比較は絶対値で行われる)。つまり現在の構成を維持するよりも、「WEB_001」の多重度を3から2に減じ、かつ、「AP_001」の多重度を1から2に増やした方が、分散オブジェクトシステム全体の負荷バランスは改善されると判断される。従ってこの場合、構成決定部1171はそのように実行多重度の変化のさせ方が適用されるように実行多重度の制御方法を決定する(ステップ1108)。
<リソース割り当て部1172の処理>
リソース割り当て部1172は、以上のようにして構成決定部1171により決定された実行多重度の制御方法に従って、各サービスオブジェクトの実行多重度の制御に関する処理を行う。図13はリソース割り当て部1172によって行われる処理の流れを説明するフローチャートである。
リソース割り当て部1172は、まず構成決定部1171が決定した実行多重度の制御方法を示す情報を取得する(ステップ1301)。なお、実行多重度の制御方法を示す情報には、例えばサービス名とそのサービス名に対応するサービスオブジェクトが実行される情報処理装置132のマシンIDとの対応付けを示す情報が含まれる。
次にリソース割り当て部1172は、現在のシステム構成から構成決定部1171が決定した実行多重度の制御方法に対応する新規のシステム構成に移行させた場合に、実行多重度を減じるサービスオブジェクトが存在するかどうかを調べる(ステップ1302)。ここで実行多重度を減じるサービスオブジェクトが存在する場合には、リソース割り当て部1172はそのサービスオブジェクトが動作している情報処理装置132のマシンIDを調べ、図6に示すリソース管理テーブル120のそのマシンIDに対応するシステムIDの欄602の内容を削除する(ステップ1303)。
次にリソース割り当て部1172は、分散オブジェクトシステム131に対して前記サービスオブジェクトの実行多重度を減じるための削除コマンドを生成し、生成した削除コマンドを、メモリ12Cに記憶しているプログラム配付・設定のためのスクリプトの管理領域に書き込む(ステップ1304)。図14にプログラム配付・設定スクリプト1401の一例を示している。なお、プログラム配付・設定スクリプト1401の機能の詳細については後述する。
次にリソース割り当て部1172は、現在のシステム構成から新規のシステム構成に移行させるにあたり、実行多重度を増加させるサービスオブジェクトが存在するかどうかを調べる(ステップ1305)。実行多重度を増加させるサービスオブジェクトが存在する場合には、リソース割り当て部1172は、さらに割当可能なリソース(情報処理装置132)が存在するかどうかを調べる(ステップ1306)。ここで割当可能なリソースが存在する場合には、実行多重度を増加させるサービスオブジェクトを実現させる情報処理装置132を決定し、その情報処理装置132のマシンIDをリソース管理テーブル120の対応するマシンIDの欄601に対応するシステムIDの欄602に、現在処理対象となっている分散オブジェクトシステム131のIDである「SYS_001」を書き込む(ステップ1307)。そしてリソース割り当て部1172は、分散オブジェクトシステム131にサービスオブジェクトの実行多重度を増加させるための追加コマンドを生成し、生成した追加コマンドをプログラム配付・設定スクリプト1401に書き込む(ステップ1308)。
図14は前記リソース割り当て部1172によって生成されるプログラム配付・設定スクリプト1401の一例である。図14において、符号1411で示す文字列は、システムIDが「SYS_001」である分散オブジェクトシステム131においてマシンIDが「M_004」の情報処理装置132によって実行されているサービス名が「WEB_001」のサービスオブジェクトを削除するコマンド(削除コマンド)に対応する。また、符号1412で示す文字列は、識別情報が「LB_001」として設定されている負荷分散装置133の現在の設定からシステムIDが「SYS_001」の分散オブジェクトシステム131における「WEB_001」への振分け設定(該当のサービスオブジェクトを呼び出し可能にする設定)を解除(該当のサービスオブジェクトを呼び出し不可能にする設定)するコマンド(再設定コマンド)に対応する。さらに符号1413で示す文字列は、マシンIDが「M_004」の情報処理装置132にシステムIDが「SYS_001」の分散オブジェクトシステム131のサービス名が「DB_001」のサービスオブジェクトを実現するためのプログラムをインストールするコマンド(追加コマンド)に対応する。また、符号1414で示す文字列は「NS_001」という識別情報で設定されているネーミングサービス134の設定内容に、システムIDが「SYS_001」である分散オブジェクトシステム131のサービス名が「DB_001」であるサービスオブジェクトへの振分け設定(該当のサービスオブジェクトを呼び出し可能にする設定)を追加するコマンド(再設定コマンド)に対応する。
<プログラム等の配布・設定>
次にプログラム配付・設定部1173は、リソース割り当て部1172により生成されたプログラム配付・設定スクリプト1401を実行し、構成決定部1171により決定された実行多重度の制御方法に従って、分散オブジェクトシステム131の実行多重度を実際に制御する。図15は実行多重度を制御するためにプログラム配付・設定部1173によって行われる処理の流れを説明するフローチャートである。
まずプログラム配付・設定部1173は、リソース割り当て部1172から配付・設定スクリプト1401を取得する(ステップ1501)。
次にプログラム配付・設定部1173は、プログラム配付・設定スクリプト1401に記述されているコマンドを一行ずつ処理する。ステップ1502では、プログラム配付・設定スクリプト1401に記述されている全てのコマンドを処理したかどうかを判断している。ステップ1503において、プログラム配付・設定部1173は、スクリプト1401からコマンドを順に読み取っている(ステップ1503)。
ステップ1504では、プログラム配付・設定部1173は、ステップ1503で読み取ったコマンドが削除コマンドであるかどうかを判断している(ステップ1504)。ここで読み取ったコマンドが削除コマンドである場合には(ステップ1504:YES)、プログラム配付・設定部1173は指定されたリソース(情報処理装置132)に対して削除命令を送信する(ステップ1505)。その後はステップ1502の処理に戻る。ステップ1504において、読み取ったコマンドが削除コマンドでなかった場合には(ステップ1504:NO)、ステップ1506の処理に進む。
ステップ1506では、プログラム配付・設定部1173は、ステップ1505で読み取ったコマンドが追加コマンドであるかどうかを判断する(ステップ1506)。ここで追加コマンドであった場合には(ステップ1506:YES)、プログラム配付・設定部1173は、プログラムリポジトリ122から指定されたサービス名に対応するプログラムファイルやデータを読み出して、指定されたリソース(情報処理装置132)に転送する(ステップ1507)。またこのとき、前記リソース(情報処理装置132)に対して転送した前記プログラムファイルやデータについてのインストール処理を実行するように指示する命令を送信する(ステップ1508)。その後はステップ1502の処理に戻る。ステップ1506の判断において、ステップ1505で読み取ったコマンドが削除コマンドでない場合には(ステップ1506:NO)、ステップ1509の処理に進む。
ステップ1509の処理では、プログラム配付・設定部1173は、ステップ1505で読み取ったコマンドが再設定コマンドであるかどうかを判断する(ステップ1509)。ここで再設定コマンドである場合には(ステップ1509:YES)、プログラム配付・設定部1173は負荷分散装置133またはネーミングサービス134の再設定を行う(1510)。再設定コマンドでない場合には(ステップ1509:NO)、ステップ1502の処理に戻る。
なお、サービスオブジェクト135〜137を実現するために必要となるプログラムファイルやデータをリソースに配布もしくは削除する方法は、以上に紹介した方法以外にも考えられる。例えば、特許文献6に開示されている方法を用いることができる。
以上に説明したように、本発明の実行多重度制御システム101によれば、負荷分布や要求分布に応じてサービスオブジェクト135〜137の実行多重度が適切に制御される。また実行多重度の制御は分散オブジェクトシステムが各サービスオブジェクトを実行するために利用可能なリソースの量に応じて定まる上限値の範囲内で行われる。従ってリソースを無駄に消費することなく適切に負荷分散を実現することができる。また本発明の実行多重度制御システム101によれば、複数のサービスオブジェクト135〜137の実行多重度が統括的に制御されるので、分散オブジェクトシステム131の全体の負荷バランスも適切に制御されることになる。また分散オブジェクトシステム131にサービス要求を1種類ずつ入力した場合における分散オブジェクトシステム131を構成している各サービスオブジェクトの負荷をあらかじめ計測しておくため、稼働当初等においてもサービスオブジェクト135〜137の実行多重度を適切に制御することができる。
すなわち、本発明の実行多重度制御システム101によれば、複数のサービスオブジェクトを含んで実現される分散オブジェクトシステムにおいて、システム全体としての負荷バランスを保ちつつ、リソースを無駄に消費することなく適切に負荷分散を行うことができる。
本実施例で説明する実行多重度制御システム101は、基本的な構成については実施例1と同様である。本実施例で説明する実行多重度制御システム101は、求めた負荷分布や要求分布を累積的に記憶しておき、最新に取得した要求分布に類似する要求分布を記憶しておいた要求分布の中から抽出し、抽出した前記要求分布に対応づけて記憶されているサービスオブジェクトと最新のサービスオブジェクトとの間の実行状態及び負荷分布の差分を求める。そして、実行多重度制御システム101は、求めた実行状態及び負荷分布の差分から、サービスオブジェクトの実行多重度を変化させた場合における、分散オブジェクトシステム131の処理効率の改善効果を示す効果指標(全体効果指標)をサービスオブジェクトごとに算出して記憶し、算出した全体効果指標の大きいものから順に前記実行多重度の制御方法を適用していくことにより当該分散オブジェクトシステム131を構成しているサービスオブジェクトの実行多重度を制御する。
なお、本実施例で説明する実行多重度制御システム101によれば、実施例1で説明したようにテスト環境を設けてサービス要求の種類を1つずつ固定して測定を行う必要がなく、実行多重度の制御のために必要な全ての処理を分散オブジェクトシステム131の本番稼働中等において行うことができる。
図17は効果指標算出部(差分取得部)115によって行われる処理の流れを説明するフローチャートである。まず効果指標算出部115は、要求分布蓄積テーブル114及び負荷分布蓄積テーブル112から、最新の要求分布と負荷分布、及びシステム構成とを取得する(ステップ1701)。
次に効果指標算出部115は、要求分布蓄積テーブル114から最新の要求分布に類似する要求分布のデータを抽出する(ステップ1702)。
ステップ1702では、類似する全ての要求分布を抽出する。ここで類似する要求分布であるかどうかの判断は、例えば同じ種類のサービス要求同士の要求割合の差を合計し、その差が閾値以上であるかどうかを判断するといった方法で行うことができる。また各サービス要求の要求割合をパラメータとしてクラスタ分析手法における類似度の算出方法を適用して類似度を算出し、算出した類似度に応じて類否を判断することもできる。なお、本実施例では、最新の要求分布は図3符号316で示す内容、すなわち、REQ_001が「42」、REQ_002が「19」、REQ_003が「39」であり、この要求分布に類似する要求分布が図3の符号315に示す、REQ_001が「40」、REQ_002が「21」、REQ_003が「39」の要求分布であるものとする。すなわち、ステップ1702では、類似する要求分布として図3の符号315で示すデータが抽出されることになる。
ステップ1703では、効果指標算出部115は、ステップ1702において抽出した全てのデータについてステップ1704〜1708の処理を行ったかどうかを判断している。
次に効果指標算出部115は、ステップ1702で抽出したデータから計測IDを取得し、負荷分布蓄積テーブル112から、取得した前記計測IDと同じ計測IDのデータを抽出する(ステップ1704)。例えば図2の符号314で示すデータの計測IDは「122」であるので、この場合にはステップ1704の処理により図2の符号215で示すデータが抽出される。
次に効果指標算出部115は、ステップ1701で取得した最新の負荷分布とステップ1704で抽出した類似の負荷分布とを参照し、システム構成(サービスオブジェクトを実行するための構成)の差分を調べる(ステップ1706)。ここでは、図2の負荷分布蓄積テーブル112の符号216で示すデータに、サービス名が「WEB_001」であるデータが2重に含まれていることから、現在のシステム構成はサービス名が「WEB_001」のサービスオブジェクトの実行多重度が2であることがわかる。同様にしてサービス名が「AP_001」のサービスオブジェクトの実行多重度が1、サービス名が「DB_001」のサービスオブジェクトの実行多重度が1であることがわかる。また抽出された過去データのシステム構成は、図2の負荷分布蓄積テーブル112の符号215のデータから、サービス名が「WEB_001」のサービスオブジェクトの実行多重度が1、サービス名が「AP_001」のサービスオブジェクトの実行多重度が1、サービス名が「DB_001」のサービスオブジェクトの実行多重度が1であることが把握される。従ってこの場合には、効果指標算出部115はシステム構成の差分として「WEB_001」について多重度が1だけ異なっていると判断する。
次に効果指標算出部115は、ステップ1701で取得した現在の負荷分布とステップ1704で抽出した類似の負荷分布とを参照し、負荷分布の差分を調べる(ステップ1707)。ここで図2の負荷分布蓄積テーブル112の符号216で示すデータ(現在の負荷分布)を参照すると、サービス名が「WEB_001」であるサービスオブジェクトの負荷分布が「30」であり、サービス名が「AP_001」であるサービスオブジェクトの負荷分布が「28」であり、サービス名が「DB_001」であるサービスオブジェクトの負荷分布が「11」となっている。また同図の符号215で示すデータ(過去データの負荷分布)を見ると、サービス名が「WEB_001」のサービスオブジェクトの負荷分布が「61」、サービス名が「AP_001」のサービスオブジェクトの負荷分布が「27」、サービス名が「DB_001」のサービスオブジェクトの負荷分布が「12」となっている。そこで効果指標算出部115は負荷分布の差分を、サービス名が「WEB_001」のサービスオブジェクトについては「61−30=31」と、サービス名が「AP_001」のサービスオブジェクトについては「27−28=−1」と、サービス名が「DB_001」のサービスオブジェクトについては「12−11=1」と、それぞれ算出する。
ここで上述したように、効果指標テーブル116の追加効果指標はサービスオブジェクトの多重度を1だけ増やした場合にどの程度の効果があるかを示す値である。そこで、効果指標算出部115は、上記の結果から、サービス名が「WEB_001」のサービスオブジェクトの追加効果指標を「31」とし、この追加効果指標を効果指標テーブル116に書き込む(ステップ1708)。なお、サービス名が「AP_001」及び「DB_001」のサービスオブジェクトについても同様にして効果指標算出部115により追加効果指標が効果指標テーブル116に書き込まれる。なお、サービス名が「AP_001」及び「DB_001」のサービスオブジェクトについての追加効果指標はそれぞれ「1」と「−1」と小さいので追加効果指標を「0」として取り扱うようにしてもよい。
また実施例1では、図12のテンポラリテーブル1200の生成に際し、要求分布ごとに追加効果指標や削除効果指標を算出した後、各要求分布について算出された追加効果指標や削除効果指標を合計するようにしている。これに対し本実施例では、効果指標テーブル116のサービス名の欄403、追加効果指標の欄404、及び削除効果指標の欄405の内容を、図12のテンポラリテーブル1200のサービス名の欄1201、追加効果指標の欄1203、削除効果指標の欄1204の内容として用いる。従って本実施例では、実施例1で説明した図11の構成決定部1171のフローチャートにおけるステップ1102〜1105は必要なく、その分、処理が簡素化され処理負荷も少なくて済むことになる。
分散オブジェクトシステム131の種類によっては、似たような要求分布が一定の周期で繰り返し現れることがある。例えばオンライン系業務システムでは、通常、勤務時間帯には多量のトランザクションが発生するが、夜間等の時間帯においてはトランザクションの数は減少する。本実施例で説明する実行多重度制御システム101は、要求分布蓄積テーブル114に登録されているデータに基づいて未来の時間帯における要求分布を予測し、その予測に基づいて分散オブジェクトシステム131を構成しているサービスオブジェクト135〜137の実行多重度を制御する。なお、本実施例における実行多重度制御システム101の処理は、要求分布を予測する以外の処理については、上述の実施例1および実施例2と同様の処理により行われる。
図18は本実施例の実行多重度制御システム101が記憶している要求分布予測テーブル1801である。要求分布予測テーブル1801には、システムIDが設定されるシステムIDの欄1811、サービス要求名が設定されるサービス要求名の欄1812、時間帯が設定される時間帯の欄1813、サービス要求数が設定されるサービス要求の数の欄1814が設けられている。
本実施例の実行多重度制御システム101における要求情報取得部113は、その処理の一環として、時間帯ごとにサービス要求名ごとのサービス要求の数を計数し、計数した結果を要求分布予測テーブル1801に書き込む(登録、記憶)。
構成決定部1171が実行多重度の制御方法を決定する際には、実行多重度制御システム101を実現している情報処理装置132のシステムクロックから現在時刻を取得し、要求分布予測テーブル1801に登録されている現在時刻以降の時間帯の過去の要求分布に基づいて、未来の時間帯における効果指標を算出する。そして算出した効果指標に基づいて実施例1または実施例2と同様の処理を行うことにより、実行多重度の制御方法を決定する。なお、この仕組みは例えば図11の構成決定部1171の処理におけるステップ1101の処理を上記処理で置き換えることにより行うようにすることができる。
本実施例の実行多重度制御システム101によれば、サービス要求の数の分布が一定周期で繰り返し現れるような性格の分散オブジェクトシステム131について、要求情報取得部によって累積的に記憶される過去のサービス要求の数の分布に基づいて、未来の時間帯における効果指標を算出することができる。すなわち、過去のデータに基づいて未来の時間帯における効果指標を予測することができる。
本実施例で説明する実行多重度制御システム101は、入力装置14C等のユーザインタフェースから要求分布を受け付けて、受け付けた要求分布に基づいて実行多重度の制御方法を決定する。なお、本実施例の実行多重度制御システム101における処理は、入力装置14C等のユーザインタフェースから要求分布を受け付けること以外の処理については、例えば上述の実施例1および実施例2と同様の処理により行われる。
例えばオンラインブックセンタの夜間等の運用に際しては、ブックストアの営業に係わるサービスオブジェクトの実行多重度を減らし、逆に売り上げデータの集計等の処理に係わるサービスオブジェクトの実行多重度を増やしたいことがある。ここで書籍の検索のサービス要求名が「REQ_001」であり、書籍の注文のサービス要求名が「REQ_002」であり、売り上げデータの集計処理の要求名が「REQ_003」であった場合、ユーザは「REQ_003」の要求割合を意図的に増やした要求分布をユーザインタフェースから実行多重度制御システム101に入力する。実行多重度制御システム101は、上記要求分布を受け付けて、受け付けた要求分布を構成決定部1171に与える。構成決定部1171は、この要求分布に基づいて実行多重度の制御方法を決定する。なお、本実施例の仕組みは、例えば図11の構成決定部1171のフローチャートにおいて、ステップ1101で要求分布蓄積テーブル114から最新の要求分布を取得する代わりに、上述のような所望の要求分布を読み込むようにすることにより行うことができる。
本実施例の実行多重度制御システム101によれば、サービスオブジェクト135〜137の実行多重度の制御について、ユーザの個々のニーズに対応したきめ細かい制御を行うことが可能となる。
なお、本発明の一実施形態について説明したが、以上の実施形態の説明は本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明はその趣旨を逸脱することなく、変更、改良され得ると共に本発明にはその等価物が含まれることは勿論である。
本発明の一実施形態として説明する実行多重度制御システム101、及び前記実行多重度制御システムによる制御の対象となる分散オブジェクトシステム131の概略的な構成を示す図である。 本発明の一実施形態として説明する分散オブジェクトシステム131を実現している情報処理装置1〜5(符号132a〜132e)、負荷分散装置133、及びネーミングサービス134のハードウエアとして用いられる典型的なコンピュータのブロック図を示す図である。 本発明の一実施形態として説明する実行多重度制御システム101のハードウエアとして用いられる典型的なコンピュータのブロック図を示す図である。 本発明の一実施形態として説明する負荷分布蓄積テーブル112の一例を示す図である。 本発明の一実施形態として説明する要求分布蓄積テーブル114の一例を示す図である。 本発明の一実施形態として説明する効果指標テーブル116の一例を示す図である。 本発明の一実施形態として説明するクオータテーブル118の一例を示す図である。 本発明の一実施形態として説明するリソース管理テーブル120の一例を示す図である。 本発明の一実施形態として説明するプログラムリポジトリ122の一例を示す図である。 本発明の一実施形態として説明する負荷情報取得部111によって行われる処理の流れを説明するフローチャートを示す図である。 本発明の一実施形態として説明する要求情報取得部113によって行われる処理の流れを説明するフローチャートを示す図である。 本発明の一実施形態として説明する効果指標算出部115によって行われる処理の流れを説明するフローチャートを示す図である。 本発明の一実施形態として説明する構成決定部1171によって行われる処理の流れを説明するフローチャートを示す図である。 本発明の一実施形態として説明する構成決定部1171によって一時的にメモリ上に作成されるテンポラリテーブル1200の一例を示す図である。 本発明の一実施形態として説明するリソース割り当て部1172によって行われる処理の流れを説明するフローチャートを示す図である。 本発明の一実施形態として説明するリソース割り当て部1172によって生成されるプログラム配付・設定スクリプト1401の一例を示す図である。 本発明の一実施形態として説明するプログラム配付・設定部1173によって行われる処理の流れを説明するフローチャートを示す図である。 本発明の一実施形態として説明する効果指標テーブル116の一例を示す図である。 本発明の一実施形態として説明する効果指標算出部(差分取得部)115によって行われる処理の流れを説明するフローチャートを示す図である。 本発明の一実施形態として説明する要求分布予測テーブル1801の一例を示す図である。
符号の説明
101 実行多重度制御システム
131 分散オブジェクトシステム
111 負荷情報取得部
112 負荷分布蓄積テーブル
113 要求情報取得部
114 要求分布蓄積テーブル
115 効果指標算出部
116 効果指標テーブル
117 実行多重度制御部
1171 構成決定部
1172 リソース割り当て部
1173 プログラム配布・設定部
118 クオータテーブル
120 リソース管理テーブル
122 プログラムリポジトリ
132 情報処理装置1〜5
133 負荷分散装置
134 ネーミングサービス
135〜137 サービスオブジェクト
140 クライアント装置

Claims (18)

  1. CPUがプログラムを実行することにより実現されるオブジェクトである複数のサービスオブジェクトによって構成される分散オブジェクトシステムにおける、前記サービスオブジェクトの実行多重度を動的に制御する実行多重度制御システムであって、
    少なくとも1台以上のコンピュータと、
    前記コンピュータがプログラムを実行することにより実現される、
    前記分散オブジェクトシステムにサービス要求を1種類ずつ入力した場合における前記分散オブジェクトシステムを構成している各サービスオブジェクトの負荷を計測し、計測した前記負荷に基づいて前記分散オブジェクトシステムを構成している前記サービスオブジェクトの負荷分布を求めて記憶する負荷情報取得部と、
    前記負荷分布に基づいて、前記サービスオブジェクトの実行多重度を前記サービスオブジェクトごとに変化させた場合における前記分散オブジェクトシステムの処理効率の改善効果を示す指標である効果指標を算出して記憶する効果指標算出部と、
    前記分散オブジェクトシステムに入力されるサービス要求の数を前記サービス要求の種類ごとに計測し、計測した前記サービス要求の数に基づいて前記各サービス要求の数の分布である要求分布を求め、求めた前記要求分布を記憶する要求情報取得部と、
    前記効果指標と前記要求分布とに基づいて、前記サービスオブジェクトの実行多重度を変化させた場合における、前記分散オブジェクトシステムの処理効率の改善効果を示す指標である全体効果指標を算出して記憶する全体効果指標算出部と、
    算出された前記全体効果指標の絶対値が大きいものから順に前記実行多重度の制御方法を適用していくことにより前記分散オブジェクトシステムにおける複数の前記サービスオブジェクトの実行多重度の増加および削減の制御する実行多重度制御部と、
    を備えることを特徴とする実行多重度制御システム。
  2. CPUがプログラムを実行することにより実現されるオブジェクトである複数のサービスオブジェクトによって構成される分散オブジェクトシステムにおける、前記サービスオブジェクトの実行多重度を動的に制御する実行多重度制御システムであって、
    少なくとも1台以上のコンピュータと、
    前記コンピュータがプログラムを実行することにより実現される、
    前記分散オブジェクトシステムを構成している各サービスオブジェクトの負荷を計測し、計測した前記負荷に基づいて前記分散オブジェクトシステムを構成している前記サービスオブジェクトの負荷分布を求め、求めた前記負荷分布を累積的に記憶する負荷情報取得部と、
    前記分散オブジェクトシステムに入力されるサービス要求の数を前記サービス要求の種類ごとに計測し、計測した前記サービス要求の数に基づいて、前記各サービス要求の数の分布である要求分布を求め、求めた前記要求分布を前記計測時における前記サービスオブジェクトの実行状態に対応づけて累積的に記憶する要求情報取得部と、
    最新に取得した要求分布に類似する分布を前記要求情報取得部が記憶している前記要求分布の中から抽出し、抽出した前記要求分布に対応づけて記憶されている前記サービスオブジェクトと最新の前記サービスオブジェクトとの間の実行多重度の制御状態及び負荷分布の差分を求める差分取得部と、
    前記実行多重度の制御状態の差分と前記負荷分布の差分とに基づいて、前記サービスオブジェクトの実行多重度を変化させた場合における、前記分散オブジェクトシステムの処理効率の改善効果を示す指標である全体効果指標を算出して記憶する全体効果指標算出部と、
    算出した前記全体効果指標の絶対値が大きいものから順に前記実行多重度の制御方法を適用していくことにより前記分散オブジェクトシステムにおける複数の前記サービスオブジェクトの実行多重度の増加及び削減の制御する実行多重度制御部と、
    を備えることを特徴とする実行多重度制御システム。
  3. 請求項1または2に記載の実行多重度制御システムであって、
    前記実行多重度制御部は、前記分散オブジェクトシステムが前記各サービスオブジェクトを実行するために利用可能なリソースの量を記憶しており、
    前記実行多重度制御部は、前記各サービスオブジェクトの実行多重度が前記利用可能なリソースの量に応じて定まる上限値を超えない範囲で前記実行多重度を変化させること、
    を特徴とする実行多重度制御システム。
  4. 請求項3に記載の実行多重度制御システムであって、
    前記リソースの量は、前記分散オブジェクトシステムを実現するために利用可能な情報処理装置の台数であること、
    を特徴とする実行多重度制御システム。
  5. 請求項1または2に記載の実行多重度制御システムであって、
    前記分散オブジェクトシステムは、前記サービスオブジェクトの識別情報とそのサービスオブジェクトを実現するためのプログラムが格納されている位置を示す位置情報との対応づけを記憶し、サービスオブジェクトから送信されてくる問い合わせ要求に応じて、前記問い合わせ要求に付帯して送信されてくる識別情報に対応づけて記憶している前記位置情報を前記サービスオブジェクトに対して応答するオブジェクトであるネーミングサービスを有し、
    前記ネーミングサービスは、前記識別情報の一つについて複数の前記位置情報を記憶し、同じ前記識別情報が付帯する2つ以上の異なる前記問い合わせ要求について、前記各問い合わせ要求に応じて前記サービスオブジェクトに対して応答する前記位置情報を変化させることにより前記サービスオブジェクトの処理を多重化し、
    前記実行多重度制御部は、前記ネーミングサービスが前記識別情報に対応づけて記憶している前記位置情報の数を変化させることにより前記多重度を変化させること、
    を特徴とする実行多重度制御システム。
  6. 請求項1または2に記載の実行多重度制御システムであって、
    前記要求情報取得部は、時間帯ごとの前記要求分布を累積的に記憶し、
    前記全体効果指標算出部は、現在時刻以降の時間帯の過去の前要求記分布に基づいて、未来の時間帯における前記全体効果指標を算出すること、
    を特徴とする実行多重度制御システム。
  7. 請求項1または2に記載の実行多重度制御システムであって、
    前記要求情報取得部は、ユーザインタフェースから前記要求分布を受け付けること、
    を特徴とする実行多重度制御システム。
  8. 請求項1または2に記載の実行多重度制御システムであって、
    前記分散オブジェクトシステムはWeb3階層システムであり、
    前記サービスオブジェクトは、前記Web3階層システムにおける各階層に対応する機能を実現するオブジェクトであること、
    を特徴とする実行多重度制御システム。
  9. 請求項1または2に記載の実行多重度制御システムであって、
    前記効果指標は、
    (負荷割合/現多重度)−(負荷割合/(現多重度+1)を算出することにより求められる追加効果指標、または
    (負荷割合/(現多重度+1))−(負荷割合/現多重度)を算出することにより求められる削除効果指標であること
    を特徴とする実行多重度制御システム。
  10. 請求項9に記載の実行多重度制御システムであって、
    前記全体効果指標は、前記要求分布と前記追加効果指標との積、または前記要求分布と前記削除効果指標との積を算出することにより求められること
    を特徴とする実行多重度制御システム。
  11. CPUがプログラムを実行することにより実現されるオブジェクトである複数のサービスオブジェクトによって構成される分散オブジェクトシステムにおける、前記サービスオブジェクトの実行多重度を動的に制御する実行多重度制御システムの制御方法であって、
    少なくとも1台以上のコンピュータに、
    前記分散オブジェクトシステムにサービス要求を1種類ずつ入力した場合における前記分散オブジェクトシステムを構成している各サービスオブジェクトの負荷を計測し、計測した前記負荷に基づいて前記分散オブジェクトシステムを構成している前記サービスオブジェクトの負荷分布を求めて記憶させ、
    前記負荷分布に基づいて、前記サービスオブジェクトの実行多重度を前記サービスオブジェクトごとに変化させた場合における前記分散オブジェクトシステムの処理効率の改善効果を示す指標である効果指標を算出して記憶させ、
    前記分散オブジェクトシステムに入力されるサービス要求の数を前記サービス要求の種類ごとに計測し、計測した前記サービス要求の数に基づいて前記各サービス要求の数の分布である要求分布を求め、求めた前記要求分布を記憶させ、
    前記効果指標と前記要求分布とに基づいて、前記サービスオブジェクトの実行多重度を変化させた場合における、前記分散オブジェクトシステムの全体としての処理効率の改善効果を示す指標である全体効果指標を算出して記憶させ、
    算出された前記全体効果指標の絶対値が大きいものから順に前記実行多重度の制御方法を適用していくことにより前記分散オブジェクトシステムにおける複数の前記サービスオブジェクトの実行多重度の増加および削減の制御させること、
    を備えることを特徴とする実行多重度制御システムの制御方法。
  12. CPUがプログラムを実行することにより実現されるオブジェクトである複数のサービスオブジェクトによって構成される分散オブジェクトシステムにおける、前記サービスオブジェクトの実行多重度を動的に制御する実行多重度制御システムの制御方法であって、
    少なくとも1台以上のコンピュータに、
    前記分散オブジェクトシステムを構成している各サービスオブジェクトの負荷を計測し、計測した前記負荷に基づいて前記分散オブジェクトシステムを構成している前記サービスオブジェクトの負荷分布を求め、求めた前記負荷分布を累積的に記憶させ、
    前記分散オブジェクトシステムに入力されるサービス要求の数を前記サービス要求の種類ごとに計測し、計測した前記サービス要求の数に基づいて、前記各サービス要求の数の分布である要求分布を求め、求めた前記要求分布を前記計測時における前記サービスオブジェクトの実行状態に対応づけて累積的に記憶させ、
    最新に取得した要求分布に類似する分布を前記要求情報取得部が記憶している前記要求分布の中から抽出し、抽出した前記要求分布に対応づけて記憶されている前記サービスオブジェクトと最新の前記サービスオブジェクトとの間の実行多重度の制御状態及び負荷分布の差分を求めさせ、
    前記実行多重度の制御状態の差分と前記負荷分布の差分とに基づいて、前記サービスオブジェクトの実行多重度を変化させた場合における、前記分散オブジェクトシステムの全体としての処理効率の改善効果を示す指標である全体効果指標を算出して記憶させ、
    算出した前記全体効果指標の絶対値が大きいものから順に前記実行多重度の制御方法を適用していくことにより前記分散オブジェクトシステムにおける複数の前記サービスオブジェクトの実行多重度の増加および削減の制御させること、
    を備えることを特徴とする実行多重度制御システムの制御方法。
  13. 請求項11または12に記載の実行多重度制御システムの制御方法であって、
    前記効果指標は、
    (負荷割合/現多重度)−(負荷割合/(現多重度+1)を算出することにより求められる追加効果指標、または
    (負荷割合/(現多重度+1))−(負荷割合/現多重度)を算出することにより求められる削除効果指標であること
    を特徴とする実行多重度制御システムの制御方法。
  14. 請求項13に記載の実行多重度制御システムの制御方法であって、
    前記全体効果指標は、前記要求分布と前記追加効果指標との積、または前記要求分布と前記削除効果指標との積を算出することにより求められること
    を特徴とする実行多重度制御システムの制御方法。
  15. CPUがプログラムを実行することにより実現されるオブジェクトである複数のサービスオブジェクトによって構成される分散オブジェクトシステムにおける、前記サービスオブジェクトの実行多重度を動的に制御する実行多重度制御システムを実現するためのプログラムであって、
    少なくとも1台以上のコンピュータに、
    前記分散オブジェクトシステムにサービス要求を1種類ずつ入力した場合における前記分散オブジェクトシステムを構成している各サービスオブジェクトの負荷を計測し、計測した前記負荷に基づいて前記分散オブジェクトシステムを構成している前記サービスオブジェクトの負荷分布を求めて記憶する機能と、
    前記負荷分布に基づいて、前記サービスオブジェクトの実行多重度を前記サービスオブジェクトごとに変化させた場合における前記分散オブジェクトシステムの処理効率の改善効果を示す指標である効果指標を算出して記憶する機能と、
    前記分散オブジェクトシステムに入力されるサービス要求の数を前記サービス要求の種類ごとに計測し、計測した前記サービス要求の数に基づいて前記各サービス要求の数の分布である要求分布を求め、求めた前記要求分布を記憶する機能と、
    前記効果指標と前記要求分布とに基づいて、前記サービスオブジェクトの実行多重度を変化させた場合における、前記分散オブジェクトシステムの全体としての処理効率の改善効果を示す指標である全体効果指標を算出して記憶する機能と、
    算出された前記全体効果指標の絶対値が大きいものから順に前記実行多重度の制御方法を適用していくことにより前記分散オブジェクトシステムにおける複数の前記サービスオブジェクトの実行多重度の増加および削減の制御する機能と、
    を実現するためのプログラム。
  16. CPUがプログラムを実行することにより実現されるオブジェクトである複数のサービスオブジェクトによって構成される分散オブジェクトシステムにおける、前記サービスオブジェクトの実行多重度の動的に制御する実行多重度制御システムを実現するためのプログラムであって、
    少なくとも1台以上のコンピュータに、
    前記分散オブジェクトシステムを構成している各サービスオブジェクトの負荷を計測し、計測した前記負荷に基づいて前記分散オブジェクトシステムを構成している前記サービスオブジェクトの負荷分布を求め、求めた前記負荷分布を累積的に記憶する機能と、
    前記分散オブジェクトシステムに入力されるサービス要求の数を前記サービス要求の種類ごとに計測し、計測した前記サービス要求の数に基づいて、前記各サービス要求の数の分布である要求分布を求め、求めた前記要求分布を前記計測時における前記サービスオブジェクトの実行状態に対応づけて累積的に記憶する機能と、
    最新に取得した要求分布に類似する分布を前記要求情報取得部が記憶している前記要求分布の中から抽出し、抽出した前記要求分布に対応づけて記憶されている前記サービスオブジェクトと最新の前記サービスオブジェクトとの間の実行多重度の制御状態及び負荷分布の差分を求める機能と、
    前記実行多重度の制御状態の差分と前記負荷分布の差分とに基づいて、前記サービスオブジェクトの実行多重度を変化させた場合における、前記分散オブジェクトシステムの全体としての処理効率の改善効果を示す指標である全体効果指標を算出して記憶する機能と、
    算出した前記全体効果指標の絶対値が大きいものから順に前記実行多重度の制御方法を適用していくことにより前記分散オブジェクトシステムにおける複数の前記サービスオブジェクトの実行多重度の増加および削減の制御する機能と、
    を実現するためのプログラム。
  17. 請求項15または16に記載のプログラムであって、
    前記効果指標は、
    (負荷割合/現多重度)−(負荷割合/(現多重度+1)を算出することにより求められる追加効果指標、または
    (負荷割合/(現多重度+1))−(負荷割合/現多重度)を算出することにより求められる削除効果指標であること
    を特徴とするプログラム。
  18. 請求項17に記載のプログラムであって、
    前記全体効果指標は、前記要求分布と前記追加効果指標との積、または前記要求分布と前記削除効果指標との積を算出することにより求められること
    を特徴とするプログラム。
JP2004011106A 2004-01-19 2004-01-19 実行多重度制御システム、実行多重度制御システムの制御方法、及びプログラム Expired - Fee Related JP4223411B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004011106A JP4223411B2 (ja) 2004-01-19 2004-01-19 実行多重度制御システム、実行多重度制御システムの制御方法、及びプログラム
US11/034,438 US7721295B2 (en) 2004-01-19 2005-01-11 Execution multiplicity control system, and method and program for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004011106A JP4223411B2 (ja) 2004-01-19 2004-01-19 実行多重度制御システム、実行多重度制御システムの制御方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2005202894A JP2005202894A (ja) 2005-07-28
JP4223411B2 true JP4223411B2 (ja) 2009-02-12

Family

ID=34805343

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004011106A Expired - Fee Related JP4223411B2 (ja) 2004-01-19 2004-01-19 実行多重度制御システム、実行多重度制御システムの制御方法、及びプログラム

Country Status (2)

Country Link
US (1) US7721295B2 (ja)
JP (1) JP4223411B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2541576C (en) * 2003-10-29 2011-12-20 International Business Machines Corporation Information system, load control method, load control program and recor ding medium
JP4117299B2 (ja) * 2005-02-28 2008-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション サーバの多重度の上限値を制御するための方法、管理サーバ、サーバ、およびプログラム
JP4900881B2 (ja) * 2006-07-10 2012-03-21 日本電気株式会社 コンピュータシステム、管理装置、及びコンピュータプログラム
JP4662068B2 (ja) * 2006-10-06 2011-03-30 日本電気株式会社 リソース分配方法、プログラム、及びリソース分配装置
JP5010314B2 (ja) * 2007-03-16 2012-08-29 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
EP2209282A1 (en) * 2009-01-16 2010-07-21 Telefonaktiebolaget L M Ericsson (publ) A method, device and computer program product for service balancing in an electronic communications system
JP2013164820A (ja) * 2012-02-13 2013-08-22 Fujitsu Ltd 評価支援方法、評価支援プログラムおよび評価支援装置
KR101662137B1 (ko) * 2016-02-26 2016-10-05 주식회사 티맥스 소프트 다수의 데이터 객체들에 대한 트랜잭션을 설정하는 방법, 서버 및 컴퓨터 판독 가능한 기록 매체
JP6757708B2 (ja) * 2017-10-31 2020-09-23 株式会社日立製作所 情報処理装置及び構成要素の管理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05143559A (ja) 1991-04-17 1993-06-11 Toshiba Corp 分散処理システムにおける負荷分散方法
GB2281793A (en) 1993-09-11 1995-03-15 Ibm A data processing system for providing user load levelling in a network
JP2000172654A (ja) 1998-12-11 2000-06-23 Hitachi Software Eng Co Ltd 分散オブジェクト管理システム
US6393458B1 (en) * 1999-01-28 2002-05-21 Genrad, Inc. Method and apparatus for load balancing in a distributed object architecture
EP1049307A1 (en) * 1999-04-29 2000-11-02 International Business Machines Corporation Method and system for dispatching client sessions within a cluster of servers connected to the World Wide Web
JP2001092766A (ja) 1999-09-20 2001-04-06 Hitachi Ltd クライアントサーバシステムおよびネーミングサービス方法
JP3861538B2 (ja) 1999-12-15 2006-12-20 株式会社日立製作所 プログラム配付管理システム
JP2002091936A (ja) 2000-09-11 2002-03-29 Hitachi Ltd 負荷分散装置及び負荷見積もり方法
JP2003178040A (ja) 2001-12-10 2003-06-27 Hitachi Information Systems Ltd ウェブサイトの構成決定支援方法
US20030195962A1 (en) * 2002-04-10 2003-10-16 Satoshi Kikuchi Load balancing of servers
US20040143659A1 (en) * 2002-04-26 2004-07-22 Milliken Russell C. System and method for a scalable notification server providing

Also Published As

Publication number Publication date
US20050172303A1 (en) 2005-08-04
JP2005202894A (ja) 2005-07-28
US7721295B2 (en) 2010-05-18

Similar Documents

Publication Publication Date Title
JP4593078B2 (ja) 異なる計算機環境におけるジョブ実行方法及びそのプログラム
JP4066932B2 (ja) 予測に基づいた計算機リソース配分方法
US8607236B2 (en) Information processing system
US7793308B2 (en) Setting operation based resource utilization thresholds for resource use by a process
JP4377369B2 (ja) リソース割当調停装置およびリソース割当調停方法
WO2012056596A1 (ja) 計算機システム及び処理制御方法
US11687373B2 (en) Flexible computing
US20090307329A1 (en) Adaptive file placement in a distributed file system
JP7176209B2 (ja) 情報処理装置
JP2012079242A (ja) 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム
US12217088B2 (en) Autoscaling and throttling in an elastic cloud service
JP6582445B2 (ja) シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
JP4223411B2 (ja) 実行多重度制御システム、実行多重度制御システムの制御方法、及びプログラム
WO2018131556A1 (ja) リソース設定制御装置、リソース設定制御システム、リソース設定制御方法、および、コンピュータ読み取り可能記録媒体
JP2006277458A (ja) リソース割当管理装置およびリソース割当方法
US20230401235A1 (en) Low latency ingestion into a data system
US8751660B2 (en) Apparatus and a method for distributing load, and a non-transitory computer readable medium thereof
US20060224731A1 (en) Method for measuring server performance, system for measuring server performance and computer programs therefor
JP2005092862A (ja) 負荷分散方法及びクライアント・サーバシステム
JP2003296153A (ja) ストレージシステムおよびそのためのプログラム
JP5045576B2 (ja) マルチプロセッサシステム及びプログラム実行方法
JP3977298B2 (ja) グリッドコンピューティングシステム
JP5056346B2 (ja) 情報処理装置、情報処理システム、仮想サーバの移動処理の制御方法、及び、プログラム
JP4001727B2 (ja) ファイルアクセス制御プログラム、ファイルアクセス制御装置およびファイルアクセス制御方法
JP2005339287A (ja) プログラム実行システム、中央装置、プログラム実行方法及びコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080926

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081119

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111128

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121128

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131128

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees