JP5986312B2 - アプリケーション互換性の評価 - Google Patents

アプリケーション互換性の評価 Download PDF

Info

Publication number
JP5986312B2
JP5986312B2 JP2015520612A JP2015520612A JP5986312B2 JP 5986312 B2 JP5986312 B2 JP 5986312B2 JP 2015520612 A JP2015520612 A JP 2015520612A JP 2015520612 A JP2015520612 A JP 2015520612A JP 5986312 B2 JP5986312 B2 JP 5986312B2
Authority
JP
Japan
Prior art keywords
application
client
applications
compatibility
computing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015520612A
Other languages
English (en)
Other versions
JP2015524966A (ja
Inventor
サンバー ジル、
サンバー ジル、
クリシュナ ケー. ラジャゴパラン、
クリシュナ ケー. ラジャゴパラン、
マシュー ジョーンズ、
マシュー ジョーンズ、
ケネス、 チュン、 カイ コ、
ケネス、 チュン、 カイ コ、
Original Assignee
アマゾン テクノロジーズ インク
アマゾン テクノロジーズ インク
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アマゾン テクノロジーズ インク, アマゾン テクノロジーズ インク filed Critical アマゾン テクノロジーズ インク
Publication of JP2015524966A publication Critical patent/JP2015524966A/ja
Application granted granted Critical
Publication of JP5986312B2 publication Critical patent/JP5986312B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Description

開示の技術は、アプリケーション互換性の評価に関する。
小型のディスプレイ画面および制限された機能セットを有するスマートフォンから、大型ディスプレイ画面および広範囲に及ぶ機能セットを備えたタブレットコンピュータまで、多数の異なるタイプのモバイル機器が利用可能である。1つのタイプのモバイル機器に対して書かれたアプリケーションは、別のタイプのモバイル機器と互換性がない可能性がある。一例として、写真を撮るアプリケーションは、カメラのないモバイル機器と互換性がない可能性がある。別の例として、アプリケーションは、ある最低限のディスプレイ解像度に対して設計されたユーザーインタフェースを有し得、その最低限を下回るディスプレイ解像度を有するモバイル機器と互換性がない可能性がある。
開示の技術は、互換性のないアプリケーションを顧客に提示するのを回避することを目的とする。
開示の技術の一態様のシステムは、少なくとも1つのコンピューティング装置と、前記少なくとも1つのコンピューティング装置内で実行可能な少なくとも1つのアプリケーションであって、前記少なくとも1つのアプリケーションが:アプリケーションのセットを判断する論理と、特定のクライアントと互換性のないアプリケーションを除外するためにアプリケーションの前記セットをフィルタ処理する論理であって、フィルタ処理する前記論理が、前記特定のクライアントに対する機能セットを判断することと、アプリケーションの前記セットのうちの各1つに対して対応する互換性式を取得することと、アプリケーションの前記セットの各1つが前記特定のクライアントと互換性があるかを判断するために前記機能セットを使用して前記対応する互換性式の評価を実行することと、を行うように構成されている、アプリケーションの前記セットをフィルタ処理する論理と、フィルタ処理されているアプリケーションの前記セットを返す論理と、を含む、少なくとも1つのアプリケーションと、を備える。
開示の技術は、互換性のないアプリケーションを顧客に提示するのを回避することを可能とする。
本開示の様々な実施形態によるネットワーク化された環境の図である。 本開示の様々な実施形態に従い、図1のネットワーク化された環境内のクライアントによってレンダリングされるユーザーインタフェースの一例の図である。 本開示の様々な実施形態に従い、図1のコンピューティング環境内で実行されるアプリケーションインジェスチョンサービス(application ingestion service)の部分として実装された機能の一例を図示する流れ図である。 本開示の様々な実施形態に従い、図1のコンピューティング環境内で実行されるアプリケーション市場システム(application marketplace system)の部分として実装された機能の一例を図示する流れ図である。 本開示の様々な実施形態に従い、図1のコンピューティング環境内で実行される互換性評価サービスの部分として実装された機能の例を図示する流れ図である。 本開示の様々な実施形態に従い、図1のコンピューティング環境内で実行される互換性評価サービスの部分として実装された機能の例を図示する流れ図である。 本開示の様々な実施形態に従い、図1のネットワーク化された環境内で採用されたコンピューティング環境の一図示例を提供する概略ブロック図である。
本開示は、アプリケーション互換性の評価に関する。アプリケーション市場は、通常、任意の所与の装置と互換性があるかどうか分からない多数のアプリケーションを含む。顧客がアプリケーション市場で閲覧するか、または検索を実行するときに、互換性のないアプリケーションを顧客に提示するのを回避することが望ましい。例えば、アプリケーション市場に対するユーザーインタフェースから互換性のないアプリケーションを除外すると混乱が減少する。加えて、互換性のないアプリケーションを除外すると、互換性のないアプリケーションの間違ったインストールまたは実行から生じる悪い顧客経験を防ぐ。
本開示の様々な実施形態は1つまたは複数のアプリケーションのクライアントとの互換性評価のためのアプローチを提供し、それは、アプリケーション市場に対するユーザーインタフェースから互換性のないアプリケーションをフィルタ処理または除外するために使用され得る。この目的のため、アプリケーション市場に追加されているアプリケーションに応答して、互換性式が、アプリケーションに対して自動的に構築され得る。クライアントに対するクライアント機能データが取得され得る。顧客が、クライアント上にインストールするアプリケーションに対して、アプリケーション市場を閲覧または検索するとき、そのクライアントと互換性がないアプリケーションを除外するために結果がフィルタ処理される。フィルタ処理は、そのクライアントに対するクライアント機能データに関して、アプリケーションに対する互換性式の評価に少なくとも一部、基づき実行される。互換性のないアプリケーションは、次いで、顧客による選択から除外され得るか、または顧客に対して表示されるのさえ除外され得る。以下の議論では、システムおよびその構成要素の概要が提供され、同じものの動作の議論がそれに続く。
本開示の多数の態様は、図を参照するとより良く理解できる。図中の構成要素は、必ずしも一定の縮尺ではなく、代わりに、本開示の原理を明確に図示することに重きが置かれている。さらに、図では、同様の参照番号はいくつかの図を通して対応する部分を指定する。
図1を参照すると、様々な実施形態によるネットワーク化された環境100が示されている。ネットワーク化された環境100は、1つまたは複数の開発者クライアント106および1つまたは複数のクライアント109と、ネットワーク112を経由して、データ通信するコンピューティング環境103を含む。ネットワーク112は、例えば、インターネット、イントラネット、エクストラネット、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、有線ネットワーク、無線ネットワーク、もしくは他の適切なネットワークなど、または2つ以上のかかるネットワークの任意の組合せを含む。
コンピューティング環境103は、例えば、サーバーコンピュータまたはコンピューティング機能を提供する任意の他のシステムを含み得る。代替として、複数のコンピューティング装置が、例えば、1つもしくは複数のサーバーバンクもしくはコンピュータバンクまたは他の配列で配置されているコンピューティング環境103内で採用され得る。例えば、複数のコンピューティング装置は一緒に、クラウドコンピューティング資源、グリッドコンピューティング資源、および/または任意の他の分散コンピューティング配置を含み得る。かかるコンピューティング装置は、単一の施設に配置され得るか、または多数の異なる地理的位置間に分散され得る。
様々なアプリケーションおよび/または他の機能が、様々な実施形態に従って、コンピューティング環境103内で実行され得る。また、様々なデータが、コンピューティング環境103がアクセス可能なデータストア115内に格納される。データストア115は、見て分かるとおり、複数のデータストア115の代表であり得る。データストア115内に格納されるデータは、例えば、以下で説明する、様々なアプリケーションおよび/または機能エンティティの動作と関連付けられている。
コンピューティング環境103上で実行される構成要素は、例えば、開発者ポータルシステム118、アプリケーションインジェスチョンサービス121、アプリケーション市場システム124、互換性評価サービス127、および他のアプリケーション、サービス、プロセス、システム、エンジン、または本明細書では詳細に議論しない機能を含む。開発者ポータルシステム118は、ユーザーインタフェースを生成して、アプリケーション市場内の開発者の存在の維持に関連した機能を実行するために実行される。本明細書では、開発者は、アプリケーション130の供給源または販売業者に対応するユーザーまたは企業体に対応し得る。開発者ポータルシステム118は、開発者クライアント106における開発者が、アプリケーション130の投入またはアップロード、アプリケーション130に対する価格の設定、アプリケーション130に対するメタデータの設定、アプリケーション市場内でのアプリケーション130に対する販売方法のカスタマイズ、および/または他の機能の実行を行うことを可能にし得る。
一旦、開発者がアプリケーション130を開発者ポータルシステム118に提供すると、アプリケーションインジェスチョンサービス121がそのアプリケーション130をアプリケーション市場に追加するために実行され得る。アプリケーションインジェスチョンサービス121は、アプリケーション130を提供するためにアプリケーション市場の構成に関連した様々なタスクを実行し得る。例えば、アプリケーションインジェスチョンサービス121は、サポート対象のオペレーティングシステム、サポート対象のディスプレイ解像度またはサイズ、サポート対象の無線通信事業者、プロセッサ要件、メモリ要件などの、アプリケーション130の様々な要件を判断し得る。
アプリケーション市場システム124は、ユーザーインタフェースを提供して、アプリケーション市場に関連した様々なバックエンド機能を実行するために実行される。アプリケーション市場は、ユーザーがクライアント109上にインストールされるアプリケーション130を取得するのを容易にする。アプリケーション130は、多数の異なる開発者によって提供され得る。かかる取得は、購入およびダウンロード、無料ダウンロード、体験版ダウンロード、アップグレード、ロック解除、ならびに/または他のタイプの取得を含み得る。アプリケーション市場システム124は、ユーザーが、ジャンル、カテゴリ、タイトル、リリース日などに従って、利用可能なアプリケーション130を検索し、かつ/またはアプリケーション130を閲覧するのを容易にする。アプリケーション市場システム124は、アプリケーション130に対する電子決済を容易にするために、ユーザー認証および、クレジットカード、電子小切手、クレジットライン、ギフトカードなどの、様々な支払い手段の請求を実行し得る。
アプリケーション市場システム124は、クライアント機能131の登録および検索要求132をクライアント109から取得するように構成される。検索要求132に応答して、アプリケーション市場システム124は、検索結果133をクライアント109にネットワーク112を経由して返すように構成される。いくつかの実施形態では、検索結果133は、互換性のないアプリケーション130を除外するために事前にフィルタ処理され得る。他の実施形態では、検索結果133は、互換性フィルタ処理がクライアント109内で実行されるために、クライアント109に提供され得る。検索結果133は検索クエリーに応答して生成され得るが、検索結果133は、カテゴリリスト、人気のあるアプリケーション130のリスト、および/またはアプリケーション130の他の事前に定義されたか、もしくは動的に生成されるリストに対する検索要求132に応答しても生成され得る。
アプリケーション市場システム124、開発者ポータルシステム118、または両方は、Apache(登録商標)HTTP Server、Apache(登録商標)Tomcat(登録商標)、Microsoft(登録商標)Internet Information Services(IIS)、および/または他のサーバーなどの、市販のハイパーテキスト転送プロトコル(HTTP)サーバーアプリケーションを含み得る。アプリケーション市場システム124、開発者ポータルシステム118、または両方は、HTTP、シンプルオブジェクトアクセスプロトコル(SOAP)、表現状態転送(REST)、および/または他のネットワークプロトコルを採用し得る。
互換性評価サービス127は、特定のアプリケーション130が、クライアント109に対する機能の特定セットと互換性があるか互換性がないかを評価するために実行される。この目的のため、互換性評価サービス127は、特定のアプリケーション130に対して生成された互換性式134への変数置換を実行し得る。一実施形態では、互換性式134は、互換性評価サービス127によりスタックを使用して評価される後置式に対応する。
データストア115内に格納されるデータは、例えば、アプリケーション130、アプリケーション要件データ136、ビジネスルール139、互換性式134、機能セット145および識別子148を有するクライアント機能データ142、アプリケーション市場データ151、顧客データ154、ならびに潜在的に他のデータを含む。データストア115内のアプリケーション130は、アプリケーション市場に含めるために開発者によって提供されているアプリケーション130に対応する。アプリケーション130は、例えば、モバイルアプリケーション、ハイパーテキストマークアップ言語5(HTML5)アプリケーション、デスクトップアプリケーションおよび/または他のアプリケーションを含み得る。
アプリケーション要件データ136は、アプリケーション130の各々に対する様々なアプリケーション要件を含む。かかる要件は、アプリケーション130がクライアント109上にダウンロードおよび/またはインストールされ得る前に、クライアント109が満足する、セキュリティ要件、機能要件、および/または他の要件を含み得る。かかる要件は、アプリケーション130内に含まれるマニフェストまたは他のファイルから判断され得る。追加として、かかる要件は、アプリケーション130のコードを分析すること、アプリケーション130のコードを実行してどの機能がアクセスされるかを判断すること、および/または他のアプローチによって、確認され得る。いくつかの事例では、要件は、開発者ポータルシステム118によって生成されたユーザーインタフェースを通して、開発者クライアント106において開発者によって手動で指定され得る。
ビジネスルール139は、アプリケーション130が特定の機能セット145と互換性があるかを判断し得る任意のルールを含み得る。ビジネス上の理由で、アプリケーション市場の事業主または開発者のいずれかの代わりに、あるアプリケーション130をあるクライアント109上への取得およびインストールのために提供しないことが望まれ得る。限定されない例として、アプリケーション市場の事業主がマッピングアプリケーション130をあるタブレットクライアント109に提供する場合、ビジネスルール139は、他の供給源からのマッピングアプリケーション130はタブレットクライアント109と互換性がないと指定し得る。別の例として、ビジネスルール139は、あるアプリケーション130は、特定の排他的な無線通信事業者以外の無線通信事業者に関連したモバイルクライアント109と互換性がないと指定し得る。
互換性式134は、アプリケーションインジェスチョンサービス121によって、アプリケーション130に関連するアプリケーション要件データ136およびビジネスルール139から生成され得る。一実施形態では、互換性式134は、オペランドおよび演算子を含む項のリストに対応する。オペランドは変数および定数を含み得る。演算子は、例えば、論理演算子、比較演算子、算術演算子、集合演算子などを含み得る。いくつかの事例では、演算子は、所定の数の演算子、例えば、2つのオペランドまたは別の数、と関連付けられ得る。互換性式134は、前置、中置、または後置表記法で提供され得る。一実施形態では、互換性式134は、スタックベース評価のための後置表記法であり得る。
クライアント機能データ142は、様々なクライアント109と関連付けられた機能または特性を記述するデータを含む。かかる機能または特性は、アプリケーション130が対応するクライアント109と互換性があるかを判断し得る。クライアント機能データ142は、複数の機能セット145を含み、各機能セット145は、同一の機能を有する複数のクライアント109に対応し得る。各機能セット145は、例えば、オペレーティングシステムのバージョン、無線通信事業者、インストール済みのアプリケーション130およびライブラリ、クライアント109が全地球測位システム(GPS)装置を有するか、クライアント109がカメラを有するか、クライアント109のプロセッサ、クライアント109のメモリなど、を指定し得る。各機能セット145は、機能セット145を識別する識別子148と関連付けられている。
アプリケーション市場データ151は、アプリケーション市場システム124によって提供されるアプリケーション市場と関連付けられた様々なデータを含む。例えば、アプリケーション市場データ151は、アプリケーション130を宣伝する際に採用され得る、価格情報、注文情報、アプリケーション130に対するメタデータ、情報ページ、カテゴリおよび分類構造、レビュー、評価、スクリーンショット、および/または他のデータを含み得る。顧客データ154は、アプリケーション市場システム124のユーザーに関する様々なデータを含み得る。かかるデータは、セキュリティ証明書、閲覧履歴、注文履歴、登録された装置に対する識別子148、および/または他の情報を含み得る。
開発者クライアント106は、ネットワーク112に結合され得る、開発者によって操作される複数のクライアント装置の代表である。開発者クライアント106は、例えば、コンピュータシステムなどの、プロセッサベースのシステムを含み得る。かかるコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、携帯情報端末、携帯電話、スマートフォン、セットトップボックス、音楽プレーヤー、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダー、または同様の機能を備えた他の装置の形で実施され得る。
開発者クライアント106は、ブラウザおよび/または他のアプリケーションなどの、様々なアプリケーションを実行するように構成され得る。ブラウザは、例えば、開発者ポータルシステム118および/もしくは他のサーバーによって提供されるウェブページまたは他のネットワークコンテンツなどの、ネットワークページにアクセスしてレンダリングし、それによりレンダリングされたネットワークページをディスプレイ上に生成するために開発者クライアント106内で実行され得る。開発者クライアント106は、例えば、モバイルアプリケーション、電子メールアプリケーション、インスタントメッセージアプリケーション、および/または他のアプリケーションなど、ブラウザ以外のアプリケーションを実行するように構成され得る。
クライアント109は、ネットワーク112に結合され得る、顧客または見込み客によって操作される複数のクライアント装置の代表である。クライアント109は、例えば、コンピュータシステムなどの、プロセッサベースのシステムを含み得る。かかるコンピュータシステムは、デスクトップコンピュータ、ラップトップコンピュータ、モバイルコンピュータ、携帯情報端末、携帯電話、スマートフォン、セットトップボックス、音楽プレーヤー、ウェブパッド、タブレットコンピュータシステム、ゲーム機、電子書籍リーダー、または同様の機能を備えた他の装置の形で実施され得る。クライアント109は、ディスプレイ157を含み得る。ディスプレイ157は、例えば、液晶ディスプレイ(LCD)画面、ガスプラズマベースのフラットパネルディスプレイ、LCDプロジェクタ、または他のタイプのディスプレイ装置などの、1つまたは複数の装置を含み得る。
クライアント109は、クライアントアプリケーション160および/または他のアプリケーションなどの様々なアプリケーションを実行するように構成され得る。クライアントアプリケーション160は、ユーザーインタフェース163をディスプレイ157上にレンダリングして、アプリケーション市場の閲覧および検索、ならびにアプリケーション130のアプリケーション市場からの購入、ダウンロード、およびインストールを容易にするように構成される。一実施形態では、クライアントアプリケーション160は、アプリケーション市場のためのモバイルアプリケーションに対応する。別の実施形態では、クライアントアプリケーション160は、例えば、アプリケーション市場システム124および/もしくは他のサーバーによって提供されるウェブページまたは他のネットワークコンテンツなどの、ネットワークページにアクセスしてレンダリングするために採用されたブラウザに対応する。クライアント109は、例えば、モバイルアプリケーション、電子メールアプリケーション、インスタントメッセージアプリケーション、および/または他のアプリケーションなど、クライアントアプリケーション160以外のアプリケーションを実行するように構成され得る。
次に、ネットワーク化された環境100の様々な構成要素の動作の概要を提供する。初めに、開発者クライアント106における開発者は、開発者ポータルシステム118とやりとりして、1つまたは複数のアプリケーション130をアプリケーション市場に含めるために投入する。いくつかの事例では、アプリケーション130の複数のバージョンが投入され得る。また、アプリケーション130の新しいバージョンがリリースされると、その新しいバージョンが投入され得る。新しいバージョンは、例えば、以前のバージョンと共存し得るか、または以前のバージョンを置換し得る。アプリケーション130は、開発者ポータルシステム118にアップロードされ得るか、または開発者ポータルシステム118は、アプリケーション130を別の供給源からダウンロードするように構成され得る。アプリケーション130の投入に対する他のアプローチが他の実施形態で採用され得る。
アプリケーションインジェスチョンサービス121が、次いで、アプリケーション市場に含めるために投入されている各アプリケーション130を処理する。この目的のため、アプリケーションインジェスチョンサービス121は、アプリケーション130の様々な要件を判断し得る。かかる要件は、開発者によって手動で指定され得、かつ/または自動的に判断され得る。例えば、アプリケーションインジェスチョンサービス121は、アプリケーション130を起動して、アプリケーション130がどの資源にアクセスしようとするかを判断し得る。代替として、または追加として、アプリケーションインジェスチョンサービス121は、アプリケーション130のコードを検査して、どの機能、資源などがアプリケーション130によって使用されるかを評価し得る。さらに、アプリケーションインジェスチョンサービス121は、アプリケーション130に対するマニフェストまたは他の構成ファイルに、もし存在すれば、少なくとも一部基づき、要件を判断し得る。アプリケーションインジェスチョンサービス121は、次いで、アプリケーション要件データ136および任意の適用可能なビジネスルール139から、アプリケーション130に対する互換性式134を作成する。
別々に、顧客は、アプリケーション市場システム124でアカウントおよび/または識別を確立し得る。このプロセスの一部として、顧客の各々は、1つまたは複数のクライアント109をアプリケーション市場システム124で登録し得る。顧客は、この登録プロセスを容易にするために、クライアントアプリケーション160をダウンロードしてインストールし得る。代替として、クライアントアプリケーション160がブラウザである場合、顧客は、アプリケーション市場システム124によって提供されるネットワークサイトを閲覧し得る。ネットワークサイトは、次いで、様々なクライアント実行可能コードを、登録プロセスを実行するブラウザ上にロードし得る。
登録の一部として、クライアントアプリケーション160は、クライアント109の様々な機能を確認するためにクライアント109に問い合わせを行い得る。例えば、クライアントアプリケーション160は、クライアント109の、現在のオペレーティングシステムのバージョン、インストールされているソフトウェアライブラリ、GPS装置が存在するか、カメラが存在するか、現在の無線通信事業者、および/または他の特性、機能などを判断し得る。本明細書での議論は、主としてクライアント109装置に対する機能に関連するが、機能は、追加または代替として、クライアントアプリケーション160に関連し得る。限定されない例として、クライアントアプリケーション160がブラウザである場合、クライアントアプリケーション160がHTML5をサポートするか、どのHTML5の機能がサポートされるかなどが判断され得る。
クライアントアプリケーション160は、次いで、クライアント機能131をアプリケーション市場システム124に報告する。初期登録の後、クライアントアプリケーション160は、機能変更に応答して、アプリケーション市場システム124のアクセス時に、および/または他の時に、クライアント109に問い合わせを行って、クライアント機能131を定期的に(例えば、毎月、隔月など)報告するように構成され得る。アプリケーション市場システム124は、次いで、クライアント機能131を、事前に存在する機能セット145と、もし存在すれば、照合する。それが存在しない場合、アプリケーション市場システム124は新しい機能セット145をクライアント機能131からデータストア115内に作成して、新しい識別子148をそれに割り当て得る。アプリケーション機能セット145に関連付けられた識別子148は、次いで、顧客データ154内のクライアント109と関連付けられ、クッキーとしてクライアント109上に格納され、クライアントアプリケーション160による使用のためにクライアント109に転送されるか、または別の方法でクライアント109と関連付けられ得る。
顧客は次いで、アプリケーション市場の様々なユーザーインタフェース163にクライアントアプリケーション160を通してアクセスする。データは、ユーザーインタフェース163の生成およびレンダリングを容易にするために、クライアントアプリケーション160とアプリケーション市場システム124との間のネットワーク112を経由して送信され得る。一実施形態では、ユーザーインタフェース163は、レンダリングされたウェブページに対応し得る。別の実施形態では、ユーザーインタフェース163は、モバイルアプリケーション画面に対応し得る。ユーザーインタフェース163を通して、顧客は、アプリケーション市場によって提供されるアプリケーション130を全て閲覧および/または検索し得る。顧客は、検索クエリーを入力し、かつ/またはあるアプリケーション130を提示するように構成されたユーザーインタフェース163にアクセスし得る。それを行う際に、クライアントアプリケーション160は検索要求132をアプリケーション市場システム124に送信し得る。
それに応じて、アプリケーション市場システム124は、例えば、検索クエリーを使用して検索を実行するか、または事前に定義されたリストを取得することにより、アプリケーション130のリストを取得する。リスト内のアプリケーション130は、おそらく、人気、鮮度、検索クエリーとの関連性、価格などに対する基準を満足しているが、クライアント109と互換性があるかどうか分からない。様々な実施形態によれば、クライアント109と互換性のないアプリケーション130(および/またはアプリケーション130のバージョン)を除外するためにフィルタ処理が実行される。
一実施形態では、フィルタ処理は、アプリケーション市場システム124によってサーバー側で実行される。この目的のため、アプリケーション市場システム124は、アプリケーション130のリスト内の各アプリケーション130がクライアント109と互換性があるかを判断するために、互換性評価サービス127に問い合わせ得る。各クエリーは、クライアント109の機能セット145に対する識別子148を、それぞれのアプリケーション130に対する対応する識別子と一緒に提供し得る。クエリーがネットワークを経由してサービスコールとして伝送される場合、アプリケーション市場システム124は、ネットワーク待ち時間の影響を最小限にするために、クエリーまたはサービスコールをバッチにするように構成され得る。アプリケーション130のフィルタ処理されたリスト、または少なくともその一部が、次いで、ネットワーク112を経由して、クライアント109に送信される。
別の実施形態では、フィルタ処理は、クライアント109によってクライアント側で実行される。言い換えれば、互換性のないアプリケーション130を含み得るアプリケーション130のリストが、検索結果133内でクライアント109に送信される。クライアントアプリケーション160は、次いで、アプリケーション130の各々がクライアント109と互換性があるかを判断するために、互換性評価サービス127に対する1つまたは複数のサービスコールを行い得る。かかるサービスコールでは、クライアントアプリケーション160は識別子148(または、識別子148を判断するために使用され得る情報)を、各アプリケーション130に対する対応する識別子と一緒に渡し得る。クライアントアプリケーション160は、ネットワーク待ち時間の影響を最小限にするために、クエリーまたはサービスコールをバッチにするように構成され得る。一実施形態では、評価の結果がクライアント109内にキャッシュされ得る。
アプリケーション130のフィルタ処理されたリスト、または少なくともその一部が、クライアント109で利用可能な場合、クライアントアプリケーション160は、互換性があるアプリケーション130のリストからの1つまたは複数のアプリケーション130を提示するユーザーインタフェース163をレンダリングする。ユーザーインタフェース163は、そのアプリケーション130に対する詳細なページまたは画面にナビゲートするための、1つもしくは複数のリンクまたは他のユーザーインタフェース構成要素を含み得る。追加として、ユーザーインタフェース163は、アプリケーション130の1つの取得(例えば、購入およびダウンロード、無料ダウンロード、既存のインストレーションのアップグレードなど)を開始するための、1つもしくは複数のリンクまたは他のユーザーインタフェース構成要素を含み得る。
いくつかの事例では、互換性評価サービス127に対する検索要求132および/または評価クエリーは、クライアント109に関連した様々な可変機能特性を提供し得る。例えば、一実施形態では、格納された機能セット145は、クライアント109に対する不変特性を含み得るが、フィルタ処理を可能にするために、可変特性が、クライアント109によって提供され得る。かかる可変機能特性は、例えば、現在のオペレーティングシステムのバージョン、現在の無線通信事業者などを含み得る。
クライアント109上にインストールされるアプリケーション130に対する検索要求132を開始するクライアント109の機能に関して機能を説明してきたが、他の実施形態では、検索要求132は、異なるクライアント109と関連付けられた識別子148を指定し得る。例えば、顧客は、自分のスマートフォンと互換性のあるモバイルアプリケーション130を自分のデスクトップコンピュータから閲覧することを望み得る。かかる事例では、顧客は、以前に登録された装置から手動で識別または選択し得、それにより、使用されているクライアント109のものとは異なる識別子148を選択する。
互換性評価サービス127は、アプリケーション130の識別子、機能セット145の識別子148、ならびに潜在的にアプリケーション130のバージョン識別子および可変機能特性を指定するクエリーを取得して、アプリケーション130が機能セット145と互換性があるかを判断するために評価を実行する。この目的のため、互換性評価サービス127は、アプリケーション130(および、該当する場合は、バージョン)に対応する互換性式134を取得して、機能セット145(および、該当する場合は、可変機能特性)内の値に従って、互換性式134内の変数を置換する。互換性評価サービス127は、互換性式134の、該当する場合は、中置から後置表記法への変換、および/または他の変換も実行し得る。一実施形態では、互換性評価サービス127は、スタックを使用して、互換性式134を評価する。評価の結果は、アプリケーション130が、所与の機能セット145(および、該当する場合は、可変機能特性)と互換性があるか、または互換性がないかを示す。結果はデータストア115内にキャッシュされ、必要に応じて、互換性評価サービス127に対する将来の要求の代わりに利用され得る。
ここで、図2を参照すると、様々な実施形態に従い、ネットワーク化された環境100(図1)内のクライアント109内で実行されるクライアントアプリケーション160(図1)によってレンダリングされるユーザーインタフェース163の一例が示されている。ユーザーインタフェース163は、クライアント109と互換性があると判断されているアプリケーション130(図1)のリスト203を提示する。クライアント109の識別206は、クライアント109を「Galaxo 2000Nスマートフォン」であるとして記述する。ユーザーインタフェース構成要素209は、互換性のために評価されているクライアント109を切り替えるために提供され得る。例えば、顧客は、タブレットコンピュータを以前に登録している可能性があり、そのタブレットコンピュータと互換性のあるアプリケーション130についてスマートフォン上で閲覧することを望み得る。
リスト203は、それぞれ「Instaphoto」、「Mean Birds」および「Map App」に対応する、3つのアプリケーション130の記述212a、212b、および212cを含む。この限定されない例では、図、さらなる情報を要求するための構成要素、および購入を要求するための構成要素が各記述212に対して提供され得る。ユーザーインタフェース163のサイズが限定され得るので、1つまたは複数のナビゲーション構成要素215が、ユーザーインタフェース163を更新して、リスト203内の追加のアプリケーション130に対する記述212をレンダリングするために提供され得る。
次に図3を参照すると、様々な実施形態に従い、アプリケーションインジェスチョンサービス121の一部分の動作の一例を提供する流れ図が示されている。図3の流れ図は、本明細書で説明するように、アプリケーションインジェスチョンサービス121のその部分の動作を実装するために採用され得る、多数の異なるタイプの機能的配置の一例を提供するのに過ぎないことが理解される。代替として、図3の流れ図は、1つまたは複数の実施形態に従ってコンピューティング環境103(図1)内で実装される方法のステップの一例を示すと見なされ得る。
ボックス303から開始して、アプリケーションインジェスチョンサービス121は、アプリケーション130(図1)を開発者から取得する。例えば、開発者は、アプリケーション130を開発者ポータルシステム118(図1)を通じて投入し得る。ボックス306で、アプリケーションインジェスチョンサービス121は、アプリケーション130の要件を判断する。例えば、アプリケーションインジェスチョンサービス121は、アプリケーション130と関連付けられたデータ(例えば、マニフェストなど)を検査し得る。また、アプリケーションインジェスチョンサービス121は、アプリケーション130のコードを検査するか、またはアプリケーション130のコードを実行して、アプリケーション130がどの機能を使用するかを判断し得る。追加として、アプリケーションインジェスチョンサービス121は、開発者によって手動で指定されている要件を取得し得る。アプリケーションインジェスチョンサービス121は、要件をアプリケーション要件データ136(図1)内に格納し得る。
ボックス309で、アプリケーションインジェスチョンサービス121は、アプリケーション130に適用し得るビジネスルール139(図1)を判断する。ボックス312で、アプリケーションインジェスチョンサービス121は、アプリケーション130に対する互換性式134(図1)を生成する。アプリケーションインジェスチョンサービス121は、次いで、互換性式134をデータストア115(図1)に格納する。ボックス315で、アプリケーションインジェスチョンサービス121は、アプリケーション130をアプリケーション市場に追加し、それは、アプリケーション130をデータストア115に格納すること、アプリケーション市場データ151(図1)を更新すること、アプリケーション130をアプリケーション市場システム124(図1)に登録すること、および/または他の動作を伴い得る。その後、アプリケーションインジェスチョンサービス121のその部分が終了する。
図4に進むと、様々な実施形態に従い、アプリケーション市場システム124の一部分の動作の一例を提供する流れ図が示されている。図4の流れ図は、本明細書で説明するように、アプリケーション市場システム124のその部分の動作を実装するために採用され得る、多数の異なるタイプの機能的配置の一例を提供するのに過ぎないことが理解される。代替として、図4の流れ図は、1つまたは複数の実施形態に従って、コンピューティング環境103(図1)内で実装される方法のステップの一例を示すと見なされ得る。
ボックス403から開始して、アプリケーション市場システム124は、クライアント機能131(図1)をクライアント109(図1)から取得する。ボックス406で、アプリケーション市場システム124は、対応する機能セット145(図1)がデータストア115(図1)内に存在するかを判断する。対応する機能セットが存在しない場合、アプリケーション市場システム124は、ボックス409に移動して、クライアント機能131に対応する新しい機能セット145をデータストア115内に格納する。ボックス412で、アプリケーション市場システム124は、機能セット145に対する新しい識別子148(図1)を生成し、その識別子148をクライアント109と関連付ける。この目的のため、アプリケーション市場システム124は、顧客データ154(図1)を更新し、識別子148をクライアント109に送信して、識別子148をクライアント109上にクッキーとして格納し、かつ/または他の動作を実行し得る。アプリケーション市場システム124は、次いで、ボックス415に進む。
代わりに、アプリケーション市場システム124が、機能セット145がデータストア115内に既に存在すると判断する場合、アプリケーション市場システム124は、ボックス406からボックス418に移動して、既存の機能セット145の識別子148をクライアント109と関連付ける。この目的のため、アプリケーション市場システム124は、顧客データ154を更新し、識別子148をクライアント109に送信して、識別子148をクライアント109上にクッキーとして格納し、かつ/または他の動作を実行し得る。アプリケーション市場システム124は、次いで、ボックス415に進む。
ボックス415で、アプリケーション市場システム124は、アプリケーション130(図1)のリストに対する要求をクライアント109から取得する。例えば、要求は、検索要求132(図1)、カテゴリリストに対する要求などであり得る。ボックス421で、アプリケーション市場システム124は、アプリケーション130のリストを生成する。例えば、アプリケーション市場システム124は、検索基準に一致するアプリケーション130を見つけるためにアプリケーション130について検索を実行し得る。ボックス424で、アプリケーション市場システム124は、アプリケーション130の各々がクライアント109と互換性があるかを判断するために、互換性評価サービス127(図1)に問い合わせる。いくつかの事例では、アプリケーション市場システム124は、アプリケーション市場システム124と互換性評価サービス127との間の通信における待ち時間の影響を回避するために、クエリーをまとめてバッチにし得る。
ボックス427で、アプリケーション市場システム124は、アプリケーション130のリストをフィルタ処理して互換性がないと判断されるアプリケーション130を除外する。ボックス430で、アプリケーション市場システム124は、アプリケーション130のフィルタ処理されたリストを提示するためにユーザーインタフェース163(図1)に対するデータを生成する。ボックス433で、アプリケーション市場システム124は、ユーザーインタフェース163に対するデータを、ネットワーク112(図1)を経由してクライアント109に送信する。その後、アプリケーション市場システム124のその部分が終了する。
続けて図5には、様々な実施形態に従い、互換性評価サービス127の一部分の動作の一例を提供する流れ図が示されている。図5の流れ図は、本明細書で説明するように、互換性評価サービス127のその部分の動作を実装するために採用され得る、多数の異なるタイプの機能的配置の一例を提供するのに過ぎないことが理解される。代替として、図5の流れ図は、1つまたは複数の実施形態に従って、コンピューティング環境103(図1)内で実装される方法のステップの一例を示すと見なされ得る。
ボックス503から開始して、互換性評価サービス127は、クライアント109(図1)に対応する機能セット145(図1)およびアプリケーション130(図1)に対応する互換性式134(図1)を取得する。いくつかの事例では、互換性評価サービス127は、互換性式134を識別するためにアプリケーション130に対するバージョン識別子も取得し得る。さらに、互換性評価サービス127は、機能セット145内に格納されているものに加えて、クライアント109に対する様々な可変機能特性も取得し得る。
ボックス506で、互換性評価サービス127は、互換性式134を、該当する場合には、後置式に変換する。ボックス509で、互換性評価サービス127は、互換性式134内の変数を機能セット145からの値と置換する。例えば、互換性式134は、変数「screenSize」を有し得、機能セット145は「screenSize=small」の属性・値対を有し得る。従って、互換性評価サービス127は、互換性式134を評価する目的で、「screenSize」を「small」で置換し得る。
ボックス512で、互換性評価サービス127は、スタックを使用して互換性式を評価し、それについては、図6の流れ図に関連してさらに説明する。ボックス515で、互換性評価サービス127は、評価結果を返す。その後、互換性評価サービス127のその部分が終了する。
ここで、図6を参照すると、様々な実施形態に従い、互換性評価サービス127の別の部分の動作の一例を提供する流れ図が示されている。図6の流れ図は、本明細書で説明するように、互換性評価サービス127の他の部分の動作を実装するために採用され得る、多数の異なるタイプの機能的配置の一例を提供するのに過ぎないことが理解される。代替として、図6の流れ図は、1つまたは複数の実施形態に従って、コンピューティング環境103(図1)内で実装される方法のステップの一例を示すと見なされ得る。
ボックス603から開始して、互換性評価サービス127は、項を互換性式134から取得する。ボックス606で、互換性評価サービス127は、項がオペランドであるかを判断する。互換性評価サービス127が、項がオペランドであると判断すると、互換性評価サービス127は、ボックス609に進んで、オペランドをスタック上にプッシュする。互換性評価サービス127は、次いで、ボックス612に進む。
代わりに、互換性評価サービス127が、項がオペランドではない(すなわち、演算子である)と判断すると、互換性評価サービス127は、ボックス606からボックス615に進み、演算子に従ってオペランドをスタックからポップする。例えば、互換性評価サービス127は、いくつかのオペランドをスタックからポップし得、その数は、少なくとも一部、演算子に基づき判断され得る。ボックス618で、互換性評価サービス127は、演算子をオペランドに適用する。例えば、演算子が「=」であり、オペランドが「6」および「7」である場合、互換性評価サービス127は、「6」=「7」であるかを判断し得、それにより偽の結果を生成する。
ボックス612で、互換性評価サービス127は、互換性式134がさらなる項を含むかを判断する。互換性式134がさらなる項を含む場合、互換性評価サービス127は、ボックス621で、演算子結果をスタック上にプッシュし、その後、ボックス603に戻る。互換性式134がさらなる項を含まない場合、互換性評価サービス127は、ボックス624で、結果を返す。その後、互換性評価サービス127のその部分が終了する。
図7に関連して、本開示の一実施形態に従ったコンピューティング環境103の概略ブロック図が示されている。コンピューティング環境103は、1つまたは複数のコンピューティング装置700を含む。各コンピューティング装置700は、例えば、プロセッサ703およびメモリ706を有する、少なくとも1つのプロセッサ回路を含み、プロセッサ703およびメモリ706の両方は、ローカルインタフェース709に結合されている。この目的のため、コンピューティング装置700は、例えば、少なくとも1つのサーバーコンピュータまたは同様の装置を含み得る。ローカルインタフェース709は、例えば、見て分かるとおり、付随のアドレス/制御バスまたは他のバス構造を備えたデータバスを含み得る。
メモリ706に格納されているのは、データおよびプロセッサ703によって実行可能ないくつかの構成要素の両方である。具体的には、メモリ706に格納されていて、プロセッサ703によって実行可能なものは、開発者ポータルシステム118、アプリケーションインジェスチョンサービス121、アプリケーション市場システム124、互換性評価サービス127、および潜在的に他のアプリケーションである。また、メモリ706内に格納されているのは、データストア115および他のデータであり得る。加えて、オペレーティングシステムがメモリ706内に格納されて、プロセッサ703によって実行可能であり得る。
見て分かるとおり、メモリ706内に格納されて、プロセッサ703によって実行可能である他のアプリケーションがあり得ることが理解される。本明細書で説明する任意の構成要素がソフトウェアの形で実装される場合、例えば、C、C++、C#、Objective C、Java(登録商標)、JavaScript(登録商標)、Perl、PHP、Visual Basic(登録商標)、Python(登録商標)、Ruby,Delphi(登録商標)、Flash(登録商標)、または他のプログラミング言語などの、いくつかのプログラミング言語のうちの任意の1つが採用され得る。
いくつかのソフトウェア構成要素がメモリ706内に格納され、プロセッサ703によって実行可能である。この点において、用語「実行可能」は、プロセッサ703によって最終的に実行できる形式であるプログラムファイルを意味する。実行可能プログラムの例は、例えば、メモリ706のランダムアクセス部分にロードでき、プロセッサ703によって実行できるフォーマットで、機械コードに変換できるコンパイル済みプログラム、メモリ706のランダムアクセス部分にロードされ、プロセッサ703によって実行されることが可能なオブジェクトコードなどの適切なフォーマットで表現され得るソースコード、または、プロセッサ703によって実行されるようにメモリ706のランダムアクセス部分内で命令を生成するために、別の実行可能プログラムによって解釈され得るソースコードなど、であり得る。実行可能プログラムは、例えば、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、ハードドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカード、コンパクトディスク(CD)もしくはデジタル多用途ディスク(DVD)などの光ディスク、フロッピィディスク、磁気テープ、または他のメモリ構成要素を含む、メモリ706の任意の部分または構成要素内に格納され得る。
メモリ706は、本明細書では、揮発性および不揮発性のメモリおよびデータ記憶構成要素の両方を含むとして定義される。揮発性構成要素は、電源喪失時にデータ値を保持しないものである。不揮発性構成要素は、電源喪失時にデータ値を保持するものである。従って、メモリ706は、例えば、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、ハードディスクドライブ、ソリッドステートドライブ、USBフラッシュドライブ、メモリカードリーダーを介してアクセスされるメモリカード、関連付けられたフロッピィディスクドライブを介してアクセスされるフロッピィディスク、光ディスクドライブを介してアクセスされる光ディスク、適切なテープドライブを介してアクセスされる磁気テープ、および/もしくは他のメモリ構成要素、またはこれらのメモリ構成要素の任意の2つ以上の組合せを含み得る。加えて、RAMは、例えば、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)および他のかかる装置を含み得る。ROMは、例えば、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、または他の同様のメモリ装置を含み得る。
また、それぞれ、プロセッサ703は、複数のプロセッサ703を代表し得、メモリ706は、並列処理回路内で動作する複数のメモリ706を、代表し得る。かかる事例では、ローカルインタフェース709は、複数のプロセッサ703の任意の2つの間、任意のプロセッサ703とメモリ706のいずれかとの間、またはメモリ706の任意の2つの間、などの通信を容易にする適切なネットワークであり得る。ローカルインタフェース709は、例えば、負荷分散の実行を含み、この通信を調整するために設計された追加のシステムを含み得る。プロセッサ703は、電気的、または何らかの他の利用可能な構造であり得る。
開発者ポータルシステム118、アプリケーションインジェスチョンサービス121、アプリケーション市場システム124、互換性評価サービス127、クライアントアプリケーション160(図1)、および本明細書で説明する他の様々なシステムは、前述のように、ソフトウェア、または汎用ハードウェアで実行されるコードで実施され得るが、代替として、同じものが、専用ハードウェアまたはソフトウェア/汎用ハードウェアと専用ハードウェアの組合せでも実施され得る。専用ハードウェアで実施される場合、各々は、いくつかの技術のいずれか1つまたはいくつかの技術の組合せを採用する回路または状態機械として実装できる。これらの技術は、1つもしくは複数のデータ信号の適用時に様々な論理関数を実装するための論理ゲートを有する離散論理回路、適切な論理ゲートを有する特定用途向け集積回路、または他の構成要素などを含み得るが、それらに限定されない。かかる技術は一般に、当業者によって良く知られており、それ故、本明細書では詳細に説明しない。
図3〜図6の流れ図は、アプリケーションインジェスチョンサービス121、アプリケーション市場システム124、および互換性評価サービス127の部分の実施態様の機能および動作を示す。ソフトウェアで実施される場合、各ブロックは、指定された論理関数(複数可)を実装するためのプログラム命令を含むモジュール、セグメント、またはコードの部分を表し得る。プログラム命令は、コンピュータシステムまたは他のシステム内のプロセッサ703などの適切な実行システムによって認識可能な数値命令を含む、プログラミング言語で書かれた人間が可読な命令を含むソースコードまたは機械コードの形式で実施され得る。機械コードは、ソースコードなどから変換され得る。ハードウェアで実施される場合、各ブロックは、指定された論理関数(複数可)を実装するための回路またはいくつかの相互接続回路を表し得る。
図3〜図6の流れ図は、実行の特定の順序を示すが、実行順序は、示されるものとは異なり得ることが理解される。例えば、2つ以上のブロックの実行順序は、示される順序に対して混ぜられ得る。また、図3〜図6に連続して示される2つ以上のブロックは、同時に、または一部同時に実行され得る。さらに、いくつかの実施形態では、図3〜図6に示されるブロックの1つまたは複数は、スキップまたは省略され得る。加えて、任意の数のカウンタ、状態変数、警告セマフォ、またはメッセージが、強化された有用性、課金、性能測定、またはトラブルシューティング支援の提供などを目的として、本明細書で説明する論理の流れに追加され得る。全てのかかる変形は、本開示の範囲内であることが理解される。
また、ソフトウェアまたはコードを含む、開発者ポータルシステム118、アプリケーションインジェスチョンサービス121、アプリケーション市場システム124、互換性評価サービス127、およびクライアントアプリケーション160を含む、本明細書で説明する任意の論理またはアプリケーションは、コンピュータシステムまたは他のシステム内の、例えば、プロセッサ703などの、命令実行システムによる使用、または命令実行システムに関連した使用のために、任意の持続性コンピュータ可読媒体で実施できる。この意味で、論理は、例えば、コンピュータ可読媒体からフェッチして、命令実行システムによって実行できる、命令および宣言を含む、文を含み得る。本開示のコンテキストでは、「コンピュータ可読媒体」は、命令実行システムによる使用、または命令実行システムに関連した使用のために、本明細書で説明する論理またはアプリケーションを包含するか、格納するか、または保持する任意の媒体であり得る。
コンピュータ可読媒体は、例えば、磁気媒体、光媒体、または半導体媒体などの、多数の物理媒体のうちの任意の1つを含み得る。適切なコンピュータ可読媒体のさらに具体的な例は、磁気テープ、磁気フロッピィディスケット、磁気ハードドライブ、メモリカード、ソリッドステートドライブ、USBフラッシュドライブ、または光ディスクを含み得るが、それらに限定されない。また、コンピュータ可読媒体は、例えば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアクセスメモリ(DRAM)、または磁気ランダムアクセスメモリ(MRAM)を含む、ランダムアクセスメモリ(RAM)であり得る。加えて、コンピュータ可読媒体は、読取り専用メモリ(ROM)、プログラマブル読取り専用メモリ(PROM)、消去可能プログラマブル読取り専用メモリ(EPROM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、または他の同様のメモリ装置であり得る。
前述は、少なくとも、以下の例示的な付記項を含む。
付記項1.コンピュータ装置内で実行可能なプログラムを実施する持続性コンピュータ可読媒体であって、モバイルアプリケーションを開発者から取得するコード;モバイルアプリケーションに対する複数のアプリケーション要件を自動的に判断するコード;互換性式をアプリケーション要件から生成するコード;モバイル機器に関連付けられた機能のセットを取得するコード;評価結果を生成するために機能のセットに少なくとも一部基づき互換性式の評価を実行するコード;評価結果に従って、モバイルアプリケーションがモバイル機器と互換性があるかを判断するコード;およびモバイルアプリケーションをユーザーによりモバイル機器上にインストールするために取得するのを容易にするユーザーインタフェースを生成するコード;を含む、持続性コンピュータ可読媒体。
付記項2.評価結果をキャッシュするコードをさらに含む、付記項1に記載の持続性コンピュータ可読媒体。
付記項3.互換性式が後置式であり、かつ評価を実行するコードがスタックを使用して評価を実行するように構成される、付記項1に記載の持続性コンピュータ可読媒体。
付記項4.機能セット識別子をモバイル機器から取得するコードをさらに含み、機能のセットを取得するコードが、機能セット識別子に従って、機能のセットをデータストアからロードするように構成される、付記項1に記載の持続性コンピュータ可読媒体。
付記項5.少なくとも1つのコンピューティング装置;および少なくとも1つのコンピューティング装置内で実行可能な少なくとも1つのアプリケーションを備えるシステムであって、少なくとも1つのアプリケーションが:アプリケーションのセットを判断する論理;特定のクライアントと互換性のないアプリケーションを除外するためにアプリケーションのセットをフィルタ処理する論理であって、フィルタ処理する論理が、特定のクライアントに対する機能セットを判断し、アプリケーションのセットのうちの各1つに対して対応する互換性式を取得し、アプリケーションのセットの各1つが特定のクライアントと互換性があるかを判断するために機能セットを使用して対応する互換性式の評価を実行するように構成されている、アプリケーションのセットをフィルタ処理する論理;およびフィルタ処理されているアプリケーションのセットを返す論理を含む、システム。
付記項6.少なくとも1つのアプリケーションが、フィルタ処理されているアプリケーションのセットのいずれかの購入を容易にするユーザーインタフェースを生成する論理をさらに含み、特定のクライアントと互換性のないアプリケーションが、ユーザーインタフェースを通じて選択から除外されている、付記項5に記載のシステム。
付記項7.特定のクライアントと互換性のないアプリケーションが、ユーザーインタフェース内で表示されるのから除外される、付記項6に記載のシステム。
付記項8.アプリケーションのセットが、モバイルアプリケーションのセットに対応し、かつ、クライアントがモバイル機器に対応する、付記項5に記載のシステム。
付記項9.少なくとも1つのアプリケーションが、開発者提供のアプリケーションを取得する論理;開発者提供のアプリケーションに対する複数のアプリケーション要件を自動的に判断する論理;アプリケーション要件に少なくとも一部基づき、開発者提供のアプリケーションに対して対応する互換性式を自動的に生成する論理;および開発者提供のアプリケーションに関連付けられた対応する互換性式を格納する論理、をさらに含む、付記項5に記載のシステム。
付記項10.対応する互換性式を自動的に生成する論理が、複数のビジネスルールに少なくとも一部基づき、対応する互換性式を生成するように構成されている、付記項9に記載のシステム。
付記項11.フィルタ処理する論理が、評価要求のバッチを互換性評価サービスにネットワークを経由して送信するように構成されていて、互換性評価サービスが評価を実行するように構成され、評価要求の各々が、アプリケーションのセットのそれぞれ1つに対する対応する識別子および機能セットに対する識別子を指定する、付記項5に記載のシステム。
付記項12.少なくとも1つのアプリケーションが、互換性評価サービスからネットワークを経由して取得された評価要求のバッチに対する複数の応答をキャッシュする論理をさらに含み、フィルタ処理する論理が、要求を互換性評価サービスに送信する代わりに、別の評価に対してキャッシュされている応答のうちの少なくとも1つを利用するようにさらに構成されている、付記項11に記載のシステム。
付記項13.少なくとも1つのアプリケーションが、特定のクライアントから機能セットを取得する論理;機能セットが、データストア内に格納された機能セットのいずれかと一致するかを判断する論理;機能セットがデータストア内に格納されたいずれの機能セットとも一致しないという判断に応答して、その機能セットをデータストア内に格納する論理;および機能セットの識別子を特定のクライアントと関連付ける論理;をさらに含む、付記項5に記載のシステム。
付記項14.少なくとも1つのアプリケーションが、検索クエリーをユーザーから取得する論理、およびアプリケーションのセットが、検索クエリーの実行に少なくとも一部基づき、アプリケーションのセットを判断するように構成されていると判断する論理をさらに含む、付記項5に記載のシステム。
付記項15.評価が、各対応する互換性式内の複数のオペランド変数の各々に対して機能セットからそれぞれの定数を置換することを含む、付記項5に記載のシステム。
付記項16.対応する互換性式が、複数の項を含む後置式であり、フィルタ処理する論理が、スタックを使用して後置式を評価するように構成されている、付記項5に記載のシステム。
付記項17.対応する互換性式の評価が;後置式内の項の各1つに対して:項の1つが演算子かオペランドかを判断すること;項の1つがオペランドであるという判断に応答して、オペランドをスタック上にプッシュすること;項の1つが演算子であるという判断に応答して、いくつかのオペランドをスタックからポップすること;演算子をいくつかのオペランドに適用することにより結果を生成すること;および結果をスタック上にプッシュすることを含む、付記項16に記載のシステム。
付記項18.クライアントコンピューティング装置において、アプリケーションのリストに対する要求をアプリケーション市場システムに送信するステップであって、要求がクライアント識別子を含み、クライアント識別子がアプリケーション市場システムで登録されたクライアント機能のセットと関連付けられている、アプリケーションのリストに対する要求をアプリケーション市場システムに送信するステップ;クライアントコンピューティング装置において、アプリケーションのリストをアプリケーション市場システムから取得するステップであって、アプリケーションのリストがクライアント機能のセットと互換性のないアプリケーションを除外するためにフィルタ処理されている、アプリケーションのリストをアプリケーション市場システムから取得するステップ;および、クライアントコンピューティング装置において、フィルタ処理されているアプリケーションのリストを提示するように構成されたユーザーインタフェースをレンダリングするステップ;を含む方法。
付記項19.要求が、クライアントコンピューティング装置の少なくとも1つの可変機能特性をさらに含む、付記項18に記載の方法。
付記項20.少なくとも1つの可変機能特性がオペレーティングシステムのバージョンを含む、付記項19に記載の方法。
付記項21.少なくとも1つの可変機能特性が、クライアントコンピューティング装置に対する現在の無線通信事業者を含む、付記項19に記載の方法。
付記項22.クライアントコンピューティング装置において、クライアントコンピューティング装置に対するクライアント機能のセットを定期的に発見するステップ;およびクライアントコンピューティング装置において、アプリケーション市場システムで発見されているクライアント機能のセットを登録するステップ;をさらに含む、付記項18に記載の方法。
付記項23.ユーザーインタフェースが、クライアントコンピューティング装置上へのインストールのためにアプリケーションのリストのうちのいずれかの取得を容易にするように構成されている、付記項18に記載の方法。
付記項24.アプリケーションのリストが、クライアント識別子と関連付けられた機能のセットを使用して、アプリケーションのリストのうちの各1つに対する対応する互換性式を評価することによりフィルタ処理される、付記項18に記載の方法。
付記項25.要求が、アプリケーション市場システム内で実行される場合に、アプリケーションのリストを生成する検索クエリーを含む、付記項18に記載の方法。
付記項26.クライアントコンピューティング装置において、フィルタ処理されているアプリケーションのリストをキャッシュするステップ;およびクライアントコンピューティング装置において、キャッシュされているアプリケーションのリストから少なくとも1つのアプリケーションを提示するように構成された別のユーザーインタフェースをレンダリングするステップ;をさらに含む、付記項18に記載の方法。
本開示の前述した実施形態は、本開示の原理の明確な理解のために記載された実施態様の考えられる例に過ぎないことが強調されるべきである。多数の変形および修正が、本開示の精神および原理から実質的に逸脱することなく、前述の実施形態(複数可)に対して行われ得る。全てのかかる修正および変形は、本明細書で本開示の範囲内に含まれ、次の請求項によって保護されることを意図する。
関連出願の相互参照
以下の出願は、出願番号13/540,045号を有する、2012年7月2日に出願された「EVALUATING APPLICATION COMPATIBILITY」という名称の米国特許出願に対する優先権、およびその利益を主張し、それは、全体として参照により本明細書に組み込まれる。

Claims (13)

  1. 少なくとも1つのコンピューティング装置と、
    前記少なくとも1つのコンピューティング装置内で実行可能な少なくとも1つのアプリケーション
    を含み、
    前記少なくとも1つのアプリケーションによって前記少なくとも1つのコンピューティング装置、少なくとも
    アプリケーションのセットを判断
    特定のクライアントに対する機能セットを判断
    前記機能セットは前記特定のクライアントに関連する特性のセットを含み、
    アプリケーションの前記セットのうちの各1つに対して対応する互換性式を取得
    評価要求のバッチを互換性評価サービスにネットワークを経由して送信し、
    前記評価要求の各々が、アプリケーションの前記セットのそれぞれ1つに対する対応する識別子および前記機能セットに対する識別子を指定し
    前記互換性評価サービスが、
    アプリケーションの前記セットの各1つが前記特定のクライアントと互換性があるかを判断するために前記機能セットを使用して前記対応する互換性式の評価を実行する、
    ように構成されており、
    アプリケーションの前記セットをフィルタ処理して、前記特定のクライアントと互換性のないアプリケーションを除外し、
    フィルタ処理されているアプリケーションの前記セットを返す、
    システム。
  2. 前記少なくとも1つのアプリケーションによって、前記少なくとも1つのコンピューティング装置が、
    フィルタ処理されているアプリケーションの前記セットのいずれかの購入をユーザが要求することができる少なくとも1つのグラフィカルな構成要素を含むユーザーインタフェースを生成する
    ことをさらに含み、
    前記特定のクライアントと互換性のない前記アプリケーションが、前記ユーザーインタフェースを通じて選択から除外されている、
    請求項1に記載のシステム。
  3. アプリケーションの前記セットが、モバイルアプリケーションのセットに対応し、かつ、前記クライアントがモバイル機器に対応する、請求項1に記載のシステム。
  4. 前記少なくとも1つのアプリケーションによって前記少なくとも1つのコンピューティング装置が、
    前記互換性評価サービスから前記ネットワークを経由して取得された評価要求の前記バッチに対する複数の応答をキャッシュし、
    要求を前記互換性評価サービスに送信する代わりに、別の評価に対してキャッシュされている前記複数の応答のうちの少なくとも1つを利用する
    ことをさらに含む
    請求項に記載のシステム。
  5. 前記少なくとも1つのアプリケーションによって前記少なくとも1つのコンピューティング装置が、
    前記特定のクライアントから前記機能セットを取得
    前記機能セットが、データストア内に格納された機能セットのいずれかと一致するかを判断
    前記機能セットが前記データストア内に格納されたいずれの機能セットとも一致しないという判断に応答して、前記機能セットを前記データストア内に格納
    前記機能セットの識別子を前記特定のクライアントと関連付ける
    ことをさらに含む、
    請求項1に記載のシステム。
  6. 前記少なくとも1つのアプリケーションによって前記少なくとも1つのコンピューティング装置が、
    検索クエリーをユーザから取得する
    ことをさらに含み、
    前記検索クエリーの実行に少なくとも一部基づき、アプリケーションの前記セットを判断する
    請求項1に記載のシステム。
  7. 前記評価が、各対応する互換性式内の複数のオペランド変数の各々に対して前記機能セットからそれぞれの定数を置換することを含む、請求項1に記載のシステム。
  8. 前記対応する互換性式が、複数の項を含む後置式であり、
    前記互換性評価サービスが、スタックを使用して前記後置式を評価するようにさらに構成されている、
    請求項1に記載のシステム。
  9. 前記対応する互換性式の前記評価が、
    前記後置式内の前記項の各1つに対して:
    前記項の前記1つが演算子かオペランドかを判断すること、
    前記項の前記1つがオペランドであるという判断に応答して、前記オペランドを前記スタック上にプッシュすること、
    前記項の前記1つが演算子であるという判断に応答して、いくつかのオペランドを前記スタックからポップすること、
    前記演算子を前記いくつかのオペランドに適用することにより結果を生成すること、
    前記結果を前記スタック上にプッシュすること、
    を含む、
    請求項に記載のシステム。
  10. クライアントコンピューティング装置、アプリケーションのリストに対する要求をアプリケーション市場システムに送信し、
    前記要求がクライアント識別子を含み、
    前記クライアント識別子が前記アプリケーション市場システムで登録されたクライアント機能のセットに関連付けられ
    前記クライアントコンピューティング装置、アプリケーションのリストを前記アプリケーション市場システムから取得し、
    アプリケーションの前記リストがクライアント機能の前記セットと互換性のないアプリケーションを除外するためにフィルタ処理され
    前記クライアントコンピューティング装置、フィルタ処理されているアプリケーションの前記リストを提示するように構成されたユーザーインタフェースをレンダリングし、
    前記クライアントコンピューティング装置が、前記クライアントコンピューティング装置に対するクライアント機能の前記セットを定期的に発見し、
    前記クライアントコンピューティング装置が、前記アプリケーション市場システムで発見されているクライアント機能の前記セットを登録する、
    方法。
  11. 前記要求が、前記クライアントコンピューティング装置の少なくとも1つの可変機能特性をさらに含む、請求項10に記載の方法。
  12. 互換性評価サービスが、前記クライアント識別子と関連付けられた機能の前記セットを使用して、アプリケーションの前記リストのうちの各1つに対する対応する互換性式評価を実行するように構成されている、
    請求項10に記載の方法。
  13. 前記クライアントコンピューティング装置、フィルタ処理されているアプリケーションの前記リストをキャッシュ
    前記クライアントコンピューティング装置、キャッシュされているアプリケーションの前記リストから少なくとも1つのアプリケーションを提示するように構成された別のユーザーインタフェースをレンダリングする
    ことをさらに含む、請求項1に記載の方法。
JP2015520612A 2012-07-02 2013-07-01 アプリケーション互換性の評価 Expired - Fee Related JP5986312B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/540,045 US9189220B2 (en) 2012-07-02 2012-07-02 Evaluating application compatibility
US13/540,045 2012-07-02
PCT/US2013/048852 WO2014008152A2 (en) 2012-07-02 2013-07-01 Evaluating application compatibility

Publications (2)

Publication Number Publication Date
JP2015524966A JP2015524966A (ja) 2015-08-27
JP5986312B2 true JP5986312B2 (ja) 2016-09-06

Family

ID=49779671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015520612A Expired - Fee Related JP5986312B2 (ja) 2012-07-02 2013-07-01 アプリケーション互換性の評価

Country Status (7)

Country Link
US (1) US9189220B2 (ja)
EP (1) EP2867789A4 (ja)
JP (1) JP5986312B2 (ja)
CN (1) CN104641363B (ja)
CA (1) CA2878207C (ja)
IN (1) IN2014DN11110A (ja)
WO (1) WO2014008152A2 (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2475648A (en) * 2008-08-05 2011-05-25 Wms Gaming Inc Mash-up wagering game creation
US9529918B2 (en) * 2010-06-11 2016-12-27 Doat Media Ltd. System and methods thereof for downloading applications via a communication network
WO2011156605A2 (en) 2010-06-11 2011-12-15 Doat Media Ltd. A system and methods thereof for enhancing a user's search experience
US10713312B2 (en) 2010-06-11 2020-07-14 Doat Media Ltd. System and method for context-launching of applications
US9141702B2 (en) 2010-06-11 2015-09-22 Doat Media Ltd. Method for dynamically displaying a personalized home screen on a device
US9552422B2 (en) 2010-06-11 2017-01-24 Doat Media Ltd. System and method for detecting a search intent
US9424002B2 (en) 2010-12-03 2016-08-23 Microsoft Technology Licensing, Llc Meta-application framework
US9424018B2 (en) * 2011-03-21 2016-08-23 Microsoft Technology Licensing, Llc Filtering and promoting application store applications
CN102930017B (zh) * 2012-10-31 2016-08-03 百度在线网络技术(北京)有限公司 一种用于在移动终端上提供搜索结果的方法和设备
US10394540B1 (en) * 2012-11-01 2019-08-27 Time Warner Cable Enterprises Llc Software incremental loader
US9712600B2 (en) * 2012-12-06 2017-07-18 Facebook, Inc. Transmission of notifications for retrieving an application on a mobile client device
US9398100B2 (en) * 2012-12-29 2016-07-19 Ricoh Company, Ltd. Managing access of network services
US9253263B2 (en) 2012-12-29 2016-02-02 Ricoh Company, Ltd. Managing scope of network services
US20140357357A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
US20140359606A1 (en) * 2013-05-30 2014-12-04 Microsoft Corporation Bundle package retrieving
US10430779B2 (en) * 2014-04-08 2019-10-01 Capital One Services Llc Systems and methods for transacting at an ATM using a mobile device
US10228751B2 (en) 2014-08-06 2019-03-12 Apple Inc. Low power mode
US9647489B2 (en) 2014-08-26 2017-05-09 Apple Inc. Brownout avoidance
US10209973B2 (en) * 2014-09-16 2019-02-19 Salesforce.Com, Inc. Private application distribution mechanisms and architectures
US10708391B1 (en) 2014-09-30 2020-07-07 Apple Inc. Delivery of apps in a media stream
US10231033B1 (en) 2014-09-30 2019-03-12 Apple Inc. Synchronizing out-of-band content with a media stream
US11226940B2 (en) * 2015-03-16 2022-01-18 Oracle International Corporation Adapting data for changes to data attributes
US9965604B2 (en) 2015-09-10 2018-05-08 Microsoft Technology Licensing, Llc De-duplication of per-user registration data
US10069940B2 (en) 2015-09-10 2018-09-04 Microsoft Technology Licensing, Llc Deployment meta-data based applicability targetting
US10623514B2 (en) 2015-10-13 2020-04-14 Home Box Office, Inc. Resource response expansion
US10656935B2 (en) * 2015-10-13 2020-05-19 Home Box Office, Inc. Maintaining and updating software versions via hierarchy
US10698740B2 (en) 2017-05-02 2020-06-30 Home Box Office, Inc. Virtual graph nodes
KR102166336B1 (ko) * 2017-05-15 2020-10-15 삼성전자주식회사 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
US10817307B1 (en) 2017-12-20 2020-10-27 Apple Inc. API behavior modification based on power source health
US11363133B1 (en) 2017-12-20 2022-06-14 Apple Inc. Battery health-based power management
US11640429B2 (en) 2018-10-11 2023-05-02 Home Box Office, Inc. Graph views to improve user interface responsiveness
CN112101571A (zh) * 2020-09-25 2020-12-18 北京百度网讯科技有限公司 用于监控深度学习框架下的算子兼容性的方法和装置
US20220138839A1 (en) * 2020-10-29 2022-05-05 Texas Instruments Incorporated Design Resources
WO2023145187A1 (ja) * 2022-01-31 2023-08-03 住友電気工業株式会社 ソフトウェア更新システム、通信装置、及び更新情報のデータ構造、ソフトウェア更新方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6615253B1 (en) 1999-08-31 2003-09-02 Accenture Llp Efficient server side data retrieval for execution of client side applications
AU2003220423A1 (en) * 2002-03-22 2003-10-13 Sun Microsystems, Inc. Mobile download system
US7143241B2 (en) * 2002-08-06 2006-11-28 Hewlett-Packard Development Company, L.P. Cache management in a mobile device
JP2004246693A (ja) * 2003-02-14 2004-09-02 Canon Inc ソフトウェアインストール方法及び情報処理システム
US7676802B2 (en) * 2003-07-23 2010-03-09 Nokia Corporation System, and associated method, for downloading an application
WO2005015935A1 (en) * 2003-08-07 2005-02-17 Pervenio Limited Server for determining and storing mobile device capability data
US7523112B2 (en) * 2004-02-19 2009-04-21 Research In Motion Limited System and method for searching a remote database
US8732696B2 (en) * 2004-09-30 2014-05-20 Sap Aktiengesellschaft Analytic application model and marketplace
US7650349B2 (en) * 2005-01-05 2010-01-19 Microsoft Corporation Prescribed navigation using topology metadata and navigation path
WO2006110979A1 (en) * 2005-04-18 2006-10-26 Research In Motion Limited Implementing data-compatibility-based version scheme
US7913081B2 (en) * 2005-06-09 2011-03-22 Red Hat, Inc. Dynamic certification of components
US8229914B2 (en) * 2005-09-14 2012-07-24 Jumptap, Inc. Mobile content spidering and compatibility determination
WO2007121571A1 (en) 2006-04-21 2007-11-01 Cirba Inc. Method and system for determining compatibility of computer systems
US8595186B1 (en) * 2007-06-06 2013-11-26 Plusmo LLC System and method for building and delivering mobile widgets
US20090037287A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Software Marketplace and Distribution System
US8392889B2 (en) * 2007-10-18 2013-03-05 Trendium, Inc. Methods, systems, and computer program products for real time configuration and analysis of network based algorithmic service objectives
US8634796B2 (en) * 2008-03-14 2014-01-21 William J. Johnson System and method for location based exchanges of data facilitating distributed location applications
US8639267B2 (en) * 2008-03-14 2014-01-28 William J. Johnson System and method for location based exchanges of data facilitating distributed locational applications
US20110173235A1 (en) * 2008-09-15 2011-07-14 Aman James A Session automated recording together with rules based indexing, analysis and expression of content
US20100088367A1 (en) * 2008-10-08 2010-04-08 Research In Motion Limited Mobile wireless communications device and system providing dynamic management of carrier applications and related methods
US8340635B2 (en) * 2009-03-16 2012-12-25 Apple Inc. Capability model for mobile devices
US8725745B2 (en) * 2009-04-13 2014-05-13 Microsoft Corporation Provision of applications to mobile devices
US20100262953A1 (en) * 2009-04-14 2010-10-14 Barboni Michael P Systems and methods for automatically enabling and disabling applications and widgets with a computing device based on compatibility and/or user preference
JP5316363B2 (ja) * 2009-10-20 2013-10-16 ソニー株式会社 情報処理装置、機能管理方法、コンピュータプログラム及び情報処理システム
US20110264642A1 (en) * 2010-04-26 2011-10-27 Microsoft Corporation Dynamic computation engine in search stack
US8396759B2 (en) * 2010-06-18 2013-03-12 Google Inc. Context-influenced application recommendations
US8689208B2 (en) 2010-06-24 2014-04-01 Microsoft Corporation Upgrade management of application components
JP2012014444A (ja) * 2010-06-30 2012-01-19 Ntt Docomo Inc 配信サーバ、携帯端末装置、システム、及び方法
US20110029881A1 (en) * 2010-10-11 2011-02-03 Nevolution Digital, Llc Devices and methods for providing software programs compatible with a computer system for download by a user
US8359016B2 (en) * 2010-11-19 2013-01-22 Mobile Iron, Inc. Management of mobile applications
US9104992B2 (en) 2010-12-17 2015-08-11 Microsoft Technology Licensing, Llc Business application publication
US20120233605A1 (en) * 2011-03-07 2012-09-13 Microsoft Corporation Application Compatibility Leveraging Successful Resolution of Issues
US9424018B2 (en) * 2011-03-21 2016-08-23 Microsoft Technology Licensing, Llc Filtering and promoting application store applications
US8707289B2 (en) * 2011-07-20 2014-04-22 Google Inc. Multiple application versions
US20130166417A1 (en) * 2011-12-21 2013-06-27 Sebastian Pulkowski Company Store
US8713560B2 (en) * 2011-12-22 2014-04-29 Sap Ag Compatibility check

Also Published As

Publication number Publication date
EP2867789A4 (en) 2016-02-24
JP2015524966A (ja) 2015-08-27
WO2014008152A2 (en) 2014-01-09
US20140007057A1 (en) 2014-01-02
CN104641363B (zh) 2018-06-01
IN2014DN11110A (ja) 2015-09-25
CA2878207A1 (en) 2014-01-09
US9189220B2 (en) 2015-11-17
EP2867789A2 (en) 2015-05-06
CA2878207C (en) 2018-03-27
WO2014008152A3 (en) 2014-03-20
CN104641363A (zh) 2015-05-20

Similar Documents

Publication Publication Date Title
JP5986312B2 (ja) アプリケーション互換性の評価
US20230362228A1 (en) Bidirectional mapping between applications and network content
US11176600B2 (en) Method and system for building a product finder
US10810563B1 (en) Payments portal
US9483388B2 (en) Discovery of application states
KR102006396B1 (ko) 브라우징 액티비티에 기초하여 정합 애플리케이션을 식별하는 기법
US10791375B2 (en) Method and system to provide video-based search results
US20170177317A1 (en) Dependency-Aware Transformation of Multi-Function Applications for On-Demand Execution
US20140137100A1 (en) Method and system for installing shortcut through mobile application
US10878392B2 (en) Control and access of digital files for three dimensional model printing
US9317607B2 (en) Executing a fast crawl over a computer-executable application
CN108153848B (zh) 轻应用数据的搜索方法、设备及电子设备
US11561966B2 (en) Method and system for implementing data associations
CN106257418B (zh) 用于通过使用辅助应用来评价应用的技术
CN110442815A (zh) 页面生成方法、系统、装置及计算机可读存储介质
US20140379925A1 (en) Apparatus and method for interworking between app store servers to share application information
US9503551B2 (en) Hybrid native networked applications
CN111131419A (zh) 基于书籍页面的信息推送方法及服务器
US11907387B2 (en) Service for sharing data insights
US8862984B1 (en) Data contracts for network page generation code
US8234307B1 (en) Determining search configurations for network sites
WO2019047677A1 (zh) 一种应用下载来源的监测方法及装置
KR101517674B1 (ko) 복수의 키워드 추출 기법들을 이용하는 광고 노출 방법 및 광고 제공 장치
KR101608244B1 (ko) 유무선 네트워크를 이용하여 사용자의 요청에 따른 데이터를 확장하여 제공하기 위한 방법 및 시스템
EP3001311A1 (en) Method for automatically converting web applications into application that can be installed automatically on a plurality of platforms

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160426

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160804

R150 Certificate of patent or registration of utility model

Ref document number: 5986312

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees