(57)【要約】【課題】サーバへの負荷の集中を防止するための技術を提供する。【解決手段】複数のＭＦＰ８２，８４，８６から第１タイミングで、第１情報が中継サーバ５０，７０に送信されており、その第１情報に基づく第２情報が、中継サーバからキュー９２に送信される。そして、第２情報が、キューで記憶されており、情報処理サーバ１０は、第１タイミングと異なる第２タイミングで、第２情報をキューから読み取る。また、情報処理サーバは、第２情報に基づく第３情報をデータベース９６に送信する。これにより、中継サーバとＭＦＰとの間の通信経路がダウンし、その通信経路が回復した場合に、複数の第２情報がキューに記憶されるが、デバイスから中継サーバに第１情報が送られるタイミングと異なるタイミングで、情報処理サーバは、キューから第２情報を取得するため、情報処理サーバの負荷を抑制することが可能となる。【選択図】図３
2015144351.tif 000002
【特許請求の範囲】
【請求項１】
複数のデバイスと、
前記複数のデバイスとネットワーク通信可能な中継サーバと、
データベースとネットワーク通信可能な通信部と、プロセッサとを備える情報処理サーバと、
前記データベースと前記中継サーバとクライアント装置とネットワーク通信可能なクライアント要求処理サーバと、
を備えた通信システムであって、
前記複数のデバイスの各々は、
第１タイミングで、第１情報を前記中継サーバに送信することが可能であり、
前記中継サーバは、
前記第１情報を受信したことに応じて、および、所定のタイミングで前記第１情報を受信できなかったことに応じて、前記第１情報に基づく情報であって、前記複数のデバイス毎の特定の情報である第２情報を、前記データベースが備えられた装置とも、前記クライアント装置とも、前記クライアント要求処理サーバとも異なる装置に備えられたメモリに記憶するために送信することが可能であり、
前記プロセッサは、
前記中継サーバから送信されて前記メモリに記憶された前記第２情報を、前記メモリから、前記第１タイミングとは異なる第２タイミングで読み出す第２情報読出手段と、
前記第２情報読出手段が前記第２情報を読み出したことに応じて、読み出された前記第２情報に基づく情報であって、前記データベースに記憶させるべき第３情報を、前記データベースが備えられた装置に前記通信部を介して送信する第３情報送信手段と、
して機能することが可能であり、
前記クライアント要求処理サーバのプロセッサは、
前記第３情報送信手段によって前記データベースが備えられた装置に送信された前記第３情報を、前記クライアント装置から受信した要求情報に応じて、前記データベースから読み出す第３情報読出手段と、
前記第３情報読出手段が前記第３情報を読み出したことに応じて、前記クライアント装置から受信した要求情報に対応する処理を実行する実行手段と、
して機能することが可能であることを特徴とする通信システム。
【請求項２】
前記クライアント要求処理サーバにおける前記実行手段は、
前記第３情報読出手段によって読み出された前記第３情報を、前記クライアント装置に送信することを特徴とする請求項１に記載の通信システム。
【請求項３】
前記中継サーバは、
前記複数のデバイスの各々から送信される前記第１情報のうち、第１周期で送信される周期情報を受信したことに応じて、および、所定のタイミングで前記周期情報を受信できなかったことに応じて、前記複数のデバイスの各々と前記中継サーバとの間の通信状態に関する前記第２情報を、前記メモリに記憶するために送信することが可能であり、
前記情報処理サーバにおける前記第２情報読出手段は、
前記中継サーバから送信されて前記メモリに記憶された前記第２情報を、前記メモリから、前記第１周期とは異なる第２周期で読み出し、
前記情報処理サーバにおける前記第３情報送信手段は、
前記複数のデバイスの各々と前記中継サーバとの間の通信状態に関する前記第２情報を前記第２情報読出手段が読み出したことに応じて、前記周期情報の送信元デバイスと前記中継サーバとの間の通信状態に関する前記第３情報を、前記データベースが備えられた装置に、前記第１通信部を介して送信し、
前記クライアント要求処理サーバにおける前記第３情報読出手段は、
一のデバイスと前記中継サーバとの間の通信状態を問い合わせる前記要求情報を前記クライアント装置から受信したことに応じて、前記一のデバイスと前記中継サーバとの間の通信状態に関する前記第３情報を、前記データベースから読み出し、
前記クライアント要求処理サーバにおける前記実行手段は、
一のデバイスと前記中継サーバとの間の通信状態を問い合わせる前記要求情報を前記クライアント装置から受信した後に、前記第３情報読出手段が前記第３情報を読み出したことに応じて、前記第３情報読出手段によって読出された、前記一のデバイスと前記中継サーバとの間の通信状態に関する前記第３情報を前記クライアント装置に送信する処理を実行することを特徴とする請求項１または２に記載の通信システム。
【請求項４】
前記複数のデバイスの各々が前記中継サーバに接続確立要求情報を送信することによって、接続確立型プロトコルに従った接続が、前記接続確立要求情報の送信元デバイスの各々と前記中継サーバとの間に確立され、
前記複数のデバイスの各々は、
前記第１情報のうち、前記接続確立型プロトコルに従った接続を維持するための維持情報を第１周期で送信することが可能であり、
前記中継サーバは、
前記維持情報を受信したことに応じて、前記維持情報の送信元デバイスと前記中継サーバとの間の接続が維持されていることを示す前記第２情報を、前記メモリに記憶するために送信し、前記接続を確立したデバイスから、前記維持情報を受信できなかったことに応じて、維持情報を取得できなかったデバイスと前記中継サーバとの間の接続が維持されていないことを示す前記第２情報を、前記メモリに記憶するために送信することが可能であり、
前記情報処理サーバにおける前記第２情報読出手段は、
前記中継サーバから送信されて前記メモリに記憶された前記第２情報を、前記メモリから、前記第１周期とは異なる第２周期で読み出し、
前記情報処理サーバにおける前記第３情報送信手段は、
前記複数のデバイスの各々と前記中継サーバとの間に確立された接続が維持されているか否かを示す前記第２情報を前記第２情報読出手段が読み出したことに応じて、前記複数のデバイスの各々と前記中継サーバとの間に確立された接続の維持に関する前記第３情報を、前記データベースが備えられた装置に、前記通信部を介して送信することを特徴とする請求項１ないし３の何れか１項に記載の通信システム。
【請求項５】
前記中継サーバは、
前記維持情報を受信したことに応じて、前記維持情報の送信元デバイスに、前記維持情報の送信元デバイスと前記中継サーバとの間の接続が維持されていることを示す維持確認情報を送信することが可能であり、
前記複数のデバイスの各々は、
前記維持情報を送信した後、前記維持確認情報を受信できなかったことに応じて、前記中継サーバに接続確立要求情報と、前記維持情報と、を送信することが可能であり、
前記中継サーバは、
維持情報を取得できなかったデバイスと前記中継サーバとの間の接続が維持されていないことを示す前記第２情報を送信した後に、前記維持情報を取得できなかったデバイスから、前記接続確立要求情報と、前記維持情報と、を受信したことに応じて、前記維持情報の送信元デバイスと前記中継サーバとの間の接続が維持されていることを示す前記第２情報を、前記メモリに記憶するために送信することが可能であることを特徴とする請求項４に記載の通信システム。
【請求項６】
前記クライアント要求処理サーバにおける前記実行手段は、
前記一のデバイスと前記中継サーバとの間の通信状態に関する前記第３情報を前記クライアント装置に送信する処理を実行した後に、一のデバイスへの指示を要求する前記要求情報を前記クライアント装置から受信したことに応じて、前記要求情報に基づいた、前記一のデバイスへの指示情報を前記中継サーバに送信する処理を実行することが可能であり、
前記中継サーバは、
前記一のデバイスとの間の接続が維持されている状態で前記一のデバイスへの指示情報を受信したことに応じて、前記一のデバイスへ前記指示情報を送信することが可能であることを特徴とする請求項５に記載の通信システム。
【請求項７】
前記複数のデバイスの各々は、
前記指示情報を前記中継サーバから受信したことに応じて、前記指示情報に基づいた応答情報を、前記第１情報として前記中継サーバへ送信することが可能であり、
前記中継サーバは、
前記一のデバイスへの指示情報を送信した後に、前記一のデバイスから前記応答情報を受信したことに応じて、前記応答情報を前記第２情報として前記メモリに記憶するために送信することが可能であり、
前記第３情報送信手段は、
前記応答情報を前記第２情報読出手段が読み出したことに応じて、前記応答情報を前記第３情報として、前記データベースが備えられた装置に、前記通信部を介して送信することが可能であり、
前記クライアント要求処理サーバにおける前記実行手段は、
前記一のデバイスへの指示を要求する前記要求情報を前記クライアント装置から受信した後に、前記一のデバイスに関する前記応答情報を前記第３情報読出手段が読み出したことに応じて、前記応答情報を前記クライアント装置に送信する処理を実行することが可能であることを特徴とする請求項６に記載の通信システム。
【請求項８】
前記メモリは、前記情報処理サーバとも、前記中継サーバとも異なる装置に設けられており、
前記第２情報読出手段は、前記通信部を介して、前記メモリを備える装置から前記第２情報を読み出すことを特徴とする請求項１ないし７の何れか１項に記載の通信システム。
【請求項９】
前記通信システムは、
複数の前記中継サーバと、
前記複数の中継サーバと前記複数のデバイスとのネットワーク通信を、前記複数の中継サーバのいずれかに分散するロードバランサと、
を備えることを特徴とする請求項１ないし８の何れか１項に記載の通信システム。
【請求項１０】
前記接続確立型プロトコルは、ＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨ（eXtensible Messaging and Presence Protocol Over Bidirectional-streams Over Synchronous HTTP）であり、前記接続確立要求情報はＸＭＰＰセッション確立要求情報であり、前記維持情報はＸＭＰＰコネクション確立要求情報であることを特徴とする請求項１ないし９の何れか１項に記載の通信システム。
【請求項１１】
ネットワーク通信可能な通信部と、
プロセッサと、
を備える情報処理サーバであって、
前記プロセッサは、
複数のデバイスの各々から第１タイミングで中継サーバに送信された第１情報に基づく情報であって、前記中継サーバから送信されてメモリに記憶された、前記複数のデバイス毎の特定の情報である第２情報を、前記メモリから、前記第１タイミングとは異なる第２タイミングで読み出す第２情報読出手段と、
前記第２情報読出手段が前記第２情報を読み出したことに応じて、読み出された前記第２情報に基づく情報であって、前記メモリが備えられた装置とは異なる装置に備えられたデータベースに記憶させるべき第３情報を、前記データベースに記憶された前記第３情報を用いた処理を、前記メモリが備えられた装置とは異なる装置であるクライアント装置から受信した要求情報に応じて行う装置であって、前記メモリが備えられた装置とは異なる装置であるクライアント要求処理サーバとネットワークを介して、接続した前記データベースが備えられた装置に、前記通信部を介して送信する第３情報送信手段と、
して機能することが可能であることを特徴とする情報処理サーバ。
【請求項１２】
前記第３情報送信手段は、
前記複数のデバイスの各々と前記中継サーバとの間の通信状態に関する前記第２情報を、前記第２情報読出手段が読み出したことに応じて、前記第２情報が対象とするデバイスと前記中継サーバとの間の通信状態に関する前記第３情報を、前記データベースが備えられた装置に、前記通信部を介して送信することを特徴とする請求項１１に記載の情報処理サーバ。
【請求項１３】
前記プロセッサは、
前記第２情報読出手段によって読み出された前記第２情報を、前記複数のデバイスの各々と前記中継サーバとの間で通信が確立していることを示す通信確立情報と、前記複数のデバイスの各々と前記中継サーバとの間で通信が確立していないことを示す通信不確立情報とに区分けする情報区分手段と
して機能することが可能であり、
前記第３情報送信手段は、
前記情報区分手段によって区分けされた前記通信確立情報と前記通信不確立情報との少なくとも一方に基づく前記第３情報を、前記通信部を介して、前記データベースが備えられた装置に送信することを特徴とする請求項１２に記載の情報処理サーバ。
【請求項１４】
前記第２情報読出手段は、
前記中継サーバに前記複数のデバイスの各々から送信された接続確立要求情報によって前記中継サーバと前記複数のデバイスの各々との間に確立された、接続確立型プロトコルに従った接続が、前記接続を維持するために前記確立要求情報の送信元デバイスの各々から第１周期で送信される維持情報によって維持されているか否かを示す前記第２情報を、前記メモリから、前記第１周期とは異なる第２周期で読み出し、
前記第３情報送信手段は、
前記複数のデバイスの各々と前記中継サーバとの間に確立された接続が維持されているか否かを示す前記第２情報を前記第２情報読出手段が読み出したことに応じて、前記複数の送信元デバイスの各々と前記中継サーバとの間に確立された接続の維持に関する前記第３情報を、前記データベースが備えられた装置に、前記通信部を介して送信することを特徴とする請求項１２に記載の情報処理サーバ。
【請求項１５】
前記第３情報送信手段は、
前記接続を維持するための期間内に、接続確立要求情報の送信元であるデバイスから前記維持情報を受信できなかった前記中継サーバによって送信されてメモリに記憶された、前記接続確立要求情報の送信元デバイスとの接続が維持されていないことを示す前記第２情報を前記第２情報読取手段が読み出したことに応じて、前記接続確立要求情報の送信元デバイスと前記中継サーバとの間の接続が維持されていないことを示す前記第３情報を、前記データベースが備えられた装置に、前記通信部を介して送信することを特徴とする請求項１４に記載の情報処理サーバ。
【請求項１６】
前記第３情報送信手段は、
前記接続確立要求情報の送信元デバイスとの間の接続が維持されなくなった後に、前記接続確立要求情報の送信元デバイスから前記接続確立要求情報と、前記維持情報と、を受信した前記中継サーバによって送信されて前記メモリに記憶された、前記接続確立要求情報の送信元デバイスとの接続が維持されていることを示す前記第２情報を前記第２情報読出手段が読み出したことに応じて、前記接続確立要求情報の送信元デバイスと前記中継サーバとの間の接続が維持されていることを示す前記第３情報を、前記データベースが備えられた装置に、前記通信部を介して送信することを特徴とする請求項１５に記載の情報処理サーバ。
【請求項１７】
前記第３情報送信手段は、
一のデバイスと前記中継サーバとの間の通信状態を問い合わせる前記要求情報を前記クライアント要求処理サーバを介して前記クライアント装置から受信した前記中継サーバによって送信されて前記メモリに記憶された、前記一のデバイスと前記中継サーバとの接続が維持されていることを示す前記第２情報を前記第２情報読出手段が読み出したことに応じて、前記一のデバイスと前記中継サーバとの間の接続が維持されていることを示す前記第３情報を、前記データベースが備えられた装置に、前記通信部を介して送信し、
前記一のデバイスと前記中継サーバとの間の接続が維持されていることを示す前記第３情報を送信した後に、一のデバイスへの指示を要求する前記要求情報を、前記クライアント要求処理サーバを介して前記クライアント装置から受信して前記維持されている接続を用いて前記一のデバイスへ前記指示情報を送信して前記一のデバイスから返信された応答情報を受信した前記中継サーバによって送信されてメモリに記憶された前記応答情報を前記第２情報として前記第２情報読出手段が読み出したことに応じて、前記応答情報を前記第３情報として、前記データベースが備えられた装置に、前記通信部を介して送信することを特徴とする請求項１４ないし１６の何れか１項に記載の情報処理サーバ。
【請求項１８】
前記プロセッサは、
前記第２情報読出手段によって読み出された所定数の前記第２情報を、前記所定数以下の前記第３情報に処理する情報処理手段と
して機能することが可能であり、
前記第３情報送信手段は、
前記情報処理手段によって処理された前記所定数以下の前記第３情報を、前記通信部を介して、前記データベースが備えられた装置に送信することを特徴とする請求項１４ないし１７の何れか１項に記載の情報処理サーバ。
【請求項１９】
前記第２情報読出手段は、
所定時間毎に前記メモリから前記第２情報を読み出す際に、前記情報処理手段による処理時間が設定時間以上である場合には、前記メモリから前記第２情報を読み出してから前記第２周期における次の周期となる前に、前記メモリから前記第２情報を読み出すことを特徴とする請求項１４ないし１８の何れか１項に記載の情報処理サーバ。
【請求項２０】
前記第３情報送信手段は、
前記第２情報読出手段によって読み出された前記所定数の第２情報のなかに、同一のデバイスに関する前記第２情報が存在する場合には、該同一のデバイスに関する情報のうちの最新の情報を前記第３情報として、前記通信部を介して、前記データベースが備えられた装置に送信し、該同一のデバイスに関する情報のうちの最新の前記第２情報以外の前記第２情報を、前記通信部を介して、前記データベースが備えられた装置に送信しないことを特徴とする請求項１１ないし１９の何れか１項に記載の情報処理サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデバイスとネットワーク通信可能なサーバを備えた通信システム等に関する。
【背景技術】
【０００２】
複数のデバイスとネットワーク通信可能なサーバでは、例えば、データベースにおいて管理するべき情報が、複数のデバイス等から送信される。この際、デバイスから送信される情報の通信量が多くなりすぎると、サーバがダウンする虞がある。このようなことに鑑みて、下記特許文献に記載されているように、サーバのダウンに対処するための技術が開発されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−５０４６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献に記載の技術によれば、サーバのダウンに対処することは可能となるが、サーバと種々のデバイスとの間の通信経路がダウンし、その通信経路が回復した場合には、種々のデバイスから送信された情報が、サーバに集中し、サーバの処理が遅くなる虞がある。本発明は、そのような事情に鑑みてなされたものであり、サーバと種々のデバイスとの間の通信経路がダウンし、その通信経路が回復した場合において、サーバへの負荷の集中を防止するための技術を提供する。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本明細書の実施形態として記載の通信システムは、複数のデバイスと、前記複数のデバイスとネットワーク通信可能な中継サーバと、データベースとネットワーク通信可能な通信部と、プロセッサとを備える情報処理サーバと、前記データベースと前記中継サーバとクライアント装置とネットワーク通信可能なクライアント要求処理サーバと、を備えた通信システムであって、前記複数のデバイスの各々は、第１タイミングで、第１情報を前記中継サーバに送信することが可能であり、前記中継サーバは、前記第１情報を受信したことに応じて、および、所定のタイミングで前記第１情報を受信できなかったことに応じて、前記第１情報に基づく情報であって、前記複数のデバイス毎の特定の情報である第２情報を、前記データベースが備えられた装置とも、前記クライアント装置とも、前記クライアント要求処理サーバとも異なる装置に備えられたメモリに記憶するために送信することが可能であり、前記プロセッサは、前記中継サーバから送信されて前記メモリに記憶された前記第２情報を、前記メモリから、前記第１タイミングとは異なる第２タイミングで読み出す第２情報読出手段と、前記第２情報読出手段が前記第２情報を読み出したことに応じて、読み出された前記第２情報に基づく情報であって、前記データベースに記憶させるべき第３情報を、前記データベースが備えられた装置に前記通信部を介して送信する第３情報送信手段と、して機能することが可能であり、前記クライアント要求処理サーバのプロセッサは、前記第３情報送信手段によって前記データベースが備えられた装置に送信された前記第３情報を、前記クライアント装置から受信した要求情報に応じて、前記データベースから読み出す第３情報読出手段と、前記第３情報読出手段が前記第３情報を読み出したことに応じて、前記クライアント装置から受信した要求情報に対応する処理を実行する実行手段と、して機能することが可能であることを特徴とする。
【発明の効果】
【０００６】
本明細書の実施形態として記載の通信システム、および情報処理サーバでは、複数のデバイスの各々から第１タイミングで、第１情報が中継サーバに送信されており、その第１情報の受信、第１情報の不受信に応じて、複数のデバイス毎の特定の情報である第２情報が、中継サーバからメモリに送信される。そして、第２情報が、メモリにおいて記憶されており、情報処理サーバは、第１タイミングとは異なる第２タイミングで、第２情報をメモリから読み出す。また、情報処理サーバは、第２情報に基づく情報であって、データベースに記憶させるべき第３情報を、第２情報を読み出したことに応じて、データベースに送信する。さらに、クライアント要求処理サーバは、クライアント装置から受信した要求情報に応じて、第３情報をデータベースから読み出し、要求情報に対応する処理を実行する。このように、構成された通信システム、および情報処理サーバでは、例えば、中継サーバと複数のデバイスとの間の通信経路がダウンし、その通信経路が回復した場合において、複数のデバイス情報が、メモリに記憶されるが、複数のデバイスから中継サーバに第１情報が送られるタイミングと異なるタイミングで、情報処理サーバは、メモリから第２情報を読み出すため、情報処理サーバの負荷を抑制することが可能となる。また、情報処理サーバからデータベースへは、第２情報に基づく第３情報を、任意のタイミングで送信することが可能であるため、情報処理サーバに負担にならないタイミングで、第３情報をデータベースへ送信することが可能である。このため、本明細書の実施形態として記載の通信システム、および情報処理サーバによれば、情報処理サーバへの負荷の集中を適切に防止することが可能となる。また、クライアント要求処理サーバが、情報処理サーバとも、中継サーバとも、メモリとも別個に備えられている。このため、クライアント要求サーバがクライアント装置からの要求に応じた処理の実行に際して、クライアント要求処理サーバの負荷が過大になったことが原因による障害が発生する虞を低減できる。
【０００７】
また、本明細書の実施形態として記載の通信システムでは、クライアント要求処理サーバが、第３情報をデータベースから読み出したことに応じて、第３情報をクライアント装置に送信することが可能である。これにより、クライアント装置において、第３情報を活用することが可能となる。
【０００８】
また、本明細書の実施形態として記載の通信システムでは、中継サーバが、第１情報のうち第１周期で送信される周期情報の受信、若しくは、周期情報の不受信に応じて、デバイスと中継サーバとの間の通信状態に関する第２情報を、メモリに送信することが可能である。また、情報処理サーバが、第１周期と異なる第２周期で、第２情報をメモリから読み出し、周期情報の送信元のデバイスと中継サーバとの間の通信状態に関する第３情報を、データベースに送信することが可能である。さらに、クライアント要求処理サーバが、一のデバイスと中継サーバとの間の通信状態の問い合わせの受信に応じて、一のデバイスと中継サーバとの間の通信状態に関する第３情報を、データベースから読み出し、その第３情報をクライアント装置に送信することが可能である。これにより、クライアント装置において、一のデバイスと中継サーバとの間の通信状態を認知することが可能となる。
【０００９】
また、本明細書の実施形態として記載の通信システムでは、デバイスが中継サーバに接続確立要求情報を送信することによって、接続確立型プロトコルに従った接続が、接続確立要求情報の送信元デバイスと中継サーバとの間で確立可能であり、デバイスは、第１情報のうち、接続確立型プロトコルに従った接続を維持するための維持情報を第１周期で送信することが可能である。そして、中継サーバは、維持情報の受信に応じて、維持情報の送信元デバイスと中継サーバとの間の接続が維持されていることを示す第２情報を、メモリに送信し、維持情報の不受信に応じて、維持情報を取得できなかったデバイスと中継サーバとの間の接続が維持されていないことを示す第２情報を、メモリに送信することが可能である。また、情報処理サーバは、第２情報をメモリから第２周期で読み出し、デバイスと中継サーバとの間に確立された接続の維持に関する第３情報を、データベースに送信することが可能である。これにより、適切にデバイスと中継サーバとの接続が維持されているか否かを判定できる。
【００１０】
また、本明細書の実施形態として記載の通信システムでは、中継サーバが、維持情報の送信元デバイスと中継サーバとの間の接続が維持されていることを示す維持確認情報を、データベースに送信することが可能である。また、デバイスは、維持情報を送信した後、維持確認情報の不受信に応じて、中継サーバに接続確立要求情報と維持情報とを送信することが可能である。そして、中継サーバは、維持情報を取得できなかったデバイスと中継サーバとの間の接続が維持されていないことを示す第２情報を送信した後に、維持情報を取得できなかったデバイスから接続確立要求情報と維持情報とを受信したことに応じて、維持情報の送信元デバイスと中継サーバとの間の接続が維持されていることを示す第２情報を、メモリに送信することが可能である。これにより、デバイスと中継サーバとの再接続を適切にデータベースに記憶させることが可能となる。
【００１１】
また、本明細書の実施形態として記載の通信システムでは、クライアント要求処理サーバが、一のデバイスと中継サーバとの間の通信状態に関する第３情報をクライアント装置に送信した後に、一のデバイスへの指令をクライアント装置から受信したことに応じて、一のデバイスへの指令を中継サーバに送信することが可能であり、中継サーバは、一のデバイスとの間の接続が維持されている状態で一のデバイスへの指令を受信したことに応じて、一のデバイスへ指令を送信することが可能である。これにより、クライアント装置からの指令を、確実に一のデバイスに送信することが可能となる。
【００１２】
また、本明細書の実施形態として記載の通信システムでは、デバイスが、クライアント装置からの指令を中継サーバから受信したことに応じて、その指令に対する応答情報を、第１情報として中継サーバへ送信することが可能である。また、中継サーバは、デバイスへの指令を送信した後に、一のデバイスから応答情報を受信したことに応じて、応答情報を第２情報としてメモリに記憶することが可能であり、応答情報を第３情報として、データベースに送信することが可能である。さらに、クライアント要求処理サーバは、一のデバイスへの指令をクライアント装置から受信した後に、応答情報の読出に応じて、応答情報をクライアント装置に送信することが可能である。これにより、クライアント装置は、指令の送信確認を行うことが可能となる。
【００１３】
また、本明細書の実施形態として記載の通信システムでは、メモリが、情報処理サーバとも中継サーバとも異なる装置に設けられており、情報処理サーバは、メモリを備える装置から第２情報を読み出すことが可能である。これにより、第２情報を記憶するメモリと、第３情報をデータベースに送信する情報処理サーバとを別々の装置とすることが可能となり、情報処理サーバの負担を軽減することが可能となる。
【００１４】
また、本明細書の実施形態として記載の通信システムは、複数の中継サーバと複数のデバイスとを備え、複数の中継サーバと複数のデバイスとのネットワーク通信を、ロードバランサによって、複数の中継サーバのいずれかに分散することが可能である。これにより、中継サーバの負担を軽減することが可能となる。
【００１５】
また、本明細書の実施形態として記載の通信システムでは、接続確立型プロトコルを、ＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨとし、接続確立要求情報をＸＭＰＰセッション確立要求情報とし、維持情報をＸＭＰＰコネクション確立要求情報とすることが可能である。これにより、プロトコルおよび各種情報が明確となる。
【００１６】
また、本明細書の実施形態として記載の情報処理サーバは、デバイス情報を、デバイスと中継サーバとの間で通信が確立していることを示す情報と、デバイスと中継サーバとの間で通信が確立していないことを示す情報とに区分けし、区分けされた情報を第３情報として、データベースに送信することが可能である。これにより、データベースに送信される第３情報の情報量を少なくすることが可能となり、情報処理サーバの負担を軽減することが可能となる。
【００１７】
また、本明細書の実施形態として記載の情報処理サーバでは、所定数の第２情報を所定数以下の第３情報に処理することが可能である。これにより、データベースに送信される第３情報の情報量を少なくすることが可能となり、情報処理サーバの負担を軽減することが可能となる。
【００１８】
また、本明細書の実施形態として記載の情報処理サーバは、所定時間毎にメモリから第２情報を読み出す際、第２情報の処理時間が設定時間以上である場合には、メモリから第２情報が読み出されてから第２周期における次の周期となる前に、メモリから第２情報を読み出すことが可能である。これにより、第２情報の処理時間が長くなった場合であっても、第２情報の取得のタイミングを、ある程度、一定に保つことが可能となる。
【００１９】
また、本明細書の実施形態として記載の情報処理サーバは、読み出した所定数の第２情報のなかに、同一のデバイスに関する情報が存在する場合に、該同一のデバイスに関する情報のうちの最新の情報をデータベースに送信し、該同一のデバイスに関する情報のうちの最新の情報以外の情報をデータベースに送信しないことが可能である。これにより、データベースへ送信される情報量を減らすことが可能となり、情報処理サーバの負担を軽減することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】通信システム１のブロック図である。
【図２】従来の通信システム１００のブロック図である。
【図３】通信システム１００のブロック図である。
【図４】通信システム１の動作を示すシーケンス図である。
【図５】通信システム１の動作を示すシーケンス図である。
【図６】複数のデバイス情報を概念的に示す図である。
【図７】情報処理サーバ１０の動作フローチャートを示す図である。
【図８】情報処理サーバ１０の動作フローチャートを示す図である。
【図９】ウェブサーバ３０の動作フローチャートを示す図である。
【図１０】ウェブサーバ３０の動作フローチャートを示す図である。
【発明を実施するための形態】
【００２１】
＜実施形態＞
図１に、本願に係る実施形態として例示される通信システム１のブロック図を示す。通信システム１は、情報処理サーバ１０、ウェブサーバ３０、中継サーバ５０，７０、ロードバランサ８０、ＭＦＰ（Multifunction Peripheralの略）８２，８４，８６、ＰＣ（Personal Computerの略）８８、サービスサーバ９０、キュー９２、データベース９６、インターネット９８を備える。
【００２２】
ＭＦＰ８２，８４，８６は、プリンタ機能、スキャナ機能、コピー機能、ファクシミリ機能などを備える多機能周辺装置であり、ルータ８７を介してインターネット９８に接続されている。ＰＣ８８は、ルータ８９、および、インターネット９８を介して、サービスサーバ９０に各種指令等を送信する。サービスサーバ９０は、インターネット９８を介して、ウェブサーバ３０に各種指令等を送信する。キュー９２は、インターネット９８を介して、中継サーバ５０，７０から送信された各種情報を記憶する。メモリを備えた装置である。本明細書では、キューが備えるメモリのことを指して「キュー」という文言を使う場合もある。データベース９６は、インターネット９８を介して、キュー９２から取得した各種情報を記憶するメモリを備えた装置である。本明細書では、データベースが備えるメモリのことを指して「データベース」という文言を使う場合もある。なお、キュー９２やデータベース９６が備えるメモリは、ＲＡＭ（Random Access Memoryの略）、フラッシュメモリー、ＨＤＤ（ハードディスクの略）のいずれでもよく、これらが組み合わされて構成されていてもよい。
【００２３】
情報処理サーバ１０は、ＣＰＵ（Central Processing Unitの略）１２、記憶部１４、ネットワークＩ／Ｆ１６を主に備えている。これらの構成要素は、入出力ポート１８を介して互いに通信可能とされている。
【００２４】
ＣＰＵ１２は、記憶部１４内のプログラム２０に従って処理を実行する。以降、通信プログラム２０ａやオペレーティングシステム２０ｂなど、プログラムを実行するＣＰＵ１２のことを、単にプログラム名でも記載する場合がある。例えば、「通信プログラム２０ａが」という記載は、「通信プログラム２０ａを実行するＣＰＵ１２が」ということを意味する場合がある。なお、記憶部１４は、ＲＡＭ（Random Access Memoryの略）、ＲＯＭ（Read Only Memoryの略）、フラッシュメモリー、ＨＤＤ（ハードディスクの略）、ＣＰＵ１２が備えるバッファなどが組み合わされて構成されている。
【００２５】
記憶部１４は、プログラム２０を記憶する。プログラム２０は、通信プログラム２０ａ、オペレーティングシステム２０ｂ（ＯＳ２０ｂと略して記載する場合もある）を含む。通信プログラム２０ａは、キュー９２、データベース９６と通信を行うためのプログラムである。記憶部１４は、コンピュータが読み取り可能なストレージ媒体であってよい。コンピュータが読み取り可能なストレージ媒体とは、ＲＯＭ、ＲＡＭ、フラッシュメモリー、ハードディスクなどのｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には含まれない。
【００２６】
オペレーティングシステム２０ｂは、通信プログラム２０ａに利用される基本的な機能を提供するプログラムである。ＯＳ２０ｂは、記憶部１４などを制御するプログラムなどを含む。
【００２７】
また、記憶部１４は、データ記憶領域１４ａを備える。データ記憶領域１４ａは、各種データ等を記憶する領域である。通信プログラム２０ａは、ＯＳ２０ｂを介して、各種データ等をデータ記憶領域１４ａに記憶させるためのデータを出力する。若しくは、通信プログラム２０ａは、ＯＳ２０ｂを介して、データ記憶領域１４ａが記憶している各種データ等を取得する。
【００２８】
ネットワークＩ／Ｆ１６は、インターネット９８を介して外部装置と通信するものであり、インターネット９８を介して、キュー９２および、データベース９６に接続される。これにより、情報処理サーバ１０は、キュー９２および、データベース９６と各種データの送受信を行うことが可能である。
【００２９】
また、ウェブサーバ３０は、ＣＰＵ３２、記憶部３４、ネットワークＩ／Ｆ３６を主に備えている。これらの構成要素は、入出力ポート３８を介して互いに通信可能とされている。
【００３０】
ＣＰＵ３２は、記憶部３４内のプログラム４０に従って処理を実行する。以降、通信プログラム４０ａやオペレーティングシステム４０ｂなど、プログラムを実行するＣＰＵ３２のことを、単にプログラム名でも記載する場合がある。例えば、「通信プログラム４０ａが」という記載は、「通信プログラム４０ａを実行するＣＰＵ３２が」ということを意味する場合がある。なお、記憶部３４は、ＲＡＭ、ＲＯＭ、フラッシュメモリー、ＨＤＤ、ＣＰＵ３２が備えるバッファなどが組み合わされて構成されている。
【００３１】
記憶部３４は、プログラム４０を記憶する。プログラム４０は、通信プログラム４０ａ、オペレーティングシステム４０ｂ（ＯＳ４０ｂと略して記載する場合もある）を含む。通信プログラム４０ａは、ＭＦＰ８２，８４，８６、サービスサーバ９０および、データベース９６と通信を行うためのプログラムである。記憶部３４は、コンピュータが読み取り可能なストレージ媒体であってよい。
【００３２】
オペレーティングシステム４０ｂは、通信プログラム４０ａに利用される基本的な機能を提供するプログラムである。ＯＳ４０ｂは、記憶部３４などを制御するプログラムなどを含む。
【００３３】
また、記憶部３４は、データ記憶領域３４ａを備える。データ記憶領域３４ａは、各種データ等を記憶する領域である。通信プログラム４０ａは、ＯＳ４０ｂを介して、各種データ等をデータ記憶領域３４ａに記憶させるためのデータを出力する。若しくは、通信プログラム４０ａは、ＯＳ４０ｂを介して、データ記憶領域３４ａが記憶している各種データ等を取得する。
【００３４】
ネットワークＩ／Ｆ３６は、インターネット９８を介して外部装置と通信するものであり、インターネット９８を介して、ＭＦＰ８２，８４，８６、サービスサーバ９０および、データベース９６に接続される。これにより、ウェブサーバ３０は、ＭＦＰ８２，８４，８６、サービスサーバ９０および、データベース９６と各種データの送受信を行うことが可能である。
【００３５】
また、中継サーバ５０，７０は、同じ構成であるため、中継サーバ５０について説明する。中継サーバ５０は、ＣＰＵ５２、記憶部５４、ネットワークＩ／Ｆ５６を主に備えている。これらの構成要素は、入出力ポート５８を介して互いに通信可能とされている。
【００３６】
ＣＰＵ５２は、記憶部５４内のプログラム６０に従って処理を実行する。以降、通信プログラム６０ａやオペレーティングシステム６０ｂなど、プログラムを実行するＣＰＵ５２のことを、単にプログラム名でも記載する場合がある。例えば、「通信プログラム６０ａが」という記載は、「通信プログラム６０ａを実行するＣＰＵ５２が」ということを意味する場合がある。なお、記憶部５４は、ＲＡＭ、ＲＯＭ、フラッシュメモリー、ＨＤＤ、ＣＰＵ３２が備えるバッファなどが組み合わされて構成されている。
【００３７】
記憶部５４は、プログラム６０を記憶する。プログラム６０は、通信プログラム６０ａ、オペレーティングシステム６０ｂ（ＯＳ６０ｂと略して記載する場合もある）を含む。通信プログラム６０ａは、ウェブサーバ３０、ＭＦＰ８２，８４，８６および、キュー９２と通信を行うためのプログラムである。記憶部５４は、コンピュータが読み取り可能なストレージ媒体であってよい。
【００３８】
オペレーティングシステム６０ｂは、通信プログラム６０ａに利用される基本的な機能を提供するプログラムである。ＯＳ６０ｂは、記憶部５４などを制御するプログラムなどを含む。
【００３９】
また、記憶部５４は、データ記憶領域５４ａを備える。データ記憶領域５４ａは、各種データ等を記憶する領域である。通信プログラム６０ａは、ＯＳ６０ｂを介して、各種データ等をデータ記憶領域５４ａに記憶させるためのデータを出力する。若しくは、通信プログラム６０ａは、ＯＳ６０ｂを介して、データ記憶領域５４ａが記憶している各種データ等を取得する。
【００４０】
ネットワークＩ／Ｆ５６は、インターネット９８を介して外部装置と通信するものであり、インターネット９８を介して、ウェブサーバ３０、ＭＦＰ８２，８４，８６および、キュー９２に接続される。これにより、中継サーバ５０は、ウェブサーバ３０、ＭＦＰ８２，８４，８６および、キュー９２と各種データの送受信を行うことが可能である。ただし、ネットワークＩ／Ｆ５６は、ロードバランサ８０を介して、インターネット９８に接続されている。ロードバランサ８０は、中継サーバ５０，７０とＭＦＰ８２，８４，８６との間の通信を、中継サーバ５０，７０の各々に分散するものである。これにより、２台の中継サーバ５０，７０に、ＭＦＰ８２，８４，８６との間の通信の負荷を分散することが可能となる。なお、中継サーバ５０、７０は、ロードバランサ８０を介して大量のＭＦＰとの間の通信を行うことが可能である。例えば、数千台のＭＦＰとの間の通信を行うことが可能である。
【００４１】
ここで、「データ」および「情報」の文言の定義を説明する。本明細書では、「データ」と「情報」では「情報」を「データ」の上位概念として用いている。そのため、「Ａデータ」を「Ａ情報」と言い換えてもよい。また、「情報」は、「データ」としての形式（例えば、テキスト形式、バイナリ形式、フラグ形式等）が異なっていても、同一の意味内容と認識される限り、同一の情報として取り扱われる。例えば、印刷部数が２部であることを示す情報として装置が扱う限り、"COPY=2"というテキスト形式のデータと、"10"というバイナリ形式のデータとは、同じ情報である。但し、上記の「データ」及び「情報」の区別は厳密なものではなく、例外的な取り扱いも許容される。
【００４２】
＜従来の通信システムでのデバイス情報の管理＞
従来の通信システムでは、上記通信システム１と異なり、情報処理サーバ１０およびキュー９２が設けられていなかった。このため、例えば、中継サーバ５０とロードバランサ８０との間で通信障害が発生した場合に、中継サーバ５０とウェブサーバ３０との間、および、ウェブサーバ３０とデータベース９６との間で、大量のデータの送受信が行われ、通信システムでのデータの送受信が不能となる虞があった。
【００４３】
具体的には、図２に示すように、従来の通信システム１００では、ＭＦＰ８２，８４，８６と中継サーバ５０，７０とは、ロードバランサ８０を介して、データの送受信が行われる。また、中継サーバ５０，７０とウェブサーバ３０との間で、データの送受信が行われ、ウェブサーバ３０とデータベース９６との間で、データの送受信が行われる。さらに、ＰＣ８８とウェブサーバ３０とは、サービスサーバ９０を介して、データの送受信が行われる。
【００４４】
なお、ＭＦＰ８２，８４，８６と中継サーバ５０，７０との間のデータの送受信は、接続確立型のプロトコル、具体的には、ＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨ（eXtensible Messaging and Presence Protocol Over Bidirectional-streams Over Synchronous HTTPの略）に従って行われる。また、中継サーバ５０，７０とウェブサーバ３０との間のデータの送受信は、ＨＴＴＰ（Hypertext Transfer Protocol）に従って行われる。
【００４５】
通信システム１００では、図２に示す構成において、ＭＦＰ８２，８４，８６と中継サーバ５０，７０との間での通信状態に関する情報（以下、「デバイス情報」と記載する場合がある）が、データベース９６において管理されている。詳しくは、中継サーバ５０，７０は、デバイス情報を書き換えるべきタイミングで、デバイス情報をウェブサーバ３０に送信する。例えば、ＭＦＰ８２と中継サーバ５０との間でデータの送受信が可能な状態（以下、「オンライン状態」と記載する場合がある）から、ＭＦＰ８２と中継サーバ５０との間でデータの送受信が不能な状態（以下、「オフライン状態」と記載する場合がある）になったと中継サーバ５０が判断した場合には、中継サーバ５０からウェブサーバ３０に、ＭＦＰ８２の通信状態がオフライン状態である旨の情報が送信される。また、ＭＦＰ８２と中継サーバ５０との間でオフライン状態からオンライン状態なった、と中継サーバ５０が判断した場合には、中継サーバ５０からウェブサーバ３０に、オンライン状態である旨の情報が送信される。また、サービスサーバ９０からウェブサーバ３０を介して中継サーバに送信された要求にしたがって、中継サーバがＭＦＰ８２に指示を送信し、ＭＦＰ８２から指示に従った応答情報が返信された場合には、中継サーバ５０からウェブサーバ３０に、応答情報が送信される。
【００４６】
このように、各ＭＦＰ８２，８４，８６のデバイス情報が、データベース９６に記憶されている。データベース９６に記憶されているデバイス情報は、ＰＣ８８からの指令に基づいて、ＭＦＰ８２，８４，８６がスキャン処理，印刷処理等を行う際に利用される。詳しくは、ＰＣ８８は、サービスサーバ９０およびウェブサーバ３０を介して、データベース９６からＭＦＰ８２，８４，８６のデバイス情報を取得する。そして、ＰＣ８８は、取得したデバイス情報に基づいて、オンライン状態となっているＭＦＰ８２，８４，８６を指定し、その指定したＭＦＰ８２，８４，８６にスキャン処理等の指令を送信する。この際、ＰＣ８８は、スキャン処理等の指令を、サービスサーバ９０を介して、ウェブサーバ３０に送信する。そして、ウェブサーバ３０が、ロードバランサ８０を介し、中継サーバ５０または７０にスキャン処理等の指令を送信し、中継サーバ５０または７０が、指定されたＭＦＰ８２，８４，８６にスキャン処理等の指令を送信する。これにより、ＰＣ８８からの指令に従って、指定されたＭＦＰ８２，８４，８６において、スキャン処理等が行われる。このように、通信システム１００では、通信システム１００を利用したＭＦＰ８２，８４，８６による各種処理が行われる。
【００４７】
一方で、例えば、中継サーバ５０とロードバランサ８０との間で通信障害が発生した場合において、中継サーバ５０では、中継サーバ５０とＭＦＰ８２，８４，８６との間の通信状態がオフライン状態となったと判断される。この際、中継サーバ５０は、ＭＦＰ８２，８４，８６毎のデバイス情報をウェブサーバ３０に送信する。つまり、ＭＦＰ８２のデバイス情報とＭＦＰ８４のデバイス情報とＭＦＰ８６のデバイス情報とが、順次、送信される。そして、ウェブサーバ３０は、ＭＦＰ８２のデバイス情報とＭＦＰ８４のデバイス情報とＭＦＰ８６のデバイス情報とを、順次、データベース９６に送信する。この説明では、中継サーバ５０と接続されているＭＦＰが３台であるため、ウェブサーバ３０では、３回のデバイス情報の送受信が行われるが、例えば、中継サーバ５０に３０台のＭＦＰが接続されている場合には、３０回のデバイス情報の送受信が行われ、中継サーバ５０に数千台のＭＦＰが接続されている場合には、数千回のデバイス情報の送受信が行われる。このため、デバイス情報の送受信によりウェブサーバ３０への負荷が増大し、通信システム１００を利用したＭＦＰ８２，８４，８６による各種処理を実行できなくなる虞がある。
【００４８】
＜本発明の通信システムでのデバイス情報の管理＞
このため、通信システム１では、情報処理サーバ１０およびキュー９２を用いて、デバイス情報の管理が行われている。具体的には、図３に示すように、通信システム１では、ＭＦＰ８２，８４，８６と中継サーバ５０，７０とは、ロードバランサ８０を介して、データの送受信が行われる。また、中継サーバ５０，７０とキュー９２との間で、データの送受信が行われ、キュー９２と情報処理サーバ１０との間で、データの送受信が行われる。さらに、情報処理サーバ１０とデータベース９６との間で、データの送受信が行われ、ＰＣ８８とウェブサーバ３０とは、サービスサーバ９０を介して、データの送受信が行われる。なお、ウェブサーバ３０は、データベース９６および中継サーバ５０，７０とデータの送受信を行う。
【００４９】
通信システム１では、図３に示す構成において、中継サーバ５０，７０は、デバイス情報をキュー９２に送信し、キュー９２は、受信したデバイス情報を記憶する。一方、情報処理サーバ１０は、キュー９２からデバイス情報を、所定時間毎に読み出して取得する。例えば、所定時間は５秒であってもよい。なお、所定時間ごとに取得するとは、厳密に同じ時間毎に取得することのみを意味せず、ある程度の幅を持ってよい概念である。例えば、デバイス情報を読み出してからデータベース９６に記憶させるまでの処理を実行したあと、５秒を経過してから取得をする、でもよい。この際、取得されるデバイス情報の数は、所定数、例えば、６個以下とされる。つまり、キュー９２に３０台、もしくは数千台のＭＦＰのデバイス情報が記憶されている場合であっても、６個のデバイス情報が送信される。このため、例えば、中継サーバ５０とロードバランサ８０との間で通信障害が発生したことが原因で、ＭＦＰから一定周期で中継サーバ５０に届くはずの情報が届かなくなり、中継サーバが各ＭＦＰとの間がオフライン状態になったと判断し、中継サーバ５０からキュー９２に３０個、もしくは数千個のオフライン状態を示すデバイス情報が送信された場合であっても、情報処理サーバ１０とキュー９２との間では、所定時間毎の１回の周期では、６個のデバイス情報が送信されるのみであることから、情報処理サーバ１０に短時間で一気に負荷がかかることを抑えることが可能となる。また、中継サーバ５０とロードバランサ８０との間で通信障害が発生すると、ＭＦＰから中継サーバ５０に送信した情報への返信が来なくなる。このため、３０台、もしくは数千台のＭＦＰ各々が、中継サーバ５０との間がオフライン状態となったと、近似したタイミングで判断する。そして、３０台、もしくは数千台のＭＦＰ各々が、近似したタイミングで、オンライン状態にするための情報を中継サーバ５０に送信することになる。この場合も、中継サーバ５０からキュー９２に３０個、もしくは数千個のオンライン状態を示すデバイス情報が送信されることになるが、情報処理サーバ１０とキュー９２との間では、所定時間毎の１回の周期では、６個のデバイス情報が送信されるのみである。
【００５０】
また、情報処理サーバ１０は、取得したＭＦＰのデバイス情報に基づいて、オンライン状態を示すデバイスリストと、オフライン状態を示すデバイスリストを作成し、オンライン状態を示すデバイスリストを１つの情報として送信し、オフライン状態を示すデバイスリストを１つの情報として送信する。つまり、例えば、６台のＭＦＰ  Ａ〜Ｆのデバイス情報を受信し、ＭＦＰ  Ａ，Ｃ，Ｄ，Ｅがオンライン状態であり、ＭＦＰ  Ｂ，Ｆがオフライン状態である場合には、ＭＦＰ  Ａ，Ｃ，Ｄ，Ｅがオンライン状態であることを示すオンラインデバイスリストを作成し、ＭＦＰ  Ｂ，Ｆがオフライン状態であることを示すオフラインデバイスリストを作成する。そして、情報処理サーバ１０は、オンラインデバイスリストとオフラインデバイスリストを、データベース９６に送信する。これにより、情報処理サーバ１０からデータベース９６への送信回数を少なくすることが可能となり、情報処理サーバ１０の負荷を抑えることが可能となる。
【００５１】
このように、通信システム１では、情報処理サーバ１０およびキュー９２を用いて、デバイス情報の管理を行うことで、情報処理サーバ１０の負荷を抑えることが可能となる。これにより、特定のサーバ等への負荷の集中を防止し、安定した通信システムを構築することが可能となる。また、通信システム１では、ＰＣ８８とＭＦＰ８２，８４，８６との間のデータの送受信および、ＰＣ８８とデータベース９６との間のデータの送受信は、情報処理サーバ１０およびキュー９２を経由することなく、行われているため、通信システム１を利用したＭＦＰ８２，８４，８６による各種処理の実行を適切に担保することが可能となる。なお、以下に、通信システム１で、上記デバイス情報が管理される際の各装置、サーバ等の作動を、シーケンス図を用いて詳しく説明する。
【００５２】
＜ＭＦＰと中継サーバとの間の通信確立＞
通信システム１では、図４に示すように、まず、レジスタ情報が、ＭＦＰ８２，８４，８６からウェブサーバ３０に送信される（Ｍ１００）。レジスタ情報には、ＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨに従ったセッション（以下、「ＸＭＰＰセッション」と記載する場合がある）で利用される認証情報のＭＦＰ８２，８４，８６への送信要求および、ＭＦＰ８２，８４，８６の固有情報が含まれる。
【００５３】
レジスタ情報を受信したウェブサーバ３０は、そのレジスタ情報をデータベース９６に送信する（Ｍ１０２）。そして、データベース９６は、ＭＦＰ８２，８４，８６の固有情報を登録するとともに、認証情報を生成し、認証情報をウェブサーバ３０に送信する（Ｍ１０４）。認証情報を受信したウェブサーバ３０は、その認証情報をＭＦＰ８２，８４，８６に送信する（Ｍ１０６）。
【００５４】
ＭＦＰ８２，８４，８６は、取得した認証情報を利用して、中継サーバ５０，７０との間でＸＭＰＰセッションを確立する（Ｍ１０８）。詳しくは、ＭＦＰ８２，８４，８６は、ＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨに従って、認証情報を中継サーバ５０，７０に送信する。中継サーバ５０，７０は、認証情報を受信すると、ＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨに従って、ＯＫを示す応答情報をＭＦＰ８２，８４，８６に送信する。このように、ＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨに従った各種情報の送受信を通じて、ＭＦＰ８２，８４，８６と中継サーバ５０，７０が認証情報を取得することで、ＸＭＰＰセッションが確立する。
【００５５】
次に、ＭＦＰ８２，８４，８６は、中継サーバ５０，７０との間でＸＭＰＰに従ったコネクション（以下、「ＸＭＰＰコネクション」と記載する場合がある）を確立する（Ｍ１１０）。詳しくは、ＭＦＰ８２，８４，８６は、中継サーバ５０との間で確立したセッションを識別するセッションＩＤと、ＸＭＰＰコネクションの確立を要求する要求情報を、中継サーバ５０，７０に送信する。そして、中継サーバ５０，７０が、セッションＩＤおよび要求情報を受信し、セッションＩＤが示すセッションが確立していることを確認すると、ＭＦＰ８２，８４，８６と中継サーバ５０，７０との間で、要求情報に応じたＸＭＰＰコネクションが確立する。すなわち、ＸＭＰＰセッションを確立することで、ＭＦＰ８２，８４，８６と中継サーバ５０との間で、ＸＭＰＰコネクションを確立することが可能になる。なお、ＭＦＰ８２，８４，８６はインターネット９８とルータを介して接続している。このため、ＭＦＰ８２，８４，８６からインターネット９８の側へ送信された情報、および、その情報への返信はルータが通すものの、返信以外の、インターネット９８の側からＭＦＰ８２、８４、８６へ送信された情報は、ルータが通さない。しかしながら、ＸＭＰＰコネクションが確立すると、確立したＸＭＰＰコネクションを用いた通信であれば、インターネット９８の側からＭＦＰ８２、８４、８６へ送信された情報をルータが通すようになる。なお、確立してから一定時間が経過すると、そのＸＭＰＰコネクションを用いた通信では、インターネット９８の側からＭＦＰ８２、８４、８６へ送信された情報をルータが通さなくなる。そのため、ＭＦＰ８２、８４、８６は、ＸＭＰＰセッションが確立した後、一定周期ごとに、ＸＭＰＰコネクションの確立を要求する。一定周期は、例えば２分間周期である。なお、一定周期とは、厳密に同じ時間毎を示すのみではなく、ある程度幅をもった概念である。
【００５６】
＜オンライン状態を示すデバイス情報のデータベースへの登録＞
ＸＭＰＰコネクションが確立すると、中継サーバ５０，７０は、オンライン状態を示すデバイス情報（以下、「オンラインメッセージ」と記載する場合がある）をキュー９２に送信する（Ｍ１１２）。そのキュー９２は、受信したオンラインメッセージを記憶する。一方、情報処理サーバ１０は、所定時間毎に、キュー９２にメッセージの問い合わせを行っている（Ｍ１１４）。この際、キュー９２にメッセージがある場合には、情報処理サーバ１０は、所定数以下のメッセージを、キュー９２から取得する（Ｍ１１６）。そして、情報処理サーバ１０は、取得した所定数以下のメッセージを処理し、上述したように、オンラインデバイスリストとオフラインデバイスリストとを作成する。
【００５７】
この際、情報処理サーバ１０では、取得したメッセージが複数あり、それら複数のメッセージに、同一のＭＦＰに関するデバイス情報が存在する場合には、最新のデバイス情報のみをリストに書き込み、最新のデバイス情報以外のデバイス情報のリストへの書き込みを行っていない。具体的に、例えば、情報処理サーバ１０が、図６に示すような、５個のデバイス情報を、キュー９２から取得した場合について説明する。図での左側の欄には、デバイス情報の対象となるＭＦＰ名が記され、中央の欄には、ＭＦＰと中継サーバ５０，７０とがオンライン状態であるかオフライン状態であるかが記され、右側の欄には、そのデバイス情報をキュー９２が取得した時間（以下、「タイムスタンプ」と記載する場合がある）が記されている。情報処理サーバ１０では、図に示す５個のデバイス情報を取得すると、まず、１番上の欄のデバイス情報が処理される。
【００５８】
デバイス情報の処理では、ＭＦＰ名がチェックされ、同一のＭＦＰのデバイス情報のリストへの書き込みの有無がチェックされる。つまり、リストにＭＦＰ  Ａが書き込まれているか否かがチェックされる。１番上の欄のデバイス情報では、当然、リストへの書き込みが０であるため、リストにＭＦＰ  Ａが書き込まれていない。このため、１番上の欄のデバイス情報に基づいて、オンラインデバイスリストにＭＦＰ  Ａが書き込まれる。
【００５９】
次に、上から２番目の欄のデバイス情報では、リストにＭＦＰ  Ｂが書き込まれているか否かがチェックされる。リストには、ＭＦＰ  Ａしか書き込まれていないため、ＭＦＰ  Ｂは書き込まれていない。このため、上から２番目の欄のデバイス情報に基づいて、オフラインデバイスリストにＭＦＰ  Ｂが書き込まれる。以下、上から３番目および４番目の欄のデバイス情報で、上記チェックと同様のチェックが行われ、上から３番目の欄のデバイス情報に基づいて、オンラインデバイスリストにＭＦＰ  Ｃが書き込まれ、上から４番目の欄のデバイス情報に基づいて、オンラインデバイスリストにＭＦＰ  Ｄが書き込まれる。
【００６０】
続いて、上から５番目の欄のデバイス情報では、リストにＭＦＰ  Ａが書き込まれているか否かがチェックされるが、上述したように、オンラインデバイスリストにＭＦＰ  Ａが書き込まれている。このため、上から５番目の欄のデバイス情報のタイムスタンプと、オンラインデバイスリストに書き込まれているデバイス情報、つまり、１番上の欄のデバイス情報のタイムスタンプとが比較され、何れのデバイス情報が新しい情報であるかが判断される。この際、上から５番目の欄のデバイス情報が、１番上の欄のデバイス情報より新しい場合には、１番上の欄のデバイス情報が、上から５番目の欄のデバイス情報に書き換えられる。つまり、オンラインデバイスリストからＭＦＰ  Ａが削除され、オフラインデバイスリストにＭＦＰ  Ａが書き込まれる。しかし、図から解るように、上から５番目の欄のデバイス情報は、１番上の欄のデバイス情報より古い。このため、上から５番目の欄のデバイス情報は、何れのリストにも書き込まれず、破棄される。これにより、古い情報のリストへの書き込みが防止される。
【００６１】
上述した手法で、オンラインデバイスリストとオフラインデバイスリストが作成されると、各々のリストが個別に、情報処理サーバ１０からデータベース９６に送信される。なお、図４での説明は、キュー９２がオンラインメッセージを受信した場合を例にとって説明しているため、情報処理サーバ１０からデータベース９６には、所定のＭＦＰ名が書き込まれたオンラインデバイスリストが送信される（Ｍ１１８）。そして、データベース９６では、所定のＭＦＰのデバイス情報がオンライン情報に更新される。
【００６２】
また、情報処理サーバ１０では、上述したように、所定時間毎に、キュー９２へのメッセージの問い合わせが行われているが、情報処理サーバ１０での処理、つまり、複数のデバイス情報に基づいて、オンラインデバイスリストとオフラインデバイスリストを作成する際に、長い時間を要した場合には、所定時間を待たずに、キュー９２へのメッセージの問い合わせが行われる。
【００６３】
詳しくは、情報処理サーバ１０では、情報処理サーバ１０での処理時間が計測されており、その処理時間が設定時間未満である場合には、所定時間毎に、キュー９２へのメッセージの問い合わせが行われる。一方、処理時間が設定時間以上である場合には、キュー９２へのメッセージの問い合わせが行われた後に、所定時間が経過する前に、再度、キュー９２へのメッセージの問い合わせが行われる。これにより、キュー９２への未登録のメッセージの長時間の放置を防止することが可能となる。
【００６４】
＜デバイス情報の問い合わせ＞
通信システム１では、上述したように、データベース９６に記憶されているデバイス情報を利用して、ＭＦＰ８２，８４，８６による各種処理が行われる。この際、ＰＣ８８からデバイス情報の問い合わせが行われる。このデバイス情報の問い合わせは、ＰＣ８８からサービスサーバ９０に送信される。サービスサーバ９０は、そのデバイス情報の問い合わせを、ウェブサーバ３０に転送する（Ｍ１２０）。
【００６５】
次に、ウェブサーバ３０は、データベース９６にデバイス情報の問い合わせを行う（Ｍ１２２）。そして、データベース９６は、問い合わせに対する返信として、デバイス情報をウェブサーバ３０に送信する（Ｍ１２４）。デバイス情報を受信したウェブサーバ３０は、そのデバイス情報をサービスサーバ９０に送信し（Ｍ１２６）、サービスサーバ９０からＰＣ８８に、デバイス情報が送信される。これにより、ＰＣ８８では、デバイス情報に基づいて、通信可能なＭＦＰを特定することが可能となる。
【００６６】
＜通信システムを利用したＭＦＰによるスキャン処理＞
通信システム１では、上述したように、通信システム１を利用して、ＭＦＰ８２，８４，８６によってスキャン処理が行われる。具体的には、ＰＣ８８において、データベース９６から取得したデバイス情報に基づいて、通信可能なＭＦＰ８２，８４，８６が特定される。そして、通信可能なＭＦＰ８２，８４，８６から任意のＭＦＰが決定され、その決定されたＭＦＰによるスキャン処理の実行指示が、ＰＣ８８からサービスサーバ９０に送信される。スキャン指示を受信したサービスサーバ９０は、図５に示すように、所定のＭＦＰへのスキャン指示をウェブサーバ３０に送信する（Ｍ１２８）。
【００６７】
ウェブサーバ３０は、受信したスキャン指示の対象となっているＭＦＰ８２，８４，８６に関するデバイス情報の問い合わせをデータベース９６に行う（Ｍ１３０）。データベース９６は、問い合わせに対する返信として、所定のＭＦＰ８２，８４，８６に関するデバイス情報をウェブサーバ３０に送信する（Ｍ１３２）。デバイス情報を受信したウェブサーバ３０は、スキャン指示の対象となっているＭＦＰ８２，８４，８６がオンライン状態であるか否かをチェックし、スキャン指示の対象となっているＭＦＰ８２，８４，８６がオンライン状態である場合に、スキャン指示を中継サーバ５０，７０に送信する（Ｍ１３４）。また、ウェブサーバ３０は、スキャン指示を中継サーバ５０，７０に送信した後に、スキャン指示を送信した旨の受付情報を、サービスサーバ９０に送信する（Ｍ１３６）。
【００６８】
スキャン指示を受信した中継サーバ５０，７０は、スキャン指示の対象となっているＭＦＰ８２，８４，８６に、各ＭＦＰとの間で確立しているＸＭＰＰコネクションを用いてスキャン指示を送信する（Ｍ１３８）。なお、図４の例では、中継サーバから、ＸＭＰＰコネクションが確立しているＭＦＰへの情報の送信は全て、ＸＭＰＰコネクションを用いて行われる。スキャン指示を受信したＭＦＰ８２，８４，８６は、スキャン処理を実行し（Ｍ１４０）、スキャンデータを生成する。次に、ＭＦＰ８２，８４，８６は、スキャンデータをウェブサーバ３０に送信する（Ｍ１４２）。そして、ウェブサーバ３０は、スキャンデータをサービスサーバ９０に送信し（Ｍ１４４）、サービスサーバ９０は、スキャンデータをＰＣ８８に送信する。これにより、ＰＣ８８は、ＭＦＰ８２，８４，８６によって生成されたスキャンデータを取得する。なお、スキャンデータを受信したウェブサーバ３０は、スキャンデータ受信を完了した旨の完了情報をＭＦＰ８２，８４，８６に送信する（Ｍ１４６）。
【００６９】
＜オフライン状態を示すデバイス情報のデータベースへの登録＞
また、通信システム１では、ＸＭＰＰコネクションが無効となった場合、つまり、ＭＦＰ８２，８４，８６と中継サーバ５０，７０との間で通信不能な状態となった場合に、データベース９６のデバイス情報が、オンライン状態からオフライン状態に更新される。具体的には、ＸＭＰＰコネクションが無効となると（Ｍ１４８）、中継サーバ５０，７０は、オフライン状態を示すデバイス情報（以下、「オフラインメッセージ」と記載する場合がある）をキュー９２に送信する（Ｍ１５０）。ＸＭＰＰコネクションが無効となった場合には、ＭＦＰ８２，８４，８６がＸＭＰＰコネクションを破棄する情報を中継サーバ５０に送信した場合がある。ＭＦＰ８２，８４，８６から一定周期毎に中継サーバ５０に送信している、ＸＭＰＰコネクションの確立を要求する情報が、中継サーバ５０に届かなかったため、中継サーバ５０が、ＸＭＰＰコネクションが無効となった、と判断した場合がある。特に、中継サーバ５０とロードバランサ８０との間に通信障害が発生すると、中継サーバ５０は、大量のＭＦＰとの間のＸＭＰＰコネクションが無効となった、と判断することになり、大量のオフラインメッセージがキュー９２に送信されることになる。また、中継サーバ５０へＸＭＰＰコネクションの確立を要求する情報がＭＦＰ８２，８４，８６から届いていないことをロードバランサ８０が判断してもよい。この場合、ＸＭＰＰコネクションが無効になったことを示す情報をロードバランサ８０が送信し、中継サーバ５０が、受信することで、中継サーバ５０も、ＸＭＰＰコネクションが無効になったことを判断できる。オフラインメッセージを受信したキュー９２は、受信したオフラインメッセージを記憶する。一方、情報処理サーバ１０は、所定時間毎に、キュー９２にメッセージの問い合わせを行っている（Ｍ１５２）。この際、情報処理サーバ１０は、オフラインメッセージを、キュー９２から取得する（Ｍ１５４）。オフラインメッセージを取得した情報処理サーバ１０では、上述した処理が行われ、所定のＭＦＰ名が書き込まれたオフラインデバイスリストが、情報処理サーバ１０からデータベース９６に送信される（Ｍ１５６）。これにより、データベース９６では、所定のＭＦＰのデバイス情報がオフライン情報に更新される。なお、ＭＦＰ８２，８４，８６は、ＸＭＰＰコネクションの確立を要求する情報に対する返信が中継サーバ５０から来なかった場合に、中継サーバ５０，７０との間でＸＭＰＰセッションを確立（Ｍ１０８）と、ＸＭＰＰコネクションの確立（Ｍ１１０）と、を試みる。すなわち、中継サーバ５０とロードバランサ８０との間に通信障害が発生すると、大量のＭＦＰと中継サーバ５０との間のＸＭＰＰコネクションが再度確立されるので、大量のオンラインメッセージが中継サーバ５０からキュー９２に送信されることになる。
【００７０】
＜情報処理サーバの通信プログラムおよび、ウェブサーバの通信プログラム＞
上述した通信システム１でのデバイス情報のデータベース９６での管理、および、通信システム１を利用したＭＦＰ８２，８４，８６によるスキャン処理は、通信プログラム２０ａが情報処理サーバ１０のＣＰＵ１２によって実行され、通信プログラム４０ａがウェブサーバ３０のＣＰＵ３２によって実行されることで行われる。以下に、図７及び図８を用いて、通信プログラム２０ａが情報処理サーバ１０のＣＰＵ１２によって実行される際のフローを説明し、図９及び図１０を用いて、通信プログラム４０ａがウェブサーバ３０のＣＰＵ３２によって実行される際のフローを説明する。
【００７１】
情報処理サーバ１０で通信プログラム２０ａが起動されると、図７及び図８に示すフローの処理が開始される。Ｓ１００において、ＣＰＵ１２は、＜オンライン状態を示すデバイス情報のデータベースへの登録＞および、＜オフライン状態を示すデバイス情報のデータベースへの登録＞に記載されているように、キュー９２にメッセージの問い合わせを行うためのデータを、ＯＳ２０ｂを介して出力する。そして、Ｓ１０２に進む。Ｓ１０２において、ＣＰＵ１２は、キュー９２への問い合わせの結果、キュー９２からメッセージを取得したか否かを判定する。キュー９２からメッセージを取得している場合（Ｓ１０２：ＹＥＳ）には、Ｓ１０４に進む。
【００７２】
Ｓ１０４において、ＣＰＵ１２は、メッセージの内容をチェックする。そして、Ｓ１０６に進む。Ｓ１０６において、ＣＰＵ１２は、メッセージの内容チェックの結果、メッセージのタイムスタンプが、処理済みのタイムスタンプより新しいか否かを判定する。詳しくは、メッセージが複数存在するか否かが判定され、メッセージが複数存在する場合には、メッセージの確認毎に、確認中のメッセージの対象のＭＦＰ名が、リストに書き込まれているか否かが判定される。確認中のメッセージの対象のＭＦＰ名が、リストに書き込まれている場合には、確認中のメッセージのタイムスタンプと、リストに書き込まれているＭＦＰの基となるメッセージのタイムスタンプとが比較される。この際、確認中のメッセージのタイムスタンプが、リストに書き込まれているＭＦＰの基となるメッセージのタイムスタンプより新しい場合（Ｓ１０６：ＹＥＳ）には、Ｓ１０８に進む。なお、メッセージが複数存在しない場合、および、確認中のメッセージの対象のＭＦＰ名がリストに書き込まれていない場合にも、Ｓ１０８に進む。
【００７３】
Ｓ１０８において、ＣＰＵ１２は、メッセージはオンラインメッセージであるか否かを判定する。メッセージがオンラインメッセージである場合（Ｓ１０８：ＹＥＳ）には、Ｓ１１０に進む。Ｓ１１０において、ＣＰＵ１２は、メッセージの対象のＭＦＰ名をオンラインデバイスリストに書き込む。そして、Ｓ１１４に進む。一方、メッセージがオフラインメッセージである場合（Ｓ１０８：ＮＯ）には、Ｓ１１２に進む。Ｓ１１２において、ＣＰＵ１２は、メッセージの対象のＭＦＰ名をオフラインデバイスリストに書き込む。そして、Ｓ１１４に進む。なお、Ｓ１０６で、確認中のメッセージのタイムスタンプが、リストに書き込まれているＭＦＰの基となるメッセージのタイムスタンプより古い場合（Ｓ１０６：ＮＯ）にも、Ｓ１１４に進む。
【００７４】
Ｓ１１４において、ＣＰＵ１２は、取得した全てのメッセージのチェックが終了したか否かを判定する。全てのメッセージのチェックが終了していない場合（Ｓ１１４：ＮＯ）には、Ｓ１０４に戻る。一方、全てのメッセージのチェックが終了している場合（Ｓ１１４：ＹＥＳ）には、Ｓ１１６に進む。Ｓ１１６において、ＣＰＵ１２は、オンラインデバイスリストが空であるか否か、つまり、オンラインデバイスリストにＭＦＰ名が書き込まれているか否かを判定する。オンラインデバイスリストが空でない場合（Ｓ１１６：ＮＯ）、つまり、オンラインデバイスリストにＭＦＰ名が書き込まれている場合には、Ｓ１１８に進む。
【００７５】
Ｓ１１８において、ＣＰＵ１２は、オンラインデバイスリストに書き込まれているＭＦＰのデバイス情報を、オンラインに変更するためのデータをデータベース９６に送信するためのデータを、ＯＳ２０ｂを介して出力する。そして、Ｓ１２０に進む。また、オンラインデバイスリストが空である場合（Ｓ１１６：ＹＥＳ）、つまり、オンラインデバイスリストにＭＦＰ名が書き込まれていない場合にも、Ｓ１２０に進む。
【００７６】
Ｓ１２０において、ＣＰＵ１２は、オフラインデバイスリストが空であるか否か、つまり、オフラインデバイスリストにＭＦＰ名が書き込まれているか否かを判定する。オフラインデバイスリストが空でない場合（Ｓ１２０：ＮＯ）、つまり、オフラインデバイスリストにＭＦＰ名が書き込まれている場合には、Ｓ１２２に進む。
【００７７】
Ｓ１２２において、ＣＰＵ１２は、オフラインデバイスリストに書き込まれているＭＦＰのデバイス情報を、オフラインに変更するためのデータをデータベース９６に送信するためのデータを、ＯＳ２０ｂを介して出力する。そして、Ｓ１２４に進む。また、オフラインデバイスリストが空である場合（Ｓ１２０：ＹＥＳ）、つまり、オフラインデバイスリストにＭＦＰ名が書き込まれていない場合にも、Ｓ１２４に進む。
【００７８】
Ｓ１２４において、ＣＰＵ１２は、処理時間が設定時間以上であるか否かを判定する。処理時間が設定時間以上でない場合（Ｓ１２４：ＮＯ）には、Ｓ１２６に進む。また、Ｓ１０２でキュー９２からメッセージを取得していない場合（Ｓ１０２：ＮＯ）にも、Ｓ１２６に進む。Ｓ１２６において、ＣＰＵ１２は、所定時間の経過を待つ。つまり、所定時間スリープする。そして、Ｓ１００の戻り、以降の処理が行われる。一方、処理時間が設定時間以上である場合（Ｓ１２４：ＹＥＳ）には、Ｓ１２８に進む。Ｓ１２８において、ＣＰＵ１２は、所定時間より短い時間の経過を待つ。つまり、所定時間より短い時間スリープする。そして、Ｓ１００の戻り、以降の処理が行われる。
【００７９】
また、ウェブサーバ３０で通信プログラム４０ａが起動されると、図９及び図１０に示すフローの処理が開始される。Ｓ２００において、ＣＰＵ３２は、リクエストを受信したことにより発生したデータを、ＯＳ４０ｂを介して受信したか否かを判定する。リクエストを受信していない場合（Ｓ２００：ＮＯ）には、Ｓ２００の処理が繰り返される。一方、リクエストを受信した場合（Ｓ２００：ＹＥＳ）には、Ｓ２０２に進む。
【００８０】
Ｓ２０２において、ＣＰＵ３２は、受信したリクエストがレジスタ情報であるか否かを判定する。受信したリクエストがレジスタ情報である場合（Ｓ２０２：ＹＥＳ）には、Ｓ２０４に進む。Ｓ２０４において、ＣＰＵ３２は、＜ＭＦＰと中継サーバとの間の通信確立＞に記載されているように、データベース９６にレジスタ情報を送信するためのデータを、ＯＳ４０ｂを介して出力する。そして、Ｓ２０６に進む。Ｓ２０６において、ＣＰＵ３２は、データベース９６から認証情報を受信する。そして、Ｓ２０８に進む。Ｓ２０８において、ＣＰＵ３２は、ＭＦＰ８２，８４，８６に認証情報を送信するためのデータを、ＯＳ４０ｂを介して出力する。そして、Ｓ２００に戻る。
【００８１】
また、Ｓ２０２で受信したリクエストがレジスタ情報でない場合（Ｓ２０２：ＮＯ）には、Ｓ２１０に進む。Ｓ２１０において、ＣＰＵ３２は、受信したリクエストがサービスサーバ９０からの問い合わせであるか否かを判定する。受信したリクエストがサービスサーバ９０からの問い合わせである場合（Ｓ２１０：ＹＥＳ）には、Ｓ２１２に進む。Ｓ２１２において、ＣＰＵ３２は、＜デバイス情報の問い合わせ＞に記載されているように、データベース９６にデバイス情報の問い合わせを実行するためのデータを、ＯＳ４０ｂを介して出力する。そして、Ｓ２１４に進む。Ｓ２１４において、ＣＰＵ３２は、データベース９６からデバイス情報を受信する。そして、Ｓ２１６に進む。Ｓ２１６において、ＣＰＵ３２は、サービスサーバ９０にデバイス情報を送信するためのデータを、ＯＳ４０ｂを介して出力する。そして、Ｓ２００に戻る。
【００８２】
また、Ｓ２１０で受信したリクエストがサービスサーバ９０からの問い合わせでない場合（Ｓ２１０：ＮＯ）には、Ｓ２１８に進む。Ｓ２１８において、ＣＰＵ３２は、受信したリクエストがスキャンデータであるか否かを判定する。受信したリクエストがスキャンデータである場合（Ｓ２１８：ＹＥＳ）には、Ｓ２２０に進む。Ｓ２２０において、ＣＰＵ３２は、＜通信システムを利用したＭＦＰによるスキャン処理＞に記載されているように、サービスサーバ９０にスキャンデータを送信するためのデータを、ＯＳ４０ｂを介して出力する。そして、Ｓ２００に戻る。
【００８３】
また、Ｓ２１８で受信したリクエストがスキャンデータでない場合（Ｓ２１８：ＮＯ）には、Ｓ２２２に進む。Ｓ２２２において、ＣＰＵ３２は、上記処理と異なる他の処理を実行する。そして、Ｓ２００に戻る。
【００８４】
＜変形例＞
本実施形態では、デバイス情報を記憶するためのキュー９２と、デバイス情報を処理するための情報処理サーバ１０とが、個別の装置とされているが、キュー９２と情報処理サーバ１０とを１つの装置することが可能である。つまり、キュー９２の機能と情報処理サーバ１０の機能を備えた装置に、中継サーバ５０、７０は、デバイス情報を送信し、その装置が、デバイス情報を処理し、データベース９６に送信することが可能である。また、キュー９２と中継サーバ５０、７０とを１つの装置とすることが可能である。つまり、中継サーバ５０は、中継サーバ５０、７０は、中継サーバ５０、７０と同じ装置に備えられたキュー９２の機能によって利用可能なメモリにデバイス情報を記憶させ、情報処理サーバ１０が、キュー９２の機能と中継サーバ５０、７０の機能を備えた装置にからデバイス情報を取得することが可能である。もちろん、キュー９２と中継サーバ５０、７０と情報処理サーバ１０と、を別の装置としたほうが中継サーバ５０，７０や、情報処理サーバ１０にかかる負担は軽減される。
【００８５】
また、データベース９６とウェブサーバ３０とを１つの装置とすることも可能である。この場合、ウェブサーバ３０は、サービスサーバ９０などからのリクエストに応じて、ウェブサーバ３０と同じ装置に備えられたデータベース９６の機能によって利用可能なメモリに記憶されている情報を読み出して取得する。もちろん、データベース９６とウェブサーバ３０とを別の装置としたほうが、ウェブサーバ３０にかかる負担は軽減される。
【００８６】
また、本実施形態では、ウェブサーバ３０が、ＭＦＰ８２，８４，８６からスキャンデータを取得した場合に、スキャンデータをサービスサーバ９０に転送しているが、コールバック方式によるサービスサーバ９０への転送方法を用いることが可能である。コールバック方式とは、ウェブサーバ３０がスキャンデータを受信した場合に、スキャンデータを受信した旨の情報をサービスサーバ９０に送信し、サービスサーバ９０がウェブサーバ３０からスキャンデータを取得する方式である。
【００８７】
また、ウェブサーバ３０がＳ２１８で受信するリクエストは、スキャンデータのリクエストに限らない。ＭＦＰ８２，８４，８６のステータス情報や設定情報のリクエストであってもよい。
【００８８】
また、本実施形態では、デバイス情報として、中継サーバ５０，７０とＭＦＰ８２，８４，８６との間の通信状態に関する情報が採用されているが、ＭＦＰ毎の特定の情報であれば、種々の情報を採用することが可能である。
【００８９】
本実施形態の情報処理サーバ１０では、通信プログラム２０ａに基づいて実行するＣＰＵ１２が、各種の処理を行う場合を説明した。しかし、この形態に限られない。通信プログラム２０ａに基づいて実行するＣＰＵ１２が、ＯＳ２０ｂ、他のシステム、ハード構成に対して、各種の処理を行わせる指示を出す形態であってもよい。また、本実施形態のウェブサーバ３０では、通信プログラム４０ａに基づいて実行するＣＰＵ３２が、各種の処理を行う場合を説明した。しかし、この形態に限られない。通信プログラム４０ａに基づいて実行するＣＰＵ３２が、ＯＳ４０ｂ、他のシステム、ハード構成に対して、各種の処理を行わせる指示を出す形態であってもよい。
【００９０】
また、上記実施形態では、情報処理サーバ１０の通信プログラム２０ａの実行により図７及び図８に示すフローが実行されるが、そのフローにおいて、Ｓ１００，Ｓ１０２，Ｓ１０６〜Ｓ１１６，Ｓ１２０，Ｓ１２４〜Ｓ１２８の処理を行わないことも可能である。なお、上記ステップの全ての処理を行わないのではなく、上記ステップのうち、いずれかのステップの処理を任意に加えたフローとすることも可能である。
【００９１】
また、上記実施形態では、ウェブサーバ３０の通信プログラム４０ａの実行により図９及び図１０に示すフローが実行されるが、そのフローにおいて、Ｓ２００〜Ｓ２１２，Ｓ２１６〜Ｓ２２２の処理を行わないことも可能である。なお、上記ステップの全ての処理を行わないのではなく、上記ステップのうち、いずれかのステップの処理を任意に加えたフローとすることも可能である。
【００９２】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【００９３】
通信システム１は、通信システムの一例である。情報処理サーバ１０は情報処理サーバの一例である。ＣＰＵ１２はプロセッサの一例である。ネットワークＩ／Ｆ１６は通信部の一例である。ウェブサーバ３０はクライアント要求処理サーバの一例である。ＣＰＵ３２はプロセッサの一例である。中継サーバ５０，７０は中継サーバの一例である。ロードバランサ８０はロードバランサの一例である。ＭＦＰ８２，８４，８６はデバイスの一例である。サービスサーバ９０はクライアント装置の一例である。キュー９２はメモリの一例である。データベース９６はデータベースの一例である。認証情報は第１情報の一例である。デバイス情報は第２情報の一例である。オンラインデバイスリストおよび、オフラインデバイスリストは第３情報の一例である。ＸＭＰＰ  ｏｖｅｒ  ＢＯＳＨは接続確立型プロトコルの一例である。ＸＭＰＰセッションは接続確立要求情報の一例である。ＸＭＰＰコネクションは維持情報の一例である。
【００９４】
Ｓ１０４を実行するＣＰＵ１２は、第２情報読取手段の一例である。Ｓ１１８，Ｓ１２２を実行するＣＰＵ１２は、第３情報送信手段の一例である。Ｓ１１０，Ｓ１１２を実行するＣＰＵ１２は、情報区分手段、および情報処理手段の一例である。Ｓ２１４を実行するＣＰＵ３２は、第３情報読取手段の一例である。Ｓ２１６を実行するＣＰＵ３２は、実行手段の一例である。
【００９５】
なお、各プログラムは一つのプログラムモジュールから構成されるものであってもよいし、複数のプログラムモジュールから構成されるものであってもよい。また、各一例は置換可能な他の構成であってもよく、本発明の範疇である。プログラム（通信プログラム２０ａ、通信プログラム４０ａなど）に基づく処理を実行するコンピュータ（ＣＰＵ１２、ＣＰＵ３２など）であってもよいし、オペレーティングシステムや他のアプリケーション、プログラムなど、通信プログラム以外のプログラムに基づく処理を実行するコンピュータであってもよいし、コンピュータの指示に従って動作するハード構成であってもよいし、コンピュータとハード構成とが連動した構成であってもよい。もちろん、複数のプログラムに基づく処理を連動させて処理を実行するコンピュータであってもよいし、複数のプログラムに基づく処理を連動させて処理を実行するコンピュータの指示に従って動作するハード構成であってもよい。
【００９６】
さらに、本発明の範疇であるプログラムは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体に記録されて提供されてもよい。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の他、通信ネットワークを介して情報処理サーバ１０、ウェブサーバ３０に接続可能なサーバ装置に搭載された記憶部を含んでもよい。そして、サーバ装置の記憶部に記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワークを介して配信されてもよい。
【符号の説明】
【００９７】
１：通信システム、１０：情報処理サーバ、１２：ＣＰＵ、１６：ネットワークＩ／Ｆ、３０：ウェブサーバ、３２：ＣＰＵ、３６：ネットワークＩ／Ｆ、５０：中継サーバ、７０：中継サーバ、８０：ロードバランサ、８２：ＭＦＰ、８４：ＭＦＰ、８６：ＭＦＰ、９０：サービスサーバ、９２：キュー、９６：データベース
【図１】
2015144351.tif 000003
【図２】
2015144351.tif 000004
【図３】
2015144351.tif 000005
【図４】
2015144351.tif 000006
【図５】
2015144351.tif 000007
【図６】
2015144351.tif 000008
【図７】
2015144351.tif 000009
【図８】
2015144351.tif 000010
【図９】
2015144351.tif 000011
【図１０】
2015144351.tif 000012