【文献】
Hiroyuki,富士通BSC社さんのMDMソリューションFENCE-Mobile RemoteManagerを評価してみました。,Curl Global Community,2012年 6月19日,URL,http://communities.curl.com/showthread.php?tid=537
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0025】
実施形態1.
以下、本発明の第1の実施形態を図面を参照して説明する。
【0026】
図1は、本発明によるメッセージ配信システムの第1の実施形態の構成を示すブロック図である。
【0027】
通信システムは、
図1に示すように、端末100−1〜100−nと、プッシュサーバ200と、アプリケーションサーバ300−1〜300−nとを含む。なお、
図1には、1つのプッシュサーバ200が例示されているが、プッシュサーバはいくつあってもよい。
【0028】
端末100−1〜100−nは、例えば、携帯電話機等の通信端末である。プッシュサーバ200とアプリケーションサーバ300−1〜300−nとは、通信可能に接続される。プッシュサーバ200と端末100−1〜100−nとは、モバイル網または無線LAN、およびインターネットを介して通信可能に接続される。モバイル網は、例えば、3G回線やLTEである。無線LANは、例えばWiFiである。
【0029】
各端末は、プッシュクライアント110と、アプリケーション120−1〜120−nとを含む。
【0030】
図2は、本発明による端末の第1の実施形態の構成を示すブロック図である。
【0031】
図2に示すように端末100(端末100−1〜100−n)のプッシュクライアント110は、端末状態通知送信部111と、ネットワーク(NW)状態検知部112と、メッセージ更新通知受信部113と、メッセージ受信部114と、メッセージ通知部115とを含む。
【0032】
端末状態通知送信部111は、端末状態通知を行う。具体的には、端末状態通知送信部111は、端末状態を示す情報(以下、端末状態情報という。)をプッシュサーバ200に通知する。端末状態情報は、例えば、端末100のIPアドレスを含む情報である。
【0033】
NW状態検知部112は、ネットワーク状態を検知する。具体的には、NW状態検知部112は、ネットワーク状態として、端末100とプッシュサーバ200とが接続されているネットワークの種別を検知する。ネットワークの種別は、例えば、無線LANや、モバイル網である。
【0034】
メッセージ更新通知受信部113は、プッシュサーバ200から送信されるメッセージ更新通知を受信する。
【0035】
メッセージ受信部114は、メッセージ更新通知に対応するメッセージをプッシュサーバ200から受信する。
【0036】
メッセージ通知部115は、プッシュサーバ200から受信したメッセージをアプリケーション120−1〜120−nに渡す。
【0037】
アプリケーション120−1〜120−nは、端末100上で動作するアプリケーションプログラムである。アプリケーション120−1〜120−nは、例えばサービス事業者等から提供され、端末が備える記憶部(図示せず)に格納される。
【0038】
なお、プッシュクライアント110は、端末100が備えるCPU等によって実現される。
【0039】
プッシュサーバ200は、プッシュメッセージを端末に配信するサーバ装置である。プッシュサーバ200は、制御部(図示せず)を備える。なお、制御部は、プッシュサーバ200が備えるCPU等によって実現される。以降、プッシュサーバ200の制御部が処理することを、単にプッシュサーバ200が処理すると表現する。
【0040】
アプリケーションサーバ300−1〜300−nは、各サービス事業者が使用するサーバ装置である。アプリケーションサーバ300−1〜300−nは、例えばサービス事業者が入力した操作に応じて、メッセージ配信要求をプッシュサーバ200に送信する。
【0042】
まず、端末100が、プッシュメッセージを取得する方法(以下、プッシュ方法という。)を決定する動作を説明する。
【0043】
本実施形態では、端末はプッシュ方法として第一の通信方式と第二の通信方式とを用いる。第一の通信方式はロングポーリング方式(以下、単にロングポーリングという。)である。第二の通信方式はダイレクトIP方式(以下、単にダイレクトIPという。)である。
【0044】
ロングポーリングは、プッシュサーバが、端末からのHTTP要求(HTTP GET)に対して、配信すべきプッシュメッセージが発生するまで、応答をブロックする方法である。つまり、プッシュサーバは、配信すべきプッシュメッセージがない場合には、メッセージ配信要求をアプリケーションサーバから受け付けるまで、HTTP要求に対する応答をしない。
【0045】
ロングポーリングは、HTTPを利用するため、端末がNAT配下となるWiFiなどの無線LANに接続している場合においても、プッシュメッセージを端末に到達させることができる。また、ロングポーリングは、企業内イントラネットのようにプロキシサーバを経由してインターネットに接続する環境においても、端末にプッシュメッセージを到達させることができる。
【0046】
しかし、ロングポーリングは、TCPセッションを常時維持しておく必要がある。従って、プッシュサーバおよび端末は、TCPセッションを維持するために定期的に通信を行う必要がある。そのため、モバイル網においてロングポーリングを行った場合には、輻輳が発生する可能性がある。また、サーバ負荷が増大する可能性がある。
【0047】
ダイレクトIPは、プッシュサーバが、メッセージ配信時に端末とのTCPセッションを確立させ、確立したTCPセッションを利用してプッシュメッセージを送信する方法である。
【0048】
端末がNAT配下にある場合には、端末とプッシュサーバとが異なるIPアドレス空間に存在するため、プッシュサーバは当該端末とのTCP接続を行うことができない。従って、ダイレクトIPを利用する場合には、プッシュサーバを端末と同一NAT内に配置する必要がある。
【0049】
携帯電話サービスを提供する通信事業者(キャリア)は、モバイル網内にプッシュサーバを設置することができる。つまり、プッシュサーバを端末と同一NAT内に設置することができる。よって、モバイル網がNAT経由でインターネットに繋がっている環境でも、キャリアがプッシュサーバをモバイル網内に設置することにより、当該モバイル網でダイレクトIPを利用することが可能となる。
【0050】
プッシュサーバと端末とが同一NAT内に設置されていない場合であっても、端末にグローバルIPアドレスが割り振られている場合には、プッシュサーバから端末に対してTCPセッションの確立を行うことができるので、ダイレクトIPを利用することができる。
【0051】
ダイレクトIPは、TCPセッションを常時維持させておく必要がないため、モバイル網で利用しても輻輳を発生させない。
【0052】
そこで、本実施形態では、端末100は、ネットワークの状態に応じて、プッシュ方法を使い分ける。具体的には、ネットワークが、一般的に端末がNAT配下となるWiFiなどの無線LANの場合には、端末100はロングポーリングを選択する。ネットワークが、端末とプッシュサーバとが同一NAT内に含まれるモバイル網の場合には、端末100はダイレクトIPを選択する。
【0053】
図3は、端末100がプッシュ方法としてロングポーリングを選択した場合の動作を示すシーケンス図である。なお、
図3では、アプリケーション120(アプリケーション120−1〜120−n)が1つ例示されているが、アプリケーションは端末100上でいくつ動作していてもよい。また、
図3では、端末100が1つ例示されているが、プッシュサーバ200に複数台の端末が接続される場合には各端末が端末100と同様の動作をする。
【0054】
端末100とプッシュサーバ200とを接続するネットワークの状態に変化があった場合、端末100のプッシュクライアント110は、ネットワークの状態が変化したことを検知する(ステップS301)。具体的には、プッシュクライアント110のNW状態検知部112が、端末100上で動作するOS(Operating System)からネットワークの状態が変化したことを示す通知(以下、NW状態変更通知という。)を受信する。
【0055】
NW状態検知部112は、NW状態変更通知をもとに、ネットワーク状態を確認する(ステップS302)。具体的には、NW状態検知部112は、端末100とプッシュサーバ200とを接続するネットワークの種別を確認する。ここでは、NW状態検知部112は、端末100とプッシュサーバ200とが無線LANを介して接続されていることを認識する。
【0056】
メッセージ受信部114は、ネットワークが無線LANであるので、プッシュ方法としてロングポーリングを選択する。そして、メッセージ受信部114は、プッシュサーバ200に対して、配信すべきプッシュメッセージの有無の問い合わせ(以下、プッシュ問い合わせという。)を行うために、問い合わせ要求を送信する。具体的には、メッセージ受信部114は、HTTP要求を送信する(ステップS303)。
【0057】
プッシュサーバ200は、HTTP要求に対して即座に応答しない。プッシュサーバ200は、端末100のプッシュクライアント110に対して配信すべきプッシュメッセージが発生するまで、HTTP要求に対する応答をブロックする。なお、配信すべきプッシュメッセージがある場合には、ブロックせずに即座に応答を返す。
【0058】
図4は、端末100がプッシュ方法としてダイレクトIPを選択した場合の動作を示すシーケンス図である。
【0059】
ステップS401、ステップS402の処理は、ステップS301、ステップS302の処理と同様であるため説明を省略する。
【0060】
なお、ステップS402では、NW状態検知部112は、端末100とプッシュサーバ200とがモバイル網を介して接続されていることを認識する。
【0061】
メッセージ受信部114は、ネットワークがモバイル網であるので、プッシュ方法としてダイレクトIPを選択する。
【0062】
メッセージ更新通知受信部113は、TCP待ち受けを開始する(ステップS403)。具体的には、メッセージ更新通知受信部113は、TCPのポートを開放し、メッセージ更新通知を受信可能な状態にする。
【0063】
端末状態通知送信部111は、端末の状態を通知する(ステップS404)。具体的には、端末状態通知送信部111は、端末のIPアドレスと、メッセージ更新通知受信部113が開放したTCPポートのポート番号とを含む端末状態情報をプッシュサーバ200に送信する。
【0064】
ステップS404の後、端末100のプッシュクライアント110は、プッシュサーバ200からのTCP接続を待つ。つまり、プッシュクライアント110は、プッシュサーバ200が端末100とのTCPセッションを確立するのを待つ。このとき、プッシュクライアント110とプッシュサーバ200間のTCPセッションは確立されていない。従って、プッシュクライアント110とプッシュサーバ200とは、TCPセッションを維持するための定期的な通信を行う必要がない。
【0065】
ここで、プッシュサーバ200におけるプッシュ方法の判定処理を説明する。
【0066】
プッシュサーバ200は、ステップS303において、プッシュ問い合わせのHTTP要求を受信すると、端末100がロングポーリングを選択したと判断する。また、ステップS404において端末状態通知送信部111から端末状態情報を受信すると、端末100がダイレクトIPを選択したと判断する。
【0067】
このように、端末状態通知またはプッシュ問い合わせによって、プッシュ方法の選択結果がプッシュサーバ200に通知される。このような形態を実現するには、例えば、端末状態通知のURLのパスと、プッシュ問い合わせのURLのパスとを別に設定し、プッシュサーバ200は、どちらのURLにアクセスがあったかを判断すればよい。
【0068】
次に、端末100がロングポーリングによりプッシュメッセージを取得する動作を説明する。
【0069】
図5は、ロングポーリングによるプッシュメッセージの配信処理を示すシーケンス図である。
【0070】
図5に示すシーケンス図においては、端末100によるプッシュ問い合わせ実施以降のメッセージ配信システムの動作を示す。
【0071】
プッシュサーバ200は、プッシュクライアント110のメッセージ受信部114からHTTP要求としてプッシュ問い合わせを受け付けると(ステップS501)、端末100がロングポーリングを選択したと判断する。このとき、プッシュサーバ200は、即座に応答せずに、配信すべきプッシュメッセージの発生を待つ。つまり、プッシュサーバ200はプッシュ待ちの状態となる。
【0072】
プッシュサーバ200は、アプリケーションサーバ300からプッシュメッセージの配信要求を受け付けると(ステップS502)、HTTP要求が正常に処理されたことを示すHTTP応答(HTTP 200OK)とともに、プッシュメッセージをプッシュクライアント110に送信する(ステップS503)。
【0073】
プッシュクライアント110のメッセージ通知部115は、ステップS503で受信したメッセージを対応するアプリケーションに渡す(ステップS504)。
【0074】
次に、端末100がダイレクトIPによりプッシュメッセージを取得する動作を説明する。
【0075】
図6は、ダイレクトIPによるプッシュメッセージの配信処理を示すシーケンス図である。
【0076】
図6に示すシーケンス図においては、端末100が端末状態通知をした後のメッセージ配信システムの動作を示す。
【0077】
プッシュサーバ200は、端末100から端末状態通知を受けると、すなわち端末100から端末状態情報を受信すると、端末100がダイレクトIPを選択したと判断する。その後、アプリケーションサーバ300からプッシュメッセージの配信要求を受け付けると(ステップS601)、プッシュサーバ200は、プッシュクライアント110に対してTCP接続を行う(ステップS602)。ダイレクトIPでは、このTCP接続がメッセージ更新通知となる。すなわち、メッセージ更新通知受信部113は、TCP接続を検知することにより、メッセージ更新通知があったと判断する。
【0078】
プッシュクライアント110のメッセージ更新通知受信部113がプッシュサーバ200とのTCP接続を検知すると、メッセージ受信部114は、これをトリガとしてメッセージ取得処理を開始する。つまり、プッシュサーバ200に対してHTTP要求としてメッセージ取得要求を送信する(ステップS603)。
【0079】
プッシュサーバ200は、HTTP要求が正常に処理されたことを示すHTTP応答とともに、プッシュメッセージをプッシュクライアント110に送信する(ステップS604)。
【0080】
プッシュクライアント110のメッセージ通知部115は、ステップS604で受信したメッセージを対応するアプリケーションに渡す(ステップS605)。
【0081】
以上に説明したように、本実施形態では、端末がネットワーク状態に応じてプッシュ方法を決定する。従って、ロングポーリング方式のみを利用した場合に比べプッシュサーバの処理負荷を軽減させるとともに、端末が利用するネットワークの種別によらずに、プッシュメッセージを確実に端末内のプッシュクライアントに到達させることができる。
【0082】
また、端末がモバイル網を利用しているときには、TCPセッションを常時維持させておく必要がないダイレクトIPをプッシュ方法として選択するので、モバイル網における制御信号の輻輳の発生を抑止することができる。
【0083】
なお、本実施形態では、端末とプッシュサーバとが異なるIPアドレス空間に存在する場合には、NATやFWを介した通信およびプロキシサーバを介した通信が可能なロングポーリングをプッシュ方法として選択しているが、その他の方法を利用してもよい。例えば、プロキシサーバを介した通信ができなくてもよい場合には、WebSocketやTCP独自通信を利用することができる。つまり、第一の通信方式はWebSocketやTCP独自通信であってもよい。
【0084】
WebSocketは、ウェブサーバとブラウザ間のTCP上における双方向通信用の通信方式である。WebSocketでは、TCPセッションを1回確立させると、その後端末とプッシュサーバ間で双方向通信が可能となる。ただし、WebSocketでは、WebSocketに対応していないプロキシサーバを介した通信を行うことができない。TCP独自通信は、ユーザ等が独自に開発したTCP上における通信方式である。
【0085】
実施形態2.
以下、本発明の第2の実施形態を図面を参照して説明する。
【0086】
端末100の第2の実施形態における構成は、第1の実施形態における構成と同様であるため、説明を省略する。
【0087】
第1の実施形態では、ロングポーリングおよびダイレクトIPによってプッシュメッセージを端末に配信するメッセージ配信システムを例にした。
【0088】
しかし、ロングポーリングおよびダイレクトIPによってもプッシュメッセージを端末に到達させることができない場合がある。例えば、端末が長時間無通信(スリープ)状態になっていて、端末のIPアドレスが開放されている場合である。
【0089】
本実施形態では、ロングポーリングおよびダイレクトIPによってもプッシュメッセージを端末に到達させることができない場合、プッシュサーバ200は、SMS(Short Message Service)を利用してプッシュメッセージを配信する。
【0090】
図7は、SMSによるプッシュメッセージの配信処理を示すシーケンス図である。
【0091】
プッシュサーバ200は、アプリケーションサーバ300からプッシュメッセージの配信要求を受け付けたときに(ステップS701)、配信先の端末が選択したプッシュ方法でプッシュメッセージの配信が可能か否かを判定する。本実施形態では、プッシュサーバ200は、プッシュメッセージの配信試行を実行し、配信試行の結果をもとに配信可能か否かを判定する(ステップS702)。
【0092】
プッシュサーバ200は、配信先の端末がプッシュ方法としてダイレクトIPを選択している場合は、ダイレクトIPによるプッシュメッセージの配信を試行する。また、プッシュサーバ200は、配信先の端末がプッシュ方法としてロングポーリングを選択している場合は、ロングポーリングによるプッシュメッセージの配信を試行する。
【0093】
このとき、端末100が、長時間スリープ状態になっていて、端末100のIPアドレスが開放されてしまっている場合がある。その場合、プッシュメッセージが端末100に配信されない。
【0094】
プッシュメッセージの配信試行に失敗した場合には、プッシュサーバ200は、配信先の端末が選択したプッシュ方法ではプッシュメッセージの配信ができないと判断する。そして、プッシュサーバ200は、プッシュクライアント110に対して、配信すべきプッシュメッセージがあることを示す通知をSMSで送信する(ステップS703)。このとき、端末100のIPアドレスが開放されていたとしても、SMSによる通知は端末100に到達する。本実施形態では、SMSによる通知がメッセージ更新通知となる。すなわち、メッセージ更新通知受信部113は、SMSによる通知を受けると、メッセージ更新通知があったと判断する。
【0095】
プッシュクライアント110のメッセージ更新通知受信部113がSMSによる通知を受けると、メッセージ受信部114は、これをトリガとしてメッセージ取得処理を開始する。このとき、端末100のIPアドレスは開放されているが、端末100がプッシュサーバ200と通信しようとしたタイミングで、端末100にIPアドレスが割り当てられる。例えば、モバイル網上に設置されたDHCP(Dynamic Host Configuration Protocol)サーバが、端末100にIPアドレスを割り当てる。これにより、端末100に対するプッシュメッセージの配信が可能となる。
【0096】
端末100にIPアドレスが割り当てられた後、メッセージ受信部114は、プッシュサーバ200に対してHTTP要求としてメッセージ取得要求を送信する(ステップS704)。
【0097】
プッシュサーバ200は、HTTP要求が正常に処理されたことを示すHTTP応答とともに、プッシュメッセージをプッシュクライアント110に送信する(ステップS705)。
【0098】
プッシュクライアント110のメッセージ通知部115は、ステップS705で受信したメッセージを配信先のアプリケーションに渡す(ステップS706)。
【0099】
以上に説明したように、本実施形態では、端末が、プッシュサーバから配信すべきプッシュメッセージがあることを示すSMSによる通知を受けると、メッセージ取得要求をプッシュサーバに送信する。従って、プッシュサーバがロングポーリングおよびダイレクトIPによってもプッシュメッセージを端末に到達させることができない場合であっても、プッシュサーバがSMSによる通知を端末に送信すれば、端末は当該通知をもとにプッシュメッセージを取得することができる。よって、例えば、端末のIPアドレスが開放されている場合であっても、確実に端末にプッシュメッセージを配信することができる。
【0100】
なお、本実施形態では、SMSによる通知をトリガとする場合を例にしたが、配信すべきプッシュメッセージがあることをIPアドレスが開放されている端末に通知可能であれば、SMS以外の方法を利用してもよい。
【0101】
実施形態3.
以下、本発明の第3の実施形態を図面を参照して説明する。
【0102】
端末100の第3の実施形態における構成は、第1の実施形態および第2の実施形態における構成と同様であるため、説明を省略する。
【0103】
ただし、本実施形態では、端末状態通知送信部111は、端末のIPアドレスが前回端末状態通知をしたときのIPアドレスと同一の場合には、端末状態通知を行わない。
【0104】
図8は、端末100がプッシュ方法としてダイレクトIPを選択した場合の第3の実施形態の動作を示すシーケンス図である。
【0105】
ステップS801〜S803の処理は、第1の実施形態のステップS401〜S403の処理と同様であるため、説明を省略する。
【0106】
ステップS803の後、端末状態通知送信部111は、端末に現在割り当てられているIPアドレスが、前回端末状態通知をしたときのIPアドレスと同一であるか否かを確認する(ステップS804)。
【0107】
IPアドレスが同一である場合は、端末状態通知送信部111は、端末状態通知を行わない(ステップS805)。なお、IPアドレスが同一でない場合には、端末状態通知送信部111は、ステップS404の処理と同様に端末状態通知を行う。
【0108】
以上に説明したように、本実施形態では、端末がプッシュ方法としてダイレクトIPを選択した場合に、端末のIPアドレスが前回端末状態通知をしたときと同一であるときには、端末は端末状態通知を行わない。これにより、端末およびプッシュサーバの処理負荷をさらに軽減することができる。特に、端末のネットワーク状態が頻繁に切り替わるような環境において、端末およびプッシュサーバの処理負荷を軽減することができる。
【0109】
例えば、モバイル網とWiFiとの切り替えが頻繁に行われる環境では、ネットワークがWiFiからモバイル網に切り替わる度に、端末から端末状態情報がプッシュサーバに送信される。従って、端末およびプッシュサーバの処理負荷が増大する可能性がある。しかし、本実施形態によれば、そのような環境でも端末およびプッシュサーバの処理負荷を軽減することができる。
【0110】
図9は、本発明による端末の最小構成を示すブロック図である。
図10は、本発明によるメッセージ配信システムの最小構成を示すブロック図である。
【0111】
図9に示すように、端末(
図1に示す端末100−1〜100−nおよび
図2に示す端末100に相当。)は、自端末と、メッセージの配信をプッシュ型で行う配信装置(
図1に示すプッシュサーバ200に相当。)とを接続するネットワークの状態を検知するネットワーク状態検知部11(
図2に示す端末100のプッシュクライアント110におけるNW状態検知部112に相当。)と、検知結果をもとに、自端末と配信装置とが同一IPアドレス空間に配置されているか否かを判定し、同一IPアドレス空間に配置されていない場合は、予め確立されたTCPセッションを利用する第一の通信方式を選択し、同一IPアドレス空間に配置されている場合は、メッセージ配信時に配信装置が自端末との間に新規に確立するTCPセッションを利用する第二の通信方式を選択し、選択した通信方式に応じて配信装置からメッセージを受信する受信部12(
図2に示す端末100のプッシュクライアント110における端末状態通知送信部111、メッセージ更新通知受信部113およびメッセージ受信部114に相当。)とを備える。
【0112】
そのような構成によれば、配信装置の処理負荷を削減しつつ、端末が利用するネットワークの種別によらずに、プッシュメッセージを確実に端末に到達させることができる。
【0113】
上記の実施形態には、以下のような端末も開示されている。
【0114】
(1)受信部12は、自端末と配信装置とを接続するネットワークが無線LANである場合は、自端末と配信装置とが同一IPアドレス空間に配置されていないと判断し、ネットワークがモバイル網である場合は、自端末と配信装置とが同一IPアドレス空間に配置されていると判断する端末。
【0115】
そのような構成によれば、ネットワークの種別をもとに、端末と配信装置とが同一IPアドレス空間内にいるか否かを判定することができる。
【0116】
(2)受信部12は、第一の通信方式を選択した場合は、配信装置に配信すべきメッセージの有無を問い合わせる問い合わせ要求を送信し、第二の通信方式を選択した場合は、配信装置とのTCP接続を検知したときに当該配信装置にメッセージ取得要求を送信する端末。
【0117】
そのような構成によれば、選択したプッシュ方法に応じて、配信装置からプッシュメッセージを取得することができる。
【0118】
(3)受信部12は、第二の通信方式を選択したときに自端末のIPアドレスを含む端末状態情報を配信装置に通知する端末。
【0119】
そのような構成によれば、配信装置が端末状態通知をもとに端末のIPアドレスなどを認識することができ、配信装置から端末に対してTCP接続を行うことが可能となる。また、端末状態情報を通知することにより、端末がプッシュ方法としてダイレクトIPを選択したことを配信装置が認識することができる。
【0120】
(4)受信部12は、配信すべきメッセージがあることを示すSMSによる通知を検知したときに配信装置にメッセージ取得要求を送信する端末。
【0121】
そのような構成によれば、例えば、端末のIPアドレスが開放されている場合であっても、端末は、SMSによる通知により配信すべきプッシュメッセージがあることを認識することができる。従って、そのような場合でも、端末は確実にプッシュメッセージを取得することができる。
【0122】
(5)受信部12は、前回の端末状態情報を通知したときの自端末のIPアドレスと現在の自端末のIPアドレスとが同一の場合には、端末状態情報を配信装置に通知しない端末。
【0123】
そのような構成によれば、例えば、モバイル網とWiFiとの切り替えが頻繁に行われる環境において、ネットワークがモバイル網に切り替わる際の端末状態情報の送信を抑止することができる。従って、端末およびプッシュサーバの処理負荷をさらに軽減することができる。
【0124】
上記の実施形態には、
図10に示すようなメッセージ配信システムも開示されている。
【0125】
(6)端末10−1〜10−n(
図1に示す端末100−1〜100−nに相当。)と、端末10−1〜10−nにメッセージの配信をプッシュ型で行う配信装置20(
図1に示すプッシュサーバ200に相当。)とを備え、端末10−1〜10−nは、自端末と配信装置20とを接続するネットワークの状態を検知するネットワーク状態検知部11と、検知結果をもとに、自端末と配信装置20とが同一IPアドレス空間に配置されているか否かを判定し、同一IPアドレス空間に配置されていない場合は、予め確立されたTCPセッションを利用する第一の通信方式を選択し、同一IPアドレス空間に配置されている場合は、メッセージ配信時に配信装置20が自端末との間に新規に確立するTCPセッションを利用する第二の通信方式を選択し、選択した通信方式に応じて配信装置20からメッセージを受信する受信部12とを備え、配信装置20は、端末から通知された通信方式の選択結果に応じたメッセージ配信を行う制御部21(
図1に示すプッシュサーバ200における制御部(図示せず)に相当。)を備えるメッセージ配信システム。
【0126】
そのような構成によれば、端末が利用するネットワークの種別によらずに、配信装置の処理負荷を増大させることなく、プッシュメッセージを確実に端末に到達させることができる。
【0127】
(7)受信部12は、自端末と配信装置20とを接続するネットワークが無線LANである場合は、自端末と配信装置20とが同一IPアドレス空間に配置されていないと判断し、ネットワークがモバイル網である場合は、自端末と配信装置20とが同一IPアドレス空間に配置されていると判断するメッセージ配信システム。
【0128】
そのような構成によれば、ネットワークの種別をもとに、端末と配信装置とが同一IPアドレス空間内にいるか否かを判定することができる。
【0129】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下
に限られない。
【0130】
(付記1)端末10−1〜10−nと、端末10−1〜10−nにメッセージの配信をプッシュ型で行う配信装置20とを備え、端末10−1〜10−nは、自端末と配信装置20とを接続するネットワークの状態を検知するネットワーク状態検知部11と、検知結果をもとに、自端末と配信装置20とが同一IPアドレス空間に配置されているか否かを判定し、同一IPアドレス空間に配置されていない場合は、予め確立されたTCPセッションを利用する第一の通信方式を選択し、同一IPアドレス空間に配置されている場合は、メッセージ配信時に配信装置20が自端末との間に新規に確立するTCPセッションを利用する第二の通信方式を選択し、選択した通信方式に応じて配信装置20からメッセージを受信する受信部12とを備え、配信装置20は、端末から通知された通信方式の選択結果に応じたメッセージ配信を行う制御部21を備えるメッセージ配信システム。
【0131】
(付記2)受信部12は、自端末と配信装置20とを接続するネットワークが無線LANである場合は、自端末と配信装置20とが同一IPアドレス空間に配置されていないと判断し、ネットワークがモバイル網である場合は、自端末と配信装置20とが同一IPアドレス空間に配置されていると判断する付記1に記載のメッセージ配信システム。
【0132】
(付記3)受信部12は、第一の通信方式を選択した場合は、配信装置20に配信すべきメッセージの有無を問い合わせる問い合わせ要求を送信し、第二の通信方式を選択した場合は、配信装置20とのTCP接続を検知したときに当該配信装置20にメッセージ取得要求を送信する付記1または付記2に記載のメッセージ配信システム。
【0133】
そのような構成によれば、端末が選択したプッシュ方法に応じて、配信装置から端末へプッシュメッセージの配信を行うことができる。
【0134】
(付記4)受信部12は、第二の通信方式を選択したときに自端末のIPアドレスを含む端末状態情報を配信装置20に通知し、制御部21は、メッセージ配信時に端末状態情報をもとに端末10−1〜10−nとのTCPセッションを確立する付記1から付記3のうちのいずれか1つに記載のメッセージ配信システム。
【0135】
そのような構成によれば、配信装置が端末状態通知をもとに端末のIPアドレスなどを認識することができ、配信装置から端末に対してTCP接続を行うことが可能となる。また、端末状態情報を通知することにより、端末がプッシュ方法としてダイレクトIPを選択したことを配信装置が認識することができる。
【0136】
(付記5)制御部21は、第一の通信方式または第二の通信方式によるメッセージ配信ができないと判断した場合には、配信すべきメッセージがあることを示すSMSによる通知を端末10−1〜10−nに送信し、受信部12は、SMSによる通知を検知したときに配信装置20にメッセージ取得要求を送信する付記1から付記4のうちのいずれか1つに記載のメッセージ配信システム。
【0137】
そのような構成によれば、例えば、端末のIPアドレスが開放されている場合であっても、SMSによる通知により、配信装置は端末に配信すべきプッシュメッセージがあることを認識させることができ、確実に端末に対してプッシュメッセージを配信することができる。
【0138】
(付記6)受信部12は、前回の端末状態情報を通知したときの自端末のIPアドレスと現在の自端末のIPアドレスとが同一の場合には、端末状態情報を配信装置20に通知しない付記4または付記5に記載のメッセージ配信システム。
【0139】
そのような構成によれば、例えば、モバイル網とWiFiとの切り替えが頻繁に行われる環境において、ネットワークがモバイル網に切り替わる際の端末状態情報の送信を抑止することができる。従って、端末およびプッシュサーバの処理負荷をさらに軽減することができる。
【0140】
この出願は、2012年10月17日に出願された日本特許出願2012−230001を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【0141】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。