CN1828529B - 最终用户数据激活的方法和系统 - Google Patents

最终用户数据激活的方法和系统 Download PDF

Info

Publication number
CN1828529B
CN1828529B CN2006100046621A CN200610004662A CN1828529B CN 1828529 B CN1828529 B CN 1828529B CN 2006100046621 A CN2006100046621 A CN 2006100046621A CN 200610004662 A CN200610004662 A CN 200610004662A CN 1828529 B CN1828529 B CN 1828529B
Authority
CN
China
Prior art keywords
final user
user
program
action
final
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.)
Expired - Fee Related
Application number
CN2006100046621A
Other languages
English (en)
Other versions
CN1828529A (zh
Inventor
H·奈特
K·艾斯瓦
P·瑟沙德锐
S·阿比莱亚
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
Priority claimed from US11/178,845 external-priority patent/US20060195411A1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1828529A publication Critical patent/CN1828529A/zh
Application granted granted Critical
Publication of CN1828529B publication Critical patent/CN1828529B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

用于创建数据处理任务的系统包括最终用户程序设计模块,后者允许最终用户将一个或多个最终用户定义动作与至少一个可用的计算组件相关联。该系统也包括提供一个或多个最终用户定义动作与该可用计算组件的绑定的规则平台,使得使用该可用计算组件来创建集成的最终用户程序。也提供了使用该系统的方法。

Description

最终用户数据激活的方法和系统
相关申请的交叉引用
本申请要求于2005年2月28日提交的名为“END USER DATA ACTIVATION(最终用户数据激活)”的美国专利临时申请第60/657,330号符合35 U.S.C.§119(e)款的优先权。该申请的整体通过引用包含在此。
背景技术
现代计算系统含有在任何一时刻上活跃的处于各个执行状态中的上百个软件进程。这些进程可以是由操作系统启动的后台进程,可以是开机时或启动应用程序之后启动的监视程序或服务进程,或者可以是应用程序本身。即使不是大多数,这些进程或这些进程的特征中也有众多超出了用户能够直接控制的能力。从而,如果要完全访问由这些进程提供的功能,此类访问通常必须由另一软件进程完成。
运行在计算系统上的进程的数量一般是系统必须处理的数据量以及访问系统来执行的任务的数量的函数。一般而言,这些计算职责的最低效部分是需要与人交互的那些。另外,相比操作人员,恰当实现的计算进程一般可以更准确地执行复杂和重复的任务。从而,需要能协助减少处理任务过程中对人类交互的需求的系统和方法。
一般而言,为了完全利用由计算进程提供的功能,最终用户必须是熟练的计算机程序员。对仅精通使用计算机而不是精通计算机编程的那些最终用户而言,众多可用的功能并未被用到。这通常是因为最终用户通常甚至没有意识到被构建至计算系统的某些功能的存在。同样这些用户中的许多将大大受益于访问计算组件的底层功能的能力。当前的系统不向最终用户提供访问计算系统的功能以及以适应个别最终用户的需求的方式来集合这些功能组的能力。
发明内容
以下呈现简要的概述,以提供基本的理解及高层次的概观。该概述不是宽泛的概观。它既不旨在标识本发明的关键/重要的元素,也不旨在描绘范围。它唯一的目的是以简化的形式呈现某些概念,作为之后呈现的更详细描述的序言。另外,此处所用的章节标题仅用于提供方便,而不应被理解为以任何方式限制。
最终用户程序设计模块可用于创建可结合来自计算系统中的组件的功能的最终用户程序。这些组件可以是来自诸如操作系统进程、后台进程、端口监控程序和独立应用程序等驻留在计算系统上的软件的代码片段。最终用户程序设计模块的执行可响应于某些最终用户定义的触发事件而自动发生,并可以无需最终用户的干涉来执行由最终用户定义的计算任务。除此之外或者作为替代,最终用户程序的执行可以响应于来自最终用户的命令。
最终用户可以使用规则平台作为创建执行由最终用户本身标识的任务的组件的基础。通过使用规则平台,最终用户可以定义在所选事件发生之后自动执行或在来自最终用户的命令之后手动执行的数据处理任务。这样的任务的执行可以由计算系统的一个或多个组件来进行。计算系统的该一个或多个组件可各自为最终用户程序总体处理的一部分作出贡献。
最终用户程序可以为诸如用户应用程序等已经存在的组件提供自定义功能。该功能可以通过访问规则平台并将任务与已存在组件的各种控件,诸如图形(或其它)用户界面的元素等相关联来创建。以这种方式,最终用户可以扩展或修改由诸如独立应用程序等标准组件提供的功能。
所揭示和描述的组件和方法包括之后描述并在权利要求书中特别指出的一个或多个特征。以下描述和附图详细描述了某些特定的说明性组件和方法。然而,这些组件和方法仅指示可使用所揭示和描述的组件和方法的多种方式中的少数。所揭示和描述的组件和方法的特定实现可包括某些、众多或所有这样的组件、方法以及其等效实现方式。通过结合附图阅读以下详细描述,对此处所呈现的特定实现和示例的变化将是显而易见的。
附图说明
图1是最终用户程序设计系统的系统框图。
图2是最终用户程序设计模块的系统框图。
图3是最终用户处理系统的系统框图。
图4是包含远程组件的最终用户程序设计系统的系统框图。
图5是自动最终用户程序设计系统的系统框图。
图6是安全最终用户程序设计系统的系统框图。
图7是可以与此处揭示和描述的各种组件一起使用的通用处理流程的流程图。
图8是可以与此处揭示和描述的各种组件一起使用的通用处理流程的流程图。
图9是可以与此处揭示和描述的各种组件一起使用的通用处理流程的流程图。
图10是可以与此处揭示和描述的各种组件一起使用的通用处理流程的流程图。
图11是可以与此处揭示和描述的各种组件一起使用的通用处理流程的流程图。
图12是可以与此处揭示和描述的各种组件一起使用的通用处理流程的流程图。
图13是可在其上实现所揭示和描述的各种组件和方法的计算环境的示意图。
图14是可在其中使用所揭示和描述的各种组件和方法的网络环境的系统框图。
具体实施方式
如在本申请中所使用的,术语“组件”、“系统”、“模块”等指的是计算机相关的实体,诸如硬件、软件(例如,执行中的软件)和/或固件。例如,组件可以是,运行在处理器上的进程、处理器、对象、可执行代码、程序和/或计算机。同样,运行在服务器上的应用程序和服务器本身都可以是组件。一个或多个组件可以驻留在进程内,且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。
参考附图描述了所揭示的组件和方法,在所有附图中,相同的参考标号指的是相同的元素。在以下描述中,为说明起见,描述了众多具体细节以提供对所揭示的主题的全面理解。然而,显然,在特定的实现中这些具体细节中的某一些可以被省略,或与其它细节相结合。在其它的实例中,以框图形式示出某些结构和设备以便于描述。另外,尽管所述的特定示例可以使用与客户机/服务器体系结构一致的术语,甚至可以是客户机/服务器实现的示例,但是本领域的技术人员可以理解,客户机和服务器的角色可以逆转,所揭示和描述的组件和方法不限于客户机/服务器体系结构,而可以容易地适用于其它体系结构,尤其包括对等(P2P)体系结构,而不背离此处揭示和描述的组件和方法的精神或范围。而且,应该注意,尽管此处所呈现的特定示例包括或引用特定组件,但是此处揭示和描述的组件和方法的实现不必限于那些特定组件,且也可以在其它环境中使用。
也应该理解,尽管所呈现的特定示例可以描述或描绘基于个人计算机组件的系统或方法,然而,此处揭示和描述的组件和方法的使用不限于该领域。例如,所揭示和描述的组件和方法可以在分布式或网络计算环境中使用。除此之外或者作为替代,所揭示和描述的组件和方法可以在由多个客户机访问的单个服务器上使用。本领域的普通技术人员可以容易地认识到,所揭示和描述的组件和方法可用于创建各种各样计算设备上的其它组件以及在各种各样计算设备上执行其它方法。
图1是最终用户程序设计系统100的系统框图。最终用户程序设计系统100可用于创建可执行由最终用户描述或定义的计算任务的计算组件。计算组件可以执行可以由最终用户通过在用户界面上输入一条或多条命令来手动执行的任务。除此之外或者作为替代,计算组件可以通过使用通常最终用户不可直接访问的计算功能来执行任务。
最终用户程序设计系统100包括操作平台110,后者为系统100提供处理环境。在该上下文中,操作平台110可以包括硬件组件、软件组件或硬件和软件组件两者。特别地被构想为用作操作平台110的那些实现包括基于软件的操作系统、具有被主存在固件中的操作系统的计算设备以及嵌入式系统。
计算环境中的各种发生的事件可以作为重要的来对待,且可用于生成事件。这样的发生的事件包括文件创建、修改和删除,电子邮件消息的接收以及启动或退出应用程序等。事件120可由操作平台110来创建,以表示计算环境中发生了事件。事件120可被用作指示处理任务可被执行或应被执行的指示符。事件120的形式可以是在计算组件之间传递的消息、处理标志或另一种合适的指示符。具体地,事件120的形式是高度独立于实现的,且可以根据由操作平台110提供的特征等而有所不同。
最终用户程序设计(“EUP”)模块130可以提供可由最终用户操作来定义诸如最终用户程序140等动作的组件,该动作将在事件发生之后自动采取或者在调用了来自最终用户的命令之后采取。最终用户可以访问EUP模块130来创建含有从计算系统的可用功能中选取的一组数据管理或信息处理任务的最终用户程序。例如,最终用户程序可以被创建来检测来自指定用户的电子邮件消息何时到达,检查该消息中任何附件的存在,并将任何附件保存至指定目录。这些动作可以被自动执行,而最终用户除最初创建该最终用户程序之外不必积极参与。
EUP模块130可以包括允许用户标识或指定可由计算组件来执行的特定动作的用户界面。该用户界面可以是图形用户界面(GUI)、命令行界面(CLI)、基于文本的界面或基于网络的界面等。用户界面也可以是与由软件开发员用来编写、编译和测试软件代码的集成开发环境类似的最终用户程序设计环境类型。具体地,用户界面可以是允许用户选取表示各种程序函数或数据对象的图形元素并将这些元素集合成最终用户程序的图形开发环境。
应该注意,最终用户程序140可以是单个任务或可以是要执行的一组任务。EUP模块130可提供对包含在计算系统中的功能的界面,该功能可以手动或自动操作,或之前仅可由其它软件组件访问,诸如但不限于,操作系统、服务组件、应用程序或另一个计算组件。最终用户可以使用EUP模块130的界面来构建使用计算系统的这些功能来完成各种各样计算任务的计算组件。
一个特定的示例包括电子邮件和文件组织。最终用户可以定义在接收到含有附件的电子邮件消息之后采取的动作。例如,最终用户可以指定,当从某一域(或该域中的用户)接收到包含附件的电子邮件消息时,该附件应被保存至特定的目录,扫描病毒,然后再使用特定的程序来打开。为了定义该动作,最终用户可以访问计算系统上可用的特定功能列表。在该示例中,所涉及的功能包括,新电子邮件消息的检测、文件保存、病毒扫描和文件打开。最终用户可使用EUP模块130来将这些功能聚集成单个最终用户定义的程序,并指定由将引起聚集的功能发生的事件触发的规则。此处,第一事件可由电子邮件消息的接收触发。最终用户定义的程序可以处理规则,来确定该电子邮件消息是否来自于预定义的发送者,如果是,那么确定该电子邮件消息是否包含附件。如果对该规则的两个条件都为是,那么用户定义模块可以将该附件保存至预定的目录。最终用户定义模块然后可以激活病毒扫描程序以检测在所保存的文件中是否有任何病毒。如果所保存的文件不包含在扫描过程中被检测出的任何病毒,那么用户定义模块可以启动应用程序,诸如文字处理程序、照片编辑程序或某些其它合适的应用程序,并使得打开的应用程序打开所保存的文件。所有这些步骤都可以自动执行,而无需来自用户的干涉。
如在以上示例中所描述的规则的处理可以使用规则平台150来完成,规则平台150为最终用户提供定义对某些处理任务关键的条件或情景的能力。规则平台150可以包括允许最终用户定义可自动或在最终用户的命令之后采取的一个或多个动作。这些规则可以被附加至可使用诸如按钮、链接、菜单或其它用户界面元素上的点击(或右键点击等)等用户界面元素来运行的程序或代理,或与这些程序或代理相集合。除此之外或者作为替代,最终用户定义模块或甚至最终用户定义的独立应用程序的图标可以通过双击该图标或激活与该图标相关联的可执行代码来创建和运行。这样的动作可以被添加到含有开发员设计的动作或功能的预先存在的组件,或可以被创建为独立的、最终用户创建的组件。规则平台可以使用对于绑定的反射以及系统安装的或应用程序安装的元素来创建和执行最终用户定义的组件。在该上下文中,以及所需或适当的任何地方,绑定可以被理解为诸如表示功能或文件的用户界面中的图形元素等功能或数据对象的表示与当执行时实现该功能或包含该数据对象的底层代码之间的联结或映射。
图2是最终用户程序设计模块200的系统框图。最终用户程序设计模块可被用作允许最终用户定义和创建最终用户定义程序组件的整个用户界面的一部分。具体地,最终用户程序设计模块200可被用作图1的最终用户程序设计模块130。最终用户可以访问最终用户程序设计模块200来发现可供使用的功能或数据对象,并将这些功能或数据对象集合成最终用户程序。
最终用户程序设计模块200包括代码模块210。代码模块210可以访问代码数据存储220。代码数据存储220包括含有可供用作最终用户定义的动作组件的一部分的功能和数据对象的底层软件代码。应该注意到,在某些实现中,诸如使用绑定上的反射的实现,由反射模式所提供的技术可以用于动态地发现可用的代码,作为在代码数据存储200中维护描述符集的替换或补充。
代码模块210可用人类可读格式提供诸如代码数据存储220中的任何代码等每一可用的代码片段或数据对象的概括描述。除此之外或者作为替代,代码模块210可以向映射模块230提供代码数据存储220中的代码的机器可读的描述符或标识符。映射模块230可以将来自代码数据存储220的代码映射或绑定到一个或多个最终用户动作。以这种方式,提供某些功能的适当的计算组件可以与最终用户想要执行的动作的描述匹配。
最终用户动作模块240可以访问可由最终用户描述、定义或指定的最终用户动作,并可以用映射模块230可用来将最终用户动作匹配或绑定至由代码模块210提供的代码的形式来提供该最终用户动作的适当的描述符。例如,代码描述符可以与存储在最终用户动作数据存储250中的最终用户动作相关联。该最终用户动作可以是,例如“在目录Y中保存文件X”的命令或某种其它适当的动作。代码数据存储220中的代码的相应描述符可以由映射模块230来匹配至最终用户动作,以将最终用户动作映射至某个代码片段。一个或多个这样的匹配的最终用户动作和代码片段可被用作最终用户定义动作模块260或已完成的最终用户程序的一部分。
随后是最终用户程序设计模块200的一种操作模式的可能的示例。用户可以通过诸如GUI、CLI或任何其它合适的人机界面来访问最终用户程序设计模块200。最终用户可以使用用户界面的组件来定义一个或多个最终用户动作。除此之外或者作为替代,用户可以从存储在最终用户动作数据存储250中的预定义的最终用户动作集中选择一个或多个最终用户动作。
最终用户动作模块240提供或访问与由最终用户定义或选择的最终用户动作相关联的描述符。该描述符可以提供最终用户所期望的功能的机器可解释的描述。最终用户动作模块240可以向映射模块230提供该描述符。
映射模块230可以向代码模块210提供该描述符。代码模块210使用该描述符来定位含有相应描述符并提供最终用户所期望的处理功能的代码片段。代码模块210在代码数据存储220中定位这样的代码片段之后,向映射模块230提供所定位的代码片段的标识符。映射模块230然后将最终用户动作与该代码片段匹配或绑定,以创建用户定义动作模块260。
图3是最终用户处理系统300的系统框图。系统300包括为人类用户提供对系统访问的最终用户程序设计模块310。最终用户程序设计模块310被耦合至可包含硬件和软件组件两者的操作平台320。最终用户程序设计模块310也访问一组最终用户定义的任务330和规则平台340。最终用户定义任务330包括任务对动作逻辑的绑定。用户界面350提供系统300与人类最终用户之间的前端界面,并包含用于组件的控制元素。
为了执行所述任务中的某一些,最终用户处理系统300可使用规则代数。尽管此处描述了特定的规则代数,但是可替代使用该规则代数的变体或完全不同的规则代数。也应注意,所揭示和描述的规则代数可以使用另一合适的组件来代替。
所构想的规则代数可包括五个基本术语:特性、过滤器、事件、动作和集。特性可描述最终用户数据类型的属性。最终用户可使用特性来描述过滤器和动作。过滤器可定义可被用作应用于数据类型的处理筛(processing screen)的布尔函数。过滤器可返回真或假值。事件可定义所关注的发生的事件。事件可与一个或多个数据类型相关联。动作是执行某些处理功能的数据类型的有副作用的方法。动作可采用零个或多个输入参数。集可以是数据类型的集合。
属性、过滤器和动作可使用规则来构造。在每一规则内,可使用各种条件,包括将特性与表达式比较,将目标对象与过滤器进行匹配,以及确定目标对象是否在集内。诸如此类的构造项可以被用作最终用户程序的一部分。例如,推导集可以是完整的最终用户程序,或可以与另一集组合(联合)来创建更复杂的最终用户程序。集可与动作相关联来创建批量工作。批量工作可以定义要执行的面向集的任务。批量工作可以手动执行,或被调度为在预定时间或时间表上执行。可从事件和动作中创建代理。代理定义在某些事件发生之后执行的动作。
为了支持规则代数的使用,可以使用可以用直接支持对象或数据类型上的查询的方式存储这些对象和数据类型的文件系统。关于这些对象或数据类型的元数据可连同这些对象本身来存储,并用来支持查询和动作。可使用各种文件系统来存储这些对象或数据类型。文件系统可提供基于项级属性和跨项关系的物理组织模型。使用这样的文件系统,可以在执行被设计成以各种方式选择或聚集对象或数据类型的基础上,动态组织对象或数据类型。
图4是最终用户程序设计系统400的系统框图。最终用户程序设计系统400可用于从远程位置中获取预先存在的最终用户程序设计模块。具体地,可获取的最终用户程序设计模块匹配本地计算系统上的一个或多个用户定义动作。
最终用户程序设计系统400包括用户定义动作410。用户定义动作410可以是最终用户期望执行的某些计算任务的描述符,例如该计算任务主要是在用户的特定命令之后形成的,或者用户定义动作410可以对于响应于某些事件或根据某一时间表来执行是关键的。另外,用户定义动作410可以包括允许其它组件确定最终用户定义的动作请求哪一或哪些功能的特定标识符或描述符,或与之相关联。
最终用户程序设计界面420可以提供用户可以用于指定或定义使用什么动作的手段。所指定或定义的动作的描述符可由最终用户程序设计界面420通过网络430来发送给模块服务器440。模块服务器440可用作将之前构造的最终用户程序设计模块提供给期望获取满足其需求的其它功能的用户的主机。
模块服务器440可以将所接收到的最终用户定义动作410的描述符中继给匹配组件450。匹配组件450可以使用所中继的描述符来对模块库460进行搜索,以定位可提供最终用户所需的功能的一个或多个最终用户程序设计模块。匹配组件然后可将最终用户程序设计模块的副本发送给模块服务器,用于通过网络430发送给最终用户界面420。除此之外或者作为替代,模块服务器440可以向最终用户程序设计界面420提供可用的最终用户程序设计模块的列表,并等待发送该列表上的最终用户程序设计模块之一的命令。本领域的普通技术人员可以认识到,模块服务器440可被实现为web服务器或文件传输协议(FTP)服务器以及其它类型。除此之外或者作为替代,模块搜索和下载可作为web服务来提供。
例如此处关于标识或匹配任务所揭示和描述的各个组件可以使用各种基于人工智能的方案来实现其各个方面。例如,可由神经网络、专家系统、基于规则的处理组件或支持向量机(SVM)来实现最终用户定义动作与最终用户程序设计模块的匹配。
分类器是将输入属性向量X=(x1,x2,x3,x4,xn)映射至该输入属于一个类的置信度的函数,即f(X)=confidence(class)。这样的分类可以使用基于概率和/或基于统计的分析(例如,分解为分析效用和开销)来预测或推断用户想要自动执行的动作。在最终用户程序设计模块的情况中,可以分类事件模式以确定是否采取一个或多个指定的动作。在阅读本发明之后,对本领域的普通技术人员而言,显然也可使用其它模式匹配任务。
SVM是可以使用的分类器的示例。SVM通过寻找可能输入的空间中的超曲面来操作,其中超曲面试图从非触发事件中分离出触发准则。直观上,这使分类对于接近但不同于训练数据的测试数据是正确的。其它有向或无向的模型分类方法包括,例如单纯贝叶斯、贝叶斯网络、决策树,并可以提供不同独立性模式的概率分类模型。此处所用的分类也包括用于开发优先级模型的统计回归。
可以通过本说明书容易地理解,此处揭示和描述的组件可以使用显式训练(例如,通过普通训练数据)以及隐式训练(例如,通过观察用户行为、接收外部信息…)的分类器。例如,可以通过分类器构造器和特征选择模块内的学习或训练阶段来配置SVM。因此,分类器可被用于自动执行多个功能,包括但不限于,确定是否应向一设备发送数据。
应该理解,所述的组件和方法为最终用户程序设计提供总体的框架。这样的最终用户程序设计组件和方法的功用之一是创建最终用户定义的自动化任务。也有可能是以批量的方式对大量文件进行类似类型的改变,例如通过改变一组图像文件中每一幅图像的解析度。而且,通过结合更复杂的模块,诸如与人工智能组件一起执行多个任务的聚集模块,可能有复杂的智能行为。
以下是最终用户程序设计系统400的一种可能的操作模式。最终用户访问最终用户程序设计界面420,并定义该最终用户想要在其计算机上执行的一个或多个动作。最终用户程序设计界面420从由最终用户提供的定义创建最终用户定义动作410,也创建该最终用户定义动作的合适的描述符。最终用户程序设计界面420然后将该描述符通过网络430发送给模块服务器440。模块服务器440将该描述符发送给匹配组件450。匹配组件450对模块库460进行搜索以定位将提供由用户指定的功能的模块。匹配组件然后将所定位的模块的列表提供给模块服务器440。
模块服务器440通过网络430将定位的模块列表发送给最终用户程序设计界面420。最终用户从该列表中选取一个或多个模块,并将其选择通过网络430发送给模块服务器440。所选取的模块然后通过网络430被发送给最终用户程序设计界面420,并在最终用户的机器上安装。
图5是自动最终用户程序设计系统500的系统框图。自动最终用户程序设计系统500可用来创建基于最终用户实际上如何与计算机交互同时执行各种计算任务的功能性程序模块。具体地,自动最终用户程序设计系统500可以在计算机上监视并分析用户命令和动作,以标识可通过创建最终用户程序设计模块来自动化的通常执行的任务的模式。
自动最终用户程序设计系统500包括监视程序510。监视程序510可以跟踪最终用户动作,诸如,例如在GUI环境中,鼠标点击以及由这些鼠标点击启动的特定动作。监视程序510可以在操作平台520上操作或与之交互。本领域的普通技术人员可以容易地认识到,在诸如GUI等界面环境中执行的某些最终用户动作启动实际上由诸如操作平台520等操作环境执行的动作。除跟踪最终用户操作和动作的能力以外,监视程序510可以代表最终用户,或响应于其命令,跟踪由操作平台520采取的动作。
监视程序510可以在动作数据存储530中存储所检测到的动作。动作数据存储530可以是动作对象的集合、最终用户动作的列表或保存最终用户如何与计算机交互的记录的另一合适形式。监视程序可以分析这些最终用户动作,以试图确定是否正显现或已显现动作模式。例如,最终用户可以通过在照片编辑程序中打开每一单个图像文件,并将版权通知插入至该图像文件中,工作于大批量的照片。监视程序510可以确定最终用户正重复该任务并发送关于重复任务的信息给最终用户程序设计模块540。
最终用户程序设计模块540可使用关于重复任务(或一连串任务)的这一信息来创建最终用户定义动作,并在功能数据存储550中定位可用于执行该任务的功能。所定位的功能可用于创建可自动执行由监视程序510标识的任务的最终用户程序。这些功能,大到包含最终用户程序的创建,有可能可作为后台计算任务来执行,而无需来自最终用户的干涉。当已创建最终用户程序之后,系统可以提示最终用户确定最终用户是否想要计算机自动完成正在执行的任务。在以上提供的照片版权通知的情况中,系统可以询问最终用户,计算机是否应自动将版权通知插入至工作目录的其余文件中。
图6是安全最终用户程序设计系统600的系统框图。安全最终用户程序设计系统600可用于提供对最终用户程序设计模块的受控的访问。另外,由最终用户程序设计系统600创建的最终用户程序可以被检查,以确保这样的程序没有以升级的特权来运行。
安全最终用户程序设计系统600包括最终用户程序设计模块610。最终用户程序设计模块610可以执行之前结合其它附图中引用的其它最终用户程序设计组件揭示和描述的所有功能。用户认证模块620可以控制对最终用户程序设计模块610的访问,以将访问限于仅授权的最终用户。
可使用各种机制和方法来实现用户认证模块620。用户认证模块620可以根据特定的实现需求或设计选择而采用各种各样的形式。具体地,用户认证模块620可以使用根据你是谁、你知道什么或你有什么等一个或多个安全范例操作的安全模式。
基于“你是谁”安全范例的实现中可使用的组件包括各种基于生物统计的设备,诸如指纹扫描仪或虹膜扫描仪等。对使用“你知道什么”范例的实现,可使用用户名和口令认证系统。在基于“你有什么”的实现的类别中,系统使用安全令牌和邻近性检测器,诸如基于射频识别(REID)标签的系统。根据所期望的安全等级,前述的一个或多个系统可被结合作为用户认证模块620的一部分。
用户认证模块620可用作最终用户程序模块610的看门人。为了使用户能够访问并使用最终用户程序设计模块610,该最终用户必须通过适当地响应于由用户认证模块620提出的安全挑战来验证其使用系统的授权。根据一个特定实现,可以通过指定的用户界面或通过另一适当的手段来提供这样的响应。
特权认证模块630可以监视最终用户创建的程序模块640的执行。具体地,特权认证模块640可以检查最终用户创建模块640在执行过程中是否试图访问为其它进程保留或被禁止的组件或执行这些保留或禁止的任务。例如,最终用户创建的模块,诸如最终用户创建模块640之一可试图修改属于另一最终用户的文件集,作为其执行的一部分。特权认证模块630可以检查运行该最终用户创建模块的最终用户在计算机系统上是否具有足够的访问凭证来访问其它最终用户的文件。如果否,那么特权认证模块630可以中断或中止该最终用户创建的模块的执行。另外,特权认证模块630可以执行各种相关任务,诸如记录诸如可疑特权升级攻击等事件和向中断用户提示警报。
参考图7-12,呈现了根据各种方法或过程的流程图。尽管为了说明的简明性起见,此处例如以流程图形式所示的一个或多个方法被示出和描述为一连串动作,但是可以理解和领会,所示出和描述的方法和过程及对其可使用这样的方法或过程的任何组件都可使用而不必受动作的顺序的限制,如某些动作可以按与此处示出和描述的不同的顺序发生和/或与其它动作同时发生。例如,本领域的技术人员可以理解和领会,方法可以替换地被表示为诸如状态图中的一连串互相关联的状态或事件。而且,并非所有示出的动作都是实现方法或过程所必需的。
图7是可与以上结合其它附图揭示和描述的各种组件使用的通用处理流程700的流程图。通用处理流程700是从最终用户的角度描述的,且可用于创建可对预先存在的计算功能进行补充的最终用户定义程序模块。其它功用也是有可能的。
通用处理流程700的处理在开始框710处开始,并继续至处理框720,在那里由最终用户访问最终用户程序设计界面。最终用户程序设计界面可以是以上结合其它附图揭示或描述的最终用户程序设计界面或模块之一。最终用户定义在处理框730处采取的动作集。这些动作可以从头开始创建,或从由最终用户操作的计算系统所支持的可用动作列表中选取。
在处理框740处,标识了提供所期望功能的一个或多个组件。这些组件可以是独立程序、后台进程、程序的特征、脚本或某个合适的可执行组件。在处理框750处,创建了集成的最终用户程序。在处理框760处更新规则基础。处理在结束框770处结束。
图8是可与以上结合其它附图揭示和描述的各种组件使用的通用处理流程800的流程图。通用处理流程800是从最终用户程序设计系统角度描述的,并可用于创建含有多个组件的最终用户定义程序模块。其它功用也是有可能的。
通用处理流程800的处理在开始框810处开始,并继续至处理框820。在处理框820处,获取最终用户定义动作集。该集可包括最终用户组合在一起的多个动作,并可以用某种期望的方式排序。在处理框830处,从最终用户定义动作集中选取动作。处理继续至处理框840,在那里标识可执行由最终用户定义动作描述的计算任务的功能。这样的标识通过使用描述性代码或通过某些其它合适的方法,可以以在可用动作或功能之间的预定义的关联或匹配为基础。
在处理框850处,所选取的动作被映射至所标识的功能。在判定框860处,作出关于在处理框820处获取的集中是否还有剩余的任何最终用户定义动作的判断。如果该判断为否,那么处理继续至处理框870,在那里从映射的功能构造最终用户程序模块。如果该判断为是,那么处理返回至处理框830,在那里从该集中选取下一最终用户定义动作。从处理框870的处理在结束框880处结束。
图9是可与以上结合其它附图揭示和描述的各种组件使用的通用处理流程900的流程图。通用处理流程900可用于定位和获取提供用户所需功能的之前创建的最终用户定义程序模块。该通用处理流程的其它功能也是有可能的。
通用处理流程900的处理在开始框910处开始,并继续至处理框920,在那里获取最终用户程序模块的描述符。该描述符可以是描述所需最终用户程序模块的功能的代码,可以是预定义的名称,或可以是某些其它类型的描述符。处理继续至处理框930,在那里查询使用该描述符的服务器。在处理框940处,描述符被匹配至预先存在的程序模块。该匹配不必是精确的匹配,相反,可以是所期望模块的最佳拟合或近似逼近。即使近似逼近也可以是有用的,因为这样的逼近可以通过提供可被修改以创建完全如所需的模块的框架而不必从头开始构造新的模块来减少用户开发事件。
在处理框950处,从服务器中获取匹配模块。在处理框960处,在客户机上安装该模块。一旦安装之后,可由最终用户按照所期望的方式修改该模块,或按原样使用。通用处理流程900的处理在结束框970处终止。
图10是可与以上结合其它附图揭示和描述的各种组件使用的通用处理流程1000的流程图。通用处理流程1000可用于自动创建可对预先存在的计算功能进行补充的最终用户定义程序模块。其它的功用也是有可能的。
处理在开始框1010处开始,并继续至处理框1020,在那里监视当最终用户操作计算机时的最终用户动作。在处理框1030处,标识计算机的操作模式。处理继续至处理框1040处,在那里创建提示以获取来自最终用户的许可,以基于所监视到的最终用户的动作来创建程序模块。
在判定框1050处,作出最终用户是否被授权创建最终用户程序模块的判断。如果是,那么处理继续至处理框1060处,在那里创建最终用户程序模块。如果否,处理返回至处理框1020,在那里监视最终用户的动作。从处理框1060的处理在结束框1070处结束。
图11是可与以上结合其它附图揭示和描述的各种组件使用的通用处理流程1100的流程图。通用处理流程110可用于将对使用或创建可对预先存在的计算功能进行补充的访问仅限于之前被授权来这样做的最终用户。其它的功用也是有可能的。
处理在开始框1110处开始,并继续至处理框1120。在处理框1120处,发生对最终用户程序模块的访问。处理继续至判定框1130处,在那里作出正访问最终用户程序模块的最终用户是否被授权来这样做的判断。如果是,那么处理继续至处理框1140处,在那里最终用户构造程序模块。
来自处理框1140的处理继续至处理框1150,在那里执行所创建的最终用户程序。在判定框1160处,作出将由最终用户程序模块执行的功能是否能由调用模块执行的最终用户来正确执行的判断。如果是,最终用户程序模块的执行被允许前进至处理框1170。处理然后在结束框1180处结束。类似地,如果在判定框1130或1160作出否定判断,那么处理在结束框1180处结束。
图12是可由使用此处揭示和描述的组件或方法创建的最终用户程序遵循的通用处理流程1200的流程图。通用处理流程1200的处理在开始框1210处开始,并继续至处理框1220,在那里发生触发事件,诸如电子邮件消息的到达。在处理框1230处,指示已发生触发事件的系统事件被传递给最终用户程序。在处理框1240处,最终用户程序使用该系统事件来开始处理。
处理继续至处理框1250处,在那里最终用户程序应用最终用户程序中包含的规则或逻辑。在处理框1260处,最终用户程序根据所接收到的系统事件及其规则或逻辑完成其处理任务。在判定框1270处,作出最终用户程序是否成功地完成其任务的判断。如果否,那么处理继续至处理框1280,在那里生成出错消息,并向最终用户通知该错误。来自处理框1280的处理在结束框1290处结束。类似地,如果在判定框1270处的进行的判断为是,那么处理在结束框1290处结束。
为了提供实现的附加环境,图12-13及以下讨论旨在提供可在其中实现所揭示和描述的组件和方法的合适的计算环境的简要概括描述。尽管以上在本地计算机和/或远程计算机上运行的计算机程序的计算机可执行指令的通用语境中描述了特定实现,但是本领域的技术人员可以认识到,单独或者结合其它程序模块,其它实现也是可能的。一般而言,程序模块包括例程、程序、组件、数据结构等,它们执行特定任务和/或实现特定抽象数据类型。
而且,本领域的技术人员可以理解,上述组件和方法可以结合其它计算机系统配置来实现,包括单处理器或多处理器计算机系统、小型机、大型机、以及个人计算机、手持式计算设备、基于微处理器的和/或可编程消费电子产品等,其中的每一个可用来与一个或多个相关联的设备通信。所揭示和描述的组件的方法的某些示出的方面也可以在分布式计算环境中实现,其中任务由通过通信网络或其它数据连接链接的远程处理设备执行。然而,即使不是全部,这些方面中的某一些也可以在独立计算机上实现。在分布式计算环境中,程序模块可以位于本地和/或远程计算机存储设备中。
参考图13,用于实现本发明各方面的示例性环境1300包括计算机1312。计算机1312包括处理单元1314、系统存储器1316和系统总线1318。系统总线1318将包括但不限于系统存储器1316的系统组件耦合至处理单元1314。处理单元1314可以是任何各种可用的处理器。也可以使用双微处理器和其它多处理器体系结构作为处理单元1314。
系统总线1318可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线或外部总线和/或使用各种可用的总线体系结构中的任一种的局部总线,可用的总线体系结构包括,但不限于,工业标准体系结构(ISA)、微通道体系结构(MCA)、扩展的ISA(EISA)、智能驱动器电子接口(IDE)、VESA局部总线(VLB)、外围部件互连(PCI)、插件总线、通用串行总线(USB)、高级图形接口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)、火线(IEEE1394)以及小型计算机系统接口(SCSI)。
系统存储器1316包括易失性存储器1320和非易失性存储器1322。基本输入/输出系统(BIOS)包含有助于诸如启动时在计算机1312中元件之间传递信息的基本例程,它通常存储在非易失性存储器1322中。作为说明,而非限制,非易失性存储器1322可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失性存储器1320可以包括用作外部高速缓存的随机存取存储器(RAM)。作为说明,而非限制,RAM以多种形式可用,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)以及直接Rambus RAM(DRRAM)。
计算机1312也包括可移动/不可以移动、易失性/非易失性计算机存储介质。例如,图13示出磁盘存储1324。磁盘存储1324包括,但不限于,如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、Ls-100驱动器、闪存卡或记忆棒的设备。另外,磁盘存储1324可以包括独立或与其它存储介质结合的存储介质,包括但不限于,诸如光盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)等的光盘驱动器。为了便于将磁盘存储设备1324连接至系统总线1318,一般使用诸如接口1326等可移动或不可移动接口。
可以理解,图13描述了作为用户和在合适的操作环境1300中描述的基本计算机资源之间的中介的软件。这样的软件包括操作系统1328。可被存储在磁盘存储1324上的操作系统1328用来控制和分配计算机系统1312的资源。系统应用程序1330利用了操作系统1328通过存储在系统存储器1316或者磁盘存储1324上的程序模块1332和程序数据1334执行的资源管理。可以理解,本发明可以使用各种操作系统或操作系统的组合来实现。
用户通过输入设备1336向计算机1312输入命令或信息。输入设备1336包括,但不限于,诸如鼠标、跟踪球、指示笔等定点设备、触摸垫、键盘、麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、TV调谐器卡、数码相机、数码摄像机、网络摄像头等。这些和其它输入设备经由接口端口1338通过系统总线1318连接至处理单元1314。接口端口1338包括,例如串行端口、并行端口、游戏端口和通用串行总线(USB)。输出设备1340使用某些与输入设备1336相同类型的端口。从而,例如,USB端口可以用于对计算机1312提供输入,并对输出设备1340提供来自计算机1312的输出信息。提供输出适配器1342来示出,存在类似监视器、扬声器和打印机以及其它需要专用适配器的输出设备1340的某些输出设备1340。作为说明而非限制,输出适配器1342包括提供输出设备1340和系统总线1318之间的连接手段的显卡和声卡。应该注意,诸如远程计算机1344等其它设备和/或设备系统同时提供输入和输出能力两者。
计算机1312可使用至一台或多台远程计算机,诸如远程计算机1344的逻辑连接在网络化环境中操作。远程计算机1344可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的装置、对等设备或其它常见网络节点等,且通常包括上文相对于计算机1312描述的许多或所有元件。为简洁起见,对于远程计算机1344仅示出存储器存储设备1346。远程计算机1344通过网络接口1348被逻辑连接至计算机1312,并且然后通过通信连接1350被物理地连接。网络接口1348包括诸如局域网(LAN)和广域网(WAN)的有线和/或无线通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括,但不限于,点对点链路、类似综合业务数字网(ISDN)及其变体的电路交换网络、分组交换网络和数字用户线(DSL)。
通信连接1350指的是用来将网络接口1348连接至总线1318的硬件/软件。尽管为说明清楚,将通信连接1350示为位于计算机1312内,然而它也可以在计算机1312外部。仅为示例的目的,连接至网络接口1348所必需的硬件/软件包括内部和外部技术,诸如包括常规电话级调制解调器、线缆调制解调器和DSL调制解调器等的调制解调器、ISDN适配器以及以太网卡。
图14是可在其中使用所揭示和描述的组件和进程的示例计算环境1400的示意框图。系统1400包括一个或多个客户机1410。客户机1410可以是硬件和/或软件(例如,线程、进程、计算设备)。系统1400也包括一个或多个服务器1420。服务器1420可以是硬件和/或软件(例如,线程、进程、计算设备)。例如,服务器1420可以容纳通过使用所揭示和描述的组件和进程来执行转换的线程或进程。
客户机1410和服务器1420之间的一种可能的通信手段可以是适于在两个或多个计算机进程之间传输的数据包的形式。系统1400包括可以被用来便于客户机1410和服务器1420之间通信的通信架构1440。客户机1410可操作地连接至可用来存储对客户机1410本地的信息的一个或多个客户机数据存储1450。类似地,服务器1420可操作地连接至可被用来存储对服务器1440本地的信息的一个或多个服务器数据存储1430。
以上描述包括本发明的示例。当然,不可能为描述本发明的目的而描述每个可想象的组件或方法的组合,但是本领域的普通技术人员可以认识到,本发明的众多其它组合和排列是可能的。从而,本发明旨在包括落入所附权利要求书精神和范围内的所有这样的变更、修改和变化。
特别地,关于由以上所述的组件、设备、电路、系统等执行的各种功能,用于描述这样的组件的术语(包括对“装置”的引用)除非以其它方式指出,否则它旨在对应于执行所述组件的指定功能的任何组件(例如,功能等效物),即使与执行此处所示本发明示例性方面中的功能的所揭示的结构在结构上不同。就此,也可以认识到,本发明包括系统以及含有用于执行本发明的方法的动作和/或事件的计算机可执行指令的计算机可读介质。
另外,尽管仅参考若干实施例中的一个揭示本发明的特定特征,然而这样的特征可以按照所期望的并对任何给定或特定应用程序有利的方式与其它实现的一个或多个特征相结合。而且,就在详细描述或者在权利要求书中所使用的术语“包括”和“包含”及其变化而言,这些术语旨在以类似于术语“含有”的方式为包括性的。

Claims (16)

1.一种用于创建数据处理任务的系统,包括:
最终用户程序设计模块,用于允许最终用户将多个最终用户定义动作与至少一个可用的计算组件相关联;以及
规则平台,用于提供所述多个最终用户定义动作与所述可用计算组件的绑定,使得使用所述可用计算组件来创建单一的集成的最终用户程序,其中所述多个最终用户定义动作被聚集到所述单一的集成的最终用户程序中;
其中所述单一的集成的最终用户程序被一触发事件所启动,并且其中所述规则平台允许最终用户定义用于在启动所述单一的集成的最终用户程序后执行所述单一的集成的最终用户程序中所述多个最终用户定义动作的条件或情形。
2.如权利要求1所述的系统,其特征在于,所述可用的计算组件是操作系统。
3.如权利要求1所述的系统,其特征在于,所述可用的计算组件是监视应用程序。
4.如权利要求1所述的系统,其特征在于,所述可用的计算组件是用户应用程序。
5.一种用于创建数据处理组件的方法,包括:
指定在事件发生之后执行的多个最终用户定义动作;
标识能够执行所述多个最终用户定义动作的至少一个第一软件组件;以及
创建使用所述第一软件组件来执行所述多个最终用户定义动作的第二软件组件,其中所述第二软件组件是单一的集成的最终用户程序,其中所述多个最终用户定义动作被聚集到所述单一的集成的最终用户程序中;
其中所述单一的集成的最终用户程序被一触发事件所启动,并且其中最终用户能定义用于在启动所述单一的集成的最终用户程序后执行所述单一的集成的最终用户程序中所述多个最终用户定义动作的条件或情形。
6.如权利要求5所述的方法,其特征在于,还包括:
在预先存在的软件组件内创建图形控件,其中所述图形控件激活所述第二软件组件。
7.如权利要求5所述的方法,其特征在于,还包括:
为图形用户界面创建图标,其中所述图标激活所述第二软件组件。
8.如权利要求5所述的方法,其特征在于,所述标识第一软件组件包括标识操作系统的组件。
9.如权利要求6所述的方法,其特征在于,所述标识第一软件组件包括标识监视进程的组件。
10.如权利要求7所述的方法,其特征在于,所述标识第一软件组件包括标识端口监控进程的组件。
11.如权利要求5所述的方法,其特征在于,所述标识第一软件组件包括标识用户应用程序的组件。
12.一种用于创建数据处理组件的系统,包括:
用于指定在命令事件之后采取的多个最终用户定义动作的装置;
用于标识能够执行所指定的多个最终用户定义动作的至少一个第一软件组件的装置;以及
用于创建使用所述第一软件组件来执行所述多个最终用户定义动作的第二软件组件的装置,其中所述第二软件组件是单一的集成的最终用户程序,其中所述多个最终用户定义动作被聚集到所述单一的集成的最终用户程序中;
其中所述单一的集成的最终用户程序被一触发事件所启动,并且其中最终用户能定义用于在启动所述单一的集成的最终用户程序后执行所述单一的集成的最终用户程序中所述多个最终用户定义动作的条件或情形。
13.如权利要求12所述的系统,其特征在于,还包括:
用于在预先存在的软件组件内创建图形控件的装置,其中所述图形控件激活所述第二软件组件。
14.如权利要求12所述的系统,其特征在于,还包括:
用于为图形用户界面创建图标的装置,其中所述图标激活所述第二软件组件。
15.如权利要求12所述的系统,其特征在于,还包括用于监视可被收集来创建最终用户定义动作的用户动作的装置。
16.如权利要求15所述的系统,其特征在于,还包括用于基于所述最终用户定义动作来创建程序模块的装置。
CN2006100046621A 2005-02-28 2006-01-27 最终用户数据激活的方法和系统 Expired - Fee Related CN1828529B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US65733005P 2005-02-28 2005-02-28
US60/657,330 2005-02-28
US11/178,845 2005-07-11
US11/178,845 US20060195411A1 (en) 2005-02-28 2005-07-11 End user data activation

Publications (2)

Publication Number Publication Date
CN1828529A CN1828529A (zh) 2006-09-06
CN1828529B true CN1828529B (zh) 2011-01-12

Family

ID=36946942

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006100046621A Expired - Fee Related CN1828529B (zh) 2005-02-28 2006-01-27 最终用户数据激活的方法和系统

Country Status (2)

Country Link
CN (1) CN1828529B (zh)
ZA (1) ZA200510087B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959425B2 (en) * 2011-12-09 2015-02-17 Microsoft Corporation Inference-based extension activation
US9679163B2 (en) 2012-01-17 2017-06-13 Microsoft Technology Licensing, Llc Installation and management of client extensions
US9256445B2 (en) 2012-01-30 2016-02-09 Microsoft Technology Licensing, Llc Dynamic extension view with multiple levels of expansion
US9449112B2 (en) 2012-01-30 2016-09-20 Microsoft Technology Licensing, Llc Extension activation for related documents

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
pctools:Create a Desktop Shortcut to Hotmail.http://www.pctools.com/guides/registry/detail/875/.2001,第1页. *

Also Published As

Publication number Publication date
ZA200510087B (en) 2007-10-31
CN1828529A (zh) 2006-09-06

Similar Documents

Publication Publication Date Title
AU2006200224B2 (en) End user data activation
US7747556B2 (en) Query-based notification architecture
CN101467144B (zh) 声明性管理框架
CN103810233B (zh) 内容管理
CN100504860C (zh) 非关系型查询语言与关系型数据存储的集成
CN101569129B (zh) 网络安全系统和方法
CN100478944C (zh) 自动任务生成器的方法和系统
CN1860723B (zh) 提供增强的安全模型的系统与方法
CN110462589A (zh) 本地装置协调器中的按需代码执行
US20020174422A1 (en) Software distribution system
CN104885092A (zh) 用于操作系统的安全系统和方法
CN105917627A (zh) 云服务定制执行环境
Rashid et al. Aspect-oriented, model-driven software product lines: The AMPLE way
US20080263531A1 (en) Automatic runtime control binding
CN109891851A (zh) 用于隔离的集合的委托授权
CN102165419A (zh) 用于管理批作业的计算机系统及其方法及计算机程序
US20130067497A1 (en) Apparatus and method for setting a user-defined pattern for an application
CN103810232B (zh) 内容管理
CN1828529B (zh) 最终用户数据激活的方法和系统
US20090271346A1 (en) Library synchronization between definitions and instances
GB2604007A (en) Software upgrade stability recommendations
CN103415838B (zh) 支持用户自定义的虚拟操作空间系统及其操作方法和支撑系统
US8347046B2 (en) Policy framework to treat data
TWI428772B (zh) 技術文獻資料之管理系統及其方法
US8156297B2 (en) Smart device recordation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
CI02 Correction of invention patent application

Correction item: Priority

Correct: 2005.07.11 US 11/178,845

False: Lack of priority second

Number: 36

Page: The title page

Volume: 22

COR Change of bibliographic data

Free format text: CORRECT: PRIORITY; FROM: MISSING THE SECOND ARTICLE OF PRIORITY TO: 2005.7.11 US 11/178,845

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: 20150515

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

Effective date of registration: 20150515

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: 20110112

Termination date: 20180127

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