(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-17
(45)【発行日】2022-01-17
(54)【発明の名称】アプリケーション起動方法及びシステム
(51)【国際特許分類】
H04L 67/02 20220101AFI20220107BHJP
G06F 9/445 20180101ALI20220107BHJP
【FI】
H04L67/02
G06F9/445
(21)【出願番号】P 2018559743
(86)(22)【出願日】2017-04-11
(86)【国際出願番号】 CN2017079991
(87)【国際公開番号】W WO2017193746
(87)【国際公開日】2017-11-16
【審査請求日】2020-03-19
(31)【優先権主張番号】201610309803.4
(32)【優先日】2016-05-11
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520015461
【氏名又は名称】アドバンスド ニュー テクノロジーズ カンパニー リミテッド
(74)【代理人】
【識別番号】100188558
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100205785
【氏名又は名称】▲高▼橋 史生
(72)【発明者】
【氏名】ワン,ティェン
(72)【発明者】
【氏名】シャオ,ミンボォ
【審査官】小林 義晴
(56)【参考文献】
【文献】特表2016-533550(JP,A)
【文献】特表2016-517571(JP,A)
【文献】米国特許出願公開第2014/0280694(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
アプリケーションを起動する方法であって:
第1のローカルアプリケーションによってHTML5ウェブページを開き、第2のローカルアプリケーションを呼び出し、webSocketを起動してローカルソケットへの接続を試みるステップ(S110)と;
前記第2のローカルアプリケーションにより前記ローカルソケットを起動するステップ(S120)と;
前記第1のローカルアプリケーションが前記webSocketを用いて前記ローカルソケットに接続する場合に、前記第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するステップ(S130)と;を備える、
アプリケーションを起動する方法。
【請求項2】
前記
HTML5ウェブページへのリンクがトリガされて開かれると、前記第1のローカルアプリケーションが対応するウェブページを開き、
前記第1のローカルアプリケーションは、ブラウザアプリケーション、又はwebViewコンポーネントと一体化されたローカルアプリケーションを備える、
請求項1に記載の方法。
【請求項3】
前記
HTML5ウェブページへのリンクがトリガされて開かれると、前記第1のローカルアプリケーションは、ウェブページアドレスに含まれるパラメータをURI内にアセンブルし、前記URIに対応する前記第2のローカルアプリケーションを呼び出す、
請求項1に記載の方法。
【請求項4】
前記パラメータは、指定されたポート番号を含む、
請求項3に記載の方法。
【請求項5】
前記第1のローカルアプリケーションによってwebSocketを起動して前記ローカルソケットへの接続を試みる前記ステップは:
前記HTML5ウェブページが開かれてから第1の所定期間の後に、前記第1のローカルアプリケーションによって前記webSocketを起動して前記ローカルソケットへの接続を試みるステップを備える、
請求項1に記載の方法。
【請求項6】
前記第1のローカルアプリケーションが、前記webSocketを用いて行う前記ローカルソケットへの接続に失敗した場合に、前記第2のローカルアプリケーションをダウンロードするための前記ブートページへジャンプするステップを更に備える、
請求項1に記載の方法。
【請求項7】
前記第1のローカルアプリケーションが、前記webSocketを用いて前記ローカルソケットに接続するときにエラープロンプトを受信した場合に、前記第2のローカルアプリケーションをダウンロードするための前記ブートページへジャンプするステップを更に備える、
請求項6に記載の方法。
【請求項8】
前記ローカルソケットを起動するために前記第2のローカルアプリケーションにより用いられるポートが占有されている場合に、所定ポート群のうちの別のポートを用いるステップと;
これに対応して、前記第1のローカルアプリケーションによって起動された前記webSocketが、第2の所定期間内に前記ローカルソケットへの接続に失敗した場合に、前記所定ポート群のうちの別のポートを用いて、前記ローカルソケットに再接続するステップと;を備える、
請求項1に記載の方法。
【請求項9】
前記第1のローカルアプリケーションによって起動された前記webSocketが、前記所定ポート群のうちの全てのポートを用いた後の前記第2の所定期間中に前記ローカルソケットへの接続に失敗した場合に、前記第1のローカルアプリケーションは、前記第2のローカルアプリケーションをダウンロードするための前記ブートページへジャンプする、
請求項8に記載の方法。
【請求項10】
第1のローカルアプリケーションと前記第2のローカルアプリケーションとは、互いに直接通信することはできない、
請求項1乃至請求項9のいずれか1項に記載の方法。
【請求項11】
請求項1乃至請求項10のいずれか1項に記載の方法を実行するように構成された複数のモジュールを備える、
アプリケーションを起動するためのシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本願はコンピュータソフトウェア技術の分野に関し、特に、アプリケーションを起動する方法及びシステムに関する。
【背景技術】
【0002】
モバイル端末プラットフォームは、様々なユーザ指向の機能を実施するために、モバイル端末オペレーションシステムに基づいて開発されたアプリケーションを提供できる。例えば、Apple(登録商標)のiOSプラットフォームはiOSスシステムに基づくモバイル端末アプリケーションを提供し、Google(登録商標)のAndroid(登録商標)プラットフォームはAndroid(登録商標)システムに基づくモバイル端末アプリケーションを提供し、そしてWindows(登録商標)のモバイル端末プラットフォームはWindows(登録商標)システムに基づくモバイル端末アプリケーションを提供する。
【0003】
モバイル端末プラットフォーム上のアプリケーションは他のアプリケーションを用いて起動できる。例えば、ショートメッセージアプリケーションによって、URLアドレスを含んだショートメッセージが受信され、ユーザがショートメッセージ内のそのURLアドレスをタップすると、モバイル端末はウェブページを開くことができる。開かれるこのウェブページは、モバイル端末のデフォルトのブラウザアプリケーションを用いて開くことができる。別の例では、決済取引を実行するときに、モバイル端末上のローカルアプリケーションA(例えば、チケット購入アプリケーション)が、ローカルアプリケーションAに一体化されたwebViewコンポーネントを用いて決済ページを開くことができ、この決済ページからローカルアプリケーションB(例えば、決済アプリケーション)を起動できる。
【0004】
具体的には、例えば、モバイル端末のショートメッセージアプリケーション内の特定のショートメッセージは、ALIPAY(アリペイ)へのリンクを含んでもよい。ユーザがショートメッセージ内のリンクをタップすると、モバイル端末がデフォルトのブラウザアプリケーションを用いてそのリンクのページを開くことができる。さらに、このページはスキームURIを用いてローカルアプリケーションBの呼び出しを試みることができ、これにより、ユーザはALIPAY内の操作を実行できるようになる。スキームURIはシステムレベルのリソースロケーション方法であり、Android(登録商標)、iOS、Windows(登録商標)などのモバイルプラットフォームシステムをサポートする。先の例では、ALIPAYを呼び出した後に、ほとんどのモバイルプラットフォームシステムのブラウザアプリケーションによって開かれたページは、通常、消えることはなく、アプリケーションを短時間でダウンロードするためのブート(起動)ページへジャンプする。よって、モバイル端末にALIPAYが既にインストールされている場合でも、ブラウザのジャンプ先のページは依然としてALIPAYをダウンロードするようユーザを促す。
【0005】
別の例では、モバイル端末のローカルアプリケーションAを操作することにより、TAOBAO(タオバオ)商品へのリンクが開かれる。例えば、ローカルアプリケーションAがwebViewコンポーネントを用いてこのリンクのページを開くことができる。更に、このページは、スキームURIを用いてローカルアプリケーションB(例えば、TAOBAO)の呼び出しを試みることにより、ユーザは、TAOBAO内の操作を実行できるようになる。先の例では、TAOBAOを呼び出した後、ほとんどのモバイルプラットフォームシステムのローカルアプリケーションA内のwebViewコンポーネントによって開かれたページは、通常、消えることはなく、アプリケーションを短時間でダウンロードするためのブートページへジャンプする。よって、モバイル端末にTAOBAOが既にインストールされていても、ブラウザがwebViewコンポーネントを用いてジャンプした先のページは依然としてTAOBAOをダウンロードするようユーザを促す。
【0006】
既存技術では、ウェブページが開かれ、対応するアプリケーションが呼び出された後、この開かれたウェブページは、対応するアプリケーションがモバイル端末に既にインストールされていることを知得できないことが分かる。そのため、対応するアプリケーションがモバイル端末に既にインストールされているかどうかにかかわらず、モバイル端末はアプリケーションのダウンロードページに案内されてしまう。通信プロセスは長引き、リソースは浪費され、ユーザエクスペリエンスは悪影響を受ける。
【発明の概要】
【0007】
本願の実施は、開かれたページに対応する端末へ、対応するアプリケーションが既にインストールされていることを、この開かれたページが確認できるような、アプリケーション起動方法及びシステムを提供する。
【0008】
先の技術的課題を解決するために、本願の実施は以下のとおり実施される。
【0009】
アプリケーション起動方法であって:第1のローカルアプリケーションによってHTML5ウェブページを開き、第2のローカルアプリケーションを呼び出し、webSocketを起動してローカルソケットへの接続を試みるステップと;前記第2のローカルアプリケーションにより前記ローカルソケットを起動するステップと;前記第1のローカルアプリケーションが前記webSocketを用いて前記ローカルソケットに接続する場合、前記第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するステップと;を含む。
【0010】
アプリケーション起動システムであって:HTML5ウェブページを開き、第2のローカルアプリケーションを開き、webSocketを起動してローカルソケットへの接続を試みるように構成され、及び、前記第1のローカルアプリケーションが前記webSocketを用いて前記ローカルソケットに接続する場合、前記第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するように構成された第1のローカルアプリケーションと;前記ローカルソケットを起動するように構成された前記第2のローカルアプリケーションと;を含む。
【0011】
本願の実施において提供される先の技術的解決策から分かるように、HTML5ウェブページを開いた後、第1のローカルアプリケーションはwebSocketを起動してローカルソケットへの接続を試みることができる。ローカルソケットは、第2のローカルアプリケーションが呼び出された後に起動できる。よって、第1のローカルアプリケーションはwebSocketを用いてローカルソケットに接続できる。第1のローカルアプリケーションがwebSocketを用いてローカルソケットに接続すれば、第2のローカルアプリケーションは呼び出されているので、第1のローカルアプリケーションが特定のダウンロードブートページへジャンプする必要はない、と特定できる。更に、第1のローカルアプリケーションは、第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止できる。
【図面の簡単な説明】
【0012】
本願の実施における又は既存技術における、技術的解決策をより明確に説明するために、本願の実施又は既存技術の説明に必要な添付図面を簡単に以下説明する。明らかに、以下の説明における添付図面は本願の実施例の一部を示すにすぎず、当業者であれば、創造的に努力することなく、これらの添付図面から別の図面を得ることができる。
【0013】
【
図1】
図1は、本願に係るアプリケーション起動方法の実施を示すフローチャートである。
【発明を実施するための形態】
【0014】
本願の実施は、アプリケーションを起動するための方法及びシステムを提供する。
【0015】
当業者が本願の技術的解決策をより良く理解するよう、本願の実施における添付図面に関連して、本願の実施における技術的解決策を明確かつ完全に以下説明する。明らかに、記載の実施は本願の実施の全てではなく、その一部に過ぎない。本願の実施に基づき当業者が創造的な努力を要することなく得られる他の全ての実施は、本願の保護範囲に含まれる。
【0016】
先の既存技術では、ウェブページを開くブラウザアプリケーション、又は、webViewコンポーネントを用いてウェブページを開くローカルアプリケーションA(例えば、先述のブラウザアプリケーションやチケット購入アプリケーション)は、通常、呼び出されたローカルアプリケーションBと同一のアプリケーションではないため、その工程はローカルアプリケーションBと同一ではない。既存技術ではウェイクアップ(起動)工程におけるクロスプロセス通信方法が欠けており、ローカルアプリケーションAはローカルアプリケーションBが呼び出されたことを知得できないので、ローカルアプリケーションAは、ローカルアプリケーションBをダウンロードするためのブートページへジャンプしてしまう。
【0017】
本願の実施は、アプリケーション起動方法を提供する。
図1は、この実施の実施手順を示す。
図1に示すように、この実施手順は以下のステップを含む。
【0018】
S110:第1のローカルアプリケーションがHTML5ウェブページを開き、第2のローカルアプリケーションを呼び出し、webSocketを起動してローカルソケットへの接続を試みる。
【0019】
タップなどの操作により、HTML5ウェブページへのリンクがトリガされて開かれると、対応するページを、ブラウザアプリケーション内又はローカルアプリケーションのwebViewコンポーネント内にロードすることができる。ブラウザアプリケーション、又はローカルアプリケーションのwebViewコンポーネントは、HTML5ウェブページのアドレスを統一リソース識別子(URI)にアセンブルする(組み立てる)ことができる。URIはスキームURI(若しくはURIスキーム)とも、カスタムスキームURIとも呼ばれる。URIは統一リソース識別子(Uniform Resource Identifier)の名前付け構造であって、リソースを定義できる。このリソースの概念は広く、ウェブリソースと称されるものであっても、ローカルマシンのファイルであっても、ネットワーク上のビデオ等であってもよい。以下の形式がURIである。
http://write.blog.csdn.net/postedit/7313543
file:///c:/WINDOWS/clock.avi
Git://github.com/user/project-name.git
ftp://user1:1234@address
ed2k://|file|%5BMAC%E7%89%88%E6%9E%81%E5%93%81%E9%A3%9E%E8%BD%A69%EF%BC%9A%E6%9C%80%E9%AB%98%E9%80%9A%E7%BC%89%5D.%5BMACGAME%5DNeed.For.Speed.Most.Wanted.dmg|4096933888|2c55f0ad2cb7f6b296db94090b63e88e|h=ltcxuvnp24ufx25h2x7ugfaxfchjkwxa|/
【0020】
URIスキームは一般に以下の形式を有する。
scheme://host:[port]/path?queryKey=queryValue
ここで、schemeはスキーム名であって、例えば、先のhttp、file、Git、ed2kはスキーム名であり;hostはホストアドレスであり;pathはパスであり;queryKey=queryValueはクエリキー値であり;portはポートである(必須ではない)。
【0021】
例えば、ショートメッセージアプリケーション内にショートメッセージがあり、このショートメッセージの内容が以下の形式のリンクを含む。
http://www.ALIPAY.com/custom.html?schemeUrl=zmVerify%3a%2f%2fschemeApi%2fstartApp%3fbundleId%3d2000118%26version%3d1.5.1
zmVerify://schemeApi/startApp?bundleId=2000118&version=1.5.1はリンク内のデータの一片であり、更にはURLエンコードの後のURIでもある(URLデコードはzmVerify://schemeApi/startApp?bundleId=2000118&version=1.5.1である)。ZmVerifyはZhima verify(セサミクレジット、あるいはゴマ信用)アプリケーションを示す。ALIPAYの場合、このデータは、例えば、ALIPAY://schemeApi/startApp?bundleId=2000118&version=1.5.1となる。システムは、zmVerifyスキームを用いて、zmVerifyスキームを宣言するアプリケーションをロケートし、このアプリケーションを呼び出せる。schemeApi、startapp、bundleID、versionは、オプションのパラメータアイテムである。schemeApiは、qq.comやALIPAY.comといったドメイン名と同等のドメインである。第2のアプリケーションは、startapp、bundleID、version、又は更に多くのその他の類似するパラメータアイテムを、サービスの必要条件に基づいて処理でき、例えば、ウェブページを開いたり、曲を再生したり、通知を送信したりすることができる。
【0022】
ショートメッセージアプリケーション内のリンクがトリガされて開かれると、リンクを開くためにデフォルトのブラウザアプリケーションを起動できる。開くプロセスでは、端末デバイスのブラウザアプリケーションがパース(解析)することによってリンク内のURIを入手し、URI内で識別されたアプリケーションに基づいて、対応するリンクリソースへアクセスできる。具体的には、端末デバイスブラウザは、ウェブページデータ内のjs(Java(登録商標) Script)コードをパースすることによりURIを入手できる。
【0023】
例えば、URI内で識別されたアプリケーションがALIPAYである場合、システムAPI(Application Programming Interface)を用いて対応のALIPAYアプリを呼び出すことができ、ALIPAY内で先のリンク内に記述されているリソースへアクセスできる。同様に、URI内で識別されたアプリケーションがTAOBAOである場合、システムAPIを用いて、対応するTAOBAOアプリを呼び出すことができ、TAOBAO内で先のリンク内に記述されているリソースが開かれる。
【0024】
先の実施例では、デフォルトのブラウザアプリケーションはS110での第1のローカルアプリケーションであり、呼び出されるALIPAYアプリ又はTAOBAOアプリは第2のローカルアプリケーションである。
【0025】
同様に、第1のローカルアプリケーションはwebViewコンポーネントと一体化されたアプリケーション、例えば、特定のショッピングアプリケーションであってよい。このショッピングアプリケーションはwebViewと一体化されているので、リンクはwebViewと一体化されたアプリケーションを用いて開くことができる。HTML5ウェブページのブラウジング機能を実施するwebViewコンポーネントが一体化されているため、この処理ではデフォルトのブラウザアプリケーションを起動する必要はない。
【0026】
通常、第1のローカルアプリケーションと第2のローカルアプリケーションの処理は別々であるので、互いに、直接、通信することはできない。
【0027】
加えて、HTML5ウェブページを開いた後、第1のローカルアプリケーションは更にwebSocketを起動し、ローカルソケットへの接続を試みることができる。webSocketはHTML5のプロトコルである。webSocketプロトコルはHTML5にて定義されているので、サーバリソース及び帯域のより優れた保存が可能であり、リアルタイム通信の実施が可能である。webSocketは、ブラウザとサーバとの間の全二重通信(full-duplex)を実施できる。webSocketを用いることで、ブラウザとサーバとは1回のハンドシェイクを行うだけでブラウザとサーバとの間に高速パスを形成できるので、ブラウザとサーバとは、直接、データを相互送信できる。
【0028】
URIを使ってウェブページを開く場合、第1のローカルアプリケーションは、URIに記載されているパラメータを用いて、起動されたローカルソケットのアドレスとポートとを入手できる。このようにして、第1のローカルアプリケーションにより起動されたwebSocketはローカルソケットへの接続を試みることができる。
【0029】
S120:第2のローカルアプリケーションがローカルソケットを起動する。
【0030】
本願の実施では、第2のローカルアプリケーションが呼び出された後に、第2のローカルアプリケーションがローカルソケットを起動できる。具体的には、URIを用いてウェブページを開くときに、第2のローカルアプリケーションは、ローカルソケットを起動するように指示するために、URIに含まれているパラメータを用いてローカルソケットを起動できる。パラメータは、例えば、先のschemeApi、startapp、bundleID、及びversionを含む。これらのパラメータを、第2のローカルアプリケーションが呼び出された後に開かれるエントランスのようなコンテンツを示すために用いることができる。例えば、ALIPAYはCredit Payエントランスにて起動される。
【0031】
起動されたローカルソケットは「接続待ち」状態にあってよく、及び、サービスであってよい。
【0032】
ソケットは、オペレーションシステムにより提供される通信層における一組の抽象化されたAPIであり、IPアドレス及びポートを記述するために用いられる、通信リンクのハンドルである。アプリケーションプログラムはソケットを用いてネットワークに要求を送信する、又は、ネットワーク要求に応答する。通常、アプリケーションプログラムは「ソケット」を用いて要求をネットワークへ送信する、又は、ネットワーク要求に応答する。ソケットは、同一ホストの異なる工程間での通信に用いることができ、双方向通信を確立できる。
【0033】
アプリケーションプログラム(つまりプロセス)がシステムにより呼び出され、特定のポートにバインドされた後に、トランスポート層によりポートへ送信されたデータが、対応する工程によって受信され、対応する工程によりトランスポート層へ送信されたデータが同ポートを用いて出力される。
【0034】
加えて、第2のローカルアプリケーションを呼び出した後に、リンクに対応するHTML5ウェブページを開けるので、ユーザは第2のローカルアプリケーション内で閲覧したり、操作を実行したりすることができる。
【0035】
S130:第1のローカルアプリケーションがwebSocketを用いてローカルソケットに接続する場合、第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止する。
【0036】
S110で、HTML5ウェブページを開いた後に、第1のローカルアプリケーションがwebSocketを起動し、ローカルソケットへの接続を試みることができる。S120で、第2のローカルアプリケーションがローカルソケットを起動する。よって、S130で、第1のローカルアプリケーションがwebSocketを用いてローカルソケットに接続できる。
【0037】
webSocket通信の原理に基づき、ローカルソケットとの通信にハンドシェイクモードを用いることができる。webSocketは、ハンドシェイク成功の確認に基づいて、第1のローカルアプリケーションがローカルソケットに接続している、と特定できる。
【0038】
第1のローカルアプリケーションがwebSocketを用いてローカルソケットに接続する場合、第2のローカルアプリケーションは呼び出されているので、第2のローカルアプリケーションをダウンロードするために第1のローカルアプリケーションが特定のブートページへジャンプする必要はない、と特定できる。更に、第1のローカルアプリケーションは、第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止できる。加えて、起動されたwebSocketによるローカルソケットへの接続はローカルの操作であり、ネットワーク伝送又はネットワーク応答が不要となるため、処理時間と特定時間とを大幅に短縮できる。
【0039】
第2のローカルアプリケーションは、ローカルソケットの起動に、いくらかの時間を費やさなければならない。そのため、第1のローカルアプリケーションはwebSocketの起動直後にローカルソケットへの接続を試みる必要はないが、第1の所定期間の後にローカルソケットへの接続を試みることは可能である。S110で、HTML5ウェブページを開いてから第1の所定期間の後に、第1のローカルアプリケーションはwebSocketを起動してからローカルソケットへの接続を試みることができる。第1の所定期間の後に第1のローカルアプリケーションがwebSocketを用いてローカルソケットに接続すると、第1のローカルアプリケーションは第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止する。この所定期間は、例えば800ミリ秒又は1秒に設定される。
【0040】
加えて、第1のローカルアプリケーションがwebSocketを用いたローカルソケットへの接続に失敗すると、第1のローカルアプリケーションは第2のローカルアプリケーションをダウンロードするためのブートページへジャンプできる。具体的には、第1のローカルアプリケーションがローカルソケットへの接続に失敗すると、第1のローカルアプリケーションは、通常、エラープロンプトを受信できる。そのため、第1のローカルアプリケーションが、webSocketを用いてローカルソケットに接続するときにエラープロンプトを受信すると、第1のローカルアプリケーションは、第2のローカルアプリケーションをダウンロードするためのブートページへジャンプできる。第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプはウェブページ論理回路で設定できるが、既存の技術にて実施されているため、ここではその詳細を繰り返さない。
【0041】
第1のローカルアプリケーションによって起動されるwebSocketと、第2のローカルアプリケーションによって起動されるローカルソケットとは、ウェブページリンク内の指定されたポート又は一群の指定されたポートのうちの1つであってよく、このようなポートはウェブページリンク内の1つのパラメータであってよい。これはURIをアセンブルする工程においても実施できる。よって、第2のローカルアプリケーションによって起動されるローカルソケットは指定のポートであってよい。
【0042】
加えて、第1のローカルアプリケーションによって起動されたwebSocketと、第2のローカルアプリケーションによって起動されたローカルソケットとは、事前に合意されたポートであっても、事前に合意された一群のポートのうちの1つであってもよい。例えば、S120で第2のローカルアプリケーションによって起動されたローカルソケットが用いるポートは、一群のポートのうちの1つであり、このポート群は8888、8889、8890を含む。ポート8888は、ときに別のアプリケーションによって既に占有されていることもある。このとき、S120で第2のローカルアプリケーションによって起動されたローカルソケットはポート8888が占有されていることを知得できるため、ローカルソケットはポート8889を用いることができる。よって、第1のローカルアプリケーションによって起動されたwebSocketもポート8888であるため、このwebSocketはローカルソケットには接続できない。そのため、第1のローカルアプリケーションによって起動されたwebSocketが第2の所定期間(例えば、20ミリ秒)内にローカルソケットへの接続に失敗すると、第1のローカルアプリケーションは所定ポート群のうちの別のポートを用いて再びローカルソケットと接続できる。ローカルソケットとの接続に再び成功すると、第1のローカルアプリケーションは第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止できる。第1のローカルアプリケーションによって起動されたwebSocketが所定ポート群のうちの全てのポートを用いた後の第2の所定期間内にローカルソケットへの接続に失敗した場合、第1のローカルアプリケーションは、第2のローカルアプリケーションをダウンロードするためのブートページにジャンプすることができる。
【0043】
本願は、アプリケーション起動システムの実施を更に提供する。
【0044】
アプリケーション起動システムは、第1のローカルアプリケーションと第2のローカルアプリケーションとを含み、第1のローカルアプリケーションは、HTML5ウェブページを開き、第2のローカルアプリケーションを呼び出し、webSocketを起動してローカルソケットへの接続を試みるように構成され、また、第1のローカルアプリケーションがwebSocketを用いてローカルソケットに接続する場合には、第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するように構成され、第2のローカルアプリケーションは、ローカルソケットを起動するように構成される。
【0045】
好ましくは、ウェブページへのリンクがトリガされて開かれると、第1のローカルアプリケーションが対応のウェブページを開く。また、好ましくは、第1のローカルアプリケーションは、ブラウザアプリケーション、又はwebViewコンポーネントに一体化されたローカルアプリケーションを含む。
【0046】
好ましくは、ウェブページへのリンクがトリガされて開かれると、第1のローカルアプリケーションがウェブページのアドレスをURIにアセンブルし、このURIに対応する第2のローカルアプリケーションを呼び出す。
【0047】
好ましくは、第1のローカルアプリケーションがwebSocketを起動して、ローカルソケットへの接続を試みる。これには、HTML5ウェブページを開いてから第1の所定期間の後に、第1のローカルアプリケーションがwebSocketを起動し、ローカルソケットへの接続を試みることが含まれる。
【0048】
好ましくは、第1のローカルアプリケーションがwebSocketを用いてローカルソケットへの接続に失敗した場合、第1のローカルアプリケーションは、第2のローカルアプリケーションをダウンロードするためのブートページへジャンプする。
【0049】
好ましくは、第1のローカルアプリケーションがwebSocketを用いてローカルソケットに接続するときにエラープロンプトを受信した場合、第1のローカルアプリケーションは、第2のローカルアプリケーションをダウンロードするためのブートページへジャンプする。
【0050】
好ましくは、ローカルソケットを起動するために第2のローカルアプリケーションによって用いられるポートが占有されている場合、第2のローカルアプリケーションは、所定のポート群のうちの別のポートを用いる。
【0051】
同様に、第1のローカルアプリケーションによって起動されたwebSocketが第2の所定期間内にローカルソケットへの接続に失敗した場合、所定のポート群のうちの別のポートを用いてローカルソケットに再び接続する。
【0052】
好ましくは、第1のローカルアプリケーションによって起動されたwebSocketが、所定のポート群のうちの全てのポートを用いた後の第2の所定期間内にローカルソケットへの接続に失敗した場合、第1のローカルアプリケーションは、第2のローカルアプリケーションをダウンロードするためのブートページへジャンプする。
【0053】
1990年代には、技術的な改良がハードウェアの改良(例えば、ダイオード、トランジスタ、スイッチなどの回路構造の改良)であるか、ソフトウェアの改良(方法手順の改良)であるかを明確に区別することができた。しかし、技術の発展に伴い、多くの現在の方法手順における改良は、ハードウェア回路構造の直接的な改良であるとみなすことができる。設計者は、通常、改良された方法手順をハードウェア回路にプログラムして、対応するハードウェア回路構造を得る。したがって、ハードウェア実体モジュールを用いることによっては方法手順を改良できないとは言えない。プログラマブル論理デバイス(PLD)(例えば、フィールドプログラマブルゲートアレイ(FPGA))はそのような集積回路であり、PLDの論理機能はデバイスプログラミングによりユーザによって決定される。設計者は、チップ製造業者に特定用途向け集積回路チップの設計及び製造を要求することなく、デジタルシステムをPLDに「統合」するためのプログラミングを実行する。加えて、今では、集積回路チップをマニュアルで製造する代わりに、このようなタイプのプログラミングは、主に「論理コンパイラ」ソフトウェアを用いて実装される。このプログラミングは、プログラムを開発し、書き込むために用いられるソフトコンパイラに類似する。コンパイルのために、元のコードを特定のプログラミング言語で記述する必要がある。言語はハードウェア記述言語(HDL)と呼ばれる。高度ブール演算式言語(ABEL)、アルテラハードウェア記述言語(AHDL)、Confluence(コンフルエンス)、コーネル大学プログラミング言語(CUPL)、HDCal、Java(登録商標)ハードウェア記述言語(JHDL)、Lava、Lola 、MyHDL、PALASM、及びRubyハードウェア記述言語(RHDL)のような多くのハードウェア記述言語がある。超高速の集積回路ハードウェア記述言語(VHDL)及びVerilogが最も一般的に用いられる。当業者であれば、いくつかの説明されたハードウェア記述言語を用いて方法手順が論理的にプログラムされ、集積回路にプログラムされると、論理方法手順を実装するハードウェア回路を容易に得ることができることも理解すべきである。
【0054】
コントローラは、適切な方法を用いて実装できる。例えば、コントローラは、マイクロプロセッサ若しくはプロセッサ、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブルロジックコントローラ、あるいは、マイクロプロセッサ若しくはプロセッサによって実行されるコンピュータ読取可能なプログラムコード(ソフトウェア又はファームウェアなど)を格納する内蔵マイクロプロセッサであってもよい。コントローラの例として、以下のマイクロプロセッサが挙げられるが、これらに限定されない。すなわち、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、及びSilicone Labs C8051F320。メモリコントローラも、メモリの制御ロジックの一部として実装できる。当業者であれば、コンピュータ読取可能なプログラムコードを用いてコントローラを実装することに加えて、秩序的手順で論理プログラミングを実行してコントローラに論理ゲート、スイッチ、プログラマブルロジックコントローラ、及び内蔵マイクロコントローラの形態で同じ機能を実行させることができることも理解できよう。したがって、このようなコントローラは、ハードウェアコンポーネントとみなすことができ、コントローラに様々な機能を実装するように構成されるデバイスもハードウェアコンポーネント内の構造とみなせる。或いは、様々な機能を実装するように構成されるデバイスは、この方法を実装するソフトウェアモジュール及びハードウェアコンポーネント内の構造の両方とみなすことさえできる。
【0055】
前述の実施で示したシステム、装置、モジュール、又はユニットは、コンピュータチップ又は実体物を用いて実施することも、特定の機能を持つ製品を用いて実施することもできる。
【0056】
説明しやすくするために、上述の装置は、機能を様々なユニットに分割して説明されている。当然ながら、本願を実施する場合、各ユニットの機能は、一つ以上のソフトウェア及び/又はハードウェアで実装することができる。
【0057】
当業者は、本願の実施が方法、システム、又はコンピュータプログラム製品として提供できることを理解するはずである。そのため、本願は、ハードウェアのみの実施、ソフトウェアのみの実施、又は、ソフトウェアとハードウェアとの組み合わせによる実施を用いることができる。さらに、本願は、コンピュータで使用可能なプログラムコードを含んだ1台以上のコンピュータで使用可能な記憶媒体(磁気ディスクストレージ、CD-ROM、光学メモリ等を含むがこれに限定されない)上で実施されるコンピュータプログラム製品を使用できる。
【0058】
本願は、本願の実施に係る方法、デバイス(システム)、コンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明されている。フローチャート及び/又はブロック図内の各プロセス及び/又は各ブロック、並びにフローチャート及び/又はブロック図内のプロセス及び/又はブロックの組み合わせを実施するために、コンピュータプログラム命令を使用することができることを理解されたい。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、又はあらゆるその他のプログラムマブルデータ処理デバイスに、マシンを生成するために提供されることができ、これにより、コンピュータ、又は、あらゆるその他のプログラムマブルデータ処理デバイスのプロセッサが、フローチャートの1つ以上の工程において、及び/又は、ブロック図の1つ以上のブロックにおいて、特定の機能を実施するデバイスを生成できるようになる。
【0059】
これらのコンピュータプログラム命令を、コンピュータ又はあらゆるその他のプログラマブルデータ処理デバイスに特定の方法で機能するように命令することができるコンピュータ読取可能なメモリに記憶して、これらのコンピュータ読取可能なメモリに記憶された命令が、命令装置を含む加工品を作り出すようにすることができる。この命令装置は、フローチャート内の1つ以上の工程における、及び/又はブロック図内の1つ以上のブロックにおける特定の機能を実施する。
【0060】
これらのコンピュータプログラム命令をコンピュータ又はその他のプログラマブルデータ処理デバイスにロードして、コンピュータ又はその他のプログラムマブルデバイス上で一連の操作及びステップが実行されるようにし、コンピュータで実施される処理を生成することができる。これにより、コンピュータ又はその他のプログラムマブルデバイス上で実行される命令が、フローチャート内の1つ以上のステップ及び/又はブロック図内の1つ以上のブロックにおける特定の機能を実施するデバイスを提供することを可能とする。
【0061】
典型的な構成では、計算デバイスは1つ以上のプロセッサ(CPUs)、入出力インターフェース、ネットワークインターフェース、及びメモリを含む。
【0062】
メモリは、揮発性メモリ、ランダムアクセスメモリ(RAM)、及び/又はリードオンリーメモリ(ROM)やフラッシュメモリ(フラッシュRAM)のような不揮発性メモリを含んでよい。メモリはコンピュータ読取可能な媒体の一例である。
【0063】
コンピュータ読取可能な媒体には、任意の方法又は技術を用いて情報を記憶できる、永続的、非永続的、移動可能な、移動不能な媒体が含まれる。この情報はコンピュータ読取可能な命令、データ構造、プログラムモジュール、又はその他のデータであってよい。コンピュータの記憶媒体の例として、計算デバイスによってアクセスできる情報を記憶するために用いることが可能な、パラレルランダムアクセスマシーン(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別タイプのランダムアクセスメモリ、リードオンリーメモリ(ROM)、電気的に消去可能でプログラム可能なROM(EEPROM)、フラッシュメモリ、又は別のメモリ技術、コンパクトディスクROM(CD-ROM)、デジタル多用途ディスク(DVD)、又は別の光学記憶装置及びカセットがあるが、それらに限定されない。カセット、他の磁気的記憶装置又は他の任意の非伝送媒体は、コンピュータ装置によってアクセスすることができる情報を格納するように構成することができる。本願の定義に基づき、コンピュータ読取可能な媒体は、変調されたデータ信号及び搬送波のような一時的な媒体(transitory media)を含まない。
【0064】
さらに、用語「含む」、「含有する」、又はこれらのその他任意の応用形は、非限定的な包含を網羅するものであるため、一連の要素を含んだ工程、方法、物品、デバイスはこれらの要素を含むだけでなく、ここで明確に挙げていないその他の要素をも含む、あるいは、このような工程、方法、物品、デバイスに固有の要素をさらに含むことができる点に留意することが重要である。「(一の)~を含む」との用語を付けて示された要素は、それ以上の制約がなければ、その要素を含んだ工程、方法、物品、デバイス内に別の同一の要素をさらに含むことを排除しない。
【0065】
当業者は、本願の実施が方法、システム、コンピュータプログラム製品として提供され得ることを理解するはずである。そのため、本願は、ハードウェアのみの実施の形式、ソフトウェアのみの実施の形式、又は、ソフトウェアとハードウェアの組み合わせによる実施の形式を用いることができる。さらに、本願は、コンピュータで用いることができるプログラムコードを含んだ、1つ以上のコンピュータで使用可能な記憶媒体(磁気ディスクストレージ、CD-ROM、光学ディスク等を非限定的に含む)上で実施されるコンピュータプログラム製品の形態を用いることが可能である。
【0066】
本願は、コンピュータにより実行されるコンピュータ実行可能な命令、例えばプログラムモジュールの一般的文脈において記載することができる。一般に、プログラムモジュールは、特定のタスクを実行する、或いは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本願は、分散型コンピューティング環境において実践することもできる。これら分散型コンピューティング環境において、タスクは、通信ネットワークを用いることにより接続されるリモート処理デバイスにより実行される。分散型コンピューティング環境において、プログラムモジュールは、格納デバイスを含むローカル及びリモートコンピュータ格納媒体に配置することができる。
【0067】
本明細書における実施は、逐次的な形式で記載されている。実施における同一又は類似の部分については、その実施を参照されたい。各実施は、他の実施との差異に焦点を当てている。特に、システムの実施は方法の実施に類似しており、したがって、簡潔に記載される。関連する部分については、方法の実施における関連する説明を参照されたい。
【0068】
上述のものは本願の一実施の形態に過ぎず、本願を限定するものではない。当業者にとって、本願は様々な修正及び変更を加えることができる。本願の主旨及び原理から逸脱せずに為されるあらゆる修正、均等物による代替、改善は、本願の特許請求の範囲に含まれるものである。
以下、本発明の実施の態様の例を列挙する。
[第1の局面]
アプリケーション起動方法であって:
第1のローカルアプリケーションによってHTML5ウェブページを開き、第2のローカルアプリケーションを呼び出し、webSocketを起動してローカルソケットへの接続を試みるステップと;
前記第2のローカルアプリケーションにより前記ローカルソケットを起動するステップと;
前記第1のローカルアプリケーションが前記webSocketを用いて前記ローカルソケットに接続する場合、前記第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するステップと;を備える、
アプリケーション起動方法。
[第2の局面]
前記ウェブページへのリンクがトリガされて開かれると、前記第1のローカルアプリケーションが前記対応するウェブページを開き、
前記第1のローカルアプリケーションは、ブラウザアプリケーション、又はwebViewコンポーネントと一体化されたローカルアプリケーションを備える、
第1の局面に記載のアプリケーション起動方法。
[第3の局面]
前記ウェブページへのリンクがトリガされて開かれると、前記第1のローカルアプリケーションは、前記ウェブページアドレスに含まれるパラメータをURI内にアセンブルし、前記URIに対応する前記第2のローカルアプリケーションを呼び出す、
第1の局面に記載のアプリケーション起動方法。
[第4の局面]
前記パラメータは、指定されたポート番号を含む、
第3の局面に記載のアプリケーション起動方法。
[第5の局面]
第1のローカルアプリケーションによってwebSocketを起動してローカルソケットへの接続を試みる前記ステップは:
前記HTML5ウェブページが開かれてから第1の所定期間の後に、前記第1のローカルアプリケーションによって前記webSocketを起動して前記ローカルソケットへの接続を試みるステップを備える、
第1の局面に記載のアプリケーション起動方法。
[第6の局面]
前記第1のローカルアプリケーションが、前記webSocketを用いて行う前記ローカルソケットへの接続に失敗した場合に、前記第2のローカルアプリケーションをダウンロードするための前記ブートページへジャンプするステップを更に備える、
第1の局面に記載のアプリケーション起動方法。
[第7の局面]
前記第1のローカルアプリケーションが、前記webSocketを用いて前記ローカルソケットに接続するときにエラープロンプトを受信した場合、前記第2のローカルアプリケーションをダウンロードするための前記ブートページへジャンプするステップを更に備える、
第6の局面に記載のアプリケーション起動方法。
[第8の局面]
前記ローカルソケットを起動するために前記第2のローカルアプリケーションにより用いられるポートが占有されている場合に、所定ポート群のうちの別のポートを用いるステップと;
これに対応して、前記第1のローカルアプリケーションによって起動された前記webSocketが、第2の所定期間内に前記ローカルソケットへの接続に失敗した場合、前記所定ポート群のうちの別のポートを用いて、前記ローカルソケットに再接続するステップと;を備える、
第1の局面に記載のアプリケーション起動方法。
[第9の局面]
前記第1のローカルアプリケーションによって起動された前記webSocketが、前記所定ポート群のうちの全てのポートを用いた後の前記第2の所定期間中に前記ローカルソケットへの接続に失敗した場合、前記第1のローカルアプリケーションは、前記第2のローカルアプリケーションをダウンロードするための前記ブートページへジャンプする、
第8の局面に記載のアプリケーション起動方法。
[第10の局面]
アプリケーション起動システムであって:
HTML5ウェブページを開き、第2のローカルアプリケーションを開き、webSocketを起動してローカルソケットへの接続を試みるように構成され、及び、前記第1のローカルアプリケーションが前記webSocketを用いて前記ローカルソケットに接続する場合、前記第2のローカルアプリケーションをダウンロードするためのブートページへのジャンプを停止するように構成された第1のローカルアプリケーションと;
前記ローカルソケットを起動するように構成された前記第2のローカルアプリケーションと;を備える、
アプリケーション起動システム。
[第11の局面]
前記ウェブページへのリンクがトリガされて開かれると、前記第1のローカルアプリケーションが前記対応するウェブページを開き、
前記第1のローカルアプリケーションは、ブラウザアプリケーション、又はwebViewコンポーネントと一体化されたローカルアプリケーションを備える、
第10の局面に記載のアプリケーション起動システム。
[第12の局面]
前記ウェブページへのリンクがトリガされて開かれると、前記第1のローカルアプリケーションは、前記ウェブページアドレスに含まれるパラメータをURI内にアセンブルし、前記URIに対応する前記第2のローカルアプリケーションを呼び出す、
第10の局面に記載のアプリケーション起動システム。
[第13の局面]
前記パラメータは指定のポート番号を備える、
第12の局面に記載のアプリケーション起動システム。
[第14の局面]
第1のローカルアプリケーションにより、webSocketを起動してローカルソケットへの接続を試みることは:
前記HTML5ウェブページが開かれてから第1の所定期間の後に、前記第1のローカルアプリケーションによって前記webSocketを起動して前記ローカルソケットへの接続を試みることを備える、
第10の局面に記載のアプリケーション起動システム。
[第15の局面]
前記第1のローカルアプリケーションが、前記webSocketを用いて行う前記ローカルソケットへの接続に失敗した場合、前記第1のローカルアプリケーションは、前記第2のローカルアプリケーションをダウンロードするための前記ブートページへジャンプする、
第10の局面に記載のアプリケーション起動システム。
[第16の局面]
前記第1のローカルアプリケーションは、前記webSocketを用いて前記ローカルソケットに接続するときにエラープロンプトを受信した場合、前記第1のローカルアプリケーションは、前記第2のローカルアプリケーションをダウンロードするための前記ブートページへジャンプする、
第10の局面に記載のアプリケーション起動システム。
[第17の局面]
前記ローカルソケットを起動するために前記第2のローカルアプリケーションにより用いられるポートが占有されている場合、所定ポート群のうちの別のポートが用いられ;
これに対応して、前記第1のローカルアプリケーションによって起動された前記webSocketが、第2の所定期間内に前記ローカルソケットへの接続に失敗した場合、前記所定ポート群のうちの別のポートが用いられて前記ローカルソケットに再接続する;
第10の局面に記載のアプリケーション起動システム。
[第18の局面]
前記第1のローカルアプリケーションによって起動された前記webSocketが、前記所定ポート群のうちの全てのポートを用いた後、前記第2の所定期間中に前記ローカルソケットへの接続に失敗した場合、前記第1のローカルアプリケーションは、前記第2のローカルアプリケーションをダウンロードするための前記ブートページへジャンプする、
第17の局面に記載のアプリケーション起動システム。