特許第6623797号(P6623797)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ コニカミノルタ株式会社の特許一覧

特許6623797通信システム、通信中継装置およびプログラム
<>
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000002
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000003
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000004
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000005
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000006
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000007
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000008
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000009
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000010
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000011
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000012
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000013
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000014
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000015
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000016
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000017
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000018
  • 特許6623797-通信システム、通信中継装置およびプログラム 図000019
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6623797
(24)【登録日】2019年12月6日
(45)【発行日】2019年12月25日
(54)【発明の名称】通信システム、通信中継装置およびプログラム
(51)【国際特許分類】
   H04L 12/66 20060101AFI20191216BHJP
   H04L 12/70 20130101ALI20191216BHJP
【FI】
   H04L12/66 A
   H04L12/70 A
【請求項の数】22
【全頁数】43
(21)【出願番号】特願2016-16135(P2016-16135)
(22)【出願日】2016年1月29日
(65)【公開番号】特開2017-135658(P2017-135658A)
(43)【公開日】2017年8月3日
【審査請求日】2018年9月14日
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】100117673
【弁理士】
【氏名又は名称】中島 了
(72)【発明者】
【氏名】河野 高廣
【審査官】 羽岡 さやか
(56)【参考文献】
【文献】 特開2016−015561(JP,A)
【文献】 特開2003−143212(JP,A)
【文献】 特開2014−082739(JP,A)
【文献】 特表2011−517356(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00−12/955
G06F 3/12
(57)【特許請求の範囲】
【請求項1】
通信システムであって、
ファイアウォールの内側に設けられる少なくとも1つのデバイスと、
前記ファイアウォールの外側に設けられる少なくとも1つのクラウドサーバと、
前記少なくとも1つのデバイスと前記少なくとも1つのクラウドサーバで実行される少なくとも1つのアプリケーションとの間の通信を中継する通信中継装置と、
を備え、
前記通信中継装置は、
前記少なくとも1つのデバイスのいずれか或いは前記少なくとも1つのアプリケーションのいずれかからの通信依頼に基づく接続要求であって、前記通信中継装置と前記少なくとも1つのアプリケーションのうちの一のアプリケーションとの間での個別接続を確立すべき旨の接続要求を受信する通信制御手段と、
前記通信中継装置と前記少なくとも1つのアプリケーションとの間で確立される個別接続の接続数の上限値であってアプリケーションごとの上限値であるアプリケーション別上限値を、前記通信中継装置との間で個別接続を確立しているアプリケーションの個数の現在値に基づいて決定する決定手段と、
前記通信制御手段は、
前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数が前記一のアプリケーション向けの前記アプリケーション別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立するとともに、
前記通信中継装置との間で現在確立されている個別接続の合計接続数が前記アプリケーション別上限値を超えているアプリケーションである高負荷アプリケーションが存在する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト時間間隔を増大することを特徴とする通信システム。
【請求項2】
請求項1に記載の通信システムにおいて、
前記決定手段は、前記通信中継装置との個別接続を既に確立しているアプリケーション以外のアプリケーションとの間で更なる個別接続を確立すべき旨の接続要求が受信されると、前記アプリケーション別上限値を低減し、
前記通信制御手段は、前記アプリケーション別上限値の低減に応じて前記高負荷アプリケーションが発生する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト時間間隔を増大することを特徴とする通信システム。
【請求項3】
請求項1または請求項2に記載の通信システムにおいて、
前記決定手段は、前記通信中継装置において前記少なくとも1つのアプリケーションとの間で確立可能な個別接続の最大数と、前記通信中継装置との個別接続が確立しているアプリケーションの個数の現在値とに基づいて、前記アプリケーション別上限値を決定することを特徴とする通信システム。
【請求項4】
請求項1または請求項2に記載の通信システムにおいて、
前記決定手段は、前記通信中継装置において前記少なくとも1つのアプリケーションとの間で確立可能な個別接続の最大数を、前記通信中継装置との個別接続が現在確立している複数のアプリケーションに対して均等に分配することによって、前記アプリケーション別上限値を決定することを特徴とする通信システム。
【請求項5】
請求項1または請求項2に記載の通信システムにおいて、
前記決定手段は、前記通信中継装置との間で個別接続を現在確立している複数のアプリケーションのそれぞれに関して、前記複数のアプリケーションと前記通信中継装置との接続履歴情報に基づいて、前記アプリケーション別上限値をアプリケーションごとに決定することを特徴とする通信システム。
【請求項6】
請求項5に記載の通信システムにおいて、
前記決定手段は、前記複数のアプリケーションと前記通信中継装置との過去の接続における通信負荷の多寡を示す指標値の比率に基づいて前記通信中継装置の最大接続数を前記複数のアプリケーションに分配することによって、前記アプリケーション別上限値をアプリケーションごとに決定することを特徴とする通信システム。
【請求項7】
請求項1から請求項6のいずれかに記載の通信システムにおいて、
前記通信制御手段は、前記接続要求が第1の種類の通信依頼と第2の種類の通信依頼とのうちのいずれの種類の通信依頼に基づくものであるかを判定し、
前記第1の種類の通信依頼は、前記少なくとも1つのアプリケーション側から前記少なくとも1つのデバイス側へ向かう向きに発せられる通信依頼であり、
前記第2の種類の通信依頼は、前記少なくとも1つのデバイス側から前記少なくとも1つのアプリケーション側へ向かう向きに発せられる通信依頼であり、
前記決定手段は、前記アプリケーション別上限値を前記第1の種類の通信依頼と前記第2の種類の通信依頼とに対して分配した種類別上限値をも決定し、
前記通信制御手段は、前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数のうち、前記接続要求の通信依頼種類と同じ種類である特定種類の通信依頼に基づく個別接続の個数が、前記一のアプリケーション向け且つ前記特定種類の通信依頼向けの前記種類別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立することを特徴とする通信システム。
【請求項8】
請求項7に記載の通信システムにおいて、
前記通信制御手段は、前記通信中継装置との間で現在確立されている個別接続のうち所定種類の通信依頼に基づく個別接続の合計接続数が前記所定種類の通信依頼に対応する前記種類別上限値を超えているアプリケーションである種類別高負荷アプリケーションが存在する場合、前記種類別高負荷アプリケーションと前記通信中継装置との通信であって前記所定種類の通信依頼に対応する通信におけるリクエスト時間間隔を増大することを特徴とする通信システム。
【請求項9】
請求項7または請求項8に記載の通信システムにおいて、
前記決定手段は、前記第2の種類の通信依頼向けの前記種類別上限値を、前記第1の種類の通信依頼向けの前記種類別上限値よりも大きな値として決定することを特徴とする通信システム。
【請求項10】
請求項7から請求項9のいずれかに記載の通信システムにおいて、
前記通信制御手段は、前記接続要求が第1の種類の通信依頼と第2の種類の通信依頼とのうちのいずれの種類の通信依頼に基づくものであるかを、前記接続要求の通信プロトコルに基づいて判定することを特徴とする通信システム。
【請求項11】
請求項1から請求項10のいずれかに記載の通信システムにおいて、
前記少なくとも1つのデバイスと前記少なくとも1つのアプリケーションとの間の通信であって前記通信中継装置を介した通信を管理する管理サーバ、
をさらに備え、
前記管理サーバは、
個別接続に関する前記通信中継装置内での現在の待機状況に関する情報である待機状況情報を取得する手段と、
前記少なくとも1つのアプリケーション側から前記少なくとも1つのデバイス側へ向かう向きに発せられる通信依頼である第1の種類の通信依頼を前記少なくとも1つのアプリケーションのいずれかから受信すると、前記待機状況情報に基づいて、前記第1の種類の通信依頼に基づく接続要求を直ちに前記通信中継装置に送信するか或るいは前記第1の種類の通信依頼に基づく接続要求の送信を暫時保留するかを決定する手段と、
を有することを特徴とする通信システム。
【請求項12】
ファイアウォールの内側に設けられる少なくとも1つのデバイスと前記ファイアウォールの外側に設けられる少なくとも1つのクラウドサーバで実行される少なくとも1つのアプリケーションとの間の通信を中継する通信中継装置であって、
前記少なくとも1つのデバイスのいずれか或いは前記少なくとも1つのアプリケーションのいずれかからの通信依頼に基づく接続要求であって、前記通信中継装置と前記少なくとも1つのアプリケーションのうちの一のアプリケーションとの間での個別接続を確立すべき旨の接続要求を受信する通信制御手段と、
前記通信中継装置と前記少なくとも1つのアプリケーションとの間で確立される個別接続の接続数の上限値であってアプリケーションごとの上限値であるアプリケーション別上限値を、前記通信中継装置との間で個別接続を確立しているアプリケーションの個数の現在値に基づいて決定する決定手段と、
を備え、
前記通信制御手段は、
前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数が前記一のアプリケーション向けの前記アプリケーション別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立するとともに、
前記通信中継装置との間で現在確立されている個別接続の合計接続数が前記アプリケーション別上限値を超えているアプリケーションである高負荷アプリケーションが存在する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト間隔を増大することを特徴とする通信中継装置。
【請求項13】
請求項12に記載の通信中継装置において、
前記決定手段は、前記通信中継装置との個別接続を既に確立しているアプリケーション以外のアプリケーションとの間で更なる個別接続を確立すべき旨の接続要求が受信されると、前記アプリケーション別上限値を低減し、
前記通信制御手段は、前記アプリケーション別上限値の低減に応じて前記高負荷アプリケーションが発生する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト時間間隔を増大することを特徴とする通信中継装置。
【請求項14】
請求項12または請求項13に記載の通信中継装置において、
前記決定手段は、前記通信中継装置において前記少なくとも1つのアプリケーションとの間で確立可能な個別接続の最大数と、前記通信中継装置との個別接続が確立しているアプリケーションの個数の現在値とに基づいて、前記アプリケーション別上限値を決定することを特徴とする通信中継装置。
【請求項15】
請求項12または請求項13に記載の通信中継装置において、
前記決定手段は、前記通信中継装置において前記少なくとも1つのアプリケーションとの間で確立可能な個別接続の最大数を、前記通信中継装置との個別接続が現在確立している複数のアプリケーションで分配することによって、前記アプリケーション別上限値を決定することを特徴とする通信中継装置。
【請求項16】
請求項12または請求項13に記載の通信中継装置において、
前記決定手段は、前記通信中継装置との間で個別接続を現在確立している複数のアプリケーションのそれぞれに関して、前記複数のアプリケーションと前記通信中継装置との接続履歴情報に基づいて、前記アプリケーション別上限値をアプリケーションごとに決定することを特徴とする通信中継装置。
【請求項17】
請求項16に記載の通信中継装置において、
前記決定手段は、前記複数のアプリケーションと前記通信中継装置との過去の接続における通信負荷の多寡を示す指標値の比率に基づいて前記通信中継装置の最大接続数を前記複数のアプリケーションに分配することによって、前記アプリケーション別上限値をアプリケーションごとに決定することを特徴とする通信中継装置。
【請求項18】
請求項12に記載の通信中継装置において、
前記通信制御手段は、前記接続要求が第1の種類の通信依頼と第2の種類の通信依頼とのうちのいずれの種類の通信依頼に基づくものであるかを判定し、
前記第1の種類の通信依頼は、前記少なくとも1つのアプリケーション側から前記少なくとも1つのデバイス側へ向かう向きに発せられる通信依頼であり、
前記第2の種類の通信依頼は、前記少なくとも1つのデバイス側から前記少なくとも1つのアプリケーション側へ向かう向きに発せられる通信依頼であり、
前記決定手段は、前記アプリケーション別上限値を前記第1の種類の通信依頼と前記第2の種類の通信依頼とに分配した種類別上限値をも決定し、
前記通信制御手段は、
前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数のうち、前記接続要求の通信依頼種類と同じ種類である特定種類の通信依頼に基づく個別接続の個数が、前記一のアプリケーション向け且つ前記特定種類の通信依頼向けの前記種類別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立することを特徴とする通信中継装置。
【請求項19】
請求項18に記載の通信中継装置において、
前記通信制御手段は、前記通信中継装置との間で現在確立されている個別接続のうち所定種類の通信依頼に基づく個別接続の合計接続数が前記所定種類の通信依頼に対応する前記種類別上限値を超えているアプリケーションである種類別高負荷アプリケーションが存在する場合、前記種類別高負荷アプリケーションと前記通信中継装置との通信接続であって前記所定種類の通信依頼に対応する通信接続におけるリクエスト時間間隔を増大することを特徴とする通信中継装置。
【請求項20】
請求項18または請求項19に記載の通信中継装置において、
前記決定手段は、前記第2の種類の通信依頼向けの前記種類別上限値を、前記第1の種類の通信依頼向けの前記種類別上限値よりも大きな値として決定することを特徴とする通信中継装置。
【請求項21】
請求項18から請求項20のいずれかに記載の通信中継装置において、
前記通信制御手段は、前記接続要求が第1の種類の通信依頼と第2の種類の通信依頼とのうちのいずれの種類の通信依頼に基づくものであるかを、前記接続要求の通信プロトコルに基づいて判定することを特徴とする通信中継装置。
【請求項22】
ファイアウォールの内側に設けられる少なくとも1つのデバイスと前記ファイアウォールの外側に設けられる少なくとも1つのクラウドサーバで実行される少なくとも1つのアプリケーションとの間の通信を中継する通信中継装置に内蔵されたコンピュータに、
a)前記少なくとも1つのデバイスのいずれか或いは前記少なくとも1つのアプリケーションのいずれかからの通信依頼に基づく接続要求であって、前記通信中継装置と前記少なくとも1つのアプリケーションのうちの一のアプリケーションとの間での個別接続を確立すべき旨の接続要求を受信するステップと、
b)前記通信中継装置と前記少なくとも1つのアプリケーションとの間で確立される個別接続の接続数の上限値であってアプリケーションごとの上限値であるアプリケーション別上限値を、前記通信中継装置との間で個別接続を確立しているアプリケーションの個数の現在値に基づいて決定するステップと、
c)前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数が前記一のアプリケーション向けの前記アプリケーション別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立するステップと、
d)前記通信中継装置との間で現在確立されている個別接続の合計接続数が前記アプリケーション別上限値を超えているアプリケーションである高負荷アプリケーションが存在する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト間隔を増大するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ファイアウォールの外側のクラウドサーバとファイアウォールの内側のデバイスとの間の通信を行う通信システム、およびそれに関連する技術に関する。
【背景技術】
【0002】
LAN外部のサーバ(クラウドサーバ等)とLAN内部のデバイス(画像形成装置等)との連携を図る技術が存在する。
【0003】
たとえば、クラウド上のサーバ(クラウドサーバ)に格納された電子文書をローカル側(LAN内部)の画像形成装置(MFP(Multi-Functional Peripheral)等)を用いて印刷出力する技術が存在する(特許文献1参照)。
【0004】
特許文献1には、画像形成装置(デバイス)とゲートウエイとクラウドサーバとを備える文書出力システム(通信システム)が示されている。このシステムにおいては、クラウドサーバに格納された電子文書がゲートウエイ等を介して画像形成装置に送信され、画像形成装置において当該電子文書の印刷出力が行われる。なお、ゲートウエイおよび画像形成装置(デバイス)はLANの内部に設けられており、クラウドサーバはLANの外部に設けられている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2013−73578号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のような通信システムにおいては、複数のデバイス(MFP等)とクラウドサーバにインストールされたアプリケーション(プログラム)との間においては、秘匿性を確保する等のため、個々に形成された通信接続である個別接続を用いた通信が行われる。当該個別接続としては、HTTP(詳細にはHTTPS)によるトンネル接続等が利用される。
【0007】
ところで、当該通信システムにおいて、処理要求のタイミングが重なった場合等において、短期的且つ急激な通信トラフィックの増加(すなわち突発的な負荷上昇)が発生し得る。
【0008】
定常的な負荷上昇(たとえば、ユーザの増加および画像形成装置(MFP等)の増加に起因する負荷上昇)に対しては、ユーザの人数および画像形成装置の台数等を事前に把握し通信システムのハードウエア能力を増大することによって、対処することが可能である。
【0009】
しかしながら、当該通信システムにおいては、当該定常的な負荷上昇の他、上述のような突発的な負荷上昇も発生する。当該突発的な負荷上昇に対してシステムのハードウエア能力をリアルタイムで向上させることは困難である。特に、顧客企業等に配置された装置(オンプレミス側の装置(ゲートウエイ等))のハードウエア能力をリアルタイムで向上させることは非常に困難である。
【0010】
そのため、クラウドサーバにインストールされた或るアプリケーション(特定アプリケーション)とゲートウエイとの通信の負荷が突発的に上昇した場合には、当該通信システム内のゲートウエイに比較的大きな負荷が発生するとともに、当該比較的大きな負荷に起因して当該ゲートウエイの処理が遅延する。その結果、当該特定アプリケーション以外のアプリケーションの利用者にも悪影響が及ぶ。
【0011】
そこで、この発明は、特定のアプリケーションの利用集中が突発的に発生した場合であっても他のアプリケーションの利用者に悪影響が及ぶことを回避ないし抑制することが可能な技術を提供することを課題とする。
【課題を解決するための手段】
【0012】
上記課題を解決すべく、請求項1の発明は、通信システムであって、ファイアウォールの内側に設けられる少なくとも1つのデバイスと、前記ファイアウォールの外側に設けられる少なくとも1つのクラウドサーバと、前記少なくとも1つのデバイスと前記少なくとも1つのクラウドサーバで実行される少なくとも1つのアプリケーションとの間の通信を中継する通信中継装置と、を備え、前記通信中継装置は、前記少なくとも1つのデバイスのいずれか或いは前記少なくとも1つのアプリケーションのいずれかからの通信依頼に基づく接続要求であって、前記通信中継装置と前記少なくとも1つのアプリケーションのうちの一のアプリケーションとの間での個別接続を確立すべき旨の接続要求を受信する通信制御手段と、前記通信中継装置と前記少なくとも1つのアプリケーションとの間で確立される個別接続の接続数の上限値であってアプリケーションごとの上限値であるアプリケーション別上限値を、前記通信中継装置との間で個別接続を確立しているアプリケーションの個数の現在値に基づいて決定する決定手段と、を有し、前記通信制御手段は、前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数が前記一のアプリケーション向けの前記アプリケーション別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立するとともに、前記通信中継装置との間で現在確立されている個別接続の合計接続数が前記アプリケーション別上限値を超えているアプリケーションである高負荷アプリケーションが存在する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト時間間隔を増大することを特徴とする。
【0013】
請求項2の発明は、請求項1の発明に係る通信システムにおいて、前記決定手段は、前記通信中継装置との個別接続を既に確立しているアプリケーション以外のアプリケーションとの間で更なる個別接続を確立すべき旨の接続要求が受信されると、前記アプリケーション別上限値を低減し、前記通信制御手段は、前記アプリケーション別上限値の低減に応じて前記高負荷アプリケーションが発生する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト時間間隔を増大することを特徴とする。
【0014】
請求項3の発明は、請求項1または請求項2の発明に係る通信システムにおいて、前記決定手段は、前記通信中継装置において前記少なくとも1つのアプリケーションとの間で確立可能な個別接続の最大数と、前記通信中継装置との個別接続が確立しているアプリケーションの個数の現在値とに基づいて、前記アプリケーション別上限値を決定することを特徴とする。
【0015】
請求項4の発明は、請求項1または請求項2の発明に係る通信システムにおいて、前記決定手段は、前記通信中継装置において前記少なくとも1つのアプリケーションとの間で確立可能な個別接続の最大数を、前記通信中継装置との個別接続が現在確立している複数のアプリケーションに対して均等に分配することによって、前記アプリケーション別上限値を決定することを特徴とする。
【0016】
請求項5の発明は、請求項1または請求項2の発明に係る通信システムにおいて、前記決定手段は、前記通信中継装置との間で個別接続を現在確立している複数のアプリケーションのそれぞれに関して、前記複数のアプリケーションと前記通信中継装置との接続履歴情報に基づいて、前記アプリケーション別上限値をアプリケーションごとに決定することを特徴とする。
【0017】
請求項6の発明は、請求項5の発明に係る通信システムにおいて、前記決定手段は、前記複数のアプリケーションと前記通信中継装置との過去の接続における通信負荷の多寡を示す指標値の比率に基づいて前記通信中継装置の最大接続数を前記複数のアプリケーションに分配することによって、前記アプリケーション別上限値をアプリケーションごとに決定することを特徴とする。
【0018】
請求項7の発明は、請求項1から請求項6のいずれかの発明に係る通信システムにおいて、前記通信制御手段は、前記接続要求が第1の種類の通信依頼と第2の種類の通信依頼とのうちのいずれの種類の通信依頼に基づくものであるかを判定し、前記第1の種類の通信依頼は、前記少なくとも1つのアプリケーション側から前記少なくとも1つのデバイス側へ向かう向きに発せられる通信依頼であり、前記第2の種類の通信依頼は、前記少なくとも1つのデバイス側から前記少なくとも1つのアプリケーション側へ向かう向きに発せられる通信依頼であり、前記決定手段は、前記アプリケーション別上限値を前記第1の種類の通信依頼と前記第2の種類の通信依頼とに対して分配した種類別上限値をも決定し、前記通信制御手段は、前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数のうち、前記接続要求の通信依頼種類と同じ種類である特定種類の通信依頼に基づく個別接続の個数が、前記一のアプリケーション向け且つ前記特定種類の通信依頼向けの前記種類別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立することを特徴とする。
【0019】
請求項8の発明は、請求項7の発明に係る通信システムにおいて、前記通信制御手段は、前記通信中継装置との間で現在確立されている個別接続のうち所定種類の通信依頼に基づく個別接続の合計接続数が前記所定種類の通信依頼に対応する前記種類別上限値を超えているアプリケーションである種類別高負荷アプリケーションが存在する場合、前記種類別高負荷アプリケーションと前記通信中継装置との通信であって前記所定種類の通信依頼に対応する通信におけるリクエスト時間間隔を増大することを特徴とする。
【0020】
請求項9の発明は、請求項7または請求項8の発明に係る通信システムにおいて、前記決定手段は、前記第2の種類の通信依頼向けの前記種類別上限値を、前記第1の種類の通信依頼向けの前記種類別上限値よりも大きな値として決定することを特徴とする。
【0021】
請求項10の発明は、請求項7から請求項9のいずれかの発明に係る通信システムにおいて、前記通信制御手段は、前記接続要求が第1の種類の通信依頼と第2の種類の通信依頼とのうちのいずれの種類の通信依頼に基づくものであるかを、前記接続要求の通信プロトコルに基づいて判定することを特徴とする。
【0022】
請求項11の発明は、請求項1から請求項10のいずれかの発明に係る通信システムにおいて、前記少なくとも1つのデバイスと前記少なくとも1つのアプリケーションとの間の通信であって前記通信中継装置を介した通信を管理する管理サーバ、をさらに備え、前記管理サーバは、個別接続に関する前記通信中継装置内での現在の待機状況に関する情報である待機状況情報を取得する手段と、前記少なくとも1つのアプリケーション側から前記少なくとも1つのデバイス側へ向かう向きに発せられる通信依頼である第1の種類の通信依頼を前記少なくとも1つのアプリケーションのいずれかから受信すると、前記待機状況情報に基づいて、前記第1の種類の通信依頼に基づく接続要求を直ちに前記通信中継装置に送信するか或るいは前記第1の種類の通信依頼に基づく接続要求の送信を暫時保留するかを決定する手段と、を有することを特徴とする。
【0023】
請求項12の発明は、ファイアウォールの内側に設けられる少なくとも1つのデバイスと前記ファイアウォールの外側に設けられる少なくとも1つのクラウドサーバで実行される少なくとも1つのアプリケーションとの間の通信を中継する通信中継装置であって、前記少なくとも1つのデバイスのいずれか或いは前記少なくとも1つのアプリケーションのいずれかからの通信依頼に基づく接続要求であって、前記通信中継装置と前記少なくとも1つのアプリケーションのうちの一のアプリケーションとの間での個別接続を確立すべき旨の接続要求を受信する通信制御手段と、前記通信中継装置と前記少なくとも1つのアプリケーションとの間で確立される個別接続の接続数の上限値であってアプリケーションごとの上限値であるアプリケーション別上限値を、前記通信中継装置との間で個別接続を確立しているアプリケーションの個数の現在値に基づいて決定する決定手段と、を備え、前記通信制御手段は、前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数が前記一のアプリケーション向けの前記アプリケーション別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立するとともに、前記通信中継装置との間で現在確立されている個別接続の合計接続数が前記アプリケーション別上限値を超えているアプリケーションである高負荷アプリケーションが存在する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト間隔を増大することを特徴とする。
【0024】
請求項13の発明は、請求項12の発明に係る通信中継装置において、前記決定手段は、前記通信中継装置との個別接続を既に確立しているアプリケーション以外のアプリケーションとの間で更なる個別接続を確立すべき旨の接続要求が受信されると、前記アプリケーション別上限値を低減し、前記通信制御手段は、前記アプリケーション別上限値の低減に応じて前記高負荷アプリケーションが発生する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト時間間隔を増大することを特徴とする。
【0025】
請求項14の発明は、請求項12または請求項13の発明に係る通信中継装置において、前記決定手段は、前記通信中継装置において前記少なくとも1つのアプリケーションとの間で確立可能な個別接続の最大数と、前記通信中継装置との個別接続が確立しているアプリケーションの個数の現在値とに基づいて、前記アプリケーション別上限値を決定することを特徴とする。
【0026】
請求項15の発明は、請求項12または請求項13の発明に係る通信中継装置において、前記決定手段は、前記通信中継装置において前記少なくとも1つのアプリケーションとの間で確立可能な個別接続の最大数を、前記通信中継装置との個別接続が現在確立している複数のアプリケーションで分配することによって、前記アプリケーション別上限値を決定することを特徴とする。
【0027】
請求項16の発明は、請求項12または請求項13の発明に係る通信中継装置において、前記決定手段は、前記通信中継装置との間で個別接続を現在確立している複数のアプリケーションのそれぞれに関して、前記複数のアプリケーションと前記通信中継装置との接続履歴情報に基づいて、前記アプリケーション別上限値をアプリケーションごとに決定することを特徴とする。
【0028】
請求項17の発明は、請求項16の発明に係る通信中継装置において、前記決定手段は、前記複数のアプリケーションと前記通信中継装置との過去の接続における通信負荷の多寡を示す指標値の比率に基づいて前記通信中継装置の最大接続数を前記複数のアプリケーションに分配することによって、前記アプリケーション別上限値をアプリケーションごとに決定することを特徴とする。
【0029】
請求項18の発明は、請求項12の発明に係る通信中継装置において、前記通信制御手段は、前記接続要求が第1の種類の通信依頼と第2の種類の通信依頼とのうちのいずれの種類の通信依頼に基づくものであるかを判定し、前記第1の種類の通信依頼は、前記少なくとも1つのアプリケーション側から前記少なくとも1つのデバイス側へ向かう向きに発せられる通信依頼であり、前記第2の種類の通信依頼は、前記少なくとも1つのデバイス側から前記少なくとも1つのアプリケーション側へ向かう向きに発せられる通信依頼であり、前記決定手段は、前記アプリケーション別上限値を前記第1の種類の通信依頼と前記第2の種類の通信依頼とに分配した種類別上限値をも決定し、前記通信制御手段は、前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数のうち、前記接続要求の通信依頼種類と同じ種類である特定種類の通信依頼に基づく個別接続の個数が、前記一のアプリケーション向け且つ前記特定種類の通信依頼向けの前記種類別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立することを特徴とする。
【0030】
請求項19の発明は、請求項18の発明に係る通信中継装置において、前記通信制御手段は、前記通信中継装置との間で現在確立されている個別接続のうち所定種類の通信依頼に基づく個別接続の合計接続数が前記所定種類の通信依頼に対応する前記種類別上限値を超えているアプリケーションである種類別高負荷アプリケーションが存在する場合、前記種類別高負荷アプリケーションと前記通信中継装置との通信接続であって前記所定種類の通信依頼に対応する通信接続におけるリクエスト時間間隔を増大することを特徴とする。
【0031】
請求項20の発明は、請求項18または請求項19の発明に係る通信中継装置において、前記決定手段は、前記第2の種類の通信依頼向けの前記種類別上限値を、前記第1の種類の通信依頼向けの前記種類別上限値よりも大きな値として決定することを特徴とする。
【0032】
請求項21の発明は、請求項18から請求項20のいずれかの発明に係る通信中継装置において、前記通信制御手段は、前記接続要求が第1の種類の通信依頼と第2の種類の通信依頼とのうちのいずれの種類の通信依頼に基づくものであるかを、前記接続要求の通信プロトコルに基づいて判定することを特徴とする。
【0033】
請求項22の発明は、ファイアウォールの内側に設けられる少なくとも1つのデバイスと前記ファイアウォールの外側に設けられる少なくとも1つのクラウドサーバで実行される少なくとも1つのアプリケーションとの間の通信を中継する通信中継装置に内蔵されたコンピュータに、a)前記少なくとも1つのデバイスのいずれか或いは前記少なくとも1つのアプリケーションのいずれかからの通信依頼に基づく接続要求であって、前記通信中継装置と前記少なくとも1つのアプリケーションのうちの一のアプリケーションとの間での個別接続を確立すべき旨の接続要求を受信するステップと、b)前記通信中継装置と前記少なくとも1つのアプリケーションとの間で確立される個別接続の接続数の上限値であってアプリケーションごとの上限値であるアプリケーション別上限値を、前記通信中継装置との間で個別接続を確立しているアプリケーションの個数の現在値に基づいて決定するステップと、c)前記通信中継装置と前記一のアプリケーションとの間で現在確立されている個別接続の合計接続数が前記一のアプリケーション向けの前記アプリケーション別上限値よりも小さいことを条件として、前記一のアプリケーションとの間での新たな個別接続を前記接続要求に応じて確立するステップと、d)前記通信中継装置との間で現在確立されている個別接続の合計接続数が前記アプリケーション別上限値を超えているアプリケーションである高負荷アプリケーションが存在する場合、前記高負荷アプリケーションと前記通信中継装置との通信のリクエスト間隔を増大するステップと、を実行させるためのプログラムであることを特徴とする。
【発明の効果】
【0034】
請求項1から請求項22に記載の発明によれば、特定のアプリケーションの利用集中が突発的に発生した場合であっても他のアプリケーションの利用者に悪影響が及ぶことを回避ないし抑制することが可能である。
【図面の簡単な説明】
【0035】
図1】通信システムの概略構成を示す図である。
図2図1の一部を示す図である。
図3】MFP(デバイス)の構成を示す概略図である。
図4】各要素の概略構成を示す図である。
図5】トンネル通信を説明する概念図である。
図6】トンネル通信を説明する概念図である。
図7】「アプリトリガ通信依頼」に関する動作を示す図である。
図8】「デバイストリガ通信依頼」に関する動作を示す図である。
図9】管理サーバの動作を示すフローチャートである。
図10】ゲートウエイの動作を示すフローチャートである。
図11】ゲートウエイの動作を示すフローチャートである。
図12】管理サーバ内に格納されている情報の一部(各ゲートウエイ30の負荷状況に関する情報(待機状況情報))を示す図である。
図13】上限値設定用テーブルを示す図である。
図14】第2実施形態に係るゲートウエイの動作を示すフローチャートである。
図15】上限値設定用テーブルを示す図である。
図16】ゲートウエイと各アプリケーションとのトンネル接続の接続履歴を示す図である。
図17】接続履歴に関する集計結果を示す図である。
図18】「デバイストリガ通信依頼」に関する動作(変形例)を示す図である。
【発明を実施するための形態】
【0036】
以下、本発明の実施形態を図面に基づいて説明する。
【0037】
<1.第1実施形態>
<1−1.システム構成概要>
図1および図2は、本発明の実施形態に係る通信システム1の概略構成を示す図である。なお、図2は、図1の一部を示す図である。
【0038】
図1等に示すように、通信システム1は、複数のデバイス10(10a,10b,10c,...)と、複数のゲートウエイ30(30a,30b)と、管理サーバコンピュータ(以下、単に管理サーバとも称する)50とを備える。通信システム1は、複数のクラウドサーバコンピュータ(以下、単にクラウドサーバとも称する)70と、複数のクライアントコンピュータ(以下、単にクライアントとも称する)90とをさらに備える。
【0039】
各要素10,30,50,70,90は、ネットワーク108(図2参照)を介して互いに接続されており、ネットワーク通信を実行することが可能である。なお、ネットワーク108は、LAN(ローカルエリアネットワーク)107およびインターネットなどによって構成される。ネットワーク108への接続形態は、有線接続であってもよく或いは無線接続であってもよい。
【0040】
各ゲートウエイ30および当該各ゲートウエイ30に対応する1または2以上のデバイス10が、企業内等に構築された各LAN107の内部(換言すれば、ファイアウォールの内側)に設けられている。各ゲートウエイ30には、同じLAN107内に設けられたデバイス10が接続されている。より詳細には、たとえば、図1に示すように、或る企業のLAN107a内に1台のゲートウエイ30aと3台のデバイス10(10a,10b,10c)が設けられ、別の企業のLAN107b内に1台のゲートウエイ30bと2台のデバイス10(10d,10e)が設けられる。なお、各LAN107内には、単一のゲートウエイ30が設けられてもよく、2以上のゲートウエイ30が設けられてもよい。
【0041】
一方、管理サーバ50、クラウドサーバ70およびクライアント90は、LAN107の外部(換言すれば、ファイアウォールの外側)に設けられている。なお、クライアント90は、LAN107の内部に設けられていてもよい。
【0042】
また、ここでは、デバイス10として、マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral)(MFPとも略称する)を例示する。MFPは、画像形成装置、画像処理装置、あるいは通信装置などとも称される。
【0043】
一方、ゲートウエイ30、管理サーバ50、クラウドサーバ70およびクライアント90は、サーバ用コンピュータあるいはパーソナルコンピュータ等を用いて構築される。
【0044】
通信システム1においては、クラウドサーバ70(詳細には、クラウドサーバ70に実装されるアプリケーションソフトウエアプログラム(以下、単にアプリケーションとも称する)80)からの通信依頼に基づく処理が実行される。アプリケーション80からの当該通信依頼は、アプリケーション80から発せられるもの(アプリケーション側がトリガになるもの)であり、「アプリトリガ通信依頼」とも称される。「アプリトリガ通信依頼」は、図1の上側(クラウドサーバ70側)から下側(デバイス10側)に向かう向き(「下向き」とも表現される)に発せられる通信依頼(データ送信依頼)である。たとえば、クライアント90からクラウドサーバ70へと送出された印刷指令(および印刷データ)が、管理サーバ50およびゲートウエイ30を経由してデバイス10へと送信され、デバイス(MFP)10において印刷出力が行われる。このような印刷出力は、クラウドサーバを経由した処理であることから、「クラウドプリント」などとも称される。「クラウドプリント」における印刷データ送信に関する通信依頼は、「アプリトリガ通信依頼」の一例である。
【0045】
また、この通信システム1においては、逆に、デバイス10からの通信依頼(ゲートウエイ経由)に基づく処理も実行される。デバイス10からの当該通信依頼は、デバイス10から発せられるもの(デバイス側がトリガになるもの)であり、「デバイストリガ通信依頼」とも称される。「デバイストリガ通信依頼」においては、上述の「下向き」の処理とは逆向きの処理、すなわち図1の下側(デバイス10側)から上側(クラウドサーバ70側)に向かう向き(「上向き」とも表現される)に発せられる通信依頼である。たとえば、デバイス10で生成されたスキャン画像が、管理サーバ50の管理下において、デバイス10からゲートウエイ30を経由してクラウドサーバ70へと送信され、クラウドサーバ70において格納される。このようなスキャン処理は、クラウドサーバへの格納処理を伴うことから、「クラウドスキャン」などとも称される。「クラウドスキャン」におけるデータ格納に関する通信依頼は、「デバイストリガ通信依頼」の一例である。
【0046】
各クラウドサーバ70には、それぞれ、1または複数のアプリケーション80がインストールされている。各アプリケーション80は、サース(SaaS:Software as a Service)形式で提供される。換言すれば、各アプリケーション80の機能は、サービスとして提供される。たとえば、クラウドプリント用のアプリケーション80aがクラウドサーバ70aにインストールされ、クラウドプリントサービスがアプリケーション80aおよびデバイス10等を用いて提供される。また、クラウドスキャン用のアプリケーション80bがクラウドサーバ70bにインストールされ、クラウドスキャンサービスがアプリケーション80bおよびデバイス10等を用いて提供される。
【0047】
また、各ゲートウエイ30は、当該各ゲートウエイ30に対応するデバイス10と複数のクラウドサーバ70(詳細には、アプリケーション80)との通信を中継する機能を有している。各ゲートウエイ30は、「通信中継装置」とも称される。
【0048】
この通信システム1においては、各デバイス10(MFP等)とクラウドサーバ70にインストールされた各アプリケーション80との間においては、秘匿性を確保する等のため、個々に形成された通信接続である個別接続を用いた通信が行われる。当該個別接続としては、HTTP(詳細にはHTTPS)によるトンネル接続等が利用される。
【0049】
管理サーバ50は、複数のデバイス10と複数のクラウドサーバ70(詳細には、アプリケーション80)との間の通信、特に各ゲートウエイ30を介した通信(トンネル接続通信)等を管理する装置である。
【0050】
たとえば、管理サーバ50は、複数のデバイス10のうちの特定のデバイス10に対するアクセス要求(通信依頼)をクラウドサーバ70(アプリケーション80)から受け付けるとともに、当該アクセス要求に応じて、複数のゲートウエイ30のうち特定のデバイス10に対応するゲートウエイ30に対して、クラウドサーバ70とのトンネル接続要求を送信する。
【0051】
ここで、各トンネル接続要求は、複数のゲートウエイ30のいずれかと複数のクラウドサーバ70(複数のアプリケーション80)のいずれかとの間でのトンネル接続を用いた通信を行うべき旨を、複数のゲートウエイ30のいずれかに対して要求する指令である。
【0052】
<1−2.MFPの構成概要>
次に、デバイス10について説明する。
【0053】
上述のように、この実施形態では、デバイス10として、マルチ・ファンクション・ペリフェラル(Multi-Functional Peripheral)(MFPとも略称する)を例示する。
【0054】
図3は、MFPの構成を示す概略図である。MFPは、スキャナ機能、プリンタ機能、コピー機能およびデータ通信機能などを備える装置(複合機とも称する)である。
【0055】
MFPは、印刷出力処理(プリント処理)および画像読取処理(スキャン処理)等を行うことが可能な画像形成装置である。
【0056】
図3に示すように、MFPは、画像読取部2、印刷出力部3、通信部4、格納部5、入出力部6およびコントローラ9等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
【0057】
画像読取部2は、MFPの所定の位置に載置された原稿を光学的に読み取って、当該原稿の画像データ(原稿画像とも称する)を生成する処理部である。
【0058】
印刷出力部3は、対象画像に関する画像データに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
【0059】
通信部4は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部4は、ネットワーク108を介したネットワーク通信が可能である。このネットワーク通信では、UDP(User Datagram Protocol)、TCP(Transmission Control Protocol)、IP(Internet Protocol)、SNMP(Simple Network Management Protocol)およびFTP(File Transfer Protocol)等の各種の通信プロトコルが利用され、当該ネットワーク通信を利用することによって、MFPは、所望の相手先(ゲートウエイ30、管理サーバ50およびクラウドサーバ70等)との間で各種のデータを授受することが可能である。
【0060】
たとえば、MFPの通信部4は、ゲートウエイ30とクラウドサーバ70との間に確立されたトンネル接続(後述)を利用して、当該ゲートウエイ30を経由してクラウドサーバ70と通信すること(クラウドサーバ70へデータを送信すること、および/またはクラウドサーバ70からのデータを受信すること)が可能である。なお、通信部4は、他の装置に対してデータ等を送信する送信部と、他の装置からデータ等を受信する受信部とを有する。
【0061】
格納部5は、ハードディスクドライブ(HDD)および不揮発性メモリ等の格納装置で構成される。
【0062】
入出力部6は、MFPに対する入力を受け付ける操作入力部6aと、各種情報の表示出力を行う表示部6bとを備えている。なお、入出力部6は、操作部とも称される。
【0063】
コントローラ9は、MFPを統括的に制御する制御部であり、CPUと、各種の半導体メモリ(RAMおよびROM等)とを備えて構成される。
【0064】
コントローラ9は、CPUにおいて、ROM(例えば、EEPROM(登録商標)等)内に格納されている所定のソフトウエアプログラム(単にプログラムとも称する)を実行することによって、各種の処理部(画像形成動作等を制御する動作制御部16等)を実現する。なお、当該プログラムは、たとえば各種の可搬性の記録媒体(USBメモリ等)に記録され、当該記録媒体を介してMFPにインストールされればよい。あるいは当該プログラムは、ネットワーク等を介してダウンロードされてMFPにインストールされるようにしてもよい。
【0065】
<1−3.各要素の構成概要>
図4は、各要素30,50,70等の概略構成を示す図である。図4を参照して、これらの各要素について説明する。なお、この実施形態では、ゲートウエイ30、管理サーバ50、クラウドサーバ70およびクライアント90は、サーバ用コンピュータあるいはパーソナルコンピュータ等を用いて構築される。
【0066】
<クラウドサーバ70>
クラウドサーバ70は、通信制御部81を備える。通信制御部81は、管理サーバ50との通信を実行する。また、通信制御部81は、各ゲートウエイ30との通信をトンネル通信(後述)を用いて実行する。
【0067】
また、上述のように、各クラウドサーバ70には、それぞれ、1または複数のアプリケーション80がインストールされている。各アプリケーション80は、通信制御部81等を介して、他の装置50,30,10(詳細にはそれぞれのアプリケーション)等と通信する。
【0068】
<ゲートウエイ30>
ゲートウエイ30は、その配下に存在する各デバイス10と各クラウドサーバ70(アプリケーション80)との通信を中継する通信中継装置である。
【0069】
各ゲートウエイ30は、それぞれ、通信制御部41および決定部46などの各種の処理部を備える。当該各種の処理部は、ゲートウエイ30のCPUにおいて、所定のプログラムを実行することによって実現される。
【0070】
通信制御部41は、他の装置との通信を制御する処理部である。通信制御部41は、メッセージセッション通信制御部42とトンネル通信制御部43とLAN内通信制御部44とを有する。
【0071】
LAN内通信制御部44は、LAN内の各種装置との通信を実行する処理部である。
【0072】
一方、メッセージセッション通信制御部42とトンネル通信制御部43とは、それぞれ、LAN外の各種装置との通信を実行する処理部である。
【0073】
メッセージセッション通信制御部42は、管理サーバ50との通信をメッセージセッションを用いて実行する処理部である。メッセージセッション通信制御部42は、管理サーバ50との間にメッセージセッション(たとえば、XMPP(eXtensible Messaging and Presence Protocol)等を利用するメッセージセッション)を確立して、管理サーバ50との通信を実行する。メッセージセッション通信制御部42は、対管理サーバ通信部(あるいは管理サーバ通信部)とも称される。
【0074】
トンネル通信制御部43は、クラウドサーバ70との通信をトンネル通信を用いて実行する処理部である。トンネル通信制御部43は、クラウドサーバ70との間にトンネル接続(たとえば、HTTP(Hypertext Transfer Protocol)、より詳細にはHTTPS(Hypertext Transfer Protocol Secure)等を利用する通信セッション)を確立して、クラウドサーバ70と特定のデバイス10との通信を中継する。トンネル通信制御部43は、対クラウドサーバ通信部(あるいはクラウドサーバ通信部)とも称される。
【0075】
後述するように、トンネル接続等を利用することによって、LAN107の外部の装置(クラウドサーバ70)からLAN107の内部の装置(ゲートウエイ30およびデバイス10)に対してデータを送信すること(およびその逆向きのデータ送信)が可能である。
【0076】
決定部46は、ゲートウエイ30と各アプリケーション80との間で確立される個別接続の接続数の上限値であってアプリケーションごとの上限値(アプリケーション別上限値M(後述))を決定する処理部である。当該アプリケーション別上限値Mは、ゲートウエイ30と各アプリケーション80との間での個別接続の確立状況に基づいて決定される。
【0077】
<管理サーバ50>
管理サーバ50は、デバイス10、ゲートウエイ30およびクラウドサーバ70(アプリケーション80を含む)を管理するサーバである。
【0078】
管理サーバ50は、通信制御部61、情報管理部65およびアクセス制御部67などの各種の処理部を備える。
【0079】
これら各種の処理部は、管理サーバ50のCPUにおいて、格納部(HDD等)に格納されている所定のソフトウエアプログラム(単にプログラムとも称する)を実行することによって実現される。なお、当該プログラムは、たとえば各種の可搬性の記録媒体(DVD−ROM等)に記録され、当該記録媒体を介して管理サーバ50にインストールされればよい。あるいは当該プログラムは、ネットワーク108等を介してダウンロードされて管理サーバ50にインストールされるようにしてもよい。
【0080】
通信制御部61は、通信部54(通信用ハードウエア)と協働して、各種の通信動作を制御する。たとえば、通信制御部61は、クラウドサーバ70との通信を実行し、クラウドサーバ70からのアクセス要求を受信する。また、通信制御部61は、各ゲートウエイ30との通信をメッセージセッション等を用いて実行する。なお、通信部54は、他の装置に対してデータ等を送信する送信部と、他の装置からデータ等を受信する受信部とを有する。当該受信部は、複数の通信依頼(後述)を受信し、当該送信部は、当該複数の通信依頼に基づくトンネル接続要求をゲートウエイ30に送信する。
【0081】
情報管理部65は、管理サーバ50による管理対象の複数のゲートウエイ30の情報(管理ゲートウエイ情報)、および当該複数のゲートウエイ30からそれぞれ受信した管理デバイス情報(各ゲートウエイ30による管理対象のデバイス10の情報)等を管理する処理部である。これらの情報(管理ゲートウエイ情報および管理デバイス情報)は、管理サーバ50の格納部(HDD(ハードディスクドライブ)等)55内に格納された管理テーブル69に記述されている。管理テーブル69においては、管理ゲートウエイ情報(各ゲートウエイ30の識別情報(たとえばIPアドレス)等)、および各ゲートウエイ30と各ゲートウエイ30の配下のデバイス(管理対象デバイス)との関係を示す管理デバイス情報等が記述されている。
【0082】
また、情報管理部65は、複数のクラウドサーバ70の情報、および複数のクラウドサーバ70内の各アプリケーション80の情報等をも管理する。これらの情報も、管理テーブル69に格納される。また、情報管理部65は、各ゲートウエイ30と各クラウドサーバ70との間に確立されているトンネル接続の接続数等をも管理テーブル69等にて管理する。さらに、情報管理部65は、各ゲートウエイ30の現在の負荷状況(当該各ゲートウエイ30における現在の接続待機状況(受信した通信依頼に基づく接続要求の待機状況)等)に関する情報(待機状況情報110(図12)参照)をゲートウエイ30から取得し、当該情報を管理する。
【0083】
アクセス制御部67は、待機状況情報110(図12)に基づいて、アプリケーション80(クラウドサーバ70)から受信した通信依頼に基づく接続要求等を制御する。たとえば、アクセス制御部67は、アプリケーション80(クラウドサーバ70)から受信した通信依頼に基づく接続要求を、当該接続要求に対応するゲートウエイ30に直ちに送信するか否かを決定する。
【0084】
通信制御部61および通信部54等は、ゲートウエイ30(通信中継装置)に対して、「トンネル接続要求」(当該ゲートウエイ30と指定したクラウドサーバ70との間でトンネル接続を確立すべき旨の要求)を送信する。
【0085】
トンネル接続要求としては、たとえば、少なくとも1つのアプリケーション80のいずれかからの通信依頼に基づく接続要求(管理サーバ50を経由してゲートウエイ30へと送信される接続要求等)が存在する。
【0086】
また、トンネル接続要求には、少なくとも1つのデバイス10のいずれかからの通信依頼に基づく接続要求も存在する。この実施形態では、少なくとも1つのデバイス10のいずれかからの通信依頼は、後述するように、デバイス10からゲートウエイ30に直接的に送信される。
【0087】
これらのトンネル接続要求は、ゲートウエイ30と少なくとも1つのアプリケーション80のうちの一のアプリケーションとの間での個別接続を確立すべき旨の接続要求、とも表現される。
【0088】
なお、管理サーバ50のアクセス制御部67から当該トンネル接続要求を受信したゲートウエイ30(通信中継装置)は、当該トンネル接続要求に応じてトンネル接続をクラウドサーバ70との間に確立する。そして、当該ゲートウエイ30は、当該トンネル接続を利用して、クラウドサーバ70と接続先デバイス10との間の通信を中継する。
【0089】
<1−4.通信依頼に基づく動作>
この通信システム1においては、デバイス10とクラウドサーバ70(アプリケーション80)との間でのファイアウォールを越える通信が、ゲートウエイ30と管理サーバ50とを利用して行われる。具体的には、次の2種類の動作、すなわち「アプリトリガ通信依頼」に関する動作および「デバイストリガ通信依頼」に関する動作(後述)が実行される。
【0090】
以下では、まず「アプリトリガ通信依頼」に関する動作について説明する。
【0091】
<アプリトリガ通信依頼に関する動作(「下向き」の動作)>
図5および図6は、トンネル通信を説明する概念図である。
【0092】
この実施形態においては、図5および図6に示すような動作(「アプリトリガ通信依頼」に関する動作)において、トンネル通信が利用される。
【0093】
具体的には、まず、LAN外部の管理サーバ50とLAN内部のゲートウエイ30(30a)との間に(ファイアウォールの例外としての)メッセージセッション511(図5参照)を確立しておき、さらに当該メッセージセッション511を利用して管理サーバ50からゲートウエイ30へトンネル接続要求(デバイス10a向けのアクセス要求)が送信される。また、当該トンネル接続要求に応じて、ゲートウエイ30とクラウドサーバ70との間にトンネル接続が形成される(図6参照)。そして、当該トンネル接続を利用して、LAN外部のクラウドサーバ70から、ゲートウエイ30を経由して、LAN内部のデバイス10にアクセスすることが行われ得る。たとえば、クラウドサーバ70aを利用した「クラウドプリント」がデバイス10a(画像形成装置)にて行われ得る。
【0094】
以下では、まず、このような動作について主に図7を参照しながら説明する。なお、図7は、「アプリトリガ通信依頼」に関する動作を示す図である。
【0095】
上述(図5参照)のように、まず、ゲートウエイ30aは、その起動時等において、予め指定された管理サーバ50との間に通信セッション(詳細には、メッセージセッション)511を予め確立しておく。具体的には、ゲートウエイ30aは、予め指定された管理サーバ50に対してメッセージセッションの確立要求を送信する。これに応じて、管理サーバ50が当該確立要求を承認することによって、ゲートウエイ30aと管理サーバ50との間にメッセージセッション511が確立される(図5参照)。換言すれば、LAN107の内部のゲートウエイ30からLAN107の外部の管理サーバ50へのアクセスに応じて、メッセージセッションが確立される。なお、このようなメッセージセッション(通信セッション)としては、たとえば、「XMPP:eXtensible Messaging and Presence Protocol」)などの通信プロトコルを用いたものが例示される。
【0096】
また、ゲートウエイ30aは、ゲートウエイ30aの管理下のデバイス(管理対象デバイス)の情報等を管理サーバ50へ送信しておく。また、管理サーバ50は、各ゲートウエイ30による管理対象デバイス10の情報(各デバイスリストに記述された情報)を含む登録情報を、管理サーバ50の格納部55内の管理テーブル69(図4)に格納する。
【0097】
その後、「クラウドプリント」に関するユーザ操作がクライアント90にて行われ、クラウドサーバ70a(アプリケーション80a)がユーザ操作に基づく指示をクライアント90から受け付ける(S11(図7))。当該指示に応答して、クラウドサーバ70a(アプリケーション80a)は、特定のデバイス10a向けの通信依頼(アクセス要求)を管理サーバ50に送信する(S12)。
【0098】
管理サーバ50は、クラウドサーバ70(アプリケーション80)からの通信依頼(「アプリトリガ通信依頼」)を受信するなどの動作を実行する(図9参照)。具体的には、管理サーバ50は、アプリトリガ通信依頼を或るアプリケーション80から受信すると、待機状況情報110(図12)に基づいて以後の動作を決定する。詳細には、管理サーバ50は、アプリトリガ通信依頼に基づく接続要求を直ちにゲートウエイ30に送信する動作と当該接続要求の送信を暫時保留する動作とのいずれを採用するかを決定する(ステップS32,S33(図9))。なお、図9の動作については後に詳述する。
【0099】
前者を採用することが決定される場合、管理サーバ50は、当該トンネル接続要求をゲートウエイ30に送信する(S13(図7))。詳細には、管理サーバ50は、管理サーバ50とゲートウエイ30(30a)との間の当該メッセージセッション(常時接続通信セッション)511を利用することにより、アクセス要求に基づくトンネル接続要求(たとえばXMPPによる接続要求)を当該ゲートウエイ30aに送信する。「トンネル接続要求」は、クラウドサーバ70(アプリケーション80)との間にトンネル接続を確立すべき旨をゲートウエイ30に要求する指令である。換言すれば、当該トンネル接続要求は、トンネル接続を用いた通信をゲートウエイ30に行わせる指令である。
【0100】
当該トンネル接続要求を受信したゲートウエイ30aは、図10のような動作(後述)を実行する。
【0101】
所定の条件(後述)が充足される場合には、ゲートウエイ30aは、当該トンネル接続要求に応答して、トンネル接続(トンネル通信)をクラウドサーバ70a(アプリケーション80a)との間に形成する(S14(図7))(図6も参照)。なお、図6においては、砂地ハッチング付きの細長い矩形によって「トンネル通信」が模式的に示されている。
【0102】
詳細には、ゲートウエイ30aは、当該トンネル接続要求に応答して、HTTP(Hypertext Transfer Protocol)セッション(より詳細には、HTTPS(Hypertext Transfer Protocol Secure)セッション)の確立要求をクラウドサーバ70aに対して送信する。このようなHTTP(HTTPS)セッションの確立要求は、(ゲートウエイ30による)トンネル接続の確立要求とも称される。なお、ゲートウエイ30による「トンネル接続の確立要求」と管理サーバ50(あるいはデバイス10)による「トンネル接続要求」とは互いに異なるものである。ゲートウエイ30による「トンネル接続の確立要求」は、管理サーバ50等による「トンネル接続要求」に応答して、ゲートウエイ30からクラウドサーバ70に向けて実際のトンネル接続確立のために発せられる要求(指令)である。
【0103】
そして、ゲートウエイ30による「トンネル接続の確立要求」をクラウドサーバ70aが承認することによって、当該ゲートウエイ30aとクラウドサーバ70aとの間に当該HTTPセッションによるトンネル接続(トンネル通信)が確立される。換言すれば、LAN107の内部のゲートウエイ30からLAN107の外部のクラウドサーバ70へのアクセスに応じて、トンネル接続が確立される。
【0104】
トンネル接続が確立されると、ゲートウエイ30aは、当該トンネル接続を用いてクラウドサーバ70aとデバイス10aとの間の通信(主に「下向き」のデータ通信)を中継する(S15,S16)。より詳細には、HTTP(HTTPS)セッションによるトンネル通信を用いることによって、クラウドサーバ70は、ゲートウエイ30を経由してデバイス10(たとえば10d)へと各種のデータを送信することが可能である。
【0105】
このようにして、クラウドサーバ70から(ゲートウエイ30経由での)デバイス(画像形成装置)10へのアクセスがトンネル通信を用いて行われる。
【0106】
なお、アプリトリガ通信依頼は、「クラウドプリント」に関するもののみならず、各種の通信依頼が存在する。たとえば、「プルプリント」(詳細にはプリント対象データの送信動作)に関するもの、デバイス10の装置状態を把握するための「ステータスポーリング」に関するもの、およびデバイス10のカウンタ情報を取得するための「カウンタ情報収集サービス」に関するものなどが、アプリトリガ通信依頼として存在する。
【0107】
<デバイストリガ通信依頼に関する動作(「上向き」の動作)>
この通信システム1においては、上述の「アプリトリガ通信依頼」に基づく動作(「下向き」の動作)とは謂わば「逆向き」の動作(「デバイストリガ通信依頼」(後述)に関する動作)も行われる。以下、図8を参照しながら当該動作について説明する。なお、デバイストリガ通信依頼を伴う処理として、ここでは「クラウドスキャン」を主に例示する。
【0108】
具体的には、たとえば「クラウドスキャン」に関するユーザ操作がデバイス10(たとえば10a)にて行われ、デバイス10は、クラウドサーバ70(たとえば70b)で動作中のアプリケーション80(たとえば80b)に対する通信依頼を、ゲートウエイ30に送信する(S21)。当該通信依頼は、HTTP(および/またはFTP)等の通信プロトコルを用いて、デバイス10からゲートウエイ30へと送信される。
【0109】
当該通信依頼は、デバイス10からの通信依頼であってデバイス10から(ゲートウエイ30を介して)アプリケーション80へ向かう向き(「上向き」)のデータ転送を伴う通信の依頼である。当該通信依頼は、デバイス10から発せられるもの(デバイス側がトリガになるもの)であり、「デバイストリガ通信依頼」とも称される。ここでは、「デバイストリガ通信依頼」が受信されると、「トンネル接続要求」が受信された旨が判定されるものとする。換言すれば、「デバイストリガ通信依頼」が受信されると、「デバイストリガ通信依頼」に基づくトンネル接続要求もが受信されたものとみなされる。
【0110】
その後、ゲートウエイ30は、当該トンネル接続要求に応じて、トンネル接続をクラウドサーバ70b(アプリケーション80b)との間に形成(確立)する(S25)。そして、ゲートウエイ30は、当該トンネル接続を用いてデバイス10aとクラウドサーバ70bとの間の通信(主に「上向き」のデータ通信(スキャン画像のアップロード処理等))を中継する(S26)。
【0111】
このようにして、デバイストリガ通信依頼を伴う処理が実行される。
【0112】
なお、デバイストリガ通信依頼は、「クラウドスキャン」に関するもののみならず、各種の通信依頼が存在する。
【0113】
<1−5.トンネル接続要求に関する制御動作>
<管理サーバ50の動作等>
図9は、管理サーバ50の動作を示すフローチャートである。図9を参照しつつ、管理サーバ50の動作について説明する。
【0114】
管理サーバ50は、まず、ステップS31において、或るアプリケーション80からの新規の通信依頼を受信する(図7のステップS12も参照)。
【0115】
つぎに、ステップS32において、管理サーバ50は、管理テーブル69を参照して、各ゲートウエイ30の負荷状況(当該各ゲートウエイ30における接続待機状況(受信した通信依頼に基づく接続要求の待機状況)等)を知得する。なお、管理テーブル69には、各ゲートウエイ30から随時送信されてくる各ゲートウエイ30の負荷状況が随時格納(随時更新)される。
【0116】
そして、ステップS32においては、ステップS31で受信した新規の接続依頼に関するスケジューリング処理が実行される。具体的には、ステップS31で受信した新規の接続依頼を当該新規接続依頼に対応するゲートウエイ30に直ちに送信すべきか否か等が判定される。
【0117】
図12は、管理テーブル69内に格納されている情報の一部(各ゲートウエイ30の負荷状況に関する情報(待機状況情報)110)を示す図である。図12に示すように、待機状況情報110においては、複数のゲートウエイ30a,30b,30c,...のそれぞれの負荷状況が格納されている。また、待機状況情報110においては、各ゲートウエイの負荷状況であってアプリケーションごとの負荷状況(ここでは「接続待ちの有無」)が格納されている。換言すれば、各ゲートウエイの負荷状況がアプリケーション別に示されている。
【0118】
図12においては、ゲートウエイ30aとアプリケーション80a(アプリケーションA1とも称する)とのトンネル接続は、「ビジー」であり、接続待ちが発生していること(「接続待ち有り」)が示されている。一方、ゲートウエイ30aとアプリケーション80b(アプリケーションA2とも称する)とのトンネル接続は、「ビジー」ではなく、接続待ちが発生していないこと(「接続待ち無し」)が示されている。また、ゲートウエイ30aとアプリケーション80c(アプリケーションA3とも称する)とのトンネル接続に関しても、「ビジー」ではなく、接続待ちが発生していないこと(「接続待ち無し」)が示されている。
【0119】
新規の接続依頼の送信先のゲートウエイ(対応ゲートウエイ)30の負荷状況であって新規の接続依頼の送信元のアプリケーション80との通信の負荷状況が「接続待ち有り」(ビジー)である場合には、管理サーバ50は、ゲートウエイ30による当該新規の接続処理が可能ではない旨を判定する。この場合、管理サーバ50は、当該新規の接続依頼の対応ゲートウエイ30への送信を保留する。そして、一定期間経過後にステップS32に戻り、再び判定処理が実行される。
【0120】
たとえば、図12の状況において、ゲートウエイ30aに対するアプリケーション80a(アプリケーションA1)からの通信依頼が新規に受信される場合(接続待ち有りの場合)、管理サーバ50は、ゲートウエイ30aによる新規の接続処理が可能ではない旨を判定する。そして、管理サーバ50は、当該新規の接続依頼の対応ゲートウエイ30aへの送信を保留する。
【0121】
後述するように、トンネル接続要求への対応動作はゲートウエイ30によって制御される。特に、特定のアプリケーションとの間の通信負荷が高い場合には、ゲートウエイ30は当該特定のアプリケーションへのトンネル接続を実行しないことによって、当該特定のアプリケーションとの通信に起因する負荷増大の発生を緩和している。これに加えて、この実施形態では、管理サーバ50側でも新規のトンネル接続要求の送出の有無が制御される。より詳細には、ゲートウエイ30と特定アプリケーション80との間のトンネル接続の接続待ちが発生している場合には、管理サーバ50は、特定アプリケーション80に関するトンネル接続要求をゲートウエイ30に送信しない。これによれば、ゲートウエイ30の負荷増大を予め回避することが可能である。
【0122】
一方、新規の接続依頼の送信先のゲートウエイ(対応ゲートウエイ)30の負荷状況であって新規の接続依頼の送信元のアプリケーション80との通信の負荷状況が「接続待ち無し」(非ビジー)である場合には、管理サーバ50は、ゲートウエイ30による新規の接続処理が可能である旨を判定し、ステップS34に進む。ステップS34(ステップS13)においては、管理サーバ50は、当該新規の接続依頼に対応するゲートウエイ30(たとえばゲートウエイ30a)へと、当該新規の接続依頼を直ちに送信する(図7のステップS13も参照)。
【0123】
たとえば、図12の状況において、ゲートウエイ30aに対するアプリケーション80b(アプリケーションA2)からの通信依頼が新規に受信される場合(接続待ち無しの場合)、管理サーバ50は、ゲートウエイ30aによる新規の接続処理が可能である旨を判定する。そして、ステップS34(ステップS13(図7参照))において、常時接続のメッセージセッション(XMPP等)を用いて、新規の接続依頼が管理サーバ50からゲートウエイ30aへと送信される。
【0124】
以上のようにして、「アプリトリガ通信依頼」に基づくトンネル接続要求がアプリケーション80から管理サーバ50を介してゲートウエイ30へと送信される(ステップS13(図7参照))。なお、「アプリトリガ通信依頼」に基づくトンネル接続要求は、XMPP等の通信プロトコルを用いて管理サーバ50からゲートウエイ30へと送信される。
【0125】
また、上述のように、「デバイストリガ通信依頼」に基づくトンネル接続要求が、デバイス10からゲートウエイ30へと直接送信される(ステップS21(図8参照))。なお、「デバイストリガ通信依頼」に基づくトンネル接続要求は、HTTP等の通信プロトコルを用いてデバイス10からゲートウエイ30へと送信される。
【0126】
このように、各種の通信依頼等が、アプリケーション80あるいはデバイス10から、ゲートウエイ30へ向けて随時送信される。そして、ゲートウエイ30は、当該各種の通信依頼に基づくトンネル接続要求を受信する。
【0127】
ゲートウエイ30は、当該トンネル接続要求を受け付ける(受信する)と、当該トンネル接続要求に基づく個別接続(トンネル接続)の接続動作を制御する(図10および図11参照)。図10および図11は、ゲートウエイ30の動作を示すフローチャートである。以下、これらの図を参照しつつ、ゲートウエイ30の動作について説明する。
【0128】
<ゲートウエイ30の動作>
ゲートウエイ30は、「アプリトリガ通信依頼」あるいは「デバイストリガ通信依頼」に基づくトンネル接続要求を受信する(ステップS51)と、当該トンネル接続要求が接続確立済みのアプリケーション(サービス)に関するものであるか否かを判定する(ステップS52)。たとえば、ゲートウエイ30と2つのアプリケーション80a,80bのそれぞれとのトンネル接続要求が既に確立されている場合において、さらに別のアプリケーション80cとのトンネル接続要求が受信されるときには、当該トンネル接続要求は接続確立済みのアプリケーション(80a,80b)に関するものでない、と判定される。また、同様の場合において、同じアプリケーション80aとのトンネル接続要求が受信されるときには、当該トンネル接続要求は接続確立済みのアプリケーション(80a)に関するものであると判定される。
【0129】
当該トンネル接続要求が接続確立済みのアプリケーション(サービス)に関するものであると判定される場合には、ステップS53に進む。一方、当該トンネル接続要求が接続確立済みのアプリケーション以外のアプリケーション(端的に言えば「新たなアプリケーション」)に関するものであると判定される場合にはステップS56に進む。
【0130】
ここで、ステップS53,S56での動作の説明に先立って、「アプリケーション別上限値M」(次述)について説明する。
【0131】
この実施形態では、ゲートウエイ30(たとえば30a)と1又は複数のアプリケーション80との間で確立される個別接続の接続数の上限値であってアプリケーションごとの上限値M(「アプリケーション別上限値」とも称する)が用いられて、個別接続の接続動作が制御される。当該アプリケーション別上限値Mは、ゲートウエイ30(30a)と各アプリケーション80との間での個別接続(トンネル接続)の確立状況に基づいて決定される。
【0132】
このアプリケーション別上限値Mは、ゲートウエイとの個別接続を確立しているアプリケーション(サービス)の個数に応じて変更される。より詳細には、アプリケーション別上限値Mは、ゲートウエイ30の最大処理能力(ゲートウエイ30において1又は複数のアプリケーションとの間で確立可能な個別接続の最大数X)と、ゲートウエイ30との個別接続が確立しているアプリケーションの個数の現在値Nとに基づいて決定される。
【0133】
図13は、上限値設定用テーブル210(210a)を示す図である。図13においては、ゲートウエイ30の最大処理能力(ゲートウエイ30において1又は複数のアプリケーションとの間で確立可能な個別接続の最大数X)が「30」である場合が例示されている。
【0134】
図13の上限値設定用テーブル210(210a)は、接続確立済みのサービスの個数Nとアプリケーション別上限値Mとの関係を予め規定したデータテーブルである。図13のような上限値設定用テーブル210(210a)が、ゲートウエイ30の格納部内に予め格納されているものとする。図13の左列は、接続確立済みのサービスの個数N(現在、ゲートウエイ30との間でトンネル接続を確立しているアプリケーションの個数)を示している。また、右列は、アプリケーション別上限値Mを示している。
【0135】
ここでは、アプリケーション別上限値Mは、ゲートウエイ30との個別接続が現在確立している複数のアプリケーションに対して、値X(ゲートウエイ30における個別接続の最大数)を分配(詳細には、均等に分配)することによって決定される。
【0136】
より詳細には、アプリケーション別上限値Mは、値Xを個数Nで除した値(小数点以下切り捨て)として算出される(M=X/N)。たとえば、個数Nが1の場合には、アプリケーション別上限値Mは「30」(=30/1)であり、個数Nが2の場合には、アプリケーション別上限値Mは「15」(=30/2)である。同様に、個数Nが3の場合には、アプリケーション別上限値Mは「10」(=30/3)であり、個数Nが4の場合には、アプリケーション別上限値Mは「7」(≒30/4)である。また、個数Nが10の場合には、アプリケーション別上限値Mは「3」(=30/10)であり、個数Nが15の場合には、アプリケーション別上限値Mは「2」(=30/15)である。さらに、個数Nが30の場合には、アプリケーション別上限値Mは「1」(=30/30)である。
【0137】
このように、接続確立済みのアプリケーションの個数Nが増大するにつれて、アプリケーション別上限値Mは小さくなる。換言すれば、個数Nの増大に伴って、1アプリケーションあたりのトンネル接続数の上限値Mが徐々に小さくなる。
【0138】
再び図10を参照する。上述のように、新規のトンネル接続要求が接続確立済みのサービスに関するものであると判定される場合には、ステップS52からステップS53に進む。
【0139】
ステップS53では、(現在の)アプリケーション別上限値Mが取得される。具体的には、上限値設定用テーブル210(210a)(図13)に基づいて、当該アプリケーション別上限値Mが決定されて取得される。また、ステップS53では、新規のトンネル接続要求(ステップS51)の対応アプリケーション80(たとえば80a)に関する接続確立済み(既存)の個別接続(トンネル接続)の個数Qもが取得される。そして、ステップS54において、両者Q,Mの大小関係が判定される。
【0140】
新規接続要求の対応アプリケーション80(80a)に関する既存のトンネル接続の個数Qが(現在の)アプリケーション別上限値M以上である場合には、当該アプリケーション80aに関する負荷増大を回避すべき旨を判定し、ステップS54からステップS55に進む。ステップS55において、ゲートウエイ30は、当該対応アプリケーション80(80a)との間での新たな個別接続を未だ確立しないことを決定し、このトンネル接続要求を待ち行列に投入する。また、ゲートウエイ30は、待ち行列の最新情報(ゲートウエイ30の負荷状況)を管理サーバ50に送信する。より詳細には、ゲートウエイ30aとアプリケーション80aとの間の個別接続に待ちが発生している旨が、ゲートウエイ30から管理サーバ50に送信される。管理サーバ50は、ゲートウエイ30から受信した当該最新情報に基づいて、当該ゲートウエイ30(30a)の負荷状況に関する待機状況情報110を更新する。
【0141】
たとえば、ゲートウエイ30と2つのアプリケーション80a,80bのそれぞれとの間の個別のトンネル接続が確立されている場合には、アプリケーション別上限値Mは「15」である。そして、新規接続要求の対応アプリケーション80(80a)に関する既存のトンネル接続の個数Qが既に「15」であるときには、16個目のトンネル接続に関する接続要求は、待ち行列に投入される。このように、特定のアプリケーション80aとの間の通信負荷が一定程度以上高いと判定される場合には、ゲートウエイ30は当該特定のアプリケーションとのトンネル接続を実行しない。これによれば、当該特定のアプリケーション80aとの通信に起因する負荷増大の発生を緩和することが可能である。
【0142】
一方、新規接続要求の対応アプリケーション80(80a)に関する既存のトンネル接続の個数Qが現在のアプリケーション別上限値M未満である場合には、ステップS54からステップS61に進む。ステップS61においては、ゲートウエイ30は、当該対応アプリケーション80(80a)との間での新たな個別接続を確立すべき旨を決定する。そして、ゲートウエイ30は、トンネル接続の確立要求をクラウドサーバ70a(アプリケーション80aに対応するクラウドサーバ70)に送信し、クラウドサーバ70aとのトンネル接続を確立する。
【0143】
たとえば、ゲートウエイ30と2つのアプリケーション80a,80bのそれぞれとの間の個別のトンネル接続が確立されている場合には、アプリケーション別上限値Mは「15」である。そして、新規接続要求の対応アプリケーション80(80a)に関する既存のトンネル接続の個数Qが「15」未満の値(たとえば「10」)であるときには、111個目のトンネル接続に関する確立要求がクラウドサーバ70aに送信される。これにより、クラウドサーバ70a(アプリケーション80a)とのトンネル接続が確立される。
【0144】
ステップS54,S61あるいはステップS55の次は、ステップS62(図11)に進む。ステップS62以降の処理については後述する。
【0145】
再び図10を参照する。上述のように、ステップS51で受信されたトンネル接続要求が「新たなアプリケーション」(接続確立済みのアプリケーション以外のアプリケーション)に関するものであると判定される場合には、ステップS52からステップS56に進む。
【0146】
ステップS56においては、新たなアプリケーション(サービス)に関するトンネル接続要求が受信されたことに伴って、接続確立済みのアプリケーションの個数Nが1つインクリメントされるとともに、アプリケーション別上限値Mが更新される。たとえば、個数Nが「2」から「3」に増える場合には、アプリケーション別上限値Mが「15」から「10」に低減される(図13参照)。なお、新たなアプリケーション(サービス)に関するトンネル接続要求に応じて実際に当該新たなアプリケーションとの間にトンネル接続が確立される時点(接続確立済みのアプリケーションが増加する時点)は、厳密には、後のステップS61の時点(ステップS56の直後の時点)である。ただし、この実施形態では、接続確立済みのアプリケーションがステップS56にて既に増加したものとみなされて、(個数Nが1つインクリメントされ)アプリケーション別上限値MがステップS56にて更新される。
【0147】
次のステップS57においては、既存のトンネル接続の個数がアプリケーションごとに取得される。換言すれば、アプリケーションごとの既存のトンネル接続(個別接続)の個数Q(アプリケーションごとの既存接続数(あるいは既存セッション数)とも称する)が取得される。
【0148】
そして、ステップS58において、個数M,Qの両者の大小関係が既存アプリケーション(当該ゲートウエイ30との間にトンネル接続が既に確立されているアプリケーション)ごとに判定される。換言すれば、各既存アプリケーション80のそれぞれについて、アプリケーションごとの既存接続数Qとアプリケーション別上限値Mとが比較される。
【0149】
全てのアプリケーションに関して、既存接続数Qが更新後のアプリケーション別上限値M以下である場合には、ステップS58からステップS61に進む。ステップS61においては、上述のような動作が実行される。具体的には、ゲートウエイ30は、当該対応アプリケーション80aとの間での新たな個別接続を確立すべき旨を決定し、トンネル接続の確立要求をクラウドサーバ70aに送信し、クラウドサーバ70aとのトンネル接続を確立する。
【0150】
たとえば、ゲートウエイ30(30a)と2つのアプリケーション80a,80bのそれぞれとの間に個別のトンネル接続が確立されている場合において、別のアプリケーション80cに関する新規のトンネル接続要求がステップS51で受信された状況を想定する。また、ゲートウエイ30とアプリケーション80aとの間の個別のトンネル接続の数は「8」であり、ゲートウエイ30とアプリケーション80bとの間の個別のトンネル接続の数は「7」であるものとする。
【0151】
この状況において、新たなアプリケーション80cからの新規のトンネル接続要求が受信されると、個数Nが「2」から「3」に増大され且つアプリケーション別上限値Mが「15」から「10」へと変更(低減)される(ステップS56)。この場合には、各アプリケーション80a,80bに関する既存の接続数Q「8」,「7」は、更新後のアプリケーション別上限値M「10」以下である。そのため、ステップS58からステップS61に進む。この場合、いずれのアプリケーションとの個別接続の個数も未だ上限値に到達しておらず、既存のトンネル接続はそのまま継続しつつアプリケーション80cとのトンネル接続が確立される。
【0152】
一方、少なくとも1つのアプリケーションに関して、既存接続数Qが更新後のアプリケーション別上限値Mより大きい場合には、ステップS58からステップS59に進む。
【0153】
たとえば、ゲートウエイ30(30a)と2つのアプリケーション80a,80bのそれぞれとの間の個別のトンネル接続が確立されている場合に、別のアプリケーション80cに関する新規のトンネル接続要求がステップS51で受信された状況を想定する。また、ゲートウエイ30とアプリケーション80aとの間の個別のトンネル接続の数は「14」であり、ゲートウエイ30とアプリケーション80bとの間の個別のトンネル接続の数は「7」であるものとする。
【0154】
この状況において、新たなアプリケーション80cからの新規のトンネル接続要求が受信されると、個数Nが「2」から「3」に増大され且つアプリケーション別上限値Mが「15」から「10」へと変更(低減)される。その結果、アプリケーション80bに関する既存の接続数Q「7」は更新後のアプリケーション別上限値M「10」より小さい、と判定されるものの、アプリケーション80aに関する既存の接続数Q「14」は更新後のアプリケーション別上限値M「10」より大きい、と判定される。そのため、ステップS58からステップS59に進む。なお、この場合には、後のステップS61で(新たな)アプリケーション80cとの新たなトンネル接続が確立されるものの、次のステップS59にて既存のトンネル接続のうちの一のアプリケーション80aとのトンネル接続要求に関する負荷が低減される。
【0155】
ステップS59においては、アプリケーション別上限値Mより大きな既存接続数Qを有するアプリケーション(「高負荷アプリケーション」とも称する)とゲートウエイ30とのトンネル接続(HTTP通信)におけるHTTPリクエスト時間間隔が変更(詳細には増大)される。たとえば、直上の例においては、高負荷アプリケーション80aに関するトンネル接続のHTTPリクエスト時間間隔が、変更前の値(たとえばデフォルト値)よりも長い値(長い時間)に変更される。なお、他のアプリケーション80b,80cに関するトンネル接続のHTTPリクエスト時間間隔は、変更されない(たとえばデフォルト値のままである)。
【0156】
ここで、HTTPリクエスト時間間隔について説明する。HTTP通信では、送信対象データを所定データ量単位(たとえば64KBごと)に分割し、送信対象データを複数回に分けて通信する。この複数回の通信のそれぞれにおいて通信リクエストが送出される。ステップS59においては、これら複数回の通信の相互間の時間間隔(HTTPリクエスト時間間隔)を広げることによって、通信速度の低減(ひいては通信負荷の抑制)が企図される。これによって、ゲートウエイ30における負荷が抑制される。
【0157】
より詳細には、ステップS59において、HTTPリクエスト時間間隔は、アプリケーション別上限値Mの変更前後比(後/前)の逆数倍(すなわち、(変更前の値M)/(変更後の値M))に増大されればよい。
【0158】
たとえば、アプリケーション別上限値Mが「30」から「15」に低減された場合には、HTTPリクエスト時間間隔はデフォルト値の「2倍」(=30/15)の値に増大されればよい。さらに、アプリケーション別上限値Mが「15」から「10」に低減された場合には、HTTPリクエスト時間間隔はそれまでの値(デフォルト値の「2倍」)の1.5倍(=15/10)の値(すなわち、デフォルト値の3倍)に増大されればよい。これによれば、既存の接続数Q「14」を有するアプリケーション80aとゲートウエイ30aとの間のトンネル接続は、更新前の上限値M「15」までのトンネル接続時のHTTPリクエスト時間間隔よりも大きな時間間隔(たとえば、1.5倍)で実行される。したがって、或るアプリケーション80aに関する既存の接続数Q「14」が新たな上限値「10」を超える場合においても、当該アプリケーション80aとゲートウエイ30との通信負荷が抑制される。その結果、当該アプリケーション80aとゲートウエイ30との通信が他のアプリケーション(80b,80c等)とゲートウエイ30との通信に与える影響を抑制することが可能である。
【0159】
ステップS58あるいはステップS59の次は、ステップS61に進む。ステップS61では、アプリケーション80cに関する新規のトンネル接続要求(ステップS51)に対応して、ゲートウエイ30とアプリケーション80cとの間のトンネル接続が実際に確立される。そして、当該トンネル接続を利用して、ゲートウエイ30とアプリケーション80cとのHTTP通信が実行される。
【0160】
その後、ステップS62(図11)に進む。既存のトンネル接続(HTTP接続)のいずれかが終了し当該トンネル接続(HTTP接続)の切断通知をゲートウエイ30が受領した旨がステップS62にて判定されると、ステップS63に進む。ステップS63では、待機中の接続要求が待ち行列に未だ存在しているか否かが判定される。待機中の接続要求(未処理の接続要求)が待ち行列に存在しない場合には、図10および図11の処理は終了する。一方、待機中の接続要求が待ち行列に存在している場合には、ステップS53に戻り、その後、未処理の接続要求に関する処理(ステップS61等)が続行される。
【0161】
以上のような態様によれば、ゲートウエイ30は、アプリケーション80aとの間での新規のトンネル接続要求を受信する場合、或る条件の下、アプリケーション80aとの間での新たな個別接続を当該トンネル接続要求に応じて確立する(ステップS54,S61参照)。具体的には、当該アプリケーション80aと当該ゲートウエイ30との間で現在確立されている個別接続の合計接続数Qがアプリケーション80a向けのアプリケーション別上限値M未満であることを条件として、当該新たな個別接続を確立する。逆に言えば、当該トンネル接続要求が受信された場合であっても、アプリケーション80aに関する当該接続数Qがアプリケーション80a向けのアプリケーション別上限値M以上である場合には、アプリケーション80aとの間での新たな個別接続は確立されない(ステップS54,S55参照)。したがって、特定のアプリケーション80aの利用集中が突発的に発生した場合であっても他のアプリケーション80b等の利用者に悪影響が及ぶことを回避ないし抑制することが可能である。
【0162】
また、ゲートウエイ30との間で現在確立されている個別接続の合計接続数Qがアプリケーション別上限値Mを超えているアプリケーション(高負荷アプリケーション)(たとえば80a)が存在する場合、当該高負荷アプリケーション80aとゲートウエイ30との通信(トンネル接続)におけるリクエスト間隔が増大される。
【0163】
より詳細には、ゲートウエイ30との個別接続を既に確立しているアプリケーション80a,80b以外のアプリケーション80cとの間で更なる個別接続を確立すべき旨の接続要求が受信されると、アプリケーション別上限値Mが低減される。そして、アプリケーション別上限値Mの低減に応じて高負荷アプリケーション(たとえば80a)が発生する場合には、当該高負荷アプリケーション80aとゲートウエイ30との通信のリクエスト間隔が増大される。
【0164】
これによれば、新たに高負荷アプリケーションになったアプリケーション80aとのトンネル接続の通信負荷が抑制されるので、特定のアプリケーション80aに関する利用が比較的多い場合であっても他のアプリケーション80b,80c等の利用者に悪影響が及ぶことを回避ないし抑制することが可能である。
【0165】
<2.第2実施形態>
<2−1.概要>
第2実施形態は、第1実施形態の変形例である。以下、第1実施形態との相違点を中心に説明する。
【0166】
上記第1実施形態においては、アプリケーションごとに既存の接続数(確立済みのトンネル接続数)とアプリケーション別上限値Mとが比較され、その比較結果に基づいてトンネル接続に関する動作が制御されている。しかしながら、本発明は、これに限定されない。
【0167】
たとえば、アプリケーションごと且つ通信依頼の方向(換言すれば、種類)(後述)ごとに、既存の接続数(確立済みのトンネル接続数)と方向別上限値(種類別上限値とも称する)M0(後述)とが比較され、その比較結果に基づいてトンネル接続に関する動作が制御されてもよい。これによれば、各個別接続(トンネル接続)が(「アプリケーション別」のみならず)「方向別」にも分離して制御される。したがって、或るアプリケーションとの個別接続のうち一方の方向(たとえば「下向き」)の個別接続の利用が比較的多いときであっても、他方の方向(たとえば「上向き」)の個別接続あるいは他のアプリケーションとの個別接続に悪影響が及ぶことを回避ないし抑制することが可能である。第2実施形態では、このような態様について説明する。
【0168】
この第2実施形態においても、上述のように、ゲートウエイ30は、「アプリトリガ通信依頼」あるいは「デバイストリガ通信依頼」に基づくトンネル接続要求を受信する。換言すれば、「下向き」のデータ送信開始依頼と「上向き」のデータ送信開始依頼との少なくとも一方に基づくトンネル接続要求が受信される。
【0169】
また、方向別上限値(種類別上限値)M0は、アプリケーション別上限値Mを「アプリトリガ通信依頼」と「デバイストリガ通信依頼」との2種類の通信依頼(2方向の通信依頼)にそれぞれ分配した方向別(種類別)の上限値である。方向別上限値M0としては、下向きの通信依頼用の方向別上限値M01と上向きの通信依頼用の方向別上限値M02とが存在する。
【0170】
この第2実施形態では、ゲートウエイ30は、次の条件が充足される場合に、或るアプリケーション80(たとえば80a)との間での新たな個別接続を接続要求に応じて確立する。当該条件は、合計接続数Q0(次述)が当該アプリケーション80a向け且つ特定方向(特定種類)の通信依頼向けの方向別上限値M0(M01あるいはM02)を超えていないこと、である。ここで、合計接続数Q0は、新規依頼に対応するアプリケーション80(たとえば80a)との間で現在確立されている個別接続の合計接続数Qのうち、当該新規依頼に係る接続要求の通信依頼種類と同じ種類(特定種類)の通信依頼(当該接続要求の通信依頼方向と同じ方向(特定方向)の通信依頼)に基づく個別接続の個数(Q0)である。たとえば、アプリケーション80aとゲートウエイ30との間に「アプリトリガ通信依頼」に基づくトンネル接続が「6」個確立されており且つ「デバイストリガ通信依頼」に基づくトンネル接続が「4」個確立されている場合において、さらにアプリケーション80aから「アプリトリガ通信依頼」に基づく接続要求(新規依頼に係る接続要求)が受信されるとする。このときには、新規依頼に係る接続要求の通信依頼種類と同じ種類の通信依頼(「アプリトリガ通信依頼」)に基づく個別接続の個数「6」個が、合計接続数Q0として算出される。
【0171】
また、「方向別高負荷アプリケーション」(次述)が存在する場合、ゲートウエイ30は、当該方向別高負荷アプリケーションとゲートウエイとの通信のリクエスト時間間隔(詳細にはHTTPリクエスト時間間隔等)を増大する。ここで、「方向別高負荷アプリケーション」(種類別高負荷アプリケーションとも称する)は、当該ゲートウエイ30との間で現在確立されている個別接続のうち、ステップS71で受信された新規接続要求と同一方向(同一種類)の通信依頼に基づく個別接続の合計接続数が方向別上限値(種類別上限値)M0を超えているアプリケーションである。
【0172】
<2−2.各アプリケーションにおける2種類の通信依頼>
ここにおいて、1つのアプリケーション(サービス)においても、上述の2種類の通信依頼(詳細には、アプリトリガ通信依頼」および「デバイストリガ通信依頼」)が存在し得る。
【0173】
たとえば、プルプリントサービス等に関して、当該2種類の通信依頼が存在し得る。
【0174】
ここにおいて、プルプリントサービスにおいては、まず、印刷依頼元装置を用いてユーザによるプリント指示がなされた後、印刷依頼元装置からサーバ(ここではクラウドサーバ70)に印刷データが転送され、当該印刷データがサーバ70の格納部(プルプリント用格納領域)等に一旦蓄積される。
【0175】
その後、今度は印刷出力装置(ここではデバイス10)の操作入力部等を用いたユーザ認証操作を経て、クラウドサーバ70から印刷データが取得(プル)され印刷出力装置による印刷出力(プリント)が行われる。より詳細には、まず、デバイス10でユーザ認証操作が行われた後、印刷対象文書(印刷候補)のリスト(プルプリント対象文書リスト)の送信要求がデバイス10からクラウドサーバ70に送信され、当該送信要求に応じて当該リストがクラウドサーバ70からデバイス10に送信される。そして、デバイス10にて当該リストが表示され、当該リストから所望の印刷対象文書がユーザによって選択されると、当該印刷対象文書に関する印刷データがクラウドサーバ70からデバイス10へと送信され、当該印刷データに基づく印刷出力(プリント)がデバイス(印刷出力装置)10によって行われる。
【0176】
このようなプルプリントサービスを提供するアプリケーション80(たとえば80a)に関しては、上述の2種類の通信依頼(詳細には、アプリトリガ通信依頼」および「デバイストリガ通信依頼」)の双方が存在し得る。具体的には、ログインユーザのプルプリント対象文書リスト(印刷出力候補の文書名情報)の送信要求をデバイス10からクラウドサーバ70(アプリケーション80a)へ送信する通信は、「デバイストリガ通信依頼」に基づいて実行される。一方、印刷データをクラウドサーバ70からデバイス10へと送信する処理は、アプリケーション80aからデバイス10へと向かう向きの「アプリトリガ通信依頼」に基づいて実行される。
【0177】
他のアプリケーションにおいても同様であり、各アプリケーション(サービス)において、上述の2種類の通信依頼(詳細には、アプリトリガ通信依頼」および「デバイストリガ通信依頼」)が存在し得る。
【0178】
<2−3.方向別上限値(種類別上限値)M0>
この第2実施形態では、方向別上限値(種類別上限値)M0が利用される。方向別上限値M0は、上述のアプリケーション別上限値Mを「アプリトリガ通信依頼」と「デバイストリガ通信依頼」との2種類の通信依頼に対してそれぞれ分配した方向別の上限値である。方向別上限値M0としては、下向きの通信依頼用の方向別上限値M01と上向きの通信依頼用の方向別上限値M02とが存在する。
【0179】
図15は、第2実施形態に係る上限値設定用テーブル210(210b)を示す図である。図15においては、方向別上限値M0の一例が示されている。第2実施形態では、図15のような上限値設定用テーブル210(210b)が、ゲートウエイ30の格納部内に予め格納されているものとする。
【0180】
図15の最左列は、接続確立済みのサービスの個数N(現在、ゲートウエイ30との間でトンネル接続を確立しているアプリケーションの個数)を示している。また、その右隣の列(図15の最左列から2番目の列)は、アプリケーション別上限値Mを示している。図13と比較すると判るように、図15の最左列は図13の左列と同じであり、図15の最左列から2番目の列は図13の右列と同じである。なお、図15においても、ゲートウエイ30の最大処理能力(ゲートウエイ30において1又は複数のアプリケーションとの間で確立可能な個別接続の最大数X)が「30」である場合が例示されている。
【0181】
図15の右側2列に示されるように、アプリケーション別上限値Mは、「アプリトリガ通信依頼」に基づくトンネル接続要求の上限値(「下向き」通信の上限値とも称する)M01と「デバイストリガ通信依頼」に基づくトンネル接続要求の上限値(「上向き」通信の上限値とも称する)M02とに分配される。ここでは、接続アプリケーション(サービス)の個数Nに応じた各アプリケーション別上限値Mが、下向き通信の上限値M01と上向き通信の上限値M02とに対して、それぞれ、所定の割合(約1:2)で分配される。
【0182】
たとえば、個数Nが「1」の場合には、そのアプリケーション別上限値M「30」が下向き通信の上限値M01「10」と上向き通信の上限値M02「20」とに分配される。
【0183】
同様に、個数Nが「2」の場合には、そのアプリケーション別上限値M「15」が下向き通信の上限値M01「5」と上向き通信の上限値M02「10」とに分配される。
【0184】
また、個数Nが「3」の場合には、そのアプリケーション別上限値M「10」が下向き通信の上限値M01「3」と上向き通信の上限値M02「7」とに分配される。
【0185】
同様にして、その他の各個数Nに対応するアプリケーション別上限値Mも所定の割合(ここでは、約1:2)で2種類の上限値M01,M02に分配される。
【0186】
なお、個数Nが「30」の場合には、そのアプリケーション別上限値M「1」であり、仮に完全に分配すると一方の方向の方向別上限値M0(たとえば、M01)が「0」になってしまい、当該一方の方向のトンネル接続の確立に不都合が生じる。そこで、例外的に、下向き通信の上限値M01と上向き通信の上限値M02との双方を「1」に設定している。
【0187】
<2−4.詳細動作>
次に、第2実施形態に係るゲートウエイ30の動作について図14等を参照しながら、さらに詳細に説明する。
【0188】
図14のステップS71〜S79においては、図10のステップS51〜S59とそれぞれ同様の処理が行われる。ただし、上述のように、この第2実施形態に係るステップS71〜S79では、各トンネル接続要求が「アプリトリガ通信依頼」と「デバイストリガ通信依頼」とのいずれに基づくものであるか等を考慮して各動作が制御される点で第1実施形態に係るステップS51〜S59と相違する。
【0189】
ステップS71において、ゲートウエイ30は、「アプリトリガ通信依頼」あるいは「デバイストリガ通信依頼」に基づくトンネル接続要求を受信すると、当該トンネル接続要求が何れの方向に係るものかを判定する。すなわち、「アプリトリガ通信依頼」(下向きの通信依頼)に基づくトンネル接続要求と、「デバイストリガ通信依頼」(上向きの通信依頼)に基づくトンネル接続要求とのいずれが受信されたかが判定される。
【0190】
具体的には、当該トンネル接続要求の通信プロトコルに基づいて、いずれの方向(向き)の通信依頼に基づくトンネル接続要求が受信されたか判定される。より詳細には、XMPP等のプロトコル(常時接続のメッセージセッションのプロトコル)を用いて受信されたトンネル接続要求は、「アプリトリガ通信依頼」(下向きの通信依頼)に基づくトンネル接続要求であると判定される。一方、HTTP(および/またはFTP)等のプロトコル(非常時接続のメッセージセッションのプロトコル)を用いて受信されたトンネル接続要求は、「デバイストリガ通信依頼」(上向きの通信依頼)に基づくトンネル接続要求であると判定される。
【0191】
ステップS72においては、当該トンネル接続要求が接続確立済みのサービス(アプリケーション)に関するものであるか否かが判定される。
【0192】
当該トンネル接続要求が接続確立済みのアプリケーション(サービス)に関するものであると判定される場合には、ステップS73に進む。一方、当該トンネル接続要求が接続確立済みのアプリケーション以外のアプリケーション(端的に言えば「新たなアプリケーション」)に関するものであると判定される場合にはステップS76に進む。
【0193】
ステップS73では、現在の方向別限値M0が取得される。具体的には、上限値設定用テーブル210(210b)(図15)に基づいて、方向別上限値M0が決定されて取得される。たとえば、接続サービスの個数Nが「1」である場合には、アプリケーション別上限値Mが「30」であり、下向きの方向別上限値M01は「10」であり、上向きの方向別上限値M02は「20」である。
【0194】
また、ステップS73では、ゲートウエイ30と新規のトンネル接続要求(ステップS71)の対応アプリケーション80(たとえば80a)との間で現在確立されているトンネル接続要求(個別接続)のうち、ステップS71で受信された通信依頼と同一種類(同一方向)の通信依頼に基づく個別接続の合計接続数Q0もが取得される。
【0195】
そして、ステップS74において、当該個数M0(M01あるいはM02)と個数Q0との大小関係が判定される。
【0196】
合計接続数Q0が方向別上限値M0(ステップS71での接続要求に対応するアプリケーション向け且つ当該接続要求と同一種類の通信依頼に基づく接続要求向けの上限値)(たとえば、M01)以上である場合には、ステップS74からステップS75に進む。ステップS75において、ゲートウエイ30は、当該対応アプリケーション80(80a)との間での新たな個別接続を未だ確立しないことを決定し、このトンネル接続要求を待ち行列に投入する。また、ゲートウエイ30は、待ち行列の最新情報(ゲートウエイ30の負荷状況)を管理サーバ50に送信する。より詳細には、ゲートウエイ30aとアプリケーション80aとの間の個別接続に待ちが発生している旨が、ゲートウエイ30から管理サーバ50に送信される。管理サーバ50は、ゲートウエイ30から受信した当該最新情報に基づいて、当該ゲートウエイ30(30a)の負荷状況に関する待機状況情報110を更新する。
【0197】
たとえば、ゲートウエイ30と2つのアプリケーション80a,80bのそれぞれとの間の個別のトンネル接続が確立されている場合には、アプリケーション別上限値Mは「15」である。また、下向きの方向別上限値M01は「10」である。そして、新規接続要求が「下向き」の接続要求であり、且つ、当該新規接続要求の対応アプリケーション80(80a)に関する既存のトンネル接続の個数Qのうち「下向き」の合計接続数Q0が既に「10」に到達しているときには、11個目の「下向き」の接続要求は、待ち行列に投入される。
【0198】
一方、合計接続数Q0が当該方向別上限値M0(たとえば、M01)未満である場合には、ステップS74からステップS61に進む。ステップS61においては、ゲートウエイ30は、当該対応アプリケーション80(80a)との間での新たな個別接続を確立すべき旨を決定する。そして、ゲートウエイ30は、トンネル接続の確立要求をクラウドサーバ70a(アプリケーション80aに対応するクラウドサーバ70)に送信し、クラウドサーバ70aとのトンネル接続を確立する。
【0199】
たとえば、ゲートウエイ30と2つのアプリケーション80a,80bのそれぞれとの間の個別のトンネル接続が確立されている場合には、アプリケーション別上限値Mは「15」である。また、下向きの方向別上限値M01は「10」である。そして、新規接続要求が「下向き」の接続要求であり、且つ、新規接続要求の対応アプリケーション80(80a)に関する既存のトンネル接続の個数Qのうち「下向き」の合計接続数Q0が「10」未満の値(たとえば、「5」)であるときには、ステップS61に進む。ステップS61では、6個目の「下向き」の接続要求に対応して、当該6個目のトンネル接続に関する確立要求がクラウドサーバ70aに送信される。これにより、クラウドサーバ70a(アプリケーション80a)とのトンネル接続が確立される。
【0200】
このようにして、方向別の合計接続数Q0が方向別上限値M0(ステップS71での接続要求に対応するアプリケーション向け且つ当該接続要求と同一種類の通信依頼に基づく接続要求向けの上限値)(たとえば、M01)よりも小さいことを条件として、当該アプリケーションとの間での新たな個別接続が接続要求に応じて確立される。
【0201】
ステップS74,S61あるいはステップS75の次は、ステップS62(図11)に進む。
【0202】
再び図14を参照する。上述のように、トンネル接続要求が接続確立済みのアプリケーション以外のアプリケーション(端的に言えば「新たなアプリケーション」)に関するものであると判定される場合には、ステップS72からステップS76に進む。
【0203】
ステップS76においては、ステップS56と同様に、接続確立済みのアプリケーションの個数Nが1つインクリメントされるとともに、アプリケーション別上限値Mが更新される。たとえば、個数Nが「2」から「3」に増える場合には、アプリケーション別上限値Mが「15」から「10」に低減される。また、これに伴って、下向きの方向別上限値M0(M01)が「5」から「3」に低減され且つ上向きの方向別上限値M0(M02)が「10」から「7」に低減される。
【0204】
また、ステップS77において、既存のトンネル接続の個数がアプリケーションごとに取得される。換言すれば、アプリケーションごとの既存のトンネル接続(個別接続)の個数Q(アプリケーションごとの既存接続数Qとも称する)が取得される。特に、このステップS77では、アプリケーションごと且つ方向別の既存接続数Q0が取得される。具体的には、「下向き」の既存接続数Q01と「上向き」の既存接続数Q02とが、アプリケーションごとに取得される。
【0205】
そして、ステップS78において、両者M0,Q0の大小関係が既存アプリケーション(当該ゲートウエイ30との間にトンネル接続が既に確立されているアプリケーション)ごとに且つ通信依頼の方向ごとに判定される。
【0206】
具体的には、各既存アプリケーション80のそれぞれについて、アプリケーションごと且つ方向別の既存接続数Q0と方向別上限値M0とが比較される。
【0207】
詳細には、まず、各既存アプリケーション80のそれぞれについて、アプリケーションごと且つ「下向き」の既存接続数Q01と「下向き」向けの上限値M01とが比較される。さらに、各既存アプリケーション80のそれぞれについて、アプリケーションごと且つ「上向き」の既存接続数Q02と「上向き」向けの上限値M02とが比較される。
【0208】
全てのアプリケーションについて(より詳細には「両方向」について)、アプリケーションごと且つ方向別の既存接続数Q0が更新後の方向別上限値M0未満である場合には、ステップS78からステップS61に進む。ステップS61においては、上述のような動作が実行される。具体的には、ゲートウエイ30は、当該対応アプリケーション80aとの間での新たな個別接続を確立すべき旨を決定し、トンネル接続の確立要求をクラウドサーバ70aに送信し、クラウドサーバ70aとのトンネル接続を確立する。
【0209】
たとえば、ゲートウエイ30(30a)と2つのアプリケーション80a,80bのそれぞれとの間に個別のトンネル接続が確立されている場合において、別のアプリケーション80cに関する新規のトンネル接続要求がステップS71で受信された状況を想定する。また、ゲートウエイ30とアプリケーション80aとの間の個別のトンネル接続のうち、「下向き」の接続数は「3」であり且つ「上向き」の接続数は「5」であるものとする。さらに、ゲートウエイ30とアプリケーション80bとの間の個別のトンネル接続のうち、「下向き」の接続数は「2」であり且つ「上向き」の接続数は「5」であるものとする。
【0210】
この状況において、新たなアプリケーション80cからの新規のトンネル接続要求が受信されると、個数Nが「2」から「3」に増大され且つアプリケーション別上限値Mが「15」から「10」へと変更(低減)される(ステップS76)。また、方向別上限値M0もそれぞれ変更される。具体的には、「下向き」向けの上限値M01は「5」から「3」に低減され、「上向き」向けの上限値M02は「10」から「7」に低減される。
【0211】
この場合には、各アプリケーション80a,80bに関する「下向き」の方向別の各既存接続数Q01「3」,「2」は、いずれも、更新後の「下向き」向けの上限値M01「3」以下である。また、各アプリケーション80a,80bに関する「上向き」の方向別の各既存接続数Q02「5」,「5」は、いずれも、更新後の「上向き」向けの上限値M02「7」以下である。そのため、ステップS78からステップS61に進む。
【0212】
一方、少なくとも1つのアプリケーションについて(より詳細には少なくとも一方の「方向」について)、方向別の既存接続数Q0が更新後の方向別上限値M0以上である場合には、ステップS78からステップS79に進む。
【0213】
たとえば、ゲートウエイ30(30a)と2つのアプリケーション80a,80bのそれぞれとの間に個別のトンネル接続が確立されている場合において、別のアプリケーション80cに関する新規のトンネル接続要求がステップS71で受信された状況を想定する。また、ゲートウエイ30とアプリケーション80aとの間の個別のトンネル接続のうち、「下向き」の接続数Q01は「5」であり且つ「上向き」の接続数Q02は「7」であるものとする。さらに、ゲートウエイ30とアプリケーション80bとの間の個別のトンネル接続のうち、「下向き」の接続数Q01は「2」であり且つ「上向き」の接続数Q02は「5」であるものとする。
【0214】
この状況において、新たなアプリケーション80cからの新規のトンネル接続要求が受信されると、個数Nが「2」から「3」に増大され且つアプリケーション別上限値Mが「15」から「10」へと変更(低減)される(ステップS76)。また、方向別上限値M0もそれぞれ変更される。具体的には、「下向き」向けの上限値M01は「5」から「3」に低減され、「上向き」向けの上限値M02は「10」から「7」に低減される。
【0215】
この場合、アプリケーション80aに関する「下向き」の(方向別の)各既存接続数Q01「5」は、更新後の「下向き」向けの上限値M01「3」より大きい、と判定される。換言すれば、ゲートウエイ30との間で現在確立されている個別接続のうち所定種類の通信依頼(たとえば、「下向き」の通信依頼)に基づく個別接続の合計接続数Q0が当該所定種類の通信依頼に対応する方向別上限値M0を超えているアプリケーション(「方向別高負荷アプリケーション」)(たとえば、80a)が存在する旨が判定される。なお、「方向別高負荷アプリケーション」は、「種類別高負荷アプリケーション」とも称される。
【0216】
このような判定の結果、ステップS78からステップS79に進む。
【0217】
ステップS79においては、ゲートウエイ30は、「方向別高負荷アプリケーション(80a)」とゲートウエイ30との通信接続であって所定種類の通信依頼に対応する通信接続におけるリクエスト時間間隔を増大する。たとえば、直上の例においては、高負荷アプリケーション80aに関する「下向き」のトンネル接続のHTTPリクエスト時間間隔が、変更前の値(たとえばデフォルト値)よりも長い値(長い時間)に変更される。当該HTTPリクエスト時間間隔は、たとえば方向別上限値M0の変更前後比(後/前)の逆数倍(すなわち、(変更前の値M0)/(変更後の値M0))に増大されればよい。
【0218】
なお、アプリケーション80aに関する「上向き」の方向別の各既存接続数Q02「7」は、更新後の「上向き」向けの上限値M02「5」以下である、と判定される。そのため、アプリケーション80aに関する「上向き」のトンネル接続のHTTPリクエスト時間間隔は、変更されない。また、アプリケーション80bに関する「下向き」の方向別の各既存接続数Q01「2」は、更新後の「下向き」向けの上限値M01「3」以下である、と判定されるとともに、アプリケーション80bに関する「上向き」の方向別の各既存接続数Q02「5」は、更新後の「上向き」向けの上限値M02「7」以下である、と判定される。そのため、アプリケーション80bに関するトンネル接続のHTTPリクエスト時間間隔は、いずれの方向に関しても変更されない。さらに、他のアプリケーション80cに関するトンネル接続のHTTPリクエスト時間間隔も変更されない。
【0219】
このようにして、所定方向に関して方向別上限値M0よりも大きな既存接続数Q0を有する方向別高負荷アプリケーションが発生する場合、当該方向別高負荷アプリケーションとゲートウエイ30との通信(トンネル接続)であって当該所定方向の通信依頼に対応する通信におけるリクエスト時間間隔が増大される。
【0220】
ステップS78あるいはステップS79の次は、ステップS61に進む。ステップS61では、アプリケーション80cに関する新規のトンネル接続要求(ステップS71)に対応して、ゲートウエイ30とアプリケーション80cとの間のトンネル接続が確立される。そして、当該トンネル接続を利用して、ゲートウエイ30とアプリケーション80cとのHTTP通信が実行される。
【0221】
ステップS62以降の処理は第1実施形態と同様である。
【0222】
以上のような態様においては、ゲートウエイ30は、アプリケーション80aとの間での新規のトンネル接続要求を受信する場合、或る条件の下、アプリケーション80aとの間での新たな個別接続を当該トンネル接続要求に応じて確立する(ステップS74,S61参照)。具体的には、当該アプリケーション80aと当該ゲートウエイ30との間で現在確立されている個別接続のうち、新規のトンネル接続要求の通信依頼種類と同じ種類である特定種類(特定方向)の通信依頼に基づくトンネル接続の合計接続数Q0が、当該アプリケーション80a向け且つ当該特定種類の通信依頼向けの方向別上限値(種類別上限値)M0よりも小さいことを条件として、当該新たな個別接続が確立される。逆に言えば、アプリケーション80aとの間のトンネル接続であって新規のトンネル接続要求と同じ種類(特定種類)の通信依頼に基づくトンネル接続の既存接続数Q0が当該アプリケーション80a向けの当該特定種類(特定方向)の方向別上限値M0以上である場合には、トンネル接続要求が受信されたときでも、アプリケーション80aとの間での新たなトンネル接続要求は確立されない(ステップS74,S75参照)。
【0223】
したがって、特定のアプリケーション80aの利用集中(特に、特定方向の通信依頼に関する利用集中)が突発的に発生した場合であっても他のアプリケーション80b等の利用者に悪影響が及ぶことを回避ないし抑制することが可能である。また、特定のアプリケーション80aとの特定方向のトンネル接続に関する利用集中が突発的に発生した場合であっても、当該特定方向以外の方向のトンネル接続(異なるトリガー種類のトンネル接続)に関する利用に悪影響が及ぶことを回避ないし抑制することが可能である。
【0224】
また、上述の「方向別高負荷アプリケーション」(たとえば80a)が存在する場合、当該高負荷アプリケーション80aとゲートウエイ30とのトンネル接続(通信)におけるリクエスト間隔が増大される。より詳細には、ゲートウエイ30との個別接続を既に確立しているアプリケーション80a,80bとは別のアプリケーション80cとの間で更なる個別接続を確立すべき旨の接続要求が受信されると、方向別上限値M0が低減される。そして、方向別上限値M0の低減に応じて、特定方向に関する方向別高負荷アプリケーション(たとえば80a)が発生する場合、特定の通信接続におけるリクエスト時間間隔が増大される。ここで、当該特定の通信接続は、当該方向別高負荷アプリケーション80aとゲートウエイ30との通信接続であって、当該特定方向の通信依頼に対応する通信接続である。
【0225】
これによれば、新たに方向別高負荷アプリケーションになったアプリケーション80aとのトンネル接続の当該特定方向の通信負荷が抑制される。したがって、特定のアプリケーション80a(より詳細には、特定方向の通信依頼に基づくトンネル接続要求)に関する利用が比較的多い場合であっても他のアプリケーション80b,80c等の利用者に悪影響が及ぶことを回避ないし抑制することが可能である。また、特定のアプリケーション80aとの通信のうち所定方向以外の通信に影響が及ぶことを回避することが可能である。たとえば、HTTPリクエスト間隔が「下向き」の通信のみに関して変更される場合には、「上向き」の通信(デバイストリガ通信)に影響が及ぶことを回避ないし抑制することが可能である。
【0226】
また、上記ステップS76においては、図15の上限値設定用テーブル210bに従って方向別上限値M0が決定される。具体的には、2方向(2種類)の通信依頼のうち、「上向き」の通信依頼(「デバイストリガ通信依頼」)向けの方向別上限値M02が、「下向き」の通信依頼(「アプリトリガ通信依頼」)向けの方向別上限値M01よりも大きな値として決定される。
【0227】
一般に、デバイストリガ通信依頼に基づくトンネル接続を用いた通信の方が、アプリトリガ通信依頼に基づくトンネル接続を用いた通信よりも、即時性を求められることが多い。たとえば、上述のプルプリント処理においては、ログインユーザのプルプリント対象文書リスト(印刷出力候補の文書名情報)の送信が、「デバイストリガ通信依頼」に基づくトンネル接続を用いて実行される。当該プルプリント対象文書リストに基づく画面表示は、特に即応性(ユーザ操作に対して素早く反応して表示されること)が求めれられることが多い。
【0228】
これに対して、上記実施形態においては、デバイストリガ通信依頼に基づくトンネル接続に関する方向別上限値M02が、アプリトリガ通信依頼に基づくトンネル接続に関する方向別上限値M01よりも大きな値に設定されている。そのため、デバイストリガ通信依頼に基づくトンネル接続の既存接続数Q0は、デバイストリガ通信依頼に対応する更新後の方向別上限値M02を超え難くなり、ステップS78からステップS79に進み難くなる。すなわち、デバイストリガ通信依頼(「上向き」の通信依頼)に基づくトンネル接続のHTTPリクエスト間隔が低減され難くなるので、上述の即時性(即応性)を比較的確保し易い。
【0229】
<3.変形例等>
以上、この発明の実施の形態について説明したが、この発明は上記説明した内容のものに限定されるものではない。
【0230】
たとえば、上記各実施形態においては、アプリケーション別上限値Mは各アプリケーションに対して同じ値であるが、これに限定されず、アプリケーション別上限値Mはアプリケーションごとに異なる値であってもよい。
【0231】
また、上記各実施形態においては、アプリケーション別上限値Mは、上限値設定用テーブル210に予め規定された値(固定値)に基づいて決定されているが、これに限定されず、アプリケーション別上限値Mは、他の情報(接続履歴等)に基づいて決定されるようにしてもよい。
【0232】
具体的には、ゲートウエイ30と各アプリケーション80との接続履歴に基づいて、アプリケーション別上限値Mが決定されてもよい。より具体的には、ゲートウエイ30との間で個別接続を現在確立している複数のアプリケーション80(たとえば、2つのアプリケーション80a,80b)に関して、当該複数のアプリケーションとゲートウエイとの過去の接続情報(接続履歴)に基づいて、アプリケーション別上限値がアプリケーションごとに決定されてもよい。
【0233】
図16は、ゲートウエイ30と各アプリケーション80とのトンネル接続の接続履歴(通信履歴)に関する情報(接続履歴情報)310を示す図である。
【0234】
図16に示すように、ゲートウエイ30におけるトンネル接続の接続履歴は、「通信先アプリケーション(サービス)」、「接続開始時刻」、「接続終了時刻」、「1接続におけるデータ通信量」等の各情報を含む。
【0235】
ゲートウエイ30は、これらの接続履歴に関する情報(接続履歴情報)310をゲートウエイ30の格納部に格納しておく。なお、当該接続履歴情報310は、随時更新される。
【0236】
ゲートウエイ30は、上述のステップS56(図10参照)等でアプリケーション別上限値Mを決定する際に、アプリケーションごとの各種情報(「単位期間当たりの接続数」および「単位期間当たりのデータ通信量」等)を取得する(図17参照)。なお、これらの情報(「単位期間当たりの接続数」および「単位期間当たりのデータ通信量」等)は、ゲートウエイ30と各アプリケーション80との過去の接続における通信負荷の多寡を示す指標値であるとも表現される。また、これらの情報は、当該接続履歴情報に基づく情報であり、当該接続履歴情報の集計結果として取得される。
【0237】
図17は、接続履歴情報310を集計した集計結果320を示す図である。図17においては、所定期間(単位期間)内(たとえば、1日)のトンネル接続の接続数がアプリケーションごとに集計されている。
【0238】
そして、ゲートウエイ30は、たとえば「単位期間当たりの接続数」に基づいて、各アプリケーション別上限値Mをアプリケーションごとに決定する。
【0239】
2つのアプリケーションに関するトンネル接続が確立されている場合、上述の実施形態では2つのアプリケーションのそれぞれに対して常に同じ値「15」がアプリケーション別上限値M(同じ値)として割り当てられる。これに対して、この変型例では、当該2つのアプリケーションのそれぞれに対して互いに異なる値がアプリケーション別上限値Mとして割り当てられ得る。特に、各アプリケーション向けの各アプリケーション別上限値Mは、当該各アプリケーションの接続履歴(過去の稼働状況)を反映して設定される。
【0240】
より詳細には、単位期間あたりの接続数が少ないアプリケーション(サービス)に対しては、比較的小さな値がアプリケーション別上限値Mとして割り当てられる。逆に、単位期間あたりの接続数が多いアプリケーション(サービス)に対しては、比較的大きな値がアプリケーション別上限値Mとして割り当てられる。換言すれば、各アプリケーションに関する過去の通信負荷を考慮して、アプリケーション別上限値Mがアプリケーションごとに決定される。
【0241】
たとえば、ゲートウエイ30の能力に基づく上述の最大接続数X(たとえば、「30」)が、当該2つのアプリケーションの「単位期間当たりの接続数」の比率に応じて当該2つのアプリケーションに分配されればよい。より詳細には、一方のアプリケーション80aの「単位期間当たりの接続数」が「100」であり且つ他方のアプリケーション80bの「単位期間当たりの接続数」が「200」であるときには、アプリケーション80aのアプリケーション別上限値Mが「10」に決定され且つアプリケーション80bのアプリケーション別上限値Mが「20」に決定されればよい。
【0242】
あるいは、最大数Xが各アプリケーションの「単位期間当たりのデータ通信量」の比率に応じて分配されて、各アプリケーション別上限値Mが決定されてもよい。たとえば、一方のアプリケーション80aの「データ通信量」が他方のアプリケーション80bの「データ通信量」の2倍であるときには、アプリケーション80aのアプリケーション別上限値Mが「20」に決定され且つアプリケーション80bのアプリケーション別上限値Mが「10」に決定されればよい。
【0243】
これによれば、各アプリケーションの実際の接続履歴に基づいて各アプリケーションの利用頻度等が取得され、当該利用頻度等に応じてアプリケーション別上限値Mが適切に設定される。したがって、ゲートウエイ30のリソースが複数のアプリケーションの相互間で適切に分配される。より詳細には、実際の利用頻度が比較的低いアプリケーション(たとえば、カウンタ情報収集サービス、装置情報取得サービス(ステータスポーリングサービス)等)に対しては、比較的小さな値がアプリケーション別上限値Mとして割り当てられる。一方、実際の利用頻度が比較的高いアプリケーション(たとえば、クラウドプリントサービス等)に対しては、比較的大きな値がアプリケーション別上限値Mとして割り当てられるので、接続数がアプリケーション別上限値Mに到達し難くなる。
【0244】
なお、各アプリケーションの利用頻度は、顧客企業等によって異なることも多い。上記のような変形例によれば、各顧客企業における実際の利用頻度が反映されるので、非常に好適である。
【0245】
また、アプリケーション別上限値Mが2種類の種類別上限値M01,M02に分配される際にも、同様の思想が適用されてもよい。具体的には、接続履歴情報310に基づいて所定期間(単位期間)内のトンネル接続の接続数がアプリケーションごとに集計される(図17参照)とともに、さらに各アプリケーションごとの「単位時間あたりの接続数」が方向別(種類別)に分離して集計されればよい。このような集計に基づいて、各アプリケーションに関する方向別の比率(「単位時間あたりの接続数」の方向別比率(種類別比率))が算出されればよい。たとえば、或るアプリケーションについて、「下向き」の通信依頼に基づくトンネル接続の「単位時間あたりの接続数」と「上向き」の通信依頼に基づくトンネル接続の「単位時間あたりの接続数」との比率が「2:3」であるときには、方向別上限値M01,M02の比率が「2:3」に決定されればよい。より詳細には、当該或るアプリケーション80に対して「15」のアプリケーション別上限値Mが割り当てられる場合には、方向別上限値M01として「6」が決定され、方向別上限値M02として「9」が決定されればよい。
【0246】
また、上記各実施形態においては、デバイス10からの通信依頼(ひいてはデバイス10からのトンネル接続要求)は、管理サーバ50を経由せずに(謂わば直接的に)ゲートウエイ30へと送信されている(図8参照)が、これに限定されない。たとえば、図18に示すように、デバイス10からのトンネル接続要求は、当該デバイス10から管理サーバ50を経由してゲートウエイ30へと送信されるようにしてもよい。より詳細には、デバイス10からの通信依頼(ステップS21)がゲートウエイ30を経由して管理サーバ50に送信され(ステップS22)、管理サーバ50からゲートウエイ30へとトンネル接続要求が送信される(ステップS24)ようにしてもよい。そして、ゲートウエイ30は、デバイス10からの通信依頼と管理サーバ50からの接続要求とに基づいて、トンネル接続の確立要求をアプリケーション80に対して送信するようにしてもよい。
【0247】
また、上記各実施形態に係るシステム1においては、複数のデバイス10が設けられているが、これに限定されず、単一のデバイス10のみが設けられてもよい。
【0248】
また、上記各実施形態に係るシステム1においては、複数のクラウドサーバ70が設けられているが、これに限定されず、単一のクラウドサーバ70のみが設けられてもよい。
【符号の説明】
【0249】
1 通信システム
10 デバイス
30 ゲートウエイ
50 管理サーバ
70 クラウドサーバ
80 アプリケーション
90 クライアント
107 LAN
M アプリケーション別上限値
M0,M01,M02 方向別上限値(種類別上限値)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18