[发明专利]对象的共享和同步有效
申请号: | 201180024482.9 | 申请日: | 2011-05-17 |
公开(公告)号: | CN102893272A | 公开(公告)日: | 2013-01-23 |
发明(设计)人: | M·S·奥古斯汀;J·博克哈德特;B·M·兰伯特;R·E·奥奇;J·E·施莱费尔;R·Z·斯派尔 | 申请(专利权)人: | 微软公司 |
主分类号: | G06F15/16 | 分类号: | G06F15/16;G06F9/44;G06F9/06 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 潘明婳 |
地址: | 美国华*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 对象 共享 同步 | ||
背景
随着计算机和其它设备的连接性的提高,通常是运行在不同计算机上的不同程序共享对相同信息的访问变得普遍。在互连计算的早期,数据单元通常是通过操作员指示的特定事件在程序和/或机器之间传输。例如,可通过电子邮件或文件传输协议(FTP)将数据文件从一处发送至另一处。管道是允许两个正在运行的程序之间共享数据的一种早期机制,但该技术相当受限制,因为它只允许一个正在运行的程序将其输出发送给另一个正在运行的程序作为输入。现代程序的体系结构通常要求程序之间对数据的更丰富且更复杂的共享。
当某些现代程序被设计为互相共享数据时,从程序员的角度,数据共享的实现会是相对复杂的。通常程序的实现者之一必须编写用于执行使得数据共享工作的各种任务的代码。例如,程序可包括用于监听传入数据和发送传出数据的代码。当两个程序以这种方式共享数据时,这些程序通常需要就数据交换的机制达成一致。所商定的机制的性质通常特定于被共享的数据的类型。例如,如果多个程序想要共享图形信息,它们通常需要实现一共享机制,该机制考虑将将在程序之间交换的信息的种类、传送此信息将使用的格式、数据之间的冲突将如何解决(例如,如果程序中的两个程序试图在同一时间更新同一数据会发生什么)以及其它问题。
因此,为了程序能共享数据,程序通常必须考虑到数据的共享而被实现,且通常必须包括实现数据共享的细节的代码。
概述
提供共享对象的系统,该系统允许程序以与创建并使用本地数据对象大体相同的方式创建并使用共享的数据对象。程序可包括用于创建对象并设置对象上的属性的代码。程序可将对象注册为对象模型内的共享对象。于是共享公共命名空间的程序可访问对象模型中的共享对象。换言之,程序可读、写及修改共享对象。从程序(及其程序员)的角度,访问共享对象像访问本地对象一样。
共享对象的能力在一个示例中可如下实现。对象服务器可维护共享对象的注册表。对象服务器还可维护共享对象的主拷贝,该主拷贝表示对象的“真值”。使用共享对象的每个机器和/或程序还可维护它所使用的共享对象的本地拷贝。每个机器上的共享对象运行时可监视这些本地拷贝以确定已经作了什么变更。如果变更作出,运行时将关于变更的通知发送给对象服务器。当对象服务器接收到变更的通知时,它更新对象的真值然后通知其它机器和/或程序使它们能够更新对象的本地拷贝。
当创建共享对象时,创建者可指定该对象上的、或者甚至是该对象的特定属性上的各种类型的控制。例如,对象(或对象的属性)可受到管控如何处理对于对象的并发变更的并发控制——例如,后写者胜出或乐观并发,在乐观并发中如果客户端更新了对象而没有访问最新真值,则该变更将会被拒绝且客户端得到通知。或者,对象(或对象的属性)可受到管控什么机器和/或程序可访问对象(或属性)的访问控制。或者,对象创建者可指定对象的某些属性将被共享,其它的属性不共享。或者,作为另一示例,对象创建者可指定锁住对象用于指定时间段的独占性写许可的能力。
共享对象的使用不限于任何特定的编程语言。在一个示例中,编程语言可允许共享对象以与本地对象相同(或近似相同)的方式被使用。因此,在此种示例中,程序员使用编程语言来读、写、修改、添加或删除共享对象,其方式与该编程语言允许程序员对本地对象执行这些操作的方式相同。以此方式,程序员能够创建可由其它程序或在其它机器上使用的对象,而不需要实现共享机制的细节,且不需要以与如果程序只使用本地对象时程序被编写的方式基本不同的方式来写程序。
提供本发明内容以便以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图简述
图1是其中对象的共享可发生的示例环境的框图。
图2是示例对象服务器的细节的框图。
图3是其中机器可创建和使用共享数据对象的示例过程的流程图。
图4是可由共享对象服务器执行以便于对象的共享的示例动作的流程图。
图5是可以结合本文描述的主题的实现来使用的示例组件的框图。
详细描述
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软公司,未经微软公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180024482.9/2.html,转载请声明来源钻瓜专利网。