(57)【要約】  端末がインターネット内にある場合でもアプリケーションをプッシュ送信するシームレスプッシュシステムを提供する。イントラネット内に設けられ，プッシュメッセージの送信依頼に応答して，イントラネットを介して接続状態にある端末にプッシュメッセージを送信する第１のプッシュゲートウエイと，インターネット内に設けられ，インターネットを介して端末と接続状態を維持可能な第２のプッシュゲートウエイとを有するシームレスプッシュシステムであって，端末がインターネットに接続可能な間，第２のプッシュゲートウエイが，端末からインターネットを介して接続状態を構築され当該接続状態を維持し，第１のプッシュゲートウエイは，プッシュメッセージの送信依頼に応答して，第２のプッシュゲートウエイにプッシュメッセージを転送し，第２のプッシュゲートウエイは，プッシュメッセージの転送に応答して，接続状態にある端末に，インターネットを介してプッシュメッセージを送信する。
2014030426.tif 000002
【特許請求の範囲】
【請求項１】
イントラネット内に設けられ，プッシュメッセージの送信依頼に応答して，前記イントラネットを介して接続状態にある端末に前記プッシュメッセージを送信する第１のプッシュゲートウエイと，
インターネット内に設けられ，前記インターネットを介して前記端末と接続状態を維持可能な第２のプッシュゲートウエイとを有し，
前記端末が前記インターネットに接続可能な間，
前記第２のプッシュゲートウエイが，前記端末から前記インターネットを介して接続状態を構築され当該接続状態を維持し，
前記第１のプッシュゲートウエイは，前記プッシュメッセージの送信依頼に応答して，前記第２のプッシュゲートウエイに前記プッシュメッセージを転送し，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，前記接続状態にある端末に，前記インターネットを介して前記プッシュメッセージを送信するシームレスプッシュシステム。
【請求項２】
請求項１において，
さらに，前記イントラネット内に設けられ，前記端末からのアクセスに対応してアプリケーションを前記端末にダウンロードさせるアプリサーバを有し，
前記プッシュメッセージを受信した端末と前記アプリサーバとの間に構築されたプライベートネットワークを介して，前記アプリサーバが，前記端末に前記プッシュメッセージに対応するアプリケーションを送信するシームレスプッシュシステム。
【請求項３】
請求項２において，
前記プライベートネットワークが構築されている間，前記第１のプッシュゲートウエイは，前記端末から前記プライベートネットワークを介して接続状態を構築され当該接続状態を維持し，前記第１のプッシュゲートウエイは，前記プライベートネットワークを介して前記端末にさらに別のプッシュメッセージを送信するシームレスプッシュシステム。
【請求項４】
請求項２において，
前記端末が前記イントラネットに接続可能な場合は，前記第１のプッシュゲートウエイは前記端末と前記イントラネットを介して接続状態を構築し，当該接続状態を介して前記端末に前記プッシュメッセージを送信し，前記端末が前記インターネットに接続可能な場合は，前記第２のプッシュゲートウエイは前記端末と前記インターネットを介して接続状態を構築し，当該接続状態を介して前記端末に前記プッシュメッセージを送信するシームレスプッシュシステム。
【請求項５】
請求項４において，
前記端末は，前記プッシュメッセージの受信に応答して，前記アプリサーバから前記プライベートネットワークを介して前記アプリケーションをダウンロードするアプリダウンロード部を有し，
前記端末と前記第１のプッシュゲートウエイとには，端末IDと当該端末の前記ダウンロード部に対応するプッシュ送信先情報とが記憶され，
前記第１のプッシュゲートウエイと前記第２のプッシュゲートウエイは，それぞれに接続状態を維持している前記端末の端末IDを記憶し，
前記第１のプッシュゲートウエイは，前記プッシュメッセージを前記プッシュ送信先情報とともに受信することに応答して，当該プッシュ送信先情報に対応する端末が接続状態でない場合に，前記プッシュ送信先情報に対応する端末IDを付加して前記プッシュメッセージと前記プッシュ送信先情報とを前記第２のプッシュゲートウエイに転送し，
前記第２のプッシュゲートウエイは，前記転送されてきた端末IDに基づいて前記端末が接続状態にあるか否かチェックし，接続状態の場合に，前記プッシュメッセージを前記プッシュ送信先情報とともに前記接続状態の端末に送信するシームレスプッシュシステム。
【請求項６】
請求項５において，
前記端末は，前記ダウンロード部を複数有し，
前記端末は，前記送信されてきたプッシュメッセージを前記複数のダウンロード部のうち前記プッシュ送信先情報に対応するダウンロード部に渡し，前記プッシュメッセージを受信したダウンロード部が前記プッシュ送信先情報に対応するアプリケーションを前記アプリサーバからダウンロードするシームレスプッシュシステム。
【請求項７】
請求項１または４において，
前記端末が前記インターネットに接続可能な間，
前記第１のプッシュゲートウエイは，前記送信依頼されたプッシュメッセージの送信先端末が接続状態でないことに応答して，再送キューに前記送信依頼されたプッシュメッセージを格納し，さらに，前記第２のプッシュゲートウエイに前記送信依頼されたプッシュメッセージを転送し，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，前記プッシュメッセージの送信先端末が接続状態か否かチェックし，接続状態にある端末に対して，前記インターネットを介して前記プッシュメッセージを送信し，前記端末からのプッシュメッセージの受信通知に応答して，前記第１のプッシュゲートウエイにプッシュ送信完了通知を送信し，
前記第１のプッシュゲートウエイは，前記プッシュ送信完了通知に応答して，前記再送キュー内の前記プッシュメッセージを送信済みに変更するシームレスプッシュシステム。
【請求項８】
請求項７において，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，前記プッシュメッセージの送信先端末が接続状態か否かチェックし，前記プッシュメッセージの送信先端末が接続状態でない場合は，前記転送されたプッシュメッセージをデータベース内に保存せず，
前記第２のプッシュゲートウエイは，その後前記端末が前記インターネットを介して接続状態を構築したとき，前記第１のプッシュゲートウエイに当該接続を構築した端末に対する再送問い合わせを送信し，
前記第１のプッシュゲートウエイは，前記再送問い合わせに応答して，前記再送キュー内に格納されている前記接続を構築した端末に対するプッシュメッセージを，前記第２のプッシュゲートウエイに転送するシームレスプッシュシステム。
【請求項９】
イントラネット内に設けられ，プッシュメッセージの送信依頼に応答して，前記イントラネットを介して接続状態にある端末に前記プッシュメッセージを送信する第１のプッシュゲートウエイと，
インターネット内に設けられ，前記インターネットを介して前記端末と接続状態を維持可能な第２のプッシュゲートウエイとを有するプッシュシステムを使用して行うプッシュ方法であって，
前記端末が前記インターネットに接続可能な間，
前記第２のプッシュゲートウエイが，前記端末から前記インターネットを介して接続状態を構築され当該接続状態を維持する工程と，
前記第１のプッシュゲートウエイが，前記プッシュメッセージの送信依頼に応答して，前記第２のプッシュゲートウエイに前記プッシュメッセージを転送する工程と，
前記第２のプッシュゲートウエイが，前記プッシュメッセージの転送に応答して，前記接続状態にある端末に，前記インターネットを介して前記プッシュメッセージを送信する工程と，
前記プッシュメッセージを受信した端末と前記アプリサーバとの間に構築されたプライベートネットワークを介して，前記アプリサーバから，前記端末が前記プッシュメッセージに対応するアプリケーションをダウンロードする工程とを有するプッシュ方法。
【請求項１０】
請求項９において，
前記プッシュシステムは，前記イントラネット内に設けられ，前記端末からのアクセスに対応してアプリケーションを前記端末にダウンロードさせるアプリサーバを更に有し，
更に，
前記プッシュメッセージを受信した端末と前記アプリサーバとの間に構築されたプライベートネットワークを介して，前記アプリサーバが，前記端末に前記プッシュメッセージに対応するアプリケーションを送信する工程とを有するプッシュ方法。
【請求項１１】
請求項９において，
前記プライベートネットワークが構築されている間，前記第１のプッシュゲートウエイが，前記端末から前記プライベートネットワークを介して接続状態を構築され当該接続状態を維持し，前記第１のプッシュゲートウエイが，前記プライベートネットワークを介して前記端末にさらに別のプッシュメッセージを送信する工程を有するプッシュ方法。
【請求項１２】
請求項９において，
前記端末が前記インターネットに接続可能な間，
前記第１のプッシュゲートウエイが，前記送信依頼されたプッシュメッセージの送信先端末が接続状態でないことに応答して，再送キューに前記送信依頼されたプッシュメッセージを格納し，さらに，前記第２のプッシュゲートウエイに前記送信依頼されたプッシュメッセージを転送する工程と，
前記第２のプッシュゲートウエイが，前記プッシュメッセージの転送に応答して，前記プッシュメッセージの送信先端末が接続状態か否かチェックし，接続状態にある端末に対して，前記インターネットを介して前記プッシュメッセージを送信し，前記端末からのプッシュメッセージの受信通知に応答して，前記第１のプッシュゲートウエイにプッシュ送信完了通知を送信する工程と，
前記第１のプッシュゲートウエイが，前記プッシュ送信完了通知に応答して，前記再送キュー内の前記プッシュメッセージを送信済みに変更する工程とを有するプッシュ方法。
【請求項１３】
請求項１２において，
前記第２のプッシュゲートウエイが，前記プッシュメッセージの転送に応答して，前記プッシュメッセージの送信先端末が接続状態か否かチェックし，前記プッシュメッセージの送信先端末が接続状態でない場合は，前記転送されたプッシュメッセージをデータベース内に保存しない工程と，
前記第２のプッシュゲートウエイが，その後前記端末が前記インターネットを介して接続状態を構築したとき，前記第１のプッシュゲートウエイに当該接続を構築した端末に対する再送問い合わせを送信する工程と，
前記第１のプッシュゲートウエイが，前記再送問い合わせに応答して，前記再送キュー内に格納されている前記接続を構築した端末に対するプッシュメッセージを，前記第２のプッシュゲートウエイに転送する工程とを有するプッシュ方法。
【請求項１４】
イントラネット内に設けられ，プッシュメッセージの送信依頼に応答して，前記イントラネットを介して接続状態にある端末に前記プッシュメッセージを送信する第１のプッシュゲートウエイと，
インターネット内に設けられ，前記インターネットを介して前記端末と接続状態を維持可能な第２のプッシュゲートウエイとを有するプッシュシステムを使用してアプリケーションプッシュサービスを提供する方法であって，
前記端末が前記インターネットに接続可能な間，
前記第２のプッシュゲートウエイが，前記端末から前記インターネットを介して接続状態を構築され当該接続状態を維持する工程と，
前記第１のプッシュゲートウエイが，前記プッシュメッセージの送信依頼に応答して，前記第２のプッシュゲートウエイに前記プッシュメッセージを転送する工程と，
前記第２のプッシュゲートウエイが，前記プッシュメッセージの転送に応答して，前記接続状態にある端末に，前記インターネットを介して前記プッシュメッセージを送信する工程とを有するプッシュサービスを提供する方法。
【請求項１５】
イントラネット内に設けられ，インターネット内に設けられた第２のプッシュゲートウエイと通信可能な第１のプッシュゲートウエイであって，
プッシュメッセージの送信依頼に応答して，前記イントラネットを介して接続状態にある端末に前記プッシュメッセージを送信するプッシュメッセージ依頼受付部と，
前記イントラネットを経由して端末からの接続依頼に応答して前記端末と接続状態を構築する端末接続受付部と，
前記第２のプッシュゲートウエイと通信可能なゲートウエイ連携部とを有し，
前記第２のプッシュゲートウエイが前記端末から前記インターネットを介して接続状態を構築され，当該接続状態を維持している間，
前記第１のプッシュゲートウエイは，前記プッシュメッセージの送信依頼に応答して，前記第２のプッシュゲートウエイに前記プッシュメッセージを転送し，前記第２のプッシュゲートウエイに，前記接続状態にある端末に，前記インターネットを介して前記プッシュメッセージを送信させる第１のプッシュゲートウエイ。
【請求項１６】
請求項１５において，
前記プッシュメッセージを受信した端末によって前記イントラネット内のアプリサーバとプライベートネットワークを構築され，前記アプリサーバから前記端末に前記プッシュメッセージに対応するアプリケーションがダウンロードされ，
前記プライベートネットワークが構築されている間，前記第１のプッシュゲートウエイは，前記端末から前記プライベートネットワークを介して接続状態を構築され当該接続状態を維持し，前記第１のプッシュゲートウエイは，前記プライベートネットワークを介して前記端末にさらに別のプッシュメッセージを送信する第１のプッシュゲートウエイ。
【請求項１７】
請求項１５において，
前記第１のプッシュゲートウエイは，前記送信依頼されたプッシュメッセージの送信先端末が接続状態でないことに応答して，再送キューに前記送信依頼されたプッシュメッセージを格納し，さらに，前記第２のプッシュゲートウエイに前記送信依頼されたプッシュメッセージを転送し，
前記第２のプッシュゲートウエイでは，前記プッシュメッセージの転送に応答して，前記プッシュメッセージの送信先端末が接続状態か否かチェックされ，接続状態にある端末に対して，前記インターネットを介して前記プッシュメッセージが送信され，前記端末からのプッシュメッセージの受信通知に応答して，前記第１のプッシュゲートウエイにプッシュ送信完了通知が送信され，
前記第１のプッシュゲートウエイは，前記プッシュ送信完了通知に応答して，前記再送キュー内の前記プッシュメッセージを送信済みに変更する第１のプッシュゲートウエイ。
【請求項１８】
請求項１７において，
前記第２のプッシュゲートウエイでは，前記プッシュメッセージの転送に応答して，前記プッシュメッセージの送信先端末が接続状態か否かチェックされ，前記プッシュメッセージの送信先端末が接続状態でない場合は，前記転送されたプッシュメッセージがデータベース内に保存されず，
前記第２のプッシュゲートウエイでは，その後前記端末が前記インターネットを介して接続状態を構築したとき，前記第１のプッシュゲートウエイに当該接続を構築した端末に対する再送問い合わせが送信され，
前記第１のプッシュゲートウエイは，前記再送問い合わせに応答して，前記再送キュー内に格納されている前記接続を構築した端末に対するプッシュメッセージを，前記第２のプッシュゲートウエイに転送する第１のプッシュゲートウエイ。
【請求項１９】
請求項７または８において，
前記第１のプッシュゲートウエイは，前記第２のプッシュゲートウエイにアクセスして接続状態を確立し，前記第２のプッシュゲートウエイが前記第１のプッシュゲートウエイに返信を繰り返して前記接続状態を維持させ，
前記プッシュ送信完了通知または前記再送問い合わせを，前記維持させている接続状態を介して前記第２のプッシュゲートウエイが前記第１のプッシュゲートウエイに送信するシームレスプッシュシステム。
【請求項２０】
請求項７において，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に対するレスポンスで，前記プッシュ完了通知を送信するシームレスプッシュシステム。
【請求項２１】
請求項２０において，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，前記プッシュメッセージの送信先端末が接続状態か否かチェックし，前記プッシュメッセージの送信先端末が接続状態でない場合は，前記転送されたプッシュメッセージをデータベース内に保存せず，前記プッシュメッセージの転送に対するレスポンスで，前記送信先端末が接続状態でないことを送信し，
前記第１のプッシュゲートウエイは，その後，前記端末が前記インターネットを介して接続状態を構築したか否かを問い合わせる接続問い合わせコマンドを前記第２のプッシュゲートウエイに送信し，
前記第２のプッシュゲートウエイは，前記端末が前記インターネットを介して接続状態を構築している場合に，前記接続問い合わせコマンドに対するレスポンスで，前記接続状態を送信し，
前記第１のプッシュゲートウエイは，前記接続状態のレスポンスに応答して，前記再送キュー内に格納されている前記接続を構築した端末に対するプッシュメッセージを，前記第２のプッシュゲートウエイに転送するシームレスプッシュシステム。
【請求項２２】
請求項２０において，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，接続状態にある前記送信先端末に前記プッシュメッセージを送信し，前記送信先端末から受信確認が得られない場合に，前記プッシュメッセージの転送に対するレスポンスで，タイムアウトを送信し，
前記第１のプッシュゲートウエイは，その後，前記送信先端末からの受信確認を問い合わせる送信結果問い合わせコマンドを，前記第２のプッシュゲートウエイに送信し，
前記第２のプッシュゲートウエイは，前記送信先端末から受信確認を受信している場合に，前記送信結果問い合わせコマンドに対するレスポンスで，前記受信確認の受信を送信し，
前記第１のプッシュゲートウエイは，前記受信確認の受信に応答して，前記再送キュー内の前記プッシュメッセージを送信済みに変更するシームレスプッシュシステム。
【請求項２３】
請求項１において，
さらに，複数の第１のプッシュゲートウエイに対して共通に設けられた送信先情報生成サーバを有し，
前記端末からの要求に対応して前記複数の第１のプッシュゲートウエイが送信する送信先情報の生成要求に応答して，前記送信先情報サーバは，前記複数の第１のプッシュゲートウエイ間で重複することなく一意の送信先情報を生成し，前記送信先情報の生成要求を送信した第１のプッシュゲートウエイに返信するシームレスプッシュシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施の形態は，シームレスプッシュシステム及びその方法に関する。
【背景技術】
【０００２】
プッシュシステムは，どんな場所でも利用者が望むタイミングで，メッセージやアプリケーションプログラム（以下アプリケーション，または単にアプリと称する。）を利用者の端末に送り込むサービスを提供する。たとえば，端末が企業内のイントラネットに接続できる場合は，メッセージやアプリをイントラネット経由で送り込む。【０００３】
アプリプッシュについては，非特許文献１に記載されている。【０００４】
メッセージやアプリケーションを端末に送り込むためには，イントラネットに接続できる場合以外に，端末が企業のイントラネット外のインターネットに接続できる場合も，何らかの方法でアプリを送り込むことが求められる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３３１１２６号公報
【特許文献２】特開２００３−２２９８８０号公報
【特許文献３】特開平２−２７５５６３号公報
【特許文献４】特開２００２−１３５３５０号公報
【特許文献５】特許第４７０６１７８号
【非特許文献】
【０００６】
【非特許文献１】http://pr.fujitsu.com/jp/news/2011/07/19-1.html
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら，業務上利用されるアプリケーションには秘密情報が含まれる場合があるので，端末に送り込むアプリケーションはイントラネット内のサーバに格納するのがセキュリティの観点から必要である。また，アプリケーションをプッシュ送信するために，端末にプッシュメッセージを送信し，それに応答して端末にアプリケーションをダウンロードさせる。その場合のプッシュメッセージにもダウンロード先情報が含まれる場合があり，秘密情報保護の観点から，プッシュメッセージをイントラネット内のサーバに格納する必要がある。【０００８】
上記の場合において，端末がイントラネット外のインターネットに接続できる場合に，どのようにしてプッシュメッセージを送信し，アプリケーションをダウンロードさせるかが課題になる。【０００９】
そこで，本実施の形態の目的は，端末がイントラネット外のインターネットに接続できる場合も，シームレスにメッセージやアプリケーションを送り込むことができるシームレスプッシュシステム及びその方法を提供することにある。
【課題を解決するための手段】
【００１０】
シームレスプッシュシステムの第１の側面は，イントラネット内に設けられ，プッシュメッセージの送信依頼に応答して，前記イントラネットを介して接続状態にある端末に前記プッシュメッセージを送信する第１のプッシュゲートウエイと，インターネット内に設けられ，前記インターネットを介して前記端末と接続状態を維持可能な第２のプッシュゲートウエイとを有し，前記端末が前記インターネットに接続可能な間，前記第２のプッシュゲートウエイが，前記端末から前記インターネットを介して接続状態を構築され当該接続状態を維持し，前記第１のプッシュゲートウエイは，前記プッシュメッセージの送信依頼に応答して，前記第２のプッシュゲートウエイに前記プッシュメッセージを転送し，前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，前記接続状態にある端末に，前記インターネットを介して前記プッシュメッセージを送信する。
【発明の効果】
【００１１】
第１の側面によれば，端末がインターネットに接続可能な場合も，メッセージやアプリケーションを送り込むことができる。
【図面の簡単な説明】
【００１２】
【図１】プッシュシステムの概略を説明する図である。
【図２】シームレスプッシュシステムの概略を説明する図である。
【図３】図２のアプリプッシュシステムの概略動作を示すフローチャート図である。
【図４】本実施の形態におけるシームレスプッシュシステムの構成図である。
【図５】プッシュゲートウエイPri-PGW,Pub-PGWと端末DSのデータベースを示す図である。
【図６】本実施の形態におけるシームレスアプリプッシュシステムのイントラネット内の端末へのアプリプッシュ動作（１）を示す図である。
【図７】図６のアプリプッシュ動作を示すフローチャート図である。
【図８】本実施の形態におけるシームレスアプリプッシュシステムのイントラネット内の端末へのアプリプッシュ動作（２）を示す図である。
【図９】本実施の形態におけるシームレスアプリプッシュシステムのイントラネット内の端末へのアプリプッシュ動作（２）を示す図である
【図１０】図８，図９のアプリプッシュ動作を示すフローチャート図である。
【図１１】２つのプッシュゲートウエイ間で交換するコマンドを示す図である。
【図１２】本実施の形態におけるシームレスアプリプッシュシステムのインターネット内の端末へのアプリプッシュ動作（１）を示す図である。
【図１３】図１２のアプリプッシュ動作を示すフローチャート図である。
【図１４】図１２のアプリプッシュ動作を示すフローチャート図である。
【図１５】本実施の形態におけるシームレスアプリプッシュシステムのインターネット内の端末へのアプリプッシュ動作（２）を示す図である。
【図１６】本実施の形態におけるシームレスアプリプッシュシステムのインターネット内の端末へのアプリプッシュ動作（２）を示す図である。
【図１７】図１５，図１６のアプリプッシュ動作を示すフローチャート図である。
【図１８】図１５，図１６のアプリプッシュ動作を示すフローチャート図である。
【図１９】図１５，図１６のアプリプッシュ動作を示すフローチャート図である。
【図２０】図４に示されたプライベートプッシュゲートウエイPri-PGWと，パブリックプッシュゲートウエイPub-PGWと，端末SDのハードウエア構成を示す図である。
【図２１】第２の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（１）のフローチャート図である。
【図２２】第２の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（２）のフローチャート図である。
【図２３】第３の実施の形態におけるコマンド体系を示す図である。
【図２４】第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（１）の第１のフローチャート図である。
【図２５】第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（１）の第２のフローチャート図である。
【図２６】第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（１）の第２のフローチャート図である。
【図２７】第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（２）のフローチャート図である。
【図２８】第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（２）のフローチャート図である。
【図２９】第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（２）のフローチャート図である。
【図３０】マルチテナント型のプッシュサービスを示す図である。
【図３１】第４の実施の形態におけるシームレスプッシュシステムの構成図である。
【発明を実施するための形態】
【００１３】
［シームレスプッシュの概略］
図１は，プッシュシステムの概略を説明する図である。図１に示されたプッシュシステムは，企業内や学校内などのイントラネットNET1内に構築される。イントラネットNET1は，外部のインターネットNET2からファイアウオールなどのゲートウエイGWで保護されている。そこで，プッシュシステムは，イントラネットNET1内に，プッシュメッセージの送信を依頼するプッシュ依頼者装置Pu-reqと，利用者の端末SDにプッシュメッセージを送信するプッシュゲートウエイPGWと，端末SDにアプリケーションを送信するアプリサーバApp-serとを有し，これらはイントラネットNET1を介して互いに接続可能になっている。
【００１４】
プッシュ依頼者装置Pu-reqは，アプリケーションを利用者の端末SDにプッシュ送信するサービスを提供するサービスプロバイダのサーバまたは端末である。プッシュ依頼者装置Pu-reqは，プッシュメッセージをプッシュゲートウエイPGWに依頼する。プッシュメッセージは，端末にアプリケーションをダウンロードさせるトリガになるメッセージであり，例えばダウンロード先情報を有している。プッシュゲートウエイPGWは，依頼されたプッシュメッセージを利用者の端末SDにプッシュ通信するサーバである。そして，アプリサーバApp-serは，利用者の端末SDにアプリケーションを送信するサーバである。さらに，利用者の端末SDは，例えばスマートフォン，スマートパッド端末，PCなどであり，どこにでも移動可能な端末であり，これらを総称して例えばスマートデバイス（Smart
Device : SD）と称する。端末SDは，イントラネット内またはインターネット内の無線LANとWiFi接続することができるとともに，3G公衆電話網を介してインターネットに接続することもできる。
【００１５】
プッシュゲートウエイPGWと端末SDとはTCPプロトコル等による接続状態を確立し，その接続状態を維持することができる。このように端末SDを常時接続状態にすることで，プッシュゲートウエイPGWは，いつでもプッシュメッセージを端末SDにプッシュ送信できる。また，プッシュメッセージが端末SDにプッシュ送信された時に，端末SDは，アプリサーバApp-serと接続し，プッシュメッセージに対応するアプリケーションをアプリサーバApp-serからダウンロードし，端末SDで実行する。
【００１６】
概略的な動作は，次のとおりである。あらかじめ，端末SDは，プッシュゲートウエイPGWとの間で接続を確立し，その接続状態を維持している。まず，プッシュ依頼者装置Pu-reqは，プッシュメッセージの送信をプッシュゲートウエイPGWに送信する。このプッシュメッセージには，どの端末SDにプッシュ送信すべきかを示すプッシュ送信先情報が添付されている。それに応答して，プッシュゲートウエイPGWは，接続状態を維持しているプッシュ送信先の端末SDに，プッシュメッセージを送信する。
【００１７】
プッシュメッセージには，ダウンロード先のURLなどの情報が埋め込まれている。端末SD内のダウンロードアプリケーションは，プッシュメッセージのダウンロード先情報に基づいて，アプリサーバApp-serと接続し，対応するアプリケーションをダウンロードする。そして端末SDは，ダウンロードされたアプリケーションを端末SDで実行する。
【００１８】
上記のように，利用者の端末SDは，プッシュゲートウエイPGWとの間で接続状態を維持してれば，いつでもプッシュメッセージを受信し，対応するアプリケーションをダウンロードし実行することができる。これによってアプリケーションのプッシュサービスが可能になる。業務で利用するアプリケーションには企業の秘密情報が含まれているが，アプリサーバApp-serはセキュリティ性の高いイントラネットNET1内に設置されているので，秘密情報漏洩のリスクは低い。さらに，プッシュメッセージにも，アプリケーションのダウンロード先のURLなど秘密情報が含まれているが，プッシュ依頼者装置Pu-reqもイントラネットNET1内に設置されるので，セキュリティ上の問題は少ない。さらに，プッシュゲートウエイPGWも，プッシュメッセージを送信するためのプッシュ送信先情報や，プッシュ依頼者のID,パスワードPWなどを保持しておく必要があるが，イントラネットNET1内に設置されているので，セキュリティ上の問題は少ない。
【００１９】
いつでもアプリケーションを端末SDに送り込むための条件として，端末SDがプッシュゲートウエイPGWと接続状態を維持していることがある。一方，前述のとおり，プッシュゲートウエイPGWはイントラネットNET1内に設置されている。そのため，端末SDがイントラネットNET1からインターネットNET2に移動した場合に，端末SDとプッシュゲートウエイPGW間の接続状態を維持することは，イントラネットのゲートウエイGWに阻まれるため課題が残る。さらに，インターネットNET2に移動した端末SDが，アプリサーバApp-serからアプリケーションをダウンロードすることも，ゲートウエイGWによるファイアウオールの問題がある。
【００２０】
たとえば，端末SDがインターネットNET2に接続している間は，端末SDが，バーチャルプライベートネットワークVPNによりイントラネットNET1内のプッシュシステムと通信経路を構築し，プッシュゲートウエイPGWと常時接続状態にしておくことが考えられる。しかし，社外のインターネット内の端末SDが張ったVPNを介して，第三者がイントラネットNET1内にアクセスすることが考えられ，セキュリティ上問題が残る。
【００２１】
［シームレスプッシュシステムの概略］
図２は，シームレスプッシュシステムの概略を説明する図である。図２のプッシュシステムによれば，利用者の端末SDがインターネットNET2に移動した場合でも，端末SDにアプリケーションをシームレスに送り込むことができる。
【００２２】
図２において，イントラネットNET1でのプッシュ依頼者装置Pu-reqと，アプリサーバApp-serは，図１と同じである。図１と異なる構成は，イントラネットNET1内にプライベートプッシュゲートウエイPri-PGWを設置し，インターネットNET2内にパブリックプッシュゲートウエイPub-PGWを設置していることである。そして，両ゲートウエイPri-PGW，Pub-PGWとが所定のコマンドを送受信できるように連携しあっている。
【００２３】
そして，特徴的な点は例えば次の通りである。第１に，インターネットNET2内の端末SDは，パブリックプッシュゲートウエイPub-PGWにインターネットNET2を介してアクセスして，TCPプロトコルなどによる接続を確立して，その接続状態を保持することができる。
【００２４】
第２に，プライベートプッシュゲートウエイPri-PGWは，プッシュメッセージの送信先情報や，プッシュ依頼者情報や，再送待ちのプッシュメッセージなどを記憶しているデータベースPri-DBを有するのに対して，インターネットNET2に設置されているパブリックプッシュゲートウエイPub-PGWのデータベースPub-DBは，そのような秘密情報は保持しない。パブリックプッシュゲートウエイPub-PGWのデータベースPub-DBは，接続状態にある端末SDのデバイスIDなど秘密性の少ないまたはない情報のみ格納する。この接続状態を利用して，プライベートプッシュゲートウエイPri-PGWは，パブリックプッシュゲートウエイPub-PGWとインターネットNET2経由でプッシュメッセージを端末SDにプッシュ送信することができる。
【００２５】
第３に，端末SDは，プッシュメッセージを受信したときに，イントラネットNET1内のプッシュシステムのアプリサーバApp-serにバーチャルプライベートネットワークVPNを張り，VPNの通信経路を経由してアプリサーバApp-serからアプリケーションをダウンロードする。しかも，VPNを張っている間もプッシュメッセージをプッシュ受信できるようにするために，端末SDはVPNを経由してプライベートプッシュゲートウエイPri-PGWと接続を確立してその接続状態を維持する。
【００２６】
このVPNは，インターネット上の端末から特定のローカルエリアネットワーク（LAN)へ接続するための技術であり，インターネットを利用したVPNのうちリモート型VPNと称されるものである。VPNは，のぞき見や改ざんなどの不正アクセスを防ぎ，安全な通信を可能にする技術であり，インターネットなどのパブリックネットワークを使って実現したプライベートネットワークである。VPNは，パケットをカプセル化してトンネリングで送信するとともに，パケットを暗号化することが一つの特徴である。図２の例では，インターネット上の端末SDがイントラネット内のアプリサーバに接続して安全な通信経路を得るために，VPNが構築される。
【００２７】
［アプリプッシュの概略動作］
図３は，図２のアプリプッシュシステムの概略動作を示すフローチャート図である。まず，両プッシュゲートウエイPri-PGW，Pub-PGWが起動し（ST1），初期登録を行う（ST2）。初期登録では，プライベートプッシュゲートウエイPri-PGWは，連携相手のパブリックプッシュゲートウエイPub-PGWのIPアドレス，プッシュ依頼者装置のIDとパスワードPW，プッシュ送信先情報（destination
ID）を設定する。また，端末SDは，前記プッシュ先情報，両プッシュゲートウエイPri-PGW，Pub-PGWのIP情報などを設定する。そして，パブリックプッシュゲートウエイPub-PGWは，連携相手のプライベートプッシュゲートウエイPri-PGWのIPアドレスを設定する。プッシュ送信先情報（destination
ID, dest）は，例えばどの端末内のどのダウンロードアプリケーションかを示す情報，または，簡易的に端末ID(device ID)であってもよい。
【００２８】
次に，プッシュメッセージが送信される（ST3）。具体的には，端末SDはあらかじめプッシュゲートウエイPGWと接続を確立しその接続状態を維持する（ST3-1）。そして，プッシュ依頼者装置Pu-reqがプッシュメッセージの送信依頼をプッシュゲートウエイPGWに送信し（ST3-2），プッシュゲートウエイPGWが接続中の端末SDにプッシュメッセージをプッシュ送信する（ST3-3)。
【００２９】
それに応答して，端末SDは，アプリサーバApp-serにアクセスしてアプリケーションをダウンロードし，実行する（ST4)。端末SDによるダウンロードと実行は，専用のアプリケーションにより自動的に行われる。
【００３０】
以上のように，図２のシームレスプッシュシステムは，初期登録ST2と，プッシュメッセージの送信ST3と，プッシュメッセージに基づくアプリケーションのダウンロードと実行ST4とにより，アプリプッシュサービスを提供する。以下，端末がインターネット内に移動した場合の動作について概略を説明する。
【００３１】
［端末SDがイントラネット内にある場合］
端末SDがイントラネットNET1内にある場合は，イントラネットに接続可能な状態である。この場合，図１で説明したようにして，プライベートプッシュゲートウエイPri-PGWが，依頼されたプッシュメッセージを，予め接続状態にある端末SDにプッシュ送信し，それに応答して端末SDがイントラネットを経由してアプリサーバPri-serに接続してアプリケーションをダウンロードしインストールする。
【００３２】
［インターネット内の端末SDが接続状態の場合］
端末SDがインターネットNET2内にある場合は，インターネットに接続可能な状態である。この場合にアプリケーションが送り込まれる動作について説明する。まず，事前に，プライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWとの間で，互いのIPアドレスなどの情報が交換され，それぞれに設定される。また，プライベートプッシュゲートウエイPri-PGWには，プッシュメッセージの送信先であるプッシュ送信先情報や，プッシュ依頼者情報などがあらかじめ設定され，データベースPub-DBに格納され，端末SDにもプッシュ送信先情報が設定される。なお，端末SDは端末ID(device
ID)を有している。
【００３３】
そして，インターネットNET2に3GやWiFiにより接続可能な端末SDは，パブリックプッシュゲートウエイPub-PGWとTCPプロトコルによる接続を確立し，その接続状態を維持しておく。この接続端末情報は，パブリックプッシュゲートウエイPub-PGWのデータベースPub-DB内に記録されている。この状態で，プッシュ依頼者装置Pu-reqがプッシュメッセージの依頼（プッシュ依頼）をプライベートプッシュゲートウエイPri-PGWに送信する。この場合，端末SDは，イントラネット外にあるので，プライベートプッシュゲートウエイPri-PGWとは接続状態を維持していない。そこで，プライベートプッシュゲートウエイPri-PGWは，パブリックプッシュゲートウエイPub-PGWに対してプッシュメッセージの転送コマンド（プッシュ転送コマンド）をプッシュメッセージと共に送信する。このプッシュ転送コマンドは，例えばHTTPプロトコルにより送信される。
【００３４】
このプッシュ転送コマンドに応答して，パブリックプッシュゲートウエイPub-PGWは，データベースPub-DBを参照して，プッシュメッセージ送信先の端末SDが接続状態にあることを確認し，その端末SDにプッシュメッセージをプッシュ送信する。これに応答して，端末SDは，イントラネットNET1内のアプリサーバApp-serとバーチャルプライベートネットワークVPNを構築し，プッシュメッセージに埋め込まれているURLにアクセスして，アプリケーションを自動でダウンロードする。そして，ダウンロードしたアプリケーションを，端末SDは実行する。
【００３５】
上記のように，端末SDがインターネットNET2に接続可能な間も，プライベートプッシュゲートウエイPri-PGWは，いつでもプッシュメッセージを端末SDにプッシュ送信することができ，アプリケーションを送り込むことができる。しかも，端末SDの常時接続状態は，ゲートウエイGWを経由することなく，インターネットNET2内に設置されているパブリックプッシュゲートウエイPub-PGWに対して確立される。そして，アプリケーションをダウンロードするときだけ，端末SDはイントラネットNET1内のプッシュシステムとプライベートネットワークVPNを張るので，セキュリティ性を高く保つことができる。そして，インターネットNET2内に設置されるパブリックプッシュゲートウエイPub-PGWは，端末SDとの接続情報（接続状態にある端末ID(device
ID)）しか保持せず，プッシュメッセージや，プッシュ送信先情報やプッシュ依頼者情報などの秘密性のある情報を保持する必要はない。
【００３６】
［インターネット内の端末SDが非接続状態の場合］
さらに，図２のシームレスプッシュシステムでは，端末SDとパブリックプッシュゲートウエイPub-PGWとの間で接続が維持されていない場合でも，その後接続が確立されたときに，それに応答して，プライベートプッシュゲートウエイPri-PGWのデータベースPri-DB内の再送キューに格納されている未送信のプッシュメッセージをプッシュ送信することができる。
【００３７】
その動作の概略は次のとおりである。前述のとおり，初期登録がなされた後，プッシュ依頼者装置Pu-reqがプッシュメッセージの送信依頼をプライベートプッシュゲートウエイPri-PGWに送信する。送信先端末SDがイントラネットNET1経由で接続状態にないため，プライベートプッシュゲートウエイPri-PGWは，そのデータベースPri-DB内の再送キューにそのプッシュメッセージとプッシュ送信先情報とを格納する。そして，プライベートプッシュゲートウエイPri-PGWは，プッシュ転送コマンドをパブリックプッシュゲートウエイPub-PGWに送信する。
【００３８】
パブリックプッシュゲートウエイPub-PGWは，端末SDがインターネットNET2を介して接続状態にあれば，転送されてきたプッシュメッセージをプッシュ送信し，それに対して，端末SDからプッシュ送信のアクノリッジACKを受信すれば，プッシュ送信完了通知コマンドをプライベートプッシュゲートウエイPri-PGWに送信する。それに応答して，プライベートプッシュゲートウエイPri-PGWは，データベースPri-DB内の再送キューに格納したプッシュメッセージを送信済みにする。
【００３９】
しかし，端末SDがパブリックプッシュゲートウエイPub-PGWと接続を確立していない場合は，パブリックプッシュゲートウエイPub-PGWは，転送されてきたプッシュメッセージを端末SDにプッシュ送信できない。そのため，プッシュ送信完了通知コマンドがプライベートプッシュゲートウエイPri-PGWに送信されず，データベースPri-DB内の再送キューにはプッシュメッセージが残ったままになる。
【００４０】
そして，端末SDが，電源をOFFからONにしたり，インターネットに接続可能な場所に移動したりして，インターネットNET2に接続可能な状態になると，端末SDが，パブリックプッシュゲートウエイPub-PGWにTCPプロトコルによる接続を確立する。この端末SDの接続に応答して，パブリックプッシュゲートウエイPub-PGWは，新たに接続された端末SD宛のプッシュメッセージが再送待ちか否かを問い合わせる再送問い合わせコマンドを，プライベートプッシュゲートウエイPri-PGWに送信する。
【００４１】
そして，プライベートプッシュゲートウエイPri-PGWは，データベースPri-DB内の再送キューをチェックし，再送キュー内に問い合わせされた端末SD宛の再送待ちのプッシュメッセージが格納されていれば，プッシュ転送コマンドをパブリックプッシュゲートウエイPub-PGWに送信する。これに応答して，パブリックプッシュゲートウエイPub-PGWは，転送されてきたプッシュメッセージを端末SDにプッシュ送信する。その後は，端末SDがアプリサーバApp-serにVNPを確立し，アプリケーションをダウンロードし実行する。
【００４２】
上記の動作中，プッシュ転送コマンドを受信したパブリックプッシュゲートウエイPub-PGWは，そのとき端末SDが接続を確立していない場合，転送されてきたプッシュメッセージをそのデータベースPub-DB内に格納することはせず破棄し，秘密情報がインターネット上に晒されることを回避している。
【００４３】
また，端末SDがイントラネット内のプッシュシステムとVPNを張っている間においても，プッシュメッセージをプッシュ送信可能にするために，端末SDは，そのVPNを経由して，イントラネット内のプライベートプッシュゲートウエイPri-PGWと接続を確立し，その接続状態を維持することが望ましい。これにより，アプリケーションをダウンロード中も，プッシュメッセージを受信することができる。
【００４４】
さらに，プライベートプッシュゲートウエイPri-PGWは，プッシュ転送コマンドを送信した後，プッシュ送信完了通知を受信しない場合は，定期的にプッシュ転送コマンドの送信を繰り返すようにしてもよい。または，再送問い合わせコマンドを受信したときに再送キュー内にあるプッシュメッセージをプッシュ転送コマンドで送信することと，再送キュー内にあるプッシュメッセージについて定期的にプッシュ転送コマンドを送信することとを組み合わせても良い。
【００４５】
以上のとおり，図２によりシームレスプッシュシステムによれば，インターネット内に移動してきた端末SDに対しても，イントラネット内のシステムのイントラネット外部からのセキュリティ性を保ちながら，いつでもまたは端末SDがインターネットで接続してきたときに，プッシュメッセージをプッシュ送信してアプリケーションを送り込むことができる。
【００４６】
以下，第１の実施の形態におけるシームレスプッシュシステムとその動作について具体的に説明する。
【００４７】
［第１の実施の形態］
［シームレスプッシュシステムの構成］
図４は，本実施の形態におけるシームレスプッシュシステムの構成図である。図２と同様に，イントラネットNET1内には，プッシュメッセージの送信を依頼するプッシュ依頼者装置Pu-reqと，プッシュメッセージをプッシュ送信先の端末SDに送信するプライベートプッシュゲートウエイPri-PGWと，アプリケーションを端末SDにダウンロードするアプリサーバApp-serとが設けられている。
【００４８】
一方，インターネットNET2内には，プッシュメッセージをプッシュ送信先の端末SDに送信するパブリックプッシュゲートウエイPub-PGWを有する。そして，端末SDは，イントラネットNET1内に位置している間はイントラネットに接続され，インターネットNET2内に位置している間はインターネットに接続される。イントラネットNET1とインターネットNET2との間には，ファイアウオールを構成するゲートウエイGWが設けられ，イントラネットNET1内のセキュリティが保たれている。
【００４９】
プライベートプッシュゲートウエイPri-PGWは，プッシュ依頼者装置Pu-reqからプッシュメッセージの送信依頼を受け付けるプッシュ依頼受付部１１と，イントラネット内の端末SDのプッシュ受信部３１からTCPプロトコルなどによる接続要求を受け付けて，そのイントラネットを介した接続状態を維持し，プッシュメッセージを接続中の端末SDに送出する端末接続受付部１２と，プッシュメッセージの転送やプッシュメッセージの送信ステータスの同期をパブリックプッシュゲートウエイPub-PGWと連携して行うゲートウエイ連携部１０と，秘密情報やプライベート情報を含む必要なデータを保存するデータベースPri-DBとを有する。プッシュ依頼受付部１１と，端末接続受付部１２と，ゲートウエイ連携部１０は，ソフトウエアをサーバにインストールすることによって実現される。
【００５０】
アプリサーバApp-serは，端末に送り込むアプリケーションのデータベースを保持し，端末SDのアプリダウンロード部３３からのアプリケーションダウンロードを受け付けるアプリダウンロード部（図示せず）を有する。
【００５１】
一方，パブリックプッシュゲートウエイPub-PGWは，端末接続受付部２２と，ゲートウエイ連携部２０と，データベースPub-DBとを有する。これらは，ソフトウエアをサーバにインストールすることで実現される。端末接続受付部２２は，インターネット内の端末SDのプッシュ受信部３１からTCPプロトコルなどによる接続要求を受け付けて，そのインターネットを介した接続状態を維持し，転送されてきたプッシュメッセージを接続中の端末SDに送出する。ゲートウエイ連携部２０は，プッシュメッセージの転送やプッシュメッセージの送信ステータスの同期をプライベートプッシュゲートウエイPri-PGWと連携して行う。データベースPub-DBは，秘密情報やプライベート情報を除いた必要なデータを保存する。このデータベースPub-DBは，連携するプライベートプッシュゲートウエイPri-PGWのIPアドレスなどの情報（連携GW情報）と，端末接続受付部２２にインターネットを介して接続状態を構築した端末SDの情報（接続端末情報）とを有する。
【００５２】
そして，端末SDは，プライベートプッシュゲートウエイPri-PGWまたはパブリックプッシュゲートウエイPub-PGWとTCPプロトコルにより接続を構築し，その接続状態を維持し，プッシュメッセージを受信し，受信したプッシュメッセージを処理するプッシュ受信部３１を有する。この処理は，プッシュメッセージに含まれている必要な情報をアプリダウンロード部３３や接続管理部３０などに供給する処理などである。
【００５３】
さらに，端末SDは，プッシュ受信部３１からプッシュメッセージに埋め込まれているダウンロード先のURL情報を取得して，アプリサーバApp-serからアプリケーションをダウンロードするアプリダウンロード部３３と，各種接続の管理を行う接続管理部３０と，接続管理部３０からの指示によりイントラネットNET1内のアプリサーバApp-serとVPNを構築するVPN接続確立部３２とを有する。端末SD内のプッシュ受信部３１と，アプリダウンロード部３３と，接続管理部３０と，VPN接続確立部３２は，いずれもソフトウエアを端末コンピュータまたはスマートデバイスにインストールすることで実現される。
【００５４】
接続管理部３０は，プライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWのIPアドレスなどの情報と，端末ID（device
ID）と，プッシュ送信先情報(destination ID)をデータベースSD-DBに保持し，端末が接続中のネットワークに応じてプッシュ受信部３１がいずれのプッシュゲートウエイに接続するか，アプリケーションのダウンロードにVPN接続が必要な否かを判断する。
【００５５】
接続管理部３０は，端末が接続中のネットワークの判断を次のように行う。端末SDが3Gなどの携帯電話網を経由してインターネットNET2に接続している場合は，接続管理部３０はインターネットNET2に接続していると判断し，パブリックプッシュゲートウエイPub-PGWの端末受付接続部２２にインターネットを介してTCPプロトコルによる接続を構築する。また，端末SDがWiFiなどで無線LANに接続している場合は，接続管理部３０は，接続先の無線LANのアクセスポイントの識別情報（SSID）が，予め登録してあるイントラネットNET1内のアクセスポイントと一致する場合は，イントラネットNET1に接続していると判断し，プライベートプッシュゲートウエイPri-PGWの端末受付接続部１２にTCPプロトコルによる接続を構築する。また，接続管理部３０は，接続先の無線LANのSSIDが上記登録済みのアクセスポイントと一致しない場合は，インターネットNET2に接続していると判断し，パブリックプッシュゲートウエイPub-PGWの端末受付接続部２２にTCPプロトコルによる接続を構築する。
【００５６】
接続管理部３０は，アプリケーションをダウンロードする際に，イントラネットNET1に接続している場合はVPNの構築が不必要と判断し，インターネットNET2に接続している場合は必要と判断する。
【００５７】
プライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWの端末接続受付部１２，２２と，端末SDのプッシュ受信部３１とは，TCPプロトコルにより接続を構築すると，ソケット接続が完了した状態になり，そのソケット接続（IPアドレスとポート番号）を特定するソケット記述子が，接続を構築した端末ID（device）と共に，各データベースPri-DB,
Pub-DB, SD-DBに保存される。
【００５８】
このソケット接続が構築されると，両プッシュゲートウエイと端末SDとはソケット通信でデータの送受信を行うことができる接続状態が維持される。例えば，プライベートプッシュゲートウエイPri-PGWの端末接続受付部１２は，ソケット通信の要求を待ち受ける状態になっていて，端末SDがソケット通信の接続要求を行う。端末SDは，この接続要求を電源起動時やインターネットやイントラネットと接続した時に自動で行うことが望ましい。ただし，設定によって利用者の手動により行うようにすることも可能である。
【００５９】
このTCPプロトコルによるソケット接続の状態は，一般に携帯電話網や無線LANの接続が途切れない限りは維持される。ただし，携帯電話網の場合，そのキャリアによっては一定時間通信を行わないと接続状態を切ることがあり，そのような場合は，端末SDのプッシュ受信部３１は，定期的に端末接続受付部１２，２２と通信して，接続状態を保つようにする。
【００６０】
端末SD内のプッシュ受信部３１と，VPN接続確立部３２と，アプリダウンロード部３３は，端末SDにそれぞれのアプリケーションをインストールすることにより実現される。VPN接続確立部３２は，アプリサーバApp-serへのバーチャルプライベートネットワークVPNを構築する処理を行う。例えば，「Android
VPN Framework」を利用して実現可能である。
【００６１】
アプリダウンロード部３３は，構築したVPNを介してアプリサーバApp-serからアプリケーションをダウンロードする処理を行う。
【００６２】
そして，プッシュ受信部３１は，上記のTCPプロトコルによる通信を構築し維持する処理に加えて，VPNが構築されている間プライベートプッシュゲートウエイPri-PGWと接続を構築する処理を行う。これは，VPNが構築されると，端末SDはインターネット接続を行うことができなくなり，その間プッシュメッセージを送信依頼された時に即時にプッシュメッセージを受信することができなくなるからである。
【００６３】
［データベース内のデータについて］
図５は，プッシュゲートウエイPri-PGW,
Pub-PGWと端末DSのデータベースを示す図である。プライベートプッシュゲートウエイPri-PGWのデータベースPri-DBには，プッシュ依頼者情報D1と，プッシュメッセージの送信先情報であるプッシュ送信先情報D2と，再送キューD3と，送信済みプッシュメッセージを有する送信済みプッシュD4と，接続端末情報D5と，連携ゲートウエイ情報D6（相手のPGWのIPアドレスなど）とが格納されている。データD1,D2,D3,D4には，秘密情報またはパーソナル情報が含まれている。
【００６４】
パブリックプッシュゲートウエイPub-PGWのデータベースPub-DBには，接続端末情報D5と，連携ゲートウエイ情報D6とが格納されている。これらの情報D5,D6は，秘密情報又はプライベート情報を有していない。
【００６５】
さらに，端末SDのデータベースSD-DBには，イントラネットに対応付けされたプライベートプッシュゲートウエイPri-PGWと，インターネットに対応付けられたパブリックプッシュゲートウエイPub-PGWのそれぞれのIPアドレスの情報D10,D11と，端末ID(device1)D12と，プッシュメッセージの送信先情報D13と，端末とプッシュゲートウエイPri-PGW，Pub-PGWとの間の接続情報D14とが格納されている。
【００６６】
プッシュ依頼者情報D1は，プッシュ依頼者装置Pu-reqがプライベートプッシュゲートウエイPri-PGWにプッシュメッセージの送信を依頼するときに必要な，プッシュ依頼者端末の識別情報P-IDと認証情報（パスワード）PWとを有する。これらのプッシュ依頼者情報D1に基づいて，プライベートプッシュゲートウエイPri-PGW内のプッシュ依頼受付部１１が，プッシュメッセージの送信依頼を認証する。プッシュ依頼者情報D1は，初期設定で予め登録される。
【００６７】
プッシュ送信先情報D2，D13は，プッシュメッセージを送信する送信先情報であり，どの端末内のどのアプリダウンロード部かを特定する情報（destination
ID: dest1, dest2, dest3など）である。この情報は，端末ID(device ID: device1, device2など)と対応付けて，データベースPri-DB内に格納される。端末SD内には，希望するアプリプッシュサービスに対応して単一または複数のアプリダウンロード部３３のアプリケーションがインストールされる。したがって，プッシュメッセージの送信先情報D2，D15は，どの端末SDのどのアプリダウンロード部かを識別可能な情報であることが望ましい。
【００６８】
端末SDが単一のアプリプッシュサービスしか受けないような場合は，プッシュメッセージの送信先情報D2はその端末SDの端末IDでもよい。ただし，端末IDは，各端末IDを識別するための情報であり，第三者から容易に抽出されうる情報である。したがって，端末IDをプッシュ送信先情報に使用すると，悪意のある第三者から希望しないアプリケーションを無差別に送り込まれる可能性がある。
【００６９】
図５の例では，端末SDが受けたいと宣言したアプリプッシュサービス毎にプッシュ送信先情報が与えられ，プライベートプッシュゲートウエイPri-PGWのデータベースPri-DBに，全てのプッシュ送信先情報D2が，端末IDと関連付けて保存される。図５に示された例によれば，端末IDがdevice1である端末に対するプッシュ送信先情報dest1,
dest2（dest1,device1, dest2,device1）と，端末IDがdevice3である端末に対するプッシュ先情報dest3（dest3,device2）が登録されている。
【００７０】
一方，端末SDのデータベースSD-DBには，その端末IDのデータD12としてdevice1が，その端末に登録されているプッシュ送信先情報D13としてdest1,
dest2が，それぞれ格納されている。
【００７１】
このプッシュ送信先情報は，端末IDとは異なり，アプリプッシュサービスと端末との間で取り決めた情報であり，秘密性が高い。そのため，悪意のある第三者から希望しないアプリケーションを送り込まれることは回避される。
【００７２】
再送キューD3には，プライベートプッシュゲートウエイPri-PGWのプッシュ依頼受付部１１がプッシュメッセージの送信依頼を受信したときに，そのプッシュメッセージの送信先情報dest1に対応する端末SDが接続状態でない場合に，そのプッシュメッセージpush2と，プッシュ送信先情報dest1とが格納される。
【００７３】
接続端末情報D5は，端末SDがプッシュゲートウエイPri-PGW,
Pub-PGWの端末接続受付部１２，２２に対してTCPプロトコルによる接続を構築した時の，接続先のIPアドレスとポート番号とを特定するソケット識別子socket1,
socket2と，それぞれの端末の端末ID(device1, device2)との対応を有する。図５の例では，データベースPri-DB, Pub-DBには，接続端末情報D5としてdevice1,socket1とdevice2,socket2とが格納されている。ただし，実際には，両方に同じ端末の接続端末情報が格納されることはない。また，図５の例では，端末のデータベースSD-DBには，端末接続情報D14としてsocket1が格納されている。
【００７４】
連携ゲートウエイ情報D6は，それぞれが連携する相手側のプッシュゲートウエイのIPアドレスである。図５の例では，プライベートプッシュゲートウエイPri-PGWにはIP1が，パブリックプッシュゲートウエイPub-PGWにはIP2が設定されている。
【００７５】
［イントラネット内の端末へのアプリプッシュ動作（１）］
図６は，本実施の形態におけるシームレスアプリプッシュシステムのイントラネット内の端末へのアプリプッシュ動作（１）を示す図である。図７は，そのアプリプッシュ動作を示すフローチャート図である。この例では，端末SDはイントラネットNET1内に位置していて，プライベートプッシュゲートウエイPri-PGW内の端末接続受付部１２とTCPプロトコルによる接続を構築している場合の動作である。
【００７６】
初期設定で，プライベートプッシュゲートウエイPri-PGWのデータベースPri-DBには，連携GW情報D6（Pub-PGW,IP2）と，プッシュ依頼者情報D1（ID,PW）と，プッシュ送信先情報D2(dest1,device1)とが登録されている。また，パブリックプッシュゲートウエイPub-PGWのデータベースPub-DBには，連携GW情報D6(Pri-PGW,IP1)が登録され，端末SDにはプッシュ送信先情報dest1が登録されている。
【００７７】
まず，イントラネットNET1を介してスマートデバイスである端末SDがプライベートプッシュゲートウエイPri-PGWの端末接続受付部１２にTCPプロトコルによる接続を要求し，接続を構築する（S0）。これにより，プライベートプッシュゲートウエイPri-PGWのデータベースPri-DBには，接続端末情報D5（device1,socket1）が登録される。
【００７８】
その後，プライベートプッシュゲートウエイPri-PGWのプッシュ依頼受付部１１は，プッシュ依頼者装置Pu-reqから，アプリプッシュメッセージの送信依頼を受信する（S1）。このアプリプッシュメッセージ送信依頼には，アプリプッシュメッセージpush1とプッシュ送信先情報dest1とが含まれる。
【００７９】
プッシュ依頼受付部１１は，データベースPri-DB内のプッシュ送信先情報D2を参照して，プッシュ送信先情報dest1に対応する端末ID（device1）を取得する。さらに，端末接続受付部１２は，接続端末情報D5を参照してその端末device1が接続状態を構築済みであることを確認する（S2）。そして，端末接続受付部１２は，そのソケット識別子socket1を利用して，端末SDにプッシュメッセージpush1をプッシュ送信先情報dest1と共にプッシュ送信する（S3）。
【００８０】
これに応答して，端末SDでは，ソケット識別子socket1によりプッシュメッセージpush1がプッシュ受信部３１に送信され，さらに，プッシュ送信先情報dest1により対応するアプリダウンロード部３３にプッシュメッセージpush1が渡される。そして，端末SDのプッシュ受信部３１は，プッシュメッセージの受信通知を返信する（S4）。プライベートプッシュゲートウエイPri-PGWの端末接続受付部１２は，この受信通知を受信し，プッシュメッセージpush1を送信済プッシュD4に登録することでプッシュ通信が完了したことを確認する。
【００８１】
その後，端末SDでは，接続管理部３０がイントラネットと接続されていることに基づいて，アプリサーバApp-serとVPNを構築せず，アプリダウンロード部３３が，プッシュメッセージ内のURLアドレスに基づいて，アプリサーバApp-serにアクセスして，アプリケーションをダウンロードし，実行する（S5）。
【００８２】
以上のように，イントラネットNET1に端末が接続可能になっている場合は，端末が初期動作でプライベートプッシュゲートウエイPri-PGWと接続状態を確立して維持しているので，プッシュメッセージの依頼が発生したタイミングで，端末にプッシュメッセージが送り届けられ，アプリケーションが自動的にダウンロードされる。
【００８３】
［イントラネット内の端末へのアプリプッシュ動作（２）］
図８，図９は，本実施の形態におけるシームレスアプリプッシュシステムのイントラネット内の端末へのアプリプッシュ動作（２）を示す図である。図１０は，そのアプリプッシュ動作を示すフローチャート図である。この例は，端末SDはイントラネットNET1内に位置しているが，またはイントラネット内に位置しておらず，プライベートプッシュゲートウエイPri-PGW内の端末接続受付部１２とは接続はまだ構築していない場合の動作である。
【００８４】
イントラネット内の端末へのアプリプッシュ動作（１）と同様に，初期設定で，プライベートプッシュゲートウエイPri-PGWのデータベースPri-DBには，連携GW情報D6（Pub-PGW,IP2）と，プッシュ依頼者情報D1（ID,PW）と，プッシュ送信先情報D2(dest1,device1)とが登録されている。また，パブリックプッシュゲートウエイPub-PGWのデータベースPub-DBには，連携GW情報D6(Pri-PGW,IP1)が登録され，端末SDにはプッシュ送信先情報dest1が登録されている。
【００８５】
この例では，スマートデバイスである端末SDは，プライベートプッシュゲートウエイPri-PGWに接続を確立しておらず，よって，データベースPri-DBの接続端末情報D5には端末SDは登録されていない（S0）。
【００８６】
図８に示すとおり，プライベートプッシュゲートウエイPri-PGWのプッシュ依頼受付部１１は，プッシュ依頼者装置Pu-reqから，アプリプッシュメッセージの送信依頼を受信する（S1）。このアプリプッシュメッセージ送信依頼は，アプリプッシュメッセージpush1とプッシュ送信先情報dest1とを含んでいる。
【００８７】
プッシュ依頼受付部１１は，データベースPri-DB内のプッシュ送信先情報D2を参照して，プッシュ送信先情報dest1に対応する端末ID（device1）を取得する。さらに，端末接続受付部１２は，取得した端末ID(device1)に基づいて，接続端末情報D5を参照し，その端末device1が接続状態を未だ構築していないことを確認する（S2）。そのため，プッシュ依頼受付部１１は，再送キューD3内に受信したプッシュメッセージ送信依頼（push1,
dest1）を追加する（S13）。
【００８８】
図９に示されるとおり，やがて，端末SDが，イントラネットNET1を介して，プライベートプッシュゲートウエイPri-PGWの端末接続受付部１２にTCPプロトコルによる接続を要求し，接続を構築する（S14）。これにより，端末接続受付部１２は，プライベートプッシュゲートウエイPri-PGWのデータベースPri-DBに，接続端末情報D5（device1,socket1）を登録する(S15)。
【００８９】
これに応答して，プッシュ依頼受付部１１は，プッシュ送信先情報D2を参照して，接続を確立した端末device1に対するプッシュ送信先情報dest1を抽出し，それに対応するプッシュメッセージが再送キューD3内に格納されているか否かをチェックする。この例では，再送キュー内にプッシュメッセージ（push1,dest1)が格納されていたため，プッシュ依頼受付部１１は，そのプッシュメッセージpush1をプッシュ送信先情報dest1宛にソケット識別子socket1によりプッシュ送信する（S16）。
【００９０】
これに応答して，端末SDでは，プッシュ受信部３１がプッシュメッセージpush1を受信し，さらに，プッシュ送信先情報dest1により対応するアプリダウンロード部３３にプッシュメッセージpush1が渡される。そして，端末SDのプッシュ受信部３１は，プッシュメッセージの受信通知を返信する（S17）。プライベートプッシュゲートウエイPri-PGWの端末接続受付部１２は，この受信通知を受信し，プッシュメッセージpush1のプッシュ通信が完了したことを確認し，再送キューD3内のプッシュメッセージpush1を送信済みプッシュD4に移動させ，再送キューD3から削除する（S18）。
【００９１】
その後，端末SDでは，接続管理部３０がイントラネット経由でプライベートプッシュゲートウエイPri-PGWと接続していることに基づいて，アプリサーバApp-serとVPNを構築せず，アプリダウンロード部３３が，プッシュメッセージ内のURLアドレスに基づいて，アプリサーバApp-serにアクセスして，アプリケーションをダウンロードし，実行する（S19）。
【００９２】
以上のように，イントラネットNET1に端末が接続可能になっている場合，仮にプッシュメッセージの送信依頼が発生したときに端末がプライベートプッシュゲートウエイPri-PGWと接続状態を確立していない場合でも，その後接続を確立したタイミングで，端末にプッシュメッセージが送り届けられ，アプリケーションが自動的にダウンロードされる。
【００９３】
［端末がインターネット内にある場合］
次に，端末SDがインターネットに接続可能な場合におけるシームレスプッシュシステムの動作について説明する。図２で概略説明したとおり，シームレスプッシュシステムは，インターネット上にパブリックプッシュゲートウエイPub-PGWを設置し，イントラネットNET1内のプライベートプッシュゲートウエイPri-PGWと，インターネットNET2内のパブリックプッシュゲートウエイPub-PGWとが連携しあうようにする。インターネット上にパブリックプッシュゲートウエイPub-PGWを設置することで，インターネットに接続可能な端末は，そのパブリックプッシュゲートウエイPub-PGWと接続を確立しその接続状態を維持することができる。
【００９４】
さらに，プライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWとを連携しあうことで，秘密情報や個人情報はプライベートプッシュゲートウエイPri-PGWのデータベースPri-DBに格納し，パブリックプッシュゲートウエイPub-PGWのデータベースPub-DBにはそのような情報は記憶させない。
【００９５】
そして，２つのプッシュゲートウエイ間には，以下のコマンドの交換により，プッシュメッセージを確実にプライベートプッシュゲートウエイPri-PGWからパブリックプッシュゲートウエイPub-PGWにタイムリーに転送できるようにし，インターネット上の端末SDにアプリプッシュが送り届けられるようにする。
【００９６】
図１１は，２つのプッシュゲートウエイ間で交換するコマンドを示す図である。図１１には，３つのコマンドと，その機能及び送信側PGWと受信側PGWとが示されている。これらのコマンドは，図４に示したプライベートプッシュゲートウエイPri-PGW内のGW連携部１０と，パブリックプッシュゲートウエイPub-PGW内のGW連携部２０との間で交換される。
【００９７】
プッシュ転送コマンドCM1は，プライベートプッシュゲートウエイPri-PGWがプッシュメッセージ送信依頼を受信した場合と，再送待ちキューに置かれているプッシュメッセージを再送する場合に，パブリックプッシュゲートウエイPub-PGWに送信するコマンドである。このコマンドには，プッシュメッセージ(push)と，プッシュ送信先情報(dest)と，端末ID(device)とが添付される。このプッシュメッセージの転送コマンドCM1の受信に応答して，パブリックプッシュゲートウエイPub-PGWは，端末ID(device)が接続を確立しているか否かをチェックし，接続を確立している場合は，その端末IDに対応するソケット情報(socket)に基づき，プッシュ送信先情報（dest)宛に，プッシュメッセージ（push1)を送信する。
【００９８】
再送問い合わせコマンドCM2は，パブリックプッシュゲートウエイPub-PGWに端末が接続を構築したときに，パブリックプッシュゲートウエイPub-PGWからプライベートプッシュゲートウエイPri-PGWに，その端末に対するプッシュメッセージが再送キュー内に格納されているか否かを問い合わせ，格納されている場合にそのプッシュメッセージの転送を要求するコマンドである。もし，再送キュー内に格納されている場合は，プライベートプッシュゲートウエイPri-PGWは，上記のプッシュ転送コマンドCM1によりそのプッシュメッセージをパブリックプッシュゲートウエイPub-PGWに転送する。
【００９９】
送信完了通知コマンドCM3は，プッシュ転送コマンドに応答して，パブリックプッシュゲートウエイPub-PGWが接続状態の端末にプッシュメッセージを送信し，端末からプッシュ受信通知を受信したとき，パブリックプッシュゲートウエイPub-PGWからプライベートプッシュゲートウエイPri-PGWに送信されるコマンドである。この送信完了通知コマンドCM3に応答して，プライベートプッシュゲートウエイPri-PGWは，再送キューD3に格納されていたプッシュメッセージを送信済みプッシュD4に移動させて，再送キューD3から削除する。
【０１００】
以下，端末がインターネット内に位置していて，パブリックプッシュゲートウエイPub-PGWと接続を構築済みの場合と，未だその接続を構築していない場合についてのアプリプッシュの動作を説明する。
【０１０１】
［インターネット内の端末へのアプリプッシュ動作（１）］
図１２は，本実施の形態におけるシームレスアプリプッシュシステムのインターネット内の端末へのアプリプッシュ動作（１）を示す図である。図１３，図１４は，そのアプリプッシュ動作を示すフローチャート図である。このアプリプッシュ動作（１）は，端末が既にパブリックプッシュゲートウエイPub-PGWの端末接続受付部２２と接続を構築している場合の動作である。なお，初期設定は，イントラネット内の端末へのアプリプッシュ動作（１）（２）と同様である。
【０１０２】
まず，スマートデバイスである端末SDは，インターネットと接続可能な状態にあり，パブリックプッシュゲートウエイPub-PGW内の端末接続受付部２２にTCPプロトコルによる接続を構築し，そのデータベースPub-DA内の接続端末情報D5にそのデバイスID(device1)とそのソケット情報（socket1）とが登録されている。
【０１０３】
その状態で，図８と同様に，プライベートプッシュゲートウエイPri-PGWのプッシュ依頼受付部１１は，プッシュ依頼者装置Pu-reqから，アプリプッシュメッセージの送信依頼を受信する（S1）。このアプリプッシュメッセージ送信依頼は，アプリプッシュメッセージpush1とプッシュ送信先情報dest1とを含んでいる。
【０１０４】
プッシュ依頼受付部１１は，データベースPri-DB内のプッシュ送信先情報D2を参照して，プッシュ送信先情報dest1に対応する端末ID（device1）を取得する。さらに，端末接続受付部１２は，取得した端末ID(device1)に基づいて，接続端末情報D5を参照し，その端末device1がイントラネット内で接続状態を未だ構築していないことを確認する（S2）。そのため，プッシュ依頼受付部１１は，再送キューD3内に受信したプッシュメッセージ送信依頼（push1,
dest1）を追加登録する（S23）。
【０１０５】
それと共に，ゲートウエイ連携部１０は，プッシュ送信先情報D2を参照して，プッシュメッセージ送信依頼のプッシュ送信先情報dest1に対応する端末ID(device1)を抽出し，プッシュ転送コマンドCM1をパブリックプッシュゲートウエイPub-PGW内のゲートウエイ連携部２０に送信する(S24)。このプッシュ転送コマンドCM1には，プッシュメッセージpush1，プッシュ送信先情報dest1，端末ID(device1)が含まれる。この時点では，端末SDがイントラネット内のプライベートプッシュゲートウエイPri-PGWと接続状態を構築していないとしか確認できず，インターネット内で接続状態を構築している可能性があるので，プッシュ転送コマンドCM1がパブリックプッシュゲートウエイPub-PGWに送信される。
【０１０６】
このプッシュ転送コマンドCM1に応答して，パブリックプッシュゲートウエイPub-PGW内の端末接続部２２は，データベースPub-DB内の接続端末情報D5を照会し，プッシュメッセージ送信先(dest1)の端末（device1)が接続中か否か確認する（S25)。この例では，工程S0で既に端末SDは接続を構築し維持している。
【０１０７】
そこで，パブリックプッシュゲートウエイPub-PGW内の端末接続部２２は，接続端末情報D5のソケット情報（socket1)により，プッシュ転送コマンドCM1と共に転送されてきたプッシュメッセージ（push1)を，プッシュ送信先情報(dest1)にプッシュ送信する（S26)。これに応答して，端末SDは，プッシュメッセージ受信のアクノリッジとして，プッシュ受信通知（push1)を端末接続部２２に返信する(S27)。
【０１０８】
このプッシュ受信通知に応答して，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０は，プライベートプッシュゲートウエイPri-PGWのゲートウエイ連携部１０に，送信完了通知コマンドCM3を送信する（S28)。この送信完了通知コマンドには，プッシュメッセージを特定する情報が含まれている。
【０１０９】
この送信完了通知コマンドCM3に応答して，プライベートプッシュゲートウエイPri-PGWのプッシュメッセージ依頼受付部１１は，データベースPri-DB内の送信キューD3内のプッシュメッセージ（push1)を，送信済みプッシュD4に移動する（S29)。これにより，プッシュメッセージが誤って２度送信されることは回避される。
【０１１０】
また，端末SDでは，上記のプッシュメッセージの送信S26に応答して，プッシュ受信部３１は，そのプッシュメッセージ（push1)をプッシュ送信先情報(dest1)に対応するアプリダウンロード部３３に転送する。さらに，接続管理部３０は，現在の端末SDがインターネットに接続していることを検出して，プッシュメッセージ(push1)に含まれているURLを参照して，VPN接続確立部３２に，イントラネットNET1内のアプリケーションサーバApp-serへのバーチャルプライベートネットワークVPNを構築させる（S30)。さらに，接続管理部３０は，このVPNを経由して，イントラネットNET1内のプライベートプッシュゲートウエイPri-PGWの端末接続部１２とTCPプロトコルによる接続を確立する(S30)。これにより，端末SDは，VPNによりアプリケーションサーバApp-serからアプリケーションをダウンロードしている間も，プッシュメッセージを受信可能になる。
【０１１１】
そして，端末SDのアプリダウンロード部３３は，VPNを経由して，アプリサーバApp-serからプッシュメッセージ内のURLに対応するアプリケーションをダウンロードし，実行する（S31)。
【０１１２】
上記のように，インターネット内にパブリックプッシュゲートウエイPub-PGWを設置することで，インターネットに接続可能な端末SDは，パブリックプッシュゲートウエイPub-PGWに接続状態を構築し維持することができる。したがって，プッシュメッセージの送信依頼を受信したタイミングで，端末はアプリケーションをダウンロードすることができる。
【０１１３】
また，インターネット内のパブリックプッシュゲートウエイPub-PGWのデータベースPub-DBには，接続を構築した端末をその端末ID(device1)で登録しているだけであり，プッシュメッセージ(push1)やプッシュ送信先情報(dest1)などの個人的な情報や秘密情報は登録していない。よって，インターネット内のパブリックプッシュゲートウエイPub-PGWのデータベースPub-DBから，そのような個人情報や秘密情報が漏洩するリスクは少ない。
【０１１４】
一方，端末SDのアプリケーションのダウンロード時は，端末SDがイントラネットNET1内のアプリケーションサーバApp-serにVPNを構築してアプリケーションをダウンロードするので，アプリケーションをイントラネット内のサーバに格納させることができる。しかも，端末SDは，ダウンロード中はVPNを介してプライベートプッシュゲートウエイPri-PGW内の端末接続受付部１２と接続を構築するので，ダウンロード中もプッシュメッセージを受信することができる。
【０１１５】
［インターネット内の端末へのアプリプッシュ動作（２）］
図１５，図１６は，本実施の形態におけるシームレスアプリプッシュシステムのインターネット内の端末へのアプリプッシュ動作（２）を示す図である。図１７，図１８，図１９は，そのアプリプッシュ動作を示すフローチャート図である。このアプリプッシュ動作（２）は，端末が，当初パブリックプッシュゲートウエイPub-PGWの端末接続受付部２２と接続状態を構築しておらず，その後接続状態を構築する場合の動作である。なお，初期設定は，イントラネット内の端末へのアプリプッシュ動作（１）（２）と同様である。
【０１１６】
図１５，図１７に示されるとおり，まず，スマートデバイスである端末SDは，インターネットNET2内のパブリックプッシュゲートウエイPub-PGWとは未だ接続状態を構築していない（S0)。そして，プライベートプッシュゲートウエイPri-PGWのプッシュ依頼受付部１１が，プッシュ依頼者装置Pu-reqからプッシュメッセージ送信依頼を受信する工程（S1)から，プライベートプッシュゲートウエイPri-PGW内のゲートウエイ連携部１０がプッシュ転送コマンドCM1をパブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０に送信する工程(S24)までは，インターネット内の端末へのアプリプッシュ動作（１）と同様である。
【０１１７】
パブリックプッシュゲートウエイPub-PGWでは，プッシュ転送コマンドCM1に応答して，端末接続受付部１２がデータベースPub-DB内の接続端末情報D5を照会し，プッシュ転送コマンドCM1に添付されている端末ID（device1)が既に接続を構築しているか否かをチェックし，未接続であることを確認する（S35)。それに伴って，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０は，プッシュ転送コマンドCM1に添付されていたプッシュメッセージpush1，プッシュ送信先dest1を破棄する。つまり，これらの個人情報や秘密情報が含まれている情報はデータベースPub-DBには格納しない。
【０１１８】
なお，プッシュ転送コマンドCM1に添付されていた端末ID（device1）は，破棄してもよいし，後述するとおりデータベースPub-DB内にプッシュ転送コマンドで通知された端末IDとして格納してもよい。
【０１１９】
次に，図１６，図１８，図１９に示されるとおり，スマートデバイスである端末SDが，インターネットを介して，パブリックプッシュゲートウエイPub-PGWの端末接続受付部２２にTCPプロトコルで接続を確立する（S41)。この接続確立により，端末接続受付部２２は，データベースPub-DB内の接続端末情報D5に，接続端末情報として端末ID(device1)とソケット情報（socket1)を登録する(S42)。そして，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０は，プライベートプッシュゲートウエイPri-PGWのゲートウエイ連携部１０に，再送問い合わせコマンドCM2を送信する（S43)。このコマンドCM2には，工程S41,S42で接続状態を構築した端末ID(device1)が添付される。
【０１２０】
これに応答して，プライベートプッシュゲートウエイPri-PGW内のプッシュメッセージ依頼受付部１１は，再送問い合わせコマンドCM2に添付されている端末ID(device1)に対応するプッシュ送信先情報（dest1)をデータベースPri-DB内のプッシュ送信先情報D2から抽出し，そのプッシュ送信先情報(dest1)に基づいて，データベースPri-DB内の再送キューD3を検索し，再送待ちのプッシュメッセージ情報(push1,dest1)を検出する（S44)。
【０１２１】
これに応答して，プライベートプッシュゲートウエイPri-PGWのゲートウエイ連携部１０は，検出したプッシュメッセージpush1と，プッシュ送信先情報dest1と，端末ID(device1)とを添付してプッシュ転送コマンドCM1を，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０に送信する(S45)。
【０１２２】
この後の動作は，インターネット内の端末へのアプリプッシュ動作（１）の工程S25以降の動作と同様である。
【０１２３】
すなわち，このプッシュ転送コマンドCM1に応答して，パブリックプッシュゲートウエイPub-PGW内の端末接続部２２は，データベースPub-DB内の接続端末情報D5を照会し，プッシュメッセージ送信先(dest1)の端末（device1)が接続中か否か確認する（S46)。今回は，工程S41で端末SDは接続を既に構築し維持している。
【０１２４】
そこで，パブリックプッシュゲートウエイPub-PGW内の端末接続部２２は，接続端末情報D5のソケット情報（socket1)により，プッシュ転送コマンドCM1と共に転送されてきたプッシュメッセージ（push1)を，プッシュ送信先情報(dest1)にプッシュ送信する（S47)。これに応答して，端末SDは，プッシュメッセージ受信のアクノリッジとして，プッシュ受信通知（push1)を端末接続部２２に返信する(S48)。
【０１２５】
このプッシュ受信通知に応答して，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０は，プライベートプッシュゲートウエイPri-PGWのゲートウエイ連携部１０に，プッシュメッセージを特定する情報(push1)を添付して，送信完了通知コマンドCM3を送信する（S49)。
【０１２６】
この送信完了通知コマンドCM3に応答して，プライベートプッシュゲートウエイPri-PGWのプッシュメッセージ依頼受付部１１は，データベースPri-DB内の送信キューD3内のプッシュメッセージ（push1)を，送信済みプッシュD4に移動する（S50)。これにより，プッシュメッセージが誤って２度送信されることは回避される。
【０１２７】
また，端末SDでは，上記のプッシュメッセージの送信S47に応答して，プッシュ受信部３１は，そのプッシュメッセージ（push1)をプッシュ送信先情報(dest1)に対応するアプリダウンロード部３３に転送する。さらに，接続管理部３０は，現在の端末SDがインターネットに接続していることを検出して，プッシュメッセージ(push1)に含まれているURLを参照して，VPN接続確立部３２に，イントラネットNET1内のアプリケーションサーバApp-serへのバーチャルプライベートネットワークVPNを構築させる（S51)。さらに，接続管理部３０は，このVPNを経由して，イントラネットNET1内のプライベートプッシュゲートウエイPri-PGWの端末接続部１２とTCPプロトコルによる接続を確立する(S51)。これにより，端末SDは，VPNによりアプリケーションサーバApp-serからアプリケーションをダウンロードしている間も，プッシュメッセージを受信可能になる。
【０１２８】
そして，端末SDのアプリダウンロード部３３は，VPNを経由して，アプリサーバApp-serからプッシュメッセージ内のURLに対応するアプリケーションをダウンロードし，実行する（S52)。
【０１２９】
以上の通り，端末がインターネットを経由してパブリックプッシュゲートウエイPub-PGWと接続を確立したタイミングで，再送キュー内のプッシュメッセージが端末にプッシュ送信され，端末にアプリケーションがダウンロードされる。
【０１３０】
しかも，最初のプッシュメッセージ送信依頼が発生したときのプッシュ転送コマンドCM1を受信したとき，パブリックプッシュゲートウエイPub-PGWは，端末が未接続を検出して，転送されてきたプッシュメッセージpush1とプッシュ送信先情報dest1を破棄する。これにより，パブリックプッシュゲートウエイPub-PGWには，個人情報や秘密情報が保持されず，セキュリティを高く保つことができる。
【０１３１】
パブリックプッシュゲートウエイPub-PGWは，最初のプッシュ転送コマンドCM1を受信したとき，端末が未接続の場合，端末ID(device1)を保持しても良い。その場合，その後端末SDがパブリックプッシュゲートウエイPub-PGWに接続を確立したとき，その端末IDと照合して，再送待ちプッシュメッセージの端末であることを確認することができる。ただし，パブリックプッシュゲートウエイPub-PGWは，プッシュメッセージを保持していないので，再送問い合わせコマンドCM1に代えて再送依頼コマンドをプライベートプッシュゲートウエイPri-PGWに送信する必要がある。
【０１３２】
上記の実施の形態において，端末SDが１つのプッシュメッセージしか受信できない場合は，プッシュ送信先情報destが，どの端末のどのダウンロード部（ダウンロードアプリケーション）であるかを示す情報であるので，プッシュ送信先情報として端末IDを使用することができる。ただし，端末IDは端末SDから取得できる情報であるので，端末が第三者からランダムにアプリプッシュメッセージを送信されることが予想される。
【０１３３】
そこで，プライベートプッシュゲートウエイPri-PGWがアプリプッシュサービス毎に，端末IDとは別にプッシュ送信先情報destを発行して，端末SDとプライベートプッシュゲートウエイPri-PGWに登録するのが好ましい。このプッシュ送信先情報destをプライベートプッシュゲートウエイPri-PGWで保持し，パブリックプッシュゲートウエイPub-PGWには保持しないようにすることで，端末は第三者からランダムにアプリプッシュメッセージを送信されることはない。ただし，パブリックプッシュゲートウエイPub-PGWで送信先端末が接続を確立しているか否かを確認できるようにするために，プッシュ転送コマンドCM1には，プッシュメッセージpushとプッシュ送信先情報destに加えて，端末ID（device)も添付している。
【０１３４】
図２０は，図４に示されたプライベートプッシュゲートウエイPri-PGWと，パブリックプッシュゲートウエイPub-PGWと，端末SDのハードウエア構成を示す図である。プライベートプッシュゲートウエイPri-PGWは，プロセッサであるCPU１００と，メモリ１０１と，プログラムが格納されている記憶媒体１０２と，入出力装置１０３と，通信装置１０４とを有する。前述のとおり，図４のプライベートプッシュゲートウエイPri-PGW内のプッシュ依頼受付部１１と，端末接続受付部１２と，ゲートウエイ連携部１０は，プロセッサ１００が記憶媒体１０２内のプログラムを実行することにより実現される。
【０１３５】
パブリックプッシュゲートウエイPub-PGWは，プロセッサであるCPU２００と，メモリ２０１と，プログラムが格納されている記憶媒体２０２と，入出力装置２０３と，通信装置２０４とを有する。前述のとおり，図４のパブリックプッシュゲートウエイPub-PGW内の端末接続受付部２２と，ゲートウエイ連携部２０は，プロセッサ２００が記憶媒体２０２内のプログラムを実行することにより実現される。
【０１３６】
端末SDは，プロセッサであるCPU３００と，メモリ３０１と，プログラムが格納されている記憶媒体３０２と，入出力装置３０３と，通信装置３０４とを有する。前述のとおり，図４の端末SD内のプッシュ受信部３１と，接続管理部３０と，アプリダウンロード部３３と，VPN接続確立部３２は，プロセッサ３００が記憶媒体３０２内のプログラムを実行することにより実現される。
【０１３７】
［第２の実施の形態］
第１の実施の形態では，プライベートプッシュゲートウエイPri-PGWのゲートウエイ連携部１０と，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０との間で，図１１に示した３種類のコマンドが双方向通信される。この３種類のコマンドのうち，再送問い合わせコマンドCM2と，送信完了通知コマンドCM3は，パブリックプッシュゲートウエイPub-PGWがプライベートプッシュゲートウエイPri-PGWに対して送信する。
【０１３８】
一方，企業や官公庁などは，イントラネットとインターネットとの間にゲートウエイを設けて，ゲートウエイ内のファイアウオールによってインターネットからイントラネットへの通信を遮断して，イントラネットをインターネットからの攻撃を防御する。
【０１３９】
そこで，シームレスプッシュを上記のようなファイアウオールに対応させるためには，インターネットからイントラネットへの通信，すなわち，図４の例では，パブリックプッシュゲートウエイPub-PGWからプライベートプッシュゲートウエイPri-PGWへの通信を行わないようにすることが要求される。
【０１４０】
第２の実施の形態では，プライベートプッシュゲートウエイPri-PGWからパブリックプッシュゲートウエイPub-PGWに接続を確立し，インターネット上のパブリックプッシュゲートウエイPub-PGWからイントラネット内のプライベートプッシュゲートウエイPri-PGWへのデータ送信を可能にする。これは，例えばパブリックプッシュゲートウエイPub-PGWがこの接続をロングポーリングすることや，ウェブサーバとウェブブラウザ間の双方向通信用の規格であるWebSocketを用いることで実現することができる。ここで，ロングポーリングとは，クライアント（リクエストする側，Pri-PGW）からの通信リクエストに対して，サーバ（リクエストされる側，Pub-PGW)が応答を保留し，定期的に空のデータをクライアントに送信して接続がとぎれないようにしておき，サーバからクライアントへデータを送信する必要が生じたときに，保持しておいた接続を利用してサーバがクライアントにデータを送信する技術である。
【０１４１】
ゲートウエイ間の通信に使用されるプロトコルであるHTTPでは，一般にクライアントからサーバへのアクセスがスタートとなり通信が開始され，サーバからクライアントへのレスポンスで通信が終了する。そして，サーバが起点となる通信はできない。ロングポーリングによれば，クライアントからサーバへのアクセスがスタートとなることは同じであるが，その後サーバ側が定期的に空のデータをクライアントに送信して接続を維持することで，実質的にサーバが起点となる通信を可能にしている。
【０１４２】
ロングポーリングは，cometという技術を利用したり，HTTP通信でサーバ側が定期的にKeepAliveを送信する方法などで実現可能である。また，サーバ構築に使用されるJava（Javaは登録商標）では，ロングポーリングに対応したアプリケーションプログラムインターフェース（API)として，Apache
TomcatのCometProcessorクラスが用意されているので，これを使用することでロングポーリングに対応したサーバを構築することが可能である。
【０１４３】
第２の実施の形態では，プライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWが，ロングポーリングもしくはWebSocketに対応することで，ゲートウエイのファイアウオールを介して図１１の３種類のコマンドを双方向通信することができる。なお，以下の実施の形態では，ロングポーリングでプライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGW間の双方向通信を行う例を示す。
【０１４４】
図２１は，第２の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（１）のフローチャート図である。第１の実施の形態では，インターネット内の端末へのアプリプッシュ動作（１）を図１３，図１４に示した。それに対して，第２の実施の形態では，図１３の代わりに図２１のフローチャートにしたがってプライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWで処理がなされる。したがって，第２の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（１）のフローチャート図は，図２１と図１４である。
【０１４５】
図２１において，図１３の第１の実施の形態と異なる処理は，太枠で示したように，プライベートプッシュゲートウエイPri-PGWのゲートウエイ連携部１０が，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０に対して，HTTPリクエストを送信してHTTP接続を確立する処理（S60）と，これに応答して，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０は，定期的に返信を行ってHTTP接続を維持する処理（S61)である。
【０１４６】
このHTTP接続の確立処理S60と，定期的な返信による接続維持の処理S61とは，例えば，両プッシュゲートウエイが電源起動された時に行うことが望ましい。そのようにすることで，両プッシュゲートウエイ間には，常時HTTP接続が維持された状態になる。そのため，ファイアウオールによる遮断機能に逆らうことなく，パブリックプッシュゲートウエイPub-PGWからプライベートプッシュゲートウエイPri-PGWへの再送問い合わせコマンドCM2と送信完了通知コマンドCM3とを任意のタイミングで送信することができる。
【０１４７】
図２２は，第２の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（２）のフローチャート図である。第１の実施の形態では，インターネット内の端末へのアプリプッシュ動作（２）を図１７，図１８，図１９に示した。それに対して，第２の実施の形態では，図１７の代わりに図２２のフローチャートにしたがってプライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWで処理がなされる。したがって，第２の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（２）のフローチャート図は，図２２と図１８，図１９である。
【０１４８】
図２２において，図１７の第１の実施の形態と異なる処理は，太枠で示したように，プライベートプッシュゲートウエイPri-PGWのゲートウエイ連携部１０が，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０に対して，HTTPリクエストを送信してHTTP接続を確立する処理（S60）と，これに応答して，パブリックプッシュゲートウエイPub-PGWのゲートウエイ連携部２０は，定期的に返信を行ってHTTP接続を維持する処理（S61)である。このHTTP接続の確立処理S60と，定期的な返信による接続維持の処理S61とは，例えば，両プッシュゲートウエイが電源起動された時に行うことが望ましい。
【０１４９】
［第３の実施の形態］
第３の実施の形態では，パブリックプッシュゲートウエイPub-PGWからの通信を，プライベートプッシュゲートウエイPri-PGWからのリクエストに対するレスポンスで行う。そのために，第３の実施の形態では，プライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWとの間のコマンドを，図１１のコマンドとは異なるコマンドにする。第３の実施の形態でのコマンド体系は，全てのコマンドをプライベートプッシュゲートウエイPri-PGWが起点となってパブリックプッシュゲートウエイPub-PGWへ送信し，それに対するレスポンスで，パブリックプッシュゲートウエイPub-PGWからプライベートプッシュゲートウエイPri-PGWへのデータ送信を行う。これにより，インターネット上のパブリックプッシュゲートウエイPub-PGWからイントラネット内のプライベートプッシュゲートウエイPri-PGWへのデータ送信を可能にする。
【０１５０】
図２３は，第３の実施の形態におけるコマンド体系を示す図である。コマンドは，プッシュ転送コマンドCM1と，接続問い合わせコマンドCM4と，送信結果問い合わせコマンドCM5とを有する。プッシュ転送コマンドCM1は，プライベートプッシュゲートウエイPri-PGWからパブリックプッシュゲートウエイPub-PGWへのプッシュメッセージを転送するコマンドである。図１１のプッシュ転送コマンドCM1と同様に，プッシュ転送コマンドCM1には，メッセージ（例えばpush1)と，送信先端末ID（例えばdevice1）と，送信先情報（例えばdest1）と，パブリックプッシュゲートウエイPub-PGWへの認証用IDとパスワードPWとが含まれる。
【０１５１】
また，このプッシュ転送コマンドCM1に対するパブリックプッシュゲートウエイPub-PGWからのレスポンスには，転送されたプッシュメッセージを送信先端末に送信しようとした結果が含まれる。送信結果には，以下のものが含まれる。
OK：プッシュメッセージを送信した結果，端末からプッシュメッセージを受信したことを示す。
NG：プッシュメッセージを送信した結果，端末から受信に不具合があったことを示す。
TIMEOUT：プッシュメッセージを送信したが，端末から所定時間内に応答がなかったことを示す。
接続なし：プッシュメッセージを送信する端末が接続状態でなかったことを示す。
【０１５２】
接続問い合わせコマンドCM4は，プッシュ転送コマンドCM1に対するレスポンスがパブリックプッシュゲートウエイPub-PGWと端末との接続が確立されていないことを示す「接続なし」の場合に，プライベートプッシュゲートウエイPri-PGWからパブリックプッシュゲートウエイPub-PGWにプッシュ送信対象の端末との接続状態を問い合わせるコマンドである。接続問い合わせコマンドCM4には，端末ID（例えばdevice1）と認証用IDとパスワードPWが含まれる。また，レスポンスには，「接続あり」と「接続なし」が含まれる。レスポンスが「接続あり」の場合は，プライベートプッシュゲートウエイPri-PGWは，再度プッシュ転送コマンドCM1を送信する。
【０１５３】
送信結果問い合わせコマンドCM5は，プッシュ転送コマンドCM1に対するレスポンスが端末から応答なしを示す「TIMEOUT」の場合に，プライベートプッシュゲートウエイPri-PGWからパブリックプッシュゲートウエイPub-PGWに再度プッシュ転送コマンドCM1に対する結果を要求するコマンドである。送信結果問い合わせコマンドCM5には，プッシュメッセージのID（例えばpush1-ID）と認証用IDとパスワードPWとが含まれる。このコマンドに対するレスポンスには，プッシュ転送コマンドCM1に対するレスポンスのうち，「OK」「NG」「TIMEOUT」が含まれる。レスポンスが「TIMEOUT」の場合は，再度送信結果問い合わせコマンドCM5を送信するか，または，プッシュ転送コマンドCM1を送信するかのいずれかになる。「TIMEOUT」のレスポンスを所定回数受信した場合に，あらためてプッシュ転送コマンドCM1を送信するようにしてもよい。
【０１５４】
図２４は，第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（１）の第１のフローチャート図である。第１の実施の形態では，インターネット内の端末へのアプリプッシュ動作（１）を図１３，図１４に示した。それに対して，この例では，図１４の代わりに図２４のフローチャートにしたがってプライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWで処理がなされる。したがって，第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（１）の第１のフローチャート図は，図１３と図２４である。
【０１５５】
図２４において，図１４の第１の実施の形態と異なる処理は，太枠で示したように，パブリックプッシュゲートウエイPub-PGWは，プッシュメッセージの送信が行われ端末からプッシュ受信通知を受け取ったことを示す「OK」を，図１３の工程S24のプッシュ転送コマンドCM１に対するプライベートプッシュゲートウエイPri-PGWへのレスポンスに含めて送信する。図１４の第１の実施の形態では，パブリックプッシュゲートウエイPub-PGWがプライベートプッシュゲートウエイPri-PGWへ送信完了通知コマンドCM3を送信していたが，図２４の第３の実施の形態では，プッシュ転送コマンドCM1に対するレスポンスとして「OK」を送信する。
【０１５６】
図２５，図２６は，第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（１）の第２のフローチャート図である。第１の実施の形態では，インターネット内の端末へのアプリプッシュ動作（１）を図１３，図１４に示した。それに対して，この例では，図１３，図１４の代わりに図２５，図２６のフローチャートにしたがってプライベートプッシュゲートウエイPri-PGWとパブリックプッシュゲートウエイPub-PGWで処理がなされる。
【０１５７】
図２５，図２６のフローチャートでは，プッシュ転送コマンドCM1と送信結果問い合わせコマンドCM5とを使用する例である。図２５において図１３と異なる処理は，太枠で示したように，プライベートプッシュゲートウエイPri-PGWが，パブリックプッシュゲートウエイPub-PGWに，プッシュ転送コマンドCM1（push1,
dest1, device1)を送信する処理（S80）である。このプッシュ転送コマンドCM1にはプッシュメッセージpush1が含まれている。
【０１５８】
さらに，図１３と異なる処理は，パブリックプッシュゲートウエイPub-PGWが端末にプッシュメッセージを送信したが端末から受信確認を受信せずにタイムアウトしたことを検出する処理（S81)と，そのタイムアウトにより，パブリックプッシュゲートウエイPub-PGWがプッシュ転送コマンドCM1に対するレスポンスに「TIMEOUT」とプッシュメッセージのID（pushID)を含めてプライベートプッシュゲートウエイPri-PGWへ返信する処理（S82）とである。
【０１５９】
この処理S82では，更に，パブリックプッシュゲートウエイPub-PGWは，データベースPub-DB内に再送メッセージ情報として，プッシュメッセージID（pushID)と，端末ID(device1)と，プッシュメッセージの送信ステータス（例えば再送中）を保存する。すなわち，プッシュ転送コマンドCM1に対するレスポンスが「TIMEOUT」の場合は，プッシュメッセージの端末SDへの送信結果が保留状態であることを意味しているので，パブリックプッシュゲートウエイPub-PGWは，そのデータベースPub-DB内にプッシュメッセージの送信ステータスを記録しておく必要がある。ただし，再送メッセージ情報には，プッシュメッセージ（push1)自体を含めるのではなく，そのID（pushID）を含めている。したがって，図５のパブリックプッシュゲートウエイPub-PGWのデータベースPub-DBには，接続端末情報D5と，連携GW情報D6に加えて，上記の再送メッセージ情報が記録される。
【０１６０】
そして，図２６において，図１４と異なる処理は，プライベートプッシュゲートウエイPri-PGWが，「TIMEOUT」のレスポンスに対応して，パブリックプッシュゲートウエイPub-PGWへ送信結果問い合わせコマンドCM5（push1-ID)を送信する処理（S83)と，それに対するレスポンスとして，パブリックプッシュゲートウエイPub-PGWがレスポンス（OK)を返信する処理（S84)である。図２６では，パブリックプッシュゲートウエイPub-PGWがプッシュメッセージの受信確認を端末から受信（S27)した後に，プライベートプッシュゲートウエイPri-PGWから送信結果問い合わせコマンドCM5（Pushc1-ID)を受信している。パブリックプッシュゲートウエイPub-PGWは，端末から受信確認を受信すると（S27)，そのデータベースPub-DB内の再送メッセージ情報の送信ステータスを送信済みを示す「OK」に変更する。そして，その後の送信結果問い合わせコマンドCM5（push1-ID)に応答して，そのプッシュメッセージのIDに対応する送信ステータスが送信済みを示す「OK」であるため，パブリックプッシュゲートウエイPub-PGWは，レスポンス「OK」を返信する（S84)。
【０１６１】
上記の処理では，プライベートプッシュゲートウエイPri-PGWは，プッシュ転送コマンドCM1に対するレスポンスに「TIMEOUT」を受信した場合は，再度プッシュメッセージを転送することなく，送信結果問い合わせコマンドCM5をプッシュメッセージのIDと共に送信するだけで，受信確認済みのレスポンスを受信することができる場合がある。よって，プライベートプッシュゲートウエイPri-PGWによりデータ量が多いプッシュメッセージの転送回数を減らすことができる。
【０１６２】
図２７，図２８，図２９は，第３の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（２）のフローチャート図である。第１の実施の形態におけるインターネット内の端末へのアプリプッシュ動作（２）のフローチャートは，図１７，図１８，図１９に示されていた。そこでは，プライベートプッシュゲートウエイPri-PGWが，プッシュ転送コマンドCM1に対して受信確認を受信したことを示す送信完了通知CM3を受信しない場合は，パブリックプッシュゲートウエイPub-PGWが端末との接続を確立した時に再送問い合わせコマンドCM2を送信し，それに応答して，プライベートプッシュゲートウエイPri-PGWが再度プッシュ転送コマンドCM1を送信してプッシュメッセージを再送している。
【０１６３】
図２７，図２８，図２９のフローチャートでは，プッシュ転送コマンドCM1と接続問い合わせコマンドCM4とを使用する例である。この例では，パブリックプッシュゲートウエイPub-PGWによる再送問い合わせコマンドCM2の代わりに，接続問い合わせコマンドCM4とそのリスポンスを利用している。
【０１６４】
図２７では，図１７と異なる処理は，太枠で示したとおり，プライベートプッシュゲートウエイPri-PGWが，パブリックプッシュゲートウエイPub-PGWに，プッシュ転送コマンドCM1（push1, dest1, device1)を送信する処理（S71）である。このプッシュ転送コマンドCM1にはプッシュメッセージpush1が含まれている。
【０１６５】
さらに，図１７と異なる処理は，パブリックプッシュゲートウエイPub-PGWが，端末が未接続であることを確認すると（S35），プッシュメッセージを破棄し（S36)，その後，プッシュ転送コマンドCM1に対するレスポンスに「接続なし」「deviceID」を含めてプライベートプッシュゲートウエイPri-PGWに返信する（S72)。この結果，パブリックプッシュゲートウエイPub-PGWは，プッシュメッセージを端末に送信することができないので，プッシュメッセージを破棄して，プッシュメッセージがインターネット上のサーバに格納されたままになることを回避する。上記以外は，図１７と同じである。
【０１６６】
次に，図２８では，図１８と異なる処理は，太枠で示されるとおり，プライベートプッシュゲートウエイPri-PGWが，パブリックプッシュゲートウエイPub-PGWに接続問い合わせコマンドCM4(device1)を，所定のタイミングで送信する処理（S73)である。その直前に端末が接続を確立（S41,S42)しているので，パブリックプッシュゲートウエイPub-PGWは，これに応答して，「接続あり」「device1」を有するレスポンスを返信する処理（S74)を行う。この処理も図１８と異なる。また，プライベートプッシュゲートウエイPri-PGWは，接続を確立した端末device1に対するプッシュメッセージpush1と送信先情報dest1とデバイスID（device1)を含めて，プッシュ転送コマンドCM1を送信する（S75)。上記以外は，図１８と同様である。
【０１６７】
そして，図２９では，図１９と異なり，太枠で示されたように，パブリックプッシュゲートウエイPub-PGWが，プッシュ転送コマンドCM1に応答して，端末からプッシュメッセージの受信を確認する受信確認を受信したことを示す「OK」のリスポンスを返信する（S76)。それ以外は，図１９と同じである。
【０１６８】
以上のように，第１の実施の形態の再送問い合わせコマンドCM2に代えて，接続問い合わせコマンドCM4を利用し，その接続問い合わせコマンドCM4の送信で確立した接続状態でのレスポンスで再送問い合わせコマンドCM2と同等の情報をパブリックプッシュゲートウエイPub-PGWからプライベートプッシュゲートウエイPri-PGWに送信する。
【０１６９】
［第４の実施の形態］
シームレスプッシュシステムを利用することで，一台の端末で複数のプッシュサービスを受けることができるマルチテナント型のサービスを実現することができる。
【０１７０】
図３０は，マルチテナント型のプッシュサービスを示す図である。この例では，端末SDを所有するユーザXは，企業Aから企業Bに派遣されているとする。その場合，ユーザXは，派遣元である企業Aで出退勤管理を行うために企業Aの出退勤システムAにアクセスする必要がある。また，ユーザXは，派遣先の企業Bで発注業務を行うために企業Bの発注システムBにアクセスする必要がある。ここで，出退勤システムAは，プライベートプッシュゲートウエイPri-PGW1を有する。また，発注システムBは，プライベートプッシュゲートウエイPri-PGW2を有する。
【０１７１】
そこで，シームレスなプッシュサービスを適用することで，ユーザXは一台の端末SDで企業Aの出退勤システムAと企業Bの発注システムBの双方にアクセス可能となり，作業効率が向上する。ただし，出退勤システムAと発注システムBとが個別に端末SDのプッシュメッセージを送信する送信先情報（dest)を割り当てるようにすると，両システムA,Bが端末SDに対して同じ送信先情報（dest1）を割り当てることが発生しうる。同じ送信先情報が重複して割り当てられると，出退勤システムAと発注システムBとが同じ送信先情報(dest1)にプッシュメッセージを送信してしまい，端末SDは，どちらのシステムからのプッシュメッセージであるか判別できず，プッシュメッセージに基づいてダウンロードするアプリケーションもどちらのシステムのアプリケーションかも判別できない。
【０１７２】
図３１は，第４の実施の形態におけるシームレスプッシュシステムの構成図である。第４の実施の形態では，複数のイントラネット内のシステムに共通に，送信先情報生成サーバ４０を設けている。この送信先情報生成サーバ４０は，パブリックプッシュゲートウエイPub-PGW内に設けられても良い。そして，端末SDから各システムに対して送信先情報の初期登録依頼に応答して，それぞれのシステムが送信先情報生成サーバ４０に送信先情報の初期登録を依頼し，送信先情報生成サーバ４０が，各システムに対して一意の送信先情報を生成してそれぞれのシステムに返信する。そして，その一意に生成された送信先情報が，各システムのプライベートプッシュゲートウエイPri-PGW1，Pri-PGW2と，端末SDに初期登録される。
【０１７３】
そのために，システムAのプライベートプッシュゲートウエイPri-PGW1は，GW連携部１０Ａと，プッシュ依頼受付部１１Ａと，端末接続受付部１２Ａと，データベースPri-DBとに加えて，送信先情報登録受付部１３Ａと，送信先情報取得部１４Ａを有する。同様に，システムＢのプライベートプッシュゲートウエイPri-PGW2も，GW連携部１０Ｂと，プッシュ依頼受付部１１Ｂと，端末接続受付部１２Ｂと，データベースPri-DBとに加えて，送信先情報登録受付部１３Ｂと，送信先情報取得部１４Ｂを有する。
【０１７４】
また，送信先情報生成サーバ４０は，図２０に示したプッシュゲートウエイと同様にプロセッサとメモリと入出力装置と通信装置とプログラムを記憶する記憶媒体とを有し，プロセッサがプログラムを実行することで，送信先情報取得受付部４０１と，送信先情報生成部４２と，暗号復号部４３とを構築する。また，送信先情報保持部４４は，生成した送信先情報とそれに対応付けられる端末SDのIDとを暗号化して記憶する記憶媒体である。
【０１７５】
プッシュメッセージの送信先情報の登録処理は，具体的には次のように行われる。
【０１７６】
端末SDは，デバイスID（device1)と共に送信先情報登録依頼を，システムAのプライベートプッシュゲートウエイPri-PGW1の送信先情報登録受付部13Aに送信する。それに応答して，送信先情報取得部14Aは，送信先情報生成サーバ４０の送信先情報取得受付部４１に，送信先情報の取得依頼を送信する。送信先情報生成サーバ４０では，送信先情報生成４２が，送信先情報保持部４４内の送信先情報と重複しない送信先情報（例えばdest1)をデバイスID（device1)に対して生成する。この生成された送信先情報（dest1)は，暗号復号部４３で暗号化されて送信先情報保持部４４に記憶される。また，送信先情報取得受付部４１が，生成された送信先情報（dest1)を，プライベートプッシュゲートウエイPri-PGW1内の送信先情報取得部14Aに返信する。この送信先情報(dest1)は，データベースPri-DB内にデバイスID（device1)に関連付けて記憶される。そして，送信先情報登録受付部13Aが，端末SDに受信した送信先情報(dest1)を送信し，端末SD内の送信先情報登録部が内部のデータベースに記憶する。
【０１７７】
端末SDは，デバイスID（device1)と共に送信先情報登録依頼を，システムBのプライベートプッシュゲートウエイPri-PGW2の送信先情報登録受付部13Bにも送信する。それに応答して，上記と同じ処理が実行され，送信先情報生成サーバ４０が新たな送信先情報(dest2)を生成して，返信し，プライベートプッシュゲートウエイPri-PGW2内のデータベースPri-DBに記憶されるとともに，端末SD内にも登録される。
【０１７８】
以上の通り，複数のシステムに対して共通に設けられた送信先情報生成サーバ４０が，各システムに対して一意の送信先情報を生成するので，複数のシステムに対して一意の送信先情報が登録されて，マルチテナント型サービスに対してシームレスプッシュサービスを適切に提供することができる。
【０１７９】
上記の実施の形態では，プッシュメッセージを端末に送信し，端末がプッシュメッセージ内のアクセス情報を利用してアプリケーションをダウンロードするアプリプッシュサービスを行うことを説明した。しかしながら，プッシュメッセージを端末に送信するプッシュサービスを行う場合にも適用することができる。
【符号の説明】
【０１８０】
Pri-PGW：プライベートプッシュゲートウエイ
Pub-PGW：パブリックプッシュゲートウエイ
App-ser：アプリサーバ
Pu-req：プッシュ依頼者装置
NET1：イントラネット
NET2：インターネット
SD：端末，スマートデバイス，スマートホン
【図１】
2014030426.tif 000003
【図２】
2014030426.tif 000004
【図３】
2014030426.tif 000005
【図４】
2014030426.tif 000006
【図５】
2014030426.tif 000007
【図６】
2014030426.tif 000008
【図７】
2014030426.tif 000009
【図８】
2014030426.tif 000010
【図９】
2014030426.tif 000011
【図１０】
2014030426.tif 000012
【図１１】
2014030426.tif 000013
【図１２】
2014030426.tif 000014
【図１３】
2014030426.tif 000015
【図１４】
2014030426.tif 000016
【図１５】
2014030426.tif 000017
【図１６】
2014030426.tif 000018
【図１７】
2014030426.tif 000019
【図１８】
2014030426.tif 000020
【図１９】
2014030426.tif 000021
【図２０】
2014030426.tif 000022
【図２１】
2014030426.tif 000023
【図２２】
2014030426.tif 000024
【図２３】
2014030426.tif 000025
【図２４】
2014030426.tif 000026
【図２５】
2014030426.tif 000027
【図２６】
2014030426.tif 000028
【図２７】
2014030426.tif 000029
【図２８】
2014030426.tif 000030
【図２９】
2014030426.tif 000031
【図３０】
2014030426.tif 000032
【図３１】
2014030426.tif 000033
【手続補正書】
【提出日】平成27年2月18日(2015.2.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
イントラネット内に設けられ，プッシュメッセージの送信依頼に応答して，前記イントラネットを介して接続状態にある端末に前記プッシュメッセージを送信する第１のプッシュゲートウエイと，
インターネット内に設けられ，前記インターネットを介して前記端末と接続状態を維持可能な第２のプッシュゲートウエイとを有し，
前記端末が前記インターネットに接続可能な間，
前記第２のプッシュゲートウエイが，前記端末から前記インターネットを介して接続状態を構築され当該接続状態を維持し，
前記第１のプッシュゲートウエイは，前記プッシュメッセージの送信依頼に応答して，前記第２のプッシュゲートウエイに前記プッシュメッセージを転送し，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，前記接続状態にある端末に，前記インターネットを介して前記プッシュメッセージを送信するシームレスプッシュシステム。
【請求項２】
請求項１において，
さらに，前記イントラネット内に設けられ，前記端末からのアクセスに対応してアプリケーションを前記端末にダウンロードさせるアプリサーバを有し，
前記プッシュメッセージを受信した端末と前記アプリサーバとの間に構築されたプライベートネットワークを介して，前記アプリサーバが，前記端末に前記プッシュメッセージに対応するアプリケーションを送信するシームレスプッシュシステム。
【請求項３】
請求項２において，
前記プライベートネットワークが構築されている間，前記第１のプッシュゲートウエイは，前記端末から前記プライベートネットワークを介して接続状態を構築され当該接続状態を維持し，前記第１のプッシュゲートウエイは，前記プライベートネットワークを介して前記端末にさらに別のプッシュメッセージを送信するシームレスプッシュシステム。
【請求項４】
請求項２において，
前記端末が前記イントラネットに接続可能な場合は，前記第１のプッシュゲートウエイは前記端末と前記イントラネットを介して接続状態を構築し，当該接続状態を介して前記端末に前記プッシュメッセージを送信し，前記端末が前記インターネットに接続可能な場合は，前記第２のプッシュゲートウエイは前記端末と前記インターネットを介して接続状態を構築し，当該接続状態を介して前記端末に前記プッシュメッセージを送信するシームレスプッシュシステム。
【請求項５】
請求項４において，
前記端末は，前記プッシュメッセージの受信に応答して，前記アプリサーバから前記プライベートネットワークを介して前記アプリケーションをダウンロードするアプリダウンロード部を有し，
前記端末と前記第１のプッシュゲートウエイとには，端末IDと当該端末の前記ダウンロード部に対応するプッシュ送信先情報とが記憶され，
前記第１のプッシュゲートウエイと前記第２のプッシュゲートウエイは，それぞれに接続状態を維持している前記端末の端末IDを記憶し，
前記第１のプッシュゲートウエイは，前記プッシュメッセージを前記プッシュ送信先情報とともに受信することに応答して，当該プッシュ送信先情報に対応する端末が接続状態でない場合に，前記プッシュ送信先情報に対応する端末IDを付加して前記プッシュメッセージと前記プッシュ送信先情報とを前記第２のプッシュゲートウエイに転送し，
前記第２のプッシュゲートウエイは，前記転送されてきた端末IDに基づいて前記端末が接続状態にあるか否かチェックし，接続状態の場合に，前記プッシュメッセージを前記プッシュ送信先情報とともに前記接続状態の端末に送信するシームレスプッシュシステム。
【請求項６】
請求項５において，
前記端末は，前記ダウンロード部を複数有し，
前記端末は，前記送信されてきたプッシュメッセージを前記複数のダウンロード部のうち前記プッシュ送信先情報に対応するダウンロード部に渡し，前記プッシュメッセージを受信したダウンロード部が前記プッシュ送信先情報に対応するアプリケーションを前記アプリサーバからダウンロードするシームレスプッシュシステム。
【請求項７】
請求項１または４において，
前記端末が前記インターネットに接続可能な間，
前記第１のプッシュゲートウエイは，前記送信依頼されたプッシュメッセージの送信先端末が接続状態でないことに応答して，再送キューに前記送信依頼されたプッシュメッセージを格納し，さらに，前記第２のプッシュゲートウエイに前記送信依頼されたプッシュメッセージを転送し，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，前記プッシュメッセージの送信先端末が接続状態か否かチェックし，接続状態にある端末に対して，前記インターネットを介して前記プッシュメッセージを送信し，前記端末からのプッシュメッセージの受信通知に応答して，前記第１のプッシュゲートウエイにプッシュ送信完了通知を送信し，
前記第１のプッシュゲートウエイは，前記プッシュ送信完了通知に応答して，前記再送キュー内の前記プッシュメッセージを送信済みに変更するシームレスプッシュシステム。
【請求項８】
請求項７において，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，前記プッシュメッセージの送信先端末が接続状態か否かチェックし，前記プッシュメッセージの送信先端末が接続状態でない場合は，前記転送されたプッシュメッセージをデータベース内に保存せず，
前記第２のプッシュゲートウエイは，その後前記端末が前記インターネットを介して接続状態を構築したとき，前記第１のプッシュゲートウエイに当該接続を構築した端末に対する再送問い合わせを送信し，
前記第１のプッシュゲートウエイは，前記再送問い合わせに応答して，前記再送キュー内に格納されている前記接続を構築した端末に対するプッシュメッセージを，前記第２のプッシュゲートウエイに転送するシームレスプッシュシステム。
【請求項９】
イントラネット内に設けられ，プッシュメッセージの送信依頼に応答して，前記イントラネットを介して接続状態にある端末に前記プッシュメッセージを送信する第１のプッシュゲートウエイと，
インターネット内に設けられ，前記インターネットを介して前記端末と接続状態を維持可能な第２のプッシュゲートウエイとを有するプッシュシステムを使用して行うプッシュ方法であって，
前記端末が前記インターネットに接続可能な間，
前記第２のプッシュゲートウエイが，前記端末から前記インターネットを介して接続状態を構築され当該接続状態を維持する工程と，
前記第１のプッシュゲートウエイが，前記プッシュメッセージの送信依頼に応答して，前記第２のプッシュゲートウエイに前記プッシュメッセージを転送する工程と，
前記第２のプッシュゲートウエイが，前記プッシュメッセージの転送に応答して，前記接続状態にある端末に，前記インターネットを介して前記プッシュメッセージを送信する工程と，
前記プッシュメッセージを受信した端末と前記アプリサーバとの間に構築されたプライベートネットワークを介して，前記アプリサーバから，前記端末が前記プッシュメッセージに対応するアプリケーションをダウンロードする工程とを有するプッシュ方法。
【請求項１０】
イントラネット内に設けられ，プッシュメッセージの送信依頼に応答して，前記イントラネットを介して接続状態にある端末に前記プッシュメッセージを送信する第１のプッシュゲートウエイと，
インターネット内に設けられ，前記インターネットを介して前記端末と接続状態を維持可能な第２のプッシュゲートウエイとを有するプッシュシステムを使用してアプリケーションプッシュサービスを提供する方法であって，
前記端末が前記インターネットに接続可能な間，
前記第２のプッシュゲートウエイが，前記端末から前記インターネットを介して接続状態を構築され当該接続状態を維持する工程と，
前記第１のプッシュゲートウエイが，前記プッシュメッセージの送信依頼に応答して，前記第２のプッシュゲートウエイに前記プッシュメッセージを転送する工程と，
前記第２のプッシュゲートウエイが，前記プッシュメッセージの転送に応答して，前記接続状態にある端末に，前記インターネットを介して前記プッシュメッセージを送信する工程とを有するプッシュサービスを提供する方法。
【請求項１１】
イントラネット内に設けられ，インターネット内に設けられた第２のプッシュゲートウエイと通信可能な第１のプッシュゲートウエイであって，
プッシュメッセージの送信依頼に応答して，前記イントラネットを介して接続状態にある端末に前記プッシュメッセージを送信するプッシュメッセージ依頼受付部と，
前記イントラネットを経由して端末からの接続依頼に応答して前記端末と接続状態を構築する端末接続受付部と，
前記第２のプッシュゲートウエイと通信可能なゲートウエイ連携部とを有し，
前記第２のプッシュゲートウエイが前記端末から前記インターネットを介して接続状態を構築され，当該接続状態を維持している間，
前記第１のプッシュゲートウエイは，前記プッシュメッセージの送信依頼に応答して，前記第２のプッシュゲートウエイに前記プッシュメッセージを転送し，前記第２のプッシュゲートウエイに，前記接続状態にある端末に，前記インターネットを介して前記プッシュメッセージを送信させる第１のプッシュゲートウエイ。
【請求項１２】
請求項７または８において，
前記第１のプッシュゲートウエイは，前記第２のプッシュゲートウエイにアクセスして接続状態を確立し，前記第２のプッシュゲートウエイが前記第１のプッシュゲートウエイに返信を繰り返して前記接続状態を維持させ，
前記プッシュ送信完了通知または前記再送問い合わせを，前記維持させている接続状態を介して前記第２のプッシュゲートウエイが前記第１のプッシュゲートウエイに送信するシームレスプッシュシステム。
【請求項１３】
請求項７において，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に対するレスポンスで，前記プッシュ送信完了通知を送信するシームレスプッシュシステム。
【請求項１４】
請求項１３において，
前記第２のプッシュゲートウエイは，前記プッシュメッセージの転送に応答して，接続状態にある前記送信先端末に前記プッシュメッセージを送信し，前記送信先端末から受信確認が得られない場合に，前記プッシュメッセージの転送に対するレスポンスで，タイムアウトを送信し，
前記第１のプッシュゲートウエイは，その後，前記送信先端末からの受信確認を問い合わせる送信結果問い合わせコマンドを，前記第２のプッシュゲートウエイに送信し，
前記第２のプッシュゲートウエイは，前記送信先端末から受信確認を受信している場合に，前記送信結果問い合わせコマンドに対するレスポンスで，前記受信確認の受信を送信し，
前記第１のプッシュゲートウエイは，前記受信確認の受信に応答して，前記再送キュー内の前記プッシュメッセージを送信済みに変更するシームレスプッシュシステム。
【請求項１５】
請求項１において，
さらに，複数の第１のプッシュゲートウエイに対して共通に設けられた送信先情報生成サーバを有し，
前記端末からの要求に対応して前記複数の第１のプッシュゲートウエイが送信する送信先情報の生成要求に応答して，前記送信先情報生成サーバは，前記複数の第１のプッシュゲートウエイ間で重複することなく一意の送信先情報を生成し，前記送信先情報の生成要求を送信した第１のプッシュゲートウエイに返信するシームレスプッシュシステム。
【国際調査報告】
2014030426.tif 000034
2014030426.tif 000035