JP2023076038A - サーバシステム - Google Patents

サーバシステム Download PDF

Info

Publication number
JP2023076038A
JP2023076038A JP2021189190A JP2021189190A JP2023076038A JP 2023076038 A JP2023076038 A JP 2023076038A JP 2021189190 A JP2021189190 A JP 2021189190A JP 2021189190 A JP2021189190 A JP 2021189190A JP 2023076038 A JP2023076038 A JP 2023076038A
Authority
JP
Japan
Prior art keywords
terminal device
always
processing unit
cluster
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021189190A
Other languages
English (en)
Inventor
夕貴 成田
Yuki Narita
雅司 武市
Masashi Takechi
宏一 林
Koichi Hayashi
友大 稲垣
Tomohiro Inagaki
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.)
Brother Industries Ltd
Original Assignee
Brother Industries 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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2021189190A priority Critical patent/JP2023076038A/ja
Priority to US18/053,594 priority patent/US11943685B2/en
Priority to EP22205998.2A priority patent/EP4184891B1/en
Publication of JP2023076038A publication Critical patent/JP2023076038A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1036Load balancing of requests to servers for services different from user content provisioning, e.g. load balancing across domain name servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)

Abstract

Figure 2023076038000001
【課題】適切に常時接続を確立する。
【解決手段】
サーバシステムは、複数の常時接続処理部と制御部とを備える。複数の常時接続処理部のそれぞれは、複数の常時接続実行部を含む。制御部は、端末装置からの常時接続のための第1要求を受信する受信処理と、第1要求に応じて複数の常時接続処理部のうち端末装置との常時接続を確立すべき1つの常時接続処理部である対象常時接続処理部を決定する決定処理と、対象常時接続処理部の決定の後に、常時接続のための第2要求の宛先を示す宛先データであって、対象常時接続処理部を示す宛先データを端末装置に送信する送信処理と、を実行するように構成されている。対象常時接続処理部は、端末装置からの第2要求に応じて、1つの常時接続実行部と端末装置との常時接続を確立するように構成されている。
【選択図】 図1

Description

本明細書は、ネットワークの常時接続に関する。
従来から、ネットワークの常時接続のために、サーバが使用されている。また、ネットワークシステムの可用性を高めるために、ネットワークシステムの各部の冗長化が行われ得る。ネットワークシステムが複数の常時接続サーバを備える場合に、クライアントが、常時接続サーバに関するリストに基づいてサービスに対応する常時接続サーバとの常時接続を開始する技術が、提案されている。
特開2015-133048号公報
ところで、サーバシステムが端末装置との常時接続を確立するための複数の処理部を備える場合に、サーバシステムを使用して適切に常時接続を確立することは容易ではなく、工夫の余地があった。
本明細書は、適切に常時接続を確立することができる技術を開示する。
本明細書に開示された技術は、以下の適用例として実現することが可能である。
[適用例1]常時接続のためのサーバシステムであって、複数の常時接続処理部と、制御部と、を備え、前記複数の常時接続処理部のそれぞれは、複数の常時接続実行部を含み、前記制御部は、端末装置からの常時接続のための第1要求を受信する受信処理と、前記第1要求に応じて、前記複数の常時接続処理部のうち、前記端末装置との常時接続を確立すべき1つの常時接続処理部である対象常時接続処理部を決定する決定処理と、前記対象常時接続処理部の決定の後に、常時接続のための第2要求の宛先を示す宛先データであって、前記対象常時接続処理部を示す宛先データを前記端末装置に送信する送信処理と、を実行するように構成され、前記対象常時接続処理部は、前記端末装置からの前記第2要求に応じて、前記対象常時接続処理部に含まれる複数の常時接続実行部のうちの1つの常時接続実行部と前記端末装置との常時接続を確立するように構成されている、サーバシステム。
この構成によれば、サーバシステムの制御部が、端末装置からの第1要求に応じて、常時接続を確立すべき対象常時接続処理部を決定するので、複数の常時接続処理部を備えるサーバシステムは、端末装置と適切に常時接続を確立できる。
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、常時接続の確立方法および常時接続のためのサーバシステム、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
サーバシステムの実施例を示す概略図である。 クラスタラベルデータ301の例を示す概略図である。 常時接続確立処理の例を示すシーケンス図である。 割当ラベル情報を決定する処理の例を示すフローチャートである。 ノードクラスタの割り当ての処理の例を示すフローチャートである。 クラスタ端末データ302の例を示す概略図である。 サービスを使用するための処理の例を示すフローチャートである。 ラベル情報の別の実施例を示す概略図である。 ラベル情報の別の実施例を示す概略図である。 ラベル情報の別の実施例を示す概略図である。 (A)、(B)は、取得処理の例を示すフローチャートである。 割当更新処理の例を示すフローチャートである。 割当ラベル情報の構成を変更する処理の例を示すフローチャートである。
A.第1実施例:
A1.システムの構成:
図1は、サーバシステムの実施例を示す概略図である。このシステム1000は、DNSサーバ60と、サービスサーバ70と、管理端末80と、複数の端末装置90A、90Bと、ユーザ端末95と、サーバシステム100と、を含んでいる。これらの装置60、70、80、90A、90B、95、100は、ネットワークNTに接続されている。ネットワークNTは、いわゆるインターネットを含んでよい。また、ネットワークNTは、いわゆるローカルネットワークを含んでよい。
本実施例では、第1端末装置90Aは、印刷実行部90PRを有する印刷装置である。図示を省略するが、第2端末装置90Bのハードウェア構成は、第1端末装置90Aのハードウェア構成と同じである。サービスサーバ70は、ネットワークNTを介して端末装置90A、90Bを含む複数の端末装置を使用するための種々のサービスを提供する。例えば、サービスサーバ70は、ユーザ端末95からの要求に応じて、第1端末装置90Aに画像を印刷させる(このようなサービスは、遠隔印刷とも呼ばれる)。サーバシステム100は、サービスサーバ70と複数の端末装置90A、90Bとの間の常時接続のための種々の処理を実行する。
サーバシステム100は、複数の常時接続処理部10A、10B、10Cと、管理ロードバランサ20と、クラスタ管理サーバ30と、選択サーバ40と、制御サーバ50と、を有している。常時接続処理部10A、10B、10Cは、それぞれ、端末装置(例えば、第1端末装置90A)との常時接続を確立する(以下、常時接続処理部10A、10B、10Cを、単に、接続処理部10A、10B、10Cとも呼ぶ)。後述するように、接続処理部10A、10B、10Cは、それぞれ、常時接続を確立するように構成された複数のノードを有するノードクラスタ12A、12B、12Cを、有している。クラスタ管理サーバ30は、ノードクラスタを端末装置へ割り当てる処理を実行する。管理ロードバランサ20は、クラスタ管理サーバ30とノードクラスタとの通信を、通信対象のノードクラスタに振り分けることによって、通信負荷を複数のノードクラスタに分散させる。選択サーバ40は、端末装置に付与すべき割当ラベル情報を選択する。後述するように、各ノードクラスタ12A、12B、12Cには、予め、ラベル情報が割り当てられている。そして、端末装置には、端末装置の割当ラベル情報に適したラベル情報を有するノードクラスタが、割り当てられる。制御サーバ50は、サーバシステム100を制御する。
第1接続処理部10Aは、第1ロードバランサ11Aと、ノードクラスタ12Aと、を有している。ノードクラスタ12Aは、複数のノード(ノード13A1-13A3を含む)を有している。複数のノードは、同じハードウェア構成を有している。以下、第1ノードクラスタ12Aの個々のノードを区別する必要がない場合、各ノードをノード13Aとも呼ぶ。
本実施例では、ノード13Aは、端末装置(例えば、第1端末装置90A)との常時接続を確立する(ノード13Aは、常時接続実行部の例である)。常時接続を確立する方法としては、種々の方法を採用可能である。本実施例では、ノード13Aは、XMPP(Extensible Messaging and Presence Protocol)に従って、常時接続のための通信セッションを確立する。サービスサーバ70は、ノード13Aを使用して、端末装置と通信できる。第1ロードバランサ11Aは、複数の端末装置との常時接続を複数のノード13Aに振り分けることによって、常時接続の負荷を複数のノード13Aに分散させる。
他の接続処理部10B、10Cも、同様に、ロードバランサ11B、11Cとノードクラスタ12B、12Cとを有している。ロードバランサ11B、11Cのそれぞれのハードウェア構成は、第1ロードバランサ11Aのハードウェア構成と同じである。第2ノードクラスタ12Bは、複数のノード13Bを有し、第3ノードクラスタ12Cは、複数のノード13Cを有している。ノード13B、13Cのハードウェア構成は、ノード13Aのハードウェア構成と同じである。なお、サーバシステム100は、3以上の接続処理部を含んでよい。以下、個々の接続処理部を区別する必要がない場合、各接続処理部を、接続処理部10とも呼ぶ。そして、接続処理部10のロードバランサとノードクラスタとを、ロードバランサ11とノードクラスタ12とも呼ぶ。ノードクラスタ12に含まれるノードを、ノード13とも呼ぶ。1個のノードクラスタ12に含まれるノード13の総数は、複数のノードクラスタ12の間で、異なってよい。
本実施例では、装置11A、13A、20、30、40、50、60、70、80、90Aは、それぞれ、コンピュータを有している。具体的には、装置11A、13A、20、30、40、50、60、70、80、90Aは、プロセッサ11p、13p、20p、30p、40p、50p、60p、70p、80p、90p(例えば、CPU)と、揮発性記憶装置11v、13v、20v、30v、40v、50v、60v、70v、80v、90v(例えば、DRAM)と、不揮発性記憶装置11n、13n、20n、30n、40n、50n、60n、70n、80n、90n(例えば、フラッシュメモリ)と、通信インタフェース11i、13i、20i、30i、40i、50i、60i、70i、80i、90i(例えば、有線LANインタフェ-ス、IEEE802.11の無線インタフェ-ス)と、を有している。不揮発性記憶装置11n、13n、20n、30n、40n、50n、60n、70n、80n、90nは、対応する装置11、13、20、30、40、50、60、70、80、90の動作のためのプログラム11pg、13pg、20pg、30pg、40pg、50pg、60pg、70pg、80pg、90pgを、予め格納している。プロセッサ11p、13p、20p、30p、40p、50p、60p、70p、80p、90pは、プログラム11pg、13pg、20pg、30pg、40pg、50pg、60pg、70pg、80pg、90pgに従って、後述する種々の処理を実行する。端末装置のプログラム(例えば、第1端末装置90Aのプログラム90pg)は、ファームウェアの例である。
接続処理部10のロードバランサ11の不揮発性記憶装置(例えば、第1接続処理部10Aのロードバランサ11Aの不揮発性記憶装置11n)は、端末装置とノードとの対応関係を示す分散データ101を格納している。クラスタ管理サーバ30の不揮発性記憶装置30nは、クラスタラベルデータ301と、クラスタ端末データ302と、を格納している。選択サーバ40の不揮発性記憶装置40nは、割当ラベル構成データ401を格納している。制御サーバ50の不揮発性記憶装置50nは、API履歴データ501と、常時接続履歴データ502と、ユーザ対応関係データ503と、を格納している。これらのデータ101、301、302、401、501、502、503の詳細については、後述する。
サービスサーバ70の不揮発性記憶装置70nは、サービス対応関係データ701と、履歴データ702を格納している。サービス対応関係データ701は、サービスを使用するユーザの識別子と、サービスに使用される端末装置の識別子と、の対応関係を示している。この対応関係は、ユーザによって予め登録されたものであり、サービス対応関係データ701は、予め決められている。履歴データ702は、サービスの使用履歴を示している。サービスが使用される場合に、サービスサーバ70のプロセッサ70pは、履歴データ702を更新する。
DNSサーバ60は、ネットワークNT上の名前解決を行う。DNSサーバ60の不揮発性記憶装置60nは、IPアドレスとドメイン名との対応関係を示すレコードデータRDを格納している。レコードデータRDは、対応関係R1-R3を含む複数の対応関係を示している。これらの対応関係R1-R3は、ロードバランサ11A-11Cを、それぞれ示している。図示を省略するが、レコードデータRDは、制御サーバ50とサービスサーバ70との対応関係も、示している。
ユーザ端末95は、スマートフォン、タブレットコンピュータ、パーソナルコンピュータなど、ユーザによって操作される端末装置である。ユーザは、ユーザ端末95を操作することによって、サービスサーバ70に種々の処理を実行させることができる。
図2は、クラスタラベルデータ301の例を示す概略図である。クラスタラベルデータ301は、クラスタ識別子とラベル情報との対応関係を示している。クラスタ識別子は、ノードクラスタ12の識別子である。複数のノードクラスタ12のそれぞれのクラスタ識別子は、予め決められている。図2では、クラスタラベルデータ301は、4個のクラスタ識別子C1-C4を含む複数のクラスタ識別子のそれぞれの対応関係を示している。ラベル情報は、本実施例では、地域項目GGとモデル項目GJとの2個の項目の組み合わせを示している。地域項目GGは、端末装置が使用される地域を示している(例えば、端末装置の仕向地、国など)。図2では、地域項目GGは、第1地域GG1と第2地域GG2とを含む複数の地域から選択される。モデル項目GJは、端末装置のモデルを示している。図2では、モデル項目GJは、第1モデルGJ1と第2モデルGJ2とを含む複数のモデルから選択される。このように、本実施例では、複数のノードクラスタ12が地域項目GGとモデル項目GJとの組み合わせに応じて負荷を分散するように、ノードクラスタ12にラベル情報が予め付与されている。
A2.常時接続:
図3は、常時接続確立処理の例を示すシーケンス図である。図3は、第1端末装置90Aがサーバシステム100との常時接続を確立する場合の処理の例を示している。第1端末装置90Aのプロセッサ90pは、第1端末装置90Aの電源の状態がオフ状態からオン状態に切り替えられることに応じて、常時接続確立のための処理を開始する。また、通信エラーなどに起因して常時接続が切断される場合に、プロセッサ90pは、常時接続確立のための処理を開始する。
S110では、プロセッサ90pは、端末装置の登録要求を、制御サーバ50に送信する。登録要求は、端末装置90Aに関連する情報である端末情報の端末情報データを含んでいる。端末情報は、端末装置90Aに関連する任意の情報を含んでよい(例えば、端末装置90Aの識別子、IPアドレス、モデル名、ファームウェアのバージョンなど)。本実施例では、端末情報は、端末装置90Aの識別子とモデル名とを含んでいる。また、本実施例では、不揮発性記憶装置90nは、端末情報を示すデータを、予め格納している(図示省略)。プロセッサ90pは、このデータを参照して、端末情報を取得できる。
S120では、制御サーバ50のプロセッサ50pは、端末装置90Aに割り当てるべきラベル情報である割当ラベル情報の決定要求を、選択サーバ40に送信する。決定要求は、S110で受信した端末情報データを含んでいる。
S130では、選択サーバ40のプロセッサ40pは、割当ラベル情報を決定する。図4は、割当ラベル情報を決定する処理の例を示すフローチャートである。S510では、選択サーバ40のプロセッサ40pは、割当ラベル構成データ401(図1)を参照して、割当ラベル情報の構成である割当ラベル構成を取得する。図2に示すように、本実施例では、ラベル情報は、地域項目GGとモデル項目GJとの2個の項目の組み合わせを示している。割当ラベル構成データ401は、地域項目GGとモデル項目GJとの組み合わせを割当ラベル情報として決定すべきことを、示している。
S520では、プロセッサ40pは、割当ラベル情報の決定に使用される情報を取得する。本実施例では、プロセッサ40pは、S120(図3)で受信した決定要求に含まれる端末情報データを参照して、情報を取得する。本実施例では、プロセッサ40pは、端末装置の識別子とモデル名とを取得する。
S530では、プロセッサ40pは、S520で取得された情報を使用し、割当ラベル構成に従って、割当ラベル情報を決定する。本実施例では、プロセッサ40pは、端末装置90Aの識別子を使用して、割当ラベル情報の地域項目GGを決定する。例えば、地域項目GGは、第1地域GG1に決定される。端末装置の識別子と地域項目GGとの対応関係は、予め決められている。また、プロセッサ40pは、端末装置90Aのモデル名を使用して、割当ラベル情報のモデル項目GJを決定する。例えば、モデル項目GJは、第1モデルGJ1に決定される。そして、プロセッサ40pは、図4の処理、すなわち、図3のS130を終了する。
なお、特定の種類の端末装置に関しては、特定のノードクラスタ12を割り当てる代わりに、割り当てられるべきノードクラスタ12を複数のノードクラスタ12に分散させることが好ましい場合がある。例えば、特定の仕向地、または、特定のモデル名に対応する特定種類の端末装置の出荷数が少ない場合、特定種類の端末装置に割り当てられるべきノードクラスタ12は、複数のノードクラスタ12に分散されてよい。本実施例では、端末装置が特定種類の端末装置である場合、プロセッサ40pは、具体的な割当ラベル情報を決定せずに、空の割当ラベル情報を決定する。
S140(図3)では、選択サーバ40のプロセッサ40pは、決定した割当ラベル情報を、制御サーバ50へ通知する。この通知は、割当ラベル情報の割当ラベル情報データを含んでいる。
S150では、制御サーバ50のプロセッサ50pは、端末装置90Aへのノードクラスタ12の割当要求を、クラスタ管理サーバ30へ送信する。割当要求は、S140で取得された割当ラベル情報データと、端末装置90Aに関連する情報(識別子、IPアドレスなど)を示すデータと、を含んでいる。
S160では、クラスタ管理サーバ30のプロセッサ30pは、端末装置90Aへノードクラスタ12を割り当てる。割り当てられるノードクラスタ12は、端末装置90Aとの常時接続を確立すべき1つのノードクラスタ12である。図5は、ノードクラスタの割り当ての処理の例を示すフローチャートである。S610では、プロセッサ30pは、割当ラベル情報を取得する。本実施例では、プロセッサ30pは、S150(図3)で取得された割当ラベル情報データを参照して、割当ラベル情報を取得する。
S620では、プロセッサ30pは、割当ラベル情報が空であるか否かを判断する。割当ラベル情報が空である場合(S620:Yes)、S630で、プロセッサ30pは、全てのノードクラスタを、候補クラスタとして抽出し、S650へ移行する。
割当ラベル情報が空ではない場合(S620:No)、S640で、プロセッサ30pは、クラスタラベルデータ301(図2)を参照し、割当ラベル情報に適するノードクラスタを候補クラスタとして抽出する。本実施例では、プロセッサ30pは、割当ラベル情報が付与されているノードクラスタを、候補クラスタとして抽出する。具体的には、プロセッサ30pは、割当ラベル情報の全ての項目のそれぞれの選択肢を含むラベル情報に対応付けられるノードクラスタを、候補クラスタとして抽出する。例えば、割当ラベル情報の地域項目GGが第1地域GG1でありモデル項目GJが第1モデルGJ1である場合、プロセッサ30pは、第1地域GG1と第1モデルGJ1とを含むラベル情報に対応付けられる第1クラスタ識別子C1を抽出する。S640の後、プロセッサ30pは、S650へ移行する。
S650では、プロセッサ30pは、候補クラスタの総数Nが1であるか否かを判断する。N=1の場合(S650:Yes)、S660で、プロセッサ30pは、候補クラスタを、端末装置に割り当てられるべきノードクラスタである対象ノードクラスタ(単に、対象クラスタとも呼ぶ)に決定する。プロセッサ30pは、対象クラスタの識別子と端末装置の識別子との対応関係を示すデータを、クラスタ端末データ302(図1)に追加する。
図6は、クラスタ端末データ302の例を示す概略図である。クラスタ端末データ302は、クラスタ識別子と端末装置識別子との対応関係を示している。図6では、クラスタ端末データ302は、4個のクラスタ識別子C1-C4を含む複数のクラスタ識別子のそれぞれの対応関係を示している。8個の端末装置識別子T1-T8を含む複数の端末装置識別子のそれぞれが、いずれかのクラスタ識別子に対応付けられている。S660(図5)では、プロセッサ30pは、対象クラスタのクラスタ識別子に対応付けられる端末装置識別子に、S150(図3)の要求によって示される端末装置識別子(例えば、端末装置90Aの識別子)を追加する。そして、プロセッサ30pは、図5の処理、すなわち、S160(図3)を終了する。
候補クラスタの総数Nが1とは異なる場合(図5:S650:No)、本実施例では、N>1である。この場合、S665で、プロセッサ30pは、N個の候補クラスタに対応するN個の接続処理部10(図1)のそれぞれから、状態情報を取得する。クラスタ管理サーバ30と接続処理部10との間の通信は、管理ロードバランサ20によって中継される。状態情報は、接続処理部10の状態を示す情報であり、本実施例では、常時接続の数を示している。常時接続の数は、接続処理部10との確立済の常時接続の数である。プロセッサ30pは、各接続処理部10のロードバランサ11から、状態情報を取得する。
S670では、プロセッサ30pは、N個の候補クラスタの間の常時接続数の偏りが小さくなるように、1個の接続処理部10(すなわち、1個のノードクラスタ12)を選択する。例えば、プロセッサ30pは、N個の候補クラスタから、最小の常時接続数を有するノードクラスタ12を選択する。そして、プロセッサ30pは、選択したノードクラスタ12を、対象クラスタに決定する。プロセッサ30pは、S660と同様に、対象クラスタの識別子と端末装置の識別子との対応関係を示すデータを、クラスタ端末データ302(図6)に追加する。そして、プロセッサ30pは、図5の処理、すなわち、S160(図3)を終了する。
以下、第1端末装置90Aのための処理では、図5のS640によって、第1ノードクラスタ12Aが候補クラスタとして抽出されることとする。そして、第1端末装置90Aには、第1接続処理部10Aの第1ノードクラスタ12Aが割り当てられることとする。割り当てられたノードクラスタ12Aを、対象ノードクラスタ12Aとも呼ぶ。対象ノードクラスタ12Aを有する接続処理部10Aを、対象接続処理部10Aとも呼ぶ。
S170(図3)では、クラスタ管理サーバ30のプロセッサ30pは、ノードクラスタの割り当ての完了通知を、制御サーバ50へ送信する。
第1端末装置90Aのプロセッサ90pは、S110の後、S180で、対象ノードクラスタ12Aにアクセスするための宛先の要求を、制御サーバ50に送信する。この要求は、端末装置90Aの識別子を示すデータを含んでいる。本実施例では、宛先として、URL(Uniform Resource Locator)が使用される。以下、宛先を、クラスタURLとも呼ぶ。なお、S180の実行のタイミングは、種々のタイミングであってよい。例えば、プロセッサ90pは、S110の後、所定時間の経過後に、S180を実行してよい。これに代えて、制御サーバ50のプロセッサ50pは、S170の完了通知に応じて、ノードクラスタの割り当ての完了通知を第1端末装置90Aに送信してよい。そして、第1端末装置90Aのプロセッサ90pは、この完了通知に応じて、S180を実行してよい。
S190では、制御サーバ50のプロセッサ50pは、クラスタURLの要求をクラスタ管理サーバ30に送信する。この要求は、端末装置90Aの識別子を示すデータを含んでいる。
S200では、クラスタ管理サーバ30のプロセッサ30pは、クラスタ端末データ302(図6)を参照して、端末装置90Aの識別子に対応付けられるクラスタ識別子を検索する。プロセッサ30pは、検索されたクラスタ識別子に対応付けられるクラスタURLを示す宛先データを含む通知を、制御サーバ50に送信する。本実施例では、クラスタ識別子には、クラスタ識別子によって示されるノードクラスタ12を有する接続処理部10のロードバランサ11のURLが、予め対応付けられている。例えば、クラスタ識別子が第1ノードクラスタ12A(図1)を示す場合、そのクラスタ識別子には、第1ロードバランサ11AのURLが対応付けられている。
S210では、制御サーバ50のプロセッサ50pは、クラスタURLを示す宛先データを含む通知を、端末装置90Aに送信する。
S220では、端末装置90Aのプロセッサ90pは、クラスタURLによって示される装置へ、常時接続確立要求を送信する。宛先の装置(ここでは、第1ロードバランサ11A)のIPアドレスは、DNSサーバ60(図1)によって、提供される。常時接続確立要求は、端末装置90Aに関連する情報(IPアドレスと端末装置の識別子を含む)を示すデータを含んでいる。
S230では、第1接続処理部10Aの第1ロードバランサ11Aのプロセッサ11pは、常時接続確立要求の送信元(ここでは、端末装置90A)に割り当てるべき1個のノード13Aを、第1ノードクラスタ12Aの複数のノード13Aから選択する。1個のノード13Aは、第1ノードクラスタ12Aの複数のノード13Aの間の負荷の偏り、または、常時接続数の偏りが小さくなるように、選択される。本実施例では、常時接続数の偏りが小さくなるように、ノード13Aが選択される。以下、選択されたノード13Aを、対象ノード13Aとも呼ぶ。ロードバランサ11Aのプロセッサ11pは、端末装置と対象ノードとの対応関係を示すデータを、分散データ101(図1)に追加する。
S240では、第1接続処理部10Aの第1ロードバランサ11Aのプロセッサ11pは、第1接続処理部10Aの対象ノード13Aに、端末装置90Aからの常時接続確立要求を供給する。対象ノード13Aのプロセッサ13pは、常時接続確立要求に応じて、端末装置90Aと通信することによって、常時接続の確立のための処理を実行する。以上により、端末装置90Aと対象ノード13Aとの常時接続が、確立する。そして、常時接続の確立のための処理は、終了する。
常時接続の確立後、対象ノード13Aと端末装置90Aとは、いわゆるKeepAlive通信を行うことによって、常時接続を維持する(S250)。例えば、対象ノード13Aのプロセッサ13pは、予め決められたスケジュールに従って(例えば、予め決められた時間間隔で)、端末装置90A宛のKeepAliveのデータを送信する。端末装置90Aのプロセッサ90pは、KeepAliveのデータの受信に応じて、対象ノード13A宛の応答を示すデータを送信する。これにより、対象ノード13Aと端末装置90Aとの間の通信セッションは維持される。なお、対象ノード13Aに代えて、端末装置90Aのプロセッサ90pが、対象ノード13A宛のKeepAliveのデータを、予め決められたスケジュールに従って送信してよい。
本実施例では、対象接続処理部10Aのロードバランサ11、または、ノード13は、KeepAlive通信による接続確認の結果を示す結果データを、制御サーバ50に送信する(S255)。結果データは、端末装置の識別子と、端末装置のIPアドレスと、日時と、接続確認に成功したか否かを示すフラグと、を示している。制御サーバ50のプロセッサ50pは、結果データを常時接続履歴データ502(図1)に追加する(S260)。このように、常時接続履歴データ502は、端末装置毎の常時接続の履歴を示すように、更新される。S250-S260は、繰り返し実行される。
なお、本実施例では、端末装置90Aと対象ノード13Aとの間の通信は、第1ロードバランサ11Aによって、中継される。これに代えて、S230の後、対象ノード13Aと端末装置90Aとは、第1ロードバランサ11Aを介さずに、直接に通信してよい。
他の端末装置(例えば、第2端末装置90B)がサーバシステム100との常時接続を確立する場合も、同様に、図3の処理が実行される。ここで、端末装置90Aは、注目している端末装置に置換され、接続処理部10Aは、S160で端末装置に割り当てられるノードクラスタ12を有する接続処理部10に置換される。
A3.サービス:
図7は、サービスサーバ70(図1)によるサービスを使用するための処理の例を示すフローチャートである。S310では、サービスサーバ70は、ユーザ端末95などの外部装置から、サービス要求を受信する。以下、サービス要求が、第1端末装置90Aによる印刷の要求であることとする。本実施例では、サービス要求は、サービスを使用するユーザの識別子と、要求されるサービスが遠隔印刷であることを示すデータと、サービスに使用すべき端末装置(ここでは、第1端末装置90A)の識別子を示すデータと、印刷すべき画像の画像データと、を含んでいる。
S320では、サービスサーバ70のプロセッサ70pは、ユーザの識別子と、端末装置90Aの識別子と、の対応付けの要求を、制御サーバ50に送信する。S330では、制御サーバ50のプロセッサ50pは、ユーザの識別子と端末装置90Aの識別子とを対応付けて、この対応関係を示すデータをユーザ対応関係データ503(図1)に追加する。このように、ユーザ対応関係データ503は、ユーザの識別子と端末装置の識別子との対応関係を示している。S340では、プロセッサ50pは、完了通知を、サービスサーバ70に送信する。
S350では、サービスサーバ70のプロセッサ70pは、第1端末装置90A宛の印刷要求を制御サーバ50に送信する。本実施例では、プロセッサ70pは、印刷すべき画像の画像データを使用して、第1端末装置90Aのための印刷データを生成する。プロセッサ70pは、印刷データを不揮発性記憶装置70nに格納し、印刷データにアクセスするためのURL(印刷URLとも呼ぶ)を生成する。印刷要求は、印刷URLを示す印刷URLデータを含んでいる。
S360では、制御サーバ50のプロセッサ50pは、第1端末装置90A宛の印刷要求の送信要求を、クラスタ管理サーバ30に送信する。
S370では、クラスタ管理サーバ30のプロセッサ30pは、クラスタ端末データ302(図6)を参照して、第1端末装置90Aに対応付けられるクラスタ識別子を取得する。プロセッサ30pは、取得したクラスタ識別子によって示されるノードクラスタ12を有する接続処理部10のロードバランサ11(ここでは、第1接続処理部10Aの第1ロードバランサ11A)に、第1端末装置90A宛の印刷要求の送信要求を送信する。S380では、プロセッサ30pは、完了通知を制御サーバ50に送信する。S390で、プロセッサ50pは、完了通知をサービスサーバ70に送信する。
S400では、第1接続処理部10Aの第1ロードバランサ11Aのプロセッサ11pは、分散データ101を参照し、印刷要求の宛先である第1端末装置90Aに対応付けられる対象ノード13Aを検索する。プロセッサ11pは、検索された対象ノード13Aに、第1端末装置90A宛の印刷要求の送信要求を送信する。対象ノード13Aのプロセッサ13pは、第1端末装置90Aに、印刷要求を送信する。この印刷要求は、印刷URLデータを含んでいる。
S410では、対象ノード13Aのプロセッサ13pは、印刷要求の送信結果を示す結果データ含む結果通知を、管理ロードバランサ20を介して、クラスタ管理サーバ30に送信する。S415では、クラスタ管理サーバ30のプロセッサ30pは、結果通知を、制御サーバ50に送信する。S420では、制御サーバ50のプロセッサ50pは、API履歴データ501を更新する。API履歴データ501は、API(Application Programming Interface)の使用の履歴を示している。履歴の対象のAPIは、サーバシステム100(ここでは、制御サーバ50)がサービスサーバ70に対して公開しているAPIであり、遠隔印刷、遠隔スキャンなどのサービスの要求を行うためのAPIを含んでいる。プロセッサ50pは、例えば、サービスを要求したユーザの識別子と、端末装置の識別子と、日時と、ノード13と端末装置との間の通信が成功したか失敗したかを示すフラグと、を示すデータを、API履歴データ501に追加する。S430では、プロセッサ50pは、結果通知を、サービスサーバ70に送信する。S440では、サービスサーバ70のプロセッサ70pは、履歴データ702(図1)を更新する。例えば、プロセッサ70pは、ユーザの識別子と、サービスに使用された端末装置の識別子と、印刷枚数と、日時と、ノード13と端末装置との間の通信が成功したか失敗したかを示すフラグと、を示すデータを、履歴データ702に追加する。
S450では、第1端末装置90Aのプロセッサ90pは、印刷要求に含まれる印刷URLデータによって示される印刷URLにアクセスし、印刷データ要求を送信する。本実施例では、印刷URLは、サービスサーバ70の不揮発性記憶装置70nに格納された印刷データを示している。S460では、サービスサーバ70のプロセッサ70pは、要求に応じて、印刷データを第1端末装置90Aに送信する。S470では、第1端末装置90Aのプロセッサ90pは、印刷データに従って印刷実行部90PRを制御することによって、印刷実行部90PRに画像を印刷させる。そして、図7の処理は、終了する。なお、S400の印刷要求の送信が失敗する場合、S450-S470は、省略される。
以上のように、本実施例では、サーバシステム100(図1)は、端末装置90A、90Bなどの端末装置との常時接続を確立するように構成されている。サーバシステム100は、複数の接続処理部10と、管理ロードバランサ20と、クラスタ管理サーバ30と、選択サーバ40と、制御サーバ50と、を有している。図3で説明したように、装置20-50は、複数の接続処理部10を制御するための処理を分担する。以下、装置20-50の全体を、制御部5とも呼ぶ。
接続処理部10のそれぞれは、複数のノード13で構成されるノードクラスタ12を含んでいる。ノード13は、常時接続を確立するように構成された常時接続実行部の例である。S110(図3)で、制御部5(ここでは、制御サーバ50)は、端末装置90Aからの常時接続のための登録要求を受信する(登録要求を、第1要求とも呼ぶ)。S120-S160では、制御部5(ここでは、装置30-50)は、第1要求に応じて、複数のノードクラスタ12のうち、端末装置との常時接続を確立すべき1つの対象ノードクラスタ12Aを決定する。対象ノードクラスタ12Aを有する対象接続処理部10Aは、端末装置90Aとの常時接続を確立すべき1つの常時接続処理部である対象常時接続処理部の例である。S120-S160は、端末装置90Aとの常時接続を確立すべき対象接続処理部10Aを決定する決定処理の例である。S200、S210では、制御部5(ここでは、装置30、50)は、対象接続処理部10Aの決定の後に、クラスタURLを示す宛先データであって、対象接続処理部10Aを示す宛先データを端末装置90Aに送信する。クラスタURLは、常時接続のための確立要求の宛先の例である。対象接続処理部10Aは、端末装置90Aからの確立要求(S220)に応じて、接続処理部10Aに含まれる複数のノード13Aのうちの1つの対象ノード13Aと端末装置90Aとの常時接続を確立するように構成されている(以下、確立要求を、第2要求とも呼ぶ)。このように、サーバシステム100の制御部5は、端末装置90Aからの第1要求に応じて、常時接続を確立すべき対象接続処理部10Aを決定する。従って、複数の接続処理部10を有するサーバシステム100は、端末装置90Aと適切に常時接続を確立できる。
本実施例では、対象接続処理部10Aの決定処理(S120-S160)において、制御部5は、端末装置90Aのモデル項目GJを含む1以上の情報(本実施例では、地域項目GGとモデル項目GJ(図2))を使用して、対象接続処理部10Aを決定する。モデル項目GJは、端末装置90Aの仕様に関連する情報である端末仕様情報の例である。制御部5は、このような端末仕様情報を使用することによって、端末装置90Aに適する対象接続処理部10Aを決定できる。例えば、図2に示すように、第1モデルGJ1と第2モデルGJ2とに、互いに異なるクラスタ識別子(すなわち、互いに異なる接続処理部10)が割り当てられる。このように、モデル項目GJ(より一般的には、端末装置の仕様)に応じて、常時接続の負荷を複数の接続処理部10に分散させることができる。
本実施例では、図2に示すように、複数のノードクラスタ12(すなわち、複数の接続処理部10)のそれぞれには、予め、ラベル情報が付与されている。図3に示すように、対象接続処理部10Aの決定処理(S120-S160)は、S130と、S160と、含んでいる。S130では、制御部5(ここでは、選択サーバ40)は、端末装置90Aに割り当てるべきラベル情報である割当ラベル情報を決定する。S160の処理は、図5の処理を含んでいる。図5で説明したように、制御部5(ここでは、クラスタ管理サーバ30)は、複数のノードクラスタ12のうち、割当ラベル情報が付与されているノードクラスタ12Aを、対象クラスタに決定する。すなわち、クラスタ管理サーバ30は、複数の接続処理部10のうち、割当ラベル情報が付与されている接続処理部10Aを、対象接続処理部10Aとして決定する。このように、制御部5は、ラベル情報を介して、端末装置に割り当てるべき対象接続処理部を決定する。従って、制御部5は、ラベル情報を使用して、適切な対象接続処理部を決定できる。仮に、制御部5が、ラベル情報を使用せずに、端末装置の情報を使用して、直接的に、対象接続処理部を決定する場合、端末装置と接続処理部との対応関係の調整は、容易ではない(例えば、端末装置の情報から対象接続処理部を決定するためのアルゴリズムが変更される)。本実施例では、ノードクラスタ12(すなわち、接続処理部10)に付与されるラベル情報(図2)の変更によって、端末装置と接続処理部との対応関係は、容易に調整できる。
クラスタラベルデータ301(図2)は、複数のクラスタ識別子に、同じラベル情報を対応付けてよい。例えば、クラスタラベルデータ301は、複数のクラスタ識別子に、第1地域GG1と第1モデルGJ1との組み合わせを対応付けてよい。図5のS640では、割当ラベル情報が第1地域GG1と第1モデルGJ1との組み合わせを示す場合、クラスタ管理サーバ30のプロセッサ30pは、第1地域GG1と第1モデルGJ1との組み合わせに対応付けられる複数のノードクラスタ12を、複数の候補クラスタとして抽出する。このように、複数のノードクラスタ12は、割当ラベル情報が付与されている複数のノードクラスタ12を含み得る。すなわち、複数の接続処理部10は、割当ラベル情報が付与されている複数の接続処理部である複数の候補処理部を含み得る。S665、S670では、プロセッサ30pは、複数の候補クラスタの間の常時接続数の偏りが小さくなるように、1個の対象ノードクラスタ(すなわち、1個の対象接続処理部)を決定する。このように、サーバシステム100は、複数の候補処理部の間の常時接続の数の偏りを、小さくできる。従って、複数の接続処理部10のうちの一部の接続処理部10に負荷が集中する可能性は、低減する。
クラスタラベルデータ301(図2)は、特定のラベル情報を、1個のクラスタ識別子のみに対応付けてよい。例えば、クラスタラベルデータ301は、第1地域GG1と第1モデルGJ1との組み合わせを示すラベル情報を、第1クラスタ識別子C1のみに対応付けてよい(このラベル情報を、単クラスタラベル情報と呼ぶ)。図5のS640では、割当ラベル情報が単クラスタラベル情報を示す場合、クラスタ管理サーバ30のプロセッサ30pは、1個のクラスタ識別子(例えば、第1クラスタ識別子C1)のみを抽出する。単クラスタラベル情報を示す割当ラベル情報が複数の端末装置に割り当てられる場合、制御部5は、それら複数の端末装置に対して、第1クラスタ識別子C1に対応付けられる同じ接続処理部10を対象接続処理部として決定する。このように、制御部5は、特定条件(例えば、単クラスタラベル情報を示す割当ラベル情報が割り当てられるという条件)を満たす複数の端末装置に対して、同じ接続処理部を対象接続処理部として決定してよい。この構成によれば、特定条件を満たす複数の端末装置に適する特定の接続処理部10が、それら複数の端末装置との常時接続を確立できる。例えば、特定の接続処理部10のノードクラスタ12は、特定条件を満たす複数の端末装置の出荷数に適する数のノード13を有するように、構成されてよい。
図1で説明したように、複数の接続処理部10は、それぞれ、ロードバランサ11を有している。図3のS230、S240で説明したように、ロードバランサ11は、接続処理部10によって受信された第2要求(本実施例では、常時接続の確立要求)を複数のノード13に分配するように構成されている。図3のS200で説明したように、常時接続のための第2要求の宛先を示す宛先データは、対象接続処理部のロードバランサ11を示している(本実施例では、ロードバランサ11のURL)。従って、ロードバランサ11と複数のノード13とを含む接続処理部10は、端末装置と適切に常時接続を確立できる。
B.第2実施例:
図8-図10は、ラベル情報の別の実施例を示す概略図である。ラベル情報としては、地域項目GG(図2)とモデル項目GJに限らず、他の種々の項目を使用可能である。図8-図10は、使用可能な項目の例である11個の項目GA-GKを示している。各図には、情報の種類と、項目と、取得方法と、クラスタラベルデータ301(図2)の決定ルールと、の対応関係が、示されている。項目GA-GKは、「サービス情報」と「履歴情報」と「接続元情報」と「ユーザ情報」と「端末仕様情報」との5個の種類に、分類されている。取得方法は、図4のS520における各項目の決定に使用される情報の取得方法である。
後述するように、ラベル情報としては、端末装置に関する履歴に基づいて決定される項目が、使用され得る(例えば、項目GB、GC、GD、GE、GF、GI)。端末装置の電源の状態は、ユーザによって、オフ状態とオン状態との間で切り替えられる。電源の状態がオフ状態からオン状態に切り替えられる場合、端末装置は、常時接続確立のための処理を開始する(図3)。また、通信エラーなどに起因して常時接続が切断される場合に、端末装置は、常時接続確立のための処理を開始する。ここで、端末装置には、端末装置に関する履歴に適するノードクラスタ12が、割り当てられ得る。すなわち、過去に割り当てられたノードクラスタ12とは異なるノードクラスタ12が、端末装置に割り当てられ得る。以下、項目GA-GKについて、順に説明する。
B1.サービス項目GA:
サービス項目GA(図8)は、端末装置を使用するサービスの内容を示している。サービス項目GAは、例えば、遠隔印刷GA1と遠隔スキャンGA2と情報取得GA3とを含む複数のサービスから選択される。遠隔印刷GA1のサービスでは、サービスサーバ70は、ネットワークNTを介して端末装置に画像を印刷させる(図7参照)。遠隔スキャンGA2のサービスでは、サービスサーバ70は、読取装置を有する端末装置に対象物(例えば、文書シートなど)を読み取らせ、読取画像データをネットワークNTを介してユーザ端末(例えば、ユーザ端末95)に送信する。情報取得GA3のサービスでは、サービスサーバ70は、端末装置から情報を取得し、取得した情報を使用して特定の処理を行う。例えば、端末装置が印刷実行部を有する場合、サービスサーバ70は、消耗品(色材(例えば、インク、または、トナー)、印刷用紙など)の残量を示す残量情報を端末装置から取得する。そして、サービスサーバ70は、残量が閾値以下である場合に、消耗品の注文処理を実行する。
図4のS520では、選択サーバ40のプロセッサ40pは、サービス項目GAの決定に使用される情報を、サービスサーバ70から取得する。図11(A)は、図4のS520で実行される取得処理の例を示すフローチャートである。S710では、選択サーバ40のプロセッサ40pは、端末装置の識別子を示すデータをサービスサーバ70に送信する。S720では、サービスサーバ70のプロセッサ70pは、端末装置の識別子に予め対応付けられるサービス項目GAを示すデータを、選択サーバ40に送信する。選択サーバ40のプロセッサ40pは、サービスサーバ70からのデータを参照して、サービス項目GAを決定する。なお、サービスサーバ70の不揮発性記憶装置70nは、端末装置の識別子とサービスとの対応関係を示すデータを、予め格納している(図示省略)。
サービス項目GAに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、2個のルールRA1、RA2から選択されてよい。第1ルールRA1は、特定のサービス項目GAを複数のクラスタ識別子に対応付ける。例えば、遠隔印刷GA1と遠隔スキャンGA2とは、常時接続が切断されている状態では使用できないので、これらのサービスに関しては、常時接続が切断されにくいことが好ましい。そこで、遠隔印刷GA1と遠隔スキャンGA2とのそれぞれは、複数のクラスタ識別子に対応付けられてよい。この場合、1つの接続処理部10が故障している場合であっても、サービスサーバ70は、他の接続処理部10に接続される端末装置に関しては、遠隔印刷GA1と遠隔スキャンGA2のサービスを実行できる。情報取得GA3も、複数のクラスタ識別子に対応付けられることが好ましい。ただし、情報取得GA3のサービスは、常時接続が切断されている場合には、常時接続が復旧した後に行われてよい。従って、情報取得GA3は、1個のクラスタ識別子に対応付けられてもよい。
第2ルールRA2は、各サービスに、サービス毎に異なるクラスタ識別子を対応付ける。この構成によれば、1つのサービスの負荷に起因するノードクラスタ12の障害の他のサービスに対する影響は、軽減される。
複数の接続処理部10の間で常時接続の品質が異なってよい。この場合、第2ルールRA2に従って、以下のように、サービスとクラスタ識別子との対応関係が決定されてよい。情報取得GA3は、予め決められた品質の常時接続を提供する接続処理部10のクラス識別子に対応付けられてよい。遠隔印刷GA1と遠隔スキャンGA2とは、それぞれ、より高い品質の常時接続を提供する接続処理部10のクラス識別子に対応付けられてよい。この構成によれば、遠隔印刷GA1と遠隔スキャンGA2とに関しては、常時接続が切断されにくいので、サービスの停止の可能性は低減される。なお、1つのサービスには、1以上の任意の数のクラス識別子が対応付けられてよい。
常時接続の品質を調整する方法は、任意の方法であってよい。例えば、図示を省略するが、サーバシステム100には、接続処理部10に含まれる装置11、13を監視する監視装置が設けられる。さらに、接続処理部10は、各装置11、13の代替装置を有する。監視装置は、接続処理部10の各装置11、13のヘルスチェックを定期的に行う。ヘルスチェックにより異常が検出される場合、監視装置は、異常を有する装置を、代替装置に置換する。これにより、接続処理部10による常時接続の品質が向上する(例えば、装置の異常に起因する常時接続の中断時間は、低減される)。ヘルスチェックの頻度を高くすることによって、常時接続の品質は向上する。また、異常を検出しやすいようにヘルスチェックによる異常検出の条件を調整することによって、常時接続の品質は向上する。また、ノードクラスタ12のノード13の総数を増やすことによって、1台のノード13当りの常時接続の数が低減する。これにより、ノード13の故障の可能性は低減し、常時接続の品質は向上する。複数の接続処理部10の間で、ヘルスチェックの頻度と異常検出の条件との一方、または、両方が異なってよい。また、複数の接続処理部10の間で、1台のノード13当りの常時接続の数が異なってよい。
B2.印刷頻度項目GB:
印刷頻度項目GB(図8)は、遠隔印刷による1日当りの印刷枚数NPのグループを示している。印刷頻度項目GBは、例えば、第1グループGB1(1日当りの印刷枚数NPが予め決められた閾値NPth以上)と、第2グループGB2(1日当りの印刷枚数NPが閾値NPth未満)と、から選択される。
図4のS520では、選択サーバ40のプロセッサ40pは、印刷頻度項目GBの決定に使用される情報を、図11(A)の処理に従って、サービスサーバ70から取得する。S710では、選択サーバ40のプロセッサ40pは、端末装置の識別子を示すデータをサービスサーバ70に送信する。S720では、サービスサーバ70のプロセッサ70pは、履歴データ702を参照し、端末装置の識別子に対応付けられる遠隔印刷の履歴から印刷頻度項目GBに関する情報(例えば、累積印刷枚数とサービス使用開始日から現在までの日数)を準備する。プロセッサ70pは、準備した情報を示すデータを選択サーバ40に送信する。選択サーバ40のプロセッサ40pは、サービスサーバ70からのデータを参照して、1日当りの印刷枚数NPを算出し、印刷頻度項目GBを決定する(例えば、NP=累積印刷枚数/日数)。
印刷頻度項目GBに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、2個のルールRB1、RB2から選択されてよい。第1ルールRB1は、第1グループGB1を複数のクラスタ識別子に対応付ける。第1グループGB1は、高い印刷頻度のグループであるので、第1グループGB1の端末装置は、高い頻度で常時接続を使用する。第1グループGB1が複数のクラスタ識別子に対応付けられる場合、1つの接続処理部10が故障している場合であっても、サービスサーバ70は、他の接続処理部10に接続される端末装置に関しては、遠隔印刷を実行できる。第2グループGB2についても、複数のクラスタ識別子に対応付けられることが好ましい。ただし、第2グループGB2の端末装置は、低い頻度で常時接続を使用する。常時接続の一時的な切断の第2グループGB2に対する影響は、第1グループGB1に対する影響と比べて、小さい。従って、第2グループGB2は、1個のクラスタ識別子に対応付けられてもよい。
第2ルールRB2は、印刷頻度項目GBの各グループに、グループ毎に異なるクラスタ識別子を対応付ける。この第2ルールRB2は、上記の第2ルールRA2と同様のルールである。複数の接続処理部10の間で常時接続の品質が異なってよい。この場合、第2グループGB2は、予め決められた品質の常時接続を提供する接続処理部10のクラス識別子に対応付けられてよい。第1グループGB1は、より高い品質の常時接続を提供する接続処理部10のクラス識別子に対応付けられてよい。
B3.通信頻度項目GC:
通信頻度項目GC(図8)は、API使用頻度F1のグループを示している。API使用頻度F1のAPIは、サーバシステム100(ここでは、制御サーバ50)がサービスサーバ70に対して公開しているAPIのうち、ノード13による通信が発生するAPIである。具体的には、API使用頻度F1のAPIは、遠隔印刷、遠隔スキャンなどのサービスの要求を行うためのAPIである。通信頻度項目GCは、例えば、第1グループGC1(API使用頻度F1が予め決められた閾値F1th以上)と、第2グループGC2(API使用頻度F1が予め決められた閾値F1th未満)と、から選択される。
図4のS520では、選択サーバ40のプロセッサ40pは、通信頻度項目GCの決定に使用される情報を、制御サーバ50から取得する。図11(B)は、図4のS520で実行される取得処理の例を示すフローチャートである。S750では、選択サーバ40のプロセッサ40pは、端末装置の識別子を示すデータを制御サーバ50に送信する。S760では、制御サーバ50のプロセッサ50pは、API履歴データ501(図1)を参照して、端末装置の識別子に対応付けられるAPIの使用履歴からAPI使用頻度F1に関する情報(例えば、累積使用回数とサービス使用開始日から現在までの日数)を準備する。そして、プロセッサ50pは、準備した情報を示すデータを選択サーバ40に送信する。選択サーバ40のプロセッサ40pは、制御サーバ50からのデータを参照して、API使用頻度F1を算出し、通信頻度項目GCを決定する(例えば、F1=累積使用回数/日数)。
通信頻度項目GCに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、2個のルールRC1、RC2から選択されてよい。第1ルールRC1は、API使用頻度F1の偏りが小さくなるように、各グループGC1、GC2を、複数のクラスタ識別子に対応付ける。例えば、第1グループGC1と第2グループGC2とに、共通の複数のクラスタ識別子が対応付けられる。これにより、複数のノードクラスタ12の間の負荷の偏りは、低減する。
第2ルールRC2は、通信頻度項目GCの各グループに、グループ毎に異なるクラスタ識別子を対応付ける。この第2ルールRC2は、上記の第2ルールRA2と同様のルールである。複数の接続処理部10の間で常時接続の品質が異なってよい。この場合、第2グループGC2は、予め決められた品質の常時接続を提供する接続処理部10のクラス識別子に対応付けられてよい。第1グループGC1は、より高い品質の常時接続を提供する接続処理部10のクラス識別子に対応付けられてよい。
B4.エラー頻度項目GD:
エラー頻度項目GD(図9)は、APIエラー頻度FEのグループを示している。APIエラー頻度FEのAPIは、API使用頻度F1(図8)のAPIと同じである。エラー頻度項目GDは、例えば、第1グループGD1(APIエラー頻度FEが予め決められた閾値FEth以上)と、第2グループGD2(APIエラー頻度FEが予め決められた閾値FEth未満)と、から選択される。
図4のS520では、選択サーバ40のプロセッサ40pは、エラー頻度項目GDの決定に使用される情報を、図11(B)の処理に従って、制御サーバ50から取得する。S750では、選択サーバ40のプロセッサ40pは、端末装置の識別子を示すデータを制御サーバ50に送信する。S760では、制御サーバ50のプロセッサ50pは、API履歴データ501(図1)を参照して、端末装置の識別子に対応付けられるAPIの使用履歴からAPIエラー頻度FEに関する情報(例えば、累積エラー回数とサービス使用開始日から現在までの日数)を準備する。そして、プロセッサ50pは、準備した情報を示すデータを選択サーバ40に送信する。選択サーバ40のプロセッサ40pは、制御サーバ50からのデータを参照して、APIエラー頻度FEを算出し、エラー頻度項目GDを決定する(例えば、FE=累積エラー回数/日数)。
エラー頻度項目GDに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、以下のルールRD1であってよい。このルールRD1は、第1グループGD1を1以上の特定のクラスタ識別子に対応付ける。この構成によれば、特定のクラスタ識別子に対応する特定のノードクラスタ12の調査によってエラーの原因を究明できる可能性が高くなる(例えば、他のノードクラスタ12を調査せずに、原因が究明され得る)。第2グループGD2は、第1グループGD1に対応付けられる1以上の特定のクラスタ識別子とは異なる1以上のクラスタ識別子に対応付けられてよい。
B5.一斉切断項目GE:
一斉切断項目GE(図9)は、過去に常時接続が一斉に切断された複数のIPアドレスのグループに関する項目である。複数のIPアドレスからの通信を処理するネットワーク装置(例えば、ルータやゲートウェイなど)に不具合が生じる場合、複数のIPアドレスの常時接続が一斉に切断される。そして、ネットワーク装置の不具合が解消する場合、複数のIPアドレスからの常時接続の確立要求が、一斉に、サーバシステム100に届く。
一斉切断項目GEは、例えば、第1グループGE1と第2グループGE2とから選択される。第1グループGE1は、過去に常時接続が一斉に切断された複数のIPアドレスのグループである。第2グループGE2は、第1グループGE1には含まれないIPアドレスのグループである。IPアドレスが第1グループGE1に含まれるための条件である一斉切断条件は、種々の条件であってよい。例えば、一斉切断条件は、過去に、予め決められた時間幅(例えば、10分間)内に、予め決められた閾値(例えば、100)以上のIPアドレスの常時接続が切断されたことであってよい。
図4のS520では、選択サーバ40のプロセッサ40pは、一斉切断項目GEの決定に使用される情報を、図11(B)の処理に従って、制御サーバ50から取得する。S750では、選択サーバ40のプロセッサ40pは、端末装置のIPアドレスを示すデータを制御サーバ50に送信する。S760では、制御サーバ50のプロセッサ50pは、常時接続履歴データ502(図1)を参照して、一斉切断条件を満たす複数のIPアドレスのリストを生成する。プロセッサ50pは、端末装置のIPアドレスがIPアドレスのリストに含まれるか否かを示すデータを選択サーバ40に送信する。選択サーバ40のプロセッサ40pは、制御サーバ50からのデータを参照して、一斉切断項目GEを決定する。
一斉切断項目GEに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、以下のルールRE1であってよい。このルールRE1は、第1グループGE1を複数のクラスタ識別子に対応付ける。この理由は、以下の通りである。ネットワーク装置の不具合は、解消した後に、再び生じ得る。再び生じた不具合が解消する場合、第1グループGE1に含まれる複数のIPアドレスからの常時接続の確立要求が、一斉に、サーバシステム100に届き得る。クラスタラベルデータ301がルールRE1に従って決定される場合、複数のIPアドレスからの常時接続の確立要求は、複数のノードクラスタ12に分散可能である。第2グループGE2は、第1グループGE1に対応付けられる複数のクラスタ識別子とは異なる1以上のクラスタ識別子に対応付けられてよい。
B6.通信障害項目GF:
通信障害項目GF(図9)は、過去に通信障害が発生した複数の端末装置のグループに関する項目である。複数の端末装置は、同じ地域で使用され得る。例えば、複数の端末装置は、同じ仕向地で使用され得る。また、複数の端末装置は、販社によって提供され、販社の営業地域で使用され得る。同じ地域で使用される複数の端末装置の常時接続が、切断され易い場合がある。例えば、仕向地のネットワークが不安定であり得る。販社の営業地域のネットワークが不安定であり得る。
通信障害項目GFは、例えば、第1グループGF1と第2グループGF2とから選択される。第1グループGF1は、通信障害が生じやすいグループである。第2グループGF2は、第1グループGF1には含まれない端末装置のグループである。本実施例では、複数の端末装置の識別子は、予め、複数のグループに分割される(端末グループとも呼ぶ)。1個の端末グループは、同じ地域で使用される複数の端末装置の識別子で構成される。複数の端末グループの間では、地域が互いに異なる、すなわち、地理的な場所が互いに異なる。注目端末グループが第1グループGF1に含まれるための条件である障害グループ条件は、通信障害が生じやすいことを示す種々の条件であってよい。例えば、障害グループ条件は、過去に、予め決められた時間幅(例えば、10分間)内に、注目端末グループに含まれる複数の端末装置のうち、予め決められた割合(例えば、30%)以上の端末装置の常時接続が切断されたことであってよい。
図4のS520では、選択サーバ40のプロセッサ40pは、通信障害項目GFの決定に使用される情報を、図11(B)の処理に従って、制御サーバ50から取得する。S750では、選択サーバ40のプロセッサ40pは、端末装置の識別子を示すデータを制御サーバ50に送信する。S760では、制御サーバ50のプロセッサ50pは、常時接続履歴データ502(図1)を参照して、予め決められた複数の端末グループから、障害グループ条件を満たす端末グループを抽出する。プロセッサ50pは、端末装置の識別子が障害グループ条件を満たす端末グループに含まれるか否かを示すデータを、選択サーバ40に送信する。選択サーバ40のプロセッサ40pは、制御サーバ50からのデータを参照して、通信障害項目GFを決定する。
通信障害項目GFに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、2個のルールRF1、RF2から選択されてよい。第1ルールRF1は、第1グループGF1を複数のクラスタ識別子に対応付ける。この理由は、以下の通りである。通信障害が発生した地域では、通信障害が再び発生し得る。再び発生した通信障害が解消する場合、第1グループGF1に含まれる端末グループの複数の端末装置からの常時接続の確立要求が、一斉に、サーバシステム100に届き得る。第1ルールRF1が採用される場合、複数の端末装置からの常時接続の確立要求は、複数のノードクラスタ12に分散可能である。第2グループGF2は、第1グループGF1に対応付けられる複数のクラスタ識別子とは異なる1以上のクラスタ識別子に対応付けられてよい。
第2ルールRF2は、通信障害項目GFの各グループに、グループ毎に異なるクラスタ識別子を対応付ける。この構成によれば、第1グループGF1に含まれる端末グループに通信障害が発生する場合に、第2グループGF2に対応付けられるノードクラスタ12に対する通信障害の影響は緩和される。
なお、通信障害項目GFは、端末装置の識別子に代えて、IPアドレスを使用して決定されてよい。
B7.地域項目GG:
地域項目GG(図9)は、図3で説明した地域項目GGである。地域項目GGは、常時接続の接続元に関する項目である。地域項目GGは、例えば、第1地域GG1と、第2地域GG2と、第3地域GG3と、を含む複数の地域から選択されてよい。
図4のS520では、選択サーバ40のプロセッサ40pは、S120(図3)で受信した決定要求に含まれる端末情報データを参照して、地域項目GGの決定に使用される情報(ここでは、端末装置の識別子)を取得する。これに代えて、プロセッサ40pは、図11(B)の処理に従って、制御サーバ50から情報を取得してよい。S750では、選択サーバ40のプロセッサ40pは、端末装置に関する情報(例えば、識別子、IPアドレスなど)を示すデータを制御サーバ50に送信する。S760では、制御サーバ50のプロセッサ50pは、端末装置に関する情報を使用して、端末装置に対応付けられる地域を示す情報を示すデータを選択サーバ40に送信する。端末装置に関する情報と地域との対応関係は、予め決められている。選択サーバ40のプロセッサ40pは、制御サーバ50からのデータを参照して、地域項目GGを決定する。
地域項目GGに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、以下のルールRG1であってよい。このルールRG1は、地域項目GGの各地域に、地域毎に異なるクラスタ識別子を対応付ける。この構成によれば、1個の地域で通信障害が発生する場合に、他の地域に対応付けられるノードクラスタ12に対する通信障害の影響は緩和される。なお、地域項目GGは、端末装置の仕向地に代えて、端末装置のIPアドレス、端末装置を提供する販社の営業地域など、地域に関連する種々の情報に基づいて、決定されてよい。
B8.ユーザ項目GH:
ユーザ項目GH(図10)は、端末装置に対応付けられるユーザを示している。ユーザは、例えば、端末装置の所有者である。ユーザ項目GHは、第1ユーザ識別子GH1と第2ユーザ識別子GH2を含む複数のユーザの識別子から選択されてよい。
図4のS520では、選択サーバ40のプロセッサ40pは、ユーザ項目GHの決定に使用される情報を、図11(B)の処理に従って、制御サーバ50から取得する。S750では、選択サーバ40のプロセッサ40pは、端末装置の識別子を示すデータを制御サーバ50に送信する。S760では、制御サーバ50のプロセッサ50pは、ユーザ対応関係データ503(図1)を参照して、端末装置の識別子に対応付けられるユーザの識別子を取得する。プロセッサ50pは、ユーザの識別子を示すデータを選択サーバ40に送信する。選択サーバ40のプロセッサ40pは、制御サーバ50からのデータを参照して、ユーザ項目GHを決定する。
ユーザ項目GHに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、2個のルールRH1、RH2から選択されてよい。第1ルールRH1は、各ユーザ識別子に、1個のクラスタ識別子に対応付ける。1つのユーザ識別子に複数の端末装置が対応付けられている場合、複数の端末装置は、同じ1個のクラスタ識別子に対応付けられる。この構成によれば、1個のノードクラスタ12に不具合が発生する場合に、不具合の影響を受けるユーザの数を低減できる。なお、1個のクラスタ識別子に複数のユーザ識別子が対応付けられてよい。
第2ルールRH2は、各ユーザ識別子に、複数のクラスタ識別子に対応付ける。この第2ルールRH2は、1つのユーザ識別子に複数の端末装置が対応付けられている場合に、複数の端末装置を複数のノードクラスタ12に分散させるためのルールである。図5のS670では、クラスタ管理サーバ30のプロセッサ30pは、ユーザ識別子毎に、ラウンドロビンによって1個の対象ノードクラスタ(すなわち、1個の対象接続処理部)を決定する。この場合、S665は省略されてよい。第2ルールRH2が使用される場合、1つのユーザ識別子に対応付けられる全ての端末装置が、1個のノードクラスタ12に不具合に起因して使用できなくなる可能性は、低減される。
B9.ユーザ使用頻度項目GI:
ユーザ使用頻度項目GI(図10)は、ユーザ識別子毎のサービス使用頻度F3のグループを示している。ユーザ使用頻度項目GIは、例えば、第1グループGI1(サービス使用頻度F3が予め決められた閾値F3th以上)と、第2グループGI2(サービス使用頻度F3が予め決められた閾値F3th未満)と、から選択される。
図4のS520では、選択サーバ40のプロセッサ40pは、ユーザ使用頻度項目GIの決定に使用される情報を、図11(A)の処理に従って、サービスサーバ70から取得する。S710では、選択サーバ40のプロセッサ40pは、端末装置の識別子を示すデータをサービスサーバ70に送信する。S720では、サービスサーバ70のプロセッサ70pは、サービス対応関係データ701を参照し、端末装置の識別子に対応付けられるユーザの識別子を取得する。プロセッサ70pは、履歴データ702を参照し、ユーザの識別子に対応付けられるサービスの使用履歴からユーザ使用頻度項目GIに関する情報(例えば、全てのサービスの使用回数の合計値と最先のサービス使用開始日から現在までの日数)を準備する。プロセッサ70pは、準備した情報を示すデータを選択サーバ40に送信する。選択サーバ40のプロセッサ40pは、サービスサーバ70からのデータを参照して、サービス使用頻度F3を算出し、ユーザ使用頻度項目GIを決定する(例えば、F3=使用回数の合計値/日数)。
ユーザ使用頻度項目GIに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、以下のルールRI1であってよい。このルールRI1は、第1グループGI1を1以上の特定のクラスタ識別子に対応付ける。第2グループGI2は、第1グループGF1に対応付けられる1以上の特定のクラスタ識別子には含まれない1以上のクラスタ識別子に対応付けられる。特定のクラスタ識別子に対応付けられる接続処理部10は、他の接続処理部10と比べて、高い品質の常時接続を提供する。この構成によれば、高いサービス使用頻度F3を有するユーザによって新たな端末装置が使用される場合に、その端末装置の常時接続の負荷に起因するノードクラスタ12の不具合の可能性は、低減する。
B10.モデル項目GJ:
モデル項目GJ(図10)は、図3で説明したモデル項目GJである。モデル項目GJは、例えば、第1モデルGJ1と第2モデルGJ2とを含む複数のモデルから選択されてよい。
図4のS520では、選択サーバ40のプロセッサ40pは、S120(図3)で受信した決定要求に含まれる端末情報データを参照して、モデル項目GJの決定に使用される情報(ここでは、モデル名)を取得する。これに代えて、プロセッサ40pは、図11(B)の処理に従って、制御サーバ50から情報を取得してよい。S750では、選択サーバ40のプロセッサ40pは、端末装置に関する情報(例えば、識別子、IPアドレスなど)を示すデータを制御サーバ50に送信する。S760では、制御サーバ50のプロセッサ50pは、端末装置に関する情報を使用して、端末装置のモデルを示すデータを選択サーバ40に送信する。端末装置に関する情報とモデルとの対応関係は、予め決められている。選択サーバ40のプロセッサ40pは、制御サーバ50からのデータを参照して、モデル項目GJを決定する。
モデル項目GJに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、以下のルールRJ1であってよい。このルールRJ1は、モデル項目GJの各モデルに、モデル毎に異なるクラスタ識別子を対応付ける。ここで、複数のモデルの間で、端末装置の機能(特に、常時接続のための機能)が異なってよい。例えば、常時接続のための通信プロトコルが、複数のモデルの間で異なってよい。この場合、ノードクラスタ12は、対応するモデルの端末装置の機能に適する機能を有するように、構成される。このように、複数のノードクラスタ12は、互いに異なる機能を有してよい。そして、モデル項目GJの各モデルは、モデルに適する機能を有するノードクラスタ12に、対応付けられてよい。
B11.バージョン項目GK:
バージョン項目GK(図10)は、端末装置のファームウェアのバージョンを示している。バージョン項目GKは、例えば、第1バージョンGK1と第2バージョンGK2とを含む複数のバージョンから選択されてよい。
図4のS520では、選択サーバ40のプロセッサ40pは、S120(図3)で受信した決定要求に含まれる端末情報データを参照して、バージョン項目GKの決定に使用される情報(ここでは、ファームウェアのバージョン)を取得する。
バージョン項目GKに関するクラスタラベルデータ301(図2)の決定ルールは、例えば、以下のルールRK1であってよい。このルールRK1は、バージョン項目GKの各バージョンに、バージョン毎に異なるクラスタ識別子を対応付ける。ここで、複数のバージョンの間で、端末装置の機能(特に、常時接続のための機能)が異なってよい。例えば、常時接続のための通信プロトコルが、複数のバージョンの間で異なってよい。この場合、ノードクラスタ12は、対応するバージョンの端末装置の機能に適する機能を有するように、構成される。このように、複数のノードクラスタ12は、互いに異なる機能を有してよい。そして、バージョン項目GKの各バージョンは、バージョンに適する機能を有するノードクラスタ12に、対応付けられてよい。
なお、ラベル情報は、上記の項目GA-GKから任意に選択された1以上の項目の組み合わせであってよい。ここで、各項目の選択肢(例えば、印刷頻度項目GB(図8)の第1グループGB1と第2グループGB2など)は、上記の対応する項目のルールに従って、クラスタ識別子に対応付けられてよい。割当ラベル構成データ401(図1)は、ラベル情報の構成(例えば、ラベル情報に含まれる項目のリスト)を示すように、予め決定されてよい。ただし、クラスタラベルデータ301の決定ルールは、図8-図10のルールに限らず、他の種々のルールであってよい。例えば、項目の内容に拘わらず、項目の各選択肢に、選択肢毎に異なるクラスタ識別子が対応付けられてよい。
C.第3実施例:
サーバシステム100(図1)は、端末装置に対して、ノードクラスタ12を割り当て直してよい。図12は、割当更新処理の例を示すフローチャートである。S780では、制御サーバ50のプロセッサ50pは、再割当条件が満たされるか否かを判断する。再割当条件は、ノードクラスタ12の再割り当てが好ましいことを示す任意の条件であってよい。例えば、再割当条件は、最後の再割り当てからの経過時間が予め決められた時間閾値以上であることであってよい。再割当条件が満たされない場合(S780:No)、プロセッサ50pは、S780を繰り返して、再割当条件が満たされることを待つ。再割当条件が満たされる場合(S780:Yes)、S790で、プロセッサ50pは、ノードクラスタ12の再割当処理を実行する。例えば、プロセッサ50pは、接続処理部10を介して、端末装置に、クラスタURLの取得指示を送信してよい。端末装置は、指示に応じて、図3のS180の処理を実行する。S180に続いて、S190-S240の処理が実行される。これにより、端末装置は、新たなクラスタURLを取得し、新たなクラスタURLを使用して常時接続を再確立する。この結果、端末装置には、新たなノードクラスタ12が割り当てられる。例えば、端末装置に関する最新の履歴に基づいて、過去に割り当てられたノードクラスタ12とは異なるノードクラスタ12が、端末装置に割り当てられ得る。S790の後、処理は、再び、S780へ移行する。
なお、多数の確立要求が短時間にサーバシステム100に届くことを避けるために、プロセッサ50pは、再割当処理(S790)を、端末装置毎に異なる時間に、実行してよい。例えば、プロセッサ50pは、1個の端末装置のための再割当処理を、一定時間間隔で、繰り返してよい。また、プロセッサ50pは、端末装置毎に、割当更新処理を実行してよい。この場合、再割当条件は、端末装置毎に異なってよい。
D.第4実施例:
図3のS130で端末装置に割り当てられる割当ラベル情報の構成は、変更可能であってよい。図13は、割当ラベル情報の構成を変更する処理の例を示すフローチャートである。S810では、サーバシステム100(図1)の管理人は、管理端末80の図示しない操作部(例えば、タッチパネル、ボタンなど)を操作することによって、新しい構成を示す情報を入力する。割当ラベル情報の構成は、例えば、図8-図10の項目GA-GKから任意に選択される1以上の項目の組み合わせであってよい。S820では、管理端末80のプロセッサ80pは、選択サーバ40に、新しい構成を示すデータを送信する。S830では、選択サーバ40のプロセッサ40pは、受信したデータによって示される新構成を示す割当ラベル構成データ401を、不揮発性記憶装置40nに可能する。そして、図13の処理は、終了する。割当ラベル構成データ401の更新後、S130(図3)では、プロセッサ40pは、更新済の割当ラベル構成データ401を参照して、割当ラベル情報を決定する。本実施例では、管理者は、割当ラベル構成データ401を、サーバシステム100の使用状況に応じて、変更できる。例えば、サーバシステム100の運用開始後に、APIのエラー頻度が高くなる場合がある。この場合、管理人は、割当ラベル情報の構成に、エラー頻度項目GD(図9)を追加してよい。
クラスタラベルデータ301(図2)は、使用可能な全ての項目の対応関係を、予め定めてよい。これに代えて、クラスタ管理サーバ30のプロセッサ30pは、クラスタラベルデータ301の変更をユーザに許容してよい。プロセッサ30pは、例えば、図13の処理と同様の処理によって、クラスタラベルデータ301を変更してよい。管理人は、複数のクラスタ識別子のそれぞれのラベル情報を、管理端末80に入力する。管理端末80のプロセッサ80pは、クラスタ識別子とラベル情報との対応関係を示すデータを、クラスタ管理サーバ30へ送信する。クラスタ管理サーバ30のプロセッサ30pは、受信したデータによって示される対応関係を示すクラスタラベルデータ301を、不揮発性記憶装置30nに格納する。なお、管理人は、新たな接続処理部10をサーバシステム100に追加してよい。そして、管理人は、クラスタラベルデータ301を変更することによって、新たな接続処理部10にラベル情報を割り当ててよい。
E.変形例:
(1)ラベル情報は、種々の情報を含んでよい。例えば、ラベル情報は、端末装置の仕様に関連する情報である端末仕様情報を含んでよい。モデル項目GJ(図10)とバージョン項目GKとは、端末仕様情報の例である。端末仕様情報としては、他の種々の情報が使用されてよい(例えば、印刷に使用可能な色材の種類数、読取装置の解像度、端末装置が有する機能の詳細、など)。制御部5は、対象ノードクラスタの決定(図3:S120-S160)に端末仕様情報を含む1以上の情報を使用することによって、複数の端末装置を複数の接続処理部10に、端末装置の仕様に応じて適切に分散させることができる。
ラベル情報は、端末装置のユーザに対応付けられる情報であるユーザ情報を含んでよい。ユーザ項目GH(図10)とユーザ使用頻度項目GIとは、ユーザ情報の例である。ユーザ情報としては、他の種々の情報が使用されてよい(例えば、ユーザの年齢、端末装置の言語設定、など)。制御部5は、対象ノードクラスタの決定(図3:S120-S160)にユーザ情報を含む1以上の情報を使用することによって、複数の端末装置を複数の接続処理部10に、ユーザ情報によって示されるユーザの属性に応じて適切に分散させることができる。
ラベル情報は、端末装置によって使用可能なサービスに関連するサービス情報を含んでよい。サービス項目GA(図8)と印刷頻度項目GBとは、サービス情報の例である。サービス情報としては、他の種々の情報が使用されてよい(例えば、読取装置による読取の頻度、など)。制御部5は、対象ノードクラスタの決定(図3:S120-S160)にサービス情報を含む1以上の情報を使用することによって、複数の端末装置を複数の接続処理部10に、使用可能なサービスに応じて適切に分散させることができる。
ラベル情報は、端末装置の通信履歴に関連する履歴情報を含んでよい。通信頻度項目GC(図8)、エラー頻度項目GD(図9)、一斉切断項目GE、通信障害項目GFは、履歴情報の例である。履歴情報としては、他の種々の情報が使用されてよい(例えば、常時接続の累積切断回数、など)。制御部5は、対象ノードクラスタの決定(図3:S120-S160)に履歴情報を含む1以上の情報を使用することによって、複数の端末装置を複数の接続処理部10に、通信履歴に応じて適切に分散させることができる。
(2)図4のS520において、割当ラベル情報の決定に使用される情報を取得する処理は、S120(図3)の決定要求に含まれる端末情報データを参照する処理と、図11(A)、図11(B)の処理と、に代えて、他の種々の処理であってよい。例えば、選択サーバ40のプロセッサ40pは、S110(図3)の登録要求の送信元である端末装置から、情報(例えば、端末装置に関連する情報)を取得してよい。また、プロセッサ40pは、接続処理部10のロードバランサ11から、情報(例えば、常時接続の通信履歴に関連する情報)を取得してよい。
(3)図5のS665、S670で使用される状態情報は、接続処理部10との確立済の常時接続の数に限らず、接続処理部10の種々の状態を示してよい。例えば、状態情報は、接続処理部10の負荷を示してよい。接続処理部10の負荷は、例えば、CPUの総合使用率とメモリの総合使用率との組み合わせであってよい。CPUの総合使用率は、接続処理部10のノードクラスタ12に含まれる複数のノード13のそれぞれのCPUの使用率を使用して算出される種々の値であってよい。CPUの総合使用率は、例えば、代表値(例えば、平均値、最頻値、中央値など)であってよい。メモリの総合使用率は、接続処理部10のノードクラスタ12に含まれる複数のノード13のそれぞれのメモリの使用率を使用して算出される種々の値であってよい。メモリの総合使用率は、例えば、代表値(例えば、平均値、最頻値、中央値など)であってよい。
S670では、プロセッサ30pは、N個の候補クラスタの間の負荷の偏りが小さくなるように、1個の接続処理部10(すなわち、1個のノードクラスタ12)を選択する。例えば、プロセッサ30pは、N個の候補クラスタから、最小のCPUの総合使用率と最小のメモリの総合使用率とを有する候補クラスタを選択してよい。最小のメモリの総合使用率を有する候補クラスタが最小のCPUの総合使用率を有する候補クラスタと異なる場合、最小のメモリの総合使用率を有する候補クラスタが選択されてよい。
図3のS230においても、ロードバランサ11のプロセッサ11pは、ノードクラスタ12の複数のノード13の間の負荷の偏りが小さくなるように、1個のノード13を選択してよい。例えば、プロセッサ11pは、複数のノード13から、最小のCPUの使用率と最小のメモリの使用率とを有するノード13を選択してよい。最小のメモリの使用率を有するノード13が最小のCPUの使用率を有するノード13と異なる場合、最小のメモリの使用率を有するノード13が選択されてよい。
(4)常時接続を確立するための処理は、図3の処理に代えて、他の種々の処理であってよい。例えば、端末装置との常時接続を確立すべき1つの接続処理部10を決定するための第1要求は、端末装置の登録要求(図3:S110)に代えて、他の種々の要求であってよい。また、常時接続を確立するための第2要求は、常時接続の確立要求(図3:S220)に代えて、他の種々の要求であってよい。
宛先データの送信は、端末装置との常時接続を確立すべき1つの接続処理部10の決定(図3:S160)の後の任意のタイミングで行われてよい。例えば、クラスタ管理サーバ30のプロセッサ30pは、S170で、宛先データを含む通知を制御サーバ50に送信してよい。そして、制御サーバ50のプロセッサ50pは、S170の通知の受領に応じて、宛先データを含む通知を端末装置に送信してよい。この場合、S180-S210は、省略されてよいなお、宛先データによって示される宛先は、URLに代えて、IPアドレスなど、ネットワーク上の宛先を示す任意の情報であってよい。
図5のS670では、クラスタ管理サーバ30のプロセッサ30pは、状態情報を使用せずに、ラウンドロビンによって、N個の候補クラスタから1個のノードクラスタ12を選択してよい。この場合、S665は省略されてよい。
(5)上記各実施例では、端末装置との常時接続を確立すべき1つの接続処理部10の決定(図3:S120-S160)は、ラベル情報を使用して行われる。具体的には、接続処理部10の決定処理(S120-S160)では、端末装置の詳細な情報に代えて、割当ラベル情報が使用される。従って、端末装置の詳細な情報を使用する場合と比べて、容易に決定処理を構築できる。また、端末装置に割り当てられる割当ラベル情報、または、接続処理部10に付与されるラベル情報を変更することによって、端末装置と接続処理部10との対応関係は、容易に変更可能である。なお、割当ラベル情報には、複数の接続処理部10が対応付けられてよい。これに代えて、割当ラベル情報には、1個の接続処理部10が対応付けられてよい。
(6)端末装置との常時接続を確立すべき1つの接続処理部10の決定は、ラベル情報を使用せずに行われてよい。例えば、S160(図3)で、クラスタ管理サーバ30のプロセッサ30pは、ラベル情報を使用せずに、端末装置に関連する詳細な情報を使用して接続処理部10を選択するように構成されてよい。
また、プロセッサ30pは、端末装置に関連する情報を使用せずに、複数の接続処理部10の間の負荷の偏り、または、複数の接続処理部10の間の常時接続の数の偏りが、小さくなるように、接続処理部10を選択してよい。例えば、S160(図3)で、プロセッサ30pは、S665、S670(図5)の処理を実行してよい。図5のS610-S660は省略される。また、図3のS120-S140は省略される。
また、プロセッサ30pは、S160(図3)で、端末装置に関連する情報、接続処理部10の負荷、接続処理部10の常時接続の数を使用せずに、ラウンドロビンによって、接続処理部10を選択してよい。図3のS120-S140は省略される。
また、プロセッサ30pは、S160(図3)で、予め決められた特定条件を満たす複数の端末装置に対して同じ接続処理部10を選択するように構成されてよい。ここで、特定条件は、任意の条件であってよい。例えば、特定条件は、端末装置が上記の項目GA-GK(図8-図10)から予め選択された項目の予め選択された選択肢に属することであってよい。
(7)常時接続のためのサーバシステムの構成は、図1のサーバシステム100の構成に代えて、他の任意の構成であってよい。例えば、接続処理部10からは、ロードバランサ11が省略されてよい。ここで、S230(図3)で1つのノード13を選択する方法は、任意の方法であってよい。例えば、ノードクラスタ12に含まれる複数のノード13は、協議によって、常時接続のための1個のノード13を選択してよい。
ノード13は、コンピュータに代えて、ASIC(application specific integrated circuit)などの専用のハードウェア回路によって構成されてよい。サーバシステム100の他の装置(例えば、装置11、20、30、40、50)も、同様に、専用のハードウェア回路によって構成されてよい。
複数の接続処理部10を制御する制御部5の構成は、図1の構成に代えて、他の任意の構成であってよい。例えば、クラスタ管理サーバ30は、管理ロードバランサ20の機能を有し、管理ロードバランサ20は、省略されてよい。また、制御サーバ50は、選択サーバ40の機能を有し、選択サーバ40は、省略されてよい。また、制御部5は、1以上の任意の数のサーバ装置で構成されてよい。制御部5は、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータ)を含んでよい。
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
5…制御部、10、10A-10C…接続処理部、11、11A-11C…ロードバランサ、12、12A-12C…ノードクラスタ、13、13A-13C…ノード、20…管理ロードバランサ、30…クラスタ管理サーバ、40…選択サーバ、50…制御サーバ、70…サービスサーバ、80…管理端末、90A…第1端末装置、90B…第2端末装置、90PR…印刷実行部、95…ユーザ端末、100…サーバシステム、1000…システム、NT…ネットワーク

Claims (11)

  1. 常時接続のためのサーバシステムであって、
    複数の常時接続処理部と、
    制御部と、を備え、
    前記複数の常時接続処理部のそれぞれは、複数の常時接続実行部を含み、
    前記制御部は、
    端末装置からの常時接続のための第1要求を受信する受信処理と、
    前記第1要求に応じて、前記複数の常時接続処理部のうち、前記端末装置との常時接続を確立すべき1つの常時接続処理部である対象常時接続処理部を決定する決定処理と、
    前記対象常時接続処理部の決定の後に、常時接続のための第2要求の宛先を示す宛先データであって、前記対象常時接続処理部を示す宛先データを前記端末装置に送信する送信処理と、
    を実行するように構成され、
    前記対象常時接続処理部は、前記端末装置からの前記第2要求に応じて、前記対象常時接続処理部に含まれる複数の常時接続実行部のうちの1つの常時接続実行部と前記端末装置との常時接続を確立するように構成されている、
    サーバシステム。
  2. 請求項1に記載のサーバシステムであって、
    前記制御部は、前記決定処理において、前記端末装置の仕様に関連する情報である端末仕様情報を含む1以上の情報を使用して、前記対象常時接続処理部を決定するように構成されている、
    サーバシステム。
  3. 請求項1または2に記載のサーバシステムであって、
    前記制御部は、前記決定処理において、前記端末装置のユーザに対応付けられる情報であるユーザ情報を含む1以上の情報を使用して、前記対象常時接続処理部を決定するように構成されている、
    サーバシステム。
  4. 請求項1から3のいずれかに記載のサーバシステムであって、
    前記制御部は、前記決定処理において、前記複数の常時接続処理部のそれぞれの状態を示す状態情報を含む1以上の情報を使用して、前記対象常時接続処理部を決定するように構成されている、
    サーバシステム。
  5. 請求項1から4のいずれかに記載のサーバシステムであって、
    前記制御部は、前記決定処理において、前記端末装置によって使用可能なサービスに関連するサービス情報を含む1以上の情報を使用して、前記対象常時接続処理部を決定するように構成されている、
    サーバシステム。
  6. 請求項1から5のいずれかに記載のサーバシステムであって、
    前記制御部は、前記決定処理において、前記端末装置の通信履歴に関連する履歴情報を含む1以上の情報を使用して、前記対象常時接続処理部を決定するように構成されている、
    サーバシステム。
  7. 請求項1から6のいずれかに記載のサーバシステムであって、
    前記複数の常時接続処理部のそれぞれには、予め、ラベル情報が付与されており、
    前記制御部は、前記決定処理において、
    前記端末装置に割り当てるべきラベル情報である割当ラベル情報を決定する割当ラベル決定処理と、
    前記複数の常時接続処理部のうち、前記割当ラベル情報が付与されている常時接続処理部を、前記対象常時接続処理部として決定する処理部決定処理と、
    を実行するように構成されている、サーバシステム。
  8. 請求項7に記載のサーバシステムであって、
    前記制御部は、前記処理部決定処理において、
    前記複数の常時接続処理部が、前記割当ラベル情報が付与されている複数の常時接続処理部である複数の候補処理部を含む場合に、前記複数の候補処理部の間の負荷の偏り、または、前記複数の候補処理部の間の常時接続の数の偏りが、小さくなるように、前記複数の候補処理部から前記対象常時接続処理部を決定するように構成されている、
    サーバシステム。
  9. 請求項1に記載のサーバシステムであって、
    前記制御部は、前記決定処理において、前記複数の常時接続処理部の間の負荷の偏り、または、前記複数の常時接続処理部の間の常時接続の数の偏りが、小さくなるように、前記対象常時接続処理部を決定するように構成されている、
    サーバシステム。
  10. 請求項1に記載のサーバシステムであって、
    前記制御部は、前記決定処理において、予め決められた条件を満たす複数の端末装置に対して同じ常時接続処理部を前記対象常時接続処理部として決定するように構成されている、
    サーバシステム。
  11. 請求項1から10のいずれかに記載のサーバシステムであって、
    前記複数の常時接続処理部のそれぞれは、前記常時接続処理部によって受信された前記第2要求を前記複数の常時接続実行部に分配するように構成されたロードバランサを含み、
    前記宛先データは、前記対象常時接続処理部に含まれる前記ロードバランサを示している、
    サーバシステム。
JP2021189190A 2021-11-22 2021-11-22 サーバシステム Pending JP2023076038A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021189190A JP2023076038A (ja) 2021-11-22 2021-11-22 サーバシステム
US18/053,594 US11943685B2 (en) 2021-11-22 2022-11-08 Server system
EP22205998.2A EP4184891B1 (en) 2021-11-22 2022-11-08 Server system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021189190A JP2023076038A (ja) 2021-11-22 2021-11-22 サーバシステム

Publications (1)

Publication Number Publication Date
JP2023076038A true JP2023076038A (ja) 2023-06-01

Family

ID=84367500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021189190A Pending JP2023076038A (ja) 2021-11-22 2021-11-22 サーバシステム

Country Status (3)

Country Link
US (1) US11943685B2 (ja)
EP (1) EP4184891B1 (ja)
JP (1) JP2023076038A (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9866475B2 (en) * 2012-06-15 2018-01-09 Citrix Systems, Inc. Systems and methods for forwarding traffic in a cluster network
US9871712B1 (en) * 2013-04-16 2018-01-16 Amazon Technologies, Inc. Health checking in a distributed load balancer
CN104683435B (zh) 2013-11-27 2018-12-14 夏普株式会社 网络系统、保持连接方法、电子设备、服务器
JP5940566B2 (ja) 2014-01-15 2016-06-29 シャープ株式会社 ネットワークシステム、常時接続方法、サーバ、電子機器、プログラム
US10104166B2 (en) * 2014-05-20 2018-10-16 Citrix Systems, Inc. Systems and methods for providing load balancing as a service
US10230683B1 (en) * 2018-02-09 2019-03-12 Capital One Services, Llc Routing for large server deployments

Also Published As

Publication number Publication date
US20230164213A1 (en) 2023-05-25
EP4184891B1 (en) 2024-08-28
US11943685B2 (en) 2024-03-26
EP4184891A1 (en) 2023-05-24

Similar Documents

Publication Publication Date Title
US10374955B2 (en) Managing network computing components utilizing request routing
US7159034B1 (en) System broadcasting ARP request from a server using a different IP address to balance incoming traffic load from clients via different network interface cards
JP4616159B2 (ja) クラスタシステム、ロードバランサ、ノード振替方法およびノード振替プログラム
US20060206611A1 (en) Method and system for managing programs with network address
CN101316236B (zh) Vrrp备份组负载分担方法及路由器
US20190222660A1 (en) Method for monitoring a status in form of presence and/or absence of a network entity
US7441035B2 (en) Reliable server pool
CN111615066A (zh) 一种基于广播的分布式微服务注册及调用方法
US10367680B2 (en) Network relay apparatus, gateway redundancy system, program, and redundancy method
JP4677482B2 (ja) アクセス振分システム、サーバ装置、共通管理装置、アクセス振分装置、アクセス振分方法、及び、コンピュータプログラム
US20040049546A1 (en) Mail processing system
US20030126262A1 (en) Method for assigning setting information for conection to external network
JP2000307657A (ja) ホスト・クラスタのためのネットワーク・ディスパッチャを利用するデータ伝送システムにおけるルータ監視システム
US7239643B2 (en) Method for assigning setting information for connection to external network
JP2009296128A (ja) 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
CN101197811B (zh) 提高代理方式下动态主机配置协议中服务器可靠性的方法
JP3896897B2 (ja) ルータ設定方法およびルータ
CN111193778B (zh) 一种web服务负载均衡的方法及装置
CN106375210A (zh) 实现vrrp下行负载均衡的方法和路由设备
JP6859782B2 (ja) 情報処理装置、通信システム、通信経路制御方法、およびプログラム
JP2023076038A (ja) サーバシステム
JP2011061608A (ja) 仮想サーバ管理システム、画像処理システム、仮想サーバ管理装置及び制御プログラム
JP2018061148A (ja) 通信装置、中継装置、通信システム、及び通信方法
JP6958481B2 (ja) 遠隔管理システムおよび情報処理方法
CN105208435B (zh) Iptv系统中的数据处理方法及网元设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20241022