(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【課題を解決するための手段】
【0005】
本開示は、ネットワーク機能を実装するためのスタンドアロン型ソフトウェアアプリケーションに対する問題を解決するために、スタンドアロン型ソフトウェアの通信を実施するための技術を提供する。かかる問題は、高難易度、高コスト、および低互換性を含む。本技術の様々な態様を以下に要約する。
【0006】
一態様では、スタンドアロン型ソフトウェアアプリケーションの通信を実施するための方法は、第1ユーザー装置と第2ユーザー装置が相互にリモートである、第1ユーザー装置と第2ユーザー装置との間の即時通信接続を、第1ユーザー装置上の第1即時通信クライアントおよび第2ユーザー装置上の第2即時通信クライアントによって確立することと、第1ユーザー装置上の第1スタンドアロン型ソフトウェアアプリケーションにより、即時通信接続を介して、第2ユーザー装置上の第2スタンドアロン型ソフトウェアアプリケーションと通信することを含む。
【0007】
即時通信接続を介した第2ユーザー装置上の第2スタンドアロン型ソフトウェアアプリケーションとの通信において、本方法は、第1即時通信クライアントにより、第1スタンドアロン型ソフトウェアアプリケーションからの通信要求を受信して、第1即時通信クライアントにより、第1スタンドアロン型ソフトウェアアプリケーションを認証し、第1スタンドアロン型ソフトウェアアプリケーションが認証を通過すると、第1スタンドアロン型ソフトウェアアプリケーションが、即時通信接続を介して、第2スタンドアロン型ソフトウェアアプリケーションと通信するのを許可し得る。
【0008】
通信要求は、第2ユーザー装置の識別を含み得る。第1スタンドアロン型ソフトウェアアプリケーションが、即時通信接続を介して、第2スタンドアロン型ソフトウェアアプリケーションと通信するのを許可する場合、本方法は、第1スタンドアロン型ソフトウェアアプリケーションが認証を通過した後、第1即時通信クライアントは、第2ユーザー装置の識別に従って、第1即時通信クライアントと第2即時通信クライアントとの間に即時通信接続が存在するか否かをチェックすることと、肯定の場合、第1スタンドアロン型ソフトウェアアプリケーションが、即時通信接続を介して、第2スタンドアロン型ソフトウェアアプリケーションと通信するのを許可することと、肯定ではない場合、第1即時通信クライアントが、第2ユーザー装置の識別に従って、第2即時通信クライアントとの即時通信接続を確立し、第1スタンドアロン型ソフトウェアアプリケーションが、即時通信接続を介して、第2スタンドアロン型ソフトウェアアプリケーションと通信するのを許可することを含み得る。
【0009】
即時通信接続を介した第2ユーザー装置上の第2スタンドアロン型ソフトウェアアプリケーションとの通信において、本方法は、第1即時通信クライアントが第2即時通信クライアントとの即時通信接続を確立することと、第1即時通信クライアントが、第1ユーザー装置上で第1スタンドアロン型ソフトウェアアプリケーションを開始することと、第1即時通信クライアントが、第1スタンドアロン型ソフトウェアアプリケーションの識別を含む、1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を第2即時通信クライアントに送信することと、第2即時通信クライアントが、1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を受信することと、第2即時通信クライアントが、1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求に含まれている識別に従い、第2ユーザー装置上で第2スタンドアロン型ソフトウェアアプリケーションを開始することと、第1スタンドアロン型ソフトウェアアプリケーションが、第1即時通信クライアントおよび第2即時通信クライアントによって確立された即時通信接続を介して、第2スタンドアロン型ソフトウェアアプリケーションと通信することを含み得る。
【0010】
第1ユーザー装置上で第1スタンドアロン型ソフトウェアアプリケーションを開始することに関して、本方法は、第1即時通信クライアントが即時通信チャットウィンドウの拡張ウィンドウを確立することと、第1即時通信クライアントが拡張ウィンドウで第1スタンドアロン型ソフトウェアアプリケーションを開始することを含み得る。
【0011】
代替として、第1ユーザー装置上で第1スタンドアロン型ソフトウェアアプリケーションを開始することに関して、本方法は、第1即時通信クライアントが拡張ウィンドウで第1ユーザー装置上の複数のスタンドアロン型ソフトウェアアプリケーションを開始すること、または第1即時通信クライアントが異なる拡張ウィンドウで複数のスタンドアロン型ソフトウェアアプリケーションを開始することを含み得る。
【0012】
第1即時通信クライアントが、1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を第2即時通信クライアントに送信する前に、本方法は、第1即時通信クライアントが、第1スタンドアロン型ソフトウェアアプリケーションがネットワーク相互作用を介してユーザーにより使用される必要があるか否かをチェックすることと、第1スタンドアロン型ソフトウェアアプリケーションがネットワーク相互作用を介してユーザーにより使用される必要がある場合に、第1即時通信クライアントが1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を第2即時通信クライアントに送信することをさらに含み得る。
【0013】
別の態様では、装置は、接続確立ユニット、要求受信ユニット、および認証通信ユニットを含む。
【0014】
通信確立ユニットは、ローカルユーザー装置とリモートユーザー装置との間の即時通信接続を確立し得る。
【0015】
要求受信ユニットは、ローカルユーザー装置の第1スタンドアロン型ソフトウェアアプリケーションから通信要求を受信し得る。
【0016】
認証通信ユニットは、第1スタンドアロン型ソフトウェアアプリケーションが認証を通過した場合に、第1スタンドアロン型ソフトウェアアプリケーションを認証し得る。認証通信ユニットは、第1スタンドアロン型ソフトウェアアプリケーションが、即時通信接続を介して、リモートユーザー装置の第2スタンドアロン型ソフトウェアアプリケーションと通信するのを許可し得る。
【0017】
さらに別の態様では、ローカルユーザー装置およびリモートユーザー装置でスタンドアロン型ソフトウェアの通信を実施するための装置は、接続確立ユニット、スタンドアロン型ソフトウェア開始ユニット、要求送信ユニット、および要求受信ユニットを含む。
【0018】
接続確立ユニットは、ローカルユーザー装置とリモートユーザー装置との間の即時通信接続を確立し得る。
【0019】
スタンドアロン型ソフトウェア開始ユニットは、ローカルユーザー装置で第1スタンドアロン型ソフトウェアアプリケーションを開始し得る。スタンドアロン型ソフトウェア開始ユニットは、即時通信用のチャットウィンドウの拡張ウィンドウを作成する拡張ウィンドウ作成サブユニット、および拡張ウィンドウでスタンドアロン型ソフトウェアを開始する開始サブユニットを含み得る。
【0020】
要求送信ユニットは、リモートユーザー装置で第2スタンドアロン型ソフトウェアアプリケーションとの通信のための第1通信要求を、リモートユーザー装置に送信し得る。第1通信要求は、第1スタンドアロン型ソフトウェアアプリケーションの認証を含み得る。
【0021】
要求受信ユニットは、第1スタンドアロン型ソフトウェアアプリケーションとの通信のための第2通信要求をリモートユーザー装置から受信し得る。第2通信要求は、第2スタンドアロン型ソフトウェアアプリケーションの認証を含み得る。
【0022】
スタンドアロン型ソフトウェア開始ユニットは、第1スタンドアロン型ソフトウェアアプリケーションとの通信のための第2通信要求をリモートユーザー装置から受信する要求受信ユニットに応答して、第1スタンドアロン型ソフトウェアアプリケーションをローカルユーザー装置で開始し得る。
【発明の効果】
【0023】
本開示で提供する技術では、スタンドアロン型ソフトウェアは、通信を実施するために、即時通信システムによって確立されるネットワーク接続を使用するため、スタンドアロン型ソフトウェアでの通信機能モジュールに関する要件がない。そのため、スタンドアロン型ソフトウェアでネットワーク機能を実装するための開発の困難さおよび開発コストが効果的に削減される。さらに、様々なスタンドアロン型ソフトウェアアプリケーションが、即時通信システムによって確立されたネットワーク接続を一様に使用するので、様々なスタンドアロン型ソフトウェアアプリケーションの通常の通信を実装するために一度の構成が必要なだけで、それによりユーザー操作が削減される。
【0024】
本開示の実施形態をより良く説明するため、次は、開示する実施形態の説明で使用される図の簡単な紹介である。次の図は、本開示のいくつかの実施形態にのみ関連する。
【発明を実施するための形態】
【0026】
本明細書では、まず、スタンドアロン型ソフトウェアの通信を実施するための技術を紹介する。本技術は、第1ユーザー装置と第2ユーザー装置との間の即時通信接続を確立し、その即時通信接続を用いて、第1ユーザー装置上のスタンドアロン型ソフトウェアアプリケーションA1と第2ユーザー装置上のスタンドアロン型ソフトウェアアプリケーションA2との間の通信を許可する。
【0027】
第1ユーザー装置および第2ユーザー装置は相互にリモートである。第1ユーザー装置と第2ユーザー装置との間の即時通信接続が、第1ユーザー装置上の即時通信クライアントB1および第2ユーザー装置上の即時通信クライアントB2によって確立される。即時通信クライアントB1およびB2も、ソフトウェアアプリケーションの形態である。一実施形態では、第1ユーザー装置上のスタンドアロン型ソフトウェアアプリケーションA1と第2ユーザー装置上のスタンドアロン型ソフトウェアアプリケーションA2は同一である。
【0028】
前述した技術では、各スタンドアロン型ソフトウェアアプリケーションは、通信するために、即時通信システムによって確立されたネットワーク接続を使用し、それにより、スタンドアロン型ソフトウェアアプリケーションが通信機能モジュールを備える必要がなくなる。開発担当者の観点からすれば、開発担当者は、スタンドアロン型ソフトウェアアプリケーションの基本機能の実装に集中することができ、通信またはネットワーク機能には集中しなくてよい。ネットワーク機能の実装に関して、開発担当者は、即時通信システムとやり取りできるインタフェースを残すことができる。即時通信サーバーによって、比較的より複雑なネットワーク機能さえ実装することができ、それにより、ネットワーク機能を実施するためのスタンドアロン型ソフトウェアアプリケーション対する開発の困難さおよび開発コストが効果的に削減される。
【0029】
一方、現行の技術では、ソフトウェアアプリケーションの開発またはテストを行う際に、異なる担当者が異なるネットワーク環境を使用するので、ユーザーは、ネットワーク機能を使用する際に、必然的に互換性の問題に直面するだろう。本開示で提供する技術を実施すると、複数のスタンドアロン型ソフトウェアアプリケーションが、同一の即時通信システムによって確立された通信接続を一様に使用できるようにするだろう。それ故、所与のスタンドアロン型ソフトウェアアプリケーションに対して通信を構成する必要がなく、それにより、ユーザー操作が簡略化される。
【0030】
他方、現行の技術では、開発の困難さおよび開発コストから生じる制約のために、スタンドアロン型ソフトウェアアプリケーションで実装されている多数のネットワーク機能は、通信セキュリティおよび例外処理を考慮に入れていない可能性がある。しかし、開示した即時通信システムは、一般に、比較的成熟した通信セキュリティおよび例外処理機構を有する。それ故、本開示で開示する技術の適用は、スタンドアロン型ソフトウェアアプリケーションの通信の信頼性を効果的に向上できる。
【0031】
本開示の実施形態または現行技術の技術計画をより良く説明するため、以下の説明は、明確かつ完全な説明を提供する図を参照して行われる。図は、可能な全ての実施形態ではなく、本開示のいくつかの実施形態のみに関連している。本明細書で開示する実施形態に基づき、当業者によってなされる変更または派生物は、本開示の保護範囲に含まれる。
【0032】
第1例
第1実施形態では、第1ユーザー装置および第2ユーザー装置は、関連する通信エンティティである。通信プロセスでは、第1ユーザー装置および第2ユーザー装置は相互にリモートである。第1ユーザー装置は、2つの構成要素、すなわち、スタンドアロン型ソフトウェアA1アプリケーションおよび即時通信クライアントB1を含む。第2ユーザー装置も、2つの構成要素、すなわち、スタンドアロン型ソフトウェアA2アプリケーションおよび即時通信クライアントB2を含む。即時通信クライアントB1およびB2は、1つの同じ即時通信システムに属する。ソフトウェアアプリケーションA1およびA2は同一である。ソフトウェアアプリケーションA1およびA2は、即時通信クライアントB1およびB2によって確立された即時通信接続を介して通信する。
図1は、この実施形態の方法の実施を示す。その方法を後述する。
【0033】
S101:ソフトウェアアプリケーションA1が通信要求を即時通信クライアントB1に送信する。
【0034】
この実施形態では、各スタンドアロン型ソフトウェアアプリケーションが論理的にはまだ通信モジュールを持つことができるが、その通信モジュールはネットワークと直接やり取りしない。ソフトウェアアプリケーションが通信要件を有する場合、ソフトウェアアプリケーションはまず、ローカルユーザー装置上の即時通信クライアントB1に通信要求を送信する。
【0035】
スタンドアロン型ソフトウェアアプリケーションが通信するために即時通信接続を正しく使用できることを確実にするため、同じユーザー装置上のスタンドアロン型ソフトウェアアプリケーションおよび即時通信クライアントは、対応関係を有する。即時通信クライアントは、基本的な即時通信機能だけでなく、即時通信ソフトウェアプロセスとスタンドアロン型ソフトウェアプロセスとの間の内部メッセージの相互作用を実装するための事前定義された特別なローカル通信インタフェースも有する。スタンドアロン型ソフトウェアアプリケーションのネットワーク機能を実施する場合、ネットワークとの相互作用部が関与することなく、即時通信クライアントによって定義されたローカル通信インタフェースを頼りにできる。1つのスタンドアロン型ソフトウェアアプリケーションは、感謝をもって、通信用に複数の即時通信ソフトウェアアプリケーションを使用することを選択でき、また、1つの即時通信ソフトウェアアプリケーションも複数のスタンドアロン型ソフトウェアアプリケーションとの通信をサポートできる。
【0036】
スタンドアロン型ソフトウェアアプリケーションがゲームソフトウェアであると仮定すると、ローカルユーザーは、ネットワークを介して別のユーザーとゲームをすることを希望する。別のユーザーとオンラインゲームをする要求またはオンラインゲームの対戦相手の検索など、対応するネットワーク機能を選択した後、ソフトウェアアプリケーションA1は、通信要求を、ローカルユーザー装置の対応する即時通信クライアントB1に送信する。前述の状況は、即時通信クライアントB1がローカルユーザー装置上で既に実行していることを前提とする。詳細な実施状況では、通信要求を送信する前に、ソフトウェアアプリケーションA1はまず、ローカルユーザー装置上で実行している対応する即時通信クライアントがあるか否かをチェックできる。ない場合、ソフトウェアアプリケーションA1は、対応する即時通信クライアントを自動的に開始できるか、または、対応する通信クライアントを手動で開始するようユーザーに通知するために、通知メッセージをユーザーに送信する。
【0037】
S102:ソフトウェアアプリケーションA1からの通信要求を受信後、即時通信クライアントB1がソフトウェアアプリケーションA1を認証する。
【0038】
セキュリティ目的のため、ソフトウェアアプリケーションA1からの通信要求を受信した後、即時通信クライアントB1はさらに、ソフトウェアアプリケーションA1が通信するために即時通信接続を使用するのを許可するか否かを判断できる。認証は、いくつかある方法のうちの1つで実装できる。例えば、即時通信クライアントB1は、確認のため、ユーザーに対して関連情報の入力を促すことができる。または、即時通信クライアントB1は、現在のユーザーの識別を確認するために、ソフトウェアアプリケーションA1に、対応する認証情報を提供するよう要求できる。認証情報は、即時メッセージングアカウントと同じユーザー名またはパスワードにできる。ソフトウェアアプリケーションA1は、対応する認証情報を、ステップS101で送信された通信要求内に直接含めることもできる。
【0039】
このステップも互換性のチェックに使用できることを理解されたい。S101では、ソフトウェアアプリケーションA1が通信要求を即時通信クライアントB1に送信する場合、ソフトウェアアプリケーションA1は、即時通信クライアントB1がネットワーク機能を実施できることを実際に判断する。このステップで、即時通信クライアントB1は、ソフトウェアアプリケーションA1の通信をサポートできるか否かをさらに判断できる。例えば、即時通信クライアントB1は、エディション番号もしくは改訂番号をチェックすることにより、または特定のテストデータを送信することにより、判断することができる。このステップとS101の組み合わせは、ソフトウェアアプリケーションA1が、通信するために、即時通信クライアントB1との即時通信接続を正しく使用できることを確実にするため、ソフトウェアアプリケーションA1と即時通信クライアントB1との間にデュアル接続互換性チェックを実装することに相当する。
【0040】
S103:即時通信クライアントB1が通信要求を、応答するソフトウェアアプリケーションA1に送信する。
【0041】
このステップは任意選択である。ソフトウェアアプリケーションA1が即時通信クライアントB1の認証を通過すると、即時通信クライアントB1は、応答メッセージで認証が成功したことをソフトウェアアプリケーションA1に通知して、後続ステップの実行を継続できる。ソフトウェアアプリケーションA1が認証を通過しなければ、即時通信クライアントB1は、ソフトウェアアプリケーションA1の通信要求を拒絶し、応答メッセージを送信してソフトウェアアプリケーションA1に通知する。応答メッセージは、ユーザーの不正な識別またはソフトウェアエディションの非互換性など、拒絶理由をさらに含むことができる。
【0042】
S104:即時通信クライアントB1が、リモート装置との即時通信接続が存在するか否かをチェックする。
【0043】
ソフトウェアアプリケーションA1が認証を通過した後、即時通信クライアントB1は、ソフトウェアアプリケーションA1が通信するために即時通信接続を使用するのを許可する。後述のとおり、詳細な実施形態でのさらなる状況があり得る。
【0044】
(1)ローカルユーザーが指定したユーザーと通信することを希望し、ローカルユーザー装置と指定したユーザーの装置との間に既に即時通信接続が存在している(2つの間のチャットなど)。この状況では、ソフトウェアアプリケーションA1は、他のリモート装置と通信するために、現在の即時通信接続を直接使用できる。それに応じて、他のリモート装置も、対応するスタンドアロン型ソフトウェアアプリケーション(ソフトウェアアプリケーションA2と呼ぶ)を開始できる。言い換えれば、ソフトウェアアプリケーションA1およびA2は、ローカルの即時通信クライアントB1によってリモートの即時通信クライアント(即時通信クライアントB2と呼ぶ)と確立された即時通信接続を介して、相互に通信する。相手側で、ソフトウェアアプリケーションA2および即時通信クライアントB2も、S102と同様の認証操作を実施できるが、これは、本明細書では簡略にするため繰り返さないことを理解されたい。
【0045】
(2)ローカルユーザーが指定したユーザーと通信することを希望し、ローカルユーザー装置と指定したユーザーの装置との間に即時通信接続が存在していない。
【0046】
(3)ローカルユーザーが、オンラインゲームで対戦相手をランダムに見つけるなど、ランダムに通信相手を見つけることを希望する。かかる状況では、ローカルユーザー装置とランダムに見つけた通信相手との間に即時通信接続がまだ存在していない。
【0047】
実際の実施では、ソフトウェアアプリケーションA1は、通信のために、即時通信クライアントB1に相手方装置の識別を提供する必要がある。かかる識別は、特定の通信相手を表す識別(即時通信アカウントなど)、またはランダムに見つけた通信相手を表す識別にできる。かかる識別は、ソフトウェアアプリケーションA1によって即時通信クライアントB1に送信される通信要求に直接含めることができる。即時通信クライアントB1は、識別に従って、即時通信接続の現在の状態をチェックする。状況(1)の場合、ソフトウェアアプリケーションA1およびA2は、通信するために、現在の通信接続を使用することが許可される。(2)または(3)の場合、ステップ105が引き続き実行される。
【0048】
S105:即時通信クライアントB1がリモート装置との即時通信接続を確立する。
【0049】
ステップ104での状況(2)および(3)に関して、即時通信クライアントB1は、ソフトウェアアプリケーションA1によって提供された通信相手の装置の識別に従って、対応するリモート装置との即時通信接続を直ちに確立する必要がある。
【0050】
一実施形態では、即時通信システムは、主に2つのプロトコル、すなわち、転送制御プロトコル(TCP)およびユーザーデータグラムプロトコル(UDP)に基づく。UDPは、接続を確立する必要がなく、ネットワークコストが低いが、データ送信の信頼性も低いという特徴を持つプロトコルである。TCPは、接続を確立するためのプロトコルであり、データ送信の信頼性が高い。本開示で提供する技術では、スタンドアロン型ソフトウェアアプリケーション間の通信は、データ送信の信頼性に対する要求が高い。従って、即時通信クライアント間に信頼できる(TCP)接続を確立する必要がある。
【0051】
即時通信クライアントB1はまず、リモート装置の識別を即時通信サーバーに送信する。即時通信サーバーは、特定タイプの識別に従って、対応するメッセージを即時通信クライアントB1に返す。
【0052】
前述の状況(2)に対応して、即時通信サーバーは、IPアドレス、TCPポート、および他の関連情報など、識別に対応するユーザー装置情報を、即時通信クライアントB1に直接返す。リモート装置は、即時通信システムでオンライン状態でなければならず、そうでない場合、即時通信接続は実施できないことを理解されたい。
【0053】
前述の状況(3)に対応して、即時通信サーバーは、IPアドレス、TCPポート、および他の関連情報など、オンラインユーザーのユーザー装置に対応するユーザー装置情報、またはローカルユーザーが通信相手を選択できるように、複数のオンラインユーザーのユーザー装置情報を、即時通信クライアントB1にランダムに返す。
【0054】
サーバーによって返されたリモートユーザー装置の関連情報に従って、即時通信クライアントB1は、リモートユーザー装置の即時通信クライアントB2との即時通信接続の確立を開始する。
【0055】
S106:即時通信クライアントB1が、ソフトウェアアプリケーションA1に、接続がうまく確立されたという応答メッセージを返す。
【0056】
接続がうまく確立された後、即時通信クライアントB1は、ソフトウェアアプリケーションA1に接続が確立されたというメッセージを返す。かかるステップは任意選択である。その後、ソフトウェアアプリケーションA1およびA2は、相互に通信するために、即時通信クライアントB1およびB2によって確立された即時通信接続を使用できる。ソフトウェアアプリケーションの詳細なネットワーク機能およびネットワーク環境の要件ならびに他の要因に従って、通信用に、ポイントツーポイント接続が使用できるか、または即時通信サーバーが使用できる。本開示は、実装の詳細を限定しない。
【0057】
第2例
第1実施形態の方法では、スタンドアロン型ソフトウェアアプリケーションが通信を開始する。実際のアプリケーションでは、より一般的な状況は、ユーザーは通信するために即時通信システムを使用している(すなわち、即時通信クライアントB1およびB2は既に即時通信接続を確立している)ということである。ローカルユーザーは、リモートユーザーとやり取りするために、特定のスタンドアロン型ソフトウェアアプリケーションを実行することを希望する。言い換えれば、通信プロセスの開始プログラム(initiator)は、ローカル装置上の即時通信クライアントB1である。この特定の状況に関して、本開示は、スタンドアロン型ソフトウェアアプリケーションの通信を実施するための別の方法を提供する。
図2に示す方法について、後述する。
【0058】
S201:即時通信クライアントB1が即時通信クライアントB2との即時通信接続を確立する。
【0059】
この実施形態では、スタンドアロン型ソフトウェアアプリケーションを開始する前に、ローカルユーザー装置がまず、即時通信接続を確立する。
【0060】
S202:即時通信クライアントB1が、ローカルユーザー装置でスタンドアロン型ソフトウェアアプリケーションA1を開始する。
【0061】
ユーザーが特定のソフトウェアアプリケーションA1を実行したい場合、即時通信クライアントB1はソフトウェアアプリケーションA1を直接開始する。それは、ローカルの即時通信クライアントがソフトウェアアプリケーションA1に即時通信接続の使用を直接許可し、それにより認証ステップを省くことに等しい。
【0062】
現行の技術では、即時通信クライアントによってソフトウェアアプリケーションを開始するために使用する2つの方法がある:すなわち、(1)チャットウィンドウとは別の独立したウィンドウを開き、その独立したウィンドウでソフトウェアを実行する、および(2)チャットウィンドウを拡張し、ソフトウェアアプリケーションを実行するためにそのチャットウィンドウに埋め込む。前述の方法(1)の欠点には、ソフトウェアアプリケーションとチャットウィンドウとの間の弱い組み合わせ、特異点の不足、およびソフトウェアアプリケーションがチャットウィンドウと共に移動するよう実施できないことを含む。それ故、ユーザーは、多くの場合、ソフトウェア機能をチャットウィンドウと知覚的に関連付けることができなかった。方法(2)の欠点は、ソフトウェアアプリケーションの使用中にはインタフェースが常に変更できず、柔軟性に欠けることである。
【0063】
前述の問題点に関して、この実施形態は、即時通信クライアントでソフトウェアアプリケーションを開始するための方法を提供する:すなわち、即時通信クライアントB1が、現在の即時通信チャットウィンドウに基づき、拡張ウィンドウを作成し、その拡張ウィンドウでソフトウェアアプリケーションA1を開始する。かかる方法には、以下の利点がある:
【0064】
(1)ソフトウェアアプリケーションA1の実行プロセスにおいて、異なる機能に対してインタフェースを変更するためにサイズを変更する必要がある場合、ソフトウェアアプリケーションA1は、即時通信クライアントB1によって管理される拡張ウィンドウに要求を送信することができる。拡張ウィンドウがソフトウェアアプリケーションA1からサイズを変更するための要求を受信すると、拡張ウィンドウは、ソフトウェアアプリケーションA1のインタフェース変更に適応するよう、そのサイズを直ちに調整する。拡張ウィンドウの自己調整されたサイズ変更の回数および頻度に制限はない。かかる調整は、ソフトウェアアプリケーションA1の要求に応じていつでも実行できる。
【0065】
(2)複数のソフトウェアアプリケーションが同じ拡張ウィンドウ上にロードできる。かかるソフトウェアアプリケーションはネットワーク機能要件を持つソフトウェアアプリケーションを含み、スタンドアロン型ソフトウェアアプリケーションも含み得る。かかるソフトウェアアプリケーションは、相互に干渉することなく、並行して動作することができる。例えば、ソフトウェアアプリケーションA1が既に拡張ウィンドウ上で実行されているとき、ユーザーが拡張ウィンドウに基づいて別のソフトウェアアプリケーションA11を開始すると、ソフトウェアアプリケーションA11およびA1は、並行して動作できる。ユーザーは、拡張ウィンドウでのスイッチ装置により2つのソフトウェアアプリケーションの操作インタフェースを切り替えることができる。切り替え中、拡張ウィンドウは、ユーザーが使用している現在のソフトウェアアプリケーションのインタフェースサイズの変更に従って、常に、自己調整することができる。
【0066】
即時通信クライアントは、異なる拡張ウィンドウで、ローカルユーザー装置上で複数のスタンドアロン型ソフトウェアアプリケーションを開始できることを理解されたい。本開示は、この点において制限しない。
【0067】
(3)拡張ウィンドウは、チャットウィンドウと一緒に移動するか、または独立して移動することができる。拡張ウィンドウ上で既に実行中のソフトウェアアプリケーションがある状況では、ユーザーがチャットウィンドウの位置を移動させると、拡張ウィンドウは、同時にその位置を変えるために、チャットウィンドウに付着することができる。拡張ウィンドウとチャットウィンドウとの間の位置関係は変更されない。ユーザーが拡張ウィンドウをチャットウィンドウから離して動かすと、チャットウィンドウの位置の変更と拡張ウィンドウの位置の変更は、相互に独立し、相互に影響を及ぼさない。ユーザーは、拡張ウィンドウを、ユーザーの要望に応じて、画面上のどの位置へもドラッグすることができる。
【0068】
S203:即時通信クライアントB1が、1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を即時通信クライアントB2に送信する。
【0069】
即時通信クライアントB1がソフトウェアアプリケーションA1を開始した後、即時通信クライアントB1は1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を、リモートユーザー装置上の即時通信クライアントB2に送信する。通信要求は、即時通信クライアントB2が、ソフトウェアアプリケーションA1に対応するか、またはそれと同一のソフトウェアアプリケーションを開始できるように、スタンドアロン型ソフトウェアアプリケーションの識別を含むこともできる。
【0070】
このステップは、ユーザーによってトリガーされるか、または、即時通信クライアントB1によって自動的に実行され得る。このステップが即時通信クライアントB1によって自動的に実行される状況では、即時通信クライアントB1によって開始されるソフトウェアアプリケーションは、ネットワーク機能要件を持つソフトウェアアプリケーションまたは一般的なスタンドアロン型ソフトウェアアプリケーションにできるので、即時通信クライアントB1は、まず、ソフトウェアアプリケーションA1が、ネットワーク相互作用を介してユーザーにより使用される必要があるか否かをチェックできる。肯定の場合、即時通信クライアントB1は、1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を即時通信クライアントB2に送信する。
【0071】
S204:即時通信クライアントB2が1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を受信する。
【0072】
1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求に含まれている1つまたは複数のスタンドアロン型ソフトウェアアプリケーションの識別に従って、即時通信クライアントB2がローカルユーザー装置上でスタンドアロン型ソフトウェアアプリケーションA2を開始する。ソフトウェアアプリケーションA2を開始するための操作は、即時通信クライアントB2によって自動的に実行できる。代替として、即時通信クライアントB2は、ユーザーに通知メッセージを送信することができ、ユーザーはソフトウェアアプリケーションA2を開始するか否かを判断する。即時通信クライアントB2がソフトウェアアプリケーションA2を開始する方法は、即時通信クライアントB1がソフトウェアアプリケーションA1を開始する方法と同じにできる。
【0073】
このステップで、即時通信クライアントB2がローカル装置で対応するソフトウェアアプリケーションを検出しない場合、即時通信クライアントB2は、ユーザーにそのソフトウェアをダウンロードするように促すか、または即時通信クライアントB1によって送信された1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を拒絶することができる。
【0074】
S205:ソフトウェアアプリケーションA2を開始した後、即時通信クライアントB2は、応答するために、1つまたは複数のスタンドアロン型ソフトウェアアプリケーションのための通信要求を送信する。
【0075】
今や、ソフトウェアアプリケーションA1およびA2は、通信するために、即時通信クライアントB1およびB2によって確立された即時通信接続を使用できる。
【0076】
この実施形態では、通信相手との間に既に即時通信接続が存在する状況に関して、即時通信クライアントは、通信プロセス全体を開始する。第1実施形態と比較すると、通信の信頼性が損なわれていないという前提で、この実施形態では、認証などのステップおよび他のローカルの相互作用ステップを省く。他方、この実施形態は、より良いユーザー体験を実装するために、1つまたは複数のソフトウェアアプリケーションを拡張ウィンドウで開始するための方法も提供する。
【0077】
第3例
第1実施形態に対応して、本開示は、ローカルユーザー装置およびリモートユーザー装置上でスタンドアロン型ソフトウェアアプリケーションの通信を実施するための装置も提供する。
図3を参照すると、本装置は、後述する通り、いくつかの構成要素を含む。
【0078】
接続確立ユニット310は、ローカルユーザー装置とリモートユーザー装置との間の即時通信接続を確立するように構成される。
【0079】
要求受信ユニット320は、ローカルユーザー装置上のスタンドアロン型ソフトウェアアプリケーションA1によって送信された通信要求を受信するように構成される。
【0080】
認証通信ユニット330は、ソフトウェアアプリケーションA1を認証するように構成される。ソフトウェアアプリケーションA1が認証を通過すると、認証通信ユニット330は、ソフトウェアアプリケーションA1が、リモートユーザー装置上のスタンドアロン型ソフトウェアアプリケーションA2と通信するために、即時通信接続を使用するのを許可する。スタンドアロン型ソフトウェアアプリケーションA1およびスタンドアロン型ソフトウェアアプリケーションA2は、同じソフトウェアアプリケーションでもよい。
【0081】
第4例
第2実施形態に対応して、本開示は、ローカルユーザー装置およびリモートユーザー装置上でスタンドアロン型ソフトウェアアプリケーションの通信を実施するための別の装置も提供する。
図4を参照すると、本装置は接続確立ユニット410、スタンドアロン型ソフトウェア開始ユニット420、要求送信ユニット430、および要求受信ユニット440を含む。
【0082】
接続確立ユニット410は、ローカルユーザー装置とリモートユーザー装置との間の即時通信接続を確立するように構成される。スタンドアロン型ソフトウェア開始ユニット420は、ローカルユーザー装置上でスタンドアロン型ソフトウェアA1を開始するように構成され、要求送信ユニット430は、1つまたは複数のスタンドアロン型ソフトウェアアプリケーションとの通信のための通信要求をリモートユーザー装置に送信するように構成される。1つまたは複数のスタンドアロン型ソフトウェアアプリケーションとの通信のための通信要求は、スタンドアロン型ソフトウェアアプリケーションA1の識別を含む。
【0083】
要求受信ユニット440は、リモートユーザー装置上にインストールされた場合、1つまたは複数のスタンドアロン型ソフトウェアアプリケーションとの通信のための通信要求を受信するように構成される。スタンドアロン型ソフトウェア開始ユニット420は、リモートユーザー装置上にインストールされた場合、通信要求に含まれる第1スタンドアロン型ソフトウェアアプリケーションA1の識別に従い、リモートユーザー装置上でスタンドアロン型ソフトウェアアプリケーションA2を開始するように構成される。
【0084】
スタンドアロン型ソフトウェアアプリケーションA1およびスタンドアロン型ソフトウェアアプリケーションA2は、通信するために、接続確立ユニット410によって確立された即時通信接続を使用する。
【0085】
スタンドアロン型ソフトウェア開始ユニット420は、特に、即時通信用のチャットウィンドウの拡張ウィンドウを作成するように構成された拡張ウィンドウ作成サブユニット、およびその拡張ウィンドウで1つまたは複数のスタンドアロン型ソフトウェアアプリケーションを開始するように構成された開始サブユニットを含むことができる。
【0086】
説明しやすくするために、前述の装置を、機能的に種々のユニットに分けて、別々に説明する。開示した装置を実施する際には、種々のユニットの機能は、1つまたは複数のインスタンスのソフトウェアおよび/またはハードウェアで実施され得る。
【0087】
前述した例示的実施形態から、当業者は、開示した方法およびシステムがソフトウェアおよびユニバーサルハードウェアプラットフォームを使用して実施され得ることを明確に理解できる。この理解に基づき、本開示の技術的スキーム、または既存技術に寄与する部分は、例えば、ROM/RAM、フラッシュメモリ、EEROM、USBメモリ装置、ハードドライブおよび光ディスクなどの、1つまたは複数の持続性コンピューター可読記憶媒体に格納されているコンピューター実行可能命令またはコードの形で実施され得る。実行される場合、コンピューター実行可能命令は、コンピューティング装置(例えば、パーソナルコンピューター、サーバー、またはネットワーク装置)が、本開示で説明した1つまたは複数の方法を実行することを許可する。
【0088】
様々な例示的実施形態が本開示で徐々に説明される。例示的実施形態の同一または同様の部分は、相互に参照できる。各例示的実施形態は、他の例示的実施形態とは異なる点に集中している。特に、例示的装置の実施形態は、例示的方法との基本的な対応のために、比較的単純な方法で説明されている。その詳細は、例示的方法の関連部分を参照できる。前述の例示的装置の説明は、例示目的のみを意図するものである。本明細書で別個の構成要素として説明されたユニットは、物理的に分離され得るか、または分離できない。ユニットとして説明された構成要素は、物理ユニットである得るか、または物理ユニットではなく、例えば、1つの場所に配置し得るか、または複数のネットワーク装置に分散し得る。実際の必要性に応じて、例示的実施形態の目標は、モジュールの一部または全てを選択することにより達成され得る。当業者は、革新的な効果なしで、開示した実施形態を理解および実施できる。
【0089】
本開示は、ユニバーサルコンピューターシステムまたは特殊コンピューターシステムの環境または構成で使用され得る。例には、パーソナルコンピューター、サーバーコンピューター、ハンドヘルド装置または携帯機器、タブレット装置、マルチプロセッサシステム、マイクロプロセッサベースシステム、セットアップボックス、プログラム可能な顧客の電子機器、ネットワークPC、小型コンピューター、大型コンピューター、および前述の任意のシステムまたは装置を含む分散コンピューティング環境を含む。
【0090】
本開示は、プログラムモジュールなど、コンピューターによって実行されるコンピューター実行可能命令の一般的状況内で説明され得る。一般に、プログラムモジュールは、特定タスクの実行または特定の抽象データ型の実装のための、ルーチン、プログラム、オブジェクト、モジュール、およびデータ構造などを含む。開示した方法およびサーバーは、分散コンピューティング環境でも実施され得る。分散コンピューティング環境では、タスクは、通信ネットワークを介して接続されているリモート処理装置によって実行される。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモートコンピューターの記憶媒体(記憶装置を含む)に配置され得る。
【0091】
前述したのは、本開示の好ましい例示的実施形態のみである。しかし、本開示は本明細書に制限されない。当業者は、本開示の精神および範囲から逸脱することなく、本開示を多くの異なる方法で変更または改変できることを理解されたい。これらの変更および変形は、それ故、本開示の特許請求の範囲およびそれらの相当物の範囲に含まれると見なされる。