计算机系统目前得到了广泛使用。提供了许多这样的计算机系统,作为在基于网络的或基于云的计算环境中的服务。
当顾客考虑购买这样的服务时,顾客可能体验到与服务的预期延迟和性能有关的忧虑。现今一些服务能够提供关于服务的正常运行时间(uptime)与可用性(availability)的预期的信息。然而,这些并不是在给定用户环境下影响服务性能的仅有的因素。例如,即使服务具有高度的正常运行时间和可用性,服务的性能也可能会被顾客的具体环境所妨碍。
在顾客已经购买了服务的情形下,顾客可能仍对服务的性能存有疑问。例如,如果顾客对于服务具有不满意的体验,则可能是顾客不能够对他或她自己的系统排解麻烦(troubleshoot)以增强他或她对于服务的体验。相似地,顾客不能够确定他或她是否可与其他用户以相同设置在相同地理区域内体验相同的性能。
服务的制造商和销售商也可能存有涉及服务性能的疑问。例如,制造商或销售商经常体验到如下过程:他们通过该过程试图确定是否值得在给定地理位置(例如,给定的国家、区域或其他位置)推出产品。在地理区域内推出服务的成本可能是相当显著的,尤其是在推出服务之前有大量翻译或本地化待要执行时。
提供以上论述只是用于一般的背景信息,并非意图用作在确定所要求保护主题的范围时的辅助。
技术实现要素:
性能监视系统相对已经存在的用户或潜在用户收集简档数据。执行预测分析以预测当前性能或预测性能是否满足预期的性能水平。输出关键性能指示符以表示比较。
提供该“发明内容”是为了引入将在后文“具体实施方式”中进一步描述的简化形式的概念的选集。该“发明内容”并不意图识别所要求保护主题的关键特征或必要特征,并且也不意图用于帮助确定所要求保护主题的范围。所要求保护的主题并不限于解决在
背景技术:
中提到的任意或所有缺点的实现方式。
附图说明
图1是性能分析架构的一个实施例的框图。
图2是性能监视和预测系统的一个实施例的框图。
图3是示出图1中所示的系统的操作的一个实施例的流程图。
图3A-3E2是示例性用户接口显示器。
图4-8示出了移动设备的各种实施例。
图9示出了计算环境的一个实施例的框图。
具体实施方式
图1示出了终端用户性能分析架构100的一个实施例。架构100示出为具有多个终端用户设备102、104、106和108,所述多个终端用户设备能够访问部署在云112中的云服务110。访问被示出为通过网络114和116提供。需要注意的是,网络114和116可以是相同的或不同的网络,如下文更详细描述的。
终端用户102-108可以利用外部网络(例如,网络114或116)或内部网络(例如,网络118和120)耦合到彼此。用户设备102-108例如可以通过网络服务提供商122和124访问云服务110,所述提供商可以是互联网服务提供商或其他网络服务提供商。在一个实施例中,用户服务还使用域名系统(DNS)提供商126-128。
每个用户设备102-108例如分别包括处理器130、132、134或136。它们每个还例如分别包括硬件配置和网络设置信息138、140、142和144。此外,每个可以分别包括性能监视和预测(PMAP)系统146、148、150或152。替代地,PMAP系统可以位于云112中(如数字154所示)或别处。在另一实施例中,PMAP系统的组件可以被布置在云112中,同时其他组件被布置在具体的用户设备上。所有这些架构都在本文中考虑到了。
在图1所示的示例性实施例中,用户156、158、160和162分别使用用户设备102-108,以便通过对应的网络114或116访问服务110。这样做时,服务110可以具有客户端侧组件,或者整个服务可以在云112中执行。在这两种情况中任一下,云服务110例如包括用户接口组件,其为用户156-162提供用户接口显示。用户接口显示可以具有用户输入机制,其被对应的用户操纵以便控制和操纵云服务110。
在一个实施例中,云服务110是多租户服务,其中服务器和数据库被设置为服务多个不同租户。租户可各自对应于单独的组织。因此,他们可以各自具有其自己的单独的且分区的(partitioned)过程和数据,对应于其云服务110的给定的实现方式。在另一实施例中,服务110是多实例服务,其中每个客户端具有服务100的实例来为其服务。
架构100还例如示出了有权访问云服务110的客户端支持系统166,从而客户端支持人员168能够在用户158-162使用云服务110时对其提供支持服务。此外,制造商系统170为(制造并且销售云服务110的)制造商人员172也提供对云服务110的访问。
性能监视和预测(PMAP)系统146-154可以用于多个不同的场景中。例如,给定用户的具体配置(例如,用户的网络服务提供商122、DNS提供商126、以及用户的内部网络118和硬件和软件设置信息138),当给定用户(例如用户156)考虑签合约或以其他方式购买访问云服务110时,用户可能想要知道用户将体验的性能。在这样的场景下,用户可以使用基于客户端的PMAP系统146或基于云的PMAP系统154。用户可以运行具体的PMAP系统,其将为给定的用户156识别可以影响云服务110的性能的多种不同类型的信息。给定已经收集到的所有信息,并基于执行的预测分析,PMAP系统随后可以基于其他相似用户所体验的性能来生成表示用户156的预测性能的预测。
在第二场景中,制造商人员172可能试图确定是否值得将云服务110本地化或以其他方式翻译以使得云服务能够在给定地理区域推出。在这种情况下,制造商人员172可以访问PMAP系统154,以便从在具体地理位置中的假定用户处收集信息。PMAP系统154然后可以基于所收集的信息以及在给定信息的情况下再次基于执行的预测分析,在给定地理位置提供关于云服务110的预期性能的预测。
在另一场景中,可能用户(例如用户156)已经是顾客,并且正在使用云服务110。还有可能的是,用户156感觉到云服务110的性能不知为何是不足的。在这种情况下,给定用户的特定配置并且给定在相似地理位置中其他用户的体验,用户156就可以使用PMAP系统146或PMAP系统154来收集信息,并提供关于用户156应该期望从对云服务110得到的性能的预测。预测的性能还可以与用户156的云服务110的实际性能进行比较。该比较可以用于确定用户所体验的实际性能是否在预期性能的给定阈值以内。若否,则用户156所使用的PMAP系统还可以识别问题区域并帮助用户156就该问题排解麻烦,以便为用户156改善云服务110的性能。
在更详细地描述架构100的整体操作之前,将描述给定PMAP系统的一个例子的更详细的实施例。图2示出了PMAP系统180的更详细的框图。应该注意的是,PMAP系统180可以是图1所示的PMAP系统中的任意一个,或是不同的PMAP系统。在图2所示的实施例中,PMAP系统180可以包括遥测收集组件182、用户体验预测组件184、网络简档收集组件186、推荐引擎188、数据解析/拟合组件190、调度组件192、用户接口组件194、处理器196,并且还可以包括其他项目198。遥测收集组件182可以收集客户端专用数据183。数据183可以是来自给定用户设备或来自用户设备的环境的多种配置以及其他信息。收集到的信息的类型的例子将在下文更详细地描述。
网络简档收集信息186可以收集网络数据187。数据187可以是多种不同类型的网络简档信息。例如,其可以是来自对于给定用户的网络服务提供商122的网络服务提供商信息、来自DNS提供商126的DNS提供商信息、来自内部网络118的内部网络信息、来自给定用户设备和其他信息的主机的网络设置信息138。
系统180的组件还可以收集其他信息。这由框189所表示。
调度组件192允许用户或管理员调度给定用户的PMAP系统180的性能监视运行。另外,也可以设置对于重复的运行的调度。
数据解析/拟合组件190对为给定用户收集到的所有信息进行解析,并且能够执行不同的操作来向UEX预测组件184提供信息。UEX预测组件184可以提供输出,该输出表示对于给定用户的云服务110的预测性能。例如,数据解析/拟合组件190可以解析数据并将数据拟合到来自云系统110的其他用户的样本数据,并将该信息提供给UEX预测组件184。基于该信息,给定从具有相似网络配置、在相似地理位置处、具有相似硬件配置等的其他用户处收集到的样本数据,UEX预测组件184可以预测用户的性能应该为何。组件184可以提供UEX预测结果200,从而用户或多个其他人可以回顾预测信息。下文将描述预测的一些例子。
就用户的预期性能不满足用户的实际性能而言,可以调用推荐引擎188来提供推荐202。推荐202可以识别用户配置中的麻烦点(trouble spot),包括用户的网络服务提供商122、DNS提供商126、内部网络118和其他可能的麻烦点的主机。推荐202还可以帮助用户试图为这些麻烦点排解麻烦以增加性能。PMAP系统180还可以提供其他输出204。
用户接口组件194可以由PMAP系统180的各种项目使用或者在其自身的控制下,以提供预测或结果200。结果200可以伴随推荐202和其他输出204而提供,以便用户或其他人使用。
虽然已经描述了在PMAP系统180中的多个示例性组件,但是还可以使用其他多种组件。例如,在PMAP系统180中的各种数据收集和分析组件可以包括可扩展的诊断服务,其包括从在被监视系统的每个节点上的任何日志类型计数器执行数据收集的实时的和可缩放的组件。其还可以包括可扩展的真实用户监视流水线,以按照页面加载和其他网络性能度量来测量和监视终端用户体验。它可以包括客户端的性能分析器,其是用于收集所有可能的“最后一英里”性能和网络诊断的可扩展自动工具。其可以从顾客位置运行,并提供表示延迟原因的信息(如果有延迟的话)。预测组件184可以使用多种预测机制。例如,可以使用用于综合的全球测试运行的数据仓库(data warehouse),来测量终端用户性能。它还可以解析日志并执行转换以及触发警告。这些仅是示例性的。
图3是示出帮助在图1的架构中示出的各种人员(例如,制造商人员172、用户156-162中的任一、支持人员168)的PMAP系统180的整体操作的一个实施例的流程图。在描述图3时,假定PMAP系统180可以是图1所示的PMAP系统的任一个。
PMAP系统180首先接收表示希望关于给定的用户或一组用户进行性能分析的用户输入。这由图3中的框210表示。例如,如上所讨论的,可能用户156已经是使用云服务110的顾客,但是用户156感觉到他或她正体验服务110的不期望的低水平的性能。这由框212表示。在另一场景中,用户156正考虑购买对云服务110的访问,或从企业预置型(on-premise)版本的服务110切换到基于云的服务110,或者正考虑以其他方式切换到服务110。这由框214所表示。在另一场景中,制造商人员172可能正在考虑在新的区域推出服务110。这由框216表示。在任一情况下,表示希望执行性能分析的用户输入可以是这些或者也可以是其他输入218。
在一个实施例中,调度组件192然后提供具有用户输入机制的一个或多个用户接口显示,所述用户输入机制允许用户对PMAP系统180的“性能与监视(performance and monitoring)运行”进行调度。在图3的框220中表示提供这些显示以及对运行进行调度。
图3A示出了允许用户对运行进行调度的一个示例性的用户接口显示222。用户接口显示222例如包括允许用户对于监视和分析操作的执行或是立即运行或是调度稍后运行的机制。可以看出的是,用户接口显示222包括立即运行部分224和调度部分226。立即运行部分224允许用户利用用户输入机制228输入识别信息,例如用户的域名或电子邮件地址。用户可以通过开动用户输入机制230来立即运行性能监视和分析操作。
在调度部分226上,使用用户输入机制232和234,用户可以调度用于运行“性能监视和分析”操作的开始日期和结束日期。用户还可以指定该操作每天将会运行的频率。这可以使用用户输入机制236进行。再次,用户可以利用用户输入机制238提供识别信息,以及用户可以利用用户输入机制240设置如前配置的调度。
在合适的时间,PMAP系统180执行该监视和分析操作。这由图3的流程图中的框242所表示。例如,当(在图1中的)用户156希望该操作运行的情况下,用户可以访问URL并将PMAP系统180下载在用户的设备102上。这由图3的流程图中的框244所表示。PMAP系统180可以在每次其被加载到用户的设备上时以及在每次其由用户的设备运行时分配唯一标识符。这由框246所表示。PMAP系统180还可以以其他方式加载和运行,并且这可以由框248表示。
在PMAP系统180中的各种组件然后开始收集用户的宏简档(macro-profile)数据。收集宏简档数据由框250表示。例如,它们可以识别用户的地理位置(例如,基于用户的IP地址,或以其他方式)。这由框252表示。网络简档收集组件186然后可以收集ISP信息254、DNS提供商信息256、路由信息258以及内部网络信息260,以及其他网络信息。遥测收集组件182例如收集用户的硬件简档262、后端配置信息264、分组丢失信息266、页面加载时间268,并且其还可以收集其他信息270。
一旦所有的宏简档数据都被收集,则其被提供给数据解析/拟合组件190,在那里对宏简档数据进行解析。基于调用PMAP系统180的特定场景,可以以不同方式处理该数据。当系统想要知道用户的预期性能时,可以将该数据与其他数据进行比较以发现相似地定位的用户(例如,在相同地理位置、具有相同配置和网络信息等的用户)。也即,可以将收集到的数据与其他用户的样本数据进行比较,以识别具有相似的宏简档信息的用户。UEX预测组件184然后能够基于相似定位用户的实际性能数据,来提供输出预测,该输出预测表示该用户或该地理位置的预测性能。由图3中的框272表示对该数据进行解析以及执行预测分析。
预测组件184还可以将预测性能与性能阈值进行比较或与给定用户的实际性能数据进行比较。这由框274所表示。例如,如果用户156已经在使用服务110,并且正在体验感觉到的问题,则可以将系统110的预测的(或预期的)性能与实际性能数据进行比较。如果实际性能数据在预测性能数据的阈值水平以内(给定系统110的其他相似地定位的用户的性能数据),则在给定用户的位置和配置信息时预测组件184可以表示用户正在体验预期的性能水平或者在预期性能的阈值水平以内的性能水平。在另一方面,如果用户的实际性能在预期性能的阈值水平以外,则组件184可以表示用户正在体验比预期性能更好的性能或比预期性能更差的性能。
在制造商人员172试图确定是否在给定地理区域内推出服务的另一场景中,可以将在所述地理区域内的用户的预测性能数据与阈值性能水平进行比较。如果预期性能满足阈值性能水平,则这可以影响制造商人员172决定在所述地理区域进行推出。在另一方面,如果在所述区域内的预期性能没有满足阈值性能水平,则人员172可以决定不进行推出直到预期的性能能够被改善为止。例如,这可以通过等待所述区域的基础设施改善(例如,更快的网络服务、更好的提供商等)而实现。
将监视和预测分析的结果输出由图3中的框276来表示。所述结果可以采用多种形式。例如,它们可以是实际性能或预测性能的关键性能指示符。这由框278所表示。
在另一实施例中,输出结果可以示出与阈值水平的比较。这由框280所表示。它们可以包括由支持人员(例如支持工程师)或制造商人员(例如制造工程师)使用的工程比较(engineering comparison)282,以便识别可以由制造商修复的问题。当然,结果还可以采取其他形式,而这由框284所表示。
当结果准备好被输出时,推荐引擎188还可以识别可以被输出以便改善性能的任意推荐。这由图3中的框286所表示。例如,推荐引擎188可以输出用于用户或支持人员采取校正动作的指导。这可以由框288所表示。推荐引擎188还可以输出其他信息,例如无需推荐的校正动作就识别麻烦点在何处。将其他信息输出由图3中的框290表示。如果要执行更多的运行(例如,如果存在更多的经调度的运行),则它们被运行。否则,结果不仅可以被输出给用户或支持人员,还可以被输出给其他系统的主机。这可以由图3中的框291和293所表示。
图3B示出了一个示例性用户接口显示292,其不仅示出了性能监视和预测分析的结果,而且还示出了推荐。例如,用户接口显示292包括列(column)294,其输出被分析的具体的关键性能指示符。列296示出了测量出的关键性能指示符与阈值的比较的结果,而列298提供了可以由推荐引擎188推荐给给定用户的校正动作。
列294示出了关键性能指示符可以包括多种不同事物,例如分组丢失统计(packet loss statistics)、带宽信息、给定服务的ping结果、从ping起算的DNS分辨时间、到服务的网络跃点(network hop)的数量、特定浏览器版本和用户的硬件版本、以及一般信息。在列296中的比较可以包括颜色标识符,其识别所述比较是有利的还是不利的。例如,如果比较结果是绿色的,则表示实际数据相对阈值水平的有利比较。如果是黄色的,则表示中等的比较;如果是红色的,则表示不可接受的比较。
在图3B中,如果列296中的比较结果是红色或黄色,则列298只包括校正动作。自然,这只是示例性的。并且,所有的在图3B中示出的KPI、比较阈值和校正动作仅是示例性的,并且可以使用多种其他的。
分析运行的结果还可以包括多种其他事物。例如,它们可以包括测量出的或预测出的页面加载时间、未使用高速缓存的初始页面加载、在支持高速缓存的浏览器上以及在不支持高速缓存的浏览器上的后续加载中测量出的或实际的页面加载时间、可扩展诊断服务信息、用于测量各种性能度量的可扩展真实用户监视流水线信息,等。
图3C示出了可被生成以向用户示出监视和分析操作的结果的用户接口显示300的另一实施例。在图3C中示出的实施例中,用户接口显示300例如包括运行选择器(run selector)用户输入机制302。机制302允许用户关于为哪个运行显示结果而进行选择。先前运行(previous run)标识符部分304识别先前运行的日期和时间。在一个实施例中,在部分304中列出的项目是到这些先前运行的底层信息(underlying information)的链接。
用户接口显示300还示出了识别KPI的列306的第一集合。另一列308识别与其他数据比较的结果,并且列310表示推荐。用户接口显示300包括滚动机制312,其允许用户滚动通过多种其他性能信息。再次,在用户接口显示300上示出的信息仅是示例性的。
图3D示出了用户接口显示314的另一实施例。显示314允许支持人员(图1中的168)搜索为多种不同客户端执行的各种“性能监视和分析”运行的结果。因此,当用户(例如用户156)接触用于支持的支持人员168时,支持人员可以要求用户156调度并且运行“性能监视和分析”操作(或其中的多个)。支持人员168然后可以快速和容易地搜索并拉出用户156运行的那个操作的(或一组操作的)结果。
在显示314中可以看出支持人员可以在搜索标准段(search criteria section)316中插入搜索标准。搜索标准可以包括当运行操作时的开始日期和结束日期、国家、ISP、机器标识符、或者唯一运行标识符。这些仅是示例性的搜索标准。
搜索结果在例如结果段318中提供。在段318中的每个结果图包括例如对应于为用户下载的PMAP系统180的下载标识符、运行标识符、日期、国家、ISP标识符、以及关于结果是否完善的标识符。在段318中的每个行项目(line item)例如具有一个或多个用户可启动链接,其可以由支持人员启动以便看到所识别的运行的完整结果。
图3E-1和3E-2(统称为3E)示出了用户接口显示320的一个例子,所述用户接口显示320在支持人员在搜索结果段318中启动一个链接时生成。在显示320中可以看出,显示包括显示结果的顾客显示段322,如具体的顾客(例如,用户156)可以看到的。其还可以包括支持人员段324,其包含可以由正在对顾客(或用户156)进行帮助的支持人员169看到的额外信息。段324包括用于支持人员的多种额外信息,包括推荐段326,其保有可以从支持人员168传递给顾客(或用户156)的推荐或其他信息。再次,为支持人员生成的且在这些图中示出的用户接口显示仅是示例性的。
因此可以看出,PMAP系统180可以依据在对于不同场景的页面加载时间预测相对准确的用户体验。这可以基于在基于云的服务和DNS解析器之间的往返行程时间。其可以依据来自用户试图使用服务的位置的百分比(percentile)终端用户体验来提供页面加载时间。其还可以用于识别顾客关于其系统的基本任何部分、关于网络服务提供商、DNS提供商、内部网络或性能所遭受的其他项目而具有的各种麻烦(trouble)。其还可以辅助支持人员帮助客户端排解麻烦。所述工具可以被调度以运行一次或多次以获得额外的信息。其还可以用于帮助决定是否在新市场推出产品,是否对服务签合约(例如,当顾客就此进行决定时),以及为多租户系统的特定租户解决问题等。
本讨论已经提及了处理器和服务器。在一个实施例中,处理器和服务器包括具有相关联的存储器和定时电路的计算机处理器,并未单独示出。它们是所属系统或设备的功能部分并由其激活,并且促进在这些系统中的其他组件或项目的功能。
另外,已经讨论了多个用户接口显示。它们可以采取多种不同形式,并可以具有布置于其上的多种不同的用户可启动输入机制。例如,用户可启动输入机制可以是文本框、复选框、图标、链接、下拉菜单、搜索框等。它们还可以以多种不同方式启动。例如,可以利用“指点并点击(point and click)”设备(例如,跟踪球或鼠标)启动它们。可以利用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等启动它们。还可以利用虚拟键盘或其他虚拟致动器启动它们。另外,当显示它们的屏幕是触敏屏幕时,可以利用触摸手势启动它们。另外,当显示它们的设备具有语音识别组件时,可以利用语音命令启动它们。
还讨论了多个数据存贮(data store)。应该注意的是,它们每个可以分解为多个数据存贮。所有的数据存贮可以对于访问它们的系统是本地的,可以都是远程的,或者一些数据存贮可以是本地的而另一些数据存贮是远程的。所有这些配置都在本文中考虑到了。
另外,图示出了具有归因于每个框的功能的多个框。可以理解的是,可以使用更少的框,从而可以通过更少的组件执行功能。另外,可以通过分布于更多组件中的功能使用更多的框。
本描述还讨论了云计算架构。云计算提供了运算、软件、数据访问和存储服务,这些不要求终端用户知道输送服务的系统的物理位置或配置。在各种实施例中,云计算通过广域网(例如,因特网)利用适当的协议输送服务。例如,云计算提供商通过广域网输送应用,并且应用可以通过web浏览器或任意其他计算组件进行访问。架构100的软件或组件以及对应的数据可以存储于远程位置处的服务器上。在云计算环境中的计算资源可以在远程数据中心的位置处合并,或者它们可以被分散。云计算基础设施可以通过共享数据中心输送服务,尽管它们也可以作为用户的访问的单个点出现。因此,本文描述的组件和功能可以利用云计算架构从在远程位置处的服务提供商处提供。替代地,它们可以从传统的服务器提供,或者它们可以直接地或以其他方式安装在客户端设备上。
说明书意图包括公共的云计算和私有的云计算。云计算(公共的和私有的)提供了基本无缝的资源池,以及降低了对管理和配置底层硬件基础设施的需求。
公共的云由供应商所管理,并通常支持使用相同基础设施的多个消费者。另外,公共云不同于私有云,能够将终端用户从管理硬件中释放出来。私有云可以由组织本身管理,并且基础设施通常不与其他组织共享。组织仍然在某种程度上维护硬件,例如安装和修理等。
还可以理解的是,架构100或其一部分可以布置在多个不同设备上。这些设备中的一些包括服务器、台式计算机、膝上型计算机、平板计算机或其他移动设备,例如掌上型计算机、蜂窝电话、智能手机、多媒体播放器、个人数字助理等。
图4是手持或移动计算设备的一个图示实施例的简化框图,所述计算设备可以用作用户或客户端的手持设备16,在其中可以访问或布置本系统(或其一部分)。图5-8是手持或移动设备的例子。
图4提供了客户端设备16的组件的一般框图,所述客户端设备16可以运行架构100的组件,或与架构100交互,或两者。在设备16中,通信链路13设置为允许手持设备与其他计算设备通信,并且在一些实施例中,提供用于自动接收信息的通道,例如通过扫描。通信链路13的例子包括红外端口、串行/USB端口、电缆网络端口(例如,以太网端口)、以及允许通过一个或多个通信协议(包括通用无线分组业务(GPRS)、LTE、HSPA、HSPA+和其他3G和4G无线电协议、1Xrtt和短消息服务,其是用于提供对网络的蜂窝访问的无线服务;以及802.11和802.11b(Wi-Fi)协议和蓝牙协议,其向网络提供本地无线连接)通信的无线网络端口。
在其他实施例中,在连接到安全数字(SD)卡接口15上的可移除SD卡上接收应用或系统。SD卡接口15和通信链路13与处理器17(其还可以实现图1的处理器130-136)沿着总线19通信,所述总线19还连接到存储器21和输入/输出(I/O)组件23以及时钟25和位置系统27上。
在一个实施例中,I/O组件23设置为促进输入和输出操作。用于设备16的各种实施例的I/O组件23可以包括:输入组件,例如按钮、触摸传感器、多触摸传感器、光或视频传感器、语音传感器、触摸屏、接近度传感器、麦克风、倾斜传感器、以及重力开关;以及输出组件,例如,显示设备、扬声器和/或打印机端口。也可以使用其他I/O组件23。
时钟25例如包括实时时钟组件,其输出时间和日期。还可以图示的提供用于处理器17的定时功能。
位置系统27例如包括输出设备16的当前地理位置的组件。这例如可以包括全球定位系统(GPS)接收器、LORAN系统、航位推算系统、蜂窝三角系统或其他定位系统。还可以包括例如映射软件或导航软件,其生成期望的地图、导航路由以及其他地理功能。
存储器21存储操作系统29、网络设置31、应用33、应用配置设置35、数据存贮37、通信驱动器39以及通信配置设置41。存储器21可以包括所有类型的有形易失性和非易失性计算机可读存储器设备。还可以包括计算机存储介质(以下描述)。存储器21存储计算机可读指令,其在被处理器17执行时,使得处理器根据指令执行计算机实现步骤或功能。处理器17可以由其他组件激活以促进其功能。
网络设置31的例子包括例如代理信息、因特网连接信息和地图(mapping)。应用配置设置35包括针对具体企业或用户进行裁剪的设置。通信配置设置41提供用于与其他计算机通信的参数,并包括例如GPRS参数、SMS参数、连接用户名称和密码的项目。
应用33可以是先前存储于设备16上的应用,或者在使用期间安装的应用,但是这些还可以是操作系统29的一部分,或者在设备16外部托管。
图5示出了设备16是平板计算机600的一个实施例。在图5中,计算机600示出为具有用户接口显示屏602。屏幕602可以是触摸屏(从而来自用户手指的触摸手势可以用于与应用交互)或者是笔启用接口(其接收来自笔或铁笔的输入)。还可以使用屏幕上的虚拟键盘。自然,还可以通过适当的附接机制(例如,无线链接或USB端口)附接到键盘或其他用户输入设备上。计算机600还可以接收例如语音输入。
图6和图7提供了可以使用的设备16的额外例子,但是还可以使用其他的。在图6中,功能电话、智能手机或移动电话45设置为设备16。电话45包括用于拨电话号码的一组键区47,能够显示图像(包括应用图像、图标、网页、照片和视频)的显示器49,以及选择显示在显示器上的项目的控制按钮51。电话包括天线53,用于接收蜂窝电话信号(例如通用分组无线业务(GPRS)和1Xrtt)以及短消息服务(SMS)信号。在一些实施例中,电话45还包括容纳安全数字(SD)卡57的安全数字(SD)卡槽55。
图7的移动设备是个人数字助理(PDA)59或多媒体播放器或平板计算设备等(后文称作PDA 59)。PDA 59包括当在屏幕上定位铁笔时感知铁笔63(或其他指针,例如用户手指)的位置的感应屏幕61。这允许用户在屏幕上选择、突出和移动项目以及绘制和书写。PDA 59还包括多个用户输入键或按钮(例如按钮65),其允许用户滚动通过在显示器61上显示的菜单选项或其他显示选项,并且允许用户改变应用或选择用户输入功能,而不接触显示器61。虽然未示出,但PDA 59可以包括内部天线和红外发送器/接收器,其允许与其他计算机以及允许硬件连接到其他计算设备的连接端口进行无线通信。这种硬件连接通常通过经由串行端口或USB端口连接到其他计算机上的托架完成。这样,这些连接是非网络连接。在一个实施例中,移动设备59还包括容纳SD卡69的SD卡槽67。
图8相似于图6,除了电话是智能手机71。智能手机71具有触敏显示器73,其显示图标或拼贴或其他用户输入机制75。机制75可以由用户用于运行应用、打电话、执行数据转移操作等。通常,智能手机71构建在移动操作系统上,并提供比功能电话更先进的计算能力和连接性。
注意,设备16的其他形式也是可以的。
图9是(例如)可以部署架构100或其一部分的计算环境的一个实施例。参考图9,用于实现一些实施例的示例性系统包括计算机810形式的通用计算设备。计算机810的组件可以包括但不限于处理单元820(其可以包括在处理器130-136或在客户端支持系统166或制造商系统170所使用的云112中或设备上的处理器或服务器)、系统存储器830以及将各种系统组件(包括系统存储器)耦合到处理单元820的系统总线821。系统总线821可以是多种类型的总线结构中的任一种,包括使用多种总线架构的任意一种的存储器总线或存储器控制器、外围总线和局部总线。以举例而非限制方式,这种架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外围组件互连(PCI)总线(已知为Mezzanine总线)。关于图1所描述的存储器和程序可以部署在图9的对应部分中。
计算机810通常包括多种计算机可读介质。计算机可读介质可以是任意可用的介质,其可以由计算机810访问,并包括易失性和非易失性介质、可移除和不可移除介质。以举例而非限制方式,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质不同于且不包括调制数据信号或载波。其包括硬件存储介质,包括易失性和非易失性的、可移除的和不可移除的介质,其以任意方法或技术实现以用于存储信息(例如,计算机可读指令、数据结构、程序模块或其他数据)。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器介质、CD-ROM、数字通用盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、可以用于存储期望的信息并由计算机810可访问的或任意其他介质。通信介质通常实现计算机可读指令、数据结构、程序模块或传输机制中的其他数据,并包括任意信息输送介质。术语“调制数据信号”表示具有以编码信号中的信息的方式设置或改变的一个或多个特性的信号。通过例子并非限制,通信介质包括:有线介质,例如有线网络或直接有线连接;以及无线介质,例如声、RF、红外和其他无线介质、上述任意的组合还应该包含于计算机可读介质的范围内。
系统存储器830包括易失性和/或非易失性存储器形式的计算机存储介质,例如只读存储器(ROM)831和随机访问存储器(RAM)832。基本输入/输出系统833(BIOS)包含帮助例如在启动期间在计算机810内的元件之间转移信息的基本例程,其存储于ROM 831中。RAM 832通常包含由处理单元820逻辑访问和/或目前操作的数据和/或程序模块。以举例而非限制方式,图9示出了操作系统834、应用程序835、其他程序模块836和程序数据837。
计算机810还可以包括其他可移除/不可移除、易失性/非易失性计算机存储介质。仅通过例子,图9示出了从不可移除、非易失性磁介质中读取并写入的硬盘驱动841、从可移除、非易失性磁盘852中读取并写入的磁盘驱动851、以及从可移除、非易失性光盘856(例如,CD ROM或其他光介质)中读取并写入的光盘驱动855。在示例性操作环境中可使用的其他可移除/不可移除、易失性/非易失性计算机存储介质包括但不限于:磁带盒、闪存卡、数字通用盘、数字录像带、固态RAM、固态ROM等。硬盘驱动841通常通过不可移除的存储器接口(例如接口840)连接到系统总线821,并且磁盘驱动851和光盘驱动855通常通过可移除存储器接口(例如接口850)连接到系统总线821。
替代地或另外,本文描述的功能可以部分地由一个或多个硬件逻辑组件执行。例如但不限于,可以使用的硬件逻辑组件的图示类型包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等。
上述以及在图9中示出的驱动及其相关联的计算机存储介质提供了对计算机可读指令、数据结构、程序模块和计算机810的其他数据的存储。在图9中,例如,硬盘驱动841图示为存储操作系统844、应用程序845、其他程序模块846以及程序数据847。注意,这些组件可以是与操作系统834、应用程序835、其他程序模块836以及程序数据837相同或不同的。这里,对操作系统844、应用程序845、其他程序模块846以及程序数据847给出了不同的数字,以至少表示它们是不同的副本。
用户可以将命令和信息通过输入设备(例如,键盘862、麦克风863和定点设备861(例如,鼠标、轨迹球或触摸板))输入到计算机810。其他输入设备(未示出)可以包括控制杆、游戏棒、卫星碟、扫描仪等。这些和其他输入设备通常通过耦合到系统总线上的用户输入接口860连接到处理单元820上,但是可以通过其他接口和总线结构(例如,并行端口、游戏端口或通用串行总线(USB))连接。虚拟显示器891或其他类型的显示设备还经由接口(例如,视频接口890)连接到系统总线821上。除了监视器外,计算机还可以包括其他外围输出设备,例如扬声器897和打印机896,其可以通过输出外围接口895进行连接。
计算机810利用到一个或多个远程计算机(例如远程计算机880)的逻辑连接在联网环境中操作。远程计算机880还可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备或其他公用网络节点,并通常包括相对于计算机810描述的多个或所有上述元件。在图9中描绘的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但是还可以包括其他网络。这种联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机810通过网络接口或适配器870连接到LAN 871上。当在WAN联网环境中使用时,计算机810通常包括调制解调器872或用于在WAN 873上建立通信的其他单元,例如,因特网。调制解调器872(可以是内部或外部的)可以经由用户输入接口860或其他适当的机制连接到系统总线821。在联网环境中,相对计算机810描绘的程序模块或其一部分可以存储于远程存储器存储设备中。以举例而非限制方式,图9示出了如驻留在远程计算机880上的远程应用程序885。可以理解的是,示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他单元。
还应该注意的是,本文描述的不同实施例可以以不同方式组合。也就是说,一个或多个实施例的一部分可以与一个或多个其他实施例的一部分组合。所有这些都在本文中考虑到了。
虽然已经以专用于结构特征和/或方法动作的语言描述了主题,但是可以理解的是,在随附权利要求中定义的主题不必限制于上述具体的特征或动作。更确切地说,上述具体的特征和动作被公开为实现权利要求的示例性形式。