JP2015035216A - アプリケーションプログラムサーチの方法及びそのシステム - Google Patents

アプリケーションプログラムサーチの方法及びそのシステム Download PDF

Info

Publication number
JP2015035216A
JP2015035216A JP2014160757A JP2014160757A JP2015035216A JP 2015035216 A JP2015035216 A JP 2015035216A JP 2014160757 A JP2014160757 A JP 2014160757A JP 2014160757 A JP2014160757 A JP 2014160757A JP 2015035216 A JP2015035216 A JP 2015035216A
Authority
JP
Japan
Prior art keywords
application program
search
app
server
data
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.)
Granted
Application number
JP2014160757A
Other languages
English (en)
Other versions
JP5859074B2 (ja
Inventor
修平 林
Shuhei Hayashi
修平 林
齊人 呉
Chi-Jen Wu
齊人 呉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
FIISER Inc
Original Assignee
FIISER Inc
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 FIISER Inc filed Critical FIISER Inc
Publication of JP2015035216A publication Critical patent/JP2015035216A/ja
Application granted granted Critical
Publication of JP5859074B2 publication Critical patent/JP5859074B2/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2101Auditing as a secondary aspect
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices
    • H04W88/182Network node acting on behalf of an other network entity, e.g. proxy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】アプリケーションプログラムサーチの方法及びそのシステムの提供。
【解決手段】本発明は一種のアプリケーションプログラム(或いはApp)サーチの方法を提供する。本方法中、一つ或いは複数のアプリケーションプログラムがスケジューラーのスケジュール策略に基づき実行され、スケジュールのアプリケーションプログラムが実行された後、これらのアプリケーションプログラムが発生するアプリケーションプログラムデータが収集並びに保存される。続いて、サーチ命令を受け取った後、保存されたアプリケーションプログラムデータに対してサーチを実行し、これらアプリケーションプログラムデータが保存したアプリケーションプログラムデータ中の、該サーチ命令と関係する情報を発送する。
【選択図】図1

Description

本発明は一種のアプリケーションプログラムに係り、特に一種の、サーチエンジンサービスを提供し、必要とするアプリケーションプログラムをサーチする方法及びそのシステムに関する。
サーチエンジンは人々がオンラインで情報をサーチするときに重要なツールであり、モバイルアプリケーション(以下、Appと称する)も、スマートフォンの使用の広がりにより普及してきた。今日、Appは予めモバイルデバイスに搭載されるか、インターネットを通してダウンロードされる。たとえば、アップル社の「App Store」、グーグル社の「Google Play」或いは騰訊社の「bao.myapp.com」等のアプリケーションプログラム公布プラットフォーム(以下、App商店と称する)は、いずれもユーザーがその興味のあるAppをブラウズしダウンロードするのに供され得る。App商店は通常、App部門を分類しており、並びに伝統的なサーチツールを提供してユーザーがキーワードでその興味のあるAppをサーチできるようにしている。Appのタイトル及びコンテンツの記述は通常開発者により提供され、App商店の伝統的なサーチツールは、これらAppのタイトル及びコンテンツ記述をチェックし、ユーザーが入力したキーワードに合致するかを対比する。一般に、App商店によっては、ウェブページインタフェースを提供し、開発者がそのAppのタイトル及びコンテンツの記述をアップロード及び編集できるようにしており、たとえば、Google Playの「Edit Application」とApp Storeの「Manage Your Apps」がある。
Appと関係のある静態データ(たとえばAppのタイトル或いはコンテンツの記述)以外にも、あるAppがインストールされ並びに実行されるとき、それが生成するデータ(以下、アプリケーションプログラムデータと称する)は動態の性質を有し得る。具体的に言うと、一つのAppがあるモバイル装置において実行されるとき、それは各種のトリガメカニズムによりアプリケーションプログラムデータを発生し得て、たとえば、ユーザーの行為はそのうちの一例である。たとえば、もし気象Appを利用して天気予報をサーチしようとし、ユーザーがAppインタフェースを介してその選択した地点を入力すると、気象Appは関係するデータ、たとえば、この例中の該地点の天気予報のデータを送出する。言い換えると、アプリケーションプログラムデータはユーザーの操作により動態の性質とされ、且つこれらのアプリケーションプログラムデータはAppと関連する一つ或いは複数のアプリケーションプログラムサーバーより来るか、或いはApp自身より発生する。
上述したように、App商店中の伝統的なサーチツールは、キーワードを使用して静態データに対してサーチを行なうことしかできず、そのサーチ範囲はアプリケーションプログラムデータにまで延伸されることはない。言い換えると、伝統的なサーチツールは、並びに、Appと関係するアプリケーションパッケージファイル(application package file)に対してサーチを行なうことはできず(たとえば、apkファイル或いはipaファイル)、またユーザーが電子装置上で実行するか実行完了したAppが発生するアプリケーションプログラムデータに対してサーチを行なうことはできない。これが意味することは、その他のユーザーはAppが発生するアプリケーションプログラムデータを見つけるか或いはサーチすることができないが、これらのアプリケーションプログラムデータはその他のユーザーにとっては価値のある情報である可能性がある、ということである。
本発明は一種のサーチアプリケーションプログラム或いはAppのシステムを提示する。このシステムは、一つ或いは複数のアプリケーションプログラム、一つ或いは複数のサーバー、一つ或いは複数のスケジューラー、一つ或いは複数のデータベース、一つ或いは複数のコンピュータプログラム及び一つ或いは複数のサーチエンジンを包含する。これらのサーバーは、これらアプリケーションプログラムを実行するのに用いられる。これらスケジューラーはスケジュール策略に基づきこれらサーバーをスケジュールしてこれらアプリケーションプログラムを実行する。これらコンピュータプログラムはこれらアプリケーションプログラムのアプリケーションプログラムデータを収集するのに用いられ、並びにアプリケーションプログラムデータをこれらデータベース中に保存する。これらサーチエンジンはサーチサービスを提供して、コンピュータプログラムにより収集されるか、或いはデータベース中に保存されたアプリケーションプログラムデータを具えたアプリケーションプログラムを探し出すのに用いられる。
本発明は一種のアプリケーションプログラムサーチの方法を提供する。この方法中、一つ或いは複数のアプリケーションプログラムはスケジュール策略に基づきスケジューリングが実行され、続いて、該スケジュール策略に基づきこれらアプリケーションプログラムが実行され、これらアプリケーションプログラムのアプリケーションプログラムデータが収集され、並びに収集されたアプリケーションプログラムデータは保存され、その後、一つのサーチ命令を受け取ると、その保存したアプリケーションプログラムデータがサーチされ、さらに、このたびサーチにより探し出されたアプリケーションプログラムデータに対応するアプリケーションプログラムの情報が発送される。
本発明は一種のアプリケーションプログラムサーチの方法を提供する。この方法中、少なくとも一つのアプリケーションプログラムがスケジュール策略に基づきスケジューリング実行され、続いて、これらアプリケーションプログラムが実行されて、これらアプリケーションプログラムからのアプリケーションプログラムデータか、該アプリケーションプログラムに結合されたデータ収集モジュール及び又はこれらアプリケーションプログラムに結合されたアプリケーションサーバーからのアプリケーションプログラムデータが収集される。収集されたアプリケーションプログラムデータは保存され、その後、サーチ指令が受け取られることで、その保存するアプリケーションプログラムデータがサーチされ、さらにこの度サーチにより探し出されたアプリケーションプログラムデータに対応するアプリケーションプログラムの情報が送出される。
本発明は一種のアプリケーションプログラムサーチの方法を提供する。この方法中、一つ或いは複数のアプリケーションプログラムサーバーのアプリケーションプログラムからのアプリケーションプログラムデータは収集され、収集されたデータは保存され、その後、サーチ指令を受け取ることで、保存されたデータはサーチされ、さらにこの度サーチにより見つけ出されたデータに対応するアプリケーションプログラムの情報が発送される。
本発明のある実施例において、アプリケーションプログラムデータを通してAppをサーチするネットワークシステムの概念図である。 本発明のある実施例において、アプリケーションプログラムデータを通してAppをサーチするネットワークシステムの構造表示図である。 本発明のある実施例による、データ構造表示図である。 本発明のある実施例による、データ構造表示図である。 本発明のある実施例による、データ構造のロジック表である。 本発明のある実施例による、データ構造のロジック表の一列の表示図である。 本発明のある実施例において、アプリケーションプログラムデータを通してAppをサーチするネットワークシステムの構造表示図である。 本発明のある実施例において、アプリケーションプログラムデータを通してAppをサーチするネットワークシステムの構造表示図である。 本発明のある実施例において、アプリケーションプログラムデータを通してAppをサーチするネットワークシステムの構造表示図である。 本発明のある実施例において、アプリケーションプログラムデータを通してAppをサーチするネットワークシステムの構造表示図である。 本発明のある実施例において、データ収集構造を具えたシステム構造表示図である。 本発明のある実施例において、データ収集代理プログラムがサーバーに設定されネットワークとの間でアプリケーションプログラムデータがフェッチ(fetch)或いはキャッシュされるシステム構造表示図である。 本発明のある実施例において、サーバー中で使用されて各一つのAppをランナー API(runner API)とパッケージするためのラッパー(Wrapper)を具えたシステムの構造表示図である。 本発明のある実施例において、スーパーマネージャーモジュールを具えてサーバーを助けるシミュレート機器を具えてAppを実行するシステム構造表示図である。 本発明のある実施例において、ロボットモジュールが図4A中の一つの脚本、第3モジュール、第2モジュール、及び第1モジュールに整合されたシステム構造表示図である。 本発明のある実施例において、スケジューラーがApp実行を補助するシステムの構造表示図である。 本発明のある実施例において、App安全検査モジュールを具えてアプリケーションプログラム或いはAppの安全性を検査するシステムの構造表示図である。 本発明のある実施例において、ユーザーインターフェースの例の表示図である。 本発明のある実施例において、ユーザーインターフェースの例の表示図である。 本発明のある実施例において、ユーザーインターフェースの例の表示図である。 本発明のある実施例において、ユーザーインターフェースの例の表示図である。 本発明のある実施例において、ユーザーインターフェースの例の表示図である。 本発明のある実施例において、アプリケーションプログラムサーチエンジンが提供するサービスのユーザーインターフェースの例の表示図である。 本発明のある実施例において、アプリケーションプログラムサーチエンジンが提供するサービスのユーザーインターフェースの例の表示図である。 本発明のある実施例において、アプリケーションプログラムサーチエンジンが提供するサービスのユーザーインターフェースの例の表示図である。 本発明のある実施例において、単一の仮想マシン或いは複数の仮想マシンを使用して一つ或いは複数のAppを実行する表示図である。 本発明のある実施例において、単一の仮想マシン或いは複数の仮想マシンを使用して一つ或いは複数のAppを実行する表示図である。 本発明のある実施例において、単一の仮想マシン或いは複数の仮想マシンを使用して一つ或いは複数のAppを実行する表示図である。 本発明のある実施例において、単一の仮想マシン或いは複数の仮想マシンを使用して一つ或いは複数のAppを実行する表示図である。 本発明のある実施例において、単一の仮想マシン或いは複数の仮想マシンを使用して一つ或いは複数のAppを実行する表示図である。 本発明のある実施例において、単一の仮想マシン或いは複数の仮想マシンを使用して一つ或いは複数のAppを実行する表示図である。 本発明のある実施例において、単一の仮想マシン或いは複数の仮想マシンを使用して一つ或いは複数のAppを実行する表示図である。 本発明のある実施例において、単一の仮想マシン或いは複数の仮想マシンを使用して一つ或いは複数のAppを実行する表示図である。 一つのデータ収集モジュールを使用してユーザーレベルでアプリケーションプログラムデータをフェッチ(fetch)或いは切り取るオペレーティングシステムの概念図である。 一つのデータ収集モジュールを使用してコアレベルでアプリケーションプログラムデータをフェッチ(fetch)或いは切り取るオペレーティングシステムの概念図である。 図7A〜図7H中の代理プログラムを使用してデータ収集モジュールのタスクを実行する例の表示図である。 図7A〜図7H中の代理プログラムを使用してデータ収集モジュールのタスクを実行する例の表示図である。 図7A〜図7H中の代理プログラムを使用してApp関係のデータ/コンテンツをフェッチ(fetch)或いは切り取るフローチャートである。 スケジューラー動作のフローチャートである。 仮想マシン管理者動作のフローチャートである。
以下に本発明の詳細な実施例を図を参照して説明する。各図中の同じ符号は同じ或いは類似の物品を代表する。
図1は本発明の実施例のシステムの概念図である。このシステムは、一つのサーバー集団100(或いはクラウド)、アプリケーションプログラムサーバー200、第1ユーザー10及び第2ユーザー20を包含し得る。そのうち、任意の二つがネットワーク30を通して連結されて通信でき、このネットワーク30は、インターネット或いはハニカム式ネットワークとされ得るが、これに限定されるわけではない。この実施例中、サーバー集団は複数のサーバーを包含し得て(たとえば、図1中のサーバー100a〜100d)、各サーバーは本発明の少なくとも一部分のタスク、プロセス或いはステップを実行するのに用いられ、並びに単独、順番、並行或いは組み合わせ式動作によりシステムの効率を高める。サーバー集団100中の任意のサーバーは、これに限定されるわけではないが、プロセッサ、メモリモジュール、通信ポート、及びデータベースの保存装置を包含する。図2はサーバー集団の一つの例である。
図1、図4A及び図4Bを参照されたい。サーバー100aはネットワークアプリケーションプログラムサーバーとして配置され得て(以下にネットワークアプリケーションプログラムサーバー100aと称する)、並びにサーバー100b(以下にアプリケーションプログラムサーチエンジンサーバー100bと称する)に接続され、第1ユーザー10及び第2ユーザー20にサービスする。ネットワークアプリケーションプログラムサーバー100aの主要な機能は、ユーザーに向けてネットワーク関連ツールを提供することにあり、たとえば、ユーザーにウェブページインタフェースでサーチ要求を入力することを許可する。アプリケーションプログラムサーチエンジンサーバー100bの主要な機能は、サーチエンジンサービスを提供して、アプリケーションプログラムデータをサーチすることにある。そのうち、アプリケーションプログラムデータは、以下に限定されるわけではないが、ワード、属性、記述、シリアルナンバー、マーカー、統計値、履歴、ハイパーリンク、ファイルパス、音声、映像、及びその他の任意のサーチ形式とされ得る情報及びその組み合わせとされ得る。
ネットワークアプリケーションプログラムサーバー100aは、第1ユーザー10のスクリーン131或いは第2ユーザー20のスクリーン231上で、サーチフィールド或いはサーチボタン502を提供でき(或いはネットワークブラウザを通して表示される)、第1ユーザー10或いは第2ユーザー20がアプリケーションプログラムサーチエンジンサーバー100bの提供するサーチツールにアクセスできるようにする。ユーザーはサーチフィールドでサーチ内容を入力してサーチを起動できる。この技術領域における通常の知識を有する者であれば、この実施例中で指すサーチ内容が、一つ或いは複数のキーワード、図面、映像ストリーム、音声、或いはその組み合わせとされ得ることは理解できる。たとえば、ユーザーはタイピングするか或いは発音することで一つ或いは複数の文字をサーチフィールド502中に入力できる。或いは、サーチボタン502を押して、図面、画像或いは音声形式のファイルをサーチすることができる。
図4Aを参照されたい。Appはアプリケーションプログラムサーチエンジンサーバー100b或いは第1ユーザー10にインストールされる。該Appがインストールされ、実行され並びに動作するとき、該Appはそれ自身がどのように操作されるかにより対応するアプリケーションプログラムデータを発生(或いは獲得)する。アプリケーションプログラムデータはアプリケーションプログラムサーバー200より提供され得るほか、App自身により発生してもよい。アプリケーションプログラムデータが該Appより発生するかアプリケーションプログラムサーバー200より提供された後、アプリケーションプログラムサーチエンジンサーバー100bはこれらアプリケーションプログラムデータを収集できる。
図4Fを参照されたい。データ収集代理サーバー610は、サーバー(たとえばアプリケーションプログラムサーチエンジンサーバー100b)とネットワーク30の間で使用されて、本発明のある実施例中のアプリケーションプログラムデータをフェッチ(fetch)及び又はキャッシュする。もしデータ収集代理サーバー610が第2ユーザー20よりサーチリクエストを受け取ったなら、それが前もって保存した現地キャッシュが互いに一致するアプリケーションプログラムデータを有しているか否かを検査する。もし互いに一致するアプリケーションプログラムデータを探し出せたら、データ収集代理サーバー610はデータを第2ユーザー20に送り、別にサーチリクエストをアプリケーションプログラムサーチエンジンサーバー100bに発送する必要はない。
図1及び図4Aを参照されたい。アプリケーションプログラムデータはネットワークアプリケーションプログラムサーバー100a或いはアプリケーションプログラムサーチエンジンサーバー100bのデータベース中に保存され、図2及び図4Aも併せて参照されたいが、並びに文字列或いはバイナリコードの形式で保存される。これらの収集されたアプリケーションプログラムデータは、ネットワークアプリケーションプログラムサーバー100a或いはアプリケーションプログラムサーチエンジンサーバー100bにSQL、C、C++等のプログラミング言語を組み合わせて管理、アクセス或いはサーチされ、さらにその他のデータ管理ツールを使用して上述の操作を行なうことができる。ある例においては、データベース中の文字列或いはバイナリコードは一つのサーチリクエストに基づきサーチされる。また別の例においては、データベース中のデータフラグメントが一つ或いは複数の唯一キー(たとえば、一つのマスターキー)と関連づけられ、且つ特定のデータフラグメントが、これらのキー(Key)がサーチされるときに探し出される。アプリケーションプログラムデータがデータベースに保存される前に、アプリケーションプログラムデータは先に複数個に分類されて整理され、且つ各分類類別と複数のキーワードと関連づけられる(たとえば、「ホテル」及び「コテージ」等のキーワードは「旅行」の分類と関連づけられる)。同一の類別に属するデータは、保存時に一組のキー、たとえば、順序性或いは関連性を有するコードに連結され、それはたとえば、単数列、偶数列、同じ数字の開始/末尾、特定桁数が同じ数字を有する、等の特殊コードでもよい。アプリケーションプログラムサーチエンジンサーバー100bが一つのサーチリクエストに基づき関係するアプリケーションプログラムデータをサーチする時、該サーチに一致するキーワードに関連づけられたキーが最も先に選択され、続いて、データベース中の選択されたキーと対応するアプリケーションプログラムデータがサーチされ、今回のサーチに関係する内容がサーチされる。注意すべきことは、アプリケーションプログラムデータはまたその他のサーチエンジン技術を使用して収集及び保存され得て、上述のモデルに限定されるわけではない、ということである。ある例においては、アプリケーションプログラムデータは一つの編集テーブル(たとえばBig Table)或いはHadoop構造下の一つのHadoopファイルシステムに保存され得る。図3Cは一つの編集テーブル3000であり、図3Dは編集テーブル3000中の一列320を表示する。ここにおいて、アプリケーションプログラムデータは、各種のタブレットサーバー(たとえば、BigTable タブレットサーバー、図示せず)によりアクセスされ得る複製ファイルシステム中のタブレット(Tablet)320−324に保存される。タブレットに対する更新は、いずれも共有ファイルシステム中のトランザクションログに記録され、前述のこの例では、タブレット320−324中に保存されたデータは変更不可であり(すなわち、データは編集テーブル3000に書き込まれた後、永遠に不変である)。別の例においては、更新を許可するため、比較的新しいデータはRAMに保存され、古いデータは編集テーブル3000中の一系列のファイル内に保存される。
図1及び図4Bを参照されたい。別の例において、アプリケーションプログラムデータは一つの独立して運行されるデータベース888’に保存され得る。このデータベース888’はネットワークアプリケーションプログラムサーバー100a或いはアプリケーションプログラムサーチエンジンサーバー100bにSQL、C、C++等のプログラミング言語或いはその他のデータ管理ツールを組み合わせて管理され得る。データベース888’に保存されたアプリケーションプログラムデータはアプリケーションプログラムサーチエンジンサーバー100bによりサーチされ得る。
本技術領域の通常の知識を有する者であれば、前述のサーチ機能がいずれもネットワークアプリケーションプログラムサーバー100a或いはアプリケーションプログラムサーチエンジンサーバー100bにより単独で提供され得ることは理解できることである。これにより、ネットワークアプリケーションプロセス及びサーチ機能は必ずしも二つの異なるサーバー上に分けて置かれて実施されなければならないわけではない。さらに述べると、このような機能はPaaS、IaaS、SaaS等のクラウド演算技術により実現され得る。
図1を参照されたい。別の例において、サーバー集団100はさらにサーバー100c(以下にデータベース管理サーバー100c)を包含し、それは、第1データベースとされるか、或いはそれと接続された第2データベース(図示せず)に対してデータベース管理のサービスを提供し、該第2データベースはアプリケーションプログラムデータを保存するのに用いられる。たとえば、第2データベースはストレージエリアネットワーク(SAN)中に存在し得て、データベース管理サーバー100cはこのストレージエリアネットワーク中に位置する第2データベースをコントロールできる。第1或いは第2データベースに保存されたアプリケーションプログラムデータはSQL、C、C++等のプログラミング言語或いはその他のデータ管理ツールにより管理され得て、言い換えると、データベース管理サーバー100cが本発明が提示する方法を実行する時、データベース管理サーバー100cは、第1或いは第2データベースをコントロールできる)。
別の実施例において、もしアプリケーションプログラムデータがイメージ、映像、オーディオビデオファイル或いはテキストファイルであれば、それはネットワークアプリケーションプログラムサーバー100aの保存装置(図示されず)、アプリケーションプログラムサーチエンジンサーバー100bの保存装置19(図2を参照されたい)、データベース管理サーバー100cの保存装置(図示されず)、或いはこれらのサーバー100a、100b、100cと接続された保存装置19(図4Bを参照されたい)の中に保存され得る。これらのデータに対応するファイル名称、タイトル、記述或いはマーカー(図3A或いは図3Bを参照されたい)は、すなわち、文字列でネットワークアプリケーションプログラムサーバー100a或いはアプリケーションプログラムサーチエンジンサーバー100bのデータベース中に保存されるか、或いは前に言及された第1データベース或いは第2データベース中に保存され、サーチに供される。
ある例において、これらのイメージ、映像、オーディオビデオファイル或いはテキストファイルに対応する文字列はまた、ファイルパスを有し、並びに同時にデータベースに保存され、このファイルパスはデータの所在位置を表示できる。たとえば、サーバー集団100はさらに、サーバー100d(以下にファイル管理サーバー100dと称する。図1を参照されたい)を包含し、それはサーバー100a、100b、或いは100dと接続され、ファイル管理のサービスを行なう。サーチのキーワードが文字列と一致すれば、すなわち、該文字列に対応するファイルがサーチ結果とされ得る。このとき、データベース中で探し出された文字列とキーワードは互いに一致し、対応するファイルは、そのパスにより探し出される。
この技術領域の通常の知識を有する者であれば、前述のサーバー100a、100b及び又は100cもファイル管理のサービスを有し得て、それにより保存装置或いはNAS(Network Attached Storage)設備を管理できることは、理解できることである。
別の例において、複数のサーバーは並行作業できるように配置され、それによりサーバー集団100が拡大され、ネットワーク上の大量のクライアントに対してサービスを提供できる。ここで、前述のサーバーに接続された保存装置及びデータベースも併せて拡大され得る。
さらに述べると、サーバー100a、100b、100c及び100dのデータ流量或いはこれらサーバーが提供するサービスは、一つのロードバランシングモジュール或いはロードバランシングサーバー(図示されず)によりコントロールされ得る。本技術領域の通常の知識を有する者であれば、本発明の方法がサーバー集団100中のサーバー数量を制限しないことを理解できる。
別の例において、一つの単一のサーバーがネットワークのサーバー側に配置されて、前述の全てのタスクとプロセスを実行し、このような単一サーバーは、アプリケーションプログラムデータの数量が比較的小さく、サーバー動作を必要とするタスクが比較的簡単な状況では、図1に示されるようなサーバー集団100の代わりに使用される。
別の実行可能な方式によると、サーバー100a〜100dに動態でその役割を交換させる。サーバー集団100中の各サーバーはそのタスク、プロセス或いはステップを交換でき、並びにシステムの完全性を維持できる。
第1ユーザー10はコンピュータ装置上で動作するAppを実行でき、これにより関係するアプリケーションプログラムサーバー或いはクラウドよりアプリケーションプログラムデータを取得する。このコンピュータ装置は、これに限定されるわけではないが、スマートフォン10a、タブレット或いはタブレットPC 10b(まとめてモバイル装置と称する)、ノートブック型コンピュータ10c、パーソナルコンピュータ10d、スマートテレビジョン、テレビゲーム機、車用コンピュータ或いはドライブレコーダーとされ得る。同様に、第2ユーザー20も、上述の装置を使用して同じAppを操作できる。本技術領域における通常の知識を有する者であれば、Appは並びに必ずしもマニュアル操作されてアプリケーションプログラムデータを取得しなければならないわけではなく、自動実行の機器、コンピュータプログラム或いはロボットとされてAppを実行又は操作する方式に設定できる。
図2はアプリケーションプログラムサーチエンジンサーバー100b、アプリケーションプログラムサーバー200、第1ユーザー10及び第2ユーザー20を包含するシステムを提示する。そのうちのアプリケーションプログラムサーチエンジンサーバー100bは、以下に限定されるわけではないが、メモリ12、データパス14、メモリコントローラー16、通信ポート17、プロセッサ18及び保存装置19を包含し得る。ある例において、保存装置19はデータベース888を包含するか、或いは保存装置19はサーバーシステムの外部に設置されるが、アプリケーションプログラムサーチエンジンサーバー100bと接続されている。
第1ユーザー10或いは第2ユーザー20はそれぞれメモリ139或いは239、データパス160或いは260、メモリコントローラー137或いは237、プロセッサ135或いは235、保存装置118或いは218、周辺装置134或いは234、アシステッドグローバルポジショニンスシステム(Assisted Global Positioning System,AGPS)モジュール132或いは232、RF(Radio Frequency)モジュール140或いは240、入出力システム133或いは233、スクリーン131或いは231、及び入力モジュール或いは入力装置138或いは238を包含し得る。そのうち、該入出力システム133或いは233はディスプレイコントローラー133a或いは233a、及び入力コントローラー133b或いは233bを包含する。該スクリーン131或いは231はユーザーインターフェース131a或いは231aを表示できる。ある例においては、保存装置118或いは218は、それぞれコンピュータリーダブル媒体(computer−readable medium)118a或いは218aを包含する。別の例においては、保存装置118或いは218はコンピュータリーダブル媒体と見なされ得る。
仮想マシンは、オペレーションシステムを演算環境においてインストール並びに実行する一種のソフトウエア実現(software implementation)であり、それは通常、実体シミュレートの演算環境に用いられるが、中央処理装置、メモリ、ハードディスク、ネットワーク及びその他のハードウエアリソースに対するリクエストは仮想化レイヤー(Virtualization Layer)により管理され、この仮想化レイヤーは、前述のリクエストを実体ターゲット物品へと翻訳する。仮想マシンは仮想化レイヤー(たとえばクライアント側或いはサーバーのオペレーションシステムにおいて運行される一つのハイパーバイザー(hypervisor)或いはバーチャライズプラットフォーム)中において創造され得て、またすなわち、仮想マシンはホストオペレーションシステム(Host OS)の上の仮想化レイヤーの中で運行する。仮想化レイヤーは多種類の、それぞれ別の、孤立した仮想マシン環境において用いられ得る。オペレーションシステムとソフトウエアが直接実体ハードウエアにインストールされるのに較べると、仮想マシンは多種類の優れた点を有しており、たとえば、その孤立性は仮想マシン上で実行されるアプリケーションプログラムとサービスがホストオペレーションシステム或いはその他の仮想マシンの干渉を確実に受けないようにする。また、仮想マシンは、削除、複製、及び各ホストサーバーの間での新たな分配が容易で、ハードウエアリソースを有効利用できるようにする。
Appは第1ユーザー10により実行されてアプリケーションプログラムデータを発生するのみならず、それは、本発明のシステム中のサーバー或いは仮想マシン上で実行されてアプリケーションプログラムデータを発生できる。Appはシステム限定の特徴を有し、すなわち、特定のAppは僅かに特定形式のオペレーションシステム上で実行可能であり、このAppの実行を成功させるためには、オペレーションシステムを限定する情報の存在について知る必要がある。ある例においては、サーバー(たとえばアプリケーションプログラムサーチエンジンサーバー100b)がAppのオペレーションシステムを限定する情報を取得でき、これにより本発明のシステムはどのような環境がこのAppを実行できるかを了解できる。
別の例において、たとえば図4Gに示される例のように、サーバー(たとえばアプリケーションプログラムサーチエンジンサーバー100b)はラッパー(Wrapper)630を使用して各App(或いはAppのパッケージ)を、ランナーAPI(runner API)とパッケージする。ランナーAPIの補助の下で、サーバーはAppのオペレーションシステム限定の情報を取得し、本発明のシステムにどのような環境でこのAppを実行できるかを了解させることができる。
別の例において、ランナーAPIは直接使用されてサーバー或いは複数の仮想マシンがAppのオペレーションシステム限定の情報を取得するのを補助し、本発明のシステムにどのような環境がこのAppを実行できるかを了解させることができる。
図4Hに示されるように、別の例において、ハイパーバイザーモジュール640がサーバー(たとえばアプリケーションプログラムサーチエンジンサーバー100b)により、Appを実行する仮想マシンの数量をコントロールするのに利用される。たとえば、ハイパーバイザーモジュール640は、仮想マシンの生成、削除、起動或いは起動解除が行なえる。このハイパーバイザーモジュール640は、仮想マシンリソースを管理する一つの管理ツールとされて、Appの実行をより効率的となすことができる。
別の例において、ハイパーバイザーモジュール640は、一種のカーネルベース仮想マシン(kernel−based virtual machine,KVM)とされ、それは異なるオペレーションシステムの複数の仮想マシンを、そのイメージファイルを変更しない状況下で同期して作動させるのに用いられる。カーネルベース仮想マシン(KVM)の補助により、異なる仮想マシン上で、異なるオペレーションシステムを有するカスタマイズ作動環境が同期して提供される。
アプリケーションプログラムデータはアプリケーションプログラムサーバー200或いはApp自身により提供され、並びにデータベース888に保存され、第2ユーザー20はユーザーインターフェース231aを通してアプリケーションプログラムデータに対してサーチする。こうして、アプリケーションプログラムサーチエンジンサーバー100bはサーチを実行し並びにサーチ結果を第2ユーザー20に伝送する。
本技術領域における通常の知識を有する者であれば、前述のシステム中の部品、モジュール或いは装置は、一つのモジュール或いはシングルチップ中に整合され得ることが分かる。このほか、アプリケーションプログラムサーチエンジンサーバー100b中のサーバーシステム中、第1ユーザー10及び第2ユーザー20は、ネットワーク30を介して相互に交流できる。さらに述べると、サーバー100a、100c或いは100d中のサーバーシステムは、図2に示されるものと同じ構成要素、モジュール或いは装置を包含し得る。
[データベース]
図3A及び図3Bには、本発明のある例中のデータベース888或いは888’のデータ構造の例が提示されている。この例中において、データベース888或いは888’は一つの関連データベースである。図3Aを参照されたい。データ構造は、以下に限定されるわけではないが、App 1の名称を保存する第1フィールド300−1、App 1のIDを保存するための第2フィールド300−2、App 1のファイル名称或いはパッケージ名称を保存する第3フィールド300−3、App 1の位置を保存する第4フィールド300−4、コンテンツテーブルIDを保存する第5フィールド300−5、App 1のダウンロード回数を保存する第6フィールド300−6、或いはApp 1の推薦回数を保存する第7フィールド300−7を包含する。このほか、図3Bには第3A中の、第5フィールド300−5に保存されるコンテンツテーブルIDの一例が提示されている。本技術領域における通常の知識を有する者であれば、図3A及び図3B中の一部フィールドは選択的であることが分かる。
別の例において、データベース888或いは888'のデータ構造は、図3C及び又は図3Dに示される編集テーブル3000及び又はHadoopファイルシステムとして構築され得る。そのうち、Hadoopファイルシステム或いは編集テーブル3000中の各データはそれぞれキーバリューペア(Key−Value Pair)或いはキーデータペア(Key−Data Pair)とされ、図3D中において、Appの名称”Joseph’s App”がデータに対応するキーとされているようである。
[アプリケーションプログラムサーチエンジン]
図4Aには、本発明のある例中において、アプリケーションプログラムデータサーチに用いられるシステムを提示している。図4Aに示されるように、このシステムは、アプリケーションプログラムサーチエンジンサーバー100b、第1ユーザー10及びアプリケーションプログラムサーバー200を包含する。アプリケーションプログラムサーバー200は、App 1とコミュニケートして、静態データのみならず動態及び又はリアルタイムデータを提供できる。この例において、アプリケーションプログラムサーチエンジンサーバー100bは、仮想マシン400、ネットワークアプリケーションプログラム500、アプリケーションプログラムサーチエンジン600及び保存装置19を包含する。仮想マシン400はAppのホスティング(hosting)可能なオペレーションシステムシミュレート環境とされ、言い換えると、Appは仮想マシン400上で、モバイル装置上と同様に実行され得る。
別の例において、ベアコンピュータ方法がサーバー100b或いは100c中でホスティングAppに応用される。ベアコンピュータ方法を応用するとき、プログラム(図示せず)がサーバー100b或いは100cとホスティングAppの間のインタフェースとされ、それはホスティングAppからのシステムコール(system call)をマシンコードに翻訳し、並びにマシンコードを直接サーバー100b或いは100cに送り、こうしてサーバー100b或いは100c(或いはアプリケーションプログラムサーバー200)とホスティングAppの間の全ての通信(たとえば発送リクエスト、アプリケーションプログラムデータの受信等)を処理する。
ある例において、App1のアプリケーションプログラムパッケージはアプリケーションプログラムサーバー200或いはその他のデータ位置(図示せず、一例としては、たとえばApp Store 或いはGoogle Play等アプリケーションプログラム商店)よりダウンロード可能で、アプリケーションプログラムサーバー200或いはこれらのその他のデータ位置はアプリケーションプログラムパッケージを保存可能であるか、このアプリケーションプログラムパッケージのダウンロードリンクを提供する。
ある例において、仮想マシン400は、アプリケーションプログラムパッケージを仮想マシン400にインストールするために用いられる第1モジュール(或いはプログラム)402を包含する。ここにおいて、仮想マシン400はさらに、App1を実行するための第2モジュール(或いはプログラム)404を具えている。第2モジュール404は連続して或いは周期的にApp1を実行できる。ある例において、もし一つより多くのApp1が仮想マシン400で作動するなら、第2モジュール(或いはプログラム)404はそれ自身が設定する策略或いは規則により、順に、ランダムに、或いは並行して全てのAppを実行する。
ある例において、仮想マシン400は、さらに、App1を分析或いは実行するための第3モジュール(或いはプログラム)406を包含する。このモジュールはApp1がどのようにアプリケーションプログラムサーバー200と通信するかを決定する。たとえば、第3モジュール406はApp1が提供する異なる機能、及び、これらの機能がどのように実行され対応するアプリケーションプログラムサーバー200よりアプリケーションプログラムデータを取得するかを検査できる。この分析により、スクリプト(script)405を編集し、自動的に、システムがApp1を実行し、アプリケーションプログラムデータを発生する。
図5A〜図5EはApp1のユーザーインターフェースの例である。この例において、図5B中に示される物品(たとえば、90−1)が接触されるかクリックされるとき、App1は関係するアプリケーションプログラムサーバー200に向けてデータリクエストの機能を提供できる。ここにおいて、第3モジュール406は該ユーザーインターフェースを分析し、物品90−1〜90−5の位置及び機能を武運席し、スクリプト405は実行されてApp 1のユーザーの行為、たとえば、物品90−1に対する接触或いはクリックをシミュレートし、アプリケーションプログラムサーバー200に向けてデータをリクエストする。もう一つの例では、第3モジュール406がApp1を分析するとき、スクリプト405をアプリケーションプログラムサーチエンジンサーバー100b(或いは第3モジュール)に書き込む。さらにまた別の例では、スクリプト405はアプリケーションプログラムサーチエンジンサーバー100bの保存装置19に保存可能であり、並びにApp1が分析されるとき、スクリプト405は第3モジュール406に伝送される。
別の実施例において、図4Iに示されるように、スクリプト405、第3モジュール406、第2モジュール404及び第1モジュール402はロボットモジュール650に整合される。ロボットモジュール650は人類行為をシミュレートするのに用いられ、真実の人類と同様にAppを実行できる。また別の実施例では、ロボットモジュール650は人類ユーザーの命令を監視及び記録して、どのようにAppを操作するかを学習又は記録する。たとえば、ロボットモジュール650はユーザーの入力記録を監視してそのこのAppを操作する行為の特徴を学習又は記録する。また別の実施例では、ロボットモジュール650は画像認識演算法を利用してAppのグラフィックユーザーインターフェース(GUI)を分析できる。
別の例において、画像認識演算法は、光学文字認識(optical character recognition,OCR)演算法を包含し、OCR演算法を使用するとき、AppのGUI及びその中のキー、ワード、ラインセグメント、ページ及びウインドウ等の物品は分析され認識され、並びにこれにより、ロボットモジュールにより特定の操作動作が実行される。
別の例では、ロボットモジュールはランダムサーチ演算法を利用してGUIを分析し、ランダムサーチ演算法はロボットモジュールが随時サーチする(たとえば、ユーザーインターフェース上の任意の位置の任意の入力イベントたとえば、タッチ、クリック、スライド、ドラッグ等)か、Appを起動するGUIを随時サーチし、たとえば、ランダムの方式でスクリーン上の画素においてGUIをサーチ或いは起動する。もしGUIの特定の画素或いは画素位置が、このランダムサーチ演算法に基づきアプリケーションプログラムデータを発生するなら、すなわち、ロボットモジュールはマシン学習方法(machine learning manner)等の方式を利用してこの分析を学習し並びに記録する。
仮想マシン400はさらに第4モジュール(或いはプログラム)408を包含し、それはアプリケーションプログラムデータをデータベース888或いは保存装置19(或いはアプリケーションプログラムサーチエンジンサーバー100bに接続されたその他の任意の保存装置)に保存するのに用いられる。
本発明の別の実施例は以下のとおりである。App1は第2モジュール404により仮想マシン400において実行され、仮想マシン400中の第3モジュール406はApp1を分析するのに用いられる。続いて、スクリプト405が実行されてApp1が活動を発生し、この活動は、アプリケーションプログラムサーバー200よりアプリケーションプログラムデータをリクエストすることを包含し、これにより、発送されたアプリケーションプログラムデータはデータベース888に収集並びに保存される。このほか、App 1自身もアプリケーションプログラムデータを発生可能で、App自身より発生したアプリケーションプログラムデータはデータベース888に収集並びに保存される。これから分かるように、アプリケーションプログラムサーチエンジンに収集され保存されたアプリケーションプログラムデータは、アプリケーションプログラムサーバー200が伝送したデータとされ得るほか、App1自身が発生したデータとされ得る。本発明のこの実施例においては、遠方ユーザー20が、ユーザーインターフェース131aのフィールド502を介してサーチ命令を入力し、並びにサーチボタン(或いはサブミッションキー)522を押すと、該サーチ命令に関係するデータに対するサーチリクエストが発生する。アプリケーションプログラムサーチエンジン600が該サーチリクエストを受け取ると、データベース888中で、サーチリクエストに関係するアプリケーションプログラムデータに対してサーチが実行される。もし関係するデータが見つけ出されれば、アプリケーションプログラムサーチエンジン600は該データ、関係Appのリスト、一つ或いは複数の、これら関係Appと関連を有するデータリンク、或いは一つ或いは複数の、これら関係Appと関連を有するアプリケーションプログラムパッケージのダウンロードリンクのサーチ結果を発生する。続いて、ネットワークアプリケーションプログラム500がサーチ結果を遠方ユーザー20に伝送する。
図6A〜図6Cには一部サーチ結果の例が提示されている。アプリケーションプログラムサーチエンジン600が一つより多くの関係アプリケーションプログラムデータを探し出す。これらアプリケーションプログラムデータのリンクは、これらアプリケーションプログラムデータのAppのダウンロードパス、或いはアプリケーションプログラムデータ自身を包含し、すなわち、それがダウンロードされるか、推薦されるか或いは評価の数字により(或いはこれら数字により演算された順序値の大小)により表示され並びに順に配列される。ある例において、図3A或いは図3Bを参照されたいが、これらのダウンロード、推薦或いは評価された数字もデータベース888に保存され、アプリケーションプログラムサーバーからのアプリケーションプログラムデータもまた保存装置19中に保存されてアプリケーションプログラムサーチエンジン600によるサーチに供される。
図4Bは本発明の別の実施例を提示する。図4B中のネットワークは図4A中のネットワークと類似しているが、その違いは仮想マシン400がモバイルオペレーションシステム中においてサーバー100eをシミュレートすることだけである。このサーバー100eはアプリケーションプログラムサーチエンジンサーバー100b内に配置されたアプリケーションプログラムサーチエンジン600の外に分離されている。別の例においては、複数のサーバーが単一モバイルオペレーションシステムシミュレートサーバー100eとして使用され(以下に、複数のモバイルオペレーションシステムシミュレートサーバーと称する)、複数のAppを実行するか或いは複数のアプリケーションプログラムサーバーからの大量のアプリケーションプログラムデータを処理するとき、それはより良好な表現を発生することができる。
ある例においては、ネットワークアプリケーションプログラム500は、ネットワークアプリケーションプログラムサーバー100a中に配置され、このネットワークアプリケーションプログラム500は、アプリケーションプログラムサーチエンジンサーバー100b内に配置されたアプリケーションプログラムサーチエンジン600の外に配置されている。より効率的に大量のユーザーにサービスできるように、複数のサーバーが一つの単一のネットワークアプリケーションプログラムサーバー100a(以下、複数のネットワークアプリケーションプログラムサーバーと称する)或いは単一のアプリケーションプログラムサーチエンジンサーバー100b(以下、複数のアプリケーションプログラムサーチエンジンサーバーと称する)に整合される。上述の複数のネットワークアプリケーションプログラムサーバー或いは複数のアプリケーションプログラムサーチエンジンサーバーは、一つ或いは複数のロードバランスサーバーが前端に組み合わされることで、ユーザーのサーチリクエストをより良好に処理できる。より効率的に保存容量を利用し、及び保存装置或いはデータベースにアクセス或いはサーチするときにより速い反応時間を達成できるように、図4A中に示されるアプリケーションプログラムサーチエンジンサーバー100b中の保存装置19は、アプリケーションプログラムサーチエンジンサーバー100bの外に設置された保存装置19xに置換され得て、この保存装置19xはすなわち、アプリケーションプログラムサーチエンジンサーバー100bに接続される。ある例において、保存装置19xは図4A中に示されるアプリケーションプログラムサーチエンジンサーバー100bが有する保存装置19よりも、大きな容量を有する。別の例において、複数の保存装置19xはアレイ形式を以て配置され、これによりより大きな容量を、モバイルオペレーションシステムシミュレートサーバー100e或いはアプリケーションプログラムサーチエンジンサーバー100bの使用に供する。別の例において、保存装置19xはファイル管理サーバー100d中に配置され得る。
同様に、図4A中のデータベース888は図4B中のデータベース888’に置換され得る。データベース888’はデータベース管理サーバー或いは保存装置19xに接続される。ある実施例において、データベース888’は複数のデータベースが整合されてなる単一データベースであり、より速い反応時間を有し得る。
図4Cは本発明のある例中の別の種類のネットワーク実施例を示す。アプリケーションプログラムパッケージはモバイルオペレーションシステムを搭載した演算装置5000において実行され得る。このほか、演算装置5000はコンピュータオペレーションシステムを搭載して、たとえば、ネットワークApp、拡充素子とプラグインなどのアプリケーションプログラムをホスティングできる。ある例において、第1ユーザー10がApp1を操作するとき、App 1はアプリケーションプログラムサーバー200に向けてアプリケーションプログラムデータをリクエストするか或いはそれ自身よりデータを発生することができる。アプリケーションプログラムサーチエンジンサーバー100bは前述のアプリケーションプログラムデータを収集し、並びにアプリケーションプログラムサーチエンジンサーバー100bに接続された保存装置中に保存する。ある例においては、演算装置5000はスマートフォン10a、タブレットPC10b、ノートブック型コンピュータ10c或いはパーソナルコンピュータ10dとされ得る。
別の例において、アプリケーションプログラムサーチエンジンサーバー100bは、さらに仮想マシン400を包含し得て、この仮想マシン400は、モジュール/プログラム404を包含して演算装置5000上でApp 1を実行する。別の実施例において、仮想マシン400は一つのモジュール406を包含し、スクリプト405を作動し演算装置5000上でApp 1を実行する。スクリプト405は保存装置内に保存されるか、モジュール406内に嵌め込まれる。モジュール406はまたアプリケーションプログラムデータを保存装置19に保存するか、或いはその他のアプリケーションプログラムサーチエンジンサーバー100bに接続された保存装置中に保存するのに用いられ得る。
図4Dは本発明の一つの例中のもう一種のネットワーク実施例を提示する。アプリケーションプログラムデータはアプリケーションプログラムサーバー200或いは第1ユーザー10より直接アプリケーションプログラムサーチエンジンサーバー100bに伝送され、アプリケーションプログラムサーチエンジンサーバー100bはデータを保存装置19或いはその他の保存装置に保存する。別の例においては、アプリケーションプログラムサーバー200は、直接アプリケーションプログラムデータを保存装置に伝送し、並びにアプリケーションプログラムデータが該保存装置中に保存されるようにする。アプリケーションプログラムサーチエンジンサーバー100bはこの保存装置をサーチして、サーチ命令に関係するデータを探し出す。
図4Dに示される実施例は、Appを実行する必要なく、アプリケーションプログラムサーバーよりアプリケーションプログラムデータを取得でき。たとえば、プログラムを使用してアプリケーションプログラムサーバー200にビルトイン或いは接続し、本発明中のアプリケーションプログラムサーバー200に、それが保存しているアプリケーションプログラムデータを移転或いは提出させる。このプログラムはアプリケーションプログラムサーバー200と通信できるスクリプト或いは任意のソフトウエアコードとされる。アプリケーションプログラムサーバー200中のアプリケーションプログラムデータは移転され得る。アプリケーションプログラムサーチエンジンサーバー100bはユーザーサーチ命令を受け取ると、保存装置中のサーチ命令と関係のあるデータをサーチする。本技術領域の通常の知識を有する者であれば、本発明はここに提示されている例に限定されず、その他の方法で、Appを実行しない条件下で、アプリケーションプログラムサーバー200よりデータを収集することができ、これらの方法も本発明の及ぶ範囲の内にある。たとえば、アプリケーションプログラムサーチエンジンサーバー100bにプログラムをビルトインして、アプリケーションプログラムサーバー200よりアプリケーションプログラムデータにアクセス及び又は取得することができる。ここにおいて、該プログラムは、ただアプリケーションプログラムサーバーのURL/URIを知るだけで、アプリケーションプログラムサーバー200よりアプリケーションプログラムデータを受け取ることができる。別の例においては、アプリケーションプログラムサーチエンジンサーバー100bのようなサーバーが、スクリプトを実行してApp1を分析し、関係するアプリケーションプログラムサーバー200がどれか或いはどこにあるかを判断し、これによりアプリケーションプログラムデータにアクセスするかそれを取得する。
上述の実施例中、図4Eに示されるように、データ収集モジュール或いは構造3000が、アプリケーションプログラムサーチエンジンサーバー100bに配置されて、アプリケーションプログラムサーバー200より直接伝送されたアプリケーションプログラムデータを分析並びに処理する。該データ収集構造3000はAppの機能をシミュレートでき、これにより、アプリケーションプログラムサーバー200が提供するアプリケーションプログラムデータを処理並びに理解できる。たとえば、もしアプリケーションプログラムサーバー200が伝送するアプリケーションプログラムデータが分離したパッケージであれば、該データ収集構造は、データパッケージを収集し並びにそれを処理して意義を有するアプリケーションプログラムデータとなしてサーチされ得るようにする。さらに述べると、データ収集構造もアプリケーションプログラムデータを分析して、必要なアプリケーションプログラムデータを認識し並びに不必要な部分を排除することができ、また、これらのアプリケーションプログラムデータを分類或いは組み合わせることもできる。
ここで述べるプログラム或いはモジュールは、前述のサーバー中のプロセッサ(たとえばアプリケーションプログラムサーチエンジンサーバー100b中のプロセッサ18)により実行される。プログラム或いはモジュールのレジスタファイルは、プロセッサのキャッシュ又はサーバーのメモリ(たとえば、アプリケーションプログラムサーチエンジンサーバー100b中のメモリ12)中に保存され得る。しかし、本技術領域の通常の知識を有する者であれば、本発明中のプログラム或いはモジュールはまた実体物品、たとえば、一つのチップ或いは一つの回路とされ得ることを理解できる。
[Webクローラ/スパイダー]
ある例において、Webクローラ(スパイダー)がアプリケーションプログラムパッケージ、アプリケーションプログラムデータ、Appと関係する情報(たとえば記述)或いはアプリケーションプログラムリンクを収集するのに用いられる。アプリケーションプログラムサーチエンジンサーバー100b或いはオペレーションシステムシミュレートサーバー100eはWebクローラが収集したAppをダウンロードでき、並びにサーバー集団100がこれらのAppを実行する。
[情報サーチ]
情報サーチシステムがアプリケーションプログラムサーバー或いはApp自身が提供するアプリケーションプログラムデータ上において応用され得て、サーチリクエストに応答する。その目的は、データをオーガナイズ並びに編成して意義のある分類となしてサーチ効率をアップすることにある。
[Appブラウザ]
Appは遠方サーバー或いはクラウドにおいて実行可能で、且つアプリケーションプログラムサーバーからのアプリケーションプログラムデータはクライアント側に伝送されてAppブラウザ上に表示され得る。ユーザーはAppブラウザを通してAppを操作でき、現地でAppをインストールする必要がない。
[アプリケーション例]
図5Aから図5Eは、本発明の一例中のAppのユーザーインターフェースの例が示される。図5A中、Appは一つの、通常イメージを包含するウェルカム画面(或いは起動ページ)988を具え、このウェルカム画面988はAppが起動或いはオンされた後に表示される。
図5Bから図5Eを参照されたい。このユーザーインターフェースはコンテナー(container)900を有し、コンテナー900中に表示される内容は変化可能で、且つその選択したタブ(Tab)(たとえば、コンテナー900底部のタブ918、920、922及び924)に基づき定められる。たとえば、図5Bに示されるのは、コンテナー900の、タブ918が選択されたときのページレイアウトである。レイアウトは、動作バー或いは横幅926(さらにユーザーにログインさせるAppのリンクを包含し得る)、背景或いは広告910(たとえば、ビデオ、アニメーション、フラッシュのスライド背景等)を包含する。物品90−1から90−5は選択性を有するイメージ90−1pから90ー5pを包含し得る。ある例においては、物品90−1から90−5はネットワークアプリケーションプログラムサーバーに接続され、HTTP方法を利用してアプリケーションプログラムサーバーより動態、即時性のアプリケーションプログラムデータ(たとえば、「POST http://example.com/apiPurpose.php」或いは「GET http://example.com/apiPurpose.php?mode=GetData&ID=C00001」等「POST」、「GET」方法」をフェッチ(fetch)する。ここで、Appがアプリケーションプログラムサーバーに向けてアプリケーションプログラムデータをリクエストするとき、アプリケーションプログラムサーバーはJSON形式或いはXML形式で応答し、たとえば、{"status"OK,"result":{"name":"Happy Cafe","display":"1","addr":"3F.,No.18-6,Jinhua St.,Taipei,Taiwan,R.O.C","desc":"This is the Introduction of Happy Cafe","shophours":"0800-2200","openweek":"0111110","shoptel";"886-33433997","shopurl": "http://anotherexample.com","shopimage":[{"http://example.com/images/90-1p.jpg"}]}})。本発明のある例において、アプリケーションプログラムサーバーがフェッチ(fetch)するアプリケーションプログラムデータは、ワンビュー(one view)アプリケーションプログラムのリンク、アプリケーションプログラムデータのリンク、アプリケーションプログラムパッケージのダウンロード可能なリンク、及びApp或いはアプリケーションプログラムデータと関係のある文字、イメージ、ビデオ及び音声を包含し得る。
[アプリケーションサーチエンジンが提供するユーザーインターフェースの例]
図6Aから図6Cは本発明の別の例において、ネットワークアプリケーションプログラムサーバー100a或いはアプリケーションプログラムサーチエンジンサーバー100bがユーザー(たとえば第2ユーザー)に提供するユーザーインターフェースの例を示す。図6Aから図6Cのユーザーインターフェースは、コンピュータ、ノートブック型コンーピュータ、タブレットコンピュータ、スマートフォン或いはその他のモバイル装置のスクリーンに表示され得る。図6Aを参照されたい。キーワードと関係のあるAppはサーチ結果として、そのアプリケーションプログラムアイコン2104、2108或いは2112、及びアプリケーションプログラム名称或いは記述2106、2110或いは2114を表示可能である。図6Bを参照されたい。サーチ結果はリスト形式でApp内容2118、2120或いは2112をリストアップするか、或いはこれらの内容のリンクを表示する。図6Cを参照されたい。サーチ結果は、マップ2124上に表示可能で、たとえば、サーチ結果のアプリケーションプログラムアイコン2104、2108及び2112が、このマップ2124に表示される。
[ネットワークApp、拡充素子とプラグイン]
ネットワークApp、拡充素子とプラグインに基づく動作方法は、Appに類似し、本発明はまた、これにより一種のアプリケーションプログラムサーチの方法を提示する。既知のネットワークApp、拡充素子とプラグインは、スマートデバイス或いは演算装置(たとえばパーソナルコンピュータ)上で実行され、パーソナルコンピュータ上でアプリケーションプログラムを作動させるとき、これらのアプリケーションプログラムのユーザーは、指定されたアプリケーションプログラムサーバーを通し、これらアプリケーションプログラムサーバーにてタスクを実行すると同時に通信する。たとえば、Chromeブラウザの拡充素子「The Weather Channel」を使用するとき、この拡充素子はユーザーの所在位置(或いはユーザーにより入力されるその所在位置)を獲得し、続いて、この拡充素子に接続されたアプリケーションプログラムサーバーが、前述の所在位置の天気予報をユーザーのコンピュータ上のブラウザに伝送する。この部分のメカニズムはAppユーザーがアプリケーションプログラムサーバーに向けてデータをリクエストするのに類似する。
[スケジュール]
スケジューラーはさらに本発明のシステムを応用し、スケジューラーの主要な機能は、Appの実行方式を按配し決定することにある。スケジューラーは本発明中で実施される任意のサーバー或いはデータベースのスクリプト、コード或いはプログラムとされ得る。スケジューラーはスケジュールサーバー、仮想マシン或いはロボットモジュールとされ得て、それはスケジュール策略に基づきAppを実行する。
ある実施例において、一つ或いは複数のスケジューラーが仮想マシン或いはサーバーが実行するAppを調整するのに用いられる。別の実施例において、スケジューラーはロボットモジュールがAppを実行するのに用いられる。スケジューラーの本発明中の用途は、効率的にシステムリソースを分配及び利用し、それにより全体のシステム性能を高める目標を達成することにある。たとえば、図4J中、スケジューラー660はAppを実行できるように、それは協調サーバー(たとえば、アプリケーションプログラムサーチエンジンサーバー100b)、第1ユーザー10の電子装置、ネットワーク30、アプリケーションプログラムサーバー200及び第2ユーザー20の電子装置に用いられ得る。またたとえば、スケジューラー660はシステム部品の要求に基づき、たとえば、必要なリソース量、作動中のタスク数、待機時間、優先順序、データ相互依存性等により、協調する。スケジューラー660はまた、本発明において提示されている例中のサーバー(たとえば、アプリケーションプログラムサーチエンジンサーバー100b)中に設置可能である。
スケジューラーはスケジュール策略に基づいて、システム中の複数の構成要素に対してスケジュールを実行する。スケジュール策略は、Appの実行方式を定義し、たとえば、該策略は、規則を構築してAppが、ロボットモジュール、仮想マシン或いはサーバーに実行される順序を規定する。スケジュール策略はまた、Appの実行頻度を定義し、システムにAppが実行される回数及び毎回の間隔時間を知らせ、それはさらに、Appの実行時刻、頻度、優先順序及び実行時間長さを管理する。スケジュール策略は、データベース中に保存され得る(たとえば、データベース888或いは888’)。
ある例において、スケジューラーは、ロボットモジュール、仮想マシン或いはサーバーの負荷が比較的低いときに、Appの実行頻度を増加する。反対に、スケジュール策略はまた、スケジューラーが負荷が比較的高いときに実行頻度を減らすものとされ得る。
Appの実行上の順序と優先権も、スケジュール策略により定義され、たとえば、スケジュール策略は、FIFOスケジュール演算法、最短作業優先スケジュール演算法、優先権スケジュール演算法、循環スケジュール演算法、マルチレイヤーキュースケジュール演算法、マルチレイヤーフィードバックキュースケジュール演算法及び又はリアルタイムスケジュール演算法を包含し得る。システムの条件及びリソースを了解し、並びにAppのタイプ及び特性を確認することは、どのようなスケジュール演算法がより適合するかを判断する助けとなる。たとえば、スケジュール策略は動態で、ステータス(status)を各Appに分派し、Appの実行上の優先順序を決定する。特に、最初にAppを実行した後、各Appのアイドル時間或いは消耗時間は記録され、それによりスケジューラーが該ステータスに基づき、動態でAppの実行順序を切り換える。
スケジュール策略は、人工知能或いは手動の方式で発生する。人工知能の方式において、スケジューラーはハイレベル知能を有してAppの特性を学習し、Appの特性は、Appの実行頻度或いはタイプ等(たとえば、分類)を包含し得る。Appのタイプ或いは分類を学習することは、スケジューラーが該Appの実行頻度を決定するのを助ける。たとえば、ニュース類のAppは、ゲーム類のAppよりも、より高い実行頻度が必要とされ、なぜなら、ニュース類のAppは、通常、頻繁に内容が更新されるためである。これにより、もしニュース類Appが実行されるなら、ロボットモジュール、仮想マシン或いはサーバーのいずれに実行されようと、スケジューラーはいずれも動態でその実行上の頻度或いは優先順序をアップする。反対に、スケジューラーは動態で明らかに更新の少ないAppの実行頻度或いは優先順序を下げてもよい。
手動の方式では、スケジュール策略は、手動の方式で入力される。たとえば、システムの管理者は、手動でAppの実行順序、優先権或いは頻度を命令することができる。
[App安全検査モジュール]
開発者とユーザーにとって、モバイルソフトの安全は、すでに今日の重要な議題となっている。市場のAppの数量が拡大するにつれ、Webクローラが見つけ出すAppが安全でウイルスを有さないようにするため、信頼できる安全検査方法が必要である。
ある実施例において、たとえば、図4Kに示される例のように、App安全検査モジュール670が配置され、それは、複数の安全レベルに基づき、ソフトウエアアプリケーションプログラム或いはAppの安全性を検査する。さらに正確に述べると、アプリケーションプログラムの処理要求により、異なる安全レベルを定義し、且つ特定安全レベルにマッチしないアプリケーションプログラムサーバー200をブロックするのに用いることができる。本発明の例において、App安全検査モジュール670は仮想マシン400の外に設置されて、サーバー(アプリケーションプログラムサーチエンジンサーバー100b)の内に位置する。
別の実施例において、App安全検査モジュール670は、Appに対する安全認証を提供し、Webクローラを通して取得したAppは、App安全検査モジュール670によりそれが各種の異なる安全レベル、たとえば、レベル1、レベル2、レベル3、レベル4及びレベル5の、これら5つの安全レベルの一つをパスできるかを検査する。
App安全検査モジュール670は、各一つの安全レベル中において、一組の安全認証メカニズムを包含する。安全認証メカニズムは、通信認証、APIコールのリストと追跡により、悪意のプログラムを検出し、及び悪意のシステム行為を検出する。
[単一/複数の仮想マシンのメカニズム]
前述の図面(たとえば、図4A〜図4K)中、一つのスケジューラーを具えた単一の仮想マシンが、Appを実行するのに用いられるが、その他の実施例中においては、複数の仮想マシンが同一のサーバー上で、複数のAppを同時に実行するのに用いられ得る。これにより、これらAppのアプリケーションプログラムデータは本発明に提示されるサーバー中において同時に発生し、処理され及び又は保存され得る。
図7A〜図7Hは、本発明の実施例において、単一の仮想マシン或いは複数の仮想マシンを使用しAppを実行するのを示す。
図7Aに示されるように、凡例システム700中には、サーバー701及び一つ或いは複数のアプリケーションプログラムサーバー201、202を包含する。サーバー701及びアプリケーションプログラムサーバー201、202は、ネットワーク30を介して、接続/通信できる。アプリケーションプログラムサーバー201、202は、アプリケーションプログラムサーバー200と類似の機能を有する。アプリケーションプログラムサーバー201、202は、それぞれ異なるAppのアプリケーションプログラムデータを分配処理するか、同じAppの異なる実行役とされる。たとえば、アプリケーションプログラムサーバー201は、App「App kk」の開発者がApp kkと関係するアプリケーションプログラムデータを特定分配処理し、アプリケーションプログラムサーバー201は、App「App jj」の開発者がApp jjと関係するアプリケーションプログラムデータを特定分配処理する。ネットワーク30はサーバー701aとアプリケーションプログラムサーバー201、202の間のデータ伝送の媒介の役割を演じる。
サーバー701aは、図4A〜図4Kに示されるサーバー100bに基づき設計され、余分の機能を有するものとされてもよい。サーバー701aはスケジューラー710、仮想マシン管理者720、保存装置740、ラッパー750、アプリケーションプログラムパッケージ保存モジュール760及び一つ或いは複数の仮想マシン88、89を具え得る。サーバー701はまた、選択的に、配置可能なソフトウエアデファインドネットワーク(SDN)730を包含し得る。
仮想マシン管理者720は、スケジューラー710の作用下で、仮想マシン88、89を管理するのに用いられる(たとえば、一つの「Ctrl sm5」の命令が仮想マシン89をコントロールし、一つの「Ctrl sm4」の命令が仮想マシン88をコントロールする。仮想マシン管理者720はサーバー701a中の仮想マシンの発生、削除、起動及び又は終了を管理できる。たとえば、Appがサーバー701a上で起動するとき、スケジューラー710は仮想マシン管理者720に命令してサーバー701aにあって一つの新たな仮想マシンを発生させてこのAppを処理させる。別の実施例において、Appがサーバー701a上で終了するとき、スケジューラー710は仮想マシン管理者720に命令してサーバー701a中の、前述の終了したAppを処理するのに用いられる仮想マシンを削除或いはクローズさせることができる。仮想マシン管理者720はスケジューラー710のスケジュール策略に基づいて動作する。
一部の実施例において、仮想マシン管理者720は前述のロボットモジュールの一部分として実施され得る(たとえば、図4I中の、ロボットモジュール650の一部分)。
本発明の一部の実施例中、スケジューラー710はプログラムコード或いはスクリプトの形式でサーバー701a中に保存され得る。
ある例において、ラッパー750が複数の入力イベント(input event)及び又はAppの作動指示に用いられ、該Appを直接サーバー701aにおいて実行できるようにする。入力イベントは、ハンドジェスチャーイベント、たとえば、Appを作動させるための接触、移動或いは振動等の動作を包含し得る。
ある例において、ラッパー750がAppとランナーAPIをパッケージするのに用いられ得て、Appを該ランナーAPIの補助の下で、サーバー701aにおいて実行させる。この例中、該Appは該ランナーAPIとの結合の前には、実行不可とされ得て、これは、該Appが、特定の形式/プログラム言語を使用するため、一つ或いは複数のサーバー701a上のオペレーションシステム中で実行できないためであり(たとえば、iOS環境中で実行されるipaファイルは、Android環境中では、インストール/実行できず、先に該ランナーAPIとパッケージして、iOSと関係する内容を入出力時にAndroidが受け入れられる形式へと翻訳/変換されなければならない)。ランナーAPIの補助により、Appはサーバー701aが使用するオペレーションシステム中で実行できるようになり。一部の例において、ラッパー750がパッケージするAppは、前述のWebクローラより来るものとされる。
アプリケーションプログラムパッケージ保存モジュール760は、サーバー701aがAppを保存するために用いられる。たとえば、それは、APP 11、APP 11、APP 11、APP 12、APP 1m、APP 21、...、APP jj、APP n1、APP n2、...、及びAPP nm等のAppを保存できる。
保存装置740はサーバー701a上で実行される一つ或いは複数のAppが発生するアプリケーションプログラムデータを保存するのに用いられ得る。
本発明のある例において、もし仮想マシン88が仮想マシン管理者720により発生し、並びに特別にAPP kkを実行するために用いられるなら、この仮想マシン88はまた、ハイパーバイザー(hypervisor)88aを包含し得て、それは動態で仮想マシン88のリソースを管理するのに用いられ得る。たとえば、ハイパーバイザー88aはサーバー701aに向けて仮想マシン88のリソースの使用をリクエストするか、或いは仮想マシン88が釈放するリソースを、サーバー701aに帰還させる。ハイパーバイザー88aは、オペレーションシステムOS kkを包含し得て、このオペレーションシステムOS kkは、少なくとも一つのApp管理者SM kk及び代理プログラムPr kkを包含し得る。App管理者SM kkはインストールコントローラIC kkを包含し得て、それはAPP kkの身分Apk id kkを使用して、APP kkをアプリケーションプログラムパッケージ保存モジュール760よりインストールする。該代理プログラムPr kkはAPP kkのアプリケーションプログラムデータを発送或いは受信するのに用いられ得る。このほか、サーバー701a中の代理プログラムは、前述のデータ収集代理サーバー610の役割を演じることができる。
同様に、仮想マシン9は、仮想マシン管理者720より発生し、特にApp、すなわちAPP jjを実行するのに用いられる。仮想マシン89はハイパーバイザー89aを包含し得て、それは動態で仮想マシン89のリソースを管理するのに用いられ得る。たとえば、ハイパーバイザー89aはサーバー701aに向けて仮想マシン89のリソースの使用をリクエストするか、或いは仮想マシン89が釈放するリソースを、サーバー701aに帰還させる。ハイパーバイザー89aは、オペレーションシステムOS jjを包含し得て、このオペレーションシステムOS jjは、少なくとも一つのApp管理者SM jj及び代理プログラムPr jjを包含し得る。App管理者SM jjはインストールコントローラIC jjを包含し得て、該インストールコントローラIC jjは、App APP jjをアプリケーションプログラムパッケージ保存モジュール760よりインストールする。
代理プログラムPr jjはApp APP jjのアプリケーションプログラムデータを発送或いは受信するのに用いられ得る。
一部の例において、サーバー701aが搭載するオペレーションシステムは、モバイル電子装置に用いられ得て、たとえば、iOS、Android等とされる。
一部の例において、ハイパーバイザー88aと89aは、Linux(登録商標)オペレーションシステムのカーネルベースのバーチャライズ基礎施設とされ、たとえば、カーネルベースバーチャルマシン(kernel−based virtual machine,略称KVM)とされ得る。
一部の例において、仮想マシン88と89は、Linux(登録商標)オペレーションシステム、たとえば、CentOS(たとえばCentOS 6.4)或いはUbuntoを実行し得る。
本発明の一部の実施例中、SDN 730が仮想マシン(たとえば仮想マシン88と89)とこれら仮想マシンと関係するアプリケーションプログラムサーバー(たとえばアプリケーションプログラムサーバー201と202)の間のデータ伝送及び又は受信を管理するために配置され得る。コンフィギュラブル(configurable)SDN 730はサーバー701aが提供する仮想マシンアドレス(たとえば、IPアドレス)を保存し得る。アプリケーションプログラムサーバー(たとえば、アプリケーションプログラムサーバー201)は一つのApp(たとえば、APP kk)に対して、アプリケーションプログラムデータをリクエストし、コンフィギュラブルSDN 730は、前述の保存されたアドレスに基づき、該Appを実行する仮想マシン(たとえば、仮想マシン88)が発生するアプリケーションプログラムデータを、関係するサーバーに発送する。サーバー701aが大量の仮想マシンを同時にホスティングするのに用いられるとき、コンフィギュラブルSDN 730はサーバー701aが効率的に仮想マシンとそれに関係するサーバーの間のアプリケーションプログラムデータの情報通信量を効率的に管理するのを助けることができる。
一部の例において、コンフィギュラブルSDN 730は、Open vSwitch技術により実現され得る。
サーバー701aの動作のフローの例は以下に示されるとおりである。サーバー701aがAPP kkの実行準備する時、スケジューラー710は仮想マシン管理者720に仮想マシン88を発生するよう指示する。続いて、App管理者SM kkはAPP kkを実行してアプリケーションプログラムデータを発生する。代理プログラムPr kkはすなわち、アプリケーションプログラムデータを保存装置740に保存するか、或いはネットワーク30を介して、アプリケーションプログラムデータをアプリケーションプログラムサーバー201に渡すか(また本発明の一部の実施例ではコンフィギュラブルSDN 730の補助を介する)、或いは、サーバー201よりリクエストを受け取る。これにより、仮想マシン88は、アプリケーションプログラムデータを発生する能力を有してアプリケーションプログラムサーバー201からのリクエストに応答し、並びに該アプリケーションプログラムデータをアプリケーションプログラムサーバー201に送る。このほか、一旦仮想マシン88がAPP kkを実行すると、ハイパーバイザー88aは動態で仮想マシン88のリソースを管理し得る。
図7B中、サーバー702aは、サーバー701aに類似の方式で実現されるが、差異は僅かに、仮想マシンの代理プログラム(たとえば、Pr kkとPr jj)が除去され、並びに整合性代理プログラム770が仮想マシン中において応用されるよう改められたことにある。
図7Cにおいて、サーバー703aは、サーバー701aに類似の方式で実現されるが、違いは、仮想マシン(たとえば、仮想マシン88、89)が単一の仮想マシン780中に整合されたことにある。単一仮想マシン(たとえば仮想マシン780)は、サーバー703a中で複数のハイパーバイザー(たとえば、ハイパーバイザー88aと89a)を管理するのにもちいらえて、仮想マシン780は一つ或いは複数のAppを同時に実行できる。
図7Dにおいて、サーバー704aはサーバー702aと類似の方式で実現されるが、差異は、仮想マシン(たとえば、仮想マシン88、89)が単一仮想マシン790中に整合され、且つこれら仮想マシン中のハイパーバイザーも単一ハイパーバイザー88cに整合されたことにある。このハイパーバイザー88cはサーバー704a中の一つ或いは複数のオペレーションシステム(たとえば、オペレーションシステムOS kkとOS jj)を同時に管理するのに用いられ得る。
図7Eにおいて、サーバー701bは、サーバー701aに類似の方式で実現されるが、差異は、ラッパー750がApp管理者に移され、たとえば、ランナー(runner)75aと75bとされることにある。ランナー75aは、APP kkをランナーAPIとパッケージし、APP kkをオペレーションシステムOS kkにおいて実行できるようにする。ランナー75bは、APP jjをランナーAPIとパッケージし、オペレーションシステムOS jjがAPP jjを実行できるようにする。
図7F中において、サーバー702bはサーバー702aに類似の方式で実現されるが、差異は、ラッパー750がApp管理者に移され、たとえば、ランナー75aと75bとされることにある。
図7G中において、サーバー703bはサーバー703aに類似の方式で実現されるが、差異は、ラッパー750がApp管理者に移され、たとえば、ランナー75aと75bとされることにある。
図7H中において、サーバー704bはサーバー704aに類似の方式で実現されるが、差異は、ラッパー750がApp管理者に移され、たとえば、ランナー75aと75bとされることにある。
図7Aから図7Hの仮想マシンの数量に対する変更は、本発明の範囲内にある。
図7Aから図7Hのユニットに対する組み合わせ及び又は移動もまた本発明の範囲内にある。
[データ収集モジュール]
一部の実施例において、図4Eに示されるデータ収集構造3000はまた、図7Aから図7H中に示される仮想マシン管理者(たとえば、仮想マシン管理者SM kkとSM jj)に配置されてもよく、アプリケーションプログラムデータを分析と処理するのに用いられる。仮想マシン管理者は前述のロボットモジュール(たとえば、図4Iに示されるロボットモジュール650の一部分)とされ得る。データ収集モジュール3000はフック(hook)の役割を果たしてランナーAPIとパッケージされたAPIコール(たとえばシステムコール)を切り取り、及びAppのマシン学習方法中の行為(或いはシステムコール中より切り取ったアプリケーションプログラムデータ/内容)を記録及び分析できる。
図8Aは本発明のある実施例中において、データ収集モジュール3000を使用して、ユーザーレベル(user−level)においてアプリケーションプログラムデータをフックするオペレーションシステムの概念図である。図8Aに示されるように、フックサーバー810はサーバー100b或いは100cに接続されるか設置され、並びに、フックしたアプリケーションプログラムデータを受け取りデータベース、保存装置或いはその他の前処理ツールに転送する。システム/カーネルコール850を介して関数ベース840に対してコールし、該関数ベース840がアプリケーションプログラムデータを受け取るときか或いはその後に、フックプログラム820がこのアプリケーションプログラムデータのフェッチ(fetch)/切り取り、記録或いは分析に用いられる。
図8AはApp830の実行の過程中に、発生する相互動作の例のフローチャートである。
そのうち、ステップ80Aでは、フックサーバー810がフックプログラム820よりそれがフェッチ(fetch)/切り取ったアプリケーションプログラムデータを受け取る。
ステップ801では、App 830が関数ベース840をコールし、遠方アプリケーションプログラムサーバー200に向けてアプリケーションプログラムデータの請求を行なう。
ステップ802では、フックプログラム820が関数ベース840をコールし(たとえば、一つのフックAPIをコールして、関数ベース840が受け取ったアプリケーションプログラムデータをフックする)、システムコール850が関数ベース840をコールした後に発生するアプリケーションプログラムデータを受け取る。
ステップ803では、関数ベース840がApp 830にコールされた後、システムコール850に与えられるリクエストを発生する(たとえば一つのHTTP POST或いはGET方法)。システムコール850は、HTTP POST或いはGETリクエストを関係する駆動プログラム、たとえばネットワークインターフェースカード(NIC)駆動プログラムに伝送する。ネットワークインターフェースカード駆動プログラムは、HTTP POST或いはGETリクエストを、転換/変換/エンコード/嵌め込みし、一つのパッケージを形成し、並びにそれをMACサブレイヤー(すなわちOSIモデル中のデータリンク層のメディアアクセスコントロールサブレイヤー)及び又はPHYレイヤー(すなわち、OSIモデル中の実体レイヤー)を通し、インターネットを介して遠方のApp830と関係するアプリケーションプログラムサーバー(たとえば、アプリケーションプログラムサーバー200)に伝送する。
ステップ804では、システムコール850がその受信したアプリケーションプログラムデータを駆動プログラムより関数ベース840に移転する。
ステップ805では、関数ベース840がシステムコール850より受け取ったアプリケーションプログラムデータを、この段階にあってフックプログラム820にフェッチ(fetch)/切り取らせる。
ステップ806では、システムコール850よりアプリケーションプログラムデータを受け取り及び関数ベース840をコールした後に、応答ステップ803中のリクエストの結果を発生する。たとえば、もともとのリクエストが内容に対するリクエスト実行であれば、システムコール850は内容(たとえば複数の文字を含む文章)を受信した後、このステップは関数ベース840をコールし、ユーザーインターフェース上に該内容を表示する(たとえば、内容をApp830のユーザーインターフェース中のウインドウに表がする)。
ある例において、付帯可能キーワードをリクエストし、アプリケーションプログラムデータはこれらキーワードの関係サーチ結果を付帯可能であり、フックプログラム820は、該サーチ結果を受け取るのに用いられ得る。フックサーバー810より一段の処理プロセスを開始した後、サーチ結果は最後に保存装置の中に保存され得る(たとえば、保存装置740或いはデータベース8888)。
図8Bは本発明のある実施例において、データ収集モジュール3000を使用してカーネルベースレベルにあってアプリケーションプログラムデータをフックするオペレーションシステムの概念図である。図8Bに示されるように、その図中に示されるユニットの機能は、図8Aに示されるものと同じであるため、重複した説明は行なわない。
図8BはApp 830実行の過程中に、発生する相互動作の例のフローチャートである。
ステップ80Aでは、前述のステップ80Aと同じである。
ステップ801では、前述のステップ801と同じである。
ステップ812では、関数ベース840がApp830にコールされた後、一つのリクエストを発生し、並びにフックプログラム820により切り取られる。
ステップ813では、フックプログラム820が該リクエストをシステム/カーネルコール850に発送する。同様に、システム/カーネルコールは該リクエスト(たとえば一つのHTTP POST或いはGET方法)を関係する駆動プログラムに伝送し、該駆動プログラムは該リクエストを、転換/変換/エンコード/嵌め込みして一つのパッケージを形成し、並びにそれをMACサブレイヤー或いはPHYレイヤーを通して、インターネットを介して遠方のApp830と関係するアプリケーションプログラムサーバー(たとえば、アプリケーションプログラムサーバー200)に伝送する。
ステップ814では、システム/カーネルコール850が、その受け取ったアプリケーションプログラムデータを、駆動プログラムよりフックプログラム820に移転する。
ステップ815では、フックプログラム820がアプリケーションプログラムデータを関数ベース840に移転する。
ステップ806は、前述のステップ806と同じである。
一部の実施例において、データ収集モジュール3000の一部のタスクは、図7Aから図7Hに示される代理プログラムに移転され、図7A〜図7H中の仮想マシン管理者の負担を減らす。
図9Aと図9Bは、図7A〜図7H中の代理プログラムを使用してデータ収集モジュール3000のタスクを実行し、これによりアプリケーションプログラムデータを収集する例を示している。
図9Aと図9B中、「策略と編集」は、スケジューラー(たとえばスケジューラー710)のスケジュール策略を指す。
図9Aの各ステップは以下に示すとおりである。
ステップ901では、スケジューラーが一つのAppに関するスケジュール策略をリクエストする。
ステップ902では、該リクエストは応答され並びに確認通知を付帯する。
ステップ903では、スケジューラーが該Appに対応する仮想マシン管理者を起動する。
ステップ904では、スケジューラーのコントロールの下で、仮想マシン管理者はAppを起動或いは終了するか、或いはAppを操作する。
ステップ905では、Appがリクエストを、それに対応するアプリケーションプログラムサーバーに発送する。
ステップ906では、アプリケーションプログラムサーバーが応答を返し、該応答は該リクエストに関係するデータ或いは内容を付帯している。
ステップ907では、Appに対応する代理プログラムが該応答中のデータ或いは内容をフェッチ(fetch)又は切り取り、保存装置或いはデータベースに保存する。
図9Bの各ステップは以下に示されるとおりであり、それはApp安全検査メカニズムを包含する。
ステップ911では、スケジューラーがAppに関係するスケジュール策略をリクエストする。
ステップ912では、このリクエストは応答され並びに確認通知を付帯する。
ステップ913では、スケジューラーが該Appに対応する仮想マシン管理者を起動する。
ステップ914aでは、仮想マシン管理者がApp安全検査モジュールをコールして該Appレイヤーレベルを検査する。
ステップ914bでは、該仮想マシン管理者が代理プログラムをコールして該Appと関係する伝送データをフェッチ(fetch)或いは切り取り将来分析を行なうのに供する。
ステップ915では、スケジューラーのコントロールの下で、仮想マシン管理者がAppを起動或いは終了するか、或いはAppを操作する。
ステップ916では、App安全検査モジュールの監視及び代理プログラムの切り取りの下で、Appがリクエストをそれに対応するアプリケーションプログラムサーバーに発送する。
ステップ917では、App安全検査モジュールの監視及び代理プログラムの切り取りの下で、アプリケーションプログラムサーバーが応答を返し、該応答は該リクエストに関係するデータ或いは内容を付帯する。
ステップ918aでは、AppがApp安全検査モジュールにその監視を終了するようリクエストする。
ステップ918bでは、Appが代理プログラムに該Appと関係するデータのフェッチ(fetch)又は切り取りを終了するよう請求する。
ステップ919では、代理プログラムがそれがフェッチ(fetch)又は切り取ったデータ或いは内容を保存装置或いはデータベースに保存する。
ステップ920では、Appがこの終了リクエストに応答する。
ステップ921では、代理プログラムがこの終了リクエストに応答する。
ステップ922では、仮想マシン管理者がこの終了リクエストに応答する。
ステップ923では、スケジューラーがアプリケーションプログラムデータ収集の過程の結果を保存装置或いはデータベース中に保存する。
図9Cはデータ収集モジュール3000或いは図7A〜図7H中の代理プログラムがAppと関係するデータ又は内容をフェッチ(fetch)或いは切り取るフローチャートである。
ステップ931では、App起動時に、仮想マシン管理者から切り取りリクエストを受け取り、該切り取りリクエストは該Appの身分を包含し得る。
ステップ932では、入力されたデータ又は内容を収集する時、切り取りリクエスト及び該Appと関係する入力されたデータ及び内容を整合する。
ステップ933では、収集したデータ又は内容を切り取り及び又は分析し、該データ又は内容は、該Appと関係する。
ステップ934では、終了リクエストに応答し、並びに収集したデータ又は内容を保存装置或いはデータベースに保存する。
図7Dは、ある実施例のスケジューラーの動作のフローチャートである。
そのうち、ステップ941では、保存装置或いはデータベース中において、スケジュール策略をサーチする。ある例において、時間イベント(たとえば時間スタンプ(timestamp)を構築する)は、スケジュール策略をサーチする時のサーチ範囲の内に包含され得る。
ステップ942では、切り取りリクエストを仮想マシン管理者に発送する。
ステップ943では、終了通知を待って、並びに該終了通知を受け取った時、該Appに関係する切り取りデータ又は内容を保存する。
図9Eは仮想マシン管理者(或いはロボットモジュール)のある実施例における動作のフローチャートである。
そのうち、ステップ951では、Appが起動するとき、スケジューラーより切り取りリクエストを受け取り、該切り取りリクエストは、該Appと関係するデータ又は内容の切り取りに関する。
ステップ952では、仮想マシン管理者がスケジューラーにより起動されて該Appと関係するデータ又は内容を切り取る。
ステップ953では、該スケジューラーに基づいて該Appの機能を実行する。
ステップ954では、切り取りリクエストをApp安全検査モジュールに発送する。
ステップ955では、切り取りリクエストをデータ収集モジュール或いは代理モジュールに発送する。
ステップ956では、該スケジューラーにその活動の終了を通知し、並びに該Appと関係するデータ又は内容を保存装置或いはデータベースに保存する。
本発明はもう一つのアプリケーションプログラムサーチの方法を提供し、この方法は、少なくとも一つのアプリケーションプログラムを実行するステップを包含する。該アプリケーションプログラムは一つの、それが適合するハードウエア或いは仮想マシン上で作動可能である。アプリケーションプログラムが実行されるとき、それと対応するアプリケーションプログラムデータが生成される。これらアプリケーションプログラムデータは対応するアプリケーションプログラムサーバーより受け取られ、及び又はこのアプリケーションプログラム自身が発生する。該アプリケーションプログラムデータは、アプリケーションプログラムがどのように動作するかにより、静態或いは動態の形式とされ得る。該アプリケーションプログラムデータは保存装置中に保存され得て、たとえば、本発明のシステム中のデータベース或いはメモリ中に保存され得る。ネットワークサーチフィールド等のインタフェースにより、ユーザーがそのサーチ内容を入力でき、ユーザーからのサーチ命令を受け取るとき、サーチを行なってサーチ命令と関係する特定アプリケーションプログラムデータを探し出すことができる。もし関係するアプリケーションプログラムデータが認識されれば、これらの関係するアプリケーションプログラムデータの情報は、サーチ命令を発送したユーザーに伝送され得る。
本技術領域の通常の知識を有する者であれば理解されるべきことであるが、アプリケーションプログラム、ネットワークApp、拡充素子或いはプラグインのサーチ方法と前述のAppに対するサーチ方法は類似し、本発明はこれに対してすでに詳細に説明している。これにより、本発明の前述の全てのAppに関する実施例、方法、システム及び構成素子はいずれもアプリケーションプログラムサーチ、ネットワークApp、拡充素子或いはプラグインに適用可能である。
1 App
100 サーバー集団
100a ネットワークアプリケーションプログラムサーバー
100b アプリケーションプログラムサーチエンジンサーバー
100c データベース管理サーバー
100d ファイル管理サーバー
100e モバイルオペレーションシステムシミュレートサーバー
10 第1ユーザー
10a スマートフォン
10b タブレットPC
10c ノートブック型コンピュータ
10d パーソナルコンピュータ
118 保存装置
118a コンピュータリーダブルメディア
12 メモリ
131 スクリーン
131a ユーザーインターフェース
132 アシステッドグローバルポジショニンスシステムモジュール
133 入出力システム
133a ディスプレイコントローラー
133b 入力コントローラー
134 周辺装置
135 プロセッサ
137 メモリコントローラー
138 入力モジュール或いは入力装置
139 メモリ
14 データパス
140 RFモジュール
16 メモリコントローラー
160 データパス
17 通信ポート
18 プロセッサ
19 保存装置
19x 保存装置
200 アプリケーションプログラムサーバー
20 第2ユーザー
201 アプリケーションプログラムサーバー
202 アプリケーションプログラムサーバー
2108 アプリケーションプログラムアイコン
2110 アプリケーションプログラム名称或いは記述
2112 アプリケーションプログラムアイコン
2114 アプリケーションプログラム名称或いは記述
2118 内容
2120 内容
2112 内容
2124 マップ
218 保存装置
218a コンピュータリーダブルメディア
231 スクリーン
231a ユーザーインターフェース
232 アシステッドグローバルポジショニンスシステムモジュール
233 入出力システム
233a ディスプレイコントローラー
233b 入力コントローラー
234 周辺装置
235 プロセッサ
237 メモリコントローラー
238 入力モジュール或いは入力装置
239 メモリ
240 RFモジュール
260 データパス
30 ネットワーク
300−1〜7 第1〜7フィールド
3000 編集テーブル/データ収集モジュール或いは構造
320 列/小テーブル
321〜324 小テーブル
400 仮想マシン
402 第1モジュール
404 第2モジュール
405 スクリプト
406 第3モジュール
408 第4モジュール
500 ネットワークアプリケーションプログラム
5000 演算装置
502 サーチボタン/サーチフィールド
600 アプリケーションプログラムサーチエンジン
610 データ収集代理サーバー
630 ラッパー
640 ハイパーバイザーモジュール
650 ロボットモジュール
660 スケジューラー
670 App安全検査モジュール
700 凡例システム
701 サーバー
701a サーバー
701b サーバー
702a サーバー
702b サーバー
703a サーバー
703b サーバー
704a サーバー
704b サーバー
710 スケジューラー
720 仮想マシン管理者
730 配置可能なソフトウエア定義ネットワーク
740 保存装置
75a 動作ユニット
75b 動作ユニット
750 ラッパー
760 アプリケーションプログラムパッケージ保存モジュール
770 整合性代理プログラム
780 仮想マシン
80A、801〜806 ステップ
812〜815 ステップ
810 フックサーバー
820 フックプログラム
830 App
840 関数ベース
850 システム/カーネルコール
88 仮想マシン
88a ハイパーバイザー
88c ハイパーバイザー
888 データベース
888’ データベース
8888 データベース
89 仮想マシン
89a ハイパーバイザー
90−1〜5 物品
90−1p〜5p イメージ
901〜907 ステップ
911〜923 ステップ
931〜934 ステップ
941〜943 ステップ
951〜956 ステップ
900 コンテナー
910 背景或いは広告
918 タブ
920 タブ
922 タブ
924 タブ
926 動作バー或いは横幅
988 ウェルカム画面

Claims (28)

  1. アプリケーションプログラムサーチのシステムにおいて、
    一つ或いは複数のアプリケーションプログラムと、
    これらアプリケーションプログラムを実行するための一つ或いは複数のサーバーと、
    スケジュール策略に基づいてこれらのサーバーをスケジュールしてこれらアプリケーションプログラムを実行するための一つ或いは複数のスケジューラーと、
    これらアプリケーションプログラムのアプリケーションプログラムデータを収集し、並びに収集した該アプリケーションプログラムデータを一つ或いは複数のデータベースに保存するための一つ或いは複数のコンピュータプログラムと、
    収集され且つこれらデータベースに保存された該アプリケーションプログラムデータを使用してこれらアプリケーションプログラムをサーチするサーチサービスを提供する一つ或いは複数のサーチエンジンと、
    を包含することを特徴とする、アプリケーションプログラムサーチのシステム。
  2. 請求項1記載のアプリケーションプログラムサーチのシステムにおいて、これらコンピュータプログラムはさらに、ロボットモジュールを包含し、該ロボットモジュールは、ユーザーがこれらアプリケーションプログラムを実行する行為をシミュレートすることで、少なくとも該アプリケーションプログラムデータの発生と該アプリケーションプログラムデータの受け取りの少なくともいずれかを実行することを特徴とする、アプリケーションプログラムサーチのシステム。
  3. 請求項2記載のアプリケーションプログラムサーチのシステムにおいて、該ロボットモジュールは、真実のユーザーがこれらアプリケーションプログラムを操作する行為を記録することで該ユーザーの行為をシミュレートすることを特徴とする、アプリケーションプログラムサーチのシステム。
  4. 請求項1記載のアプリケーションプログラムサーチのシステムにおいて、これらコンピュータプログラムはさらに、データ収集代理プログラムを包含し、該データ収集代理プログラムは、これらアプリケーションプログラムの該アプリケーションプログラムデータをフェッチ(fetch)或いはキャッシュ(cache)するのに用いられることを特徴とする、アプリケーションプログラムサーチのシステム。
  5. 請求項1記載のアプリケーションプログラムサーチのシステムにおいて、さらに、ラッパー(wrapper)を包含し、該ラッパーは、入力イベント或いは命令の少なくとも一方を提供して、これらアプリケーションプログラムを実行するのに用いられることを特徴とする、アプリケーションプログラムサーチのシステム。
  6. 請求項5記載のアプリケーションプログラムサーチのシステムにおいて、該ラッパーはさらに、これらアプリケーションプログラムをアプリケーションプログラムインターフェースとパッケージするのに用いられ、それにより、これらサーバーがこれらアプリケーションプログラムを実行するのを補助することを特徴とする、アプリケーションプログラムサーチのシステム。
  7. 請求項1記載のアプリケーションプログラムサーチのシステムにおいて、さらに、
    アプリケーションプログラム作動インタフェースを包含し、それはこれらサーバーの仮想マシンがこれらアプリケーションプログラムを実行するのを補助することを特徴とする、アプリケーションプログラムサーチのシステム。
  8. 請求項1記載のアプリケーションプログラムサーチのシステムにおいて、さらに、
    ハイパーバイザーモジュールを包含し、それは仮想マシンがこれらアプリケーションプログラムを実行するのをコントロールすることを特徴とする、アプリケーションプログラムサーチのシステム。
  9. 請求項1記載のアプリケーションプログラムサーチのシステムにおいて、これらアプリケーションプログラムは、モバイルアプリケーションプログラム、ネットワークアプリケーションプログラム、拡充素子或いはパーソナルコンピュータで実行可能なプラグインを包含することを特徴とする、アプリケーションプログラムサーチのシステム。
  10. 請求項1記載のアプリケーションプログラムサーチのシステムにおいて、これらアプリケーションプログラムはさらに、ロボットモジュールを包含し、且つこれらスケジューラーはさらに、該スケジュール策略に基づいてこれらロボットモジュールをスケジュールすることを特徴とする、アプリケーションプログラムサーチのシステム。
  11. 請求項1記載のアプリケーションプログラムサーチのシステムにおいて、該スケジュール策略はこれらアプリケーションプログラムの少なくとも一つの実行頻度、実行順序、実行長さ及び実行優先権のいずれかを分析することにより発生することを特徴とする、アプリケーションプログラムサーチのシステム。
  12. 請求項1記載のアプリケーションプログラムサーチのシステムにおいて、該スケジューラーはさらに、これらアプリケーションプログラムの少なくとも一つの実行頻度、実行順序、実行長さ及び実行優先権のいずれかを分析して該スケジュール策略を発生することを特徴とする、アプリケーションプログラムサーチのシステム。
  13. アプリケーションプログラムサーチの方法において、それは、
    一つ或いは複数のアプリケーションプログラムをスケジュールし、スケジュール策略に基づき実行し、
    該スケジュール策略に基づきこれらアプリケーションプログラムを実行し、
    これらアプリケーションプログラムよりアプリケーションプログラムデータを収集し、 収集した該アプリケーションプログラムデータを保存し、
    サーチ命令を受け取り、
    保存された該アプリケーションプログラムデータをサーチし、
    これらアプリケーションプログラムが保存した該アプリケーションプログラムデータ中の、該サーチ命令に関係する情報を発送し、
    以上のステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  14. 請求項13記載のアプリケーションプログラムサーチの方法において、さらに、
    ユーザーがこれらアプリケーションプログラムを実行してアプリケーションプログラムデータを発生する行為をシミュレートするステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  15. 請求項14記載のアプリケーションプログラムサーチの方法において、そのシミュレートするステップ中には、これらアプリケーションプログラムのインタフェースの分析を包含することを特徴とする、アプリケーションプログラムサーチの方法。
  16. 請求項15記載のアプリケーションプログラムサーチの方法において、その分析のステップ中に、さらに、これらアプリケーションプログラムのインタフェースをランダムに検出することを包含するステップを特徴とする、アプリケーションプログラムサーチの方法。
  17. 請求項14記載のアプリケーションプログラムサーチの方法において、そのシミュレートするステップ中には、真実のユーザーがこれらアプリケーションプログラムを操作する行為を記録することを通し、該ユーザーの行為をシミュレートするステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  18. 請求項13記載のアプリケーションプログラムサーチの方法において、さらに、
    これらアプリケーションプログラムの該アプリケーションプログラムデータをフェッチ或いはキャッシュし、及び、
    フェッチ或いはキャッシュした該アプリケーションプログラムデータを保存するステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  19. 請求項13記載のアプリケーションプログラムサーチの方法において、さらに、
    これらアプリケーションプログラムをアプリケーションプログラム運行インタフェースとパッケージし、これらアプリケーションプログラムの実行を補助するステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  20. 請求項13記載のアプリケーションプログラムサーチの方法において、これらアプリケーションプログラムは、モバイルアプリケーションプログラム、ネットワークアプリケーションプログラム、拡充素子或いはパーソナルコンピュータで実行可能なプラグインを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  21. 請求項13記載のアプリケーションプログラムサーチの方法において、スケジュールのステップ中に、さらに、一つ或いは複数のロボットモジュールを、該スケジュール策略に基づいてスケジュールし、これらアプリケーションプログラムを実行するステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  22. アプリケーションプログラムサーチの方法において、
    少なくとも一つのアプリケーションプログラムをスケジュールし、スケジュール策略に基づき実行し、
    これらアプリケーションプログラムを実行し、
    該アプリケーションプログラムよりアプリケーションプログラムデータを収集し、
    収集した該アプリケーションプログラムデータを保存し、
    サーチ命令を受け取り、
    保存された該アプリケーションプログラムデータをサーチし、及び、
    該アプリケーションプログラムが保存した該アプリケーションプログラムデータ中の、該サーチ命令と関係する情報を発送し、
    以上のステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  23. 請求項22記載のアプリケーションプログラムサーチの方法において、そのうち、実行するステップ中に、
    仮想マシン上で該アプリケーションプログラムを実行するステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  24. 請求項22記載のアプリケーションプログラムサーチの方法において、そのうち、実行するステップ中に、
    ユーザー命令、モジュール、プログラム、スクリプト或いはロボットモジュールにより、該アプリケーションプログラムを実行するステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  25. 請求項22記載のアプリケーションプログラムサーチの方法において、そのうち、該アプリケーションプログラムは、モバイルアプリケーションプログラム、ネットワークアプリケーションプログラム、拡充素子及びパーソナルコンピュータにおいて実行可能なプラグインからなる群中の少なくとも一つを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  26. アプリケーションプログラムサーチの方法において、
    一つ或いは複数のアプリケーションプログラム或いは一つ或いは複数のアプリケーションプログラムサーバーのアプリケーションプログラムデータを収集し、
    収集した該アプリケーションプログラムデータを保存し、
    サーチ命令を受け取り、
    保存された該アプリケーションプログラムデータをサーチし、及び、
    該アプリケーションプログラムが保存した該アプリケーションプログラムデータ中の、該サーチ命令と関係する情報を発送し、
    以上のステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  27. 請求項26記載のアプリケーションプログラムサーチの方法において、そのうち、収集のステップ中に、さらに、
    これらアプリケーションプログラム或いはこれらアプリケーションプログラムサーバーに、該アプリケーションプログラムデータの転移を指示するステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
  28. 請求項26記載のアプリケーションプログラムサーチの方法において、さらに、
    これらアプリケーションプログラムを分析することで、これらアプリケーションプログラムサーバーのURL/URIを探し出して、直接これらURL/URIより該アプリケーションプログラムデータを収集するステップを包含することを特徴とする、アプリケーションプログラムサーチの方法。
JP2014160757A 2013-08-07 2014-08-06 アプリケーションプログラムサーチの方法及びそのシステム Expired - Fee Related JP5859074B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361862967P 2013-08-07 2013-08-07
US61/862,967 2013-08-07

Publications (2)

Publication Number Publication Date
JP2015035216A true JP2015035216A (ja) 2015-02-19
JP5859074B2 JP5859074B2 (ja) 2016-02-10

Family

ID=51300568

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014160757A Expired - Fee Related JP5859074B2 (ja) 2013-08-07 2014-08-06 アプリケーションプログラムサーチの方法及びそのシステム

Country Status (6)

Country Link
EP (1) EP2846273A1 (ja)
JP (1) JP5859074B2 (ja)
CN (1) CN105354189A (ja)
BR (1) BR102014019318A2 (ja)
RU (1) RU2598988C2 (ja)
TW (1) TWI553493B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018508085A (ja) * 2015-11-20 2018-03-22 小米科技有限責任公司Xiaomi Inc. 情報配信方法及び装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI581588B (zh) * 2015-06-12 2017-05-01 財團法人工業技術研究院 行動邊緣計算之控制方法、網路系統與服務平台
US10120949B2 (en) 2015-10-29 2018-11-06 Google Llc Indexing native application data
CN106844019A (zh) * 2015-12-04 2017-06-13 阿里巴巴集团控股有限公司 应用程序控制方法、应用程序跳转关联配置方法及装置
US11087234B2 (en) * 2016-01-29 2021-08-10 Verizon Media Inc. Method and system for distributed deep machine learning

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293578A (ja) * 2004-03-31 2005-10-20 Microsoft Corp 属性を介して制御されるテストケース継承
JP2009116733A (ja) * 2007-11-08 2009-05-28 Nec Corp アプリケーション検索システム、アプリケーション検索方法、モニタ端末、検索サーバおよびプログラム
JP2010086075A (ja) * 2008-09-29 2010-04-15 Nec Personal Products Co Ltd 検索装置、情報処理装置、検索方法、プログラム及び記録媒体
WO2012014284A1 (ja) * 2010-07-27 2012-02-02 株式会社日立製作所 テストシナリオ生成方法、テストシナリオ生成システム、及び、テストシナリオ生成プログラム
JP2013097747A (ja) * 2011-11-05 2013-05-20 Kyocera Document Solutions Inc ソフトウェア開発キット
JP2013120440A (ja) * 2011-12-06 2013-06-17 Nec Corp テストシステム、テスト方法、及び、プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5910903A (en) * 1997-07-31 1999-06-08 Prc Inc. Method and apparatus for verifying, analyzing and optimizing a distributed simulation
US6785671B1 (en) * 1999-12-08 2004-08-31 Amazon.Com, Inc. System and method for locating web-based product offerings
US7234139B1 (en) * 2000-11-24 2007-06-19 Catharon Productions, Inc. Computer multi-tasking via virtual threading using an interpreter
US7356590B2 (en) * 2005-07-12 2008-04-08 Visible Measures Corp. Distributed capture and aggregation of dynamic application usage information
US7630972B2 (en) * 2007-01-05 2009-12-08 Yahoo! Inc. Clustered search processing
US8943478B2 (en) * 2009-07-14 2015-01-27 International Business Machines Corporation Fault detection and localization in dynamic software applications
US9805022B2 (en) * 2010-12-09 2017-10-31 Apple Inc. Generation of topic-based language models for an app search engine
US20120316955A1 (en) * 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
EP2610776B1 (en) * 2011-09-16 2019-08-21 Veracode, Inc. Automated behavioural and static analysis using an instrumented sandbox and machine learning classification for mobile security
US8737980B2 (en) * 2011-09-27 2014-05-27 W2Bi, Inc. End to end application automatic testing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293578A (ja) * 2004-03-31 2005-10-20 Microsoft Corp 属性を介して制御されるテストケース継承
JP2009116733A (ja) * 2007-11-08 2009-05-28 Nec Corp アプリケーション検索システム、アプリケーション検索方法、モニタ端末、検索サーバおよびプログラム
JP2010086075A (ja) * 2008-09-29 2010-04-15 Nec Personal Products Co Ltd 検索装置、情報処理装置、検索方法、プログラム及び記録媒体
WO2012014284A1 (ja) * 2010-07-27 2012-02-02 株式会社日立製作所 テストシナリオ生成方法、テストシナリオ生成システム、及び、テストシナリオ生成プログラム
JP2013097747A (ja) * 2011-11-05 2013-05-20 Kyocera Document Solutions Inc ソフトウェア開発キット
JP2013120440A (ja) * 2011-12-06 2013-06-17 Nec Corp テストシステム、テスト方法、及び、プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015028252; 鹿取祐二: '第6章 マイコン用OSの動作原理' Interface 第39巻,第3号, 20130301, pp.84〜90, CQ出版株式会社 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018508085A (ja) * 2015-11-20 2018-03-22 小米科技有限責任公司Xiaomi Inc. 情報配信方法及び装置

Also Published As

Publication number Publication date
EP2846273A1 (en) 2015-03-11
TWI553493B (zh) 2016-10-11
CN105354189A (zh) 2016-02-24
TW201508523A (zh) 2015-03-01
RU2014131897A (ru) 2016-02-20
JP5859074B2 (ja) 2016-02-10
BR102014019318A2 (pt) 2016-09-27
RU2598988C2 (ru) 2016-10-10

Similar Documents

Publication Publication Date Title
US11853705B2 (en) Smart content recommendations for content authors
US20150046425A1 (en) Methods and systems for searching software applications
US11853343B2 (en) Method, apparatus, and computer program product for user-specific contextual integration for a searchable enterprise platform
US20140040231A1 (en) Methods and systems for searching software applications
US10503493B2 (en) Distributed versioning of applications using cloud-based systems
US9317392B2 (en) Methods and automated systems for testing, optimization, and analysis that preserve continuity in identities and status of users who access remote information from different contexts
US9720672B2 (en) Searching and accessing application functionality
US10650067B2 (en) Cloud-enabled architecture for on-demand native application crawling
US11010215B2 (en) Recommending applications based on call requests between applications
JP5859074B2 (ja) アプリケーションプログラムサーチの方法及びそのシステム
US8762408B2 (en) Optimizing software applications
US20150254328A1 (en) Methods and systems that categorize and summarize instrumentation-generated events
US10331441B2 (en) Source code mapping through context specific key word indexes and fingerprinting
US20160350817A1 (en) System for tracking donor influence in charitable transactions
CN107636643A (zh) 将本地应用搜索结果与web搜索结果一起提供
US10109214B2 (en) Cognitive bias determination and modeling
US11429257B1 (en) Dynamically generated help based on derived hierarchical context
WO2013026953A2 (en) Method and apparatus for providing search with contextual processing
US11176134B2 (en) Navigation paths between content items
KR102440893B1 (ko) 멀티 챗봇 서비스의 응답 시간 개선을 위한 방법 및 장치
KR102150561B1 (ko) 사용자 활동 예측 기반의 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
US20240184416A1 (en) Integrated energy data science platform
WO2022212445A1 (en) Advanced application of model operations in energy
US20180025070A1 (en) Clustering applications for query processing
Ekman Handling Big Data using a Distributed Search Engine: Preparing Log Data for On-Demand Analysis

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150714

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20151008

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151109

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: 20151208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151215

R150 Certificate of patent or registration of utility model

Ref document number: 5859074

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees