CN105354189A - 搜寻应用软件的方法及其系统 - Google Patents

搜寻应用软件的方法及其系统 Download PDF

Info

Publication number
CN105354189A
CN105354189A CN201410383444.8A CN201410383444A CN105354189A CN 105354189 A CN105354189 A CN 105354189A CN 201410383444 A CN201410383444 A CN 201410383444A CN 105354189 A CN105354189 A CN 105354189A
Authority
CN
China
Prior art keywords
application software
application
server
app
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.)
Pending
Application number
CN201410383444.8A
Other languages
English (en)
Inventor
林修平
吴齐人
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 CN105354189A publication Critical patent/CN105354189A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • 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

本发明提出一种搜寻应用软件的方法及其系统,在方法中,一或多个应用软件可依据一排程器的一排程策略而被执行,经执行排程的应用软件后,这些应用软件所产生的应用程序数据即被收集并储存。接着于收到查询指令后,对所储存的应用程序数据进行搜寻,以找出所述的或所述的这些应用软件所产生的应用程序数据中与所述的查询指令相关的信息,并将所述的信息发送出。

Description

搜寻应用软件的方法及其系统
技术领域
本发明是关于一种应用软件,尤指一种提供搜索引擎服务,以寻找想要的应用软件的方法及其系统。
背景技术
搜索引擎是人们上网寻找信息时的重要工具,而手机应用软件(下称为App)也因为智能手机的广泛使用而变得普及。今日,App是预先植入于移动设备,或者是通过互联网下载而取得;诸如苹果公司的“AppStore”、谷歌的“GooglePlay”或者是腾讯的“应用宝(bao.myapp.com)”等应用程序发布平台(下称为App商店),都可供用户浏览及下载其感兴趣的App。App商店通常是将App分门别类,并且提供传统的搜寻工具让用户输入关键词来寻找其感兴趣的App。App的标题以及内容描述通常是由开发者所提供,而App商店的传统搜寻工具会检视这些App的标题以及内容描述,以比对是否符合用户所输入的关键词。一些App商店甚至提供网页接口给开发者上传与编辑其App的标题以及内容描述,例如GooglePlay的“EditApplication”和AppStore的“ManageYourApps”。
除了与App有关的静态数据(例如App的标题或内容描述)之外,当一个App被安装并执行时,它所生成的数据(下称为应用程序数据)可具有动态的性质。具体而言,当一个App运行于一个移动设备,其会因各种触发机制而产生应用程序数据,像是用户的行为即是其中一例。举例来说,如果想利用气象App查询天气预报,用户可通过App接口输入他的所选择的地点,气象App便会传送出相关的数据数据,像是这个例子中关于所述的地点的天气预报。换句话说,应用程序数据得以因用户的操作而为动态的性质,而且这些应用程序数据可以是来自于与App相联系的一个或多个应用软件服务器,或者是由App自身所产生。
如上所述,建立于App商店中的传统搜寻工具受限于仅能使用关键词对静态数据进行搜寻,其搜寻范围并没有延伸至应用程序数据;换言之,传统搜寻工具并不能对与App相关的应用程序包档案(applicationpackagefile)进行搜寻(例如apk檔或是ipa档),也不能对用户于电子装置上执行或执行完毕的App所产生的应用程序数据进行搜寻。这也意味着,其它用户无法发现或搜寻到App产生的应用程序数据,而这些应用程序数据对其他用户来说,可能是具有价值的信息。
发明内容
本发明揭示了一种搜寻应用软件或App的系统。此系统包含一或多个应用软件、一或多个服务器、一或多个排程器、一或多个数据库、一或多个电脑程序以及一或多个搜索引擎。所述的或所述的这些服务器用以执行所述的或所述的这些应用软件;所述的或所述的这些排程器用以依据一排程策略而排程所述的或所述的这些服务器以执行所述的或所述的这些应用软件;所述的或所述的这些电脑程序用以收集所述的或所述的这些应用软件的应用程序数据,并将应用程序数据储存于所述的或所述的这些数据库当中;而所述的或所述的这些搜索引擎则是用于提供搜寻服务,其可以通过搜寻经电脑程序收集后储存于所述的或所述的这些数据库中的所述的应用程序数据来找出所述的或所述的这些应用软件中对应于一查询指令的一应用软件。
本发明揭示了一种搜寻应用软件的方法。在此方法中,一或多个应用软件可被依据一排程策略而排程执行,接着依据所述的排程策略执行所述的这些应用软件,所述的这些应用软件的应用程序数据被收集,并将收集到的应用程序数据储存,然后接收到一查询指令,使所储存的应用程序数据被搜寻,再将与本次查询所搜寻到的应用程序数据相对应的应用软件的信息发送出。
本发明提供了一种搜寻应用程序的方法。在此方法中,至少一个应用软件可被依据一排程策略而排程执行,接着执行所述的这些应用软件,以收集来自所述的这些应用软件、来自耦合于所述的应用软件的一数据收集模块且/或来自耦合于所述的这些应用软件的一应用软件服务器的应用程序数据。将收集到的应用程序数据储存,然后接收到一查询指令,使所储存的应用程序数据被搜寻,再将与本次查询所搜寻到的应用程序数据相对应的应用软件的信息发送出。
本发明提供了一种搜寻应用程序的方法。在此方法中,来自于一或多个应用软件服务器的应用软件的应用程序数据被收集,将收集到的数据储存,然后接收到一查询指令,使所储存的数据被搜寻,再将与本次查询所搜寻到的数据相对应的应用软件的信息发送出。
附图说明
图1:其为依据本发明的一实施例通过应用程序数据搜寻App的联网系统的概念图;
图2:其为依据本发明的一实施例中,基于应用程序数据搜寻App的联网系统架构示意图;
图3A、图3B:其为依据本发明的一实施例的资料架构示意图;
图3C、图3D:其为依据本发明的一实施例中,数据架构的逻辑表及其一列的示意图;
图4A:其为依据本发明的一实施例中,基于应用程序数据搜寻App的联网系统架构示意图;
图4B:其为依据本发明的一实施例中,基于应用程序数据搜寻App的联网系统架构示意图;
图4C:其为依据本发明的一实施例中,基于应用程序数据搜寻App的联网系统架构示意图;
图4D:其为依据本发明的一实施例中,基于应用程序数据搜寻App的联网系统架构示意图;
图4E:其为为本发明的一实施例中,具数据收集架构的系统架构示意图;
图4F:其为依据本发明的一实施例中,具有数据收集代理程序设定于一服务器与一网络之间以提取及/或快取应用程序数据的系统架构示意图;
图4G:其为依据本发明的一实施例中,具有可用于一服务器中以将每一App与一运行应用程序接口(runnerAPI)包装起来的一包装器的一系统的架构示意图;
图4H:其为依据本发明的一实施例中,具有一超管理器模块以协助一服务器的虚拟机执行App的系统架构示意图;
图4I:其为依据本发明的一实施例中,具有一机器人模块整合图4A中的一脚本、一第三模块、一第二模块以及一第一模块的系统架构示意图;
图4J:其为依据本发明的一实施例中,具有一排程器协助执行App的一系统的架构示意图;图4K:其为依据本发明的一实施例中,具有一App安全检查模块以检察应用软件或App的安全性的一系统的架构示意图;
图5A~5E:其为依据本发明一实施例中,用户界面的范例的示意图;
图6A~6C:其为依据本发明的一实施例中,应用软件搜索引擎所提供的服务的用户界面的范例的示意图;
图7A~7H:其为依据本发明的一实施例中,使用单一虚拟机或复数虚拟机执行一或多个App的示意图;
图8A:其为使用一数据收集模块以在用户阶层提取或截取应用程序数据的操作系统的概念图;
图8B:其为使用一数据收集模块以在核心阶层提取或截取应用程序数据的操作系统的概念图;
图9A、图9B:其为使用图7A~7H中的代理程序而执行数据收集模块的任务的范例示意图;
图9C:其为数据收集模块或图7A~7H中的代理程序在提取或截取与一App相关的资料/内容的流程图;
图9D:其为一排程器运作的流程图;以及
图9E:其为一虚拟机管理员运作的流程图。
【图号对照说明】
1App100服务器丛集
100a网络应用程序服务器100b应用软件搜索引擎服务器
100c数据库管理服务器100d档案管理服务器
100e移动操作系统模拟服务器10第一用户
10a智能手机10b平板电脑
10c笔记型电脑10d个人电脑
118储存装置118a电脑可读式介质
12内存131屏幕
131a用户界面132辅助全球卫星定位系统模块
133输入/输出系统133a显示器控制器
133b输入控制器134周边装置
135处理器137内存控制器
138输入模块或输入装置139内存
14数据路径140射频模块
16内存控制器160数据路径
17通讯端口18处理器
19储存装置19x储存装置
200应用软件服务器20第二用户
201应用软件服务器202应用软件服务器
2104应用软件图标2106应用软件名称或描述
2108应用软件图标2110应用软件名称或描述
2112应用软件图标2114应用软件名称或描述
2118内容2120内容
2112内容2124地图
218储存装置218a电脑可读式介质
231屏幕231a用户界面
232辅助全球卫星定位系统模块233输入/输出系统
233a显示器控制器233b输入控制器
234周边装置235处理器
237内存控制器238输入模块或输入装置
239内存240射频模块
260数据路径30网络
300-1~7第一~七栏位3000逻辑表/数据收集模块或架构
320列/小表321~324小表
400虚拟机402第一模块
404第二模块405脚本
406第三模块408第四模块
500网络应用程序5000运算装置
502搜寻按钮/搜寻栏位600应用软件搜索引擎
610数据收集代理服务器630包装器
640超管理器模块650机器人模块
660排程器670App安全检查模块
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挂勾程序
830App840函数库
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欢迎画面
具体实施方式
为了使本发明的结构特征及所达成的功效有更进一步的了解与认识,特用较佳的实施例及配合详细的说明,说明如下:
以下为本发明的详细实施例说明并佐以图式,各图式中相同的符号代表相同或相似的对象。
图1为本发明一实施例的系统的概念图,此系统可包含一个服务器丛集100(或是一云端);一应用软件服务器200;一第一用户10以及一第二用户20,其中任两者可通过一网络30通讯连结,此网络30可为因特网或是蜂巢式网络,但并不限于此。在此实施例中,服务器丛集可包含复数个服务器(例如图1中的服务器100a~100d),各个服务器用于执行本发明至少一部分的任务、程序或步骤,并可为单独、依序、并行或组合式运作而提高系统的效率。服务器丛集100当中的任一服务器可包含但不限于一个处理器、一内存模块、一通讯端口以及一包含一数据库的一储存装置。图2为服务器丛集的一个例子。
请参考图1、图4A以及图4B,服务器100a可配置为一网络应用程序服务器(下称为网络应用程序服务器100a),并耦接于服务器100b(下称为应用软件搜索引擎服务器100b),以服务第一用户10以及第二用户20。网络应用程序服务器100a的主要功能在于向用户提供网络相关工具,例如允许用户在网页接口输入搜寻要求。应用软件搜索引擎服务器100b的主要功能在于提供搜索引擎服务,以搜寻应用程序数据。其中,应用程序数据可包含但不限于字符、属性、描述、序号、标志符号、统计值、历史记录、超级链接、档案路径、声音、影像,以及其它任何可作为搜寻格式的信息及其组合。
网络应用程序服务器100a可在第一用户10的屏幕131或第二用户20的屏幕231上提供一个搜寻栏位或是搜寻按钮502(或者是通过网络浏览器呈现),使第一用户10或第二用户20得以存取应用软件搜索引擎服务器100b所提供的搜寻工具。用户可在搜寻栏位输入查询内容以启动搜寻。此技术领域具有通常知识者能理解此实施例中所指的查询内容可为一或多个关键词、图片、影像串流、声音,或者是其组合。举例而言,用户可通过打字或是发声而将一或多个单字输入于搜寻栏位502当中;或者,也可以通过按下搜寻按钮502,将图片、影像或声音格式的档案提交搜寻。
请参考图4A,一App可被安装于应用软件搜索引擎服务器100b或第一用户10。当所述的App被安装、启用并运行时,所述的App可依据其本身如何被操作而产生(或获取)对应的应用程序数据。应用程序数据可由应用软件服务器200提供,也可以是由App本身产生。待应用程序数据自所述的App产生或由应用软件服务器200提供后,应用软件搜索引擎服务器100b便可收集所述的这些应用程序数据。
请参考图4F,一数据收集代理服务器610可被使用于一服务器(例如应用软件搜索引擎服务器100b)与网络30之间,以提取及/或快取本发明于一实施例中的应用程序数据。如果数据收集代理服务器610从第二用户20收到搜寻要求,其可检视其先前储存的本地快取是否有相符合的应用程序数据;若找到相符合的应用程序数据,数据收集代理服务器610可回传数据给第二用户20,不需要另外将搜寻要求发送至应用软件搜索引擎服务器100b。
请参考图1以及图4A,应用程序数据可被储存于网络应用程序服务器100a或应用软件搜索引擎服务器100b的数据库中,可一并参可图2以及图4A,并且可以字符串或二进制代码的形式储存。这些被收集的应用程序数据可以被网络应用程序服务器100a或应用软件搜索引擎服务器100b配合SQL、C、C++等程序语言进行管理、存取或是查询,也可使用其它数据管理工具进行上述操作。在一个例子中,数据库中的字符串或二进制代码可以基于一个查询请求而被搜寻;而在另一个例子中,储存于数据库中的数据片段可与一或多个唯一键(例如:一个主键)产生关联,且使特定的数据片段可于搜寻这些键(Key)时被找出。在应用程序数据被储存于数据库的前,应用程序数据可先被整理为复数个分类,且各个分类分别与复数个关键词具有关联(例如:『饭店』以及『小屋』等关键词与『旅行』的分类具有关联)。属于同一个类别的数据可于储存时联结于一组键,例如具顺序性或关联性的号码,而诸如单数序列、偶数序列、以相同数字起始/结尾、在特定位数具有相同数字…等特殊号码亦可。当应用软件搜索引擎服务器100b基于一个查询请求而搜寻相关的应用程序数据时,与所述的查询相符合的关键词所相关联的键会最先被选择,接着,数据库中与被选择的键对应的应用程序数据即被进行搜寻,以寻找与本次查询相关的内容。值得注意的是,应用程序数据也可使用其它搜索引擎技术而被收集以及储存,而不限于上述模式。在一个例子中,应用程序数据可被储存于一个逻辑表(例如BigTable)或是Hadoop架构下的一个Hadoop档案系统。图3C为一个逻辑表3000,图3D则展示了逻辑表3000中的一列320。于此,应用程序数据可被储存于能被各种Tablet服务器(例如BigTableTablet服务器,未示于图中)存取的复制档案系统中的小表(Tablet)320~324。任何对于小表的修改都会被记录在共享档案系统中的交易日志,在前述这个例子中,小表320~324当中所储存的数据为不可变更(也就是说,当数据被写入逻辑表3000后,就永远不变)。而在另一个例子中,为了允许更新,较新的数据可被储存于随机存取内存,而旧的数据则是储存于逻辑表3000当中的一系列档案里。
请参考图1以及图4B,在另一个例子中,应用程序数据可被储存于一个独立运行的数据库888’。此数据库888’可被网络应用程序服务器100a或应用软件搜索引擎服务器100b配合SQL、C、C++等程序语言或其它数据管理工具进行管理。储存于数据库888’的应用程序数据可被应用软件搜索引擎服务器100b搜寻。
本技术领域具有通常知识者应理解前述所提及的搜寻功能都可由网络应用程序服务器100a或应用软件搜索引擎服务器100b单独提供;因此,网络应用程序及搜寻功能并不一定需要分置于两个不同的服务器上实施。而更进一步而言,这些功能也可以通过PaaS、IaaS、SaaS等云端运算技术而实现。
复请参考图1,在另一个例子中,服务器丛集100可进一步包含一服务器100c(下称为数据库管理服务器100c),其可作为第一数据库,或者是对与的相耦接的第二数据库(未示于图中)提供数据库管理的服务,所述的第二数据库可用于储存应用程序数据。例如,第二数据库可存在于储存局域网络(SAN)当中,而数据库管理服务器100c可控制这个位于储存局域网络当中的第二数据库。储存于第一或第二数据库的应用程序数据可被SQL、C、C++等程序语言或其它数据管理工具进行管理,换句话说,当数据库管理服务器100c执行本发明所揭示的方法时,数据库管理服务器100c可控制及存取第一或第二数据库。
在另一例子中,如果应用程序数据是图片、影像、影音文件或文字文件,其可被储存于网络应用程序服务器100a的储存装置(未示于图中)、应用软件搜索引擎服务器100b的储存装置19(请参考图2)、数据库管理服务器100c的储存装置(未示于图中),或者是与这些服务器100a、100b、100c相耦接的储存装置19(请参考图4B)之中。而这些数据相对应的文件名称、标题、描述或标记(请参考图3A或图3B),则可以字符串储存于网络应用程序服务器100a或应用软件搜索引擎服务器100b的数据库中,或者是前述提及的第一数据库或第二数据库,以供搜寻的用。
在一例子中,相对应于所述的这些图片、影像、影音文件或文字文件的字符串也可具有档案路径,并同时储存于数据库,此档案路径可表示数据的所在位置。例如,服务器丛集100可进一步包含一服务器100d(下称为档案管理服务器100d,可参考图1),其可与服务器100a、100b或100d相耦接,作为档案管理的服务。搜寻的关键词若与字符串相符合,则与所述的字符串相对应的档案即会被作为搜寻结果。此时,数据库中所找到的字符串与关键词相符合,使相对应的档案会通过其路径而被检索出。
本技术领域具有通常知识者应理解前述的服务器100a、100b以及/或100c也可具有档案管理的服务,以管理储存装置或NAS(NetworkAttachedStorage)设备。
在另一例子中,复数个服务器可被配置为并行工作而使服务器丛集100扩大,以对网络上大量的客户端提供服务。于此,与前述服务器耦接的储存装置以及数据库也可一并扩大。
进一步而言,进入服务器100a、100b、100c以及100d的数据流量或是所述的这些服务器所提供的服务,可被一个负载平衡模块或是负载平衡服务器(未示于图中)所控制。本技术领域具有通常知识者应理解本发明的方法并不限制服务器丛集100当中的服务器数量。
于另一例子中,一个单一的服务器可被配置在网络的服务器端执行前述所有的任务与程序,这种单一服务器可在应用程序数据的数量较小、需要服务器运行的任务较简单的情况下取代如图1中所示的服务器丛集100。
另一种可行的方式则是让服务器100a~100d动态地交换其角色;服务器丛集100当中的各个服务器可交换其任务、程序或是步骤,并且仍维持系统的完整性。
第一用户10可执行在电脑装置上运行的App,以从相关的应用软件服务器或云端取得应用程序数据。此电脑装置可为但不限于智能手机10a、平板或平板电脑10b(统称为移动设备)、笔记型电脑10c、个人电脑10d、智能电视、电视游乐器主机、车用电脑或是行车记录器。同样地,第二用户20也可使用上述的装置操作相同的App。本技术领域具有通常知识者应理解App并非一定要由人力操作而取得应用程序数据,设定为自动执行的一机器、电脑程序或是机器人也是可执行/操作App的方式。
图2揭示了包含有应用软件搜索引擎服务器100b、应用软件服务器200、第一用户10以及第二用户20的系统,其中的应用软件搜索引擎服务器100b可包含但不限于一内存12、一数据路径14、一内存控制器16、一通讯端口17、一处理器18以及一储存装置19。在一例子中,储存装置19可包含一数据库888。数据库888或储存装置19可设置于服务器系统的外部,但仍与应用软件搜索引擎服务器100b相耦接。
第一用户10或第二用户20可分别包含一内存139或239、一数据路径160或260、一内存控制器137或237、一处理器135或235、一储存装置118或218、一周边装置134或234、一辅助全球卫星定位系统(AssistedGlobalPositioningSystem,AGPS)模块132或232、一射频(RadioFrequency,RF)模块140或240、一输入/输出系统133或233、一屏幕131或231以及一输入模块或输入装置138或238。其中所述的输入/输出系统133或233包含显示器控制器133a或233a,以及一输入控制器133b或233b;而所述的屏幕131或231可显示一用户界面131a或231a。在一例子中,储存装置118或218可分别包含一电脑可读式介质(computer-readablemedium)118a或218a;而于另一例子中,储存装置118或218则可视为电脑可读式介质。
虚拟机是将操作系统安装并运行于运算环境的一种软件实现(softwareimplementation),其通常是用于模拟实体的运算环境,但对于中央处理器、内存、硬盘、网络和其它硬件资源的请求则是由虚拟层(VirtualizationLayer)管理,此虚拟层可将前述的请求转译至实体标的对象。虚拟机可被创造于一虚拟层(例如运行于客户端或服务器的操作系统的一个超管理器(hypervisor)或是虚拟化平台)中,亦即虚拟机是运行于主机操作系统(HostOS)之上的虚拟层之中。虚拟层可用于创造多种各别的、孤立的虚拟机环境;而相较于将操作系统和软件直接安装于实体硬件,虚拟机具有多种优点,例如其孤立性可确保运行在虚拟机上的应用程序和服务不会受到主机操作系统或其它虚拟机的干扰,同时,虚拟机也易于移除、复制,以及在各个主机服务器之间重新分配而得以优化硬件资源的利用。
App除了可被第一用户10执行而产生应用程序数据,其也可于本发明的系统中的服务器或虚拟机上被执行而产生应用程序数据。由于App可具有系统限定的特征,意即特定的App可仅在特定形式的操作系统上被执行,而为了成功执行此App,就有必要知晓有关于有限定操作系统的信息存在。在一例子中,服务器(例如应用软件搜索引擎服务器100b)可取得App关于限定操作系统的信息,使本发明的系统可了解哪种环境可执行此App。
在另一例子中,如图4G的范例,服务器(例如应用软件搜索引擎服务器100b)可使用一包装器(Wrapper)630而将各个App(或App的封包)与一个运行应用程序接口(runnerAPI)包装。在运行应用程序接口的辅助下,服务器可取得App限定操作系统的信息,使本发明的系统可了解哪种环境可执行此App。
在另一例子中,运行应用程序接口可直接被使用而辅助服务器上一或多个虚拟机取得App限定操作系统的信息,使本发明的系统可了解哪种环境可执行此App。
如图4H所示,在另一范例中,一超管理器模块640可被服务器(例如应用软件搜索引擎服务器100b)利用于控制执行App的虚拟机数量。例如,超管理器模块640可生成、删除、启动或解除启动虚拟机。此超管理器模块640可作为管理虚拟机资源的一个管理工具,使App的执行更有效率。
在另一例子中,超管理器模块640是一种核心虚拟机(kernel-basedvirtualmachine,KVM),其用于将具有不同操作系统的复数个虚拟机在不改变其图片档案的情况下同步运行。藉由核心虚拟机的辅助,在不同虚拟机上具有不同操作系统的客制化运行环境得以被同步地提供。
应用程序数据可被应用软件服务器200或App本身提供,并且储存于数据库888,而第二用户20可通过用户界面231a对应用程序数据进行搜寻。如此,应用软件搜索引擎服务器100b可进行搜寻并且将搜寻结果传送给第二用户20。
本技术领域具有通常知识者应理解前述系统中的组件、模块或是装置可被整合于一个模块或是单个芯片中;除此之外,在应用软件搜索引擎服务器100b当中的服务器系统中,第一用户10以及第二用户20可通过网络30而相互交流。进一步而言,在服务器100a、100c或100d当中的服务器系统可包含如图2所示的相同组件、模块或是装置。
数据库
图3A以及图3B揭示了本发明一例子中的数据库888或888’的数据结构范例。在此例子中,数据库888或888’是一个关系数据库。请参考图3A,数据结构包含但不限于储存App1的名称的一第一栏位300-1、储存用于辨识App1的ID的一第二栏位300-2、储存App1的文件名称或封包名称的一第三栏位300-3、储存App1的位置的第四栏位300-4、储存内容列表ID的一第五栏位300-5、储存App1的下载次数的一第六栏位300-6或是储存App1的推荐次数的一第七栏位300-7。除此之外,图3B揭示了图3A中,储存于五栏位300-5的内容列表ID的一范例。本技术领域具有通常知识者应理解图3A以及图3B中的部分栏位是选择性的。
在另一例子中,数据库888或888’的数据结构可建置为第3C或/及图3D所示的一逻辑表3000或/及Hadoop档案系统。其中,Hadoop档案系统或逻辑表3000当中的每个数据分别为一键值对(Key-ValuePair)或资料对(Key-DataPair),像是图3D中,App的名称:”Joseph’sApp”可作为相对于数据的键。
应用软件搜索引擎
图4A揭示了本发明的一例子中,用于搜寻应用程序数据的系统。如图4A所示,此系统可包含应用软件搜索引擎服务器100b、第一用户10以及应用软件服务器200。应用软件服务器200可与App1沟通而提供除了静态数据已外的动态及/或实时数据。在此例子中,应用软件搜索引擎服务器100b可包含一虚拟机400、一网络应用程序500、一应用软件搜索引擎600以及储存装置19。虚拟机400是一个能托管(hosting)App的操作系统模拟环境,换句话说,App可以在虚拟机400上,如同于移动设备上一般地被执行。
在另一例子中,裸机方法也可在服务器100b或100e中应用于托管App。当应用裸机方法时,一程序(未示于图中)可作为服务器100b或100e与托管式App之间的接口,其可转译来自托管式App的系统呼叫(systemcall)为机器编码,并将机器编码直接送至服务器100b或100e,以处理服务器100b或100e(或应用软件服务器200)与托管式App之间的所有通讯(例如发送请求、接收应用程序数据等)。
在一例子中,App1的应用程序包可从应用软件服务器200或其它数据位置(未示于图中,一些例子为诸如APPStore或GooglePlay等应用程序商店)下载,应用软件服务器200或这些其它数据位置可储存应用程序包,或是提供这应用程序包的下载连结。
在一例子中,虚拟机400可包含一第一模块(或程序)402用于将应用程序包安装于虚拟机400。于此,虚拟机400可进一步包含一第二模块(或程序)404用于执行App1。第二模块404可连续地或周期地执行App1。在一例子中,如果有超过一个App运行于虚拟机400,第二模块(或程序)404可视其本身所设定的策略或规则,而依序地、随机地或并行地执行所有的App。
在一例子中,虚拟机400可进一步包含一第三模块(或程序)406用于分析所执行的App1。此模块决定App1如何与应用软件服务器200通讯。举例而言,第三模块406可检查App1所提供的不同功能,以及这些功能是如何经执行而从相对应的应用软件服务器200取得应用程序数据。随着此分析,可编写一脚本(script)405以自动地、有系统地执行App1而产生应用程序数据。
图5A~5E为App1的用户界面的范例。在此例子中,当如图5B中所示的对象(例如90-1)被接触或点击时,App1可提供向相关的应用软件服务器200请求数据的功能。于此,第三模块406可分析所述的用户界面而测定对象90-1~90-5的位置以及功能,脚本405则可经执行而模拟App1的用户的行为,例如点击或接触对象90-1,以向应用软件服务器200请求数据。另一个例子则是在第三模块406分析App1时,将脚本405编写入应用软件搜索引擎服务器100b(或第三模块406)。而再于另一个例子中,脚本405可被储存于应用软件搜索引擎服务器100b的储存装置19,并且在App1被分析时,将脚本405传输至第三模块406。
在另一例子中,如图4I所示,脚本405、第三模块406、第二模块404以及第一模块402可被整合为一机器人模块650。机器人模块605可用于模拟人类行为,而可如同真实的人类一般执行一App。又在另一例子中,机器人模块650可通过监视及记录人类用户的命令而学习/记录如何操作App。举例而言,机器人模块650可监视用户的输入记录而学习/记录其操作此App的行为特征。在另一例子中,机器人模块650可利用图像识别算法分析App的图形用户界面(GUI)。
在另一例子中,图像识别算法可包含一中文文字识别(opticalcharacterrecognition,OCR)算法,当使用OCR算法,App的图形用户界面及其当中的按键、字符、线段、页面及窗口等对象可经分析而被辨识,并且因此得以通过机器人模块执行特定的操作动作。
在另一例子中,机器人模块可利用随机探测算法分析图形用户界面,随机探测算法指引机器人模块随机地探测(例如对于用户界面上的任一位置任意输入任一输入事件,例如触碰、点选、滑动、拖曳等等)或是启动App的图形用户界面,例如以随机的方式探测或启动图形用户界面于屏幕上的像素。若图形用户界面的特定像素或是像素位置基于此随机探测算法而产生应用程序数据,则机器人模块可利用诸如机器学习方法(machinelearningmanner)等方式学习并记录此分析。
虚拟机400可进一步包含一第四模块(或程序)408,用于将应用程序数据储存于数据库888或储存装置19(或其它任何与应用软件搜索引擎服务器100b耦接的储存装置)。
本发明的另一实施例揭示如下。App1可通过第二模块404而被执行于虚拟机400,而虚拟机400当中的第三模块406则是用于分析App1。接着,脚本450即被执行而于App1产生活动,此活动包含从应用软件服务器200请求应用程序数据,而因此发送出的应用程序数据即被收集并储存于数据库888。另外,App1本身也可以产生应用程序数据,任何由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、扩充组件和插件等应用程序。在一例子中,第一用户10在操作App1时,App1可向应用软件服务器200请求应用程序数据或是由其自身产生数据。应用软件搜索引擎服务器100b可将前述的应用程序数据收集,并且储存于与应用软件搜索引擎服务器100b耦接的储存装置当中。在一例子中,运算装置5000可为智能手机10a、平板电脑10b、笔记型电脑10c或是个人电脑10d。
在另一例子中,应用搜索引擎服务器100b可进一步包含一虚拟机400,此虚拟机400包含一模块/程序404以于运算装置5000上执行App1。在另一实施例中,虚拟机400也可包含一模块406运行脚本405而在运算装置5000上执行App1。脚本405可被储存于储存装置内,或是嵌入模块406的内。模块406也可用于将应用程序数据储存在储存装置19或是其它与应用搜索引擎服务器100b耦接的储存装置当中。
图4D揭示本发明于一例子中的另一种网络实施例。应用程序数据可从应用软件服务器200或第一用户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)。然而,本技术领域具有通常知识者应理解本发明中的程序或是模块也可为实体对象,例如一个芯片或是一个电路。
网络爬虫/网络蜘蛛
在一例子中,一网络爬虫(webcrawler)(或网络蜘蛛)可被用于收集应用程序包、应用程序数据、与App相关的信息(例如描述)或是应用程序连结。应用软件搜索引擎服务器100b或操作系统模拟服务器100e可下载网络爬虫所收集的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(例如影片、动画、Flash的滑动背景等)。对象90-1至90-5可包含具选择性的图片90-1p至90-5p。在一例子中,对象90-1至90-5耦接至一网络应用软件服务器,以利用HTTP方法而从应用软件服务器提取动态、实时性的应用程序数据(例如『POSThttp://example.com/apiPurpose.php』或『GEThttp://example.com/apiPurpose.php?mode=GetData&ID=C00001』等『POST』、『GET』方法)。于此,当App向应用软件服务器请求应用程序数据时,应用软件服务器可以JSON格式或XML格式传输响应,例如{"status":"OK","result":{"name":"HappyCafe","display":"1","addr":"3F.,No.18-6,JinhuaSt.,Taipei,Taiwan,R.O.C","desc":"ThisistheIntroductionofHappyCafe","shophours":"0800-2200","openweek":"0111110","shoptel":"886-33433997","shopurl":"http://anotherexample.com","shopimage":[{"http://example.com/images/90-1p.jpg"}]}})。在本发明的一例子中,从应用软件服务器所提取的应用程序数据可包含:一页式浏览(oneview)应用程序的连结、应用程序数据的连结、应用程序包的可下载连结,以及与App或应用程序数据有关的文字、图片、影片以及声音。
应用搜索引擎所提供的用户界面的范例
图6A至图6C为本发明另一例子中,网络应用程序服务器100a或应用软件搜索引擎服务器100b提供给用户(例如第二用户)的用户界面的范例。图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浏览器的扩充组件「TheWeatherChannel」时,此扩充组件获得用户的所在位置(或是由用户输入他的所在位置),接着,与此扩充组件连接的应用软件服务器会将与前述所在位置的天气预报传送至用户电脑上的浏览器。此处的机制相当类似于App用户向应用软件服务器请求数据。
排程
排程器也可进一步应用于本发明的系统,排程器的主要功能在于安排及决定App的执行方式。排程器可为一个能被实施于本发明当中的任何服务器或数据库的脚本、编码或是程序。排程器也可作为一排程服务器、虚拟机或是机器人模块,其基于排程策略而执行App。
在一实施例中,一或多个排程器可被用于调度虚拟机或服务器执行App。而在另一实施例中,排程器也可用于调度机器人模块执行App。排程器于本发明当中的用途在于有效率地分配及利用系统资源,进而达成提升整体系统效能的目标。举例而言,在图4J中,排程器660为了便于执行App,其可被用于协调服务器(例如应用软件搜索引擎服务器100b)、第一用户20的电子装置、网络30、应用软件服务器200以及第二用户20的电子装置。又举例而言,排程器660可基于系统组件的需求而进行协调,例如所需要的资源量、运行中的任务数、等待时间、优先级、数据相依性等等。排程器660也可设置于本发明的所揭示的例子中的服务器(例如应用软件搜索引擎服务器100b)当中。
排程器可基于一排程策略而对系统中的多个构件进行排程。排程策略定义了App的执行方式,举例而言,所述的策略可建立规则以规范App被机器人模块、虚拟机或服务器执行的顺序。排程策略也可定义App的执行频率,使系统知晓App被执行的次数以及每次的间隔时间,其还可以管理App的执行时刻、频率、优先级以及执行时间长度。排程策略可被储存于数据库当中(例如数据库888或888’)。
在一例子中,排程器可在机器人模块、虚拟机或是服务器的负载较低时增加App的执行频率;相反的,排程策略也可指引排程器于负载较高时减少执行频率。
App在执行上的次序与优先权也可由排程策略定义,举例而言,排程策略可包含先到先做排程算法、最短工作优先排程算法、优先权排程算法、循环排程算法、多层队列排程算法、多层回馈队列排程算法以及/或实时排程算法。了解系统的条件以及资源,并且确认App的类型及特性将有助于判断使用哪种排程算法系较合适。举例而言,排程策略可动态地将一地位(status)分派至各个App,以决定App在执行上的优先级;特别是在首次执行App的后,各个App的闲置时间或是消耗时间可被记录,以供排程器依据所述的地位而动态地切换App的执行顺序。
排程策略可由人工智能或是手动的方式产生。在人工智能方式中,排程器可具有高阶智慧而学习App的特性,而App的特性可包含App的执行频率或是类型等(例如分类)。学习App的类型或分类可帮助排程器决定所述的App的执行频率。举例而言,新闻类App可能较游戏类App需要更高的执行频率,因为新闻类App通常会更频繁的更新内容。因此,若是执行了新闻类App,无论是由机器人模块、虚拟机或是服务器执行,排程器都可动态地提升其在执行上的频率或是优先级。相反的,排程器也可动态地降低鲜少更新的App的执行频率以或优先级。
而在手动的方式中,排程策略可以手动的方式输入;举例而言,系统的管理员可手动地命令App的执行次序、优先权或是频率。
App安全检查模块
对于开发者与用户而言,行动软件安全已成为今日重要的议题。随着市场上App的数量逐渐扩大,为了确保网络爬虫所找到的App式安全且不含恶意病毒,一个可靠的安全检查方法必须到位。
在一实施例中,如图4K所示的范例,其可配置一App安全检查模块670,其基于复数个安全等级而检查应用软件或App的安全性。更确切而言,可依应用程序的处理需求而定义不同的安全等级,且可用于阻挡不符合特定安全等级的App。在本发明的例子中,App安全检查模块670可被设置于虚拟机400之外,不过仍是位于服务器(应用软件搜索引擎服务器100b)的内。
在另一实施例中,App安全检查模块670可用于提供对App安全认证,将通过网络爬虫取得的App经由安全检查模块670检查其是否能通过各种不同的安全等级,例如等级一、等级二、等级三、等级四以及等级五等五种安全等级之一。
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可用于提供复数个输入事件(inputevent)以及/或指示运作一App,使所述的App得以直接执行于服务器701a。输入事件可包含手势事件,例如为了运做App而予以碰触、移动或是震动等动作。
在另一例子中,包装器750可用于将一App与一个运行应用程序接口包装,使所述的App可在所述的运行应用程序接口的辅助下而被执行于服务器701a。在此例子中所述的App在与所述的运行应用程序接口结合的前可能为不可执行的,这是因为所述的App可因使用特定的格式/程序语言而使其无法于一或多个在服务器701a上的操作系统中被执行(例如在iOS环境中可被执行的ipa档案在Android环境中则无法被安装/执行,除非是先与所述的运行应用程序接口包装,使与iOS相关的内容在输入/输出时被转译/转换为Android可接受的格式)。通过运行应用程序接口的帮助,App即可在服务器701a所使用的操作系统中执行。在部分例子中,被包装器750所包装的App可来自于前述的网络爬虫。
应用程序包储存模块760可用于为服务器701a储存App;举例而言,其可储存APP_11、APP_12、…、APP_1m、APP_21、…、APP_ij、…、APP_n1、APP_n2、…以及APP_nm等App。
储存装置740可用于储存服务器701a上所执行的一或多个App所产生的应用程序数据。
在本发明的一例子中,若虚拟机88通过虚拟机管理员720而产生,并特别用以执行APP_kk,则此虚拟机88也可包含一超管理器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的角色。
类似地,虚拟机89可由虚拟机管理员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可将AppAPP_jj自应用程序包储存模块760进行安装。
代理程序Pr_jj可用于作为发送或接收AppAPP_jj的应用程序数据。
在部份例子中,服务器701a所搭载的操作系统可用于行动电子装置,例如为iOS、Android、…等。
在部分例子中,超管理器88a和89a可为Linux操作系统的核心的虚拟化基础设施,例如基于核心的虚拟机(kernel-basedvirtualmachine,简称KVM)。
在部分例子中,虚拟机88与89可运行Linux操作系统,例如CentOS(像是CentOS6.4)或Ubunto。
在本发明的部分实施例中,SDN730可配置为管理虚拟机(例如虚拟机88和89)及与所述的这些虚拟机相关的应用软件服务器(例如应用软件服务器201和202)之间的数据传输及/或接收。可组态(configurable)SDN730会储存服务器701a所提供的虚拟机地址(例如IP地址)。当应用软件服务器(例如应用软件服务器201)对一App(例如APP_kk)请求应用程序数据,可组态SDN730即会依据前述所储存的地址,将执行所述的App的虚拟机(例如虚拟机88)所产生的应用程序数据发送给相关的服务器。当服务器701a被用于同步托管大量的虚拟机时,可组态SDN730将会帮助服务器701a有效率地管理虚拟机及其相关服务器之间的应用程序信息通讯量。
在部分例子中,可组态SDN730可被开放虚拟交换标准(OpenvSwitch)技术所实现。
服务器701a运作的流程范例如下所示:当服务器701a准备执行APP_kk时,排程器710指示虚拟机管理员720产生虚拟机88。接着App管理员SM_kk可执行APP_kk以产生应用程序数据。代理程序Pr_kk则可将应用程序数据储存于储存装置740,或者是通过网络30而将应用程序数据指引至应用软件服务器201(也可在本发明部分实施例中通过可组态SDN730的帮助),或者是自服务器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包装的App的API呼叫(例如系统呼叫),以及可记录及分析App在机器学习方法中的行为(或是从系统呼叫中提取应用程序数据/内容)。
图8A为本发明的一实施例中,使用数据收集模块3000以在用户阶层(user-level)挂勾应用程序数据的操作系统的概念图。如图8A所示,一挂勾服务器810可耦接获设置于服务器100b或100e,并且用接收所挂勾的应用程序数据以及将的转移至数据储存库、储存装置或其它前置处理工具。而当通过一系统/核心呼叫850对一函数库840呼叫,使所述的函数库840接收到应用程序数据的时或的后,一挂勾程序820可用于提取/截取、记录或分析此应用程序数据。
图8A为在执行App830的过程中,所发生的互动的范例流程图,其中:
阶段80A:挂勾服务器810自挂勾程序820接收其所提取/截取的应用程序数据。
阶段801:App830呼叫函数库840以产生向远程应用软件服务器200请求应用程序数据的请求。
阶段802:挂勾程序820挂勾函数库840(例如呼叫一个挂勾API以挂勾函数库840所接收到的应用程序数据),以接收到在系统呼叫850呼叫函数库840的后产生的应用程序数据。
阶段803:在函数库840被App830呼叫的后,产生一个给予系统呼叫850的请求(例如一个HTTPPOST或GET方法)。系统呼叫850可传输HTTPPOST或GET请求至相关的驱动程序,例如网络适配卡(NIC)驱动程序。网络适配卡驱动程序会将HTTPPOST或GET请求转换/变换/编码/嵌入而形成一个封包,并且将的通过MAC子层(即OSI模型当中的数据链路层的媒体访问控制子层)以及/或PHY层(即OSI模型当中的实体层),而经因特网传输至远程与App830相关的应用软件服务器(例如应用软件服务器200)。
阶段804:系统呼叫850将其接收到的应用程序数据自驱动程序转移至函数库840。
阶段805:函数库840自系统呼叫850接收到的应用程序数据在此阶段会被挂勾程序820提取/截取。
阶段806:在自系统呼叫850接收到应用程序数据以及呼叫函数库840的后,即产生响应阶段803当中的请求的结果。举例而言,如果原本的请求是对内容进行请求,则在系统呼叫850接收到内容(例如包含有复数个文字的文章)的后,此阶段会呼叫函数库840,以在用户界面上显示所述的内容(例如将内容显示于App830的用户界面中的窗口)。
在一例子中,请求可附带关键词,而应用程序数据可附带所述的这些关键词的相关搜寻结果,挂勾程序820则可用于接收所述的搜寻结果。在经过自挂勾服务器810开始的一段处理程序后,搜寻结果最后可被储存于储存装置当中(例如储存装置740或数据储存库8888)。
图8B为本发明一实施例中,使用数据收集模块3000以在核心阶层挂勾应用程序数据的操作系统的概念图;如图8B所示,其图中所示的单元的功能与图8A中的相同,故不再重复叙述。
图8B为在执行App830的过程中,所发生的互动的范例流程图:
阶段80A:相同于前述的阶段80A。
阶段801:相同于前述的阶段801。
阶段812:在函数库840被App830呼叫后,产生一个请求并被挂勾程序820截取。
阶段813:挂勾程序820发送所述的请求至系统/核心呼叫850;同样的,系统/核心呼叫传输所述的请求(例如一个HTTPPOST或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相对应的一代理程序提取/截取并储存所述的响应中的数据或内容于一储存装置或一数据储存库。
图9B中的各个阶段如下所示,其包含App安全检查机制:
阶段911:排程器请求与一App相关的一排程策略。
阶段912:所述的请求被响应并附带一确认通知。
阶段913:排程器启动与所述的App相对应的一虚拟机管理员。
阶段914a:虚拟机管理员呼叫一App安全检查模块以检查所述的App的安全层级。
阶段914b:所述的虚拟机管理员呼叫一代理程序以提取/截取与所述的App相关的传输数据以供未来进行分析。
阶段915:在排程器的控制之下,虚拟机管理员可启动或停用App,或者是操作App。
阶段916:在App安全检查模块的监视以及代理程序的截取之下,App发送一请求至与的相对应的应用软件服务器。
阶段917:在App安全检查模块的监视以及代理程序的截取之下,应用软件服务器回传一响应,所述的响应附带有与所述的请求相关的数据或是内容。
阶段918a:App请求App安全检查模块终止其监视。
阶段918b:App请求代理程序终止提取/截取与所述的App相关的资料。
阶段919:代理程序储存其所提取/截取的数据或内容制一储存装置或一数据储存库。
阶段920:App回应所述的终止请求。
阶段921:代理程序响应所述的终止请求。
阶段922:虚拟机管理员响应所述的终止请求。
阶段923:排程器将收集应用程序数据的过程的结果储存于储存装置或是数据储存库当中。
图9C为数据收集模块3000或图7A~7H中的代理程序在提取/截取与一App相关的资料/内容的流程图,其中:
阶段931:当App启动时,自虚拟机管理员接收一截取要求;所述的截取要求可包含所述的App的身分。
阶段932:在收集所输入的数据/内容时,将截取请求以及与所述的App有关联的输入的数据/内容进行整合。
阶段933:截取以及/或分析所收集的数据/内容,所述的数据/内容与所述的App相关。
阶段934:响应一终止请求,并储存所收集的数据/内容于一储存装置或数据储存库。
图9D为一实施例的排程器运作的流程图,其中:
阶段941:于一个储存装置或数据储存库中检索一排程策略。在一例子中,一时间事件(例如建立一时间戳(timestamp))也可包含于检索排程策略时的检索范围的内。
阶段942:发送一截取请求至一虚拟机管理员。
阶段943:等待一终止通知,并且在接获所述的终止通知时,储存与所述的App相关的截取数据/内容。
图9E为虚拟机管理员(或机器人模块)于一实施例运作的流程图,其中:
阶段951:当一App启动时,自一排程器接收一截取请求,所述的截取请求为关于截取与所述的App相关的资料/内容。
阶段952:虚拟机管理员被所述的排程器启动而截取与所述的App相关的数据/内容。
阶段953:依据所述的排程器而执行所述的App的功能。
阶段954:发送一截取请求至一App安全检查模块。
阶段955:发送一截取请求至一数据收集模块或一代理程序。
阶段956:通知所述的排程器终止其活动,并且储存与所述的App相关的数据/内容于一储存装置或一数据储存库。
本发明更揭示了另一个搜寻应用程序的方法,此方法包含执行至少一个应用程序的步骤。所述的应用程序可在一个其适合的硬件或是虚拟机上运行。而当应用程序被执行时,与的相对应的应用程序数据即被生成。这些应用程序数据可从相对应的应用软件服务器接收,以及/或者是由此应用程序本身产生。所述的应用程序数据基于应用程序运作如何运行而可为静态或动态的形式。所述的应用程序数据可被储存于一储存装置当中,例如本发明的系统当中的数据库或内存。而通过诸如网络搜寻栏位等接口,用户可输入其搜寻内容,当接收到来自于用户的查询指令时,即会进行搜寻而找出与查询指令相关的特定应用程序数据。若相关的应用程序数据被辨识出,这些相关的应用程序数据的信息就会被传送给发出查询指令的用户。
本技术领域具有通常知识者应能理解,对于应用程序、网络App、扩充组件或插件的搜寻方法与前述对App的搜寻方法相近,本发明对此已于前有详尽的说明;因此,本发明于前述所有关于App的实施例、方法、系统以及组成组件皆可适用于搜寻应用程序、网络App、扩充组件或插件。
上文仅为本发明的较佳实施例而已,并非用来限定本发明实施的范围,凡依本发明如权利要求范围所述的形状、构造、特征及精神所为的均等变化与修饰,均应包括于本发明的如权利要求范围内。

Claims (28)

1.一种搜寻应用软件的系统,其特征在于,其包含:
一或多个应用软件;
一或多个服务器,用于执行所述的或所述的这些应用软件;
一或多个排程器,用于依据一排程策略而排程所述的或所述的这些服务器执行所述的或所述的这些应用软件;
一或多个电脑程序,用于收集所述的或所述的这些应用软件的应用程序数据,并且储存所收集的所述的应用程序数据于一或多个数据库;以及
一或多个搜索引擎,用于提供搜寻服务,其使用经收集且储存于所述的或所述的这些数据库的所述的应用程序数据来搜寻所述的或所述的这些应用软件。
2.如权利要求1所述的搜寻应用软件的系统,其特征在于,其中所述的或所述的这些电脑程序更包含一机器人模块,用于模拟一用户执行所述的或所述的这些应用软件的行为,以进行至少产生所述的应用程序数据与接收所述的应用程序数据其中之一。
3.如权利要求2所述的搜寻应用软件的系统,其特征在于,其中所述的机器人模块通过记录真实用户操作所述的或所述的这些应用软件的行为而模拟所述的用户的行为。
4.如权利要求1所述的搜寻应用软件的系统,其特征在于,其中所述的或所述的这些电脑程序进一步包含一数据收集代理程序,用于提取或快取所述的或所述的这些应用软件的所述的应用程序数据。
5.如权利要求1所述的搜寻应用软件的系统,其特征在于,其更包含:
一包装器,用于提供至少一输入事件以及一指令其中之一,以执行所述的或所述的这些应用软件。
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收集所述的应用程序数据。
CN201410383444.8A 2013-08-07 2014-08-06 搜寻应用软件的方法及其系统 Pending CN105354189A (zh)

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 (1)

Publication Number Publication Date
CN105354189A true CN105354189A (zh) 2016-02-24

Family

ID=51300568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410383444.8A Pending CN105354189A (zh) 2013-08-07 2014-08-06 搜寻应用软件的方法及其系统

Country Status (6)

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

Families Citing this family (5)

* 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
CN105488112B (zh) * 2015-11-20 2019-09-17 小米科技有限责任公司 信息推送方法及装置
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 (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101371245A (zh) * 2005-07-12 2009-02-18 维兹博麦哲思公司 动态应用程序使用信息的分布式采集和汇集
US20110016356A1 (en) * 2009-07-14 2011-01-20 International Business Machines Corporation Fault detection and localization in dynamic software applications
EP2610776A2 (en) * 2011-09-16 2013-07-03 Veracode, Inc. Automated behavioural and static analysis using an instrumented sandbox and machine learning classification for mobile security

Family Cites Families (13)

* 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
US7552422B2 (en) * 2004-03-31 2009-06-23 Microsoft Corporation Test case inheritance controlled via attributes
US7630972B2 (en) * 2007-01-05 2009-12-08 Yahoo! Inc. Clustered search processing
JP2009116733A (ja) * 2007-11-08 2009-05-28 Nec Corp アプリケーション検索システム、アプリケーション検索方法、モニタ端末、検索サーバおよびプログラム
JP5287099B2 (ja) * 2008-09-29 2013-09-11 日本電気株式会社 検索装置、情報処理装置、検索方法、プログラム及び記録媒体
JPWO2012014284A1 (ja) * 2010-07-27 2013-09-09 株式会社日立製作所 テストシナリオ生成方法、テストシナリオ生成システム、及び、テストシナリオ生成プログラム
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
US8737980B2 (en) * 2011-09-27 2014-05-27 W2Bi, Inc. End to end application automatic testing
JP5420623B2 (ja) * 2011-11-05 2014-02-19 京セラドキュメントソリューションズ株式会社 プログラム
JP5906705B2 (ja) * 2011-12-06 2016-04-20 日本電気株式会社 テストシステム、テスト方法、及び、プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101371245A (zh) * 2005-07-12 2009-02-18 维兹博麦哲思公司 动态应用程序使用信息的分布式采集和汇集
US20110016356A1 (en) * 2009-07-14 2011-01-20 International Business Machines Corporation Fault detection and localization in dynamic software applications
EP2610776A2 (en) * 2011-09-16 2013-07-03 Veracode, Inc. Automated behavioural and static analysis using an instrumented sandbox and machine learning classification for mobile security

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7411651B2 (ja) コンテンツアイテム推奨をランク付けするための技術
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
US11899681B2 (en) Knowledge graph building method, electronic apparatus and non-transitory computer readable storage medium
US20150046425A1 (en) Methods and systems for searching software applications
CN106462582B (zh) 批处理优化渲染和获取架构
CN104331477A (zh) 基于联邦式检索的云平台并发性能测试方法
CN107103016A (zh) 基于关键词表示使图像与内容匹配的方法
CN109388637A (zh) 数据仓库信息处理方法、装置、系统、介质
CN111640040A (zh) 基于客户画像技术的供电客户价值评价方法及大数据平台
CN103294815A (zh) 基于关键字分类并有多种呈现方式的搜索引擎装置与方法
US20120072885A1 (en) Integrating user interface components
JP6363682B2 (ja) 画像とコンテンツのメタデータに基づいてコンテンツとマッチングする画像を選択する方法
CN105354189A (zh) 搜寻应用软件的方法及其系统
CN105550206B (zh) 结构化查询语句的版本控制方法及装置
CN104321768A (zh) 用于执行应用程序以通过浏览电信网络查阅可访问的内容和服务的方法和系统
CN109151824A (zh) 一种基于5g架构的图书馆数据服务扩展系统及方法
CN105007314A (zh) 面向海量读者阅读数据的大数据处理系统
US11126785B1 (en) Artificial intelligence system for optimizing network-accessible content
Honest et al. A survey of big data analytics
CN114428705A (zh) 一种网络数据的监测方法、装置、设备以及存储介质
US8990192B2 (en) Search engine optimization using a find operation
CN110069691A (zh) 用于处理点击行为数据的方法和装置
US9692804B2 (en) Method of and system for determining creation time of a web resource
JP2023535608A (ja) ミドルウェアによって生成されたレコードの直接的なデータローディング

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160224

WD01 Invention patent application deemed withdrawn after publication