本申请要求由Lam等人在2010年11月10日提交的、题目为“VAIOCare Metrics”的美国临时专利申请61/412,030的权益。该申请的全部内容通过引用结合于此。
具体实施方式
应该注意,在本公开中并且特别是在权利要求和/或附图中,诸如“包括”、“被包括”、“包含”等术语可以具有归结为其在美国专利法中的含义;即它们可以意味着“包括”、“被包括”、“包含”、“包括但不限于”等。诸如“基本上由...构成”和“基本上由...组成”等术语具有归属于其在美国专利法中的含义;即它们允许没有明确陈述的元件,但是排除在现有技术中出现的或者影响本发明的基本特性或新颖特性的元件。这些和其他的实施例通过下面的描述被公开或显而易见,并且被包括在下面的描述中。如本申请所使用的,术语“组件”和“系统”意图指代与计算机相关的实体、或者硬件、硬件和软件的组合、软件或者在执行中的软件。例如,组件可以是但不限于在处理器上运行的程序、处理器、对象、可执行文件、执行线程和/或计算机。作为示例,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可以存在于程序和/或执行线程内,并且组件可以局限在一个计算机上和/或分配在两个或多个计算机之间。
此外,为了说明的目的,详细的说明描述了本发明的各种实施例,并且本发明的各种实施例包括所描述的方法并且可以利用诸如连接至电子媒介的处理装置等的一个或多个装置来实现。本发明的实施例可以存储在电子媒介(电子存储器、RAM、ROM、EEPROM)上,或者作为计算机代码(例如,源代码、对象代码或其他适合的编程语言)被编程,以通过相互配合运行的一个或多个处理器和/或一个或多个电子存储媒介来执行。
本发明的实施例可以利用一个或多个处理设备或处理模块来实现。处理设备或模块可以连接成以下方式:处理和/或数据操作的部分可以在一个或多个处理设备上执行,并且可以在多个处理设备或模块之间共享或传输。
事实上,本发明可以在分布式或“云”计算环境中实现,在分布式或“云”计算环境中,共享资源、软件和信息可以经由网络(例如可以是互联网)被提供到计算机和其他设备。“云计算”通常涉及经由互联网提供托管服务。云服务通常具有将其与传统的托管区分开的三个鲜明特点。一个特点是它是按需求出售的,通常按分钟或小时计;第二,它很灵活——用户可以在任何给定时间具有他们想要的多少的服务;以及第三,这种服务通常是由供应商完全托管的(用户除个人计算机和互联网接入外无其他需求)。虚拟和分布式计算的重大创新以及对高速互联网的改善的接入,促进了对云计算的兴趣。云端可以是私有的或公共的。公共云通常向在互联网上的任何人出售服务(目前,亚马逊Web服务(Amazon WebServicesTM)是最大的公共云供应商)。私有云是向有限数量的人提供托管服务的专用网络。当服务供应商使用公共云资源来创建它们的私有云时,其结果称为虚拟私有云。无论是私有的或公共的,云的目标是提供计算的容易的、可升级的入口。
“分布式计算”或“分布式系统”涉及通过网络通信的多个自主计算机或者处理设备或设施的系统。计算机彼此交互以实现特定的目标。在分布式系统中运行的计算机程序通常称作“分布式程序”,并且“分布式编程”是写这样的程序的过程。分布式计算也指利用分布式系统解决计算问题。通常在分布式计算中,问题被分成多个任务,每个任务由一个或多个计算机解决。一般,分布式计算是涉及在计算问题或信息处理中每个均具有任务的、彼此远程的多个计算机。
图1示出了支持本发明的实施例的网络环境100。如图1所示,系统包括通信网络102、HTTP服务器104、文件服务器106、数据库服务器108、web服务器110和多个用户设备112(a)、112(b)、...112(n)(其中n是任何适合的数字)。
通信网络102例如是适用于传送和处理数据的相连的计算机或处理设备的任意组合。通信网络102可以是诸如能够利用万维网(www)浏览功能的互联网之类的公共IP网络以及私有互联网协议(IP)网络。有线网络的示例是使用通信总线和调制解调器、或DSL线路、或局域网(LAN)或广域网(WAN)在终端之间传输和接收数据的网络。无线网络的示例是无线LAN。全球移动通信系统(GSM)是无线网络的另一个示例。GSM网络被分成三个主要系统,即交换系统、基站系统、以及运行和支持系统。此外,IEEE 802.11(Wi-Fi)是在计算机系统中广泛使用的无线网络,其能够连接至具有Wi-Fi功能的互联网或其他机器。Wi-Fi网络播送能够被连接至不同计算机的Wi-Fi接收器收听到的无线电波。
HTTP服务器模块、设备或单元104通常是诸如计算机等的具有相关联的存储器的一个或多个处理器,或者诸如桌面计算机等的其他处理设备。HTTP服务器104还可以用作外部服务器,聚集的使用数据被从用户设备发送到该外部服务器。HTTP服务器104包括CPU 160,CPU 160经由互连介质162可操作地连接至存储器164。CPU 160是通常包括ALU并且被配置为执行处理运行和操作的处理单元。存储器164通常是以电子格式存储数据的电子存储介质。
文件服务器模块、设备或单元106通常是服务器、计算机或诸如桌面计算机、膝上型计算机等的其他处理设备。服务器模块106包括经由有线或无线介质122与相关联的存储器模块124双向地连接的一个或多个处理器120。文件服务器106的存储器模块124可以包括多个算法存储模块500、600、700、800、900、1000、1100和1200。文件服务器106还可以是用于处理从HTTP服务器104发送的数据的内部服务器。
数据库服务器模块、设备或单元108通常包括经由有线或无线介质128与相关联的存储器模块130双向地连接的一个或多个处理器126。数据库服务器模块108通常是计算机、服务器或诸如桌面计算机、膝上型计算机等的其他处理设备。存储器130包括用于数据分析的算法138以及用于存储数据的多个数据库,数据库(1)132、数据库(2)134、...数据库(n)136(其中n是任何适合的数字)。数据库服务器108用作用于数据分析的服务器。
类似地,web服务器模块、设备或单元110通常包括经由有线或无线介质142与相关联的存储器模块144双向地连接的一个或多个处理器140。Web服务器模块110通常是计算机或诸如桌面计算机、膝上型计算机等的其他处理设备。存储器144包括算法146、诸如监视器等的输出装置148、诸如键盘或鼠标等的输入装置150以及浏览器软件152等。Web服务器110用作主机和建立网站的服务器。
注意,文件服务器106、数据库服务器108和web服务器110可以是单独的服务器,并且也可以实现为可以在云计算或分布式计算环境中使用的一个或多个分开的服务器。
用户设备112(a)、112(b)、...112(n)(其中n是任何适合的数字)经由相关联的通信介质113(a)、...(n)直接连接至通信网络102。用户设备112可以是任何适合的消费者电子(CE)单元或模块或设备。如图2所示,用户设备可以是计算机产品。
HTTP服务器104、文件服务器106和用户设备112(a)、112(b)、...112(n)经由相关联的双向通信介质连接至通信网络102,该双向通信介质例如可以是诸如IEEE 1394等的串行总线或其他有线或无线传输介质。此外,web服务器110经由通信介质180与数据库服务器108双向通信,其可以是有线或无线连接。数据库服务器108经由通信介质170与文件服务器106双向通信,其可以是有线或无线连接。
图2示出了支持本发明的实施例的替换的网络环境200。如图2所示,系统包括HTTP服务器104、文件服务器106、数据库服务器108和web服务器110,其中文件服务器106和数据库服务器108经由双向介质206连接,并且数据库服务器108和web服务器110经由双向介质208连接。HTTP服务器104经由互连介质105可操作地连接至文件服务器106,其可以是有线或无线连接。系统200还包括经由双向介质202连接至HTTP服务器104的用户设备112,并且可以使用HTTP协议连接。虽然图2中仅示出了一个用户设备112,但是在本发明的实施例中,可以使用多个用户设备112。
在用户设备112处收集应用程序使用数据(AUD)(图5)和系统使用数据(SUD)(图6)。在预定时间处,在用户设备112处的上传进程压缩和加密数据,并且利用诸如FTP、SOAP或HTTP协议202等任何适合的协议将经压缩和加密的数据发送到HTTP服务器104。例如,利用用于安全传输的HTTP协议,将数据经由通信介质105发送到文件服务器106。经由通信介质206将数据从文件服务器106处发送到数据库服务器108。数据库服务器108包括两个核心表,该核心表将参考图8和图9更详细地描述。
本文所公开的发明可使用可编程数字计算机来实施。图3是代表性计算机系统的框图300。计算机系统300包括连接至通信信道364的至少一个处理器361,例如英特尔酷睿2(Intel CoreTM 2)微处理器或FreescaleTMPowerPC微处理器。计算机系统300还包括输入输出接口单元365。用户接口单元366、诸如键盘或鼠标等的输入设备或单元367、诸如CRT或LCD显示器等的输出设备或单元368、通信单元370、诸如磁盘或光盘等的数据存储设备或单元369、能够在可移除介质372上读/写数据的诸如CD-ROM、DVD-ROM等的驱动器371,连接到输入输出接口单元365。只读存储器(ROM)362和随机存储器(RAM)363各自连接至通信信道364。通信单元370可以连接至诸如互联网等的网络。而且,计算机系统300可以装备有适合与万维网通信的浏览器程序。
本领域的技术人员将认识到,虽然数据存储设备或单元369和存储器362、363被描述为不同的单元,但是数据存储单元369和存储器362、363可以是相同单元的部分,并且其中一个的功能可以例如作为RAM磁盘、虚拟内存等由另一个全部或部分地共享。同样将明白,任何特定的计算机可以具有给定类型的多个组件,例如处理器361、输入设备367、通信单元370等。
数据存储单元369和存储器362、363可以存储诸如Microsoft
或Vista
TM、
或
等的操作系统。代替操作系统或除了操作系统以外可以存储其他程序。将明白,计算机系统还可以在除上述系统以外的平台和操作系统上实施。任何操作系统或其他程序、或者两者的一部分,可以使用诸如可以利用面向对象设计和/或编码技术的
C、C++、C#、Visual
Perl、Ruby、Python或其他任何编程语言等的一个或多个编程语言来编写。在云计算或分布式计算环境中可以进入这些平台和操作。
计算机系统300还可以包括额外的组件和/或系统,诸如网络连接、额外的存储器、额外的处理器、网络接口、输入/输出接口或总线等。此外,程序和数据可以替代的方式被系统接收并存储在系统中。例如,诸如磁盘驱动器、磁光驱动器、光盘驱动器或闪存驱动器等的计算机可读存储介质(CRSM)读取器可以连接至通信信道364,以从诸如磁盘、磁光盘、光盘或闪存RAM等的计算机可读存储介质(CRSM)中读取。此外,计算机系统300还经由CRSM读取器接收程序和/或数据。此外,将明白,这里的术语“存储器”意图包括无论是永久性的或临时性的、诸如暂时性电子存储器、非暂时性计算机可读介质和/或计算机可写介质等的、各种适合的数据存储介质。
两个或更多个计算机系统300可以经由例如其各自的通信接口和/或网络接口(未示出)例如在一个或多个网络中连接。
图4图示了根据本发明的实施例的使用数据402的示例400。使用数据402细分为两种数据,应用程序使用数据(AUD)404和系统使用数据(SUD)428。
AUD 404由通用系统信息406和应用程序使用日志416构成。通用系统信息406由称为全局唯一标识符(GUID)408的随机产生的系统ID、型号信息410、区域信息412和OS信息414构成,其中全局唯一标识符(GUID)408在不报告任何个人身份识别信息的情况下(这保持用户隐私)允许系统保持在计算机上所记录的数据,型号信息410是系统的型号,区域信息412包括关于系统的用户选择了哪种语言的信息,OS信息414包括系统正在运行什么操作系统和该操作系统的版本。
应用程序使用日志416包括日期信息418、时间信息420、地区信息422、动作信息424和结果信息426,其中地区信息422包括指示动作发生的地点的数据,动作信息424包括关于发生了什么动作(例如点击)的数据,并且结果数据426包括指示动作的结果的数据。
SUD 428由硬件信息430和软件信息446构成。硬件信息430包括CPU使用数据432、网络使用数据434、磁盘带宽数据436和操作模式信息438。操作模式信息可以包括指示CPU的电压和频率的P-状态信息440、指示CPU在若干所包括的电压状态模式中的哪个当中运行的C-状态信息442以及指示系统在待机/睡眠/休眠模式的S-状态信息444。
软件信息446包括进程信息448,其包括在系统上运行的所有进程的列表、描述、其运行时使用了多少CPU、磁盘和网络带宽以及其有多经常使用。软件信息446还包括DLL信息450,其是与各个进程相关联的所有DLL的列表,包括它们的描述、其运行时使用了多少CPU、磁盘和网络带宽以及其有多经常使用。
图5图示了根据本发明的实施例在XML版本中的应用程序使用数据(AUD)的示例500。XML用于跟踪用户输入的所有点击,并且允许数据挖掘以总结哪些特征被使用或未被使用。
图6图示了根据本发明的实施例在XML版本中的系统使用数据(SUD)的示例600。在一个实施例中,用于SUD的代码以原语C++编写,该程序对系统生态系统(运行速度、所使用的处理器容量、电力消耗、所使用的存储器空间等)具有最小的影响。程序被写入以将SUD数据的XML译成可用于分析的可读格式。
在收集了应用程序使用数据(AUD)和系统使用数据(SUD)之后,上传程序压缩和加密数据文件。然后经由用于安全交易的HTTP协议传输数据文件。压缩、加密和上传可以写为通用代码,以使得其他应用程序可以使用相同的方法。AUD和SUD可以在任何预定或请求的时间处、被发送到文件服务器。例如,AUD可以每月一次被发送到文件服务器,并且SUD可以每周一次被发送到文件服务器。
图7图示了根据本发明的实施例、读取和比较SUD的进程代码的示例700。在图7中,部分702示出了硬件信息,部分704示出了软件信息,部分706示出了样本进程并且部分708示出了菜单。
部分702示出了统计信息的示例。这被示为“statistic”(统计信息)、“interval 1”(间隔1)、“interval 2”(间隔2)三列。如区域702所示,统计信息列列举了各种类别,诸如“Sust Disk BW(MB/sec)”(维持盘带宽(MB/sec))、“Disk BW(conf)”(盘带宽(配置))、“Max Disk BW(MB/Sec)”(最大盘带宽(MB/sec))、“SustNetBW(KB/Sec)”(维持网络带宽(KB/sec))等。
部分704示出了可以运行的程序的列表。如部分704所示,这些可以包括“devenv.exe”、“svchost.exe”、“chrome.exe”、“System”等。软件信息704可以不同的颜色高亮显示来组织。虽然图7以黑白格式示出,但各种组件和元件以彩色输出表示也是本发明的实施例。例如,绿色高亮显示可以指示用户启动进程,粉色高亮显示可以指示系统进程,并且蓝色高亮显示可以指示未知进程。
部分706示出了样本进程。其例如包括“process”(进程)、“process time”(进程时间)、“i0Bytes”、“nInvoke”(n调用)、“runtime”(运行时间)的列表。“process”列表包括部分704的样本进程。
部分708示出了标题为“Slow Pct”、“Net”、“Disk”、“Proc”和“All”的菜单子画面。在部分708中也可以使用其他的标题。
图8图示了根据本发明的实施例的AUD数据库800的示例。如图8所示。如图8所示,提供了各种数据库输出的显示。具体而言,图8示出了MS SQL怎样对用户区分不同的数据库项目的代表。虽然图8示出了MS SQL类别的示例,但也可以采用任何其他适合的类别形式。
图9图示了根据本发明的实施例的SUD数据库900的示例。SUD数据包括特定格式的数据库项目输出。具体而言,图9示出了MS SQL怎样对用户区分不同的数据库项目的代表。虽然图9示出了MS SQL类别的示例,但也可以采用任何其他适合的类别形式。
图10图示了根据本发明的实施例、呈现出数据分析结果的诸如网站的网页等的显示的示例1000。为了分析存储在数据库中的数据,可以例如在云计算或分布式计算环境中使用一起和/或单独运作(本地或远程)的一个或多个处理器,来处理或操作所得到的关于设备使用的数据。该数据可以显示在网站的网页上。当操作者利用网站执行查询时,数据可以被从web服务器(作为组件110在图1中示出)向数据库服务器(作为组件108在图1中示出)请求。适合的网页的一个实施例作为网页显示1000在图10中示出。该网页显示1000包括显示的图形表示区域1002、1004;文件夹部分1006和汇总部分1008。
部分1002和1004是用于显示图形表示的区域。具体而言,图形表示1002和1004图示了所收集的数据的图形表示。
部分1008示出了以列表或书面的形式提供显示或输出的汇总部分。
部分1006示出了如本文所述的各种文件夹和类别的列表。这些类别例如包括“One Click and Tune Up”(单次点击和调节)、“Trouble Shootand Diag.”(故障排除和诊断)、“Restore/Recovery”(恢复/复原)、“Help and Support”(帮助和支持)、“Performance”(性能)、“TimeTo Desktop”(前往桌面)、“Online Crash Analysis”(在线崩溃分析)等。
图11示出了根据本发明的实施例的用于对用户设备进行故障排除的一系列步骤1100。步骤1100可以存储在诸如计算机可读介质等适合的电子存储介质上。存储单元可以是在本文所述的文件服务器、数据库服务器、HTTP服务器或其他处理和/或存储设备中的任何存储单元。步骤1100描述识别故障排除进程和修改故障排除的算法。具体而言,步骤1100从步骤1102开始。在步骤1104中,由系统产生默认的故障排除步骤列表。
在步骤1106中,用户可以登陆他/她的帐户。然后在步骤1108中判断用户是否同意提供产品的使用模式数据和设置信息数据。如果用户不希望提供相应的信息,则“否”线指向步骤1110,在步骤1110中,由系统识别产品(产品指的是用户设备(主要用户设备)、第二用户设备(次要用户设备)、软件或硬件或任何设备的组合,软件和/或硬件)的组桶(bucket)ID,并且在步骤1112中,系统获取与用户的产品具有相同的组桶ID的其他产品的故障排除信息,并且程序代码1100前进到步骤1120。其他产品可以是额外的硬件或软件或次要用户设备,即与相同的用户帐户相关联的、除了用户正在使用的设备以外的用户设备。
返回到步骤1108,如果用户同意提供使用模式数据和设置信息,则“是”线指向步骤1114,在步骤1114中由系统获取相应的信息。在步骤1116中,将基于所获取的产品的使用模式数据和设置信息来改变在故障排除步骤列表中的各个步骤的优先权。
在步骤1118中,将基于由用户提交的、或者根据与用户相关联的使用模式数据所产生的、或者设备(主要和次要)或硬件或软件的、先前的错误报告,来改变在故障排除步骤列表中的各个步骤的优先权。例如,基于用户先前的错误报告,如果已经执行了特定的故障排除步骤来解决由用户所报告的问题,则相应的故障排除步骤将在故障排除列表上具有较高的优先权。
然后在步骤1120中,将基于产品的组桶ID来改变在故障排除步骤列表中的各个步骤的优先权。例如,如果具有相同的组桶ID的大量的产品已经报告了产品的相同问题,并且所报告的问题可以通过执行特定的故障排除步骤来解决,则相应的故障排除步骤将在故障排除列表上具有较高的优先权。例如,如果从很多用户获取的用户数据或使用模式数据识别诸如
等的程序出现故障,并且电池寿命被缩短,则故障排除步骤列表将在推荐更换电池之前、检查
的运行。
在步骤1122中,故障排除步骤列表被更新,并且然后在步骤1124中当前的故障排除步骤列表被作为最新的自定义列表存储。然后程序代码1100进入到结束步骤1126。
图12示出了根据本发明的实施例更新故障排除列表的一系列步骤。步骤1200可以存储在诸如计算机可读介质等适合的电子存储设备上。存储单元可以是在文件服务器、数据库服务器、HTTP服务器或其他远程或本地存储器中的本文所述的任何存储单元。进程1200以开始步骤1202开始。在步骤1204中,用户可以登陆他/她的账户,并且在步骤1206中,用户可以请求与产品(产品指的是用户设备(主要用户设备)、第二用户设备(次要用户设备)、软件或硬件或任何设备的组合,如本文所指的软件和/或硬件)有关的帮助。在步骤1208中,判断用户是否同意提供产品的使用模式和设置信息。如果用户拒绝提供相应的信息,则“否”线指向步骤1214。如果用户同意提供使用模式数据和设置信息,则“是”线指向步骤1210,在步骤1210中,由系统获取相应的信息。在步骤1212中,将基于所获取的产品的使用模式数据和设置来改变在故障排除步骤列表中的各个步骤的优先权。
在步骤1214中,系统基于各个故障排除步骤的优先权按顺序对最新存储的故障排除步骤列表执行故障排除步骤。每当在步骤1214中列表上的故障排除步骤已被执行后,程序代码前进到步骤1216,其中在步骤1216中判断产品的问题是否已经解决。如果没有解决,则“否”线返回指向步骤1214,在步骤1214中,将依次执行优先权低于刚刚被执行的步骤的优先权的故障排除步骤。
在步骤1216中,如果判定为问题已被解决,则“是”线指向步骤1218,在步骤1218中,故障排除步骤可以被更新,例如,解决了所报告的问题的故障排除步骤将在列表上得到较高的优先权。然后,在步骤1220中,已更新的列表将作为最新的故障排除步骤列表被存储。并且程序代码1200前进到结束步骤1222。
图13示出了根据本发明的实施例的客户端设备的框图1300(客户端设备也作为组件112在图2中示出)。如图13所示,客户端设备1300包括处理器模块1302(示出为CPU)和存储器模块1304。存储器模块1304包括存储诸如PIN、密码、设备识别符、序列号和其他用户和/或设备信息等的用户信息的用户帐户模块1310。使用模式模块1330用于存储针对用户的使用模式数据。其可以包括例如在设备上运行的软件、所访问的互联网网站、运行模式、键击、算法运行的故障排除、请求帮助、或发送到帮助台或热线的电子邮件、存储器使用、所执行的程序的类型(即文字处理、研究、财务计划、分析表等)以及关于特定用户的其他相关信息。事实上,不止一个用户可以与设备相关联,并且因此具有单独的用户帐户。运行模块1322也用于存储关于设备1300的运行数据。运行模块1322还包括能够存储升级信息和运行参数信息(即,设备间连接模式、设备间连接速度、或关于客户端设备怎样运行和/或怎样起作用的其他信息)的存储单元,和/或响应于设备和/或由设备所执行的程序的使用类型的其他组件(硬件和/或软件)。因此,特定的用户可以发现,为了使他们的客户端设备1300更有效地运行,接收基于他们利用其客户端设备正在执行的使用和功能的类型的更新和/或对于更新的推荐是有帮助的。运行模块1322还包括用于存储第一故障排除算法或列表的第一故障排除算法存储单元1340和用于存储第二故障排除算法或列表的第二故障排除算法存储单元1342。
传输模块1306向远程场所传输使用模式数据。远程场所可以是诸如图1所示的服务器设备(104、106、108和/或110)中的一个或多个等的一个或多个远程设备。
接收模块1308接收经处理数据,经处理数据包括经处理的运行参数数据。经处理数据也可以识别出一个或多个可以被增强、升级或修改的设备功能。处理器模块(CPU)1302利用包括CPU推荐和/或CPU升级数据的经处理数据,来修改客户端设备的运行。显示模块1320可以是LCD、等离子、CRT或能够显示文本和/或图像数据的其他适合的显示设备,其显示所接收的经处理数据的表示,并且显示客户端设备的被修改的运行、被修改的故障排除程序和/或推荐或者他们的组合的表示。包括被修改的故障排除程序的被修改的运行可以例如包括:什么软件在客户端上运行,CPU运行情况、内存分配、故障排除程序、防病毒软件和客户端设备的其他硬件和/或软件运行。
因此,在客户端设备或终端1300处的用户可以接收他们的设备运行已经基于经处理的使用数据被怎样修改了,以及基于使用模式数据什么推荐、故障排除列表或算法正在被产生的表示。该表示还可以包括已经被优化的设备参数和/或功能以及还没有被优化的设备参数和/或功能。其还可指示一个或多个故障排除程序或算法的状态。故障排除程序可以基于在先前的故障排除程序的运行之后所获取的其他的使用模式数据来更新和/或修改。
使用模式数据可以诸如每24小时、每月或在已经引入新软件和/或硬件之后等的预定时间间隔来更新。因此,使用模式数据模块通过以预定时间间隔和/或运行状态来更新设备的使用模式数据来重复。
图14示出了根据本发明的实施例的步骤1400的流程图。该步骤1400可以存储在诸如计算机可读介质等地适合的电子存储介质上。流程图可以存储在存储单元中,存储单元可以是在文件服务器、数据库服务器、HTTP服务器或者其他远程存储器或客户端设备中的本地存储器中的本文所述的任何存储单元。步骤可以存储在非暂时性计算机可读介质或任何适合的电子存储设备上,或者可以从远程场所取回。步骤1400以开始步骤1402开始。如步骤1404所示,从客户端设备收集使用模式数据。如步骤1406所示,将已由用户设备收集的、所收集的使用模式数据从客户端设备传输到诸如图1所示的服务器等的远程场所。如步骤1408所示,客户端设备然后可以从远程场所接收经处理的使用模式数据。经处理的使用模式数据是基于由设备所收集的使用模式数据的。经处理的使用模式数据还可以识别出诸如修改故障排除程序或列表或顺序等的升级和/或修改设备的运行的一种或多种方式。例如,如果使用模式数据显示出特定的问题或故障,故障排除程序可以基于重复出现的问题而被修改以更有效。在故障排除程序中的该修改可以反映在客户端设备上运行的软件、硬件组件、存储器使用以及用户正在使用客户端设备的其他特性。被修改的故障排除程序可用于针对特定的用户或一群用户(例如,特定类型的客户端设备的所有用户)来修改设备的运行。
如步骤1410所示,包括运行参数数据信息的经处理的使用模式数据然后可用于修改客户端设备的运行和/或提供推荐。如步骤1412所示,该修改可以包括执行一个或多个故障排除步骤。
经处理的数据和/或推荐的结果可以在显示设备上显示。其可以包括显示关于故障排除程序已经基于使用模式数据被怎样修改、软件升级、硬件升级、诸如CPU运行等的一个或多个设备参数的优化、检测到的病毒、防病毒软件有关的消息、或者向用户显示的其他消息和/或推荐,以改善设备运行或推荐(用户可能会发现能增强计算体验的)更适合的设备或其他设备。
在步骤1414中,判断是否存在任何其他的使用模式数据。其他的使用模式数据包括在使用模式数据的前次收集之后产生的使用模式数据,或者由设备和/或其他的软件/硬件的修改运行所产生的使用模式数据。如果还有其他使用模式数据,则如上所述“是”线1416指向1404并且进程重复。如果没有其他的使用模式数据,则“否”线1418指向结束步骤1420。
从上面的描述将明白,本发明可以实现为可以在存储介质上或经由诸如局域网或广域网(诸如互联网等)等的传输介质供给的计算机软件。还将明白,由于在附图中所描述的组成系统的组件和方法步骤可以软件实现,因此系统组件(或程序步骤)之间的实际连接可以根据本发明被变成的方式而不同。考虑到本文所提供的本发明的教导,本领域的普通技术人员将能够想到本发明的这些和相似的实现方式或配置。
将明白,本发明能够以各种形式的硬件、软件、固件、专用程序或其组合来实现。在一个实施例中,本发明可作为在计算机可读程序存储设备上有形实施的应用程序、以软件来实现。应用程序可以上传到包括任何适合的构造的机器并且由该机器来执行。
上面所公开的具体实施例仅仅是说明性的,这是因为本发明能够以对受到本文教导的本领域的技术人员来说显而易见的、不同但等同的方式来修改和实施。此外,除后面的权利要求中所述的以外,不意图限制本文所示的结构或设计的细节。因此,显而易见的,上面所公开的具体实施例可以被修改和变更,并且所有这些变体被认为在本发明的范围和精神内。虽然本文已经参考附图详细描述了本发明的说明性实施例,但是将明白,本发明不限于这些准确的实施例,并且在不脱离由权利要求所限定的本发明的范围和精神的范围内,本领域的技术人员可在其中实施各种改变和修改。