CN105408866A - 远程脚本环境中的上下文关联性 - Google Patents

远程脚本环境中的上下文关联性 Download PDF

Info

Publication number
CN105408866A
CN105408866A CN201480040719.6A CN201480040719A CN105408866A CN 105408866 A CN105408866 A CN 105408866A CN 201480040719 A CN201480040719 A CN 201480040719A CN 105408866 A CN105408866 A CN 105408866A
Authority
CN
China
Prior art keywords
computer
order
connection
connection pool
remote
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
CN201480040719.6A
Other languages
English (en)
Other versions
CN105408866B (zh
Inventor
V·萨德夫
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105408866A publication Critical patent/CN105408866A/zh
Application granted granted Critical
Publication of CN105408866B publication Critical patent/CN105408866B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • 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

Abstract

全局上下文对象可用于创建在远程计算机处执行的两个或更多个命令之间的上下文关联性。本地计算机可以访问连接池以判定是否存在针对将要在其中执行命令的远程计算机上的特定上下文的运行空间。如果在连接池中不存在运行空间,则本地计算机可以创建与特定上下文相关联的运行空间且将该运行空间添加到连接池中。本地计算机可以从远程计算机接收所执行的命令的结果数据并且存储结果数据以便供全局上下文对象使用来创建在远程计算机处执行的两个或更多个命令之间的上下文关联性。

Description

远程脚本环境中的上下文关联性
背景技术
在一些常规的远程脚本环境中,从远程计算机处的一个命令的执行到后续命令的执行所输送的数据由于安全性担忧而受到限制或抑制。因为常规的远程脚本环境中的这些局限性以及其他的局限性,在远程计算机处执行一个命令的上下文经常与执行后续命令的上下文分离且不同。因此,在常规的远程脚本环境中,两个或更多个命令可以不与彼此共享上下文,结果,在各个命令之间不提供关联性。对于该问题的当前解决方案包括在运行第二命令的同时设置第一命令的上下文。另一解决方案可以是将命令打包。但是,这些解决方案可能易于出错且降低远程脚本环境的性能。
关于这些以及其他的考虑,提出了本文给出的公开内容。
发明内容
本文描述了用于在远程脚本环境中提供上下文关联性的概念和技术。远程脚本环境可以包括本地计算机或主机、以及远程计算机,执行命令的指令从本地计算机或主机发送,在远程计算机处接收所述指令且执行所述命令。本地计算机访问连接池来判定是否存在针对将要在其中执行命令的远程计算机上的特定上下文的运行空间。如果在连接池中不存在运行空间,则本地计算机创建与特定上下文相关联的运行空间且将所述运行空间添加到连接池。在一些实现方式中,连接池中的运行空间维护它们与特定远程计算机的连接。如果在连接池中存在所述运行空间,则本地计算机访问连接池中的所述运行空间并引导所述远程计算机在与所访问的运行空间相关联的上下文中执行命令。
在一些配置中,全局上下文对象可以用于创建在远程计算机处执行的两个或更多个命令之间的上下文关联性。例如,本地计算机可以访问特定运行空间且引导远程计算机在与所访问的运行空间相关联的上下文中执行命令。本地计算机然后可以从远程计算机接收所执行的命令的结果数据且在当前的运行空间中更新上下文。当本地计算机访问连接池中的同一运行空间而运行后续命令时,本地计算机可以将更新的上下文作为后续命令的输入传送到远程计算机。因此,在一些配置中,可以使用从先前执行的命令所获得的数据来在相同的上下文中执行后续的命令。
应当意识到的是,上述主题可以被实现为计算机控制的装置、计算机处理、计算系统或者实现为诸如计算机可读存储介质之类的制品。通过阅读下面的具体实施方式以及对相关附图的阅览,这些特征以及各种其他特征将是显而易见的。
提供该发明内容以便以下文在具体实施方式中进一步描述的简化形式来引入一系列概念。该发明内容不是旨在标识出本文所公开的概念和技术的关键特征或重要特征,也不旨在使用该发明内容来限定所要求的主题的范围。此外,所要求的主题不限于解决在本公开的任意部分中提到的任何或全部缺点的实现方式。
附图说明
图1是示出了根据一些实施例的被配置为在远程脚本环境中提供上下文关联性的计算系统的系统图。
图2是图示出根据一些实施例的用于在远程脚本环境中提供上下文关联性的示例性的方法的各方面的流程图。
图3是图示出根据一些实施例的用于在远程脚本环境中提供上下文关联性的示例性的方法的各方面的流程图。
图4是示出了根据一些实施例的能够实现本文呈现的实施例的各方面的计算系统的示例性的计算机硬件和软件体系结构的计算机体系结构图。
图5是示出了根据一些实施例的用于在远程脚本环境中提供上下文关联性的能够执行本文所描述的软件组件的分布式计算环境的图示。
图6是示出了根据一些实施例的用于在远程脚本环境中提供上下文关联性的能够执行本文所描述的各种软件组件的计算设备的计算设备体系结构的图示。
具体实施方式
下面的具体实施方式涉及在各种实施例中被设计为在远程脚本环境中提供上下文关联性的概念和技术。本公开主题的各种配置创建并管理运行空间池。在一些配置中,每个运行空间通过执行全局远程会话命令而连接到远程计算机。当本地计算机需要在远程计算机上执行与彼此共享上下文的命令时,本地计算机访问运行空间池且访问池中的特定运行空间。一旦访问运行空间,本地计算机能够在远程计算机上执行命令。因为在同一运行空间中执行所述命令,所以所述命令能够共享上下文。
“运行空间”提供了一种托管应用(hostingapplication)可编程地执行命令的方式。“上下文”可以包括在运行空间中执行命令的环境。环境变量提供了命令在运行空间内执行的上下文。应当注意,本文所使用的术语,即使与特定远程脚本软件应用共同使用,也不旨在将应用的范围限制到特定的远程脚本软件应用。除非特别指出,否则任何术语的使用仅为了方便和示例性目的。
虽然本文所描述的主题是在与计算机系统上的操作系统和应用程序的执行相结合而执行的程序模块的一般背景下呈现的,但是本领域技术人员将认识到可以与其他类型的程序模块相结合来执行其他的实现方式。一般地,程序模块包括例程、程序、组件、数据结构、以及执行特定任务或实现特定的抽象数据类型的其他类型的结构。此外,本领域技术人员将意识到,本文所描述的主题可以利用其他的计算机系统配置来实践,其他的计算机系统配置包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、小型计算机、大型计算机等。
在下面的具体实施方式中,参考了附图,附图构成具体实施方式的一部分,并且在附图中通过示例性具体实施例或示例的方式来示出。现在参考附图,将呈现计算系统、计算机可读存储介质、以及用于在远程脚本环境中提供上下文关联性的计算机实现方法的各方面,其中,在整个若干附图中相似的附图标记表示相似的要素。
现在参考附图,图1是远程脚本环境100的概览图。图1中的远程脚本环境100包括作为网络106的一部分运行和/或与网络106通信的本地计算机102和远程计算机104。根据本文所公开的概念和技术的各种实现方式,本地计算机102和/或远程计算机104的功能能够由基于云的计算平台来提供,所述基于云的计算平台可由一个或多个应用服务器、网络服务器、数据存储系统、网络应用、专用硬件设备和/或其他服务器计算机或计算设备来提供。
根据一些实施例,本地计算机102和/或远程计算机104可以包括用户计算设备,诸如平板式计算设备、个人计算机(“PC”)、桌面式计算机、膝上型计算机、笔记本计算机、手机或智能电话、其他移动计算设备、个人数字助理(“PDA”)等。本地计算机102和/或远程计算机104的一些示例的体系结构将在下面参考图4-6进行示出和描述。为了示例和描述本文所公开的概念和技术的目的,本文将本地计算机102和/或远程计算机104的功能描述为由服务器计算机来提供。根据上文描述的本地计算机102和/或远程计算机104的上述可替代的实施例,应当理解该示例是示例性的,并且不应理解为以任何方式进行限制。
本地计算机102能够被配置为执行操作系统108以及一个或多个应用程序,例如,远程脚本组件110、和/或其他应用程序。操作系统108是用于控制本地计算机102的操作的计算机程序。以类似的方式,远程计算机可以被配置为执行操作系统112。应用程序是被配置为如果在本地计算机102上则在操作系统108之上执行,而如果在远程计算机104上则在操作系统112上执行的可执行程序,以提供本文所描述的用于在远程脚本环境100中提供上下文关联性的功能。
在远程计算机104处,连同控制远程计算机104的运行一起,操作系统112还可以执行在远程脚本环境100中从本地计算机接收到的命令。例如,操作系统112可以被配置为在接收到来自本地计算机102的指令之后执行第一命令114A和第二命令114B。在一些配置中,第一命令114A或第二命令114B可以包括但不限于独立的可执行程序或类的实例。在其他配置中,第一命令114A或第二命令114B可以处理来自管线而不是来自文本流的输入。在另外的配置中,第一命令114A或第二命令114B可以执行它们自己的解析、错误呈现或输出格式化,或者可以被配置为允许那些功能以及其他功能由另一应用来处理。
当被执行时,第一命令114A和第二命令114B在诸如针对第一命令114A的上下文A和针对第二命令114B的上下文B的上下文中执行。如上所述,上下文可由第一命令114A或第二命令114B在特定运行空间内执行的变量来定义。例如,本地计算机102可以将命令发送到远程计算机104以使远程计算机104在运行空间116A中执行第一命令114A。第一命令114A可以接收与运行空间116A相关联的变量且在上下文A内执行。
本地计算机102可以接收由于第一命令114A的执行而生成的结果数据117并且将结果数据117存储在数据存储设备118中。通过类似的方式,本地计算机102可以将命令发送到远程计算机104以使远程计算机104在运行空间116B中执行第二命令114B。第二命令114B可以接收与运行空间116B相关联的变量且在上下文B内执行。本地计算机102可以接收由于第二命令114B的执行而生成的结果数据117并且将结果数据117存储在数据存储设备118中。
因为运行空间116A和运行空间116B不共享变量,所以在其中执行第一命令114A的上下文A以及在其中执行第二命令1114B的上下文B不共享关联性。由于第二命令114B所生成的结果数据117与由于第一命令114A所生成的结果数据117无关,这是因为在其中执行第一命令114A的上下文和在其中执行第二命令114B的上下文是分离的。为提供上下文关联性,本地计算机102可以创建连接池120。
连接池120可以包括池运行空间122A-122N(下文中池运行空间122A-122N被统称为和/或一般地称为“池运行空间122”,或者单独地称为“池运行空间122A”、“池运行空间122B”等等)。连接池120和池运行空间122的状态可以存储在字典124中。状态可以包括连接池120和池运行空间122的存在。状态还可以包括任何连接是否存在,如下文进一步详细说明的。
字典124可以由远程脚本组件110来访问以判定连接池120是否存在,如果存在,则判定连接池120是否可用。在一些配置中,即使连接池120已经由远程脚本组件110启动,连接池120也可以以其他方式不可供使用。字典124可以存储在数据存储设备118或者另一适合的存储器位置上。如果连接池120可用,则远程脚本组件110可以判定在连接池120中到远程计算机104的连接是否可用。
在一种配置中,远程脚本组件110可以访问字典124以判定一个或多个连接中的连接125是否可用。如上所述,字典124可以存储池运行空间122与包括远程计算机104在内的任何计算机之间的任何连接的状态。在一种配置中,池运行空间122可以是被启动和维护以提供到包括远程计算机104在内的远程计算机的连接的专用运行空间。字典124可以具有各个池运行空间122的状态。
如果远程脚本组件110接收到使得第一命令114A或第二命令114B执行的指令,则远程脚本组件110可以访问字典124来判定是否已经使用池运行空间122中的一个建立了预先存在的连接,诸如连接125。在一种配置中,连接125可以在远程计算机104的命令执行之间持续。
如果连接125可用,则远程脚本组件110可以访问池运行空间122中的可应用的运行空间。在图1所示的配置中,池运行空间122中的可应用的运行空间是池运行空间122A。如果连接125不可用,则远程脚本组件110可以使得启动一个运行空间,将该运行空间添加到连接池120,并且相应地更新字典124。远程脚本组件110可以启动池运行空间122A内的连接125且执行第一命令114A和第二命令114B。应当意识到,不要求第一命令114A和第二命令114B的执行发生在特定的时间段或者任何其他编程约束下。例如,远程脚本组件110可以执行第一命令114A,使用其他池运行空间122来实施其他功能,而其后执行第二命令114B。
在一些配置中,在诸如池运行空间122A的特定运行空间内第一命令114A的执行以及随后的第二命令114B的执行仍可以不提供上下文A与上下文B之间所需或所期望的关联性。因此,远程脚本组件110可以启动全局上下文对象126。全局上下文对象126可以是与特定运行空间相关联的一个或多个变量。全局上下文对象126可以作为变量从由池运行空间122中的一个所提供的连接中的一个接收。
在一种实现方式中,远程脚本组件110可以使用由池运行空间122A所提供的连接125来执行第一命令114A。全局上下文对象126可以作为变量传递到第一命令114A以在上下文A中执行第一命令114A。连接池120中的每个连接可以维护其自己的全局上下文对象126。本地计算机102可以接收来自第一命令114A的执行的数据且更新全局上下文对象126以提供更新后的全局上下文对象126。其后,远程脚本组件110可以再次使用由池运行空间122A所提供的连接125来执行第二命令112B。远程脚本组件110可以将更新的全局上下文对象126连同更新的上下文一起作为变量传递到第二命令114B。
尽管第二命令114B可以在上下文B中执行,但是因为来自第一命令114A的执行的输出利用相同的连接(即连接125)作为更新后的全局上下文对象126传递到第二命令114B,所以第二命令114B在其中执行的上下文可以是与上下文A具有关联性的上下文。换言之,虽然第一命令114A和第二命令114B可以在诸如上下文A和上下文B的其自己的上下文中操作,但通过使用全局上下文对象126,第一命令114A和第二命令114B可以在由上下文C表示的全局上下文中执行。在一些配置中,使用连接池120来维护由池运行空间122所提供的连接以及在远程计算机104处执行的命令之间共享全局上下文对象126,可以提供上下文A与上下文B之间的关联性。
图2是示出用于在远程脚本环境100中提供上下文关联性的示例性方法200的流程图。应当理解,方法200以及在本文所公开的其他方法的操作不必以任何特定的顺序来呈现且按可替代的顺序执行操作中的一些或全部是可能的且可预期的。为易于描述和示出,按照图示的顺序呈现了操作。可以添加操作,可以省略操作,和/或可以同时执行操作,而不偏离随附权利要求书的范围。还应当理解,图示的方法可以在任何时间结束,无需全部执行。
方法的一些或全部操作和/或基本上等同的操作能够通过包含在计算机存储介质上的计算机可读指令的执行来实施,如本文所限定的。在说明书和权利要求中使用的术语“计算机可读指令”及其变型在本文中扩展地使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令能够在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的可编程消费电子设备、它们的组合等。
因此,应当意识到,此处所描述的逻辑操作被实施为(1)在计算系统上运行的计算机实现的行为或程序模块的序列,和/或(2)在计算系统内互连的机器逻辑电路或电路模块。实现方式是取决于计算系统的性能以及其他要求的选择问题。因此,本文所描述的逻辑操作多样地称为状态、操作、结构设备、行为或模块。这些操作、结构设备、行为和模块可以用软件、用固件、用专用数字逻辑及其任意组合来实现。
转到图2,方法200开始且进行到操作202,其中,在本地计算机102处启动远程脚本组件110。本公开的主题不限于用于远程脚本组件110的任何特定应用或操作环境。例如,远程脚本可以使用操作系统在计算机或网络上执行,操作系统诸如为位于加利福尼亚的库珀蒂诺的苹果公司提供的OSX、位于加利福尼亚的山景城的谷歌公司提供的ANDROID、位于华盛顿的雷德蒙的微软公司提供的WINDOWS、位于纽约阿蒙克的IBM公司提供的Z/OS,以及可以或者可以不在UNIX或LINUX中具有根目录的其他操作系统。本公开的主题不限于任何特定的操作系统。
方法从操作202进行到操作204,在操作204中,做出连接池120是否可用的判定。在一些配置中,连接池120包括池运行空间122。连接池120的状态可以存储在字典124中。在进一步的配置中,远程脚本组件110可以访问字典124来判定连接池120是否存在以及其是否可供使用。在一些实例中,连接池120可以存在,但是不可供远程脚本组件110使用。
响应于判定出连接池120可用,方法200从操作204进行到操作206,在操作206中远程脚本组件110使用字典124来访问连接池120。如上所述,字典124可以存储有连接池120的状态以及连接池120的其他方面。在一种配置中,连接池120可以作为数据结构存储在字典124中。应当理解的是,连接池120可以存储在一个数据存储设备中,诸如数据存储设备118,或者存储在能够由本地计算机102访问的若干个数据存储设备中。
方法200从操作206进行到操作208,在操作208中,关于诸如连接125的连接是否从连接池120可供使用做出判定。如上所述,连接125是在本地计算机102与远程计算机104之间形成的连接。连接125便于本地计算机102与远程计算机104之间的远程脚本环境100。在一些配置中,连接125可以是维持在本地计算机102与远程计算机104之间的永久性连接。
响应于在操作208处判定连接125从连接池120中可供使用,方法200进行到操作210,其中远程脚本组件110使用连接125来在远程计算机104处执行命令。远程脚本组件110可以使用由连接125提供的池运行空间122A,池运行空间122A在执行命令的远程计算机104处创建上下文。
方法200从操作210进行到操作212,其中本地计算机102接收并存储结果数据117。在一些配置中,结果数据117可以与存储在数据存储设备118中的全局上下文对象126相关联。在一些配置中,全局上下文对象126可以提供远程计算机104处若干个命令的执行之间的上下文关联性。全局上下文对象126可以作为输入提供给远程计算机104处的命令。全局上下文对象126的传递创建了远程计算机104处执行的各个命令之间的关系,这是因为命令使用全局上下文对象126。下面在图3中对此进行更详细的说明。
如果在操作204中连接池120不可用,则方法200从操作204进行到操作214,其中连接池120被创建且添加到字典124中。如上所述,连接池120可以被创建且存储在各种配置中。使用字段124的当前配置仅为示例性的。
方法200从操作214进行到操作216,在操作216中创建池运行空间122A。连接池120可以创建有一个或多个运行空间。本公开不限于连接池120中的运行空间的任何特定数量。例如,连接池120可以创建有多个池运行空间122,或者连接池120可以创建有仅池运行空间122A。
方法200从操作216进行到操作218,其中创建连接125。连接125可以是由远程脚本组件110维护的永久性连接。连接125是本地计算机102与远程计算机104之间的通信连接。
方法200从操作218进行到操作220,在操作220中,利用连接125更新字典124。此后,方法200如上所述进行。方法200进行到操作210,其中使用连接125来执行命令。在操作212处,接收并存储结果数据117。
如果在操作208中做出了连接125不可用的判定,则方法200从操作208进行到操作216,其中创建池运行空间122A。然后,方法200如上文直接描述地那样进行。其后,方法200结束。
如上所述,可能期望或者需要的是,创建并使用全局上下文对象126来创建执行第一命令114A的上下文A与执行第二命令114B的上下文B之间的关联性。全局上下文对象126以及连接池120有助于创建第一命令114A和第二命令114B在其中执行的共同的上下文C。
图3是示出用于提供全局上下文对象以便在远程脚本环境100中提供上下文关联性的示例性方法300的流程图。方法300开始于操作302,其中远程脚本组件110访问连接池120。应当理解,图3假设连接池120被创建并且可供远程脚本组件110使用。图2提供了用于创建连接池120的示例性方法。
方法300从操作302进行到操作304,其中做出连接125是否仍有效的判定。为了保持关联性,远程计算机104处的特定上下文,例如上下文C,由连接池120中的特定运行空间(诸如池运行空间122A)来创建。通过将池运行空间122A与特定连接(诸如连接125)相关联,与池运行空间122A相关联的数据可以在使用该数据的命令之间一致。
如果连接125有效,则方法300从操作304进行到操作306,其中在数据存储设备118处取回全局上下文对象126。如上所述,全局上下文对象126可以是传递到远程计算机104的一个或多个变量以创建在其中执行一个或多个命令的上下文C。
方法300从操作306进行到操作308,其中使用连接125来执行命令。命令可以是使用初始的全局上下文对象126的初始命令或者使用更新后的全局上下文对象126的后续命令。例如,初始命令可以是第一命令114A,而后续命令可以是第二命令114B。
方法300从操作308进行到操作310,其中接收来自远程计算机104处命令的执行的结果数据1117。本公开的主题不限于来自远程计算机104的任何特定类型的结果数据117。此外,应当意识到,本公开的主题的各种配置可以不要求接收结果数据117,因为一些命令可以在可向本地计算机102发送的状态下不提供结果数据117。
方法300从操作310进行到操作312,其中根据结果数据117更新全局上下文对象126。在一些配置中,全局上下文对象126可以是在操作310中返回的结果。在其他配置中,全局上下文对象126可以是基于在操作310中接收到的数据来更新的数据。应当理解,本公开主题不限于要求更新全局上下文对象126。在一些配置中,从命令执行到命令执行可以保持全局上下文对象126。
方法300从操作312进行到操作314,在操作314中,做出是否要执行后续命令的判定。如果要执行后续命令,则方法300在操作304处重新开始。如果不执行后续命令,则方法300结束。应当理解,本公开主题不要求在特定时间帧或以可编程序列来执行操作314。例如,初始命令可以首先被执行,在后续命令执行之前,经过了一定的时间段,或者本地计算机102可以执行与连接125有关或无关的其他功能。
返回操作304,如果在操作304处做出了连接125无效的判定,则方法300从操作304进行到操作316,其中创建连接125,并且更新字典124。如上所述,在一些配置中,字典124可用于存储连接125的状态。在其他配置中,字典124可以用于存储数据而非便于连接125的使用的状态,或者存储除了便于连接125的使用的状态之外的数据。
方法300从操作316进行到操作318,其中创建全局上下文对象126。全局上下文对象126可以存储在字典124或另一适当的数据存储设备中。应当注意,本公开的主题不要求操作318的执行,这是因为可以在之前的操作中已创建全局上下文对象126。如果没有创建全局上下文对象126,则可以使用操作318。方法300从操作318进行到操作308,在操作308中方法300如上所述进行。
图4示出了能够执行本文所描述的用于提供在远程脚本环境100中的上下文关联性的软件组件的设备的示例性计算机体系结构400。因此,在图4所示的计算机体系结构400图示出服务器计算机、移动电话、PDA、智能手机、桌面式计算机、上网本计算机、平板式计算机和/或膝上型计算机的体系结构。计算机体系结构400可以用于执行本文呈现的软件组件的任意方面。
图4所示的计算机体系结构400包括中央处理单元(“CPU”)402、包括随机存取存储器406(“RAM”)和只读存储器(“ROM”)408在内的系统存储器404、以及将存储器404与CPU402耦合的系统总线410。包含例如在启动期间有助于在计算机体系结构400内的要素之间转移信息的基本例程的基本输入/输出系统存储在ROM408中。计算机体系结构400进一步包括大容量存储设备412,其用于存储图1的操作系统108以及包括但不限于远程脚本组件110以及数据存储设备118的一个或多个应用程序或数据存储设备。
大容量存储设备412通过与总线410连接的大容量存储控制器(未示出)连接到CPU402。大容量存储设备412及其相关联的计算机可读介质提供用于计算机体系结构400的非易失性存储。虽然本文所包含的计算机可读介质的描述是指大容量存储设备,诸如硬盘或CD-ROM驱动器,本领域技术人员应当意识到,计算机可读介质可以是能够由计算机体系结构400存取的任何可用的计算机存储介质或通信介质。
通信介质包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制的调制的数据信号中的其他数据,并且包括任何输送介质。术语“调制的数据信号”意指使其特性中的一个或多个以对信号中的信息进行编码的方式进行改变或设置的信号。通过示例的方式而不是限制的方式,通信介质包括诸如有线网络或直接接线连接的有线介质、以及诸如声波、RF、红外和其他无线介质之类的无线介质。上述任意的组合也应当包含在计算机可读介质的范围内。
通过示例而不是限制的方式,计算机存储介质可以包括在用于诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的存储的任何方法或技术中实现的易失性的和非易失性的、可移除的和非可移除的介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或其他固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY或其他光学存储、磁盒、磁带、磁盘存储或其他磁存储设备、或任何其他能够用于存储期望的信息的介质,且其能够由计算机体系结构400访问。为了权利要求的目的,短语“计算机存储介质”及其变型不包括波或信号本身和/或通信介质。
根据各个实施例,计算机体系结构400可以利用通过诸如网络106的网络到远程计算机的逻辑连接而在联网环境中运行。计算机体系结构400可以通过与总线410连接的网络接口单元416而连接到网络106。应当意识到,网络接口单元416还可用于连接到其他类型的网络和远程计算机系统。计算机体系结构400还可以包括用于从包括键盘、鼠标或电子指示笔的多种其他设备接收输入并处理输入的输入/输出控制器418。类似地,输入/输出控制器418可以将输出提供给显示屏、打印机、或其他类型的输出设备。
应当意识到,本文所述的软件组件当被加载到CPU402中且执行时可以将CPU402和总体计算机体系结构400从通用计算系统变换成专用计算系统,该专用计算系统被定制以便于本文所呈现的功能。CPU402可以由任意数量的晶体管或其他离散的电路元件来构成,这些晶体管或离散的电路元件可以单独地或者统一地呈现出任意多种状态。更具体地,CPU402可以响应于包含在本文所公开的软件模块内的可执行指令而作为有限状态机来操作。这些计算机可执行指令可以通过指定CPU402如何在状态之间转变来变换CPU402,从而变换构成CPU402的晶体管或其他离散的硬件元件。
对本文所呈现的软件模块进行编码也可以变换本文所呈现的计算机可读介质的物理结构。在本说明书的不同实现方式中,物理结构的具体变换可以取决于各种因素。这些因素的示例可以包括但不限于用于实现计算机可读介质的技术,无论计算机可读介质是否表征为主存储还是辅助存储,等等。例如,如果计算机可读介质实现为基于半导体的存储器,则可以通过变换半导体存储器的物理状态而在计算机可读介质上对本文所公开的软件进行编码。例如,软件可以变换晶体管、电容器或其他构成半导体存储器的离散的电路元件的状态。软件还可以变换这些组件的物理状态从而将数据存储于其上。
作为另一示例,本文所公开的计算机可读介质可以利用磁技术或光学技术来实现。在这些实现方式中,当软件编码于其中时,本文呈现的软件可以变换磁介质或光学介质的物理状态。这些变换可以包括改变给定的磁介质内的特定位置的磁特性。这些变换还可以包括改变给定的光学介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。物理介质的其他变换是可能的,而不偏离本说明书的范围和精神,提供前述的示例仅为便于本说明书。
根据上述,应当意识到的是,为了存储并执行本文所提供的软件组件,多种类型的物理变换发生在计算机体系结构400中。还应当意识到的是,计算机体系结构400可以包括其他类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员已知的其他类型的计算设备。还可以预期的是,计算机体系结构400可以不包括图4所示的全部组件,可以包括图4中没有明确显示的其他组件,或者可以使用完全不同于图4所示的体系结构。
图5图示出能够执行本文所描述的用于提供在远程脚本环境100中的上下文关联性的软件组件的示例性分布式计算环境500。因此,图5所示的分布式计算环境500能够用于提供本文所描述的功能。因此,分布式计算环境500可用于执行本文呈现的软件组件的任意方面。
根据各种实现方式,分布式计算环境500包括在网络106上操作、与网络106通信或者作为网络106的一部分的计算环境502。网络106还可以包括各种访问网络。一个或多个客户端设备506A-506N(下文统称为和/或一般地称为“客户端506”)能够经由网络106和/或其他连接(图5中没有图示出)而与计算环境502通信。在图示的实施例中,客户端506包括:计算设备506A,诸如膝上型计算机、桌面式计算机或其他计算设备;板式或平板式计算设备(“平板式计算设备”)506B;移动计算设备506C,诸如移动电话、智能手机、或其他移动计算设备;服务器计算机506D;和/或其他设备506N。应当理解的是,任意数量的客户端506能够与计算环境502通信。应当理解,本文图示和描述的图示客户端506和计算体系结构是示例性的,而不应理解为以任何方式进行限制。
在图示的实施例中,计算环境502包括应用服务器508、数据存储510以及一个或多个网络接口512。根据各种实现方式,应用服务器508的功能可以由作为网络106的一部分执行或者与网络106通信的一个或多个服务器计算机来提供。应用服务器508能够掌管各种服务、虚拟机、端口和/或其他资源。在图示的实施例中,应用服务器508掌管用于掌管应用或其他功能的一个或多个虚拟机514。根据各种实现方式,虚拟机514掌管用于提供本文所述的功能的用于搜索提供在远程脚本环境100中的上下文关联性的一个或多个应用和/或软件模块。应当理解,该实施例是示例性的,而不应理解为以任何方式进行限制。应用服务器508还掌管或提供到一个或多个网络端口、链接页面、网站和/或其他信息(“网络端口”)516的访问。
根据各种实现方式,应用服务器508还包括一个或多个邮箱服务518以及一个或多个消息传送服务520。邮箱服务518可以包括电子邮件(“电邮”)服务。邮箱服务518还可以包括各种个人信息管理(“PIM”)服务,包括但不限于日历服务、联系人管理服务、协作服务和/或其他服务。消息传送服务520可以包括但不限于即时消息传送服务、聊天服务、论坛服务和/或其他通信服务。
应用服务器508还可以包括一个或多个社交网络服务522。社交网络服务522可以包括各种社交网络服务,包括但不限于:用于共享或张贴状况更新、即时消息、链接、照片、视频和/或其他信息的服务;用于评论或显示对于物品、产品、博客或其他资源的兴趣的服务;和/或其他服务。在一些实施例中,社交网络服务522由FACEBOOK社交网络服务、LINKEDIN专业网络服务、MYSPACE社交网络服务、FOURSQUARE地理网络服务、YAMMER办公同事联网服务等来提供或者包括这些服务。在其他实施例中,社交网络服务522由可以或者可以不明确地称为社交网络提供商的其他服务、站点和/或提供商来提供。例如,一些网站允许用户在诸如阅读出版物、评论商品或服务、公布、协作、游戏等各种活动和/或上下文期间经由电邮、聊天服务和/或其他手段彼此交互。这些服务的示例包括但不限于华盛顿的雷德蒙的微软公司(MicrosoftCorporation)的WINDOWSLIVE服务以及XBOXLIVE服务。其他服务是可能的且可预期的。
社交网络服务522还可以包括评论、发博客和/或发微博服务。这些服务的示例包括但不限于YELP评论服务、KUDZU阅览服务、OFFICETALK企业微博服务、TWITTER消息传送服务、GOOGLEBUZZ服务、和/或其他服务。应当意识到的是,上述服务列表不是穷尽的,为简要起见,此处没有提到很多附加的和/或可替代的社交网络服务522。因此,上述实施例是示例性的,而不应理解为以任何方式进行限制。
如图5所示,应用服务器508还可以掌管其他服务、应用、端口和/或其他资源(“其他资源”)524。其他资源524可以包括但不限于远程脚本组件110。因此,能够意识到,计算环境502能够提供本文所公开的概念和技术与各种邮箱、消息传送、社交网络和/或其他服务或资源的集成。例如,本文所公开的概念和技术能够将社交网络信息集成到各种搜索中并且将那些结果与内部知识相结合提供给用户。
如上所提到的,计算环境502可以包括数据存储设备510。根据各种实现方式,数据存储设备510的功能由在网络106上操作或者与网络106通信的一个或多个数据存储来提供。数据存储设备510的功能还能够由配置为掌管用于计算环境502的数据的一个或多个服务器计算机来提供。数据存储设备510可以包括、掌管或提供一个或多个真实的或虚拟的数据存储526A-526N(下文统称为和/或一般地称为“数据存储526”)。数据存储526被配置为掌管由应用服务器508创建或使用的数据和/或其他数据。虽然图5中没有示出,数据存储526还能够掌管或存储图2所示的数据存储设备118。
计算环境502能够与网络接口512通信或者由网络接口512来访问。网络接口512可以包括用于支持两个或更多个计算设备之间的通信的各种类型的网络硬件和软件,包括但不限于客户端506以及应用服务器508。应当意识到的是,网络接口512还可用于连接其他类型的网络和/或计算机系统。
应当理解,本文所描述的分布式计算环境500能够为本文所描述的软件要素的任意方面提供可配置为执行本文所公开的软件组件的任意方面的任意数量的虚拟计算资源和/或其他分布式计算功能。根据本文所公开的概念和技术的各种实现方式,分布式计算环境500将在本文中描述的软件功能作为服务提供给客户端506。应当理解,客户端506可以包括真实的或虚拟的机器,包括但不限于服务器计算机、网络服务器、个人计算机、移动计算设备、智能手机、和/或其他设备。因此,本文所公开的概念和技术的各个实施例使得被配置为访问分布式计算环境500的任何设备能够使用本文所描述的功能以提供在远程脚本环境100中的上下文关联性。
现转到图6,用于计算设备的示例性计算设备体系结构600,所述计算设备能够执行本文所描述的用于提供在远程脚本环境100中的上下文关联性的各种软件组件。计算设备体系结构600能够应用于部分地由于形状因子、无线连接和/或电池供电的操作而实现移动计算的计算设备。在一些实施例中,计算设备包括但不限于移动电话、平板式设备、板式设备、便携式视频游戏设备等。而且,计算设备体系结构600能够应用于图5所示的客户端506中的任何。此外,计算设备体系结构600的各方面可应用于传统的桌面式计算机、便携式计算机(例如,膝上型计算机、笔记本、超便携和上网本)、服务器计算机以及其他计算机系统,诸如本文参考图1所描述的。例如,下文所公开的单触摸和多触摸方面可应用于利用触摸屏或诸如触控跟踪板或触控鼠标的一些其他触控设备的桌面式计算机。
图6所示的计算设备体系结构600包括处理器602、存储器组件604、网络连接组件606、传感器组件608、输入/输出(“I/O”)组件610、以及电源组件612。在图示的实施例中,处理器602与存储器组件604、网络连接组件606、传感器组件608、I/O组件610和电源组件612通信。虽然没有显示出图6所示的各个组件之间的连接,但是组件能够交互以实施设备功能。在一些实施例中,组件被布置以便于经由一个或多个总线(未示出)进行通信。
处理器602包括中央处理单元(“CPU”),其被配置为处理数据,执行一个或多个应用程序的计算机可执行指令,以及与计算设备体系结构600的其他组件进行通信,以便于执行本文所描述的各种功能。处理器602可以用于执行本文所呈现的软件组件的各方面,尤其是至少部分地利用触控输入的那些软件组件。
在一些实施例中,处理器602包括图形处理单元(“GPU”),其被配置为加速CPU所执行的操作,包括但不限于通过执行通用科学与工程计算应用以及诸如高分辨率视频(例如,720P、1080P以及更大)、视频游戏、三维(“3D”)建模应用等图形密集计算应用来执行的操作。在一些实施例中,处理器602被配置为与离散的GPU(未示出)进行通信。在任何情况下,CPU和GPU可根据协处理CPU/GPU计算模型来配置,其中应用的顺序部分在CPU上执行,而计算密集部分通过GPU来加速。
在一些实施例中,处理器602是片上系统(“SoC”)以及下文描述的其他组件中的一个或多个组件或者包括在SoC以及下文描述的其他组件中的一个或多个组件中。例如,SoC可以包括处理器602、GPU、网络连接组件606中的一个或多个、以及传感器组件608中的一个或多个。在一些实施例中,处理器602部分地利用封装叠加封装(“PoP”)集成电路封装技术来制作。而且,处理器602可以是单核或多核处理器。
处理器602可以根据可用于英国剑桥的ARMHOLDINGS许可的ARM体系结构来创建。可替代地,处理器602可以根据例如从加利福尼亚的山景城的INTELCORPORATION提供的以及其他的x86体系结构来创建。在一些实施例中,处理器602是从加利福尼亚的圣地亚哥的QUALCOMM提供的SNAPDRAGONSoC、从加利福尼亚的圣克拉拉的NVIDIA提供的TEGRASoC、从韩国首尔的SAMSUNG提供的HUMMINGBIRDSoC、从德克萨斯的达拉斯的TEXASINSTRUMENTS提供的开放多媒体应用平台(“OMAP”)SoC、上述SoC中任一个的定制版本或者专利SoC。
存储器组件604包括随机存取存储器(“RAM”)614、只读存储器(“ROM”)616、集成存储存储器(“集成存储设备”)618、以及可移除存储存储器(“可移除存储设备”)620。在一些实施例中,RAM614或其部分、ROM616或其部分、和/或RAM614和ROM616的某种组合集成到处理器602中。在一些实施例中,ROM616被配置为存储固件、操作系统或其部分(例如,操作系统核心)、和/或从集成存储设备618或可移除存储设备620加载操作系统核心的引导加载程序。
集成存储设备618可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储设备618可以焊接或以其他方式连接到逻辑板上,本文所描述的处理器602以及其他组件也可以连接到该逻辑板上。因此,集成存储设备618集成到计算设备中。集成存储设备618被配置为存储操作系统或其部分、应用程序、数据、以及本文所描述的其他软件组件。
可移除存储设备620可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些实施例中,可移除存储设备620代替集成存储设备618来提供。在其他实施例中,可移除存储设备620被提供为附加的可选存储设备。在一些实施例中,可移除存储设备620与集成存储设备618逻辑地组合,以使得总体可用存储作为集成存储设备618和可移除存储设备620的总组合容量可供用户使用并显示给用户。
可移除存储设备620被配置为插入可移除存储存储器槽(未示出)或其他机制,通过这样可移除存储设备620被插入且紧固以便于连接,经由该连接可移除存储设备620能够与诸如处理器602之类的计算设备的其他组件进行通信。可移除存储设备620可以以各种存储器卡格式来实施,包括但不限于PC卡、压缩闪存卡、存储器棒、安全数字(“SD”)、迷你SD、微SD、通用集成电路卡(“UICC”)(例如,用户身份识别模块(“SIM”)或通用SIM(“USIM”))、专利格式等。
能够理解的是,一个或多个存储器组件604可以存储操作系统。根据各种实施例,操作系统包括但不限于来自SYMBIANLIMITED的SYMBIANOS、来自华盛顿的雷德蒙的微软公司的WINDOWSMOBILEOS、来自微软公司的WINDOWSPHONEOS、来自微软公司的WINDOWS、来自加利福尼亚的帕罗奥多的惠普公司的PALMWEBOS、来自加拿大安大略省滑铁卢的ResearchInMotionLimited的BLACKBERRYOS、来自加利福尼亚库珀蒂诺的苹果公司的IOS、以及来自加利福尼亚山景城的谷歌公司的ANDROIDOS。可预期其他操作系统。
网络连接组件606包括无线广域网组件(“WWAN组件”)622、无线局域网组件(“WLAN组件”)624以及无线个域网组件(“WPAN组件”)626。网络连接组件606便于到或来自网络106的通信,网络106可以是WWAN、WLAN或WPAN。虽然图示出单个网络106,但是网络连接组件606可以便于与多个网络的同时通信。例如,网络连接组件606可以便于经由WWAN、WLAN或WPAN中的一个或多个与多个网络的同时通信。
网络106可以是WWAN,诸如利用一个或多个移动远程通信技术来经由WWAN组件622向利用计算设备体系结构600的计算设备提供语音和/或数据服务的移动远程通信网络。移动远程通信技术可以包括但不限于全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA2000、通用移动远程通信系统(“UMTS”)、长期演进(“LTE”)以及全球微波互连接入(“WiMAX”)。此外,网络106可以利用各种信道接入方法(这些方法可以或者可以不通过前述标准来使用),包括但不限于,时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分多路复用(“OFDM”)、空分多址(“SDMA”)等。数据通信可以利用通用分组无线服务(“GPRS”)、全球演进增强数据率(“EDGE”)、包含高速下行链路分组接入(“HSDPA”)的高速分组接入(“HSPA”)协议族、增强上行链路(“EUL”)或其他称谓的高速上行链路分组接入(“HSUPA”)、演进HSPA(“HSPA+”)、LET、以及其他各种当前的和未来的无线数据接入标准来提供。网络106可以被配置为利用上述技术的任意组合来提供语音和/或数据通信。网络106可以被配置为或者适于根据未来一代的技术来提供语音和/或数据通信。
在一些实施例中,WWAN组件622被配置为提供到网络106的双模多模连接。例如,WWAN组件622可以被配置为提供到网络106的连接,其中网络106经由GSM和UMTS技术或者经由技术的某种其他组合来提供服务。可替代地,多个WWAN组件622可用于执行这些功能,和/或提供附加的功能来支持其他的非兼容技术(即,不能由单个WWAN组件支持的)。WWAN组件622可以便于到多个网络(例如,UMTS网络和LTE网络)的类似的连接。
网络106可以是根据诸如IEEE802.11a、802.11b、802.11g、802.11n和/或未来的802.11标准的一个或多个电气电子工程师协会(“IEEE”)802.11标准(此处统称为WI-FI)而操作的WLAN。还可以预期草稿802.11标准。在一些实施例中,WLAN是利用一个或多个无线WI-FI接入点来实现的。在一些实施例中,无线WI-FI接入点中的一个或多个是与充当WI-FI热点的WWAN连接的另一计算设备。WLAN组件624被配置为经由WI-FI接入点连接到网络106。这些连接可以经由各种加密技术来保证,加密技术包括但不限于WI-FI保护接入(“WPA”)、WPA2、有线等效保密(“WEP”)和类似技术。
网络106可以是根据红外数据关联(“IrDA”)、BLUETOOTH、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE、或某种其他短程无线技术来操作的WPAN。在一些实施例中,WPAN组件626被配置为经由WPAN便于与诸如外围设备、计算机、或其他计算设备的其他设备通信。
传感器组件608包括磁力计628、环境光传感器630、接近度传感器632、加速计634、陀螺仪636以及全球定位系统传感器(“GPS传感器”)638。可以预期的是,诸如但不限于温度传感器或震动检测传感器之类的其他传感器也可以并入计算设备体系结构600中。
磁力计628被配置为测量磁场的强度和方向。在一些实施例中,磁力计628为存储在存储器组件604之一内的罗盘应用程序提供测量,以便于为用户提供在参考系内的精确方向,包括主要方向,北、南、东和西。可以为为包括罗盘组件的导航应用程序提供类似的测量。可以预期通过磁力计628所获得的测量的其他用途。
环境光传感器630被配置为测量环境光。在一些实施例中,环境光传感器630为一个存储器组件604内存储的应用程序提供测量,以便于自动调节显示器(下文描述)的亮度以补偿低光和高光环境。可以预期由环境光传感器630所获得的测量的其他用途。
接近度传感器632被配置为在不直接接触的情况下检测接近于计算设备的对象或事物的存在。在一些实施例中,接近度传感器632检测用户身体(例如,用户面部)的存在并且将该信息提供给存储在存储器组件604之一内的使用接近度信息来启用或禁止计算设备的一些功能的应用程序。例如,电话应用程序可以响应于接收到接近度信息而自动地禁用触摸屏(下文描述),使得用户面部不会不注意地结束呼叫或者启用/禁用在呼叫期间电话应用程序的其他功能。可以预期如接近度传感器632检测到的接近度的其他用途。
加速计634被配置为测量正确的加速度。在一些实施例中,来自加速计634的输出由应用程序用作控制应用程序的一些功能的输入机制。例如,应用程序可以是视频游戏,其中人物、其部分或对象响应于经由加速计634接收到的输入而移动或以其他方式被操纵。在一些实施例中,来自加速计634的输出提供给应用程序,用于在横向模式和纵向模式之间切换,计算坐标加速度,或者检测降落。可以预期加速计634的其他用途。
陀螺仪636被配置为测量并保持方位。在一些实施例中,来自陀螺仪636的输出由应用程序用作控制应用程序的一些功能的输入机制。例如,陀螺仪636能够用于对视频游戏应用或某些其他应用的3D数据环境内的移动的精确识别。在一些实施例中,应用程序利用来自陀螺仪636和加速计634的输出来增强应用程序的一些功能的控制。可以预期陀螺仪636的其他用途。
GPS传感器638被配置为从GPS卫星接收信号,用于计算位置。由GPS传感器638计算出的位置可以由要求位置信息或者受益于位置信息的应用程序来使用。例如,由GPS传感器638计算出的位置可与导航应用程序一起使用以提供从该位置到目的地的方向或者从目的地到该位置的方向。而且,GPS传感器638可以用于将位置信息提供给基于外部基于位置的服务,诸如E911服务。GPS传感器638可以获得利用网络连接组件606中的一个或多个经由WI-FI、WIMAX、和/或蜂窝三角测量技术所生成的位置信息以辅助GPS传感器638获得位置锁定。GPS传感器638还可以用于辅助GPS(“A-GPS”)系统中。
I/O组件610包括显示器640、触摸屏642、数据I/O接口组件(“数据集I/O”)644、音频I/O接口组件(“音频I/O”)646、视频I/O接口组件(“视频I/O”)648以及照相机650。在一些实施例中,显示器640和触摸屏642组合。在一些实施例中,组合数据I/O组件644、音频I/O接口组件646和视频I/O组件648中的两个或更多个。I/O组件610可以包括离散的处理器,其被配置为支持下面描述的各种接口,或者可以包括内置于处理器602中的处理功能。
显示器640是被配置为以可视形式呈现信息的输出设备。特别地,显示器640可以呈现图形用户接口(“GUI”)要素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传送数据、互联网内容、设备状况、时间、日期、日历数据、偏好、地图信息、位置信息以及能够以可视形式呈现的任何其他信息。在一些实施例中,显示器640是液晶显示器(“LCD”),其利用任何有源或无源矩阵技术以及任何背光技术(如果使用)。在一些实施例中,显示器640是有机发光二极管(“OLED”)显示器。可以预期其他显示器类型。
触摸屏642是被配置为检测触摸的存在以及位置的输入设备。触摸屏642可以是电阻式触摸屏、电容式触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、分散信号触摸屏、声脉冲识别触摸屏,或者可以使用任何其他触摸屏技术。在一些实施例中,触摸屏642作为透明层并入显示器640的上面以使用户能够使用一次或多次触摸来与呈现在显示器640上的对象或其他信息进行交互。在其他实施例中,触摸屏642是并入不包含显示器640的计算设备的表面上的触摸板。例如,计算设备可以具有并入显示器640上面的触摸屏以及位于与显示器640相对的表面上的触摸板。
在一些实施例中,触摸屏642是单触摸式触摸屏。在其他实施例中,触摸屏642是多触摸式触摸屏。在一些实施例中,触摸屏642被配置为检测离散的触摸、单触摸手势和/或多触摸手势。为方便起见,这些在本文统称为手势。现在将对若干手势进行说明。应当理解,这些手势是示例性的,不是想要限制随附权利要求的范围。而且,所描述的手势、附加的手势和/或可替代的手势可以在与触摸屏642一起使用的软件中实现。因此,开发者可以创建专用于特定应用程序的手势。
在一些实施例中,触摸屏642支持轻敲手势,其中,用户在呈现在显示器640上的项上轻敲触摸屏642一次。轻敲手势可用于各种原因,包括但不限于打开或者启动用户所轻敲的任何项。在一些实施例中,触摸屏642支持双轻敲手势,其中用户在呈现在显示器640上的项上轻敲触摸屏642两次。双轻敲手势可用于各种原因,包括但不限于按阶段放大或缩小。在一些实施例中,触摸屏642支持轻敲与保持手势,其中用户轻敲触摸屏642并且保持接触持续至少预先定义的时间。轻敲与保持手势可以用于各种原因,包括但不限于打开上下文特定的菜单。
在一些实施例中,触摸屏642支持平移手势,其中用户将手指放置在触摸屏642上并且保持与触摸屏642相接触同时在触摸屏642上移动手指。平移手势可用于各种原因,包括但不限于以受控的速率移过屏幕、图像或菜单。还可以预期多手指平移手势。在一些实施例中,触摸屏642支持轻拂手势,其中用户在用户想要屏幕移动的方向上划动手指。轻拂手势可用于各种原因,包括但不限于水平地或垂直地滚过菜单或页面。在一些实施例中,触摸屏642支持夹拉手势,其中用户用两个手指(例如,拇指和食指)在触摸屏642上做夹取运动且使两个手指分开。夹拉手势可用于各种原因,包括但不限于对网站、地图或图片的逐渐放大或缩小。
虽然已经参考用于执行手势的一个或多个手指的使用描述了上述手势,诸如脚趾的其他附件或诸如指示笔的对象可用于与触摸屏642进行交互。因此,上述手势应当理解为示例性的,且不应理解为以任何方式进行限制。
数据I/O接口组件644被配置为便于数据到计算设备的输入以及从计算设备输出数据。在一些实施例中,数据I/O接口组件644包括连接器,该连接器被配置为在计算设备与计算机系统之间提供有线连接性,例如用于同步操作的目的。连接器可以是专用连接器或者诸如USB、微USB、迷你USB等的标准化连接器。在一些实施例中,连接器是用于将计算设备与另外的设备对接的对接连接器,另外的设备诸如对接站、音频设备(例如,数字音乐播放器)或视频设备。
音频I/O接口组件646被配置为将音频输入和/或输出能力提供给计算设备。在一些实施例中,音频I/O接口组件644包括被配置为采集音频信号的麦克风。在一些实施例中,音频I/O接口组件644包括被配置为提供耳机或其他外部扬声器的连接性的耳机插孔。在一些实施例中,音频I/O接口组件646包括用于音频信号输出的扬声器。在一些实施例中,音频I/O接口组件644包括音频光缆输出。
视频I/O接口组件648被配置为给计算设备提供视频输入和/或输出能力。在一些实施例中,视频I/O接口组件648包括视频连接器,其被配置为从另外的设备(例如,视频媒体播放器,诸如DVD或BLUERAY播放器)接收视频作为输入或者将视频作为输出发送到另外的设备(例如,监控器、电视机、某种其他的外部显示器)。在一些实施例中,视频I/O接口组件648包括高清晰多媒体接口(“HDMI”)、迷你HDMI、微HDMI、显示器端口或者输入/输出视频内容的专利连接器。在一些实施例中,视频I/O接口组件648或其部分与音频I/O接口组件646或其部分组合。
照相机650可被配置为捕获静态图像和/或视频。照相机650可以利用电荷耦合器件(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕获图像。在一些实施例中,照相机650包括闪存以辅助在低光环境下拍摄图片。针对照相机650的设置可以被实现为硬件或软件按钮。
虽然没有示出,一个或多个硬件按钮也可以包括在计算设备体系结构600中。硬件按钮可用于控制计算设备的一些操作方面。硬件按钮可以是专用按钮或多次使用按钮。硬件按钮可以是机械式的或者是基于传感器的。
图示的电源组件612包括一个或多个电池652,电池能够连接到电池计量器654。电池652可以是可再充电的或者一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镍镉、以及镍金属氢化物。电池652中的每个可由一个或多个单元制成。
电池计量器654能够被配置为测量诸如电流、电压和温度的电池参数。在一些实施例中,电池计量器654被配置为测量电池放电速率、温度、寿命以及其他在一定误差百分比内预测剩余寿命的其他因素的效果。在一些实施例中,电池计量器654将测量结果提供给被配置为使用测量结果来呈现有用的电源管理数据给用户的应用程序。电源管理数据可以包括所使用电池的百分比、电池剩余百分比、电池状态、剩余时间、剩余容量(例如,以瓦特小时数计算)、当前消耗和电压中的一项或多项。
电源组件612还可以包括电力连接器,该电力连接器可以与上述I/O组件610中的一个或多个组合。电源组件612可以经由电力I/O组件(未示出)与外部电力系统或充电装备相接。
基于上述,应当意识到的是,本文已经公开了用于提供在远程脚本环境100中的上下文关联性的概念和技术。虽然用特定于计算机结构特征、方法和变换行为、特定的计算机器以及计算机可读介质的语言描述了本文呈现的主题,但是应当理解,在随附权利要求中限定的发明不一定局限于本文所描述的特定的特征、行为或介质。而是,特定的特征、行为和介质作为实现权利要求的示例形式而公开。
上述的主题仅通过示例的方式提供,而不应理解为限制。可以对本文所描述的主题做出各种修改和改变,而不遵从所图示和描述的示例性实施例和应用,并且不偏离在随附的权利要求中阐明的本发明的真正的精神和范围。

Claims (10)

1.一种用于提供远程脚本环境中的上下文关联性的计算机实现方法,包括:
在本地计算机上启动远程脚本组件;
根据字典来判定连接池是否可用;
响应于判定出所述连接池可用,
判定到所述远程计算机的连接是否在所述连接池中可用;
响应于判定出到所述远程计算机的所述连接在所述连接池中可用,使用所述连接在所述远程计算机处执行命令;以及
接收来自对所述命令的所述执行的结果数据。
2.根据权利要求1所述的方法,进一步包括:
响应于判定出所述连接池不可用,创建所述连接池并且将所述连接池添加到所述字典,以及
响应于判定出到所述远程计算机的所述连接在所述连接池中不可用,创建所述连接。
3.根据权利要求1所述的方法,进一步包括:启动全局上下文对象。
4.根据权利要求3所述的方法,其中,使用所述连接在所述远程计算机处执行所述命令进一步包括将所述全局上下文对象从所述本地计算机传递到所述远程计算机。
5.根据权利要求4所述的方法,其中,接收来自对所述命令的所述执行的结果数据包括在所述本地计算机处更新所述全局上下文对象。
6.一种被配置为提供远程脚本环境中的上下文关联性的计算机,包括:
处理器;以及
与所述处理器通信的计算机可读存储介质,所述计算机可读存储介质具有存储于其上的计算机可执行指令,当由所述处理器执行时,所述计算机可执行指令使得所述处理器进行以下操作:
启动在所述本地计算机处的连接池,所述连接池包括多个连接;
通过使用所述多个连接中的连接,在所述本地计算机与远程计算机之间形成所述远程脚本环境;
启动在所述本地计算机处的全局上下文对象;
将指令发送到所述远程计算机以执行第一命令,其中,所述指令包括所述全局上下文对象;
从所述远程计算机接收结果数据,所述结果数据包括对所述第一命令的所述执行的结果;
更新所述全局上下文对象以创建更新后的全局上下文对象;以及
将指令发送到所述远程计算机以执行第二命令,其中,所述指令包括所述更新后的全局上下文对象。
7.根据权利要求6所述的计算机,其中,所述计算机可读存储介质进一步具有存储于其上的用于执行以下操作的计算机可执行指令:
从所述远程计算机接收数据,所述数据包括根据对所述第二命令的所述执行所产生的结果数据,以及
进一步更新所述更新后的全局上下文对象。
8.根据权利要求6所述的计算机,所述计算机可读存储介质进一步具有存储于其上的用于执行以下操作的计算机可执行指令:
判定所述连接池是否可用,以及
如果所述连接池不可用,则创建所述连接池并且更新字典。
9.根据权利要求8所述的计算机,其中,所述计算机可读存储介质进一步具有存储于其上的用于执行以下操作的计算机可执行指令:如果所述多个连接中的所述连接不可用,则创建所述多个连接中的所述连接并且更新所述连接池。
10.一种其上存储有计算机可执行指令的计算机可读存储介质,当由计算机执行时,所述计算机可执行指令使得所述计算机进行以下操作:
在所述计算机上启动远程脚本组件,所述远程脚本组件被配置为
使得所述计算机将指令发送到远程计算机以执行第一命令和第二命令,
判定连接池是否可用,以及
如果所述连接池不可用,则创建所述连接池,其中,所述连接池包括多个连接,每个连接保持全局上下文对象,其中,所述多个连接中的至少一个连接是在所述计算机与所述远程计算机之间保持的;
将所述连接池添加到字典中;
将指令发送到所述远程计算机以执行第一命令,其中,所述指令使用所述全局上下文对象;
从所述远程计算机接收结果数据,所述结果数据包括对所述第一命令的所述执行的结果;
基于所述第一命令的结果,使用所述全局上下文对象来创建第二命令以创建更新后的全局会话对象;以及
将指令发送到所述远程计算机以执行第二命令,其中,所述指令包括所述更新后的全局上下文对象。
CN201480040719.6A 2013-07-18 2014-07-16 远程脚本环境中的上下文关联性 Active CN105408866B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/945,893 2013-07-18
US13/945,893 US10191887B2 (en) 2013-07-18 2013-07-18 Context affinity in a remote scripting environment
PCT/US2014/046774 WO2015009772A1 (en) 2013-07-18 2014-07-16 Context affinity in a remote scripting environment

Publications (2)

Publication Number Publication Date
CN105408866A true CN105408866A (zh) 2016-03-16
CN105408866B CN105408866B (zh) 2019-04-12

Family

ID=51298974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480040719.6A Active CN105408866B (zh) 2013-07-18 2014-07-16 远程脚本环境中的上下文关联性

Country Status (5)

Country Link
US (1) US10191887B2 (zh)
EP (1) EP3022651B1 (zh)
KR (1) KR102163502B1 (zh)
CN (1) CN105408866B (zh)
WO (1) WO2015009772A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106302571B (zh) * 2015-05-14 2020-07-28 微软技术许可有限责任公司 用于对服务器连接进行维护和高速缓存的系统和方法
EP3839524A1 (en) 2019-12-16 2021-06-23 E.On Se Method, device and arrangement for monitoring alternating current electric apparatuses
CN114567623B (zh) * 2022-02-20 2023-09-08 中国银联股份有限公司 一种页面显示方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594689B1 (en) * 1997-05-08 2003-07-15 Unisys Corporation Multi-platform helper utilities
CN1466050A (zh) * 2002-07-02 2004-01-07 联想(北京)有限公司 大规模异构机群的管理系统
CN1969280A (zh) * 2004-01-16 2007-05-23 微软公司 使用命令行环境的远程系统管理
US20080275951A1 (en) * 2007-05-04 2008-11-06 International Business Machines Corporation Integrated logging for remote script execution
CN101438247A (zh) * 2006-05-10 2009-05-20 兰德马克绘图公司 在瘦客户端计算机网络中显示关于地质资源勘探和生产的高分辨率内容的方法、系统及计算机可读介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6105067A (en) * 1998-06-05 2000-08-15 International Business Machines Corp. Connection pool management for backend servers using common interface
US6954933B2 (en) * 2000-10-30 2005-10-11 Microsoft Corporation Method and apparatus for providing and integrating high-performance message queues in a user interface environment
US20050086344A1 (en) * 2003-10-15 2005-04-21 Eaxis, Inc. Method and system for unrestricted, symmetric remote scripting
US7155706B2 (en) 2003-10-24 2006-12-26 Microsoft Corporation Administrative tool environment
US8180864B2 (en) * 2004-05-21 2012-05-15 Oracle International Corporation System and method for scripting tool for server configuration
US20060090167A1 (en) * 2004-10-07 2006-04-27 International Business Machines Corporation Administering return data from execution of commands by a computer operating system
US8244865B2 (en) * 2004-10-08 2012-08-14 International Business Machines Corporation Method and apparatus for autonomic management of connection pools
US7702796B2 (en) * 2006-05-18 2010-04-20 International Business Machines Corporation Recovering a pool of connections
US8806037B1 (en) * 2008-02-29 2014-08-12 Netapp, Inc. Remote support automation for a storage server
US20090254881A1 (en) 2008-04-04 2009-10-08 Microsoft Corporation Code generation techniques for administrative tasks
US20100281173A1 (en) * 2009-05-01 2010-11-04 Microsoft Corporation Delegated administration for remote management
US8924964B2 (en) 2010-11-01 2014-12-30 Microsoft Corporation Dynamic allocation and assignment of virtual environment
US9612641B2 (en) * 2010-11-17 2017-04-04 International Business Machines Corporation Adjusting the connection idle timeout in connection pools
JP5218585B2 (ja) * 2011-03-15 2013-06-26 オムロン株式会社 制御装置およびシステムプログラム
EP2608032A1 (en) * 2011-12-22 2013-06-26 Software AG Resource adapter for establishing a connection between an executive information system (EIS) and at least one client
US8701130B2 (en) * 2012-06-26 2014-04-15 Teradyne, Inc. Implementing remote procedure calls
US9160624B2 (en) * 2012-07-03 2015-10-13 Opera Software Ireland Limited Linked list scripting engine
US8904388B2 (en) * 2013-01-10 2014-12-02 Vce Company, Llc Scripting language executor service for applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6594689B1 (en) * 1997-05-08 2003-07-15 Unisys Corporation Multi-platform helper utilities
CN1466050A (zh) * 2002-07-02 2004-01-07 联想(北京)有限公司 大规模异构机群的管理系统
CN1969280A (zh) * 2004-01-16 2007-05-23 微软公司 使用命令行环境的远程系统管理
CN101438247A (zh) * 2006-05-10 2009-05-20 兰德马克绘图公司 在瘦客户端计算机网络中显示关于地质资源勘探和生产的高分辨率内容的方法、系统及计算机可读介质
US20080275951A1 (en) * 2007-05-04 2008-11-06 International Business Machines Corporation Integrated logging for remote script execution

Also Published As

Publication number Publication date
KR102163502B1 (ko) 2020-10-08
US20150026291A1 (en) 2015-01-22
US10191887B2 (en) 2019-01-29
WO2015009772A1 (en) 2015-01-22
EP3022651B1 (en) 2017-11-29
EP3022651A1 (en) 2016-05-25
KR20160032112A (ko) 2016-03-23
CN105408866B (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
US10521251B2 (en) Hosting application experiences within storage service viewers
US20190129968A1 (en) Dynamic display of file sections based on user identities
KR102050127B1 (ko) 첨부 노트를 갖는 상호작용 슬라이드 표현을 위한 읽기 모드
CN102968312B (zh) 用于应用扩展程序的用户界面占位符
US20160212138A1 (en) Contextually aware sharing recommendations
US10476931B2 (en) Delegation of rendering between a web application and a native application
US10108737B2 (en) Presenting data driven forms
WO2019089067A1 (en) Machine learning system for adjusting operational characteristics of a computing system based upon hid activity
US20220210133A1 (en) Interim connections for providing secure communication of content between devices
CN105408866A (zh) 远程脚本环境中的上下文关联性
CN107810489B (zh) 应用与设备之间的无缝转换
US20220342976A1 (en) Enhance single sign-on flow for secure computing resources
US11539828B2 (en) User interface process flow for posting content on a display device
US11531730B2 (en) Manipulation of a persistent display of shared content

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant