(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0021】
本発明は、例えば、WebSocketプロトコルを利用したプッシュ配信システムの開発に掛かる作業量を軽減するための技術を提供する。
【0022】
本発明の各実施形態は、顧客間または同一顧客が利用しているネットワーク環境において、システム構成要素が変わった場合でもシステム全体の接続維持間隔を、全てのシステム構成要素について調べ直すことを不要とするものである。また、各実施形態は、電波が良好でない環境を含め、顧客の要望する時間内に即時性を確保するための作業量も軽減することである。
【0023】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【0024】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【0025】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【0026】
以後の説明では「テーブル」によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。
【0027】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ID」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【0028】
以下では「・・・部」を主語(動作主体)として本発明の実施形態における各処理について説明を行うが、各「・・・部」はプログラムによって構成するようにしても良い。この場合、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信制御装置)を用いながら行うため、プロセッサを動作主体として説明してもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【0029】
(1)第1の実施形態
第1の実施形態は、ネットワーク構成要素の静的な変更への対応を軽減するためのものである。
【0030】
<適用場面>
図1は、第1の実施形態を適用する場面を示す図である。
図1A乃至Cは、それぞれ、携帯キャリアAのみを利用する場合、携帯キャリアBのみを利用する場合、顧客構内でWifi網のみを利用する場合の模式図である。上述のとおり、顧客間で、又は同一顧客によって利用されているシステムでは、このようなネットワーク構成要素は、変更されることがあり得る。
【0031】
図1Aによる場面では、管理者端末装置1は、インターネット4を介して配信装置2と接続されている。また、配信装置2は、インターネット4及び携帯キャリアA網102を介して移動体101の中のクライアント端末装置3と接続されている。この移動体101の中のクライアント端末装置3は、顧客α構内103または顧客α構外104にあり、配信装置2と携帯キャリアA網102を使って通信する。
【0032】
図1Bによる場面では、管理者端末装置1は、インターネット4を介して配信装置2と接続されている。また、配信装置2は、インターネット4及び携帯キャリアB網105を介して移動体101の中のクライアント端末装置3と接続されている。この移動体101の中のクライアント端末装置3は、顧客β構内106または顧客β構外107にあり、配信装置2と携帯キャリアB網105を使って通信する。
【0033】
図1Cによる場面では、管理者端末装置1は、インターネット4を介して配信装置2と接続されている。また、配信装置2は、インターネット4及び顧客宅内のLANも含むWifi網6が接続されている。そして、顧客γ構内108内の移動体101の中のクライアント端末装置3は、Wifi網6を通じて配信装置2と通信を行う。顧客γ構外109では通信手段はない。
【0034】
上述したように、
図1Aで動作しているシステムを
図1Bの場面で動作できるようにするためには、システムを変更する必要がある(ネットワーク構成要素の静的な変更)。このシステム変更を実現する場合、システム全体の接続維持間隔をあらゆる手段を尽くして調べなければならない。
【0035】
しかし、この接続維持間隔の調査については作業量が多くなってしまう場合があり、この作業量を軽減できるような工夫が必要である。
【0036】
そこで、第1の実施形態では、このようなネットワーク構成要素を静的に変更する際の作業量を軽減するための構成を提供する。
【0037】
<配信システムの構成>
図2は、本発明の第1の実施形態による配信システム概略構成を示す図である。
第1の実施形態による配信システムは、少なくとも1つの管理者端末装置1と、少なくとも1つの配信装置2と、少なくとも1つのクライアント端末装置3と、を有し、管理者端末装置1と配信装置2はインターネット4を介して接続され、配信装置2とクライアント端末装置3は携帯電話網5及びWifi網6を介して接続されている。
【0038】
管理者端末装置1は、CPU11A及びメモリ11Bを含む端末装置11と、通信ポート12と、外部記憶装置13と、を有している。外部記憶装置13は、管理者からのメッセージの送信などの操作を配信装置2に対して命令するための管理者操作送信部13Aと、送信結果などを表示するための表示処理部13Bと、を有している。なお、管理者操作送信部13A及び表示処理部13Bはプログラムとして格納されており、CPU11Aがこれらのプログラムを実行して、それぞれの機能を実現している。
【0039】
配信装置2は、CPU21A及びメモリ21Bを含む端末装置21と、通信ポート22と、外部記憶装置23と、を有している。外部記憶装置23は、管理者操作の応答を管理者端末装置に返すための管理者操作応答部23Aと、同装置内の処理を取りまとめるサーバ管理部23Bと、WebSocketでメッセージ送付するためのWebSocketサーバ側通信部23Cと、を有している。サーバ管理部23Bは、よく送付する内容を保存する送信内容リストテーブル23B1と、クライアント端末装置3の情報を保存する送信先端末リストテーブル23B2とを有している。なお、管理者操作応答部23A、サーバ管理部23B、及びWebSocketサーバ側通信部23Cはプログラムとして格納されており、CPU21Aがこれらのプログラムを実行して、それぞれの機能を実現している。
【0040】
クライアント端末装置3は、CPU31A及びメモリ31Bを含む端末装置31と、通信ポート32と、外部記憶装置33と、を有している。外部記憶装置33は、クライアント端末装置内の処理を取りまとめるクライアント管理部33Aと、WebSocketで通信を行うためのWebSocketクライアント側通信部33Bと、配信装置から配信されたメッセージを表示するための表示処理部33Cと、クライアント端末装置3が利用するネットワークが携帯電話網の場合に接続を行う携帯回線接続部33Dと、クライアント端末装置3が利用するネットワークがWifiである場合にWifi網を検索しさらに接続を行うWifi検索・接続部33Eと、を有している。なお、クライアント管理部33A、WebSocketクライアント側通信部33B、表示処理部33C、携帯回線接続部33D、及びWifi検索・接続部33Eはプログラムとして格納されており、CPU31Aがこれらのプログラムを実行して、それぞれの機能を実現している。
【0041】
<WebSocketサーバ側通信部の機能>
図3は、WebSocketサーバ側通信部23Cの機能構成を示す図である。
WebSocketサーバ側通信部23Cは、WebSocketクライアント側通信部33Bからの接続・切断要求に対して応答するための接続・切断応答部23C1と、WebSocketクライアント側通信部33BからのWebSocket接続維持のためのパケットに対する応答を送信するための接続維持信号応答部23C2と、メッセージ送信を行うメッセージ送信部23C3と、を有している。
【0042】
<WebSocketクライアント側通信部の機能>
図4は、WebSocketクライアント側通信部33Bの機能構成を示す図である。
WebSocketクライアント側通信部33Bは、WebSocketサーバ側通信部23Cに対して接続・切断を要求する接続・切断部33B1と、WebSocket接続維持部33B2と、メッセージ受信部33B3と、を有している。
【0043】
接続・切断部33B1は、クライアント端末装置3が利用するネットワークが携帯電話網の場合の接続先の情報を格納するための携帯回線接続先テーブル33B100と、クライアント端末装置3が利用するネットワークがWifi網の場合の接続先の情報を格納するためのWifi接続先テーブル33B101と、を保持している。ここで、携帯回線接続先テーブル33B100は、接続先アドレスだけでなく、認証情報などその他の接続に必要な情報も記述しても良い。
【0044】
WebSocket接続維持部33B2は、WebSocketサーバ側通信部23Cに対して接続維持信号を送信するための接続維持信号送信部33B200と、接続維持信号の応答が一定期間無い場合に接続を切断するための切断検知部33B201と、携帯キャリア網、Wifi網、クラウド基盤ネットワークといったネットワーク種別毎に必要な接続維持間隔を事前に格納しておくための、携帯キャリア別接続維持間隔テーブル33B202と、Wifi接続維持間隔テーブル33B203と、クラウド基盤別接続維持間隔テーブル33B204と、顧客が要望する最大不通時間を満たす、最大接続維持間隔を記すための最大接続維持間隔テーブル33B205と、切断検知部33B201が接続維持信号の応答が無い場合に行う再送間隔、再送上限回数をそれぞれ記している接続維持再送間隔テーブル33B206と、接続維持再送回数テーブル33B207と、利用するネットワーク構成要素を指定するための利用ネットワーク構成要素指定テーブル33B208と、を含んでいる。
【0045】
なお、メッセージ送信部23C3及びメッセージ受信部33B3に関し、WebSocketは、サーバからクライアント側のみといった一方向の通信だけでなく、逆方向も含めた双方向を特徴とするプロトコルであり、これらは本来は送受信することのできる通信手段であるが、ここでは説明の簡便化のため、サーバからクライアント側のみの一方向であるかのように、記述する。
【0046】
<携帯回線接続先テーブル>
図5は、携帯回線接続先テーブル33B100の構成例を示す図である。
携帯回線接続先テーブル33B100は、接続先URL501と、認証用ユーザ名502と、認証用パスワード503と、を構成項目として有している。
図5の例では、それぞれの項目に、address_a、usr_a、及びpw_aが設定されている。
【0047】
<Wifi接続先テーブル>
図6は、Wifi接続先テーブル33B101の構成例を示す図である。
Wifi接続先テーブル33B101は、接続先URL601と、認証用ユーザ名602と、認証用パスワード603と、を構成項目として有している。
図6の例では、それぞれの項目に、address_wifi_a、usr_wifi_a、pw_wifi_aが設定されている。
【0048】
<携帯キャリア別接続維持間隔テーブル>
図7は、携帯キャリア別接続維持間隔テーブル33B202の構成例を示す図である。
携帯キャリア別接続維持間隔テーブル33B202は、携帯キャリア701と、必要な接続維持間隔702と、を構成項目として有している。ここで、接続維持間隔とは、無通信時間の計測タイマ動作開始を回避するために必要な時間間隔を示す情報である。
【0049】
図7では、例えば、必要な接続維持間隔702として、A社、B社、及びC社に対してそれぞれ、1800秒、2400秒、及び3000秒と設定されている。
【0050】
<Wifi接続維持間隔テーブル>
図8は、Wifi接続維持間隔テーブル33B203の構成例を示す図である。
Wifi接続維持間隔テーブル33B203は、Wifi接続維持間隔801の情報を保持しており、その値は、例えば30秒と設定される。
【0051】
<クラウド基盤別接続維持間隔テーブル>
図9は、クラウド基盤別接続維持間隔テーブル33B204の構成例を示す図である。
クラウド基盤別接続維持間隔テーブル33B204は、クラウド基盤901と、必要な接続維持間隔902と、を構成項目として有している。
図9の例では、例えば、a社、b社、及びc社に対してそれぞれ、600秒、1200秒、及び1800秒が設定されている。
【0052】
<最大接続維持間隔テーブル>
図10は、最大接続維持間隔テーブル33B205の構成例を示す図である。
最大接続維持間隔テーブル33B205は、最大接続維持間隔1001の情報を保持しており、その値は、例えば900秒と設定される。この最大接続維持間隔1001は、クライアント端末装置3のユーザが設定した要望値である。
【0053】
<接続維持再送間隔テーブル>
図11は、接続維持再送間隔テーブル33B206の構成例を示す図である。
接続維持再送間隔テーブル33B206は、接続維持再送間隔1101の情報を保持しており、その値は、例えば4秒と設定される。
【0054】
<接続維持再送回数テーブル>
図12は、接続維持再送回数テーブル33B207の構成例を示す図である。
接続維持再送回数テーブル33B207は、接続維持再送回数1201の情報を保持しており、その値は、例えば2回と設定される。なお、本明細書では、本テーブルで指定の再送回数の再送を行い、
図11の再送間隔待っても、接続維持信号の応答が返ってこない場合に切断とみなすものとする。
【0055】
<利用ネットワーク構成要素指定テーブル>
図13は、利用ネットワーク構成要素指定テーブル33B208の構成例を示すである。
利用ネットワーク構成要素指定テーブル33B208は、利用構成要素の項目名1301と、利用構成要素の内容1302と、を構成項目として有している。利用構成要素の項目名1301は、ネットワーク種別、携帯キャリア、クラウド基盤の情報で構成され、
図13の例では、それぞれ携帯回線、A社、及びa社と設定されている。
【0056】
<クライアント端末装置の接続処理>
図14は、第1の実施形態によるクライアント端末装置3の接続処理を説明するためのフローチャートである。当該処理は、クライアント端末装置3が起動した時、又は以降で説明する意図せぬ切断を検知した後に実行される処理である。
【0057】
まず、WebSocketクライアント側通信部33Bは、携帯回線接続先テーブル33B100、及びWifi接続先テーブル33B101を読み込む(ステップ200)。
【0058】
次に、WebSocketクライアント側通信部33Bは、携帯キャリア別接続維持間隔テーブル33B202と、Wifi接続維持間隔テーブル33B203と、クラウド基盤別接続維持間隔テーブル33B204と、最大接続維持間隔テーブル33B205と、を読み込む(ステップ201)。
【0059】
また、WebSocketクライアント側通信部33Bは、利用ネットワーク構成要素指定テーブル33B208で指定されている、ネットワーク種別と、携帯回線の場合さらに携帯キャリアと、クラウド基盤の情報を読み込む(ステップ202)。つまり、現在使用している環境についての情報が取得される。
【0060】
WebSocketクライアント側通信部33Bは、各テーブルから、指定の携帯キャリアの接続維持間隔702またはWifi接続維持間隔801と、クラウド基盤の接続維持間隔902を取得する(ステップ203)。
【0061】
そして、WebSocketクライアント側通信部33Bは、接続維持再送間隔テーブル33B206と、接続維持再送回数テーブル33B207を読み込む(ステップ204)。
【0062】
続いて、WebSocketクライアント側通信部33Bは、利用ネットワーク構成要素指定テーブル33B208を参照して、ネットワーク種別が携帯回線であるか調べる(ステップ205)。使用しているネットワークが携帯回線の場合には、処理はステップ206に移行する。使用しているネットワークが携帯回線ではない場合には、処理はステップ212に移行する。
【0063】
ステップ206において、WebSocketクライアント側通信部33Bは、接続先として携帯回線接続先を採用する。(ステップ206)。
【0064】
そして、WebSocketクライアント側通信部33Bは、携帯キャリアの接続維持間隔702、クラウド基盤の接続維持間隔902、最大接続維持間隔1001を比較し、携帯キャリアの接続維持間隔702が最小であるか調べる(ステップ207)。携帯キャリアの接続維持間隔702が最小である場合、処理はステップ211に移行し、最小ではない場合には、処理はステップ208に移行する。
【0065】
ステップ211において、WebSocketクライアント側通信部33Bは、接続維持間隔として、携帯キャリアの接続維持間隔702を採用する(ステップ211)。
【0066】
一方、ステップ208においては、WebSocketクライアント側通信部33Bは、クラウド基盤の接続維持間隔902が最小であるか調べる(ステップ208)。クラウド基盤の接続維持間隔902が最小の場合には、処理はステップ209に移行し、最小でない場合には、ステップ210に移行する。
【0067】
ステップ209において、WebSocketクライアント側通信部33Bは、接続維持間隔として、クラウド基盤の接続維持間隔902を採用する(ステップ209)。
【0068】
ステップ210では、WebSocketクライアント側通信部33Bは、接続維持間隔として、最大接続維持間隔1001を採用する。
【0069】
一方、ステップ212において、WebSocketクライアント側通信部33Bは、接続先としてWifi接続先を採用する。(ステップ212)。
【0070】
そして、WebSocketクライアント側通信部33Bは、Wifiの接続維持間隔801、クラウド基盤の接続維持間隔902、最大接続維持間隔1001を比較し、Wifiの接続維持間隔801が最小であるか調べる(ステップ213)。Wifiの接続維持間隔801が最小である場合、処理はステップ217に移行し、最小ではない場合には、処理はステップ214に移行する。
【0071】
ステップ217において、WebSocketクライアント側通信部33Bは、接続維持間隔として、Wifiの接続維持間隔801を採用する(ステップ217)。
【0072】
ステップ214においては、WebSocketクライアント側通信部33Bは、クラウド基盤の接続維持間隔902が最小であるか調べる(ステップ214)。クラウド基盤の接続維持間隔902が最小の場合には、処理はステップ215に移行し、最小でない場合には、ステップ216に移行する。
【0073】
ステップ215において、WebSocketクライアント側通信部33Bは、接続維持間隔として、クラウド基盤の接続維持間隔902を採用する(ステップ215)。
【0074】
ステップ216では、WebSocketクライアント側通信部33Bは、接続維持間隔として、最大接続維持間隔1001を採用する。
【0075】
ステップ218では、WebSocketクライアント側通信部33Bの接続・切断部33B1が、これまでの処理で採用した接続先、接続維持間隔を利用して、配信装置2に接続する(ステップ218)。
【0076】
<接続中の接続信号送付処理>
図15は、第1の実施形態による、接続中の接続信号送付処理を説明するためのフローチャートである。
【0077】
まず、WebSocketクライアント側通信部33Bは、一定時間無通信状態か否か判断する(ステップ301)。一定時間無通信状態に該当する場合、処理はステップ303に移行し、該当しない場合には、処理はステップ302に移行する。
【0078】
ステップ302では、WebSocketクライアント側通信部33Bは、無通信時間計測用変数をリセットし、再度、ステップ301において一定時間無通信状態となっているか判断する。
【0079】
ステップ303では、WebSocketクライアント側通信部33Bは、無通信時間計測用変数をインクリメントする(ステップ303)。
【0080】
また、WebSocketクライアント側通信部33Bは、無通信時間計測用変数が接続維持間隔(702又は801)に到達したか否か判断する(ステップ304)。接続維持間隔に到達していない場合には、処理はステップ301に移行し、到達している場合には、処理はステップ305に移行する。
【0081】
ステップ305では、WebSocketクライアント側通信部33B(接続維持信号送信部33B200)は、配信装置2に対して接続維持信号を送付する(ステップ305)。
【0082】
さらに、WebSocketクライアント側通信部33Bは、配信装置2からの応答信号を受信する前に、接続維持再送間隔テーブル33B206に記述された接続維持再送間隔(再送時間間隔)1101が経過したか判断する(ステップ306)。接続維持再送間隔(再送時間間隔)1101が経過していない場合には、処理はステップ307に移行し、接続維持再送間隔(再送時間間隔)1101が経過している場合には、処理はステップ308に移行する。
【0083】
ステップ307では、WebSocketクライアント側通信部33Bは、再送回数をリセットし(ステップ307)、さらに、無通信時間計測用変数をリセットし(ステップ302)、処理をステップ301に移行させる。
【0084】
ステップ308では、WebSocketクライアント側通信部33Bは、接続維持信号を再送し(ステップ308)、再送回数に1加算し(ステップ309)する。
【0085】
そして、WebSocketクライアント側通信部33Bは、接続維持再送回数テーブル33B207に記述された再送回数の上限1201に達したか判断する(ステップ310)。上限に達した場合は、処理はステップ311に移行し、上限に達していない場合には、処理はステップ306に移行する。
【0086】
ステップ311では、WebSocketクライアント側通信部33Bは、当該接続の切断が意図しない切断である判断し、そのことを表すフラグを設定して、接続を切断する(ステップ311)。
【0087】
<再接続処理>
図16は、第1の実施形態による、接続中に切断が起こった場合の再接続処理を説明するためのフローチャートである。
【0088】
WebSocketクライアント側通信部33Bの接続・切断部33B1は、配信装置2との間に張られた接続を常に監視しており、切断が発生した場合に本処理を行う。
【0089】
まず、接続・切断部33B1は、発生した切断が意図しない切断か否か判断する(ステップ351)。ここで、ステップ311により発生した切断であれば、意図しない切断であることを表すフラグが設定されており、そうでない正常な切断であれば本フラグは設定されていない。
【0090】
意図しない切断である場合、接続・切断部33B1は、再度
図14の接続処理を実行する(ステップ352)。ここで、
図14の接続処理を再度行う際、既に読み込んでいるテーブルの読み込みは省略してもよい。
【0091】
意図する切断ではなく、正常な切断である場合(フラグが設定されていない場合)、処理は終了する。
【0092】
<開発が必要な要素>
図17は、本発明の実施形態によるシステムにおいて開発が必要な要素を示す図である。
(i)
図17Aは、サーバ側で、顧客毎または同一顧客のネットワーク構成要件の変更に対応するために必要な開発部分を表す模式図である。本発明が無ければ、ネットワーク構成に変更があれば、サーバ(配信装置2)側のシステム全体を設計、開発する必要があるが、本発明によると、斜線部分、つまり、送信内容リストテーブル23B1及び送信先リストテーブル23B2のみ変更すれば、サーバ(配信装置2)側は、ネットワーク構成要件の変更に対処することができるようになる。
【0093】
(ii)
図17Bは、クライアント側で、顧客毎または同一顧客のネットワーク構成要件の変更に対応するために必要な開発部分を表す模式図である。上述同様、本発明が無ければ、ネットワーク構成に変更があれば、クライアント側のシステム全体を設計、開発する必要があるが、本発明によると、斜線部分、つまり、接続回線接続先テーブル33B100、Wifi接続先テーブル33B101、Wifi接続維持間隔テーブル33B203、最大接続維持間隔テーブル33B205、利用ネットワーク構成要素指定テーブル33B208を変更すれば、クライアント側は、ネットワーク構成要件の変更に対処することができるようになる。なお、
図17Bでは、WebSocketクライアント側通信部33Bにおいて、その都度開発が不要な33B200などの要素は省略されている。
【0094】
<サーバ側のメッセージ送信処理>
図18は、サーバ(配信装置2)側で実行されるメッセージ送信処理を説明するためのフローチャートである。
【0095】
WebSocketサーバ側通信部23Cは、クライアントの状態がメッセージ送信してもOKか否か判断する(ステップ401)。ここでクライアントの状態とは、配信装置2とクライアント端末装置3との接続が確立・維持されていれば「OK」となり、切断状態であれば「NG」となる変数である。状態がNGであれば、処理はステップ402に移行し、状態がOKであれば、処理はステップ403に移行する。
【0096】
ステップ402において、WebSocketサーバ側通信部23Cは、送信不可を管理者端末装置1に返却する(ステップ402)。
【0097】
ステップ403において、WebSocketサーバ側通信部23Cは、メッセージをクライアント端末装置3に送信する。
【0098】
<送信設定画面例>
図19は、管理者端末装置1の表示部に表示される設定画面(GUI)の例を示す図である。
図19Aは送信先端末一覧画面例を示し、
図19Bは送信内容一覧画面例を示している。
図19Cは、送信設定画面例を示している。
【0099】
(i)
図19Aに示されるように、送信先端末一覧画面は、クライアント端末装置3を一意に特定・識別するための端末ID1901と、対応するクライアント端末装置3の利用者を示す利用者1902と、対応するクライアント端末装置3の状態を示す状態1903と、を構成要素として有している。
【0100】
管理者は、この画面を表示部に表示させ、状態1903がOKとなっているクライアント端末装置3の中から、メッセージを送信したいものを選択して、配信装置2にメッセージ送信を指示することができるようになっている。
【0101】
(ii)
図19Bに示されるように、送信内容一覧画面は、送信メッセージを一意に特定・識別するための送信内容ID1904と、メッセージの内容を示す送信内容1905と、を構成要素として有している。
【0102】
管理者は、予め用意されている送信内容1905の中から所望のものと選択して、配信装置2が選択したクライアント端末装置3に選択したメッセージを送信するように指示することができる。送信内容1905は、説明の簡単化のため、ここでは固定としているが、その限りではない。従って、所望のメッセージが送信内容一覧画面にない場合には、図示しないメッセージ作成画面を表示し、管理者は所望のメッセージを作成することができるようにしても良い。
【0103】
(iii)
図19Cに示される送信設定画面では、送信端末設定と送信コンテンツ設定が1つの画面内の選択操作で行うことができるようになっている。なお、
図19Bと同様に、送信コンテンツ(送信内容)は、予め固定でなくても良い。
【0104】
(2)第2の実施形態
第2の実施形態は、複数種類のネットワークが混在する環境において、ネットワークの種類が動的に変更した場合に容易に対応できるようにするための技術を提供する。
【0105】
<適用場面>
図20は、第2の実施形態の適用場面を示すための模式図である。
図20は、顧客構内でWifi網を利用し、顧客構外で携帯回線網を利用する場面を示している。この適用場面では、顧客構内から、顧客構外に移動時に、動的にネットワーク構成要素の変更が生じる。第2の実施形態は、この動的なネットワーク構成の変更に対応できるようにするシステムを提供するものである。
【0106】
図20では、管理者端末装置1が、インターネット4を介して配信装置2と接続されている。配信装置2は、インターネット4を介して、携帯キャリアC網113、顧客宅内のLANも含むWifi網6と接続されている。移動体101が顧客δ構内111内にある場合、その中のクライアント端末装置3は、Wifi網6を介して配信装置2と通信を行う。一方、移動体101が顧客δ構外にある場合には、クライアント端末装置3は、携帯キャリアC網113を介して配信装置2と通信を行う。
【0107】
<配信システムの構成>
図21は、本発明の第2の実施形態による配信システムの概略構成を示す図である。
第2の実施形態による配信システムは、第1の実施形態による構成に加えて、さらに、ネットワーク種別自動判定部33Fと、携帯キャリア自動判定部33Gとを、有している。
【0108】
ネットワーク種別自動判定部33Fは、クライアント端末装置3のOSが有している情報を参照して、どのネットワークを利用しているか判定する処理を行う。また、携帯キャリア自動判定部33Gは、ネットワーク種別自動判定部33Fによって、携帯キャリア網を利用していると判定された場合に、同OSの情報から、どのキャリアを利用しているかを判定する処理を実行する。その他の構成については、
図2と同じであるため、説明は省略する。
【0109】
<接続処理>
図22は、第2の実施形態による、クライアント端末装置3が実行する接続処理を説明するためのフローチャートである。第2の実施形態による当該接続処理は、クライアント端末装置3を起動したとき、或いは、意図せぬ切断が発生したとき、配信装置2との接続を確立する処理を実行する際に、ネットワーク種別自動判別、及びネットワーク種別が携帯回線の場合は携帯キャリア自動判別を行うというものである。
【0110】
図14との違いは、ステップ202及び203が変更されてステップ901及び902となり、新たにステップ903乃至906が追加されている。従って、以下では、これらのステップのみについて説明する。
【0111】
ステップ901及びステップ902では、それぞれ、読み込み対象及び取得対象をクラウド基盤のみに変更されている。第2の実施形態では、利用ネットワークを自動的に判別しているため、必要な情報はクラウド基盤についての情報のみだからである。
【0112】
ステップ903では、ネットワーク種別自動判別部33Fが、クライアント端末装置3のOSが保持している情報を参照し、ネットワーク種別の自動判別を行う。
【0113】
ステップ904では、携帯キャリア自動判定部33Gが、同様に、クライアント端末装置3のOSが保持している情報を参照し、携帯キャリア自動判別を行う。
【0114】
ステップ905では、WebSocketクライアント側通信部33Bが、該当する携帯キャリア接続維持間隔702(
図7参照)を取得する。
【0115】
ステップ906では、WebSocketクライアント側通信部33Bが、該当するWifi接続維持間隔801(
図8参照)を取得する。
【0116】
以上のような処理を実行することにより、動的なネットワーク構成の変更に対応して接続処理を実行することができるようになる。
【0117】
(3)第3の実施形態
第3の実施形態は、顧客の即時性(最大不通時間)要望値から、接続維持間隔を直接決める手段を提供する。
【0118】
第1及び第2の実施形態では、クライアント端末装置3の利用者は、所望の接続維持間隔として、最大接続維持間隔1001(
図10)を設定入力する必要がある。この最大接続維持間隔は、利用者からは分かりづらい概念であり、不慣れな利用者は間違って設定しまう場合もある。
【0119】
そこで、本発明の第3の実施形態では、顧客から見て分かりやすい「最大不通時間」という観点から、接続維持間隔を決定する処理を行っていることに特徴がある。なお、配信システムの構成は、WebSocketクライアント側通信部33Bの内部構成以外は、
図2と同じであるため、説明は省略する。
【0120】
<WebSocketクライアント側通信部の内部構成>
図23は、第3の実施形態による、WebSocketクライアント側通信部33Bの内部構成を示す図である。
【0121】
第1の実施形態との違いは、顧客から見てより分かりやすい概念である最大不通時間を入力値とするため、WebSocketクライアント側通信部33Bが、最大接続維持間隔テーブル33B205の代わりに、最大不通時間テーブル33B209を有している点である。
【0122】
最大不通時間は、「最大接続維持間隔」に「最終送信時刻からの再送タイムアウト時間」を加算した値である。再送タイムアウト時間は、接続維持間隔後に実行される再送処理の間隔(再送間隔)×(接続維持再送上限回数+1)で表される値である。
【0123】
<接続処理>
図24は、第3の実施形態による、クライアント端末装置が実行する接続処理を説明するためのフローチャートである。第1の実施形態による接続処理(
図14)との違いは、ステップ201を変更してステップ1101とし、ステップ1102を追加したことである。
【0124】
ステップ1101では、WebSocketクライアント側通信部33Bは、携帯キャリア別接続維持間隔テーブル33B202と、Wifi接続維持間隔テーブル33B203と、クラウド基盤別接続維持間隔テーブル33B204と、最大不通時間テーブル33B209を読み込む。最大不通時間テーブルには、利用者が設定した最大不通時間要望値が記述されている。
【0125】
ステップ1102では、WebSocketクライアント側通信部33Bは、最大不通時間要望値から、最大接続維持間隔要望値を導出する。ここで、不通時間が最大となるのは、定期的な接続維持信号の送信成功の直後に切断が発生した場合である。この場合、上述のように、最大不通時間は、接続維持信号送信間隔と、「最終送信時刻からの再送タイムアウト値」の和で表される。よって、ステップ1102では、接続維持再送間隔と接続維持再送上限回数に1を加算した値を乗じることで得られる「最終送信時刻からの再送タイムアウト値」を、「最大不通時間要望値」から差し引くことで、最大接続維持間隔が算出される。
【0126】
以上のようにして、クライアント端末装置3が自動的にその「最大不通時間」を「最大接続維持間隔」に変換するので、利用者は、より分かりやすい「最大不通時間」の要望値を入力するだけでよく、適切に接続処理を実行することが可能となる。
【0127】
(4)変形例
(i)WebSocketプロトコルの代わりに、COMETと呼ばれるプロトコルでもよい。
【0128】
(ii)上述の各実施形態では、電波不良のため、各ネットワーク装置のアイドル切断の通知などを受け取れず、クライアントが切断に気付かない問題に対する解決策としては、接続維持信号に対する応答が一定期間無い場合に接続を切断する再送タイマを設ける方法で解決を図っている。しかし、この代わりに、電波状況を監視することにより切断を判定したり、ネットワーク種別の変更を監視することにより切断を判定する手法を採ってもよい。
【0129】
(iii)第2の実施形態を、ネットワーク構成要素の静的な変更の用途に使ってもよい。
【0130】
(iv)第2の実施形態において、さらに変更されないことが分かっている場合には、自動判別の処理を省くため、自動判別対象の「ネットワーク種別」及び「携帯キャリア」の内、いずれかを固定値としてもよい。
【0131】
(v)第3の実施形態において、動的に変更されるネットワーク種別のいずれか一方で、WebSocketではなくポーリング方式を採用してもよい。
【0132】
(5)まとめ
(i)本発明は、サーバ装置(配信装置)から通信端末装置(クライアント端末装置)にメッセージをWebSocketプロトコルでプッシュ送信するメッセージプッシュ配信システムに関する。当該システムにおいて、クライアント端末装置は、ネットワーク構成要素毎にネットワークの無通信タイマを回避するのに必要な接続維持間隔(携帯通信のキャリア別の接続維持間隔、クラウド基盤別の接続維持間隔、Wifi通信の接続維持間隔)の情報(システム改変時でも変更不要な固定の情報)を事前に保持しておき、利用する構成要素を指定するだけで全要素の無通信タイマを回避できるように接続維持間隔の最小値を、接続維持間隔として採用する。このようにすることにより、顧客間で又は同一顧客によって利用されているネットワーク構成において、システム構成要素が静的に変わった場合でもシステム全体の接続維持間隔を、システム構成要素すべてに関し調べ直すことが不要となる。また、接続に必要な情報をネットワーク種別毎に分けて管理する構成とすることで、ネットワーク種別の静的変更に伴う接続先変更の作業量が軽減される。なお、当該システムでは、クライアント端末装置は、自動車等の乗り物に設置して利用することを想定している。
【0133】
また、クライアント端末装置は、無通信となった後に一定期間、接続維持のための信号を配信装置に再送するが、それに対する応答が配信装置から無い場合に切断を行う再送タイマ手段と再接続を行う再接続手段を有している。これにより、電波が良好でない環境を含め一定の即時性を確保することができるようになる。
【0134】
接続維持間隔の最小値を取得する際、クライアント端末装置は、携帯通信のキャリア別の接続維持間隔、クラウド基盤別の接続維持間隔、及びWifi通信の接続維持間隔の他に、利用者が指定する最大接続維持時間間隔(最低でもこの程度の接続維持間隔は満足すべきとする利用者の要望値)を含めて、最小値を判断するようにしている。これにより、電波が良好でない環境を含め、顧客の要望する即時性を確保することができるようになる。
【0135】
本発明(第2の実施形態)では、クライアント端末装置は、携帯通信回線かWifiかといったネットワーク種別を、クライアント端末装置が有するOSの保持情報を参照することにより自動判定し、さらに、ネットワーク種別が携帯通信回線の場合には自動で通信キャリアを判別する。このようにすることにより、動的にネットワーク種別、携帯キャリアが変更された際に、その変更を検知して再接続し、自動でネットワーク構成を切り替えることができるようになる。この場合、接続先アドレス、認証情報といった接続に必要な情報、そのネットワーク環境にあった接続維持間隔といった接続維持に必要な情報を自動で設定する。
【0136】
また、本発明(第3の実施形態)では、利用者は、最大接続維持間隔の代わりに、顧客から見てより分かり易い概念である最大不通時間を入力値として設定する。そして、最大不通時間と接続維持信号再送間隔、接続維持信号再送回数から、最大接続維持間隔を算出する。このようにすることにより、利用者にとってより分かり易いシステムを提供することができる。
【0137】
(ii)本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0138】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【0139】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【0140】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0141】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【0142】
加えて、本技術分野の通常の知識を有する者には、本発明のその他の実装がここに開示された本発明の明細書及び実施形態の考察から明らかになる。記述された実施形態の多様な態様及び/又はコンポーネントは、データを管理する機能を有するコンピュータ化ストレージシステムに於いて、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本発明の範囲と精神は後続する請求範囲で示される。