(57)【要約】  本願の実施は、アプリケーション起動方法及びシステムを開示する。本方法の実施は：第１のローカルアプリケーションによりＨＴＭＬ５ウェブページを開き、第２のローカルアプリケーションを呼び出し、そしてｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みるステップと；第２のローカルアプリケーションによりローカルソケットを起動するステップと；第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いてローカルソケットと接続する場合、第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するステップと；を含む。本願の実施によれば、開かれたＨＴＭＬ５ページは、対応するアプリケーションが、そのＨＴＭＬ５ページに対応する端末にインストールされていることを確認できる。
2019516197.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーション起動方法であって：
第１のローカルアプリケーションによってＨＴＭＬ５ウェブページを開き、第２のローカルアプリケーションを呼び出し、ｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みるステップと；
前記第２のローカルアプリケーションにより前記ローカルソケットを起動するステップと；
前記第１のローカルアプリケーションが前記ｗｅｂＳｏｃｋｅｔを用いて前記ローカルソケットに接続する場合、前記第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するステップと；を備える、
アプリケーション起動方法。
【請求項２】
前記ウェブページへのリンクがトリガされて開かれると、前記第１のローカルアプリケーションが前記対応するウェブページを開き、
前記第１のローカルアプリケーションは、ブラウザアプリケーション、又はｗｅｂＶｉｅｗコンポーネントと一体化されたローカルアプリケーションを備える、
請求項１に記載のアプリケーション起動方法。
【請求項３】
前記ウェブページへのリンクがトリガされて開かれると、前記第１のローカルアプリケーションは、前記ウェブページアドレスに含まれるパラメータをＵＲＩ内にアセンブルし、前記ＵＲＩに対応する前記第２のローカルアプリケーションを呼び出す、
請求項１に記載のアプリケーション起動方法。
【請求項４】
前記パラメータは、指定されたポート番号を含む、
請求項３に記載のアプリケーション起動方法。
【請求項５】
第１のローカルアプリケーションによってｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みる前記ステップは：
前記ＨＴＭＬ５ウェブページが開かれてから第１の所定期間の後に、前記第１のローカルアプリケーションによって前記ｗｅｂＳｏｃｋｅｔを起動して前記ローカルソケットへの接続を試みるステップを備える、
請求項１に記載のアプリケーション起動方法。
【請求項６】
前記第１のローカルアプリケーションが、前記ｗｅｂＳｏｃｋｅｔを用いて行う前記ローカルソケットへの接続に失敗した場合に、前記第２のローカルアプリケーションをダウンロードするための前記ブートページへジャンプするステップを更に備える、
請求項１に記載のアプリケーション起動方法。
【請求項７】
前記第１のローカルアプリケーションが、前記ｗｅｂＳｏｃｋｅｔを用いて前記ローカルソケットに接続するときにエラープロンプトを受信した場合、前記第２のローカルアプリケーションをダウンロードするための前記ブートページへジャンプするステップを更に備える、
請求項６に記載のアプリケーション起動方法。
【請求項８】
前記ローカルソケットを起動するために前記第２のローカルアプリケーションにより用いられるポートが占有されている場合に、所定ポート群のうちの別のポートを用いるステップと；
これに対応して、前記第１のローカルアプリケーションによって起動された前記ｗｅｂＳｏｃｋｅｔが、第２の所定期間内に前記ローカルソケットへの接続に失敗した場合、前記所定ポート群のうちの別のポートを用いて、前記ローカルソケットに再接続するステップと；を備える、
請求項１に記載のアプリケーション起動方法。
【請求項９】
前記第１のローカルアプリケーションによって起動された前記ｗｅｂＳｏｃｋｅｔが、前記所定ポート群のうちの全てのポートを用いた後の前記第２の所定期間中に前記ローカルソケットへの接続に失敗した場合、前記第１のローカルアプリケーションは、前記第２のローカルアプリケーションをダウンロードするための前記ブートページへジャンプする、
請求項８に記載のアプリケーション起動方法。
【請求項１０】
アプリケーション起動システムであって：
ＨＴＭＬ５ウェブページを開き、第２のローカルアプリケーションを開き、ｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みるように構成され、及び、前記第１のローカルアプリケーションが前記ｗｅｂＳｏｃｋｅｔを用いて前記ローカルソケットに接続する場合、前記第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するように構成された第１のローカルアプリケーションと；
前記ローカルソケットを起動するように構成された前記第２のローカルアプリケーションと；を備える、
アプリケーション起動システム。
【請求項１１】
前記ウェブページへのリンクがトリガされて開かれると、前記第１のローカルアプリケーションが前記対応するウェブページを開き、
前記第１のローカルアプリケーションは、ブラウザアプリケーション、又はｗｅｂＶｉｅｗコンポーネントと一体化されたローカルアプリケーションを備える、
請求項１０に記載のアプリケーション起動システム。
【請求項１２】
前記ウェブページへのリンクがトリガされて開かれると、前記第１のローカルアプリケーションは、前記ウェブページアドレスに含まれるパラメータをＵＲＩ内にアセンブルし、前記ＵＲＩに対応する前記第２のローカルアプリケーションを呼び出す、
請求項１０に記載のアプリケーション起動システム。
【請求項１３】
前記パラメータは指定のポート番号を備える、
請求項１２に記載のアプリケーション起動システム。
【請求項１４】
第１のローカルアプリケーションにより、ｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みることは：
前記ＨＴＭＬ５ウェブページが開かれてから第１の所定期間の後に、前記第１のローカルアプリケーションによって前記ｗｅｂＳｏｃｋｅｔを起動して前記ローカルソケットへの接続を試みることを備える、
請求項１０に記載のアプリケーション起動システム。
【請求項１５】
前記第１のローカルアプリケーションが、前記ｗｅｂＳｏｃｋｅｔを用いて行う前記ローカルソケットへの接続に失敗した場合、前記第１のローカルアプリケーションは、前記第２のローカルアプリケーションをダウンロードするための前記ブートページへジャンプする、
請求項１０に記載のアプリケーション起動システム。
【請求項１６】
前記第１のローカルアプリケーションは、前記ｗｅｂＳｏｃｋｅｔを用いて前記ローカルソケットに接続するときにエラープロンプトを受信した場合、前記第１のローカルアプリケーションは、前記第２のローカルアプリケーションをダウンロードするための前記ブートページへジャンプする、
請求項１０に記載のアプリケーション起動システム。
【請求項１７】
前記ローカルソケットを起動するために前記第２のローカルアプリケーションにより用いられるポートが占有されている場合、所定ポート群のうちの別のポートが用いられ；
これに対応して、前記第１のローカルアプリケーションによって起動された前記ｗｅｂＳｏｃｋｅｔが、第２の所定期間内に前記ローカルソケットへの接続に失敗した場合、前記所定ポート群のうちの別のポートが用いられて前記ローカルソケットに再接続する；
請求項１０に記載のアプリケーション起動システム。
【請求項１８】
前記第１のローカルアプリケーションによって起動された前記ｗｅｂＳｏｃｋｅｔが、前記所定ポート群のうちの全てのポートを用いた後、前記第２の所定期間中に前記ローカルソケットへの接続に失敗した場合、前記第１のローカルアプリケーションは、前記第２のローカルアプリケーションをダウンロードするための前記ブートページへジャンプする、
請求項１７に記載のアプリケーション起動システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願はコンピュータソフトウェア技術の分野に関し、特に、アプリケーションを起動する方法及びシステムに関する。
【背景技術】
【０００２】
モバイル端末プラットフォームは、様々なユーザ指向の機能を実施するために、モバイル端末オペレーションシステムに基づいて開発されたアプリケーションを提供できる。例えば、Ａｐｐｌｅ（登録商標）のｉＯＳプラットフォームはｉＯＳスシステムに基づくモバイル端末アプリケーションを提供し、Ｇｏｏｇｌｅ（登録商標）のＡｎｄｒｏｉｄ（登録商標）プラットフォームはＡｎｄｒｏｉｄ（登録商標）システムに基づくモバイル端末アプリケーションを提供し、そしてＷｉｎｄｏｗｓ（登録商標）のモバイル端末プラットフォームはＷｉｎｄｏｗｓ（登録商標）システムに基づくモバイル端末アプリケーションを提供する。
【０００３】
モバイル端末プラットフォーム上のアプリケーションは他のアプリケーションを用いて起動できる。例えば、ショートメッセージアプリケーションによって、ＵＲＬアドレスを含んだショートメッセージが受信され、ユーザがショートメッセージ内のそのＵＲＬアドレスをタップすると、モバイル端末はウェブページを開くことができる。開かれるこのウェブページは、モバイル端末のデフォルトのブラウザアプリケーションを用いて開くことができる。別の例では、決済取引を実行するときに、モバイル端末上のローカルアプリケーションＡ（例えば、チケット購入アプリケーション）が、ローカルアプリケーションＡに一体化されたｗｅｂＶｉｅｗコンポーネントを用いて決済ページを開くことができ、この決済ページからローカルアプリケーションＢ（例えば、決済アプリケーション）を起動できる。
【０００４】
具体的には、例えば、モバイル端末のショートメッセージアプリケーション内の特定のショートメッセージは、ＡＬＩＰＡＹ（アリペイ）へのリンクを含んでもよい。ユーザがショートメッセージ内のリンクをタップすると、モバイル端末がデフォルトのブラウザアプリケーションを用いてそのリンクのページを開くことができる。さらに、このページはスキームＵＲＩを用いてローカルアプリケーションＢの呼び出しを試みることができ、これにより、ユーザはＡＬＩＰＡＹ内の操作を実行できるようになる。スキームＵＲＩはシステムレベルのリソースロケーション方法であり、Ａｎｄｒｏｉｄ（登録商標）、ｉＯＳ、Ｗｉｎｄｏｗｓ（登録商標）などのモバイルプラットフォームシステムをサポートする。先の例では、ＡＬＩＰＡＹを呼び出した後に、ほとんどのモバイルプラットフォームシステムのブラウザアプリケーションによって開かれたページは、通常、消えることはなく、アプリケーションを短時間でダウンロードするためのブート（起動）ページへジャンプする。よって、モバイル端末にＡＬＩＰＡＹが既にインストールされている場合でも、ブラウザのジャンプ先のページは依然としてＡＬＩＰＡＹをダウンロードするようユーザを促す。
【０００５】
別の例では、モバイル端末のローカルアプリケーションＡを操作することにより、ＴＡＯＢＡＯ（タオバオ）商品へのリンクが開かれる。例えば、ローカルアプリケーションＡがｗｅｂＶｉｅｗコンポーネントを用いてこのリンクのページを開くことができる。更に、このページは、スキームＵＲＩを用いてローカルアプリケーションＢ（例えば、ＴＡＯＢＡＯ）の呼び出しを試みることにより、ユーザは、ＴＡＯＢＡＯ内の操作を実行できるようになる。先の例では、ＴＡＯＢＡＯを呼び出した後、ほとんどのモバイルプラットフォームシステムのローカルアプリケーションＡ内のｗｅｂＶｉｅｗコンポーネントによって開かれたページは、通常、消えることはなく、アプリケーションを短時間でダウンロードするためのブートページへジャンプする。よって、モバイル端末にＴＡＯＢＡＯが既にインストールされていても、ブラウザがｗｅｂＶｉｅｗコンポーネントを用いてジャンプした先のページは依然としてＴＡＯＢＡＯをダウンロードするようユーザを促す。
【０００６】
既存技術では、ウェブページが開かれ、対応するアプリケーションが呼び出された後、この開かれたウェブページは、対応するアプリケーションがモバイル端末に既にインストールされていることを知得できないことが分かる。そのため、対応するアプリケーションがモバイル端末に既にインストールされているかどうかにかかわらず、モバイル端末はアプリケーションのダウンロードページに案内されてしまう。通信プロセスは長引き、リソースは浪費され、ユーザエクスペリエンスは悪影響を受ける。
【発明の概要】
【０００７】
本願の実施は、開かれたページに対応する端末へ、対応するアプリケーションが既にインストールされていることを、この開かれたページが確認できるような、アプリケーション起動方法及びシステムを提供する。
【０００８】
先の技術的課題を解決するために、本願の実施は以下のとおり実施される。
【０００９】
アプリケーション起動方法であって：第１のローカルアプリケーションによってＨＴＭＬ５ウェブページを開き、第２のローカルアプリケーションを呼び出し、ｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みるステップと；前記第２のローカルアプリケーションにより前記ローカルソケットを起動するステップと；前記第１のローカルアプリケーションが前記ｗｅｂＳｏｃｋｅｔを用いて前記ローカルソケットに接続する場合、前記第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するステップと；を含む。
【００１０】
アプリケーション起動システムであって：ＨＴＭＬ５ウェブページを開き、第２のローカルアプリケーションを開き、ｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みるように構成され、及び、前記第１のローカルアプリケーションが前記ｗｅｂＳｏｃｋｅｔを用いて前記ローカルソケットに接続する場合、前記第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するように構成された第１のローカルアプリケーションと；前記ローカルソケットを起動するように構成された前記第２のローカルアプリケーションと；を含む。
【００１１】
本願の実施において提供される先の技術的解決策から分かるように、ＨＴＭＬ５ウェブページを開いた後、第１のローカルアプリケーションはｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みることができる。ローカルソケットは、第２のローカルアプリケーションが呼び出された後に起動できる。よって、第１のローカルアプリケーションはｗｅｂＳｏｃｋｅｔを用いてローカルソケットに接続できる。第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いてローカルソケットに接続すれば、第２のローカルアプリケーションは呼び出されているので、第１のローカルアプリケーションが特定のダウンロードブートページへジャンプする必要はない、と特定できる。更に、第１のローカルアプリケーションは、第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止できる。
【図面の簡単な説明】
【００１２】
本願の実施における又は既存技術における、技術的解決策をより明確に説明するために、本願の実施又は既存技術の説明に必要な添付図面を簡単に以下説明する。明らかに、以下の説明における添付図面は本願の実施例の一部を示すにすぎず、当業者であれば、創造的に努力することなく、これらの添付図面から別の図面を得ることができる。
【００１３】
【図１】図１は、本願に係るアプリケーション起動方法の実施を示すフローチャートである。
【発明を実施するための形態】
【００１４】
本願の実施は、アプリケーションを起動するための方法及びシステムを提供する。
【００１５】
当業者が本願の技術的解決策をより良く理解するよう、本願の実施における添付図面に関連して、本願の実施における技術的解決策を明確かつ完全に以下説明する。明らかに、記載の実施は本願の実施の全てではなく、その一部に過ぎない。本願の実施に基づき当業者が創造的な努力を要することなく得られる他の全ての実施は、本願の保護範囲に含まれる。
【００１６】
先の既存技術では、ウェブページを開くブラウザアプリケーション、又は、ｗｅｂＶｉｅｗコンポーネントを用いてウェブページを開くローカルアプリケーションＡ（例えば、先述のブラウザアプリケーションやチケット購入アプリケーション）は、通常、呼び出されたローカルアプリケーションＢと同一のアプリケーションではないため、その工程はローカルアプリケーションＢと同一ではない。既存技術ではウェイクアップ（起動）工程におけるクロスプロセス通信方法が欠けており、ローカルアプリケーションＡはローカルアプリケーションＢが呼び出されたことを知得できないので、ローカルアプリケーションＡは、ローカルアプリケーションＢをダウンロードするためのブートページへジャンプしてしまう。
【００１７】
本願の実施は、アプリケーション起動方法を提供する。図１は、この実施の実施手順を示す。図１に示すように、この実施手順は以下のステップを含む。
【００１８】
Ｓ１１０：第１のローカルアプリケーションがＨＴＭＬ５ウェブページを開き、第２のローカルアプリケーションを呼び出し、ｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みる。
【００１９】
タップなどの操作により、ＨＴＭＬ５ウェブページへのリンクがトリガされて開かれると、対応するページを、ブラウザアプリケーション内又はローカルアプリケーションのｗｅｂＶｉｅｗコンポーネント内にロードすることができる。ブラウザアプリケーション、又はローカルアプリケーションのｗｅｂＶｉｅｗコンポーネントは、ＨＴＭＬ５ウェブページのアドレスを統一リソース識別子（ＵＲＩ）にアセンブルする（組み立てる）ことができる。ＵＲＩはスキームＵＲＩ（若しくはＵＲＩスキーム）とも、カスタムスキームＵＲＩとも呼ばれる。ＵＲＩは統一リソース識別子（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）の名前付け構造であって、リソースを定義できる。このリソースの概念は広く、ウェブリソースと称されるものであっても、ローカルマシンのファイルであっても、ネットワーク上のビデオ等であってもよい。以下の形式がＵＲＩである。
ｈｔｔｐ：／／ｗｒｉｔｅ．ｂｌｏｇ．ｃｓｄｎ．ｎｅｔ／ｐｏｓｔｅｄｉｔ／７３１３５４３
ｆｉｌｅ：／／／ｃ：／ＷＩＮＤＯＷＳ／ｃｌｏｃｋ．ａｖｉ
Ｇｉｔ：／／ｇｉｔｈｕｂ．ｃｏｍ／ｕｓｅｒ／ｐｒｏｊｅｃｔ−ｎａｍｅ．ｇｉｔ
ｆｔｐ：／／ｕｓｅｒ１：１２３４＠ａｄｄｒｅｓｓ
ｅｄ２ｋ：／／｜ｆｉｌｅ｜％５ＢＭＡＣ％Ｅ７％８９％８８％Ｅ６％９Ｅ％８１％Ｅ５％９３％８１％Ｅ９％Ａ３％９Ｅ％Ｅ８％ＢＤ％Ａ６９％ＥＦ％ＢＣ％９Ａ％Ｅ６％９Ｃ％８０％Ｅ９％ＡＢ％９８％Ｅ９％８０％９Ａ％Ｅ７％ＢＣ％８９％５Ｄ．％５ＢＭＡＣＧＡＭＥ％５ＤＮｅｅｄ．Ｆｏｒ．Ｓｐｅｅｄ．Ｍｏｓｔ．Ｗａｎｔｅｄ．ｄｍｇ｜４０９６９３３８８８｜２ｃ５５ｆ０ａｄ２ｃｂ７ｆ６ｂ２９６ｄｂ９４０９０ｂ６３ｅ８８ｅ｜ｈ＝ｌｔｃｘｕｖｎｐ２４ｕｆｘ２５ｈ２ｘ７ｕｇｆａｘｆｃｈｊｋｗｘａ｜／
【００２０】
ＵＲＩスキームは一般に以下の形式を有する。
ｓｃｈｅｍｅ：／／ｈｏｓｔ：［ｐｏｒｔ］／ｐａｔｈ？ｑｕｅｒｙＫｅｙ＝ｑｕｅｒｙＶａｌｕｅ
ここで、ｓｃｈｅｍｅはスキーム名であって、例えば、先のｈｔｔｐ、ｆｉｌｅ、Ｇｉｔ、ｅｄ２ｋはスキーム名であり；ｈｏｓｔはホストアドレスであり；ｐａｔｈはパスであり；ｑｕｅｒｙＫｅｙ＝ｑｕｅｒｙＶａｌｕｅはクエリキー値であり；ｐｏｒｔはポートである（必須ではない）。
【００２１】
例えば、ショートメッセージアプリケーション内にショートメッセージがあり、このショートメッセージの内容が以下の形式のリンクを含む。
ｈｔｔｐ：／／ｗｗｗ．ＡＬＩＰＡＹ．ｃｏｍ／ｃｕｓｔｏｍ．ｈｔｍｌ？ｓｃｈｅｍｅＵｒｌ＝ｚｍＶｅｒｉｆｙ％３ａ％２ｆ％２ｆｓｃｈｅｍｅＡｐｉ％２ｆｓｔａｒｔＡｐｐ％３ｆｂｕｎｄｌｅＩｄ％３ｄ２０００１１８％２６ｖｅｒｓｉｏｎ％３ｄ１．５．１
ｚｍＶｅｒｉｆｙ：／／ｓｃｈｅｍｅＡｐｉ／ｓｔａｒｔＡｐｐ？ｂｕｎｄｌｅＩｄ＝２０００１１８＆ｖｅｒｓｉｏｎ＝１．５．１はリンク内のデータの一片であり、更にはＵＲＬエンコードの後のＵＲＩでもある（ＵＲＬデコードはｚｍＶｅｒｉｆｙ：／／ｓｃｈｅｍｅＡｐｉ／ｓｔａｒｔＡｐｐ？ｂｕｎｄｌｅＩｄ＝２０００１１８＆ｖｅｒｓｉｏｎ＝１．５．１である）。ＺｍＶｅｒｉｆｙはＺｈｉｍａ  ｖｅｒｉｆｙ（セサミクレジット、あるいはゴマ信用）アプリケーションを示す。ＡＬＩＰＡＹの場合、このデータは、例えば、ＡＬＩＰＡＹ：／／ｓｃｈｅｍｅＡｐｉ／ｓｔａｒｔＡｐｐ？ｂｕｎｄｌｅＩｄ＝２０００１１８＆ｖｅｒｓｉｏｎ＝１．５．１となる。システムは、ｚｍＶｅｒｉｆｙスキームを用いて、ｚｍＶｅｒｉｆｙスキームを宣言するアプリケーションをロケートし、このアプリケーションを呼び出せる。ｓｃｈｅｍｅＡｐｉ、ｓｔａｒｔａｐｐ、ｂｕｎｄｌｅＩＤ、ｖｅｒｓｉｏｎは、オプションのパラメータアイテムである。ｓｃｈｅｍｅＡｐｉは、ｑｑ．ｃｏｍやＡＬＩＰＡＹ．ｃｏｍといったドメイン名と同等のドメインである。第２のアプリケーションは、ｓｔａｒｔａｐｐ、ｂｕｎｄｌｅＩＤ、ｖｅｒｓｉｏｎ、又は更に多くのその他の類似するパラメータアイテムを、サービスの必要条件に基づいて処理でき、例えば、ウェブページを開いたり、曲を再生したり、通知を送信したりすることができる。
【００２２】
ショートメッセージアプリケーション内のリンクがトリガされて開かれると、リンクを開くためにデフォルトのブラウザアプリケーションを起動できる。開くプロセスでは、端末デバイスのブラウザアプリケーションがパース（解析）することによってリンク内のＵＲＩを入手し、ＵＲＩ内で識別されたアプリケーションに基づいて、対応するリンクリソースへアクセスできる。具体的には、端末デバイスブラウザは、ウェブページデータ内のｊｓ（Ｊａｖａ（登録商標）  Ｓｃｒｉｐｔ）コードをパースすることによりＵＲＩを入手できる。
【００２３】
例えば、ＵＲＩ内で識別されたアプリケーションがＡＬＩＰＡＹである場合、システムＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を用いて対応のＡＬＩＰＡＹアプリを呼び出すことができ、ＡＬＩＰＡＹ内で先のリンク内に記述されているリソースへアクセスできる。同様に、ＵＲＩ内で識別されたアプリケーションがＴＡＯＢＡＯである場合、システムＡＰＩを用いて、対応するＴＡＯＢＡＯアプリを呼び出すことができ、ＴＡＯＢＡＯ内で先のリンク内に記述されているリソースが開かれる。
【００２４】
先の実施例では、デフォルトのブラウザアプリケーションはＳ１１０での第１のローカルアプリケーションであり、呼び出されるＡＬＩＰＡＹアプリ又はＴＡＯＢＡＯアプリは第２のローカルアプリケーションである。
【００２５】
同様に、第１のローカルアプリケーションはｗｅｂＶｉｅｗコンポーネントと一体化されたアプリケーション、例えば、特定のショッピングアプリケーションであってよい。このショッピングアプリケーションはｗｅｂＶｉｅｗと一体化されているので、リンクはｗｅｂＶｉｅｗと一体化されたアプリケーションを用いて開くことができる。ＨＴＭＬ５ウェブページのブラウジング機能を実施するｗｅｂＶｉｅｗコンポーネントが一体化されているため、この処理ではデフォルトのブラウザアプリケーションを起動する必要はない。
【００２６】
通常、第１のローカルアプリケーションと第２のローカルアプリケーションの処理は別々であるので、互いに、直接、通信することはできない。
【００２７】
加えて、ＨＴＭＬ５ウェブページを開いた後、第１のローカルアプリケーションは更にｗｅｂＳｏｃｋｅｔを起動し、ローカルソケットへの接続を試みることができる。ｗｅｂＳｏｃｋｅｔはＨＴＭＬ５のプロトコルである。ｗｅｂＳｏｃｋｅｔプロトコルはＨＴＭＬ５にて定義されているので、サーバリソース及び帯域のより優れた保存が可能であり、リアルタイム通信の実施が可能である。ｗｅｂＳｏｃｋｅｔは、ブラウザとサーバとの間の全二重通信（ｆｕｌｌ−ｄｕｐｌｅｘ）を実施できる。ｗｅｂＳｏｃｋｅｔを用いることで、ブラウザとサーバとは１回のハンドシェイクを行うだけでブラウザとサーバとの間に高速パスを形成できるので、ブラウザとサーバとは、直接、データを相互送信できる。
【００２８】
ＵＲＩを使ってウェブページを開く場合、第１のローカルアプリケーションは、ＵＲＩに記載されているパラメータを用いて、起動されたローカルソケットのアドレスとポートとを入手できる。このようにして、第１のローカルアプリケーションにより起動されたｗｅｂＳｏｃｋｅｔはローカルソケットへの接続を試みることができる。
【００２９】
Ｓ１２０：第２のローカルアプリケーションがローカルソケットを起動する。
【００３０】
本願の実施では、第２のローカルアプリケーションが呼び出された後に、第２のローカルアプリケーションがローカルソケットを起動できる。具体的には、ＵＲＩを用いてウェブページを開くときに、第２のローカルアプリケーションは、ローカルソケットを起動するように指示するために、ＵＲＩに含まれているパラメータを用いてローカルソケットを起動できる。パラメータは、例えば、先のｓｃｈｅｍｅＡｐｉ、ｓｔａｒｔａｐｐ、ｂｕｎｄｌｅＩＤ、及びｖｅｒｓｉｏｎを含む。これらのパラメータを、第２のローカルアプリケーションが呼び出された後に開かれるエントランスのようなコンテンツを示すために用いることができる。例えば、ＡＬＩＰＡＹはＣｒｅｄｉｔ  Ｐａｙエントランスにて起動される。
【００３１】
起動されたローカルソケットは「接続待ち」状態にあってよく、及び、サービスであってよい。
【００３２】
ソケットは、オペレーションシステムにより提供される通信層における一組の抽象化されたＡＰＩであり、ＩＰアドレス及びポートを記述するために用いられる、通信リンクのハンドルである。アプリケーションプログラムはソケットを用いてネットワークに要求を送信する、又は、ネットワーク要求に応答する。通常、アプリケーションプログラムは「ソケット」を用いて要求をネットワークへ送信する、又は、ネットワーク要求に応答する。ソケットは、同一ホストの異なる工程間での通信に用いることができ、双方向通信を確立できる。
【００３３】
アプリケーションプログラム（つまりプロセス）がシステムにより呼び出され、特定のポートにバインドされた後に、トランスポート層によりポートへ送信されたデータが、対応する工程によって受信され、対応する工程によりトランスポート層へ送信されたデータが同ポートを用いて出力される。
【００３４】
加えて、第２のローカルアプリケーションを呼び出した後に、リンクに対応するＨＴＭＬ５ウェブページを開けるので、ユーザは第２のローカルアプリケーション内で閲覧したり、操作を実行したりすることができる。
【００３５】
Ｓ１３０：第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いてローカルソケットに接続する場合、第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止する。
【００３６】
Ｓ１１０で、ＨＴＭＬ５ウェブページを開いた後に、第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを起動し、ローカルソケットへの接続を試みることができる。Ｓ１２０で、第２のローカルアプリケーションがローカルソケットを起動する。よって、Ｓ１３０で、第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いてローカルソケットに接続できる。
【００３７】
ｗｅｂＳｏｃｋｅｔ通信の原理に基づき、ローカルソケットとの通信にハンドシェイクモードを用いることができる。ｗｅｂＳｏｃｋｅｔは、ハンドシェイク成功の確認に基づいて、第１のローカルアプリケーションがローカルソケットに接続している、と特定できる。
【００３８】
第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いてローカルソケットに接続する場合、第２のローカルアプリケーションは呼び出されているので、第２のローカルアプリケーションをダウンロードするために第１のローカルアプリケーションが特定のブートページへジャンプする必要はない、と特定できる。更に、第１のローカルアプリケーションは、第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止できる。加えて、起動されたｗｅｂＳｏｃｋｅｔによるローカルソケットへの接続はローカルの操作であり、ネットワーク伝送又はネットワーク応答が不要となるため、処理時間と特定時間とを大幅に短縮できる。
【００３９】
第２のローカルアプリケーションは、ローカルソケットの起動に、いくらかの時間を費やさなければならない。そのため、第１のローカルアプリケーションはｗｅｂＳｏｃｋｅｔの起動直後にローカルソケットへの接続を試みる必要はないが、第１の所定期間の後にローカルソケットへの接続を試みることは可能である。Ｓ１１０で、ＨＴＭＬ５ウェブページを開いてから第１の所定期間の後に、第１のローカルアプリケーションはｗｅｂＳｏｃｋｅｔを起動してからローカルソケットへの接続を試みることができる。第１の所定期間の後に第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いてローカルソケットに接続すると、第１のローカルアプリケーションは第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止する。この所定期間は、例えば８００ミリ秒又は１秒に設定される。
【００４０】
加えて、第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いたローカルソケットへの接続に失敗すると、第１のローカルアプリケーションは第２のローカルアプリケーションをダウンロードするためのブートページへジャンプできる。具体的には、第１のローカルアプリケーションがローカルソケットへの接続に失敗すると、第１のローカルアプリケーションは、通常、エラープロンプトを受信できる。そのため、第１のローカルアプリケーションが、ｗｅｂＳｏｃｋｅｔを用いてローカルソケットに接続するときにエラープロンプトを受信すると、第１のローカルアプリケーションは、第２のローカルアプリケーションをダウンロードするためのブートページへジャンプできる。第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプはウェブページ論理回路で設定できるが、既存の技術にて実施されているため、ここではその詳細を繰り返さない。
【００４１】
第１のローカルアプリケーションによって起動されるｗｅｂＳｏｃｋｅｔと、第２のローカルアプリケーションによって起動されるローカルソケットとは、ウェブページリンク内の指定されたポート又は一群の指定されたポートのうちの１つであってよく、このようなポートはウェブページリンク内の１つのパラメータであってよい。これはＵＲＩをアセンブルする工程においても実施できる。よって、第２のローカルアプリケーションによって起動されるローカルソケットは指定のポートであってよい。
【００４２】
加えて、第１のローカルアプリケーションによって起動されたｗｅｂＳｏｃｋｅｔと、第２のローカルアプリケーションによって起動されたローカルソケットとは、事前に合意されたポートであっても、事前に合意された一群のポートのうちの１つであってもよい。例えば、Ｓ１２０で第２のローカルアプリケーションによって起動されたローカルソケットが用いるポートは、一群のポートのうちの１つであり、このポート群は８８８８、８８８９、８８９０を含む。ポート８８８８は、ときに別のアプリケーションによって既に占有されていることもある。このとき、Ｓ１２０で第２のローカルアプリケーションによって起動されたローカルソケットはポート８８８８が占有されていることを知得できるため、ローカルソケットはポート８８８９を用いることができる。よって、第１のローカルアプリケーションによって起動されたｗｅｂＳｏｃｋｅｔもポート８８８８であるため、このｗｅｂＳｏｃｋｅｔはローカルソケットには接続できない。そのため、第１のローカルアプリケーションによって起動されたｗｅｂＳｏｃｋｅｔが第２の所定期間（例えば、２０ミリ秒）内にローカルソケットへの接続に失敗すると、第１のローカルアプリケーションは所定ポート群のうちの別のポートを用いて再びローカルソケットと接続できる。ローカルソケットとの接続に再び成功すると、第１のローカルアプリケーションは第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止できる。第１のローカルアプリケーションによって起動されたｗｅｂＳｏｃｋｅｔが所定ポート群のうちの全てのポートを用いた後の第２の所定期間内にローカルソケットへの接続に失敗した場合、第１のローカルアプリケーションは、第２のローカルアプリケーションをダウンロードするためのブートページにジャンプすることができる。
【００４３】
本願は、アプリケーション起動システムの実施を更に提供する。
【００４４】
アプリケーション起動システムは、第１のローカルアプリケーションと第２のローカルアプリケーションとを含み、第１のローカルアプリケーションは、ＨＴＭＬ５ウェブページを開き、第２のローカルアプリケーションを呼び出し、ｗｅｂＳｏｃｋｅｔを起動してローカルソケットへの接続を試みるように構成され、また、第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いてローカルソケットに接続する場合には、第２のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するように構成され、第２のローカルアプリケーションは、ローカルソケットを起動するように構成される。
【００４５】
好ましくは、ウェブページへのリンクがトリガされて開かれると、第１のローカルアプリケーションが対応のウェブページを開く。また、好ましくは、第１のローカルアプリケーションは、ブラウザアプリケーション、又はｗｅｂＶｉｅｗコンポーネントに一体化されたローカルアプリケーションを含む。
【００４６】
好ましくは、ウェブページへのリンクがトリガされて開かれると、第１のローカルアプリケーションがウェブページのアドレスをＵＲＩにアセンブルし、このＵＲＩに対応する第２のローカルアプリケーションを呼び出す。
【００４７】
好ましくは、第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを起動して、ローカルソケットへの接続を試みる。これには、ＨＴＭＬ５ウェブページを開いてから第１の所定期間の後に、第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを起動し、ローカルソケットへの接続を試みることが含まれる。
【００４８】
好ましくは、第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いてローカルソケットへの接続に失敗した場合、第１のローカルアプリケーションは、第２のローカルアプリケーションをダウンロードするためのブートページへジャンプする。
【００４９】
好ましくは、第１のローカルアプリケーションがｗｅｂＳｏｃｋｅｔを用いてローカルソケットに接続するときにエラープロンプトを受信した場合、第１のローカルアプリケーションは、第２のローカルアプリケーションをダウンロードするためのブートページへジャンプする。
【００５０】
好ましくは、ローカルソケットを起動するために第２のローカルアプリケーションによって用いられるポートが占有されている場合、第２のローカルアプリケーションは、所定のポート群のうちの別のポートを用いる。
【００５１】
同様に、第１のローカルアプリケーションによって起動されたｗｅｂＳｏｃｋｅｔが第２の所定期間内にローカルソケットへの接続に失敗した場合、所定のポート群のうちの別のポートを用いてローカルソケットに再び接続する。
【００５２】
好ましくは、第１のローカルアプリケーションによって起動されたｗｅｂＳｏｃｋｅｔが、所定のポート群のうちの全てのポートを用いた後の第２の所定期間内にローカルソケットへの接続に失敗した場合、第１のローカルアプリケーションは、第２のローカルアプリケーションをダウンロードするためのブートページへジャンプする。
【００５３】
１９９０年代には、技術的な改良がハードウェアの改良（例えば、ダイオード、トランジスタ、スイッチなどの回路構造の改良）であるか、ソフトウェアの改良（方法手順の改良）であるかを明確に区別することができた。しかし、技術の発展に伴い、多くの現在の方法手順における改良は、ハードウェア回路構造の直接的な改良であるとみなすことができる。設計者は、通常、改良された方法手順をハードウェア回路にプログラムして、対応するハードウェア回路構造を得る。したがって、ハードウェア実体モジュールを用いることによっては方法手順を改良できないとは言えない。プログラマブル論理デバイス（ＰＬＤ）（例えば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ））はそのような集積回路であり、ＰＬＤの論理機能はデバイスプログラミングによりユーザによって決定される。設計者は、チップ製造業者に特定用途向け集積回路チップの設計及び製造を要求することなく、デジタルシステムをＰＬＤに「統合」するためのプログラミングを実行する。加えて、今では、集積回路チップをマニュアルで製造する代わりに、このようなタイプのプログラミングは、主に「論理コンパイラ」ソフトウェアを用いて実装される。このプログラミングは、プログラムを開発し、書き込むために用いられるソフトコンパイラに類似する。コンパイルのために、元のコードを特定のプログラミング言語で記述する必要がある。言語はハードウェア記述言語（ＨＤＬ）と呼ばれる。高度ブール演算式言語（ＡＢＥＬ）、アルテラハードウェア記述言語（ＡＨＤＬ）、Ｃｏｎｆｌｕｅｎｃｅ（コンフルエンス）、コーネル大学プログラミング言語（ＣＵＰＬ）、ＨＤＣａｌ、Ｊａｖａ（登録商標）ハードウェア記述言語（ＪＨＤＬ）、Ｌａｖａ、Ｌｏｌａ  、ＭｙＨＤＬ、ＰＡＬＡＳＭ、及びＲｕｂｙハードウェア記述言語（ＲＨＤＬ）のような多くのハードウェア記述言語がある。超高速の集積回路ハードウェア記述言語（ＶＨＤＬ）及びＶｅｒｉｌｏｇが最も一般的に用いられる。当業者であれば、いくつかの説明されたハードウェア記述言語を用いて方法手順が論理的にプログラムされ、集積回路にプログラムされると、論理方法手順を実装するハードウェア回路を容易に得ることができることも理解すべきである。
【００５４】
コントローラは、適切な方法を用いて実装できる。例えば、コントローラは、マイクロプロセッサ若しくはプロセッサ、論理ゲート、スイッチ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブルロジックコントローラ、あるいは、マイクロプロセッサ若しくはプロセッサによって実行されるコンピュータ読取可能なプログラムコード（ソフトウェア又はファームウェアなど）を格納する内蔵マイクロプロセッサであってもよい。コントローラの例として、以下のマイクロプロセッサが挙げられるが、これらに限定されない。すなわち、ＡＲＣ  ６２５Ｄ、Ａｔｍｅｌ  ＡＴ９１ＳＡＭ、Ｍｉｃｒｏｃｈｉｐ  ＰＩＣ１８Ｆ２６Ｋ２０、及びＳｉｌｉｃｏｎｅ  Ｌａｂｓ  Ｃ８０５１Ｆ３２０。メモリコントローラも、メモリの制御ロジックの一部として実装できる。当業者であれば、コンピュータ読取可能なプログラムコードを用いてコントローラを実装することに加えて、秩序的手順で論理プログラミングを実行してコントローラに論理ゲート、スイッチ、プログラマブルロジックコントローラ、及び内蔵マイクロコントローラの形態で同じ機能を実行させることができることも理解できよう。したがって、このようなコントローラは、ハードウェアコンポーネントとみなすことができ、コントローラに様々な機能を実装するように構成されるデバイスもハードウェアコンポーネント内の構造とみなせる。或いは、様々な機能を実装するように構成されるデバイスは、この方法を実装するソフトウェアモジュール及びハードウェアコンポーネント内の構造の両方とみなすことさえできる。
【００５５】
前述の実施で示したシステム、装置、モジュール、又はユニットは、コンピュータチップ又は実体物を用いて実施することも、特定の機能を持つ製品を用いて実施することもできる。
【００５６】
説明しやすくするために、上述の装置は、機能を様々なユニットに分割して説明されている。当然ながら、本願を実施する場合、各ユニットの機能は、一つ以上のソフトウェア及び／又はハードウェアで実装することができる。
【００５７】
当業者は、本願の実施が方法、システム、又はコンピュータプログラム製品として提供できることを理解するはずである。そのため、本願は、ハードウェアのみの実施、ソフトウェアのみの実施、又は、ソフトウェアとハードウェアとの組み合わせによる実施を用いることができる。さらに、本願は、コンピュータで使用可能なプログラムコードを含んだ１台以上のコンピュータで使用可能な記憶媒体（磁気ディスクストレージ、ＣＤ−ＲＯＭ、光学メモリ等を含むがこれに限定されない）上で実施されるコンピュータプログラム製品を使用できる。
【００５８】
本願は、本願の実施に係る方法、デバイス（システム）、コンピュータプログラム製品のフローチャート及び／又はブロック図を参照して説明されている。フローチャート及び／又はブロック図内の各プロセス及び／又は各ブロック、並びにフローチャート及び／又はブロック図内のプロセス及び／又はブロックの組み合わせを実施するために、コンピュータプログラム命令を使用することができることを理解されたい。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又はあらゆるその他のプログラムマブルデータ処理デバイスに、マシンを生成するために提供されることができ、これにより、コンピュータ、又は、あらゆるその他のプログラムマブルデータ処理デバイスのプロセッサが、フローチャートの１つ以上の工程において、及び／又は、ブロック図の１つ以上のブロックにおいて、特定の機能を実施するデバイスを生成できるようになる。
【００５９】
これらのコンピュータプログラム命令を、コンピュータ又はあらゆるその他のプログラマブルデータ処理デバイスに特定の方法で機能するように命令することができるコンピュータ読取可能なメモリに記憶して、これらのコンピュータ読取可能なメモリに記憶された命令が、命令装置を含む加工品を作り出すようにすることができる。この命令装置は、フローチャート内の１つ以上の工程における、及び／又はブロック図内の１つ以上のブロックにおける特定の機能を実施する。
【００６０】
これらのコンピュータプログラム命令をコンピュータ又はその他のプログラマブルデータ処理デバイスにロードして、コンピュータ又はその他のプログラムマブルデバイス上で一連の操作及びステップが実行されるようにし、コンピュータで実施される処理を生成することができる。これにより、コンピュータ又はその他のプログラムマブルデバイス上で実行される命令が、フローチャート内の１つ以上のステップ及び／又はブロック図内の１つ以上のブロックにおける特定の機能を実施するデバイスを提供することを可能とする。
【００６１】
典型的な構成では、計算デバイスは１つ以上のプロセッサ（ＣＰＵｓ）、入出力インターフェース、ネットワークインターフェース、及びメモリを含む。
【００６２】
メモリは、揮発性メモリ、ランダムアクセスメモリ（ＲＡＭ）、及び／又はリードオンリーメモリ（ＲＯＭ）やフラッシュメモリ（フラッシュＲＡＭ）のような不揮発性メモリを含んでよい。メモリはコンピュータ読取可能な媒体の一例である。
【００６３】
コンピュータ読取可能な媒体には、任意の方法又は技術を用いて情報を記憶できる、永続的、非永続的、移動可能な、移動不能な媒体が含まれる。この情報はコンピュータ読取可能な命令、データ構造、プログラムモジュール、又はその他のデータであってよい。コンピュータの記憶媒体の例として、計算デバイスによってアクセスできる情報を記憶するために用いることが可能な、パラレルランダムアクセスマシーン（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、別タイプのランダムアクセスメモリ、リードオンリーメモリ（ＲＯＭ）、電気的に消去可能でプログラム可能なＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリ、又は別のメモリ技術、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）、又は別の光学記憶装置及びカセットがあるが、それらに限定されない。カセット、他の磁気的記憶装置又は他の任意の非伝送媒体は、コンピュータ装置によってアクセスすることができる情報を格納するように構成することができる。本願の定義に基づき、コンピュータ読取可能な媒体は、変調されたデータ信号及び搬送波のような一時的な媒体（ｔｒａｎｓｉｔｏｒｙ  ｍｅｄｉａ）を含まない。
【００６４】
さらに、用語「含む」、「含有する」、又はこれらのその他任意の応用形は、非限定的な包含を網羅するものであるため、一連の要素を含んだ工程、方法、物品、デバイスはこれらの要素を含むだけでなく、ここで明確に挙げていないその他の要素をも含む、あるいは、このような工程、方法、物品、デバイスに固有の要素をさらに含むことができる点に留意することが重要である。「（一の）〜を含む」との用語を付けて示された要素は、それ以上の制約がなければ、その要素を含んだ工程、方法、物品、デバイス内に別の同一の要素をさらに含むことを排除しない。
【００６５】
当業者は、本願の実施が方法、システム、コンピュータプログラム製品として提供され得ることを理解するはずである。そのため、本願は、ハードウェアのみの実施の形式、ソフトウェアのみの実施の形式、又は、ソフトウェアとハードウェアの組み合わせによる実施の形式を用いることができる。さらに、本願は、コンピュータで用いることができるプログラムコードを含んだ、１つ以上のコンピュータで使用可能な記憶媒体（磁気ディスクストレージ、ＣＤ−ＲＯＭ、光学ディスク等を非限定的に含む）上で実施されるコンピュータプログラム製品の形態を用いることが可能である。
【００６６】
本願は、コンピュータにより実行されるコンピュータ実行可能な命令、例えばプログラムモジュールの一般的文脈において記載することができる。一般に、プログラムモジュールは、特定のタスクを実行する、或いは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本願は、分散型コンピューティング環境において実践することもできる。これら分散型コンピューティング環境において、タスクは、通信ネットワークを用いることにより接続されるリモート処理デバイスにより実行される。分散型コンピューティング環境において、プログラムモジュールは、格納デバイスを含むローカル及びリモートコンピュータ格納媒体に配置することができる。
【００６７】
本明細書における実施は、逐次的な形式で記載されている。実施における同一又は類似の部分については、その実施を参照されたい。各実施は、他の実施との差異に焦点を当てている。特に、システムの実施は方法の実施に類似しており、したがって、簡潔に記載される。関連する部分については、方法の実施における関連する説明を参照されたい。
【００６８】
上述のものは本願の一実施の形態に過ぎず、本願を限定するものではない。当業者にとって、本願は様々な修正及び変更を加えることができる。本願の主旨及び原理から逸脱せずに為されるあらゆる修正、均等物による代替、改善は、本願の特許請求の範囲に含まれるものである。
【図１】
2019516197.tif 000003
【国際調査報告】
2019516197.tif 000004
2019516197.tif 000005
2019516197.tif 000006
2019516197.tif 000007