説明

インスタントメッセージセッションの管理

【解決手段】インスタントメッセージ(IM)セッションの維持は、ログイン要求をクライアントから第1のログインサーバに送信することと、IMセッションを確立し、クライアントと第1のログインサーバとの間でインスタントメッセージを転送することと、インスタントメッセージの転送における中断を検出することと、第2のログインサーバのアドレスをログイン割り当てサーバから取得することと、再接続要求をクライアントから第2のログインサーバに送信することと、再接続要求が第2のログインサーバによって受け入れられた場合に、クライアントと第2のログインサーバとの間でインスタントメッセージを交換することと、を含む。

【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本出願は、あらゆる目的のために参照によって本明細書に組み込まれる2009年7月15日付けで出願された発明の名称を「INSTANT MESSAGE METHOD, SYSTEM, AND APPARATUS(インスタントメッセージ方法、システム、及び装置)」とする、中国特許出願第200910152037.5号に基づく優先権を主張する。
【0002】
本出願は、ネットワーク通信の分野に関し、特に、インスタントメッセージング(IM)に関する。
【背景技術】
【0003】
インスタントメッセージング(IM)システムは、広範囲の用途を有する。代表的なインスタントメッセージシステムは、クライアント側とサーバ側とを含む。ユーザは、通常は、数々のクライアントにサービスを提供する1つのログインサーバにログインする。IMセッション中に、ログインサーバが使用不可になると(例えば、ハードウェア障害、又はメインテナンスに起因するシャットダウン)、ログインサーバとそのクライアントとの間のセッションは失われ、ユーザはログインインターフェースにリダイレクトされて、ログインしなおすように促される。ログインサーバに接続していたユーザは、ログインプロセスを繰り返し、異なるログインサーバとの間に新しいIMセッションを確立しなければならないので、サービスの中断を経験する。更に、切断された全てクライアントが同時に別のログインサーバにログインしようと再試行したときは、そのログインサーバに対して過剰な負荷圧がかかるであろう。
【図面の簡単な説明】
【0004】
以下の詳細な説明及び添付の図面において、発明の様々な実施形態が開示される。
【0005】
【図1】インスタントメッセージシステムの一実施形態を示したブロック図である。
【0006】
【図2】第1のログインサーバを特定するためのプロセスの一実施形態を示したフローチャートである。
【0007】
【図3】クライアント側とサーバ側との間でIMセッションを維持するためのプロセスの一実施形態を示したフローチャートである。
【0008】
【図4】第2のログインサーバにおいて再接続要求を検証するためのプロセスの一実施形態を示したフローチャートである。
【0009】
【図5】IMセッションを維持するためのプロセスの別の一実施形態を示したフローチャートである。
【0010】
【図6】IMセッションを維持するためのプロセスの別の一実施形態を示したフローチャートである。
【0011】
【図7】クライアントの一実施形態を示したブロック図である。
【0012】
【図8】ログインサーバの一実施形態を示したブロック図である。
【発明を実施するための形態】
【0013】
発明は、プロセス、装置、システム、合成物、コンピュータ可読ストレージメディアに実装されたコンピュータプログラム製品、並びに/又は結合先のメモリに格納された命令及び/若しくは結合先のメモリによって提供される命令を実行するように構成されたプロセッサなどのプロセッサを含む、数々の形態で実装することができる。本明細書では、これらの実装形態、又は発明がとりえるその他のあらゆる形態を技術と称することができる。総じて、開示されたプロセスのステップの順序は、発明の範囲内で可変である。別途明記されない限り、タスクを実施するように構成されているものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成された汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実装することができる。ここで使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された1つ又は2つ以上のデバイス、回路、及び/又は処理コアを言う。
【0014】
発明の原理を示した添付の図面とともに、以下で、発明の1つ又は2つ以上の実施形態の詳細な説明が提供される。発明は、このような実施形態に関連して説明されているが、いかなる実施形態にも限定されない。発明の範囲は、特許請求の範囲によってのみ限定され、発明は、数々の代替形態、変更形態、及び均等物を内包している。以下の説明では、発明の完全な理解を可能にするために、数々の詳細が明記されている。これらの詳細は、例示を目的として提供されており、発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施することができる。明瞭さを期するために、発明に関係した技術分野で知られている技工物は、発明が不必要に不明瞭にならないように、詳細な説明を省略されている。
【0015】
図1は、インスタントメッセージシステムの一実施形態を示したブロック図である。システム100は、クライアント102を有するクライアント側と、複数のサーバを含むサーバ側104とを含む。その他の実施形態では、追加のクライアント及びサーバが可能である。クライアントデバイスは、パソコン、サーバコンピュータ、ハンドヘルドデバイスすなわち携帯用デバイス、フラットパネルデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電子デバイス、ネットワークPC、ミニコンピュータ、大型コンピュータ、特殊用途向けデバイス、上記のシステム若しくはデバイスのうちの任意を含む分散コンピューティング環境、又は1つ若しくは2つ以上のプロセッサと当該プロセッサにつながれたメモリとを含みプロセッサに命令を提供するように構成されたその他のハードウェア/ソフトウェア/ファームウェアの組み合わせなどの、1つ又は2つ以上のコンピューティングデバイスを使用して実装することができる。各サーバデバイスは、同様に実装することができる。この例では、異なるサーバ機能を持つ個別のサーバが示されているが、サーバ及びそれらの機能には、合体されてよいものもあるし、更に分割されて複数のデバイスに分散されてよいものもある。
【0016】
図に示された例では、サーバは、ログイン割り当てサーバ106と、複数のログインサーバ108と、データベースサーバ110と、情報記憶サーバ112とを含む。クライアントと、ログインサーバのうちの1つとの間に、IMセッションが確立される。以下で更に詳しく説明されるように、図に示されたIMシステムにおいて、クライアントとログインサーバとの間のインスタントメッセージ通信セッションが中断されると、クライアントは、クライアント側とサーバ側との間でデータの損失を生じることなく別のログインサーバに自動的に切り替えてログインすることができる。
【0017】
図2は、第1のログインサーバを特定するためのプロセスの一実施形態を示したフローチャートである。ステップ202において、ユーザ名及びパスワードなどのユーザアカウント情報がユーザによって入力され、クライアントにおいて受信される。ステップ204において、クライアントは、アドレス割り当て要求をログイン割り当てサーバに送信する。ログイン割り当てサーバによってログイン要求が受信されると、ステップ206において、ログイン割り当てサーバは、利用可能なログインサーバのアドレスのリストを取得する。ステップ208において、ログイン割り当てサーバは、利用可能なログインサーバのリストからログインサーバを選択し、その選択されたログインサーバのアドレスをクライアントに送信する。
【0018】
図3は、クライアント側とサーバ側との間でIMセッションを維持するためのプロセスの一実施形態を示したフローチャートである。
【0019】
ステップ302において、クライアントは、ログイン割り当てサーバから受信された第1のログインサーバのアドレスを使用して第1のログインサーバにログイン要求を送信する。ログイン要求は、クライアントアカウント情報と、クライアントにおいて生成された一意でランダムな情報であるクライアント側セキュリティキー(キークライアント)とを含んでよい。一部の実施形態では、キークライアントは、ランダムに生成された英数字列を含む。
【0020】
ステップ304において、ログイン要求は、第1のログインサーバによって検証され、IMセッションが、クライアントと第1のログインサーバとの間に確立される。インスタントメッセージが、第1のログインサーバを介してクライアントとその他のピアクライアントとの間で交換される。
【0021】
第1のログインサーバは、ログイン要求を受信及び検証する。一部の実施形態において、ログイン要求が検証に合格したならば、第1のログインサーバは、受信されたキークライアントにしたがってサーバ側セキュリティキー(キーサーバ)を生成し、そのキーサーバを含む検証合格情報をクライアントに返し、クライアントの第1のプロパティ情報セットをメモリに記憶し、その第1のプロパティ情報セットを情報記憶サーバに送信する。第1のプロパティ情報セットは、クライアントアカウント情報と、それに対応するキーサーバとを含む。この例では、キーサーバは、受信されたキークライアントに基づいて第1のログインサーバによって生成されたランダムな情報であり、クライアントのログイン状態を一意に識別するために使用される。例えば、キーサーバは、キークライアントを関数に適用することによって生成されたランダムな英数字列であってよい。キーサーバは、キークライアントを使用して生成可能である場合にキークライアントに合致するとみなされる。
【0022】
IMセッションが確立されたら、クライアントは、受信されたキーサーバをそのメモリに記憶する。
【0023】
IMセッション中は、ユーザログイン及びパスワードなどのユーザ関連情報が、データベースサーバに記憶される。
【0024】
ステップ306において、IMセッションにおける中断がクライアントによって検出される。中断は、第1のログインサーバが利用不可になったときに、又はそれ以外の理由で、クライアントによって送信されたインスタントメッセージに応答できなくなったときに発生する。
【0025】
第1のログインサーバとのインスタントメッセージの切断を検出した後、ステップ308において、クライアントは、第1のログインサーバに送信されるべきデータをキャッシュに記憶し、アドレス割り当て要求をログイン割り当てサーバに送信する。ログイン割り当てサーバは、アドレス割り当て要求にしたがって、ログインに利用可能なサーバのアドレスの第2のリストを取得する。第2のアドレスリスト、すなわちログインに利用可能な幾つかのログインサーバのアドレスからなるリストを取得した後、ログイン割り当てサーバは、リストのなかの一サーバを第2のログインサーバとして選択し、その第2のログインサーバのアドレスをクライアントに送信する。現時点でログインに利用可能なサーバのアドレスのリストを取得するために、ログイン割り当てサーバは、全てのログインサーバに定期的にコマンドを送信し、ログインサーバから応答が返ってきた場合にそのログインサーバをログインに利用可能であると判定し、そのログインサーバのアドレスをアドレスのリストに追加することができる。或いは、ログイン割り当てサーバは、プロセス200の間、取得された第1のアドレスのリストを記憶し、その記憶されたリストに基づいて第2のログインサーバを選択することができる。
【0026】
このケースでは、ログイン割り当てサーバは、取得されたアドレスのリストのなかから、指定の順序で、ランダムに、又はルール(クライアントに最も近いサーバなど)にしたがって、ログインサーバのアドレスとして一アドレスを選択することができる。
【0027】
一部の実施形態では、クライアントは、第1のログインサーバに送信されるべきデータをキャッシュに記憶した後に、随意として、切断された第1のログインサーバへの再接続を試みる。切断された第1のログインサーバへの再接続が失敗したならば、クライアントは、ログイン割り当てサーバから第2のログインサーバを取得する。
【0028】
ステップ310において、クライアントは、第2のログインサーバに再接続要求を送信する。この要求は、第1のログインサーバによって返されたキーサーバ、及びクライアントアカウント情報などの、クライアントの第2のプロパティ情報セットを含む。一部の実施形態では、クライアントアカウント情報は、暗号化されて第2のログインサーバに送信される。
【0029】
ステップ312において、再接続要求が受け入れられたか否かが判定される。受け入れられたならば、ステップ314において、クライアントは、第2のログインサーバとのIMセッションを再開させる。受け入れられなかったならば、ステップ316において、クライアントは、ログインページにリダイレクトされ、そこで、ユーザは、選択されたログインサーバとの間に新しいIMセッションを確立することができるようにログインしなおすように要求される。一部の実施形態では、クライアントをログインページにリダイレクトする代わりに、ログイン割り当てサーバから第3のログインサーバが取得され、ステップ308〜312が繰り返される。
【0030】
図4は、第2のログインサーバにおいて再接続要求を検証するためのプロセスの一実施形態を示したフローチャートである。
【0031】
クライアントから再接続要求を受信した後、ステップ452において、第2のログインサーバは、クライアントの第1のプロパティ情報セットが、第2のログインサーバによって直接アクセス可能なローカルメモリ(ローカルファイルシステムやローカルデータベースなど)に記憶されているか否かをチェックする。第1のプロパティ情報セットがローカルメモリに記憶されているならば、ステップ454において、第2のログインサーバは、クライアントの第1のプロパティ情報セットをローカルメモリから読み出し、記憶されていないならば、ステップ456において、第2のログインサーバは、クライアントの第1のプロパティ情報セットを情報記憶サーバから取得する。
【0032】
ここで、第2のログインサーバと第1のログインサーバとがコンシステント(整合している)である(すなわち、同じ情報へのアクセスを有する)ならば、クライアントの第1のプロパティ情報セットをローカルメモリから検索することが可能であり、したがって、第2のログインサーバは、クライアントの第1のプロパティ情報セットをローカルメモリから直接取得することができる。第2のログインサーバと第1のログインサーバとがコンシステントでないならば、クライアントの第1のプロパティ情報セットは、第2のログインサーバのローカルメモリに記憶されておらず、したがって、第2のログインサーバは、クライアントの第1のプロパティ情報セットを情報記憶サーバから取得する。
【0033】
第2のログインサーバは、受信された再接続要求を、第1のプロパティ情報セットに基づいて検証する。この例では、ステップ458において、第2のログインサーバは、再接続要求に含まれているクライアントの第2のプロパティ情報セットを取得するために、受信された再接続要求をパース(解析)する。ステップ460において、第2のログインサーバは、事前に取得された第1のプロパティ情報セットを第2のプロパティ情報セットと比較する。第1のプロパティ情報セットと第2のプロパティ情報セットとが一致するならば、再接続要求は検証(合格と)され、ステップ462において、成功サインがキーサーバとともにクライアントに送信される。しかしながら、第1のプロパティ情報セットと第2のプロパティ情報セットとが一致しないならば、ステップ464において、失敗サインがクライアントに送信される。
【0034】
上述のように、本出願の実施形態において、ログインサーバがハードウェア障害又は手動によるメインテナンスなどの何らかの理由ゆえにサービス不可であるときに、クライアントは、そのログインサーバとのセッションを失う。しかしながら、そのままログインインターフェースに戻る代わりに、クライアントは、クライアント側とサーバ側との間でデータを失うことなく自動的にログインサーバを切り替えるために再接続を開始し、そのログインサーバは、多数のクライアントに同時に再ログインされることによる過剰な負荷圧を受けずにすむ。
【0035】
図5は、IMセッションを維持するためのプロセスの別の一実施形態を示したフローチャートである。
【0036】
ステップ401において、ユーザがクライアントを介してログインし、このクライアントは、第1のログインサーバとのインスタントメッセージセッションを開始させる。クライアントが第1のログインサーバにログインするときに、そのクライアントの第1のプロパティ情報セットは、第1のログインサーバによってそのローカルメモリに記憶されるとともに、リモート情報記憶サーバによっても記憶される。ここで、第1のプロパティ情報セットは、ユーザアカウント情報と、それに対応するキーサーバとを含む。インスタントメッセージセッション中、ユーザに関連したインスタントメッセージ情報は、バックグラウンドにあるデータベースサーバに記憶される。
【0037】
ステップ402において、第1のログインサーバとのインスタントメッセージセッションが切断されたならば、クライアントは、第1のログインサーバに送信されるべきデータをキャッシュに記憶し、アドレス割り当て要求をログイン割り当てサーバに送信する。
【0038】
ステップ403において、ログイン割り当てサーバは、ログインに利用可能なサーバのアドレスの第2のリストを取得し、取得された第2のアドレスリストのなかの1つを第2のログインサーバのアドレスとして決定し、その第2のログインサーバのアドレスをクライアントに送信する。
【0039】
ステップ404において、取得されたアドレスを使用して、クライアントは、暗号化されたうえで第2のログインサーバに送信される、第1のログインサーバによって返されたキーサーバと、クライアントアカウント情報とを含むクライアントの第2のプロパティ情報セットを含む再接続要求を第2のログインサーバに送信する。
【0040】
ステップ405において、第2のログインサーバは、クライアントの第1のプロパティ情報セットがローカルメモリに記憶されているかどうかをチェックする。第1のプロパティ情報セットがローカルメモリに記憶されているならば、制御は406に移され、記憶されていないならば、制御は407に遷移される。
【0041】
ステップ406において、第2のログインサーバは、クライアントの第1のプロパティ情報セットをローカルメモリから取得し、ステップ409に進む。
【0042】
ステップ407において、第2のログインサーバは、リモート情報記憶サーバにアクセスし、クライアントの第1のプロパティ情報セットがリモート情報記憶サーバに記憶されているかどうかをチェックし、記憶されているならば、制御はステップ408に遷移され、記憶されていないならば、制御はステップ413に遷移される。
【0043】
ステップ408において、第2のログインサーバは、クライアントの第1のプロパティ情報セットを情報記憶サーバから取得し、制御はステップ409に遷移される。
【0044】
ステップ409において、第2のログインサーバは、受信された再接続要求をパースし、取得されたクライアントの第1のプロパティ情報セットを再接続要求のなかのクライアントの第2のプロパティ情報セットと比較する。第1のプロパティ情報セットと第2のプロパティ情報セットとが一致するならば、制御はステップ410に遷移され、一致しないならば、制御はステップ413に遷移される。一部の実施形態では、両プロパティ情報がともに同じアカウント情報を含み、尚且つ第2のプロパティ情報セットに含まれているキーサーバが第1のプロパティ情報セットかに含まれているキークライアントを使用して生成可能である場合に、一致が見いだされる。
【0045】
ステップ410において、第2のログインサーバは、受信された再接続要求を検証し、検証が合格であるならば、制御はステップ411に遷移され、合格でないならば、制御はステップ413に遷移される。
【0046】
ステップ411において、第2のログインサーバは、ユーザに関連したインスタントメッセージ情報をデータベースサーバから取得し、キーサーバも含む検証合格情報をクライアントに返す。
【0047】
第2のログインサーバが、クライアントの第1のプロパティ情報セットを情報記憶サーバから取得するならば、第2のログインサーバは、取得されたクライアントの第1のプロパティ情報セットを自身のローカルメモリに記憶する。
【0048】
ステップ412において、クライアントは、受信された検証合格情報にしたがって第2のログインサーバとのインスタントメッセージセッションを開始させる。
【0049】
検証合格情報が受信されたならば、すなわち、再接続が成功であるならば、クライアントは、インスタントメッセージセッションを続けるためにキャッシュのなかのデータを第2のログインサーバに送信する。インスタントメッセージセッション中、ユーザに関連した新しいインスタントメッセージ情報は、依然として、バックグラウンドにあるデータベースサーバに記憶される。
【0050】
ステップ413において、第2のログインサーバは、検証失敗情報をクライアントに返す。
【0051】
ステップ414において、検証失敗情報を受信した後、クライアントは、ログインインターフェースに戻る。要するに、再接続は失敗し、ユーザは、新しいセッションを開始させるために手動でログインしなおす必要がある。
【0052】
図6は、IMセッションを維持するためのプロセスの別の一実施形態を示したフローチャートである。
【0053】
ステップ501において、クライアントが、第1のログインサーバにログインし、第1のログインサーバとのインスタントメッセージセッションを開始させる。クライアントが第1のログインサーバにログインするときに、そのクライアントの第1のプロパティ情報セットは、第1のログインサーバによってそのローカルメモリに記憶されるとともに、リモート情報記憶サーバによっても記憶される。ここで、第1のプロパティ情報セットは、ユーザアカウント情報と、それに対応するキーサーバとを含んでよい。インスタントメッセージセッション中、ユーザに関連したインスタントメッセージ情報は、バックグラウンドにあるデータベースサーバに記憶される。
【0054】
ステップ502において、第1のログインサーバとのインスタントメッセージが切断されたならば、クライアントは、第1のログインサーバに送信されるべきデータをキャッシュに記憶し、第1のログインサーバへの再接続を試みる。第1のログインサーバへの再接続が成功したならば、クライアントは、第1のログインサーバとのインスタントメッセージセッションを続け、成功しなかったならば、ステップ503が実行される。
【0055】
ステップ503において、クライアントは、アドレス割り当て要求をログイン割り当てサーバに送信する。
【0056】
ステップ504において、アドレス割り当て要求を受信した後、ログイン割り当てサーバは、ログインに利用可能なサーバのアドレスの第2のリストを取得し、取得された第2のアドレスリストのなかの1つを第2のログインサーバのアドレスとして決定し、その第2のログインサーバのアドレスをクライアントに送信する。
【0057】
ここでは、第1のログインサーバに再接続する試みが失敗しており、第2のログインサーバのアドレスは、第1のログインサーバのそれとは異なる。
【0058】
ステップ505において、決定されたアドレスにしたがって、クライアントは、クライアントによって暗号化されたうえで第2のログインサーバに送信される、第1のログインサーバによって返されたキーサーバと、クライアントアカウント情報とを含むクライアントの第2のプロパティ情報セットを持つ再接続要求を、第2のログインサーバに送信する。
【0059】
ステップ506において、第2のログインサーバは、クライアントの第1のプロパティ情報セットがローカルメモリに記憶されているかどうかをチェックする。第1のプロパティ情報セットがローカルメモリに記憶されているならば、ステップ507が実行され、記憶されていないならば、ステップ508が実行される。
【0060】
この例では、クライアントによる第1のログインサーバへの再接続が失敗しており、したがって、第2のログインサーバは、クライアントの第1のプロパティ情報のセットを自身のローカルメモリから検索することはできず、したがって、ステップ508が実行される。
【0061】
ステップ507において、第2のログインサーバは、クライアントの第1のプロパティ情報のセットを自身のローカルメモリから取得し、ステップ510が実行される。
【0062】
ステップ508において、第2のログインサーバは、リモート情報記憶サーバにアクセスし、クライアントの第1のプロパティ情報セットがリモート情報記憶サーバに記憶されているか否かをチェックする。記憶されているならば、ステップ509が実行され、記憶されていないならば、ステップ514が実行される。
【0063】
ステップ509において、第2のログインサーバは、クライアントの第1のプロパティ情報セットを情報記憶サーバから取得し、ステップ510が実行される。
【0064】
ステップ510において、第2のログインサーバは、受信された再接続要求をパースし、取得されたクライアントの第1のプロパティ情報セットを再接続要求が持つクライアントの第2のプロパティ情報セットと比較し、第1のプロパティ情報セットと第2のプロパティ情報セットとが合致するならば、ステップ511が実行され、合致しないならば、ステップ514が実行される。
【0065】
ステップ511において、第2のログインサーバは、受信された再接続要求を検証する。検証が成功であるならば、ステップ512が実行され、成功でないならば、ステップ514が実行される。
【0066】
ステップ512において、第2のログインサーバは、ユーザに関連したインスタントメッセージ情報をバックグラウンドにあるデータベースサーバから取得し、キーサーバも含みえる検証成功情報をクライアントに返す。
【0067】
本実施形態において、第2のログインサーバは、クライアントの第1のプロパティ情報セットを情報記憶サーバから取得するので、第2のログインサーバは、取得されたクライアントの第1のプロパティ情報セットを自身のローカルメモリに記憶する。
【0068】
ステップ513において、クライアントは、受信された検証成功情報にしたがって、第2のログインサーバとのインスタントメッセージセッションを開始させる。
【0069】
検証成功情報が受信されたならば、すなわち、再接続が成功であるならば、クライアントは、インスタントメッセージセッションを続けるためにキャッシュのなかのデータを第2のログインサーバに送信する。インスタントメッセージセッション中、ユーザに関連した新しいインスタントメッセージ情報は、依然、データベースサーバに記憶される。
【0070】
ステップ514において、第2のログインサーバは、検証失敗情報をクライアントに返す。
【0071】
ステップ515において、検証失敗情報を受信した後、クライアントは、ログインインターフェースに戻る。要するに、再接続は失敗し、ユーザは、再接続を開始させるために手動でログインしなおす必要がある。
【0072】
上記の実施形態では、クライアントは、クライアントと第1のログインサーバとの間のインスタントメッセージセッションが中断された後に、アドレス割り当て要求をログイン割り当てサーバに送信し、ログイン割り当てサーバは、アドレス割り当て要求を受信した後に、ログインに利用可能なサーバのアドレスの第2のリストを取得し、当該第2のアドレスリストの中の1つを第2のログインサーバのアドレスとして選択する。本応用の一実施形態では、クライアントは、取得された第1のアドレスリストからの別のアドレスを第2のログインサーバのアドレスとして決定することもできる。
【0073】
図7は、クライアントの一実施形態を示したブロック図である。この例では、クライアントは、取得ユニット710と、送信ユニット720と、受信ユニット730とを含む。
【0074】
取得ユニット710は、第1のログインサーバとのインスタントメッセージセッションが中断されたときに第2のログインサーバのアドレスを取得するように構成される。一部の実施形態では、取得ユニットは、ログイン割り当てサーバによって第1のアドレスリストから決定された第2のログインサーバのアドレスを取得する。あるいは、取得ユニットは、ログインに利用可能なサーバのアドレスの第2のリストから第2のログインサーバのアドレスを取得することができる。取得ユニットは、更に、ログインに利用可能なサーバのアドレスの第1のリストからログイン割り当てサーバによって決定された第1のログインサーバのアドレスを取得するようにも構成される。
【0075】
送信ユニット720は、第2のログインサーバのアドレスにしたがって再接続要求を第2のログインサーバに送信するように構成される。送信ユニットは、更に、クライアントアカウント情報とクライアントキーとを含むログイン要求を第1のログインサーバのアドレスにしたがって第1のログインサーバに送信するようにも構成される。
【0076】
受信ユニット730は、再接続要求の検証後に、第2のログインサーバによって返された検証応答を受信するように構成される。受信ユニットは、更に、ログイン要求の検証後に、第1のログインサーバによって返された検証応答を受信するようにも構成される。
【0077】
図8は、ログインサーバの一実施形態を示したブロック図である。図に示された実施形態では、ログインサーバは、受信ユニット810と、検証ユニット820と、送信ユニット830とを含む。
【0078】
受信ユニット810は、クライアントによって送信された再接続要求を受信するように構成される。当該要求は、クライアントからのクライアントアカウント情報とクライアントキーとを含む。
【0079】
検証ユニット820は、ログイン要求を検証するように構成される。検証ユニット820は、受信された再接続要求を検証するように構成される。一部の実施形態では、検証ユニットは、更に、取得サブユニットと、パースサブユニットと、比較・検証サブユニットとを含み、取得サブユニットは、クライアントの第1のプロパティ情報セットを取得するように構成され、パースサブユニットは、クライアントの第2のプロパティ情報セットを取得するために再接続要求をパースするように構成され、比較・検証サブユニットは、第1のプロパティ情報セットと第2のプロパティ情報セットとを比較し、両者が一致するならば再接続要求を検証(合格)とするように構成される。
【0080】
取得サブユニットは、先ず、クライアントの第1のプロパティ情報セットがローカルメモリに記憶されているかどうかをチェックし、第1のプロパティ情報セットがローカルメモリに記憶されているならばそれをローカルメモリから取得し、記憶されていないならばクライアントの第1のプロパティ情報セットを情報記憶サーバから取得する。
【0081】
送信ユニット830は、検証応答メッセージをクライアントに送信するように構成される。送信ユニット830は、更に、検証が合格であるならば、クライアントの第1のプロパティ情報セットをローカルメモリに記憶し、第1のプロパティ情報セットを情報記憶サーバに送信し、サーバキーを含む検証合格メッセージをクライアントに送信するように構成される。ここで、第1のプロパティ情報セットは、クライアントアカウント情報と、クライアントキーにしたがって生成されたサーバキーとを含んでよい。
【0082】
上述されたユニットは、1つ又は2つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、プログラマブルロジックデバイス及び/若しくは所定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装することができる。一部の実施形態では、ユニットは、本発明の実施形態で説明されている方法をコンピュータデバイス(パソコン、サーバ、ネットワーク機器など)に実行させるための幾つかの命令を含み且つ不揮発性のストレージメディア(光ディスク、フラッシュストレージデバイス、モバイルハードディスクなど)に格納可能であるソフトウェア製品の形で具現化することができる。ユニットは、1つのデバイス上に実装されてよい、又は複数のデバイスに分散されてよい。ユニットの機能は、互いに合体されてよい、又は更に複数のサブユニットに分割されてよい。
【0083】
本出願は、方法、デバイス(システム)、又はコンピュータプログラム製品の、フローチャート及び/又はブロック図を参照にして説明されている。フローチャート及び/又はブロック図における各プロセス及び/又は各ブロック、並びにそれらの組み合わせは、コンピュータプログラム命令として実現可能であることがわかる。コンピュータプログラム命令は、機械を生成するために、汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ、又はその他の任意のプログラム可能データ処理デバイスのプロセッサ用に提供されてよく、したがって、コンピュータ又はその他の任意のプログラム可能データ処理デバイスのプロセッサによって実行される命令は、フローチャートの1つ若しくは2つ以上のプロセス及び/又はブロック図の1つ若しくは2つ以上のブロックによって指定された機能を実現するための手段を生み出すことができる。
【0084】
これらのコンピュータプログラム命令は、また、コンピュータ又はその他のプログラム可能データ処理デバイスを特定の方式で動作するように誘導することができる任意のコンピュータ可読ストレージに記憶されてもよく、したがって、このようなコンピュータ可読ストレージに記憶されている命令は、フローチャートの1つ若しくは2つ以上のプロセス及び/又はブロック図の1つ若しくは2つ以上のブロックによって指定された機能を実現する、命令手段を含む製品を生み出すことができる。
【0085】
これらのコンピュータ命令は、コンピュータ又はその他の任意のプログラム可能データ処理デバイスが一連の動作ステップを実行し、コンピュータによって実現される処理を生み出すことを可能にするために、コンピュータ又はその他の任意のプログラム可能データ処理デバイスに取り込まれてよく、したがって、コンピュータ又はその他のプログラム可能デバイスに実装された命令は、フローチャートの1つ若しくは2つ以上のプロセス及び/又はブロック図の1つ若しくは2つ以上のブロックによって指定された機能を実現するためのステップを提供することができる。
【0086】
当業者ならば、発明の趣旨及び範囲から逸脱することなく様々な変更及び置換が本発明に対してなされえることが明らかである。したがって、これらの変更及び置換が全て、特許請求の範囲に定められた本出願の範囲及びその等価技術の範囲内に入るならば、本発明は、これらの変更及び置換もその範囲に含むことを意図されている。
【0087】
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明の実現には、多くの代替的手法がある。開示された実施形態は、例示的であって、限定的ではない。

【特許請求の範囲】
【請求項1】
インスタントメッセージ(IM)セッションを維持する方法であって、
クライアントから第1のログインサーバにログイン要求を送信することと、
前記IMセッションを確立し、前記クライアントと前記第1のログインサーバとの間でインスタントメッセージを転送することと、
前記インスタントメッセージの転送における中断を検出することと、
ログイン割り当てサーバから第2のログインサーバのアドレスを取得することと、
前記クライアントから前記第2のログインサーバに再接続要求を送信することと、
前記再接続要求が前記第2のログインサーバによって受け入れられた場合に、前記クライアントと前記第2のログインサーバとの間でインスタントメッセージを交換することと、
を備える方法。
【請求項2】
請求項1に記載の方法であって、
前記第1のログインサーバは、
利用可能なログインサーバのアドレスの第1のリストをログイン割り当てサーバによって取得し、
前記第1のアドレスリストから前記第1のログインサーバのアドレスを選択すること、
によって決定される、方法。
【請求項3】
請求項1に記載の方法であって、
前記ログイン要求は、クライアントアカウント情報と、クライアントセキュリティキーとを含み、
前記IMセッションを確立することは、
前記第1のログインサーバによって、前記ログイン要求を検証することと、
前記検証が成功であるならば、前記クライアントアカウント情報と、前記クライアントキーにしたがって生成されたサーバキーとを含む、前記クライアントの第1のプロパティ情報セットをローカルメモリに記憶し、前記第1のプロパティ情報セットを情報記憶サーバに送信することと、
前記検証が成功であることを前記クライアントに示す、前記サーバキーを含むサインを前記クライアントに送信することと、
を含む、方法。
【請求項4】
請求項3に記載の方法であって、
前記再接続要求は、前記クライアントアカウント情報と、前記サーバキーとを含む、前記クライアントの第2のプロパティ情報セットを含む、方法。
【請求項5】
請求項2に記載の方法であって、
前記第2のログインサーバのアドレスを取得することは、
利用可能なログインサーバのアドレスの第2のリストを前記ログイン割り当てサーバから取得することと、
前記第2のアドレスリストから前記第2のログインサーバのアドレスを選択することと、
を含む、方法。
【請求項6】
請求項2に記載の方法であって、
前記第2のログインサーバのアドレスを取得することは、前記取得された第1のアドレスリストから前記第2のログインサーバのアドレスを決定することを含む、方法。
【請求項7】
請求項1に記載の方法であって、
前記第2のログインサーバは、
前記クライアントの第1のプロパティ情報セットを取得し、
前記クライアントの第2のプロパティ情報セットを取得するために前記再接続要求をパースし、
前記第1のプロパティ情報セットと前記第2のプロパティ情報セットとを比較し、
前記第1のプロパティ情報セットと前記第2のプロパティ情報セットとが一致するならば、前記再接続要求を受け入れること、
によって前記再接続要求を検証する、方法。
【請求項8】
請求項7に記載の方法であって、
前記第2のログインサーバは、
前記第2のログインサーバによって、前記クライアントの前記第1のプロパティ情報セットが前記ローカルメモリに記憶されているかどうかをチェックし、
前記第1のプロパティ情報セットが前記ローカルメモリに記憶されているならば、前記クライアントの前記第1のプロパティ情報セットを前記ローカルメモリから取得し、
前記第1のプロパティ情報セットがローカルメモリに記憶されていないならば、前記クライアントの前記第1のプロパティ情報セットを情報記憶サーバから取得すること、
によって前記クライアントの前記第1のプロパティ情報セットを取得する、方法。
【請求項9】
インスタントメッセージ(IM)クライアントシステムであって、
1つ又は2つ以上のプロセッサと、
前記1つ又は2つ以上のプロセッサにつながれ、前記1つ又は2つ以上のプロセッサに命令を提供するように構成された1つ又は2つ以上のメモリと、
を備え、
前記1つ又は2つ以上のプロセッサは、
第1のログインサーバにログイン要求を送信し、
前記IMセッションを確立し、前記クライアントシステムと前記第1のログインサーバとの間でインスタントメッセージを転送し、
前記インスタントメッセージの転送における中断を検出し、
ログイン割り当てサーバから第2のログインサーバのアドレスを取得し、
前記クライアントシステムから前記第2のログインサーバに再接続要求を送信し、
前記再接続要求が前記第2のログインサーバによって受け入れられた場合に、前記クライアントと前記第2のログインサーバとの間でインスタントメッセージを交換するように、
構成される、システム。
【請求項10】
請求項9に記載のシステムであって、
前記第1のログインサーバは、
利用可能なログインサーバのアドレスの第1のリストをログイン割り当てサーバによって取得し、
前記第1のアドレスリストから前記第1のログインサーバのアドレスを選択すること、
によって決定される、システム。
【請求項11】
請求項9に記載のシステムであって、
前記ログイン要求は、クライアントアカウント情報と、クライアントセキュリティキーとを含み、
前記IMセッションの確立は、
前記第1のログインサーバによって、前記ログイン要求を検証し、
前記検証が成功であるならば、前記クライアントアカウント情報と、前記クライアントキーにしたがって生成されたサーバキーとを含む、前記クライアントの第1のプロパティ情報セットをローカルメモリに記憶し、前記第1のプロパティ情報セットを情報記憶サーバに送信し、
前記検証が成功であることを前記クライアントに示す、前記サーバキーを含むサインを前記クライアントに送信すること、
を含む、システム。
【請求項12】
請求項11に記載のシステムであって、
前記再接続要求は、前記クライアントアカウント情報と、前記サーバキーとを含む、前記クライアントの第2のプロパティ情報セットを含む、システム。
【請求項13】
請求項10に記載のシステムであって、
前記第2のログインサーバのアドレスの取得は、
利用可能なログインサーバのアドレスの第2のリストを前記ログイン割り当てサーバから取得し、
前記第2のアドレスリストから前記第2のログインサーバのアドレスを選択すること、
を含む、システム。
【請求項14】
請求項10に記載のシステムであって、
前記第2のログインサーバのアドレスの取得は、前記取得された第1のアドレスリストから前記第2のログインサーバのアドレスを決定することを含む、システム。
【請求項15】
インスタントメッセージ(IM)再接続要求を扱う方法であって、
IMセッションのための再接続要求をクライアントから受信することと、
前記IMセッションで使用されるクライアントアカウント情報とクライアントキーとを含む、前記クライアントの第1のプロパティ情報セットを取得することと、
前記IMセッションで使用されるクライアントアカウント情報とサーバキーとを含む、前記クライアントの第2のプロパティ情報セットを取得するために、前記再接続要求をパースすることと、
前記第1のプロパティ情報セットと前記第2のプロパティ情報セットとを比較することと、
前記第1のプロパティ情報セットと前記第2のプロパティ情報セットとが一致するならば、検証成功のサインを前記クライアントに送信することと、
を備える方法。
【請求項16】
請求項9に記載の方法であって、
前記クライアントの第1のプロパティ情報セットを取得することは、
前記クライアントの前記第1のプロパティ情報セットがローカルメモリに記憶されているかどうかを決定することと、
前記第1のプロパティ情報セットがローカルメモリに記憶されているならば、前記クライアントの前記第1のプロパティ情報セットを前記ローカルメモリから取得することと、
前記第1のプロパティ情報セットがローカルメモリに記憶されていないならば、前記クライアントの前記第1のプロパティ情報セットを前記情報記憶サーバから取得することと、
を含む、方法。
【請求項17】
請求項10に記載の方法であって、
前記第1のプロパティ情報セットがローカルメモリに記憶されていないならば、前記方法は、更に、取得された前記クライアントの前記第1のプロパティ情報セットを前記ローカルメモリに記憶することを備える方法。
【請求項18】
インスタントメッセージ(IM)サーバシステムであって、
1つ又は2つ以上のプロセッサと、
前記1つ又は2つ以上のプロセッサにつながれ、前記1つ又は2つ以上のプロセッサに命令を提供するように構成された1つ又は2つ以上のメモリと、
を備え、
前記1つ又は2つ以上のプロセッサは、
IMセッションのための再接続要求をクライアントから受信し、
前記IMセッションで使用されるクライアントアカウント情報とクライアントキーとを含む、前記クライアントの第1のプロパティ情報セットを取得し、
前記IMセッションで使用されるクライアントアカウント情報とサーバキーとを含む、前記クライアントの第2のプロパティ情報セットを取得するために、前記再接続要求をパースし、
前記第1のプロパティ情報セットと前記第2のプロパティ情報セットとを比較し、
前記第1のプロパティ情報セットと前記第2のプロパティ情報セットとが一致するならば、検証成功のサインを前記クライアントに送信するように、
構成される、システム。
【請求項19】
請求項18に記載のシステムであって、
前記クライアントの第1のプロパティ情報セットの取得は、
前記クライアントの前記第1のプロパティ情報セットがローカルメモリに記憶されているかどうかを決定し、
前記第1のプロパティ情報セットがローカルメモリに記憶されているならば、前記クライアントの前記第1のプロパティ情報セットを前記ローカルメモリから取得し、
前記第1のプロパティ情報セットがローカルメモリに記憶されていないならば、前記クライアントの前記第1のプロパティ情報セットを前記情報記憶サーバから取得すること、
を含む、システム。
【請求項20】
請求項19に記載のシステムであって、
前記第1のプロパティ情報セットがローカルメモリに記憶されていないならば、前記方法は、更に、取得された前記クライアントの前記第1のプロパティ情報セットを前記ローカルメモリに記憶することを含む、システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2012−533792(P2012−533792A)
【公表日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2012−520623(P2012−520623)
【出願日】平成22年7月14日(2010.7.14)
【国際出願番号】PCT/US2010/001989
【国際公開番号】WO2011/008284
【国際公開日】平成23年1月20日(2011.1.20)
【出願人】(510330264)アリババ・グループ・ホールディング・リミテッド (50)
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
【Fターム(参考)】