本发明专利技术涉及提供这样的系统和方法,所述系统和方法在已注册的数据库查询随后的查询结果由于数据库改变而发生改变时进行通知。所述系统和方法使用服务代理来帮助在队列中存储和已注册的数据库查询关联的数据库查询注册信息并激活通知发送服务。在激活期间,通知发送服务可以访问队列来获取数据库查询注册信息。然后通知发送服务可以构建并发送改变消息。改变消息可以被用来帮助通知已注册为在查询结果改变和/或已存储的查询结果变得无效时接收通知的组件。可以用各种数据库注册、数据库改变检测和数据库改变消息接收机制来实现本发明专利技术。进一步来说,本发明专利技术可以用在客户机/服务器环境中,如基于SQL的环境。
【技术实现步骤摘要】
本专利技术涉及数据库,更特别地,涉及注册数据库查询来接收数据库改变通知并发送指示已注册的数据库查询结果已改变的数据库改变消息的系统和方法。
技术介绍
计算和网络技术已改变了日常生活的很多重要方面。计算机已成为家用商品而非奢侈品,教育工具和/或娱乐中心,它还向用户提供财务管理和预测、控制如加热、制冷、照明和安全这样的日常操作,并在持久可靠的媒体中存储记录和图像的工具。已有的商业实践随着计算和网络技术而发展。例如,传统的银行交易包括收集如银行账号、存折和标识这样的信息、用专门时间到银行去、乘坐交通工具、排队等待并通过出纳员完成银行交易。今天,消费者可以通过因特网访问他/她的账户并通过点击鼠标按钮执行越来越多的可用交易,如查询余额、基金转账和账单支付。随着计算和网络技术变得健壮、安全和可靠,更多的消费者、批发商、零售商、企业、教育机构、支持团体及其类似正在改变其模式并使用因特网而非传统方法来完成业务。例如,很多公司和消费者提供网站和/或在线服务(如,用于购买食品和衣服、搜索信息、发送电子邮件和玩交互式游戏)。在另一个例子中,股票市场网站可以向用户提供检索股票报价和购买股票的工具。通常,客户应用的用户接口(如,网页)用于和服务器交互,服务器在可由客户程序访问的数据库中存储信息。数据库对可以在多个用户和应用之间共享的数据提供持续、持久的存储。客户应用通常通过查询从数据库中检索数据,查询返回的结果包含应用感兴趣的数据的子集。然后应用使用、显示、变换、存储或处理那些结果,并可以基于检索到的结果提交改变。一旦检索到结果,可以对数据库中使原先检索到的结果中和数据库中的状态不一致的数据做出改变。这样的改变通常对保存原先检索到的结果的客户是不可见的,除非该客户向数据库重新提交请求。
技术实现思路
下面提供专利技术简单的概要以提供对本专利技术一些方面的基本理解。此概要并不是本专利技术全面的总述。其目的并不是标识本专利技术的关键/重要元件或限定本专利技术的范围。此概要唯一的目的是以简化的形式提供本专利技术的一些概念,作为后面更加详细的说明的先导。本专利技术涉及注册数据库查询以在使注册时的查询结果和数据库的当前状态不一致的数据库改变发生时接收通知的系统和方法。通常,用户请求可以初始化数据库查询以从数据库中检索满足该请求的数据。在很多情况下,数据库可以成为资源争用的源。例如,不止一个用户可以发送请求同时查询数据库得到类似的结果。然后数据库表示在用户之间共享的状态。共享状态争用会限制系统和/或架构的可伸缩性。在其他情况下,用户可以对数据库频繁执行类似的请求。例如,用户可以重复点击鼠标来对数据库发起类似的请求以定期刷新由应用和/或网页显示的数据并且/或者应用可以对数据库定期提交查询以确定数据库的状态是否已改变。例如,重复的数据库查询很耗时、降低带宽、降低性能并消耗很多资源。现有的用于减少查询数量(如通过一个或多个用户)的技术包括在数据库外部保存经常使用的数据。然后用户可以使用保存的数据而不是重复执行查询。然而保存的数据的一致性和准确性被破坏,因为随后的数据库改变会使得保存的数据与(在已改变的数据库中的)当前数据不一致,而这为用户所不知。根据本专利技术的一个方面,本专利技术的系统和方法减轻数据库负载(如减少查询)、增加可伸缩性并确保数据一致性。例如,一个或多个用户可以提交数据库查询并注册该数据库查询以在数据库改变更改了或会更改)已注册的数据库查询的结果时接收通知。在实践中,查询的结果可以被保存在数据库之外(如在web服务器上的高速缓存中)并由用户使用,其中用户可以多次使用保存的结果,而非另外进行返回类似结果的查询。当发生的数据库改变会使随后的查询的结果和保存的结果不一致时,向用户发送通知,指示保存的结果已变得不一致。然后用户可以例如使用通知来使保存的数据变得无效、执行查询来刷新保存的数据,和/或忽略通知。本专利技术包括注册数据库查询、维护查询注册信息、检测影响已注册的数据库查询的数据库改变、提供指示已注册的数据库查询已受到影响的消息的系统和方法。例如,注册接收数据库改变通知通常包括组装数据库查询注册信息并将其提供给服务器。当发生的数据库改变使数据库状态和原先的结果不一致时,关联的数据库查询注册信息变得可由消息发送服务访问。发送服务使用数据库查询注册信息来构建和发送改变消息。改变消息被用于帮助发送改变通知到和已注册的查询的结果关联的组件以通知所述组件原先的结果已变得无效。所述系统和方法可用于各种环境,包括客户机/服务器环境(如,基于SQL的)和web环境。因此,本专利技术提供监控数据库查询的改变的方法并在已注册的查询的结果改变时得到通知。若用户使用已保存的从数据库检索到的数据并希望在保存的数据变得不一致、需要刷新向用户显示的数据、和/或需要基于改变的结果采取动作时得到通知,上述系统和方法是有利的。另外,本专利技术可以用于现有的架构以发挥安全性、可靠性及可伸缩性,并提供熟悉的编程环境。对上述和相关目标的实现,本专利技术包括随后详细说明并由权利要求特别指出的特性。下述说明和附图详细阐述本专利技术展示性的特定方面和实现。然而这些只是实现本专利技术原理的各种方法中的一部分。通过下面对本专利技术的详细说明和附图,本专利技术的其他目标、优点和新特性将变得显而易见。附图说明图1根据本专利技术的一个方面展示典型的数据库改变消息发送系统;图2根据本专利技术的一个方面展示典型的服务器;图3根据本专利技术的一个方面展示典型的数据鉴定系统;图4根据本专利技术的一个方面展示典型的注册系统;图5根据本专利技术的一个方面展示典型的通知系统;图6根据本专利技术的一个方面展示典型的客户机/服务器系统;图7根据本专利技术的一个方面展示另一个典型的客户机/服务器系统;图8根据本专利技术的一个方面展示典型的安全技术;图9根据本专利技术的一个方面展示典型的客户机/服务器系统; 图10根据本专利技术的一个方面展示注册和发送方法;图11根据本专利技术的一个方面展示第一个注册、发送和通知方法;图12根据本专利技术的一个方面是图10的延续;及图13根据本专利技术的一个方面展示典型的操作系统。具体实施例方式现参考附图对本专利技术进行说明,其中类似的编号在全文中被用于参考类似的元件。在下面的说明中,为了说明起见,阐明了很多特定的细节以提供对本专利技术的完整理解。然而,很显然,可以不用这些特定的细节来实现本专利技术。在其他情况下,以方框图的形式展示众所周知的结构和设备以帮助说明本专利技术。如在此申请中所用,术语“组件”指计算机相关的实体,或者为硬件、硬件和软件的组合、软件,或正在执行的软件。例如,组件可以为,但不仅限于,在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。作为说明,运行在服务器上的应用和服务器都可以视为计算机组件。一个或更多组件可以驻留在进程和/或执行的线程内且组件可以位于一个计算机上和/或分布在两个或更多计算机上。“线程”是进程内由操作系统内核调度执行的实体。如在技术中所知,每个线程有关联的“上下文”,所述上下文是和线程的执行关联的易变的数据。线程的上下文包括系统寄存器的内容及线程所在进程的虚拟地址。因此,包括线程上下文的实际数据随者执行而不同。本专利技术涉及在数据库改变会影响已注册的数据库查询的结果时提供通知的系统和方法。所述系统和方法通常使用帮助传送数据库查询注册信息和发本文档来自技高网...
【技术保护点】
一种数据库改变通知系统,其特征在于,所述系统包括:接收数据库查询注册信息的服务代理;一个或多个存储数据库查询注册信息的至少部分的队列;及一个或多个发送改变消息的通知发送服务。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:MJ皮索,S桑达雷杉,RP帕姆拉帕蒂,C克莱纳曼,P卡斯特罗,
申请(专利权)人:微软公司,
类型:发明
国别省市:US[]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。