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

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

▶ 東芝テック株式会社の特許一覧

<>
  • 特開-サーバ装置及びプログラム 図1
  • 特開-サーバ装置及びプログラム 図2
  • 特開-サーバ装置及びプログラム 図3
  • 特開-サーバ装置及びプログラム 図4
  • 特開-サーバ装置及びプログラム 図5
  • 特開-サーバ装置及びプログラム 図6
  • 特開-サーバ装置及びプログラム 図7
  • 特開-サーバ装置及びプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024110653
(43)【公開日】2024-08-16
(54)【発明の名称】サーバ装置及びプログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20240808BHJP
【FI】
G06F9/50 150D
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023015359
(22)【出願日】2023-02-03
(71)【出願人】
【識別番号】000003562
【氏名又は名称】東芝テック株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】岩井 寿記
(57)【要約】
【課題】本発明が解決しようとする課題は、複数のクライアント端末からの処理依頼を、複数のサーバ装置で分担して処理することが可能なサーバ装置及びプログラムを提供することである。
【解決手段】ネットワーク接続されるクライアント端末から処理依頼を受け付ける受付手段と、前記処理依頼に係る処理を実行する実行手段と、前記クライアント端末を識別する第1識別子と、自己のサーバ装置の現在の負荷状況に応じた優先度と、乱数からなる指標値とを関連付けたデータセットを生成する生成手段と、前記生成手段で生成されたデータセットと、他のサーバ装置で生成されたデータセットとを相互に参照可能に共有する共有手段と、前記データセットの各々に含まれる前記優先度及び前記指標値に基づいて、前記クライアント端末からの処理依頼を担当するサーバ装置を決定する決定手段と、前記決定手段が決定したサーバ装置が自己のサーバ装置である場合に、前記処理依頼に係る処理を前記実行手段に実行させる制御手段と、を備える。
【選択図】図6
【特許請求の範囲】
【請求項1】
ネットワーク接続されたクライアント端末から処理依頼を受け付ける受付手段と、
前記処理依頼に係る処理を実行する実行手段と、
前記クライアント端末を識別する第1識別子と、自己のサーバ装置の現在の負荷状況に応じた優先度と、乱数からなる指標値とを関連付けたデータセットを生成する生成手段と、
前記生成手段で生成されたデータセットと、他のサーバ装置で生成されたデータセットとを相互に参照可能に共有する共有手段と、
前記データセットの各々に含まれる前記優先度及び前記指標値に基づいて、前記クライアント端末からの処理依頼を担当するサーバ装置を決定する決定手段と、
前記決定手段が決定したサーバ装置が自己のサーバ装置である場合に、前記処理依頼に係る処理を前記実行手段に実行させる制御手段と、
を備えるサーバ装置。
【請求項2】
前記生成手段は、自己のサーバ装置が処理を担当するクライアント端末の台数に応じて設定した優先度を含むデータセットを生成する、
請求項1に記載のサーバ装置。
【請求項3】
前記決定手段は、前記処理依頼を担当するサーバ装置を識別する第2識別子を、当該処理依頼を送信した前記クライアント端末の前記第1識別子に係る前記データセットに含めて記憶し、
前記制御手段は、自己のサーバ装置の前記第2識別子に関連付けられた前記第1識別子に対応するクライアント端末から処理依頼があった場合、当該処理依頼に係る処理を前記実行手段に実行させる、
請求項1に記載のサーバ装置。
【請求項4】
ネットワークからクライアント端末が切り離された場合、当該クライアント端末の第1識別子に関連付けられた優先度に基づいて、当該優先度より下位の優先度が設定されたデータセットの優先度を1上昇させる更新手段を更に備える、
請求項3に記載のサーバ装置。
【請求項5】
前記生成手段は、ネットワークから他のサーバ装置が切り離された場合、当該他のサーバ装置の第2識別子に関連付けられた第1識別子の各々について前記データセットを再度生成し、
前記決定手段は、前記生成手段が再度生成した前記データセットに基づいて、前記ネットワークに残存するサーバ装置との間で、前記第1識別子の各々に対応するクライアント端末からの処理依頼を担当するサーバ装置を決定する、
請求項3に記載のサーバ装置。
【請求項6】
サーバ装置のコンピュータを、
クライアント端末から送信された処理依頼を受け付ける受付手段と、
前記クライアント端末を識別する識別子と、自己のサーバ装置の現在の負荷状況に応じた優先度と、乱数からなる指標値とを関連付けたデータセットを生成する生成手段と、
前記生成手段で生成されたデータセットと、他のサーバ装置で生成されたデータセットとを相互に参照可能に共有する共有手段と、
前記データセットの各々に含まれる前記優先度及び前記指標値に基づいて、前記クライアント端末からの処理依頼を担当するサーバ装置を決定する決定手段と、
前記決定手段が決定したサーバ装置が自己のサーバ装置である場合に、前記処理依頼に係る処理を実行する実行手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、サーバ装置及びプログラムに関する。
【背景技術】
【0002】
近年、IoT(Internet of Things)技術の普及に伴い、ネットワークに接続可能な機器が普及している。例えば、店舗内に設けられるセンサ機器やPOS端末等の複数のクライアント端末を、ネットワークを通じて複数のサーバ装置に接続するようなことが行われている。
【0003】
また、従来、例えばDDS(Data Distribution Service)通信方式等、宛先を指定することなくデータを送信することができる通信方式が存在している。このような通信方式を用いる通信環境では、クライアント端末はサーバ装置を指定することなくデータの処理依頼をサーバ装置に行うことができるため、クライアント端末やサーバ装置の追加や削除等を容易に行うことができる。
【0004】
しかしながら、上述の通信環境では、クライアント端末から処理依頼を送信されると、同一のネットワークに接続された全てのサーバ装置が処理依頼を受け取ることになるため、サーバ装置の各々で処理が実行されることになる。そのため、複数のサーバ装置では処理を分担することができず、効率的に処理を行うことができないという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする課題は、複数のクライアント端末からの処理依頼を、複数のサーバ装置で分担して処理することが可能なサーバ装置及びプログラムを提供することである。
【課題を解決するための手段】
【0006】
実施形態のサーバ装置は、受付手段と、実行手段と、生成手段と、共有手段と、決定手段と、制御手段とを備える。受付手段は、ネットワーク接続されるクライアント端末から処理依頼を受け付ける。実行手段は、前記処理依頼に係る処理を実行する。生成手段は、前記クライアント端末を識別する第1識別子と、自己のサーバ装置の現在の負荷状況に応じた優先度と、乱数からなる指標値とを関連付けたデータセットを生成する。共有手段は、前記生成手段で生成されたデータセットと、他のサーバ装置で生成されたデータセットとを相互に参照可能に共有する。決定手段は、前記データセットの各々に含まれる前記優先度及び前記指標値に基づいて、前記クライアント端末からの処理依頼を担当するサーバ装置を決定する。制御手段は、前記決定手段が決定したサーバ装置が自己のサーバ装置である場合に、前記処理依頼に係る処理を前記実行手段に実行させる。
【図面の簡単な説明】
【0007】
図1図1は、実施形態に係るデータ処理システムの一例を示す図である。
図2図2は、実施形態に係るサーバ装置のハードウェア構成の一例を示す図である。
図3図3は、実施形態に係るサーバ装置の機能構成の一例を示す図である。
図4図4は、実施形態に係るデータ処理システムでのデータ処理の一例を説明するための図である。
図5図5は、実施形態に係るデータ処理システムでのデータ処理の一例を説明するための図である。
図6図6は、実施形態に係るデータ処理システムでのデータ処理の一例を説明するための図である。
図7図7は、実施形態のサーバ装置で実行されるデータ処理の一例を示すフローチャートである。
図8図8は、変形例1に係るサーバ装置の動作を説明するための図である。
【発明を実施するための形態】
【0008】
以下、図面を参照して実施形態のサーバ装置及びプログラムについて説明する。以下に説明する実施形態では、スーパーマーケット等の店舗に設けられるシステムに適用した例を説明するが、適用先のシステムはこの実施形態に限定されるものではない。
【0009】
図1は、実施形態に係るデータ処理システムの一例を示す図である。図1に示すように、データ処理システム1は、複数のクライアント装置10と、複数のサーバ装置20とを有する。クライアント装置10とサーバ装置20とは、有線又は無線のネットワークNを介して通信可能に接続される。
【0010】
なお、データ処理システム1の構成は、図1の例に限定されないものとする。クライアント装置10及びサーバ装置20の台数は、例えば、システム構成の変更等に応じて任意に増減させることが可能である。
【0011】
クライアント装置10は、クライアント端末の一例である。クライアント装置10は、店舗に設けられる。例えば、クライアント装置10は、撮像装置等のセンサ機器等であり、店舗に関するデータを取得する。一例として、クライアント装置10は、店舗内に設けられる監視カメラであり、店舗内の所定の領域を撮像した撮像データを取得する。また、他の例として、クライアント装置10は、商品に付されたコードシンボルや値引きシール等の読み取りを行う読取装置であり、読み取り対象の商品を撮像した撮像データを取得する。また、他の例として、クライアント装置10は、POS端末等の商品販売データ処理装置であり、商取引に係るデータを取得する。
【0012】
また、クライアント装置10は取得したデータをネットワークNに送信することで、当該データに対する処理依頼をサーバ装置20に行う。ここで、クライアント装置10は、宛先(サーバ装置20)を指定することなくデータの処理依頼をネットワークN上に送信する。なお、処理依頼の送信に用いる通信方法は特に問わず、例えば、DDS通信方式やブロードキャスト方式等、公知の通信方式を用いることが可能である。
【0013】
サーバ装置20は、サーバ装置の一例である。サーバ装置20は、クライアント装置10から送信される処理依頼を受け付け、当該処理依頼のデータに対し所定の処理を実行する。ここで、複数のサーバ装置20は、クラウド(cloud computing)を構成するものであってもよい。
【0014】
なお、上記したデータ処理システム1において、サーバ装置20は、例えば高性能なプロセッサや画像処理に特化したハードウェア構成等、クライアント装置10よりも処理能力の高いハードウェア構成を備えることが好ましい。これにより、データ処理システム1では、クライアント装置10では処理負荷の高い画像処理や画像認識等の処理を、サーバ装置20で行うことができる。
【0015】
次に、データ処理システム1を構成する主要な装置の構成について説明する。図2は、サーバ装置20のハードウェア構成の一例を示す図である。図2に示すように、サーバ装置20は、CPU(Central Processing Unit)21と、ROM(Read Only Memory)22と、RAM(Random Access Memory)23とを備える。
【0016】
CPU21は、プロセッサの一例であり、サーバ装置20の各部を統括的に制御する。ROM22は、各種プログラムを記憶する。RAM23は、プログラムや各種データを展開するワークスペースである。
【0017】
CPU21、ROM22、及びRAM23は、バス等を介して接続され、コンピュータ構成の制御部200を構成する。制御部200では、CPU21が記憶部24等に記憶されたプログラムをRAM23に展開し、展開したプログラムに従って動作することによって、各種の処理を実行する。
【0018】
また、サーバ装置20は、記憶部24及び通信部25等を備える。
【0019】
記憶部24は、フラッシュメモリやSSD、HDD(Hard Disk Drive)等の補助記憶装置である。記憶部24は、CPU21が実行可能な各種のプログラムや各種の設定情報を記憶する。また、記憶部24は、自己のサーバ装置20が処理を担当するクライアント装置10を記憶し管理するための管理テーブル241を記憶する。管理テーブル241のデータ構成については後述する。
【0020】
通信部25は、ネットワークNに接続可能な有線又は無線の通信インタフェースである。通信部25は、ネットワークNに接続されるクライアント装置10及び他のサーバ装置20との間で各種データの送受信を行う。
【0021】
次に、サーバ装置20の機能構成について説明する。図3は、サーバ装置20の機能構成の一例を示す図である。図3に示すように、サーバ装置20は、処理依頼受付部201と、処理実行部202と、実行制御部203とを機能構成として備える。具体的には、サーバ装置20の制御部200(CPU21)は、ROM22又は記憶部24に記憶されたプログラムを実行することで上述した機能構成を実現する。
【0022】
なお、本実施形態では、サーバ装置20の機能構成は、サーバ装置20のプロセッサとプログラムとの協働により実現されるソフトウェア構成とするが、これに限らず、機能構成の一部又は全てを専用回路等で実現するハードウェア構成としてもよい。
【0023】
処理依頼受付部201は、受付手段の一例である。処理依頼受付部201は、ネットワークNに接続されたクライアント装置10から処理依頼を受け付ける。処理依頼受付部201は、受け付けた処理依頼をRAM23又は記憶部24に確保された記憶領域に記憶する。ここで、処理待ちメモリに記憶される処理依頼は、後述する処理実行部202による処理が未実施の処理依頼となる。
【0024】
なお、処理依頼は、処理対象のデータの他、依頼元のクライアント装置10を識別可能な識別子(以下、クライアントIDともいう)を包含、又は関連付けて保持するものとする。ここで、クライアントIDは第1識別子の一例である。クライアントIDは、例えばIPアドレスやホスト名等を用いることができる。
【0025】
処理実行部202は、実行手段の一例である。処理実行部202は、処理依頼受付部201が受け付けた処理依頼に係る処理を実行する。具体的には、処理実行部202は、実行制御部203の制御の下、実行対象の処理依頼を記憶領域から読み出し、当該処理依頼のデータに対し所定の処理を実行する。
【0026】
ここで、処理実行部202が実行する処理内容は特に問わないものとする。例えば、処理実行部202は、画像認識技術等の公知の技術を用いることで、店舗内を撮像したデータから顧客の状態や行動を認識してもよい。また、例えば、処理実行部202は、画像認識技術等の公知の技術を用いることで、商品を撮像したデータから商品に付された値引きシール等のマークを検出し、当該マークが表す値引き金額等を認識する処理を行ってもよい。また、例えば、処理実行部202は、商取引に係るデータから、顧客の購入行動等を分析する処理を行ってもよい。
【0027】
また、処理実行部202は、処理依頼の処理結果を所定の出力先に出力する。処理結果の出力先は特に問わず、例えば記憶部24に記憶したり、図示しない表示装置や印刷装置に出力したりする構成としてもよい。また、例えば、処理実行部202は、処理依頼の処理結果を依頼元のクライアント装置10に送信する構成としてもよい。
【0028】
実行制御部203は、生成手段、共有手段、決定手段、制御手段、及び更新手段の一例である。実行制御部203は、他のサーバ装置20と協働することで、自己のサーバ装置20が処理を担当するクライアント装置10を決定する。そして、実行制御部203は、自己のサーバ装置20が担当するクライアント装置10から処理依頼があると、当該処理依頼に係る処理を処理実行部202に実行させる。
【0029】
具体的には、実行制御部203は、管理テーブル241を用いることで、他のサーバ装置20と協働しながら自己及び他のサーバ装置20が担当するクライアント装置10を決定する。以下、図4図6を参照しながら、実行制御部203の動作例について説明する。図4図6は、データ処理システム1でのデータ処理の一例を説明するための図である。
【0030】
ここで、クライアントID:1~4のクライアント装置10は、図1に示した4台のクライアント装置10に対応する。また、サーバID:1、2のサーバ装置20は、図1に示した2台のサーバ装置20に対応する。ここで、サーバIDは、サーバ装置20の各々を識別するための識別子であり、第2識別子の一例である。サーバIDは、例えばIPアドレスやホスト名等を用いることができる。また、図中に示す管理テーブル241は、サーバID:1、2のサーバ装置20に記憶された管理テーブル241のデータ構成の一例を示すものである。
【0031】
なお、以下では、クライアントID:1~4のクライアント装置10を、クライアントID:1~4を用いて表したり、サーバID:1、2のサーバ装置20を、サーバID:1、2を用いて表したりする。
【0032】
まず、図4に示すように、クライアントID:1から処理依頼が送信されると、サーバID:1、2の各々において、処理依頼受付部201が処理依頼を受け付ける。処理依頼を受け付けたサーバID:1、2の各々では、実行制御部203が、依頼元のクライアントID:1が管理テーブル241に登録されているか否かを判定する。
【0033】
クライアントID:1が管理テーブル241に未登録の場合、実行制御部203は、依頼元のクライアントID:1と、自己のサーバ装置20における優先度と、乱数からなる指標値と、処理依頼を受け付けた日時を示す更新日時とを関連付けたデータセットを生成し、管理テーブル241に登録する。
【0034】
ここで、優先度には、自己のサーバ装置20の現在の負荷状況に応じた値が設定される。具体的には、優先度には、自己のサーバ装置20が処理を担当するクライアント装置10の台数に応じた値が設定され、担当する台数が少ないほど優先度が高く設定される。図4では、サーバID:1、2の何れもが担当する台数が0の状態を示しており、最も高い優先度「1」が設定された例を示している。
【0035】
また、指標値は、自己及び他のサーバ装置20で優先度が同値となった場合に使用されるものである。図4では、サーバID:1の指標値が「001」、サーバID:2の指標値が「999」に設定された例を示している。なお、指標値の生成に係る乱数アルゴリズムは特に問わないものとするが、サーバ装置20間で同値とならない程度の桁数を有した乱数を生成することが好ましい。
【0036】
続いて、実行制御部203は、自己のサーバ装置20が保持する管理テーブル241と、他のサーバ装置20で保持する管理テーブル241とを相互に参照可能に共有する。ここで、共有方法は特に問わず、例えば、サーバ装置20間で管理テーブル241を送受信することで相互に参照可能としてもよい。なお、本実施形態では、管理テーブル241を参照可能に共有するものとするが、サーバ装置20の各々で生成したデータセットを相互に参照可能に共有してもよい。
【0037】
続いて、実行制御部203は、自己及び他のサーバ装置20で設定された優先度及び指標値に基づき、クライアントID:1の処理依頼を何れのサーバ装置20で担当するかを決定する。具体的には、サーバID:1、2の実行制御部203は、自己及び他のサーバ装置20で設定された優先度を比較し、その比較結果(優先度の高低)に基づきクライアントID:1の処理を担当するサーバ装置20を決定する。図4では、優先度はともに最上位の「1」となるため、サーバID:1、2の実行制御部203は、取得した指標値に基づいてクライアントID:1の担当を決定する。
【0038】
具体的には、サーバID:1、2の実行制御部203は、自己及び他のサーバ装置20で設定された指標値を比較し、その比較結果に基づいてクライアントIDの処理を担当するサーバ装置20を決定する。例えば、最小の指標値が設定されたサーバ装置20が担当するよう予め定められている場合、図4では、サーバID:1の指標値がサーバID:2の指標値よりも低くなるため、サーバID:1がクライアントID:1の処理を担当する。なお、担当決定に係るルールはサーバ装置20の各々で共通であるとする。
【0039】
この場合、サーバID:1の実行制御部203は、クライアントID:1を自己のサーバ装置20が処理を担当する担当クライアントに設定する。例えば、サーバID:1の実行制御部203は、自己のサーバ装置20のサーバID:1をクライアントID:1のデータセットに含めて管理テーブル241に登録することで、担当クライアントに設定する。
【0040】
また、サーバID:2の実行制御部203は、クライアントID:1を自己のサーバ装置20が処理を担当しない非担当クライアントに設定する。例えば、サーバID:2の実行制御部203は、サーバID:1をクライアントID:1のデータセットに含めて管理テーブル241に登録することで、非担当クライアントに設定する。図4では、非担当クライアントのデータセットにハッチングを施して表している(図5図6も同様)。
【0041】
なお、担当クライアント及び非担当クライアントの設定方法は、上記例に限らないものとする。例えば、クライアントID:1の処理を担当するサーバID:1の実行制御部203は、クライアントID:1に係るデータセットを管理テーブル241に保持することで、担当クライアントを設定する構成としてもよい。また、例えば、クライアントID:1の処理を担当しないサーバID:2の実行制御部203は、クライアントID:1に係るデータセットを管理テーブル241から削除することで、非担当クライアントを設定する構成としてもよい。また、例えば、担当/非担当を識別可能なフラグ値をデータセットに付すことで、自己のクライアント装置10の担当クライアントか否かを設定してもよい。
【0042】
また、クライアントID:1の処理を担当するサーバID:1の実行制御部203は、クライアントID:1からの処理依頼に係る処理を処理実行部202に実行させる。一方、クライアントID:1の処理を担当しないサーバID:2の実行制御部203は、クライアントID:1からの処理依頼を破棄等することで、処理実行部202が実行しないよう抑制する。
【0043】
次に、図5に示すように、クライアントID:2から、処理依頼が送信されると、サーバID:1、2の各々では、処理依頼受付部201がこの処理依頼を受け付ける。このとき、サーバID:1、2の管理テーブル241が図4の状態であるとする、クライアントID:2は何れも未登録であるため、サーバID:1、2の実行制御部203は上述した担当決定に係る処理を実行する。
【0044】
具体的には、サーバID:1、2の実行制御部203は、自己のサーバ装置20が担当するクライアント装置10の台数に応じた優先度と、指標値と、更新日時とを関連付けたデータセットを生成し、管理テーブル241に登録する。ここで、サーバID:1では、クライアントID:1の1台が担当クライアントに設定されているため、優先度「2」が設定される。また、サーバID:2のサーバ装置20では、担当クライアントは存在しないため、優先度「1」が設定される。
【0045】
次いで、サーバID:1、2の実行制御部203は、管理テーブル241を共有し、クライアントID:2について、自己及び他のサーバ装置20に設定された優先度を比較し、その比較結果に基づいて担当するサーバ装置20を決定する。
【0046】
ここで、サーバID:1、2の管理テーブル241が図5の状態であるとすると、サーバID:2で設定された優先度が、サーバID:1で設定された優先度よりも高いため、サーバID:2がクライアントID:2の処理を担当する。
【0047】
この場合、サーバID:2の実行制御部203は、図5に示すように、クライアントID:2を自己のサーバ装置20の担当クライアントに設定する。一方、サーバID:1の実行制御部203は、図5に示すように、クライアントID:2を自己のサーバ装置20の非担当クライアントに設定する。
【0048】
また、クライアントID:2の処理を担当するサーバID:2の実行制御部203は、クライアントID:2からの処理依頼に係る処理を処理実行部202に実行させる。一方、クライアントID:2の処理を担当しないサーバID:1の実行制御部203は、クライアントID:2からの処理依頼を破棄等することで、処理実行部202が実行しないよう抑制する。
【0049】
このように、実行制御部203は、新規のクライアント装置10から処理依頼を受け付ける度に、自己のサーバ装置20が担当するクライアント装置10の台数に応じた優先度と、指標値とを設定する。そして、実行制御部203は、自己及び他のサーバ装置20に設定された優先度を比較し、優先度がより高いサーバ装置20を担当に決定する。また、優先度が同値となる場合、実行制御部203は、自己及び他のサーバ装置20に設定された指標値の比較結果に基づき、一のサーバ装置20を担当に決定する。
【0050】
上述した担当決定に係る処理により、各サーバ装置20の負荷状況に応じて、担当するクライアント装置10のクライアントIDが割り当てられることになる。例えば、サーバ装置20の各々において担当するクライアント装置10の台数が0台であったとすると、担当するクライアント装置10が1台ずつ割り当てられることになる。また、例えば、初期状態として、一方のサーバ装置20が担当するクライアント装置10の台数が5台、他方のサーバ装置20が担当するクライアント装置10の台数が0台であったとすると、他方のサーバ装置20の担当台数が5台に達するまで、他方のサーバ装置20に新規のクライアント装置10が割り当てられることになる。したがって、上記の構成によれが、複数のサーバ装置20間で担当するクライアント装置10の台数を平準化することができる。
【0051】
なお、図5の状態の後、クライアントID:3、4から順次処理が送信されると、上述した担当決定に係る処理により、クライアントID:3、4を担当クライアントとするサーバ装置20が決定される。そして、サーバID:1、2の各々が記憶する管理テーブル241には、図6に示すように、クライアントID:1~4のうち、自己のサーバ装置20が担当クライアントとするクライアントIDが記憶される。具体的には、管理テーブル241には、自己のサーバ装置20が処理を担当するクライアント装置10のクライアントIDが、優先度順に登録されることになる。
【0052】
サーバID:1、2の実行制御部203は、管理テーブル241に登録されたクライアントIDのクライアント装置10から処理依頼があると、管理テーブル241に基づき、自己のサーバ装置20の担当クライアントか否かを判定する。
【0053】
実行制御部203は、依頼元のクライアント装置10が自己のサーバ装置20の担当クライアントである場合、受け付けた処理依頼を処理実行部202に実行させる。また、実行制御部203は、依頼元のクライアント装置10が自己のサーバ装置20の担当クライアントではない場合、受け付けた処理依頼を破棄等することで、処理実行部202での実行を抑制する。なお、実行制御部203は、依頼元のクライアント装置10が担当クライアントか否かに寄らず、処理依頼を受け付けた日時で該当するデータエントリの更新日時の更新を行うものとする。
【0054】
次に、図7を参照して、サーバ装置20が行うデータ処理の一例について説明する。図7は、サーバ装置20で実行されるデータ処理の一例を示すフローチャートである。
【0055】
まず、処理依頼受付部201は、クライアント装置10から処理依頼を受け付けるまで待機する(ステップS11;No)。処理依頼受付部201が処理依頼を受け付けると(ステップS11;Yes)、ステップS12に移行する。
【0056】
ステップS12では、実行制御部203が、依頼元のクライアント装置10のクライアントIDが管理テーブル241に登録されているか否かを判定する(ステップS12)。管理テーブル241に登録されていないと判定した場合(ステップS12;No)、実行制御部203は、担当するサーバ装置20を決定するため、優先度及び乱数等を設定し、(ステップS13)、依頼元のクライアント装置10のクライアントIDとともにデータセットして管理テーブル241に記憶する。
【0057】
続いて、実行制御部203は、管理テーブル241を他のサーバ装置20と共有することで、自己及び他のサーバ装置20に設定された優先度、指標値を比較する(ステップS14)。ここで、実行制御部203は、優先度が同値か否かを判定し、同値と判定した場合には(ステップS15;Yes)、ステップS16に移行する。ステップS16では、実行制御部203は、自己のサーバ装置20に設定された指標値が他のサーバ装置20に設定された指標値よりも低いか否かを判定する(ステップS16)。
【0058】
他のサーバ装置20よりも指標値が低いと判定した場合(ステップS16;Yes)、実行制御部203は、依頼元のクライアント装置10のクライアントIDを自己のサーバ装置20の担当クライアントに設定し(ステップS17)、ステップS21に移行する。また、他のサーバ装置20の指標値の方が低いと判定した場合(ステップS16;No)、実行制御部203は、依頼元のクライアント装置10のクライアントIDを自己のサーバ装置20の非担当クライアントに設定し(ステップS18)、ステップS22に移行する。
【0059】
また、ステップS15において、優先度が異なると判定した場合(ステップS15;No)、実行制御部203は、自己のサーバ装置20に設定された優先度が他のサーバ装置20に設定された優先度よりも高いか否かを判定する(ステップS19)。
【0060】
他のサーバ装置20よりも優先度が高いと判定した場合には(ステップS19;Yes)、実行制御部203は、依頼元のクライアント装置10のクライアントIDを自己のサーバ装置20の担当クライアントに設定した後(ステップS17)、ステップS21に移行する。また、他のサーバ装置20の優先度の方が高いと判定した場合には(ステップS19;No)、実行制御部203は、依頼元のクライアント装置10のクライアントIDを自己のサーバ装置20の非担当クライアントに設定し(ステップS18)、ステップS22に移行する。
【0061】
ステップS12に戻り、実行制御部203は、管理テーブル241に登録済と判定した場合には(ステップS12;Yes)、自己のサーバ装置20が担当する担当クライアントか否かを判定する(ステップS20)。
【0062】
ここで、担当クライアントである場合(ステップS20;Yes)、実行制御部203は、処理実行部202を制御することで、処理依頼に係る処理を実行させ(ステップS21)、ステップS11に処理を戻す。一方、非担当クライアントである場合(ステップS20;No)、実行制御部203は、処理依頼を破棄した後(ステップS22)、ステップS11に処理を戻す。
【0063】
以上説明したように、サーバ装置20は、新規のクライアント装置10から処理依頼を受け付けると、クライアントIDと、自己のサーバ装置20の現在の負荷状況に応じた優先度と、乱数からなる指標値とを関連付けたデータセットを生成し、管理テーブル241に記憶する。また、サーバ装置20は、管理テーブル241と、共有された他のサーバ装置20の管理テーブル241とを相互に参照し、優先度及び指標値に基づいて処理依頼を担当するサーバ装置20を決定する。そして、サーバ装置20は、決定手段が決定したサーバ装置が自己のサーバ装置20である場合に、処理依頼に係る処理を実行する。
【0064】
このように、本実施形態のサーバ装置20では、自己及び他のサーバ装置20の現在の負荷状況に応じた優先度と、サーバ装置20の各々で相違する指標値とを用いて、クライアント装置10を担当するサーバ装置20を決定する。これにより、例えば、各サーバ装置20の負荷状況が同一であったとしても、何れか一のサーバ装置20を担当に決定することができる。また、各サーバ装置20の負荷状況が異なる場合には、複数のサーバ装置20間で担当するクライアント装置10の台数を平準化することができる。したがって、サーバ装置20では、例えばDDS通信方式等の通信環境で複数のクライアント装置10から処理依頼が送信される状況であったとしても、複数のサーバ装置20で分担して処理することができる。
【0065】
なお、上述した実施形態は、上述した各装置が有する構成又は機能の一部を変更することで、適宜に変形して実施することも可能である。そこで、以下では、上述した実施形態に係るいくつかの変形例を他の実施形態として説明する。なお、以下では、上述した実施形態と異なる点を主に説明することとし、既に説明した内容と共通する点については詳細な説明を省略する。また、以下で説明する変形例は、個別に実施されてもよいし、適宜組み合わせて実施されてもよい。
【0066】
(変形例1)
本変形例では、ネットワークNに接続されるクライアント装置10の台数が変化した場合のサーバ装置20の動作例について説明する。
【0067】
例えば、ネットワーク構成の変更等の理由により、新規のクライアント装置10をネットワークNに追加したり、既存のクライアント装置10をネットワークNから切り離したりするような場合がある。前者の場合、上述した実施形態の処理により、新規のクライアント装置10を担当するサーバ装置20を、複数のサーバ装置20間で平準化して決定することができる。一方、後者の場合には、例えば、サーバ装置20の各々で以下の処理を行うことで、担当クライアントの分担を維持することができる。
【0068】
具体的には、サーバ装置20の実行制御部203は、既存のクライアント装置10がネットワークNから切り離されたことを検出すると、当該クライアント装置10が自己のサーバ装置20の担当クライアントか否かを判定する。担当クライアントである場合、実行制御部203は、管理テーブル241に登録された担当クライアントのうち、ネットワークNから切り離された担当クライアント以外の優先度を再計算することで、優先度が1からの連番となるよう管理テーブル241を更新する。
【0069】
ここで、図8を参照して、クライアント装置10がネットワークNから切り離された場合の実行制御部203の動作例について説明する。図8は、変形例1に係るサーバ装置20の動作を説明するための図であり、管理テーブル241のデータ構成の一例を示している。なお、図8の管理テーブル241では、クライアントID:1~6の6台のクライアント装置10が登録された例を示している。また、説明の便宜上、全てのクライアント装置10が担当クライアントであるとし、担当するサーバ装置20のサーバIDを省略している。
【0070】
図8において、クライアントID:1~6のうち、クライアントID:3のクライアント装置10がネットワークNから切り離されたとする。この場合、実行制御部203は、クライアントID:3より下位の優先度が設定されたクライアントID:4~6の優先度の値をそれぞれ1減算することで、優先度を1上昇させる。これにより、管理テーブル241に登録される担当クライアントの優先度は1からの連番となる。
【0071】
また、上記の処理を行うことにより、新たなクライアント装置10がネットワークNに接続された場合、サーバ装置20の負荷状況を反映した優先度を設定することがきるため、当該クライアント装置10を担当するサーバ装置20を平準化して割り当てることができる。
【0072】
なお、各サーバ装置20の実行制御部203は、既存のクライアント装置10(例えばクライアントID:3)がネットワークNから切り離されことを検出した場合、当該クライアント装置10に係るデータセットを管理テーブル241から削除してもよい。これにより、例えば、クライアントID:3がネットワークNから切り離された後、再び接続されたような場合、上述した実施形態と同様の処理により、クライアントID:3を担当するサーバ装置20を平準化して割り当てることができる。
【0073】
なお、クライアント装置10がネットワークNから切り離されたことを検出する方法は特に問わず、種々の方法を採用することが可能である。例えば、制御部200は、管理テーブル241に記憶されたクライアント装置10の各々と、生存確認用の通信を一定間隔で行うことで、ネットワークNから切り離された状態か否かを判定してもよい。また、例えば、制御部200は、管理テーブル241に記憶されたクライアント装置10の更新日時に基づき、現在日時から所定期間が経過したクライアント装置10を、ネットワークNから切り離された状態と判定してもよい。
【0074】
(変形例2)
上述の変形例1では、クライアント装置10の増減に係る動作例について説明した。本変形例では、サーバ装置20が増減する場合の動作例について説明する。
【0075】
例えば、ネットワーク構成の変更等の理由により、新規のサーバ装置20をネットワークNに追加したり、既存のサーバ装置20をネットワークNから切り離したりする場合がある。このような場合、ネットワークNに接続されたサーバ装置20の各々では、例えば以下の処理を行うことで、データ処理システム1を維持することができる。
【0076】
具体的には、ネットワークNに残存するサーバ装置20の実行制御部203は、他のサーバ装置20がネットワークNから切り離されたことを検知すると、当該他のサーバ装置20の担当クライアントに係るデータセットについて、優先度及び指標値を新たに設定する。そして、実行制御部203は、上述した担当決定に係る処理を、ネットワークNに残存するサーバ装置20間で行うことで、ネットワークNから切り離されたサーバ装置20が担当していたクライアント装置10を再分配する。
【0077】
これにより、一部のサーバ装置20がネットワークNから切り離された後も、残りのサーバ装置20でデータ処理システム1を維持することができる。また、残存するサーバ装置20が複数存在する場合には、当該サーバ装置20間で担当するクライアント装置10の台数を平準化することができる。
【0078】
なお、担当するサーバ装置20が決まるまでの間は、残存するサーバ装置20の各々がネットワークNから切り離されたサーバ装置20が担当していたクライアント装置10からの処理依頼を実行してもよい。
【0079】
なお、サーバ装置20がネットワークNから切り離されたことを検出する方法は特に問わず、種々の方法を採用することが可能である。例えば、実行制御部203は、管理テーブル241に記憶されたサーバ装置20の各々と、生存確認用の通信を一定間隔で行うことで、ネットワークNから切り離された状態か否かを判定してもよい。また、例えば、処理依頼に対する処理状況をサーバ装置20間で共有することで、担当クライアントから処理依頼があったにも関わらず所定時間の間処理を実行しないサーバ装置20を、ネットワークNから切り離された状態と判定してもよい。この場合、サーバ装置20の各々では、非担当クライアントから処理依頼を受け付けた場合でも、当該処理依頼を直ちに廃棄せず、所定時間の間保持するものとする。
【0080】
また、他のサーバ装置20がネットワークに追加された場合には、ネットワークNに接続された既存のサーバ装置20の実行制御部203は、例えば、管理テーブル241をクリアし、管理テーブル241を再度構築する。この場合、新たに追加されたサーバ装置20を含めたサーバ装置20間で、担当クライアントを決定することができる。
【0081】
また、他のサーバ装置20がネットワークに追加された場合の他の動作例として、既存のサーバ装置20の各々では、追加されたサーバ装置20に管理テーブル241を共有することで、既存のサーバ装置20と担当クライアントとの関係を通知する形態としてもよい。この場合、新たに追加されたサーバ装置20では、新たなクライアント装置10が追加されるまでの間担当クライアントが不在となるが、新たなクライアント装置10が追加される度に、優先的に担当が割り当てられるため、中・長期的な観点で担当の平準化を行うことができる。
【0082】
なお、サーバ装置20がネットワークNに接続されたことを検出する方法は特に問わず、種々の方法を採用することが可能である。例えば、サーバ装置20間で自身の存在や生存を通知するための通信を行うことで、新規のサーバ装置20が接続されたことを検出してもよい。
【0083】
上述の実施形態の各装置で実行されるプログラムは、ROMや記憶部等に予め組み込まれた状態で提供される。上述の実施形態の各装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD-ROM、フレキシブルディスク(FD)、CD-R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。
【0084】
さらに、上述の実施形態の各装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上述の実施形態の各装置で実行されるプログラムをインターネット等のネットワーク経由で提供又は配布するように構成してもよい。
【0085】
以上、本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの新規な実施形態やその変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組み合わせを行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0086】
1 データ処理システム
10 クライアント装置
20 サーバ装置
200 制御部
201 処理依頼受付部
202 処理実行部
203 実行制御部
241 管理テーブル
【先行技術文献】
【特許文献】
【0087】
【特許文献1】特開2021-051501号公報
図1
図2
図3
図4
図5
図6
図7
図8