特許第5982586号(P5982586)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アリババ・グループ・ホールディング・リミテッドの特許一覧

特許5982586ハイブリッドアプリケーションのためのリソース呼び出し
<>
  • 特許5982586-ハイブリッドアプリケーションのためのリソース呼び出し 図000002
  • 特許5982586-ハイブリッドアプリケーションのためのリソース呼び出し 図000003
  • 特許5982586-ハイブリッドアプリケーションのためのリソース呼び出し 図000004
  • 特許5982586-ハイブリッドアプリケーションのためのリソース呼び出し 図000005
  • 特許5982586-ハイブリッドアプリケーションのためのリソース呼び出し 図000006
  • 特許5982586-ハイブリッドアプリケーションのためのリソース呼び出し 図000007
  • 特許5982586-ハイブリッドアプリケーションのためのリソース呼び出し 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5982586
(24)【登録日】2016年8月5日
(45)【発行日】2016年8月31日
(54)【発明の名称】ハイブリッドアプリケーションのためのリソース呼び出し
(51)【国際特許分類】
   G06F 9/54 20060101AFI20160818BHJP
   G06F 9/445 20060101ALI20160818BHJP
   G06F 9/50 20060101ALI20160818BHJP
【FI】
   G06F9/06 640E
   G06F9/06 610Q
   G06F9/46 462A
【請求項の数】17
【全頁数】24
(21)【出願番号】特願2015-553879(P2015-553879)
(86)(22)【出願日】2014年1月21日
(65)【公表番号】特表2016-504694(P2016-504694A)
(43)【公表日】2016年2月12日
(86)【国際出願番号】US2014012266
(87)【国際公開番号】WO2014116563
(87)【国際公開日】20140731
【審査請求日】2015年8月20日
(31)【優先権主張番号】201310024460.3
(32)【優先日】2013年1月23日
(33)【優先権主張国】CN
(31)【優先権主張番号】14/159,143
(32)【優先日】2014年1月20日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】510330264
【氏名又は名称】アリババ・グループ・ホールディング・リミテッド
【氏名又は名称原語表記】ALIBABA GROUP HOLDING LIMITED
(74)【代理人】
【識別番号】110000028
【氏名又は名称】特許業務法人明成国際特許事務所
(72)【発明者】
【氏名】チュ・ズーシェン
【審査官】 坂庭 剛史
(56)【参考文献】
【文献】 特表2012−521728(JP,A)
【文献】 特表2006−524973(JP,A)
【文献】 特開2006−031543(JP,A)
【文献】 特開平11−065795(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 9/50
G06F 9/54
(57)【特許請求の範囲】
【請求項1】
リソースを呼び出すための方法であって、
ページ要求メッセージをサーバに送信する工程と、
前記ページ要求メッセージに応答して前記サーバによって送り返されたページデータを受信する工程と、
前記ページデータを解析して、前記リソースのアドレスを取得する工程と、
1または複数のコンピュータプロセッサによって、前記リソースの前記アドレスを用いてリソース呼び出し要求を生成する工程と、
アプリケーションクライアントのネイティブバージョン情報を取得する工程と、
前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正する工程と、
前記修正されたリソース呼び出し要求に従って前記リソースを取得する工程と、
を備える、方法。
【請求項2】
請求項1に記載の方法であって、前記ページデータは、ハイパーテキスト・マークアップランゲージ(HTML)コードを含み、前記HTMLコードは、前記リソースの前記アドレスを含む、方法。
【請求項3】
請求項1に記載の方法であって、前記アドレスは、前記リソースの名称およびバージョンプレースホルダを含み、前記バージョンプレースホルダは、前記リソースが制限リソースであることを示す、方法。
【請求項4】
請求項1に記載の方法であって、前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正する工程は、
前記リソース呼び出し要求を監視する工程と、
前記リソース呼び出し要求がバージョンプレースホルダを含むか否かを判定する工程と、
前記リソース呼び出し要求が前記バージョンプレースホルダを含む場合に、前記バージョンプレースホルダを前記アプリケーションクライアントの前記ネイティブバージョン情報で置き換える工程と、
を含む、方法。
【請求項5】
請求項1に記載の方法であって、前記修正されたリソース呼び出し要求に従って前記リソースを取得する工程は、前記修正されたリソース呼び出し要求に含まれるリソース名および前記ネイティブバージョン情報を用いて、前記リソースを取得する工程を含む、方法。
【請求項6】
請求項1に記載の方法であって、前記修正されたリソース呼び出し要求に従って前記リソースを取得する工程は、
前記アプリケーションクライアントを実行するデバイス上で、ネイティブに前記アプリケーションクライアントから対応するリソースを取得するよう試みる工程と、
前記デバイス上で前記対応するリソースを取得することが成功しなかった場合に、前記対応するリソースを前記サーバから取得して、前記取得したリソースを前記デバイスにネイティブに保存する工程と、
を含む、方法。
【請求項7】
請求項1に記載の方法であって、前記アプリケーションクライアントは、第1のアプリケーションクライアントであり、前記方法は、さらに、
第2のアプリケーションクライアントによって送信された登録情報を受信する工程と、
前記登録情報に含まれる前記第2のアプリケーションクライアントの現行バージョン情報を保存する工程と、
前記第2のアプリケーションクライアントによって送信されたリソース呼び出し要求を受信した後に、
前記第2のアプリケーションクライアントによって送信された前記リソース呼び出し要求に含まれるアドレスに含まれるバージョンプレースホルダを、前記第2のアプリケーションクライアントの保存された現行バージョンに修正する工程と、
前記第2のアプリケーションクライアントによって送信された前記修正されたリソース呼び出し要求に含まれる前記アドレスを用いて、対応するリソースを取得する工程と、
前記取得した対応するリソースを前記第2のアプリケーションクライアントに送信する工程と、
を備える、方法。
【請求項8】
請求項1に記載の方法であって、前記アドレスは、前記アプリケーションクライアントが動作するクライアントデバイス上で監視されているポートを含む、方法。
【請求項9】
リソース呼び出しシステムであって、
1または複数のプロセッサであって、
ページ要求メッセージをサーバに送信し、
前記ページ要求メッセージに応答して前記サーバによって送り返されたページデータを受信し、
前記ページデータを解析して、リソースのアドレスを取得し、
前記リソースの前記アドレスを用いてリソース呼び出し要求を生成し、
アプリケーションクライアントのネイティブバージョン情報を取得し、
前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正し、
前記修正されたリソース呼び出し要求に従って前記リソースを取得するよう構成された、1または複数のプロセッサと、
前記1または複数のプロセッサに接続され、前記1または複数のプロセッサに命令を提供するよう構成された1または複数のメモリと、
を備える、システム。
【請求項10】
請求項9に記載のシステムであって、前記ページデータは、ハイパーテキスト・マークアップランゲージ(HTML)コードを含み、前記HTMLコードは、前記リソースの前記アドレスを含む、システム。
【請求項11】
請求項9に記載のシステムであって、前記アドレスは、前記リソースの名称およびバージョンプレースホルダを含み、前記バージョンプレースホルダは、前記リソースが制限リソースであることを示す、システム。
【請求項12】
請求項9に記載のシステムであって、前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正することは、
前記リソース呼び出し要求を監視することと、
前記リソース呼び出し要求がバージョンプレースホルダを含むか否かを判定することと、
前記リソース呼び出し要求が前記バージョンプレースホルダを含む場合に、前記バージョンプレースホルダを前記アプリケーションクライアントの前記ネイティブバージョン情報で置き換えることと、
を含む、システム。
【請求項13】
請求項9に記載のシステムであって、前記修正されたリソース呼び出し要求に従って前記リソースを取得することは、前記修正されたリソース呼び出し要求に含まれるリソース名および前記ネイティブバージョン情報を用いて、前記リソースを取得することを含む、システム。
【請求項14】
請求項9に記載のシステムであって、前記修正されたリソース呼び出し要求に従って前記リソースを取得することは、
前記アプリケーションクライアントを実行するデバイス上で、ネイティブに前記アプリケーションクライアントから対応するリソースを取得するよう試みることと、
前記デバイス上で前記対応するリソースを取得することが成功しなかった場合に、前記対応するリソースを前記サーバから取得して、前記取得したリソースを前記デバイスにネイティブに保存することと、
を含む、システム。
【請求項15】
請求項9に記載のシステムであって、前記アプリケーションクライアントは、第1のアプリケーションクライアントであり、前記1または複数のプロセッサは、さらに、
第2のアプリケーションクライアントによって送信された登録情報を受信し、
前記登録情報に含まれる前記第2のアプリケーションクライアントの現行バージョン情報を保存し、
前記第2のアプリケーションクライアントによって送信されたリソース呼び出し要求を受信した後に、
前記第2のアプリケーションクライアントによって送信された前記リソース呼び出し要求に含まれるアドレスに含まれるバージョンプレースホルダを、前記第2のアプリケーションクライアントの保存された現行バージョンに修正し、
前記第2のアプリケーションクライアントによって送信された前記修正されたリソース呼び出し要求に含まれる前記アドレスを用いて、対応するリソースを取得し、
前記取得した対応するリソースを前記第2のアプリケーションクライアントに送信するよう構成されている、システム。
【請求項16】
請求項9に記載のシステムであって、前記アドレスは、前記アプリケーションクライアントが動作するクライアントデバイス上で監視されているポートを含む、システム。
【請求項17】
リソースを呼び出すためのコンピュータプログラムであって、コンピュータを使用して
ページ要求メッセージをサーバに送信するための機能と、
前記ページ要求メッセージに応答して前記サーバによって送り返されたページデータを受信するための機能と、
前記ページデータを解析して、前記リソースのアドレスを取得するための機能と、
前記リソースの前記アドレスを用いてリソース呼び出し要求を生成するための機能と、
アプリケーションクライアントのネイティブバージョン情報を取得するための機能と、
前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正するための機能と、
前記修正されたリソース呼び出し要求に従って前記リソースを取得するための機能と、
を実現させるための、コンピュータプログラム
【発明の詳細な説明】
【技術分野】
【0001】
他の出願の相互参照
本願は、2013年1月23日出願の中国特許出願第201310024460.3 号「A RESOURCE−CALLING METHOD, CLIENT, AND SYSTEM FOR HYBRID−APPLICATION CLIENTS」の優先権を主張する。当該出願は、すべての目的のために参照により本明細書に組み込まれる。
【0002】
本願は、インターネット技術の分野に関し、特に、ハイブリッドアプリケーション・クライアントのためのリソース呼び出し方法、クライアント、および、システムに関する。
【背景技術】
【0003】
ハイブリッドアプリケーション・クライアントは、ネイティブアプリケーション・クライアントネイティブアプリケーション・クライアントおよびウェブアプリケーション・クライアントェブアプリケーション・クライアントの両方の利点を有するので、現在では、携帯端末で広く利用されている。ハイブリッドアプリケーション・クライアントは、スマートフォンなどの携帯端末で動作するネイティブアプリケーションに見えるが、サーバによって提供されるウェブページにアクセスする。
【0004】
図1は、ハイブリッドアプリケーション・クライアントが従来のシステムでユーザにサービスを提供する処理を示すフローチャートである。
【0005】
工程101で、ハイブリッドアプリケーション・クライアントは、所定のユニバーサル・リソースロケータ(URL)を用いて、そのURLを含むハイパーテキスト・トランスポートプロトコル(HTTP)要求をサーバに送信する。換言すると、ハイブリッドアプリケーション・クライアントは、所定のURLに対応するページにアクセスする。
【0006】
工程102で、サーバは、ハイパーテキスト・マークアップランゲージ(HTML)コード(例えば、HTML5コード)を、ハイブリッドアプリケーション・クライアントに送り返す。
【0007】
工程103で、ハイブリッドアプリケーション・クライアントは、HTMLコードを解析して、HTMLコードが呼び出そうとしているJavaScript(登録商標、以下同じ)ファイルまたはカスケーディングスタイルシート(CSS)ファイルを決定する。具体的には、HTMLコードは、呼び出しのためのJavaScript識別子またはCSS識別子を含む。その識別子は、呼び出されるJavaScriptまたはCSSを特定するために用いられる。
【0008】
工程104で、ハイブリッドアプリケーション・クライアントは、呼び出されるJavaScriptまたはCSSをサーバから取得する。
【0009】
工程105で、ハイブリッドアプリケーション・クライアントは、取得したJavaScriptまたはCSSを用いて、クライアントにネイティブなアプリケーションプログラミング・インターフェース(API)を呼び出す。
【0010】
工程106で、ハイブリッドアプリケーション・クライアントは、呼び出したAPIを用いて、自身が位置する携帯端末の適切な機能を起動する。
【0011】
携帯端末の機能は、単に1つのJavaScriptまたはCSSだけでは有効化できないので、ハイブリッドアプリケーション・クライアントによってネイティブに保存されたAPIが、これらの機能を有効化するために必要である。したがって、ハイブリッドアプリケーション・クライアントは、それが位置する携帯端末の適切な機能を有効化するために、HTMLコードに基づいてJavaScriptまたはCSSを取得した後に、取得したJavaScriptまたはCSSを用いてネイティブAPIを呼び出さなければならない。
【0012】
例えば、ハイブリッドアプリケーション・クライアントは、カメラ機能(対応するリソースを有する)を提供し、すなわち、サーバに保存されたJavaScriptファイルは、photoV2.0.jsである。このファイルは、ピクセルサイズ、1クリックで撮ることができる写真の最大数など、オンボードカメラに関連するパラメータを提供する。ハイブリッドアプリケーション・クライアントに保存されたAPIファイルは、photoV2.0.jarである。したがって、ハイブリッドアプリケーション・クライアントは、まず、サーバページにアクセスして、サーバによって送り返されたHTML5コードが呼び出そうとしているJavaScriptファイルがphotoV2.0.jsであると決定し、したがって、サーバからphotoV2.0.jsを取得し、photoV2.0.jsを用いて自身のJava(登録商標)関数photoV2.0.jarを呼び出して、ハイブリッドアプリケーションが位置する携帯端末のカメラを有効化する。
【0013】
ハイブリッドアプリケーションによって正常なサービスを提供するには、ハイブリッドアプリケーション・クライアントのバージョンが、サーバのバージョンと同じであるべきである。ハイブリッドアプリケーション・クライアントのバージョンがサーバのバージョンと異なる場合、ハイブリッドアプリケーション・クライアントは、通例、サービスを正常に提供できなくなる。
【0014】
例えば、ハイブリッドアプリケーション・クライアントは、カメラ写真撮影機能を提供する。ハイブリッドアプリケーション・クライアントのバージョンがV1.0であれば、ハイブリッドアプリケーション・クライアントに保存されたAPIは、photoV1.0.jarである(ハイブリッドアプリケーション・クライアントに保存されたAPIのバージョンは、ハイブリッドアプリケーション・クライアント自身のバージョンと同じである)。サーバのバージョンがV2.0である場合、サーバに保存されたJavaScriptは、photoV2.0.jsである。したがって、サーバによってハイブリッドアプリケーション・クライアントに送り返されたHTML5コードによって呼び出されるJavaScriptは、photoV2.0.jsである。ハイブリッドアプリケーション・クライアントがphotoV2.0.jsを取得した後、photoV2.0.jsは、同じバージョンV2.0のAPI(すなわち、photoV2.0.jar)しか呼び出せないので、ハイブリッドアプリケーション・クライアントに保存されているバージョンは、V1.0のAPI(すなわち、photoV1.0.jar)である。結果として、ハイブリッドアプリケーション・クライアントは、photoV2.0.jsによって、対応するバージョン(V2.0)のAPIを取得できないため、カメラ写真撮影機能を正常に提供できない。
【0015】
すべてのユーザが自分の携帯端末にインストールされたハイブリッドアプリケーション・クライアントをすぐに更新するわけではない。したがって、既存のシステムにおいて、ハイブリッドアプリケーション・クライアントおよびサーバが異なるバージョンを有する場合にハイブリッドアプリケーション・クライアントがサービスを正常に提供できないという先述の問題を解決するために、ハイブリッドアプリケーション・クライアントは、自身の現行バージョンのもとでネイティブにすべてのAPIのJavaScriptまたはCSS(JavaScriptおよびCSSは、以下では集合的に「現行リソース」と呼ぶ)を保存できる。ハイブリッドアプリケーション・クライアントは、サーバによって送り返されたHTMLコードを受信すると、HTMLコードによって呼び出される現行リソースのバージョンがハイブリッドアプリケーションのネイティブバージョンと一致しないと判定した場合、HTMLコード内の呼び出される現行リソースの識別子を、ネイティブに保存されたバージョンの現行リソースの識別子に置き換え、現行リソースの識別子が置き換えられた後にHTMLコードを解析し、置き換えられた現行リソースを呼び出して、対応する機能を実現する。
【0016】
例えば、ハイブリッドアプリケーション・クライアントは、カメラ写真撮影機能を提供する。ハイブリッドアプリケーション・クライアントのバージョンがV1.0であるので、ハイブリッドアプリケーション・クライアントに保存されたAPIは、photoV1.0.jarである。さらに、現行リソース(JavaScript)photoV1.0.jsは、photoV1.0.jarを呼び出すことができ、ハイブリッドアプリケーション・クライアントに保存される。サーバのバージョンはV2.0であり、サーバに保存されたJavaScriptファイルは、photoV2.0.jsである。
【0017】
したがって、サーバによってハイブリッドアプリケーション・クライアントに送り返されたHTMLコードによって呼び出されるJavaScriptファイルは、photoV2.0.jsである。ハイブリッドアプリケーション・クライアントは、HTMLコードに含まれるJavaScript識別子がphotoV2.0.jsであると判定した場合、ネイティブに保存されたphotoV1.0.js識別子(photoV2.0.jsに対応するが、バージョンは異なる)をHTMLコード内のphotoV2.0.js識別子の代わりにする。次いで、HTMLコードを解析し、置き換えられた識別子(photoV1.0.jsの識別子)に基づいて、ネイティブに保存されたphotoV1.0.jsを呼び出す。ハイブリッドアプリケーション・クライアントは、サーバからリソースを取得しない。最後に、ハイブリッドアプリケーション・クライアントは、携帯端末のカメラ機能を有効化するために、photoV1.0.jsを用いて、ネイティブに保存されたphotoV1.0.jarを呼び出す。
【0018】
しかしながら、既存のスキームでは、ハイブリッドアプリケーション・クライアントは、サーバによって送り返されたHTMLコード内のphotoV2.0.js識別子の代わりに、自身が保存したphotoV1.0.jsの識別子を使う必要がある。これにより、HTMLコードの元の構造が変わる。HTMLコードがHTML5である場合、この代用は、HTML5コード自身のアプリケーションキャッシュ機能を無効化するため、後続のウェブページがHTMLコードに基づいてロードされる時に起こりうるエラーを引き起こす。
【図面の簡単な説明】
【0019】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【0020】
図1】ハイブリッドアプリケーション・クライアントが従来のシステムでユーザにサービスを提供する処理を示すフローチャート。
【0021】
図2】アプリケーションクライアントがサーバとデータを交換するための処理の一実施形態を示すフローチャート。
【0022】
図3】2つのアプリケーションクライアントを備えたシステムの一実施形態を示す図。
【0023】
図4】2つのアプリケーションクライアントを備えたシステムの別の実施形態を示す図。
【0024】
図5】本願の一実施形態によって提供されるハイブリッドアプリケーション・クライアントを示す構造図。
【0025】
図6】本願に従ったリソース呼び出しシステムの一実施形態を示すシステム図。
【0026】
図7】いくつかの実施形態に従って、リソース呼び出しを実行するためにプログラムされたコンピュータシステムを示す機能図。
【発明を実施するための形態】
【0027】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【0028】
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【0029】
ハイブリッドアプリケーション・クライアントとは、コンピュータシステム(例えば、スマートフォン、タブレット、ラップトップ、ウェアラブルデバイスなど)上で動作するネイティブアプリケーションであるように見え、機能を提供する過程でサーバによって提供されたウェブページにアクセスする非ブラウザアプリケーションのことである。いくつかの実施形態において、サーバがアプリケーションクライアントに送信するページデータは、呼び出される必要のあるリソースのアドレス(例えば、JavaScriptファイルまたはCSSドキュメントの位置)を含む。ページデータは解析され、リソース呼び出し要求が生成される。リソース呼び出し要求は、アプリケーションクライアントのネイティブバージョン情報に従って修正される。修正されたリソース呼び出し要求は、リソースを取得するために用いられる。アプリケーションクライアントおよびサーバが、異なるバージョンを有する場合に、この技術は、アプリケーションクライアントがページデータを修正することなしに正常にサービスを提供することを可能にし、したがって、ページデータに基づいて後続のウェブページを正常にロードできることを保証する。
【0030】
以下では、図面を参照しつつ本願の実施形態の詳細な説明を提供する。
【0031】
図2は、アプリケーションクライアントがサーバとデータを交換するための処理の一実施形態を示すフローチャートである。処理200は、ハイブリッドアプリケーション・クライアント(図7の700など)によって実行される。
【0032】
工程201で、ページ要求メッセージが、サーバに送信される。
【0033】
クライアントアプリケーションがサーバと通信するには、様々な方法がある。いくつかの実施形態において、ハイブリッドアプリケーション・クライアントは、オペレーティングシステムによって提供されたウェブページレンダリング機能(例えば、Android(商標)によって提供されたWebView)を介してシステムと通信する。いくつかの実施形態において、ハイブリッドアプリケーション・クライアントは、ブラウザ関数を実装するライブラリおよび/またはAPIを呼び出すコードを含む。説明のために、これらの異なる実装のウェブブラウザ関数は、集合的にプラグインと呼ぶこととする。クライアントがサービスを提供する時、クライアントのプラグインは、まず、所定のURLに基づいて、ページ要求メッセージをサーバに送信する。そのメッセージは、URLに対応するウェブページをサーバから取得するために用いられる。サーバは、ネットワークサーバである。ページ要求メッセージは、HTTP要求メッセージを含む。
【0034】
工程202で、ページ要求メッセージに応答してサーバによって送り返されたページデータが受信される。
【0035】
サーバは、ページ要求メッセージを受信した後、ページ要求メッセージに含まれるURLに対応するウェブページのページデータをクライアントに送り返す。
【0036】
ページ固有の機能を実現するために、ページデータは、呼び出されるリソースに関する情報を含む。かかる情報の一例は、リソースのアドレスであり、クライアント上のネイティブアドレスとして(例えば、ファイルディレクトリ位置として)表現されうる。リソースは、固有のネイティブ機能(例えば、写真撮影機能および音声対応機能を実装するコード/ライブラリ)を実行するために必要なサポートリソース(フロントエンドリソースとも呼ばれる)を含む。
【0037】
本願のいくつかの実施形態において、このアドレスは、リソース名およびバージョンプレースホルダを含む。
【0038】
この例において、サーバによって送り返されるページデータは、HTMLコードである。HTMLコードに含まれるアドレスは、ソースアドレス(ソースパスとも呼ばれる)であってよい。HTMLコードは、HTML5コードであってよい。
【0039】
例えば、サーバは、所定のプロトコルに従って、HTMLコードを送り返すことができる。返されたHTMLコードは、以下のようにフォーマットされている:
<html>
<body>service code</body>
<script type=”text/javascript”src=”http://localhost:50000/photo${VERSION}.js”></script>
</html>
【0040】
上述のHTMLコードは、ソースパス(すなわち、http://localhost:50000/photo${VERSION}.js)を含む。このパスは、上述のHTMLコードによって呼び出されるリソースを取得するために用いられる(この例では、リソースはJavaScriptファイルである)。ソースパスは、URLの形態で構成されており、ここで、「localhost:50000」はクライアントのネイティブポート番号を表し、「photo」はリソース名であり、「${VERSION}」は、バージョンプレースホルダである。ソースパスのフォーマットは、別の実施形態では異なってもよく、クライアント/サーバアプリケーションの開発者によって定義されうる。
【0041】
工程203で、ページデータは解析され、呼び出される必要のあるリソースのアドレスが取得され、リソース呼び出し要求が生成される。
【0042】
上記の例を続けると、クライアントが、そのプラグインを介して先述のページデータを受信した後に、ページデータが解析される。解析は、<script type=”text/javascript”src=”http://localhost:50000/photo${VERSION}.js”></script>を見いだし、これは、上述のHTMLコードが呼び出すリソースを、上述のアドレス(すなわち、“http://localhost:50000/photo${VERSION}.js”というソースパス)から取得する必要があることを意味する。したがって、クライアントのプラグインは、リソース呼び出し要求を生成し、上記のアドレスに送信する。この要求は、このアドレスから呼び出される必要のあるリソースを取得するために用いられる。このリソース呼び出し要求は、上述のアドレスを含む。このリソース呼び出し要求は、「GET http://localhost:50000/photo${VERSION}.js」などのHTTP要求メッセージを含んでもよい。
【0043】
工程204で、ネイティブバージョン情報が取得され、ネイティブバージョン情報は、リソース呼び出し要求を修正する基礎として用いられる。本明細書で用いられているように、ネイティブバージョン情報とは、クライアントデバイス上に現れた時のアプリケーションクライアントのバージョン情報のことである。いくつかの実施形態において、アプリケーションクライアントは、ネイティブバージョン情報を取得するためのAPIまたは関数呼び出しを含む。ネイティブバージョン情報は、構成ファイルまたはレジストリを読み出すことにより、もしくは、任意の他の適切な技術により、取得することができる。
【0044】
いくつかの実施形態では、組み込みモジュールが、ハイブリッドアプリケーション・クライアントに含まれる。組み込みモジュールは、リソース呼び出し要求を監視および受信するよう構成されたコードを含んでおり、1または複数の処理、ルーチン、関数、ライブラリ、クラス、および/または、その他の適切なプログラミングコードを用いて実装される。上記の例を続けると、クライアントが、上記のアドレスhttp://localhost:50000/photo${VERSION}.jsにリソース呼び出し要求を送信する時、上記アドレス内のポート「localhost:50000」は、クライアントのネイティブポートを示す。したがって、リソース呼び出し要求は、クライアント自体によって受信される。具体的には、クライアント内の組み込みモジュールが、ポート番号50000を有するクライアントのネイティブポートを監視し、リソース呼び出し要求を受信する。ポート番号は、事前にサーバと合意したものであってよく、任意の適切な番号でありうる。
【0045】
いくつかの実施形態において、各アプリケーションクライアントは、初期化時に登録を行う。例えば、初期化後に、アプリケーションクライアントは、アドレス”http://localhost:50000”にHTTP GET要求を行うことができ、ここで、その要求は、アプリケーションクライアントの名称、クライアントおよびそのリソースのネイティブバージョン情報、ならびに、任意のその他の適切な情報を指定する所定のフィールドを含む。ポートを監視する組み込みモジュールは、登録情報を受信し、後のアプリケーションクライアントの登録情報を記録し、必要に応じて応答する。組み込みモジュールからの応答の成功は、組み込みモジュールがすでに実行中であり、別の組み込みモジュールを起動する必要なしに直接利用できるということを、アプリケーションクライアントに対して示している。
【0046】
組み込みモジュールは、リソース呼び出し要求を受信した後、リソース呼び出し要求を用いて、どのリソースが呼び出されるのかを学習するために用いる。組み込みモジュールは、さらに、現行ネイティブバージョン情報を用いて、受信したリソース呼び出し要求を修正する。いくつかの実施形態において、組み込みモジュールは、クライアントのネイティブバージョン情報を取得して、リソース呼び出し要求に書き込む。
【0047】
この例において、リソース呼び出し要求は、呼び出される必要のあるリソースのアドレスを含み、このリソースアドレスは、リソース名およびバージョンプレースホルダを含むので、リソース呼び出し要求は、リソースの名称およびバージョンプレースホルダも含む。リソース呼び出し要求の一例は、「HTTP GET http://localhost:50000/photo${VERSION}.js」である。したがって、クライアントの組み込みモジュールは、リソース呼び出し要求に含まれるバージョンプレースホルダの代わりに、獲得したクライアントのネイティブバージョン情報を用いる。
【0048】
クライアントの現行バージョンがV1.0であると仮定すると、リソース呼び出し要求に含まれるリソースアドレスは、バージョンプレースホルダがV1.0で置き換えられた後に以下のようになる:「http://localhost:50000/photoV1.0.js」。したがって、求められるリソース「photoV1.0.js」が、このアドレスに少なくとも部分的に基づいて取得されうる。
【0049】
さらに、上述のバージョンプレースホルダは、さらに、呼び出されるリソースを制限リソースとして特定するために用いることができる。制限リソースとは、バージョン制限を伴うリソースのことである。リソース呼び出し要求に含まれるリソースバージョン情報がクライアントのネイティブバージョン情報と異なる場合、リソース呼び出し要求は、リソースが制限リソースであれば、そのリソースを呼び出すことができない。いくつかの実施形態において、アプリケーションクライアントは、デバイス上に保持されたリストに従って、リソースが制限リソースであるか否かを判定する。したがって、いくつかの実施形態において、リソース呼び出し要求の監視は、リソース呼び出し要求がバージョンプレースホルダを含むか否かを評価すること、そして、リソース呼び出し要求がバージョンプレースホルダを含む場合に、バージョンプレースホルダをクライアントのネイティブバージョン情報で置き換えることを含む。
【0050】
工程205で、リソースが、修正されたリソース呼び出し要求に従って取得される。
【0051】
上記の例を続けると、修正されたリソース呼び出し要求に含まれるリソースアドレスは「http://localhost:50000/photoV1.0.js」であるので、クライアントの組み込みモジュールは、修正されたアドレスを用いて、photoV1.0.jsを取得する。修正されたアドレスに従ってリソースを取得する場合、クライアントの組み込みモジュールは、修正されたアドレスに含まれるリソース名(上記の例の「photo」など)およびクライアントの現行ネイティブバージョン情報(上記の例のV1.0など)に基づいて、クライアントからネイティブに適切なリソース(上記の例のphotoV1.0.jsなど)を取得できる。いくつかの実施形態において、組み込みモジュールは、事前設定された位置(「//client/resources」など)でリソースを探すよう構成される。したがって、組み込みモジュールは、「//client/resources/photo/V1.0」というパスでリソースファイルを探す。
【0052】
いくつかの実施形態において、サーバによってクライアントに送り返されたHTMLコードに含まれるリソースのアドレスは、呼び出されるリソースの名称およびバージョンプレースホルダに加えて、サーバに格納された様々なリソースの1または複数の格納位置(例えば、<script type=”text/javascript”src=”http://localhost:50000/photo${VERSION}.js”serverpath=”//server/resources”></script>)を含む。クライアントが、対応するリソースをネイティブに保存していないために、リソースがクライアント上で見つからない場合、対応するリソースphotoV1.0.jsは、修正されたアドレスに含まれるサーバ上でリソースを格納するために用いられている格納位置(例えば、「//server/resources/photo/V1.0」)に従って、サーバから取得される。サーバから取得されたリソースは、他の呼び出し元による将来のアクセスに備えて、クライアントにネイティブに保存される。
【0053】
クライアントの組み込みモジュールがクライアントまたはサーバのいずれかからリソース「photoV1.0.js」を取得した後、クライアントは、プラグインがリソース内の関数を呼び出すために、リソースphotoV1.0.jsをプラグインに送信する。
【0054】
いくつかの実施形態では、制限リソース(すなわち、バージョン制限を持つリソース)が、クライアント側にパッケージされてよく、サーバによって送り返されたページデータは、制限リソースに関するバージョン情報を指定しない。むしろ、バージョンプレースホルダが、ページデータ内に設定される。クライアントはページデータを解析し、組み込みモジュールはリソース呼び出し要求を監視する。バーションプレースホルダを含むリソース呼び出し要求は、リソース呼び出し要求によって呼び出されるリソースが制限リソースであることを示す。組み込みモジュールは、クライアントのネイティブバージョン情報を取得し、リソース呼び出し要求内のバージョンプレースホルダの代わりに、クライアントのネイティブバージョン情報を用いる。
【0055】
上述の技術を用いることにより、クライアントは、ページデータを受信した後にページデータを修正する必要がない。その代わり、ページデータを解析した後、アプリケーションクライアントは、ページデータに含まれるアドレスに基づいてリソース呼び出し要求を生成し、その要求を送信する。このアドレスはクライアントのネイティブアドレスなので、リソース呼び出し要求は、クライアントの組み込みモジュールによって監視および受信できる。組み込みモジュールは、受信したリソース呼び出し要求に含まれるバージョンプレースホルダを修正する。すなわち、クライアントが修正するものは、ページデータの解析後に受信および送信するリソース呼び出し要求であり、ページデータ自体ではない。クライアントおよびサーバが、異なるバージョンのリソースを有する時に、クライアントは、ページデータを修正する必要なしに、クライアントの現行バージョンに適合するリソースを呼び出すことができる。次いで、クライアントは、サービスを正常に提供し、ページデータは修正されていないので、そのページデータに基づいて、将来、ウェブページが正常にプラグインによってロードされうる。
【0056】
さらに、既存のシステムにおいて、クライアントは、サーバによって送り返されたHTMLコードを修正し、その後、クライアント自身のプラグインを用いて修正済みのHTMLコードをロードする必要がある。結果として、ページがロードされる方法(ページのローディングモードとも呼ばれる)も修正される。さらに、サーバのURLアドレスでの直接ローディングと対比して、修正されたHTMLコードは、リソースをロードするための要求の単一性を損なう(例えば、元々のHTMLコードはサーバに由来し、パス「http://protocol」を有するが、修正されたHTMLコードはクライアント自体に由来し、パス「file://protocol」を有する)。ローディングモードにおけるかかる変更は、HTML5標準アプリケーションキャッシュおよびその他の機能を利用できなくする。しかしながら、処理200と同様の処理が実行された場合、クライアントがサーバによって送り返されたページデータを修正しないので、ページデータソースの単一性は損なわれない。ページデータがHTMLコードを含む場合に、クライアントアプリケーションは、ローディングモードに関するHTML5標準の厳格な要件に関係する機能を損なうことがない。
【0057】
さらに、上述の技術を用いると、サーバは、クライアントの現行バージョンがサーバのバージョンと一致するか否かを知る必要がない。すなわち、クライアントのバージョン情報は、サーバに対してトランスペアレントである。クライアントおよびサーバが異なるバージョンを有する場合でも、クライアントは、上述の処理200を実行して、リソースを呼び出し、ページ内で機能を実現することができる。
【0058】
本願の実施形態において、携帯端末は、複数のアプリケーションクライアントをインストールされてよい。上述したような組み込みモジュールが、インストールされた各アプリケーションクライアントに追加されてよい。いくつかの実施形態において、組み込みモジュールは、1または複数の他のアプリケーションクライアントプロセスと通信するプロセスとして実装される。携帯端末への負荷を軽減するために、1つのアプリケーションクライアントが自身の組み込みモジュールを有効化した場合に、この組み込みモジュールは、自身のリソース呼び出し要求を処理するのに加えて、他のアプリケーションクライアントに対するリソース呼び出し要求を処理できる。
【0059】
いくつかの実施形態では、少なくとも第1のアプリケーションクライアントおよび第2のアプリケーションクライアントが、組み込みモジュールを共有する。以下の説明では、第1のアプリケーションクライアントが、第2のアプリケーションクライアントの前に起動されると仮定する。したがって、第1のアプリケーションクライアントの組み込みモジュールが有効化されている場合、第2のアプリケーションクライアントは、第1のアプリケーションクライアントの有効化された組み込みモジュールを用いてリソースを呼び出すことができる。
【0060】
上述のように、いくつかの実施形態において、各アプリケーションクライアントは、初期化時に登録情報を指定ポートに送信する。第1のアプリケーションクライアントは、第2のクライアントによって送信された登録情報を受信し、登録情報に含まれる第2のアプリケーションクライアントの現行バージョンを保存する。続いて、第2のアプリケーションクライアントによって送信されたリソース呼び出し要求を受信した後、第1のアプリケーションクライアントは、リソース呼び出し要求内のアドレスに含まれるバージョンプレースホルダを、第2のアプリケーションクライアントの保存済みの現行バージョンに修正し、修正したリソース呼び出し要求に含まれるアドレスを用いて、対応するリソースを取得し、取得したリソースを第2のクライアントに送り返す。
【0061】
第2のアプリケーションクライアントは、処理200を用いてサーバとのやり取りを行う時、第2のアプリケーションクライアント自身のプラグインを用いて工程201から203を実行し、現在の携帯端末が、有効化された組み込みモジュールを備えた別のアプリケーションクライアントを有するか否かを評価してよい。第2のアプリケーションクライアントは、特定の時間内に組み込みモジュールからの応答の受信に成功し、第1のアプリケーションクライアントの組み込みモジュールがすでに有効化されていると判定した場合、第1のクライアント内で有効化された組み込みモジュールを用いて、リソース呼び出しを実行する。第1のクライアントの組み込みモジュールによって受信されたリソース呼び出し要求が、第2のクライアントの識別子を含む場合、第1のクライアントは、このリソース呼び出し要求が第2のクライアントによって送信されたと判定できる。したがって、図3に示すように、第1のクライアントは、適切なリソースを取得した後、第2のクライアントのプラグインにリソースを送り返す。
【0062】
図3は、2つのアプリケーションクライアントを備えたシステムの一実施形態を示す図である。この例では、第2のアプリケーションクライアントが、登録情報を第1のアプリケーションクライアントに送信する。図3において、第2のアプリケーションクライアントは、第2のアプリケーションクライアントの現行バージョン情報および第2のクライアントの識別子を含む登録情報を第1のアプリケーションクライアントに送信するために、「ハートビート」アプローチを用いる。すなわち、第2のアプリケーションクライアントは、第1のアプリケーションクライアントに登録情報を定期的に送信する。具体的には、第2のアプリケーションクライアントは、以下のメッセージを用いて登録情報を送信する:
【0063】
HTTP GET http://localhost:50000/register_token/appname/version
【0064】
上述の登録情報において、「appname」は第2のアプリケーションクライアントの識別子であり;「version」は第2のアプリケーションクライアントの現行バージョン情報である。
【0065】
第1のアプリケーションクライアントが登録情報を受信した後、第1のアプリケーションクライアント自身の組み込みモジュールが、登録情報に応答し、第2のアプリケーションクライアントに応答を送り返す。したがって、第2のアプリケーションクライアントは、特定の期間内にアプリケーションの(すなわち、第1のアプリケーションクライアントの)組み込みモジュールから応答を受信したか否かを判定するだけでよい。受信した場合、第2のアプリケーションクライアントは、第1のアプリケーションクライアントの組み込みモジュールが有効化されていると結論づける。第2のアプリケーションクライアントは、第1のアプリケーションクライアントの組み込みモジュールが有効化されていると判定した場合、自身の組み込みモジュールを有効化する必要はなく、第1のアプリケーションクライアントの組み込みモジュールを介してリソース呼び出し工程を実行できる。
【0066】
図4は、2つのアプリケーションクライアントを備えたシステムの別の実施形態を示す図である。この例では、第1のアプリケーションクライアントの組み込みモジュールが有効化されていない時に、第2のアプリケーションクライアントが、自身の組み込みモジュールを有効化する。具体的には、第2のアプリケーションクライアントは、「ハートビート」モードで登録情報を送信し、特定の期間内に応答を受信しない。したがって、第2のアプリケーションクライアントは、別のアプリケーションクライアントの組み込みモジュールが有効化されていないと判定し、したがって、第2のアプリケーションクライアント自身の組み込みモジュールを有効化して、その欠損を補う。
【0067】
上述の技術によると、携帯端末において、1つのアプリケーションクライアントのみがそれ自身の組み込みモジュールを有効化すれば、他のアプリケーションクライアントがその組み込みモジュールによるサービスを受けられるようになる。すべてのアプリケーションクライアントの組み込みモジュールを有効化する必要はない。この技術は、携帯端末への負荷を軽減できる。
【0068】
さらに、本願の実施形態において、サーバにページ要求メッセージを送る送信側は、ハイブリッドアプリケーション・クライアントに加えて、携帯端末自身のブラウザまたはその他のタイプのアプリケーションクライアントを含む。したがって、図2に示した工程202で、サーバが、アプリケーションクライアントのネイティブアドレスを含むページデータをアプリケーションクライアントに送り返す前に、アプリケーションクライアントのタイプが、受信されたページ要求メッセージ内の特定のフィールドに従って、特定のタイプとして確認されうる。具体的には、サーバは、受信されたページ要求メッセージ内の「UAgent」フィールドまたはその他の追加フィールドに基づいて、ページ要求メッセージを送信したアプリケーションクライアントのタイプがハイブリッドアプリケーションであるか否かを評価する(例えば、「UAgent」が1に設定されている場合、送信側アプリケーションクライアントはハイブリッドアプリケーションである)。ハイブリッドアプリケーションである場合、サーバは、アプリケーションクライアントのネイティブアドレスを含むページデータを送り返す。そうでない場合、通常のページデータを送り返す。
【0069】
以上は、本願の実施形態によって提供されるハイブリッドアプリケーションのためのリソース呼び出し方法である。本願の実施形態は、図5および図6に示すように、ハイブリッドアプリケーション・クライアントおよびリソース呼び出しシステムも提供する。
【0070】
図5は、本願の一実施形態によって提供されるハイブリッドアプリケーション・クライアントを示す構造図である。この例において、ハイブリッドアプリケーション500は、ページ要求メッセージをサーバに送信し、ページ要求メッセージに応答してサーバによって送り返されたページデータを受信し、ページデータを解析し、呼び出す必要のあるリソースのアドレスを取得し、リソース呼び出し要求を生成するよう構成されたプラグイン501を備える。
【0071】
ハイブリッドアプリケーション・クライアント500は、さらに、監視ユニット5021と、解析ユニット5022と、リソース評価ユニット5023とを備えた組み込みモジュール502を備える。監視ユニット5021は、プラグインによって生成されたリソース呼び出し要求を監視するよう構成されている。解析ユニット5022は、アプリケーションクライアントのネイティブバージョン情報を取得し、アプリケーションクライアントのネイティブバージョン情報を用いて、監視ユニットによって監視されているリソース呼び出し要求を修正するよう構成されている。リソース評価ユニット5023は、修正されたリソース呼び出し要求に従ってリソースを取得し、取得したリソースをプラグインに送り返すよう構成されている。
【0072】
この例において、サーバから受信されたページデータは、ハイパーテキスト・マークアップランゲージ(HTML)コードを含み、そのHTMLコードは、呼び出される必要のあるリソースのアドレスを含む。アドレスは、呼び出される必要のあるリソースの名称およびバージョンプレースホルダを含む。バージョンプレースホルダは、リソースを制限リソースとして特定する。解析ユニット5022は、監視ユニット5021によって監視されているリソース呼び出し要求がバージョンプレースホルダを含むか否かを判定し、リソース呼び出し要求がバージョンプレースホルダを含む場合、アプリケーションクライアントの現行バージョン情報がバージョンプレースホルダの代わりに用いられる。
【0073】
リソース評価ユニット5023は、対応するリソースをネイティブに取得し、修正されたリソース呼び出し要求に含まれるリソース名およびバージョン情報に基づいて、対応するリソースがネイティブに保存されていない時には対応するリソースをサーバから取得し、取得したリソースをネイティブに保存するよう構成されている。
【0074】
上述のユニットは、1または複数の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、特定の機能を実行するよう設計されたプログラム可能論理デバイスおよび/または特定用途向け集積回路などのハードウェアとして、もしくは、それらの組み合わせとして実装することができる。いくつかの実施形態において、ユニットは、コンピュータデバイス(パーソナルコンピュータ、サーバ、ネットワーク装置など)に本願の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体(光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど)に格納することができるソフトウェア製品の形態で具現化されてよい。ユニットは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。ユニットの機能は、互いに統合されてもよいし、複数のサブユニットにさらに分割されてもよい。
【0075】
図6は、本願に従ったリソース呼び出しシステムの一実施形態を示すシステム図である。この例において、システム600は、サーバ601およびクライアントデバイス603を備える。クライアントデバイスは、スマートフォン、タブレット、ラップトップ、ウェアラブルデバイスなど、任意の適切なコンピュータシステムであってよい。1または複数のアプリケーションクライアント602が、クライアントデバイス上で実行される。サーバおよびクライアントデバイスは、インターネットなどのネットワークを介して通信する。
【0076】
サーバ601は、アプリケーションクライアント602によって送信されたページ要求メッセージを受信し、ページ要求メッセージに従ってアプリケーションクライアント602にページデータを送り返すよう構成されている。
【0077】
アプリケーションクライアント602は、サーバ601によって送り返されたページデータを受信し、呼び出される必要のあるリソースのアドレスを取得し、リソース呼び出し要求を生成するよう構成されている。アプリケーションクライアントは、さらに、アプリケーションクライアント602のネイティブバージョン情報を取得し、アプリケーションクライアントのネイティブバージョン情報を用いて、受信したリソース呼び出し要求を修正し、修正したリソース呼び出し要求に従ってリソースを取得するよう構成されている。
【0078】
図7は、いくつかの実施形態に従って、リソース呼び出しを実行するためにプログラムされたコンピュータシステムを示す機能図である。明らかに、リソース呼び出しを実行するために、他のコンピュータシステムアーキテクチャおよび構成を用いることも可能である。以下に述べるような様々なサブシステムを備えるコンピュータシステム700は、少なくとも1つのマイクロプロセッササブシステム(プロセッサまたは中央処理装置(CPU)とも呼ばれる)702を備える。例えば、プロセッサ702は、シングルチッププロセッサまたはマルチプロセッサによって実装できる。いくつかの実施形態において、プロセッサ702は、コンピュータシステム700の動作を制御する汎用デジタルプロセッサである。メモリ710から読み出された命令を用いて、プロセッサ702は、入力データの受信および操作、ならびに、出力デバイス(例えば、ディスプレイ718)上でのデータの出力および表示を制御する。いくつかの実施形態において、プロセッサ702は、リソース呼び出し関数を含む、および/または、リソース呼び出し関数を提供するために用いられる。
【0079】
プロセッサ702は、メモリ710と双方向的に接続されており、メモリ710は、第1のプライマリストレージ(通例は、ランダムアクセスメモリ(RAM))および第2のプライマリストレージ領域(通例は、読み出し専用メモリ(ROM))を含みうる。当業者に周知のように、プライマリストレージは、一般的な記憶領域として、および、スクラッチパッドメモリとして利用可能であり、また、入力データおよび処理済みデータを格納するために利用可能である。プライマリストレージは、さらに、プロセッサ702上で実行される処理のための他のデータおよび命令に加えて、データオブジェクトおよびテキストオブジェクトの形態で、プログラミング命令およびデータを格納できる。また、当業者に周知のように、プライマリストレージは、通例、機能(例えば、プログラムされた命令)を実行するためにプロセッサ702によって用いられる基本的な動作命令、プログラムコード、データ、および、オブジェクトを備える。例えば、メモリ710は、例えば、データアクセスが双方向である必要があるか、単方向である必要があるかに応じて、後述する任意の適切なコンピュータ読み取り可能な記憶媒体を含みうる。例えば、プロセッサ702は、頻繁に必要になるデータをキャッシュメモリ(図示せず)に直接的かつ非常に迅速に格納し取り出すことができる。
【0080】
着脱可能なマスストレージデバイス712が、コンピュータシステム700にさらなるデータ記憶容量を提供しており、プロセッサ702に対して双方向(読み出し/書き込み)または単方向(読み出しのみ)に接続されている。例えば、ストレージ712は、磁気テープ、フラッシュメモリ、PCカード、携帯型マスストレージデバイス、ホログラフィックストレージデバイス、および、その他のストレージデバイスなどのコンピュータ読み取り可能な媒体も含みうる。固定マスストレージ720も、例えば、さらなるデータ記憶容量を提供しうる。マスストレージ720の最も一般的な例は、ハードディスクドライブである。マスストレージ712、720は、一般に、プロセッサ702によって通例はあまり利用されないさらなるプログラミング命令、データなどを格納する。マスストレージ712および720に保持された情報は、必要であれば、仮想メモリとしてのメモリ710(例えば、RAM)の一部に標準的な方式で組み込まれてよいことが理解される。
【0081】
プロセッサ702がストレージサブシステムにアクセスできるようにすることに加えて、バス714は、その他のサブシステムおよびデバイスへのアクセスを可能にするために用いられてもよい。図に示すように、これらは、ディスプレイモニタ/タッチスクリーン718、ネットワークインターフェース716、キーボード704、および、ポインティングデバイス706、ならびに、必要に応じて、補助入力/出力デバイスインターフェース、サウンドカード、スピーカ、および、その他のサブシステムを含みうる。例えば、ポインティングデバイス706は、マウス、スタイラス、トラックボール、または、タブレットであってよく、グラフィカルユーザインターフェースと相互作用するのに有用である。
【0082】
ネットワークインターフェース716は、図に示すように、ネットワーク接続を用いて、別のコンピュータ、コンピュータネットワーク、または、遠隔通信ネットワークにプロセッサ702を接続することを可能にする。例えば、ネットワークインターフェース716を通して、プロセッサ702は、方法/処理ステップを実行する過程で、別のネットワークから情報(例えば、データオブジェクトまたはプログラム命令)を受信したり、別のネットワークに情報を出力したりすることができる。情報は、しばしば、プロセッサ上で実行される一連の命令として表され、別のネットワークから受信されたり、別のネットワークへ出力されたりしうる。インターフェースカード(または同様のデバイス)と、プロセッサ702によって実装(例えば、実行/実施)される適切なソフトウェアとを用いて、コンピュータシステム700を外部ネットワークに接続し、標準プロトコルに従ってデータを転送することができる。例えば、本明細書に開示された様々な処理の実施形態は、プロセッサ702上で実行されてもよいし、処理の一部を共有するリモートプロセッサと共に、ネットワーク(インターネット、イントラネットワーク、または、ローカルエリアネットワークなど)上で実行されてもよい。さらなるマスストレージデバイス(図示せず)が、ネットワークインターフェース716を通してプロセッサ702に接続されてもよい。
【0083】
補助I/Oデバイスインターフェース(図示せず)が、コンピュータシステム700と共に用いられてよい。補助I/Oデバイスインターフェースは、プロセッサ702がデータを送信すること、ならびに、より典型的には、他のデバイス(マイクロホン、タッチセンサ方式ディスプレイ、トランスデューサカードリーダ、テープリーダ、音声または手書き認識装置、バイオメトリクスリーダ、カメラ、携帯型マスストレージデバイス、および、他のコンピュータなど)からデータを受信することを可能にする汎用インターフェースおよびカスタマイズされたインターフェースを含みうる。
【0084】
さらに、本明細書に開示された様々な実施形態は、さらに、様々なコンピュータ実装された動作を実行するためのプログラムコードを備えたコンピュータ読み取り可能な媒体を含むコンピュータストレージ製品に関する。コンピュータ読み取り可能な媒体は、データを格納できる任意のデータストレージデバイスであり、そのデータは、後にコンピュータシステムによって読み出されうる。コンピュータ読み取り可能な媒体の例は、以下の媒体すべてを含むがそれらに限定されない:ハードディスク、フロッピー(登録商標)ディスク、および、磁気テープなどの磁気媒体;CD−ROMディスクなどの光学媒体;光学ディスクなどの磁気光学媒体;ならびに、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、および、ROM/RAMデバイスなど、特別に構成されたハードウェアデバイス。プログラムコードの例としては、例えば、コンパイラによって生成されるマシンコード、または、インタープリタを用いて実行できる高水準コード(例えば、スクリプト)を含むファイルが挙げられる。
【0085】
図7に示したコンピュータシステムは、本明細書に開示された様々な実施形態と共に利用するのに適切なコンピュータシステムの一例にすぎない。かかる利用に適した他のコンピュータシステムは、より多いまたは少ないサブシステムを含みうる。さらに、バス714は、サブシステムをつなぐよう機能する任意の相互接続スキームの例である。異なる構成のサブシステムを有する他のコンピュータアーキテクチャが利用されてもよい。
【0086】
本願の実施形態は、リソース呼び出し技術を提供する。この技術によると、クライアントは、サーバによって送信され、呼び出される必要のあるリソースのアドレスを含むページデータを受信する。クライアントは、ページデータを解析し、リソース呼び出し要求を生成する。クライアントは、クライアントのネイティブバージョン情報を用いて、このリソース呼び出し要求を修正し、修正したリソース呼び出し要求に従ってリソースを取得する。上記の技術を用いれば、クライアントおよびサーバが異なるバージョンを有する場合に、ページデータを修正する必要なしに、正常なサービスを提供できる。したがって、後のページを正常にロードすることを保証できる。
【0087】
当業者は、本願の実施形態が、方法、システム、または、コンピュータソフトウェア製品として提供されうることを理解されたい。したがって、本願は、完全なハードウェア実施形態、完全なソフトウェア実施形態、もしくは、ソフトウェアおよびハードウェアを組み合わせた実施形態を取りうる。さらに、本願は、コンピュータ動作可能なプログラムコードを含む1または複数のコンピュータ動作可能な記憶媒体(磁気ディスク記憶デバイス、CD−ROM、および、光学記憶デバイスを含むがこれらに限定されない)上に実装されたコンピュータプログラム製品の形態を取りうる。
【0088】
本願は、方法、装置(システム)、および、コンピュータプログラム製品に基づいたフローチャートおよび/またはブロック図を参照して記載されている。フローチャートおよび/またはブロック図内の各フロープロセスおよび/またはブロック図、ならびに、フローチャートおよび/またはブロック図内のフロープロセスおよび/またはブロック図の組み合わせは、コンピュータ命令によって実現されうることに注意されたい。これらのコンピュータ命令は、マシンを生成するために、汎用コンピュータ、専用コンピュータ、組み込みプロセッサ、または、その他のプログラム可能なデータ処理装置のプロセッサに供給されてよく、その結果、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサによって命令が実行されることで、フローチャートの1または複数の処理および/またはブロック図の1または複数のブロックに記載された機能を実現するために用いられるデバイスが生成される。
【0089】
これらのコンピュータプログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置を導くことができる専用のコンピュータ読み取り可能な記憶デバイス上に格納されてもよく、その結果、これらのコンピュータ読み取り可能なデバイス上に命令が格納されることで、命令デバイスを備える製品が生成される。これらの命令デバイスは、フローチャートの1または複数の処理および/またはブロック図の1または複数のブロックに記載された機能を実現する。
【0090】
これらのコンピュータプログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置上にロードされてもよく、その結果、一連の動作工程が、コンピュータまたはその他のプログラム可能な装置上で実行され、コンピュータ処理が行われる。このように、コンピュータまたはその他のプログラム可能な装置上で実行された命令は、フローチャートの1または複数の処理および/またはブロック図の1または複数のブロックに記載された機能を実現するための工程を提供する。
【0091】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
本発明は、たとえば、以下のような態様で実現することもできる。

適用例1:
リソースを呼び出すための方法であって、
ページ要求メッセージをサーバに送信する工程と、
前記ページ要求メッセージに応答して前記サーバによって送り返されたページデータを受信する工程と、
前記ページデータを解析して、前記リソースのアドレスを取得する工程と、
1または複数のコンピュータプロセッサによって、前記リソースの前記アドレスを用いてリソース呼び出し要求を生成する工程と、
アプリケーションクライアントのネイティブバージョン情報を取得する工程と、
前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正する工程と、
前記修正されたリソース呼び出し要求に従って前記リソースを取得する工程と、
を備える、方法。

適用例2:
適用例1の方法であって、前記ページデータは、ハイパーテキスト・マークアップランゲージ(HTML)コードを含み、前記HTMLコードは、前記リソースの前記アドレスを含む、方法。

適用例3:
適用例1の方法であって、前記アドレスは、前記リソースの名称およびバージョンプレースホルダを含み、前記バージョンプレースホルダは、前記リソースが制限リソースであることを示す、方法。

適用例4:
適用例1の方法であって、前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正する工程は、
前記リソース呼び出し要求を監視する工程と、
前記リソース呼び出し要求がバージョンプレースホルダを含むか否かを判定する工程と、
前記リソース呼び出し要求が前記バージョンプレースホルダを含む場合に、前記バージョンプレースホルダを前記アプリケーションクライアントの前記ネイティブバージョン情報で置き換える工程と、
を含む、方法。

適用例5:
適用例1の方法であって、前記修正されたリソース呼び出し要求に従って前記リソースを取得する工程は、前記修正されたリソース呼び出し要求に含まれるリソース名および前記ネイティブバージョン情報を用いて、前記リソースを取得する工程を含む、方法。

適用例6:
適用例1の方法であって、前記修正されたリソース呼び出し要求に従って前記リソースを取得する工程は、
前記アプリケーションクライアントを実行するデバイス上で、ネイティブに前記アプリケーションクライアントから対応するリソースを取得するよう試みる工程と、
前記デバイス上で前記対応するリソースを取得することが成功しなかった場合に、前記対応するリソースを前記サーバから取得して、前記取得したリソースを前記デバイスにネイティブに保存する工程と、
を含む、方法。

適用例7:
適用例1の方法であって、前記アプリケーションクライアントは、第1のアプリケーションクライアントであり、前記方法は、さらに、
第2のアプリケーションクライアントによって送信された登録情報を受信する工程と、
前記登録情報に含まれる前記第2のアプリケーションクライアントの現行バージョン情報を保存する工程と、
前記第2のアプリケーションクライアントによって送信されたリソース呼び出し要求を受信した後に、
前記第2のアプリケーションクライアントによって送信された前記リソース呼び出し要求に含まれるアドレスに含まれるバージョンプレースホルダを、前記第2のアプリケーションクライアントの保存された現行バージョンに修正する工程と、
前記第2のアプリケーションクライアントによって送信された前記修正されたリソース呼び出し要求に含まれる前記アドレスを用いて、対応するリソースを取得する工程と、
前記取得した対応するリソースを前記第2のアプリケーションクライアントに送信する工程と、
を備える、方法。

適用例8:
適用例1の方法であって、前記アドレスは、前記アプリケーションクライアントが動作するクライアントデバイス上で監視されているポートを含む、方法。

適用例9:
リソース呼び出しシステムであって、
1または複数のプロセッサであって、
ページ要求メッセージをサーバに送信し、
前記ページ要求メッセージに応答して前記サーバによって送り返されたページデータを受信し、
前記ページデータを解析して、リソースのアドレスを取得し、
前記リソースの前記アドレスを用いてリソース呼び出し要求を生成し、
アプリケーションクライアントのネイティブバージョン情報を取得し、
前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正し、
前記修正されたリソース呼び出し要求に従って前記リソースを取得するよう構成された、1または複数のプロセッサと、
前記1または複数のプロセッサに接続され、前記1または複数のプロセッサに命令を提供するよう構成された1または複数のメモリと、
を備える、システム。

適用例10:
適用例9のシステムであって、前記ページデータは、ハイパーテキスト・マークアップランゲージ(HTML)コードを含み、前記HTMLコードは、前記リソースの前記アドレスを含む、システム。

適用例11:
適用例9のシステムであって、前記アドレスは、前記リソースの名称およびバージョンプレースホルダを含み、前記バージョンプレースホルダは、前記リソースが制限リソースであることを示す、システム。

適用例12:
適用例9のシステムであって、前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正することは、
前記リソース呼び出し要求を監視することと、
前記リソース呼び出し要求がバージョンプレースホルダを含むか否かを判定することと、
前記リソース呼び出し要求が前記バージョンプレースホルダを含む場合に、前記バージョンプレースホルダを前記アプリケーションクライアントの前記ネイティブバージョン情報で置き換えることと、
を含む、システム。

適用例13:
適用例9のシステムであって、前記修正されたリソース呼び出し要求に従って前記リソースを取得することは、前記修正されたリソース呼び出し要求に含まれるリソース名および前記ネイティブバージョン情報を用いて、前記リソースを取得することを含む、システム。

適用例14:
適用例9のシステムであって、前記修正されたリソース呼び出し要求に従って前記リソースを取得することは、
前記アプリケーションクライアントを実行するデバイス上で、ネイティブに前記アプリケーションクライアントから対応するリソースを取得するよう試みることと、
前記デバイス上で前記対応するリソースを取得することが成功しなかった場合に、前記対応するリソースを前記サーバから取得して、前記取得したリソースを前記デバイスにネイティブに保存することと、
を含む、システム。

適用例15:
適用例9のシステムであって、前記アプリケーションクライアントは、第1のアプリケーションクライアントであり、前記1または複数のプロセッサは、さらに、
第2のアプリケーションクライアントによって送信された登録情報を受信し、
前記登録情報に含まれる前記第2のアプリケーションクライアントの現行バージョン情報を保存し、
前記第2のアプリケーションクライアントによって送信されたリソース呼び出し要求を受信した後に、
前記第2のアプリケーションクライアントによって送信された前記リソース呼び出し要求に含まれるアドレスに含まれるバージョンプレースホルダを、前記第2のアプリケーションクライアントの保存された現行バージョンに修正し、
前記第2のアプリケーションクライアントによって送信された前記修正されたリソース呼び出し要求に含まれる前記アドレスを用いて、対応するリソースを取得し、
前記取得した対応するリソースを前記第2のアプリケーションクライアントに送信するよう構成されている、システム。

適用例16:
適用例9のシステムであって、前記アドレスは、前記アプリケーションクライアントが動作するクライアントデバイス上で監視されているポートを含む、システム。

適用例17:
リソースを呼び出すためのコンピュータプログラム製品であって、有形のコンピュータ読み取り可能な記憶媒体内に具現化され、
ページ要求メッセージをサーバに送信するためのコンピュータ命令と、
前記ページ要求メッセージに応答して前記サーバによって送り返されたページデータを受信するためのコンピュータ命令と、
前記ページデータを解析して、前記リソースのアドレスを取得するためのコンピュータ命令と、
前記リソースの前記アドレスを用いてリソース呼び出し要求を生成するためのコンピュータ命令と、
アプリケーションクライアントのネイティブバージョン情報を取得するためのコンピュータ命令と、
前記アプリケーションクライアントの前記ネイティブバージョン情報を用いて、前記リソース呼び出し要求を修正するためのコンピュータ命令と、
前記修正されたリソース呼び出し要求に従って前記リソースを取得するためのコンピュータ命令と、
を備える、コンピュータプログラム製品。
図1
図2
図3
図4
図5
図6
図7