CN1811704A - 用于知晓上下文的平台的***和方法 - Google Patents

用于知晓上下文的平台的***和方法 Download PDF

Info

Publication number
CN1811704A
CN1811704A CNA200610006913XA CN200610006913A CN1811704A CN 1811704 A CN1811704 A CN 1811704A CN A200610006913X A CNA200610006913X A CN A200610006913XA CN 200610006913 A CN200610006913 A CN 200610006913A CN 1811704 A CN1811704 A CN 1811704A
Authority
CN
China
Prior art keywords
contextual information
context
software code
executable software
information
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
CNA200610006913XA
Other languages
English (en)
Other versions
CN1811704B (zh
Inventor
C·M·哈恩
K·C·T·达亚卡尔
R·索尹
R·E·库奇亚门
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 Corp
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 Corp filed Critical Microsoft Corp
Publication of CN1811704A publication Critical patent/CN1811704A/zh
Application granted granted Critical
Publication of CN1811704B publication Critical patent/CN1811704B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming
    • 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/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/543Local

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种可用于适应执行环境的知晓上下文的平台的改进的***和方法。具有用于设置、跟踪和获得关于计算机***的执行环境的上下文信息的接口的框架包括上下文引擎和统一数据存储,用于在平台级累积上下文信息,以供运行在该平台上的可执行文件访问。该上下文引擎可从可执行文件接收执行诸如设置、跟踪和获得数据存储中的上下文信息等上下文信息操作的请求。在接收到上下文信息的改变的通知之后,一个或多个可执行文件可改变执行环境,诸如重新配置***设置。以此方式,可执行文件可使用上下文信息来适应其执行环境。

Description

用于知晓上下文的平台的***和方法
技术领域
本发明一般涉及计算机***,尤其涉及一种用于可用于适应执行环境的知晓上下文的平台的***和方法。
背景技术
计算机用户长时间以来因计算机***无法智能地适应新的或改变的计算和/或操作环境而受到阻碍。这一阻碍对于移动计算机的用户而言尤为尖锐,这些用户通常在多个物理位置且在各种情况下进行多种不同的活动。例如,在一天的开始,移动计算机用户可以在家里,使用电子邮件或即时消息通信与家人或朋友交互。移动计算机用户稍后可在办公地点的会议中做出演示。傍晚,移动计算机用户可能在飞机上准备第二天的商务会议的商务计划。
不幸的是,计算机可能对这些不同环境和用途中的每一个都保持类似的配置,即使用于一种环境的配置在另一环境中不再保持相关且需要改变。例如,当用户在家庭网络和工作网络之间移动时,用户可能需要对物理位置的改变配置移动计算机。在此情况下,用户可能需要改变默认的打印机设置、默认的互联网浏览器主页、互联网浏览器代理服务器设置、以及其它相关的设置。用户可能也需要为活动的改变而配置计算机。例如,准备进行演示的用户可调整计算机音量、关闭即时消息通知、关闭屏幕保护程序超时、以及做出其它设置调整。用户也可能需要将计算机配置成在办公地点与在家中时的不同的人交互。例如,在家里可使用与办公地点所使用的电子邮件账号不同的默认电子邮件账号来与朋友和家人通信。结果,移动计算机的用户可能必须在每次计算环境改变时重新配置移动计算机。
所需要的是这样一种方法,用于使计算机***累积并公开关于计算环境的上下文信息,诸如物理位置、用户可在该物理位置与其交互的人、用户的活动等,使得该上下文信息可用于使计算机智能地适应计算环境。这一***和方法应当以统一且***的方式来累积和公开上下文信息,使得任何可执行文件可提供或使用该上下文信息来智能地适应计算机***。
发明内容
简言之,本发明提供了一种用于可用于适应执行环境的知晓上下文的平台的改进的***和方法。为此,本发明提供了具有用于设置、跟踪和获取关于计算机***的执行环境的上下文信息的接口的组件和框架。所提供的组件中可以有在操作上耦合至各种可执行文件以及包括统一数据存储的数据存储工具的上下文平台。该数据存储可通过在平台级累积上下文信息以供运行在该平台上的可执行文件访问,来为该上下文平台提供上下文信息的统一存储。可储存任何类型的上下文信息,包括但不限于,用户上下文数据、可执行文件上下文数据以及***上下文数据。
该上下文平台可包括应用程序编程接口和可执行代码,此处被称为上下文引擎,它用于协调该上下文环境的各部分与其它可执行文件之间的编程交互和数据交换。该上下文应用程序编程接口可提供对可执行文件的访问,以设置、跟踪或获得上下文信息。任何可执行文件可在操作上耦合至该上下文应用程序编程接口,以设置、跟踪或获得上下文信息。该上下文引擎可从可执行文件接收执行诸如设置、跟踪和获得数据存储中的上下文信息等上下文信息操作的请求。例如,该上下文引擎可接收更新上下文信息的请求,可查找请求被通知上下文信息改变的可执行文件,并且然后可向可执行文件发送关于上下文信息的改变的通知。作为接收上下文信息改变的通知的结果,一个或多个可执行文件可改变执行环境,诸如重新配置***设置。以此方式,可执行文件可使用上下文信息来适应其执行环境。
该上下文平台可有利地允许计算机***累积和公开关于执行环境的上下文信息,诸如物理位置、用户可在该物理位置处与其交互的人、以及用户的活动等等,使得该上下文信息可用于使计算机智能地适应执行环境。此外,该上下文平台是可扩展的,且支持可提供和使用上下文信息的任意数量的可执行文件。另外,该上下文平台可支持任何大小和/或格式的上下文信息数据。当结合附图阅读以下详细描述时,可以清楚其它优点,附图中:
附图说明
图1是概括地表示其中可结合本发明的计算机***的框图;
图2是概括地表示依照本发明的一方面,知晓上下文的平台的一个实施例中的***组件的示例性体系结构的框图;
图3是概括地表示依照本发明的一方面,知晓上下文的平台的另一实施例中的***组件的示例性体系结构的框图;
图4是概括地表示依照本发明的一方面,可被包括在该上下文平台的各实施例中的上下文引擎的***组件的示例性体系结构的框图;
图5是概括地表示依照本发明的一方面,在一个实施例中由可执行文件所采取的用于设置上下文信息的示例性步骤的流程图;
图6是概括地表示依照本发明的一方面,在一个实施例中由可执行文件所采取的用于跟踪上下文信息的示例性步骤的流程图;
图7是概括地示出依照本发明的一方面,在一个实施例中由可执行文件所采取的用于获得上下文信息的示例性步骤的流程图;及
图8是概括地示出依照本发明的一方面,在一个实施例中由上下文引擎所采取的用于执行所请求的上下文信息操作的示例性步骤的流程图。
具体实施方式
示例性操作环境
图1示出了适合在其中实现本发明的计算***环境100的一个示例。计算***环境100仅为合适的计算环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有任何依赖或需求。
本发明可以使用众多其它通用或专用计算***环境或配置来操作。适用于本发明的众所周知的计算***、环境和/或配置包括但不限于:个人计算机、服务器计算机、手持式或膝上设备、图形输入板设备、无外设服务器、多处理器***、基于微处理器的***、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述***或设备的分布式计算环境等等。
本发明可以在诸如由计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,它们执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参考图1,用于实现本发明的示例***包括计算机110形式的通用计算设备。计算机110的组件可包括,但不限于,处理单元120、***存储器130以及将包括***存储器的各类***组件耦合至处理单元120的***总线121。***总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、***总线以及使用各类总线体系结构的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及***部件互连(PCI)总线,也称为Mezzanine总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常具体化为诸如载波或其它传输机制的已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以在信号中对信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
***存储器130包括以易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出***133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作***134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作示例,图1示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器141、对可移动、非易失性磁盘152进行读写的磁盘驱动器151以及对可移动、非易失性光盘156,如CD ROM或其它光介质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到***总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到***总线121。
上文讨论并在图1示出的驱动器及其关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作***144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作***134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作***144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如图形输入板或电子数字化仪164、话筒163、键盘162和定位设备161(通常指鼠标、跟踪球或触摸板)向计算机110输入命令和信息。其它输入设备(图1中未示出)可包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪,或其他设备,包括包含生物测量传感器、环境传感器、位置传感器,或其他类型的传感器的设备。这些和其它输入设备通常通过耦合至***总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至***总线121。监视器191也可与通过触摸屏接口192连接到***总线121的触摸屏面板等集成。注意,监视器和/或触摸屏面板可以在物理上耦合至其中容纳计算设备110的外壳,诸如在图形输入板类型的个人计算机中。另外,诸如计算设备110等计算机也可包括其它***输出设备,如扬声器194和打印机195,它们通过输出***接口193等连接。
计算机110可以使用到一个或多个远程计算机,如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有相对于计算机110所描述的元件,尽管在图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或用于通过WAN 173,如因特网建立通信的其它装置。调制解调器172可以是内置或外置的,通过用户输入接口160或其它适当的机制连接至***总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例,而非局限,图1示出远程应用程序185驻留在存储器设备181中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
知晓上下文的平台
本发明一般针对一种用于知晓上下文的平台的***和方法。知晓上下文的平台可有利地允许计算机***累积和公开关于执行环境的上下文信息,诸如物理位置、用户在该物理位置处可与其交互的人、以及用户的活动等,使得上下文信息可用于使计算机智能地适应执行环境。如此处所使用的执行环境指的是可执行文件设置,诸如安装或配置设置、可执行指令、以及操作***服务。如所见到的,本发明的体系结构提供了具有用于设置、跟踪和获取关于计算机***的执行环境的上下文信息的组件和框架。所提供的组件中可以有上下文引擎以及统一的数据存储,用于在平台级累积上下文信息,以供运行在该平台上的可执行文件访问。可储存任何类型的上下文信息,包括用户上下文数据、可执行文件上下文数据以及***上下文数据。如可以理解的,此处所描述的各种框图、流程图和情形仅是示例,且可以有许多可向其应用本发明的其它情形。
转向附图的图2,示出了概括地表示用于知晓上下文的平台的***组件的示例性体系结构。本领域的技术人员可以理解,在该图中示出的框内实现的功能可以被实现为单独的组件,或者若干或全部框的功能可以在单个组件内实现。作为一个示例,上下文平台204中的上下文API 206的功能可以在单独的组件中实现。
图2所示的上下文平台204可以在操作上耦合至各种可执行文件202以及诸如数据存储210等存储工具。上下文平台204可包括上下文应用程序编程接口(API)206以及上下文引擎208。上下文API 206可以是应用程序编程接口(API)、对象、控件或其它可执行代码。上下文API 206例如可通过包括可调用接口,诸如向数据存储210添加上下文信息的SetContextData(设置上下文数据)、通知对数据存储210中的上下文信息的更新的TrackContextData(跟踪上下文数据)、以及检索数据存储210中的上下文信息的GetContextData(获得上下文数据),来提供访问以设置、跟踪或获得上下文信息。也可使用其它上下文API来操纵上下文信息。
上下文引擎208可以是任何可执行软件代码,包括内核组件、应用程序组件、链接库组件、对象等等。上下文引擎208可以从可执行软件代码接收执行诸如设置、跟踪和获得数据存储210中的上下文信息等上下文信息操作的请求。例如,上下文引擎208可跟踪要被通知上下文信息的更新或改变的请求,并可在接收到请求被跟踪的上下文信息的更新或改变时通知可执行文件。为持久地储存上下文信息,上下文引擎208可在操作上耦合至诸如数据存储210等各种存储工具。上下文引擎208可将诸如GUID等唯一标识符与可用于储存上下文信息的表示上下文信息的上下文数据块相关联。
数据存储210可通过在平台级累积上下文信息,以供运行在该平台上的可执行文件访问,来对上下文平台204提供上下文信息的统一存储。数据存储可储存上下文类型。上下文类型可以是担当由位的数据块表示的上下文信息的标识符的GUID。如此处所使用的上下文信息包括,但不限于,关于逻辑和物理执行环境的任何信息,包括位置、活动和状态信息。实际上,上下文信息可以是任何大小、格式或数据类型。例如,上下文信息可包括二进制数据、格式化的数据、诸如音频或视频等媒体数据、人类可读数据、XML、加密数据等等。储存在数据存储210中的各种上下文信息可以有用户上下文数据212、可执行文件上下文数据214以及***上下文数据216。用户上下文数据212可包括关于诸如网上冲浪、使用演示程序等用户活动的信息。可执行文件上下文数据214可包括关于诸如程序设置、打开的文件等可执行文件状态的信息。***上下文数据216可包括关于诸如类似电池能量水平、网络连通性等硬件设备状态的***状态的信息。
可执行文件可以是可以提供或获得上下文信息和/或依照上下文信息的改变来适应其计算环境的任何应用程序、内核组件或其它可执行文件。可执行文件202可以在操作上耦合至上下文API 206,以访问可调用接口来设置、跟踪或获得上下文信息。例如,用于MicrosoftWindows XP操作***的网络位置知晓(NLA)服务可监视网络改变,并可通过调用SetContextData API将网络的上下文信息设为新网络连接,来向上下文平台提供网络信息。上下文引擎可接收该新值,以与网络连接相关联,并可查找调用了TrackContext API以被通知网络连接的上下文信息的改变的可执行文件。上下文引擎然后可向这些可执行文件发送关于网络连接的上下文信息的改变的通知。作为接收网络连接的改变的通知的结果,一个或多个可执行文件可改变诸如默认打印机设置、默认互联网浏览器主页、互联网浏览器代理服务器设置等***设置。以此方式,可执行文件可在被通知到上下文信息的更新之后使用该上下文信息来适应其执行环境。
图3呈现了概括地表示一个替换实施例中用于知晓上下文的平台的***组件的示例性体系结构的框图。除结合图2所讨论的***组件之外,受管上下文应用程序编程接口304可在操作上耦合至上下文API 206,以使用受管代码来提供上下文平台302的实现。受管代码指的是为Microsoft.NET平台开发的,且包含可由Microsoft公共语言运行库(CLR)使用的元数据的软件代码。有利的是,.NET运行库可以管理数据相关任务,诸如分配存储器、回收存储器、类型检查和其它数据相关任务。受管上下文API 304可包括ContextClient(上下文客户端)对象,它具有两个静态方法,即SetContext(设置上下文)以及GetContext(获取上下文),以及允许可执行文件使用.NET的互操作性程序集而非直接与窗口消息交互来接收上下文信息事件的一组非静态方法。受管上下文API 304可以在操作上耦合至上下文API 206,并利用.NET互操作性程序集使用上述上下文API 206来与上下文引擎208通信。
SetContext方法可以由可执行文件用于提供关于一种类型的上下文的新上下文信息。该上下文类型可以由传递给该方法的对象的类型来确定。上下文引擎可通过将上下文信息与对应于传递给该方法的对象的GUID相关联来储存上下文信息。可执行文件可使用GetContext方法来获得用于特定类型的上下文的当前上下文信息。上下文引擎可使用用于该上下文类型的GUID来查找储存的上下文信息,该上下文信息可通过对SetContext方法的先前调用被写入数据存储中。
受管上下文API 304也可包括可由称为ContextClient的对象访问的事件机制。ContextClient可公开名为ContextChanged(上下文改变)的事件,以及名为ContextChangedEventHandler(上下文改变事件处理程序)的事件处理程序,该事件处理程序可利用具有诸如OldContext(旧上下文)、NewContext(新上下文)、ContextType(上下文类型)以及Stale(陈旧)等属性的ContextChangedEventArgs(上下文改变事件参数)对象。OldContext和NewContext属性可允许事件接收器在上下文改变之前和之后确定上下文的状态,使得接收器可采取适当的动作。ContextType可表示该事件中的对象的类型。最后,Stale标志可用于指示提供该上下文信息的可执行文件是否仍能够驻留在易失性存储器中。
图4呈现了概括地表示用于可包括在本上下文平台的各实施例中的上下文引擎的***组件的示例性体系结构的框图。上下文引擎208可从消息队列接收执行上下文信息操作的请求,可用上下文信息的更新来更新数据存储210,并且然后可向可执行文件202通知改变。上下文引擎208可包括消息队列402、上下文消息处理器404、上下文数据406、上下文通知队列414、上下文通知器416、通知表418以及一个或多个通知器线程420。在一个实施例中,只要在消息队列402中接收到由可执行文件发送的对上下文信息操作的请求,操作***就可调度上下文消息处理器404处理该消息。可由上下文引擎208接收的消息可包括向上下文数据406添加上下文信息的SetContextData(设置上下文数据)请求、被通知到对上下文数据406中的上下文信息的更新的TrackContextData(跟踪上下文数据)请求、以及从上下文数据406检索上下文信息的GetContextData(获得上下文数据)请求。
上下文消息处理器404可将上下文信息储存在存储器中,如由上下文信息406所示的。储存在上下文数据406中的各种上下文信息可以有用户上下文数据408、可执行文件上下文数据410以及***上下文数据412。上下文引擎208可储存上下文信息,作为具有包含上下文信息的相关联数据块的GUID。只要接收到GetContextData请求,上下文消息处理器404就可从上下文数据406中获得所请求的上下文信息,并可将上下文信息的副本放置在共享存储器缓冲区中,或存储器映射的文件或诸如盘上文件或***注册表等其它共享位置中,使得可执行文件可在接收通知时读出它。只要接收到SetContextData请求,上下文消息处理器404可通过将SetContextData请求中的上下文信息添加到上下文数据406来更新上下文数据406,然后上下文消息处理器404可将上下文信息放置在上下文通知队列414中。在一个实施例中,上下文信息可以是更新对象,它可包括旧上下文信息、新上下文信息以及请求被通知到该上下文信息中的更新的可执行文件的列表。在另一实施例中,请求被通知到上下文信息中的更新的可执行文件可以单独地储存在通知表418中,其中可执行文件的列表可以与一个或多个上下文类型或GUID相关联。在将上下文信息放置在上下文通知队列414中以后,可唤醒上下文通知器416。在一个实施例中,上下文通知器416可以是由上下文引擎208产生的线程。上下文通知器416可从上下文通知队列414中读取上下文信息的更新,并向请求被通知到该上下文信息中的更新的每一可执行文件发送通知消息。
在一个实施例中,上下文通知器416可以产生一个或多个通知器线程420,以异步地发送具有上下文信息的通知消息,来向各个可执行文件通知上下文信息的更新。由此,通知器线程上的任何可执行文件的同步阻断可能不能阻止发送其它通知,且可向可执行文件发送任意数量的通知,而无需完成先前发送给任一可执行文件的通知。在接收到关于上下文信息的更新的通知之后,可执行文件可从诸如共享存储器缓冲区或存储器映射的文件等共享位置访问上下文信息的更新。
上下文引擎208可周期性地将上下文数据406中的上下文信息写入诸如数据存储210等持久存储中。上下文引擎208也可将通知表418写入持久存储中。在一个实施例中,上下文引擎208可在一段时间的不活动之后进入睡眠。在进入睡眠之前,上下文引擎208可将上下文数据406和通知表418写入持久存储中。默认的不活动时间段可以是例如一小时。在各实施例中,可使用适用于用户活动的期望持续时间的其它时间段。在某些实施例中,持续时间可由用户设置。当唤醒上下文引擎时,它可从持久存储中读取上下文数据,并将其写入上下文数据406中,以及从持久存储中读取通知列表,并将其写入通知表418中。
只要可执行文件希望提供上下文信息以供其它可执行文件使用,该可执行文件就可向上下文引擎发送一设置请求。图5呈现了概括地示出在一个实施例中由可执行文件采取的用于设置上下文信息的示例性步骤的流程图。在步骤502,首先检测上下文的改变。然后,在步骤504,可发送设置上下文信息的请求。例如,诸如用于MicrosoftWindows XP操作***的网络位置知晓(NLA)服务等可执行文件可监视网络改变,并可检测新网络连接。可执行文件然后可通过调用SetContextDataAPI以将网络的上下文信息设为新网络连接,来向上下文平台提供该网络信息。
图6呈现了概括地表示在一个实施例中由可执行文件采取的用于跟踪上下文信息的示例性步骤的流程图。首先,在步骤602,可发送跟踪上下文信息的请求。例如,可负责计算机***的默认打印机设置的可执行文件可调用TraceContextDataAPI来向上下文平台发送要被通知到关于网络连接的上下文信息的更新的跟踪请求。接着,在步骤604,可接收上下文信息的更新的通知。然后在步骤606,可获得上下文信息的更新。例如,前一示例中可负责默认打印机设置的可执行文件可接收关于新网络连接的上下文信息的更新的通知,并从共享存储器缓冲区或存储器映射的文件中检索关于新网络连接的上下文信息的更新的副本。最后,在步骤608,可执行文件可依照上下文信息的更新进行适应。由此,如前一示例中可负责默认打印机设置的可执行文件等可执行文件可依照上下文信息的更新,诸如通过将默认打印机设置改为用于新网络连接的打印机设置,来适应其执行环境。
图7呈现了概括地表示在一个实施例中由可执行文件采取的用于获得上下文信息的示例性步骤的流程图。首先,在步骤702,可发送获得上下文信息的请求。例如,可负责设置浏览器的默认主页的可执行文件可调用GetContextData API来获得网络的上下文信息。接着,在步骤704,可接收上下文信息的通知。最后,在步骤706,可执行文件可依照所获得的上下文信息进行适应。例如,前一示例中可负责设置浏览器的默认主页的可执行文件可将默认主页设置改为用于网络连接的主页设置。
图8呈现了概括地表示在一个实施例中由上下文引擎采取的用于执行所请求的上下文信息操作的示例性步骤的流程图。本领域的技术人员可以理解,实现可选择以不同的顺序执行这些步骤,或者可选择为效率或灵活性起见仅执行这些步骤中的某一些,而同时达到同样的效果且不会偏离本发明的范围。在步骤802,可接收上下文信息操作。例如,上下文引擎208可从可执行文件接收上下文信息操作。在步骤804,可确定所接收到的上下文信息操作是否是设置上下文信息的请求。如果是,则可在步骤806向储存在存储器中的上下文数据的表示添加上下文信息,并可在步骤808将该上下文信息放置在上下文通知队列中。在一个实施例中,上下文引擎208可将设置请求中的上下文信息添加到上下文数据406,然后上下文引擎208可将该上下文信息放置在上下文通知队列414中。
在步骤810,可以在要被通知该上下文信息的更新的可执行文件列表中查找请求被通知到该上下文信息的更新的任何可执行文件。例如,在一个实施例中,请求被通知到该上下文信息的更新的可执行文件的列表可单独储存在诸如通知表418等通知表中,其中可执行文件的列表可与上下文类型或GUID相关联。在另一实施例中,请求被通知到该上下文信息的更新的可执行文件的列表可储存在包括更新的上下文信息以及其它信息的更新对象中。
在步骤811,可以确定是否存在请求处于要被通知到该上下文信息的更新的可执行文件列表中的任何可执行文件。如果是,则可在步骤812向请求被通知到该上下文信息的更新的可执行文件的列表发送通知。在一个实施例中,上下文通知器416可从上下文通知队列414中读取上下文信息的更新,并向请求被通知到该上下文信息的更新的每一可执行文件发送通知消息。在各实施例中,上下文通知器416可产生一个或多个通知器线程420,以异步地发送具有上下文信息的通知消息,来向各个可执行文件通知上下文信息的更新。
在步骤812向请求被通知到该上下文信息的更新的可执行文件的列表发送通知之后,或者如果在步骤811确定不存在请求处于要被通知到该上下文信息的更新的可执行文件列表中的任何可执行文件,则可在步骤814持久储存上下文信息的更新。例如,上下文引擎208可周期性地将上下文数据406中的更新的上下文信息写入诸如数据存储210等持久存储中。在一段时间的不活动之后,在一个实施例中,上下文引擎208可在进入睡眠之前将上下文数据406写入持久存储中。在持久储存了更新的上下文信息之后,处理完成。
返回到步骤814,如果接收到的上下文信息操作不是设置请求,则可以在步骤816确定接收到的上下文信息操作是否为跟踪上下文信息的请求。如果是,则可在步骤818更新要被通知到该上下文信息的更新的可执行文件的列表。接着,在步骤820,可持久存储要被通知到该上下文信息的更新的可执行文件的更新的列表。例如,上下文引擎208可周期性地将通知表418中的更新的可执行文件列表写入持久存储中。在另一实施例中,上下文引擎208可周期性地将包括更新的上下文信息以及其它信息的更新对象中的更新的可执行文件列表写入持久存储中。在一段时间的不活动之后,在各实施例中,上下文引擎208可在进入睡眠之前将更新的可执行文件列表写入持久存储中。在持久存储了要被通知的可执行文件的更新的列表之后,处理完成。
返回到步骤816,如果所接收到的上下文信息操作不是跟踪请求,则可在步骤822确定所接收到的上下文信息操作是否为获得上下文信息的请求。如果是,则可在步骤824检索上下文信息。例如,在一个实施例中,上下文引擎208可从上下文数据406中获得上下文信息。在另一实施例中,上下文引擎208可从数据存储210中获得上下文信息。接着,可在步骤826向请求者发送上下文信息。在向发送获取请求的可执行文件发送了上下文信息之后,处理完成。在一个实施例中,只要任何可执行文件可响应于发送获取请求而接收上下文信息,就可向请求被通知到该上下文中的更新的可执行文件的列表发送通知。
有利的是,该***和方法可允许计算机***累积和公开关于执行环境的上下文信息,使得该上下文信息可用于使计算机智能地适应执行环境。可执行文件可通过使用上下文信息的单个项来适应执行环境,或者可通过使用上下文信息的多个项来适应执行环境。此外,可执行文件可独立于其它可执行文件或可结合若干可执行文件来操作,以设置上下文信息或使用可用的上下文信息来适应执行环境。上下文信息可以在统一的数据存储中在平台级累积,使得运行在该平台上的任何可执行文件可提供或使用该上下文信息来使计算机***智能地适应以增强用户的生产率。
如可以从以上详细描述中见到的,本发明提供了一种用于可用于适应执行环境的知晓上下文的平台的改进的***和方法。本发明的体系结构提供了具有用于设置、跟踪和获得上下文信息的接口的框架。所提供的***和框架是可扩展的。可使用任何类型的上下文信息,包括用户上下文数据、可执行文件上下文数据、以及***上下文数据。可支持可提供或使用上下文信息的任意数量的可执行文件。如现在所理解的,该***和方法因此提供了当代计算中所需的显著优点和益处。
尽管本发明允许各种修改和替换构造,在附图中示出并在上文详细描述了其某些示出的实施例。然而,应当理解,并没有任何意图将本发明限于所揭示的具体形式,而是相反,本发明旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效技术方案。

Claims (20)

1.一种用于向可执行文件提供上下文信息的计算机***,包括:
可执行软件代码;
在操作上耦合至所述可执行软件代码的上下文组件,所述上下文组件具有可由所述可执行软件代码调用来请求上下文信息操作的应用程序编程接口;
操作上耦合至所述上下文组件的上下文引擎,用于执行所述可执行软件代码请求的上下文信息操作;以及
操作上耦合至所述上下文引擎的统一数据存储,用于持久储存上下文信息。
2.如权利要求1所述的***,其特征在于,可由所述可执行软件代码调用来请求上下文信息操作的应用程序编程接口包括用于请求设置上下文信息的应用程序编程接口。
3.如权利要求1所述的***,其特征在于,可由所述可执行软件代码调用来请求上下文信息操作的应用程序编程接口包括用于请求获得上下文信息的应用程序编程接口。
4.如权利要求1所述的***,其特征在于,可由所述可执行软件代码调用来请求上下文信息操作的应用程序编程接口包括用于请求跟踪上下文信息改变的应用程序编程接口。
5.如权利要求1所述的***,其特征在于,所述上下文引擎包括用于执行所述可执行软件代码所请求的上下文信息操作的上下文消息处理器。
6.如权利要求1所述的***,其特征在于,所述上下文引擎包括用于向所述可执行软件代码发送具有所述上下文信息的通知消息的上下文通知器。
7.如权利要求1所述的***,其特征在于,所述上下文引擎包括用于向所述可执行软件代码异步地发送具有所述上下文信息的通知消息的通知器线程。
8.如权利要求1所述的***,其特征在于,所述统一数据存储包括用于持久储存关于用户活动、应用程序状态以及机器状态的上下文信息的数据存储。
9.一种包含构成如权利要求1所述的***的计算机可执行组件的计算机可读介质。
10.一种用于向可执行软件代码提供上下文信息的方法,包括以下步骤:
调用用于设置可执行软件代码的上下文信息的应用程序编程接口;
设置所述可执行软件代码的上下文信息;
调用用于获得所述可执行软件代码的上下文信息的应用程序编程接口;以及
从统一数据存储中获取所述可执行软件代码的上下文信息,所述统一数据存储包含关于用户活动、应用程序状态以及机器状态的上下文信息。
11.如权利要求10所述的方法,其特征在于,还包括接收设置所述可执行软件代码的上下文信息的请求。
12.如权利要求10所述的方法,其特征在于,还包括接收跟踪所述可执行软件代码的上下文信息的请求。
13.如权利要求10所述的方法,其特征在于,还包括接收获得所述可执行软件代码的上下文信息的请求。
14.如权利要求10所述的方法,其特征在于,还包括向所述可执行软件代码通知所述上下文信息的更新。
15.如权利要求14所述的方法,其特征在于,还包括产生通知线程,用于异步地向所述可执行软件代码发送具有所述上下文信息的通知消息。
16.如权利要求10所述的方法,其特征在于,还包括将所述上下文信息持久储存在包含关于用户活动、应用程序状态和机器状态的上下文信息的统一数据存储中。
17.如权利要求10所述的方法,其特征在于,还包括使用所获得的上下文信息来执行所述可执行软件代码的指令,以改变所述可执行软件代码的执行环境。
18.一种包含用于执行如权利要求10所述的方法的计算机可执行指令的计算机可读介质。
19.一种用于向可执行文件提供上下文信息的计算机***,包括:
用于调用执行上下文信息操作的应用程序编程接口的装置;
用于执行所述上下文信息操作的装置;
用于调用用于获得可执行软件代码的上下文信息的应用程序编程接口的装置;以及
用于获取所述可执行软件代码的上下文信息的装置。
20.如权利要求19所述的***,其特征在于,还包括用于将所述上下文信息持久存储在统一数据存储中的装置,所述统一数据存储包含关于用户活动、所述可执行软件代码的状态以及所述计算机***的状态的上下文信息。
CN200610006913XA 2005-01-26 2006-01-23 用于知晓上下文的平台的***和方法 Expired - Fee Related CN1811704B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/044,354 2005-01-26
US11/044,354 US7716651B2 (en) 2005-01-26 2005-01-26 System and method for a context-awareness platform

Publications (2)

Publication Number Publication Date
CN1811704A true CN1811704A (zh) 2006-08-02
CN1811704B CN1811704B (zh) 2010-06-23

Family

ID=36603024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610006913XA Expired - Fee Related CN1811704B (zh) 2005-01-26 2006-01-23 用于知晓上下文的平台的***和方法

Country Status (5)

Country Link
US (1) US7716651B2 (zh)
EP (1) EP1686465A3 (zh)
JP (1) JP2006209774A (zh)
KR (1) KR101224721B1 (zh)
CN (1) CN1811704B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295248B (zh) * 2007-04-25 2012-08-15 国际商业机器公司 在主动滚动的视图窗格中提供功能性上下文的方法和***
CN102713886A (zh) * 2010-01-21 2012-10-03 微软公司 跨越多个计算设备的漫游应用设置
CN104428757A (zh) * 2012-06-27 2015-03-18 微软公司 在开发环境中集成诊断信息
CN105051685A (zh) * 2013-03-13 2015-11-11 高通股份有限公司 用于使得网络资产能够访问本地应用的***和方法
CN108469990A (zh) * 2018-03-14 2018-08-31 北京思特奇信息技术股份有限公司 一种并行计算方法及***
CN113254112A (zh) * 2021-04-29 2021-08-13 杭州天谷信息科技有限公司 一种请求和接口的关联方法及***

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090083768A1 (en) * 2007-09-20 2009-03-26 Hatalkar Atul N Context platform framework for aggregation, analysis and use of contextual information
US20090138478A1 (en) * 2007-11-27 2009-05-28 Motorola, Inc. Method and Apparatus to Facilitate Participation in a Networked Activity
US8112552B2 (en) * 2008-02-25 2012-02-07 Microsoft Corporation Default peripheral device selection based on location
US20090222300A1 (en) * 2008-03-03 2009-09-03 The Coca-Cola Company Systems and Methods of Marketing to Defined Consumer Groups
US8533227B2 (en) * 2008-05-14 2013-09-10 Red Hat, Inc. Managing website blacklists
US8024732B2 (en) * 2008-07-28 2011-09-20 Microsoft Corporation State separation for application changes
US8402174B2 (en) * 2008-12-19 2013-03-19 Intel Corporation Handling sensors in a context-aware platform with hint signals
US8321843B2 (en) * 2009-02-09 2012-11-27 Tranxition Corporation Automatic analysis of an application's run-time settings
CA2753771A1 (en) * 2009-04-09 2010-10-14 Research In Motion Limited Method and system for the transport of asynchronous aspects using a context aware mechanism
US9736675B2 (en) 2009-05-12 2017-08-15 Avaya Inc. Virtual machine implementation of multiple use context executing on a communication device
JP5290863B2 (ja) * 2009-05-15 2013-09-18 株式会社日立製作所 ターミナルサーバ、シンクライアントシステム、及びコンピュータ資源割り当て方法
US9135144B2 (en) * 2009-10-22 2015-09-15 Freescale Semiconductor, Inc. Integrated circuits and methods for debugging
US9002924B2 (en) 2010-06-17 2015-04-07 Microsoft Technology Licensing, Llc Contextual based information aggregation system
GB2484715A (en) * 2010-10-21 2012-04-25 Vodafone Ip Licensing Ltd Communication terminal with situation based configuration updating
US20120108172A1 (en) * 2010-10-29 2012-05-03 Microsoft Corporation Personal digital context
US10409576B2 (en) 2010-10-29 2019-09-10 Intuit, Inc. Chained data processing and application utilization
US10026058B2 (en) 2010-10-29 2018-07-17 Microsoft Technology Licensing, Llc Enterprise resource planning oriented context-aware environment
US9116728B2 (en) * 2010-12-21 2015-08-25 Microsoft Technology Licensing, Llc Providing a persona-based application experience
US8813167B2 (en) * 2010-12-30 2014-08-19 Apple Inc. Dynamic device configuration using predicates
JP5177239B2 (ja) 2011-01-21 2013-04-03 沖電気工業株式会社 コンテキストアウェアシステム及びイベントデータ生成方法
US9544396B2 (en) 2011-02-23 2017-01-10 Lookout, Inc. Remote application installation and control for a mobile device
US8996687B2 (en) 2011-05-31 2015-03-31 At&T Intellectual Property I, L.P. Context-based computing framework
US8645969B2 (en) * 2011-08-19 2014-02-04 Qualcomm Incorporated Method for dynamic discovery of processors and processor capabilities
JP6238610B2 (ja) * 2013-07-18 2017-11-29 キヤノン株式会社 情報処理端末、制御方法、及びプログラム
EP3042291A4 (en) * 2013-09-04 2017-07-26 Intel Corporation Mechanism for facilitating dynamic storage management for mobile computing devices
US20150121343A1 (en) * 2013-10-25 2015-04-30 Microsoft Corporation Test impact analysis using cross reference data and metadata
WO2015116105A2 (en) * 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Context based mobile device
JPWO2015170473A1 (ja) * 2014-05-09 2017-04-20 日本電気株式会社 アプリケーション自動制御システム、アプリケーション自動制御方法およびアプリケーション自動制御プログラム
WO2016048345A1 (en) * 2014-09-26 2016-03-31 Hewlett Packard Enterprise Development Lp Computing nodes
US10659594B2 (en) 2015-02-12 2020-05-19 American University Of Beirut Context aware mobile personalization system and methods of use
KR20170092409A (ko) * 2016-02-03 2017-08-11 엘지전자 주식회사 이동 단말기 및 이의 제어 방법
US11477302B2 (en) 2016-07-06 2022-10-18 Palo Alto Research Center Incorporated Computer-implemented system and method for distributed activity detection
US10552442B1 (en) 2016-08-29 2020-02-04 Amazon Technologies, Inc. Stateful database application programming interface
US10572315B1 (en) * 2016-08-29 2020-02-25 Amazon Technologies, Inc. Application programming interface state management
US10476860B1 (en) 2016-08-29 2019-11-12 Amazon Technologies, Inc. Credential translation
US10901760B2 (en) 2018-03-05 2021-01-26 Microsoft Technology Licensing, Llc View augmentation in multiscreen environment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6512525B1 (en) * 1995-08-07 2003-01-28 Apple Computer, Inc. Multiple personas for mobile devices
US6401138B1 (en) * 1996-10-28 2002-06-04 Koninklijke Philips Electronics N.V. Interface for patient context sharing and application switching
US6131166A (en) * 1998-03-13 2000-10-10 Sun Microsystems, Inc. System and method for cross-platform application level power management
US6298378B1 (en) * 1998-12-04 2001-10-02 Sun Microsystems, Inc. Event distribution system for computer network management architecture
US7289102B2 (en) * 2000-07-17 2007-10-30 Microsoft Corporation Method and apparatus using multiple sensors in a device with a display
US7072956B2 (en) * 2000-12-22 2006-07-04 Microsoft Corporation Methods and systems for context-aware policy determination and enforcement
US20030131142A1 (en) * 2001-03-14 2003-07-10 Horvitz Eric J. Schema-based information preference settings
AU2002310341A1 (en) * 2001-06-07 2002-12-16 Unwired Express, Inc. Method and system for providing context awareness
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7260553B2 (en) * 2002-01-11 2007-08-21 Sap Aktiengesellschaft Context-aware and real-time tracking
US20060090200A1 (en) * 2002-04-11 2006-04-27 International Business Machines Corp Computer, computer security setting method, and program
JP2003323363A (ja) 2002-04-30 2003-11-14 Fujitsu Ltd 環境設定装置、環境設定プログラム、および情報処理装置
JP2004005269A (ja) 2002-05-31 2004-01-08 Toshiba Corp データ取得方法、電子機器およびデータ取得プログラム
US20040122892A1 (en) * 2002-12-24 2004-06-24 Brittenham Peter J. Method, apparatus, and computer-program product for event service declaration, registration, and notification

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295248B (zh) * 2007-04-25 2012-08-15 国际商业机器公司 在主动滚动的视图窗格中提供功能性上下文的方法和***
CN102713886A (zh) * 2010-01-21 2012-10-03 微软公司 跨越多个计算设备的漫游应用设置
US9077733B2 (en) 2010-01-21 2015-07-07 Microsoft Technology Licensing, Llc Roaming application settings across multiple computing devices
CN102713886B (zh) * 2010-01-21 2016-05-11 微软技术许可有限责任公司 跨越多个计算设备的漫游应用设置
CN104428757A (zh) * 2012-06-27 2015-03-18 微软公司 在开发环境中集成诊断信息
CN105051685A (zh) * 2013-03-13 2015-11-11 高通股份有限公司 用于使得网络资产能够访问本地应用的***和方法
CN105051685B (zh) * 2013-03-13 2018-04-13 高通股份有限公司 用于使得网络资产能够访问本地应用的***和方法
CN108469990A (zh) * 2018-03-14 2018-08-31 北京思特奇信息技术股份有限公司 一种并行计算方法及***
CN113254112A (zh) * 2021-04-29 2021-08-13 杭州天谷信息科技有限公司 一种请求和接口的关联方法及***

Also Published As

Publication number Publication date
EP1686465A3 (en) 2009-01-28
KR20060086305A (ko) 2006-07-31
US7716651B2 (en) 2010-05-11
JP2006209774A (ja) 2006-08-10
EP1686465A2 (en) 2006-08-02
KR101224721B1 (ko) 2013-01-21
US20060200834A1 (en) 2006-09-07
CN1811704B (zh) 2010-06-23

Similar Documents

Publication Publication Date Title
CN1811704B (zh) 用于知晓上下文的平台的***和方法
US20230169086A1 (en) Event driven extract, transform, load (etl) processing
CN106648024B (zh) 计算对象的上下文历史
US9332063B2 (en) Versatile application configuration for deployable computing environments
CA2919839C (en) Virtual computing instance migration
CN102349062B (zh) 浏览器缓存与远程仓库同步的方法和***
US9298747B2 (en) Deployable, consistent, and extensible computing environment platform
US20190272335A1 (en) Data retention handling for data object stores
US20080126439A1 (en) Change verification in a configuration management database
CN102291446A (zh) 向应用程序通知状态变化的灵活体系结构
US20080154776A1 (en) System and method of automatically maintaining and recycling software components
JP2008293502A (ja) 強化されたウィジェットアーキテクチャ
JP2009528647A (ja) 配信コンテンツ用補助表示ガジェット
CN1704937A (zh) 利用表单类型生成表单的方法和装置
CN111930706B (zh) 基于远程调用的分布式网络文件存储***和方法
US8726263B2 (en) Detection and installation of software on a per-user basis
CN1678994A (zh) 用于提供访问用户界面信息的***和方法
MX2008011058A (es) Objeto de procesamiento de datos de sindicacion realmente simple (rss).
KR20120008028A (ko) 데이터의 백업 또는 복원과 관련한 사용자 컨텍스트의 이용
JP2015510644A (ja) サブ・デバイスの発見および管理
US20190171439A1 (en) Optimizing feature deployment based on usage pattern
US20080288572A1 (en) Scalable presence server architecture
AU2018256658B2 (en) Contextual history of computing objects
AU2015200649B2 (en) Contextual history of computing objects
CN114327372A (zh) 一种质量需求配置方法、装置、设备和介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150428

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150428

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100623

Termination date: 20210123

CF01 Termination of patent right due to non-payment of annual fee