CN101243445A - 数据变更通告 - Google Patents

数据变更通告 Download PDF

Info

Publication number
CN101243445A
CN101243445A CNA2006800295656A CN200680029565A CN101243445A CN 101243445 A CN101243445 A CN 101243445A CN A2006800295656 A CNA2006800295656 A CN A2006800295656A CN 200680029565 A CN200680029565 A CN 200680029565A CN 101243445 A CN101243445 A CN 101243445A
Authority
CN
China
Prior art keywords
change
entity
data
formation
request
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
CNA2006800295656A
Other languages
English (en)
Other versions
CN101243445B (zh
Inventor
A·舒克拉
C·罗
H·原
J·D·拉斯弗
J·克莱恩
L·方
N·R·艾利斯
S·辛恩
S·P·阿查亚
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 CN101243445A publication Critical patent/CN101243445A/zh
Application granted granted Critical
Publication of CN101243445B publication Critical patent/CN101243445B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99939Privileged access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

用于数据变更通告的框架包括存储事件通告的通告队列。客户应用程序可以请求关于各种数据变更事件的事件信息。例如,客户应用程序可以经由一个或多个API预定以接收事件信息。框架能够实现在多个客户会话期间以及在服务器重启时被保存的会话指定的事件通告机制以及持久事件通告机制。本发明的创新方面包括事件通告的有保证的递送、允许应用程序获取有关预定对象过去事件的概述的API、当客户会话终止时对通告进行的自动垃圾收集/清除。

Description

数据变更通告
背景
在许多计算机系统中,用于计算机应用程序并通过其存储和检索的信息由一个或多个中央存储系统处理。例如,在个人计算机中普遍使用的一种存储系统是基于文件文件夹和目录的系统,通常被称为“文件系统”。这些文件系统将多个文件组织入各层次,以创建存储介质的物理组织的抽象概念,用于存储各文件。一般而言,这一成为层次的组织在操作系统级发生。存储的文件通常包括具体表现为由文件系统维持的指定文件的该文件层次本身(“目录”)。该目录又维护与该目录内所有其他文件相对应的条目列表以及这些文件在该层次内的节点位置(在此被称为文件夹)。
用于中央存储的文件系统的使用具有各种限制。这些限制可以通过使用作为中央存储系统基础的关系数据库技术来克服。
在使用存储在存储系统中数据的应用程序中,该应用程序的某些活动是以存储在存储系统内数据的变更为基础的。基于该存储内各独立对象或对象群的变更,应用程序可能希望执行相关的商业逻辑或显示逻辑。例如,电子邮件程序可能想要知道新电子邮件消息何时到达。在某些系统中,电子邮件消息到达并被存储在存储系统上。当新消息到达时,电子邮件程序随后就能使用新电子邮件消息已到达的事实或者使用该电子邮件消息的上下文来执行任何内部处理。例如,某些电子邮件程序包含用于处理消息的规则。这些规则的应用程序在某些情况下由新消息的到达来触发。此外还存在基于存储在存储系统内变更的用户界面的变更。例如,一有新消息到达,就向用户程序呈现指示新消息已到达的通告信号。可以刷新消息列表以包括该新消息。
应用程序感兴趣的这类数据变更包括对象创建、对象删除、以及包括移动对象或对象安全性变更的对象更新。基础关系数据库可以不提供能被用来提供这些更新的触发。
某些组件要求对存储在关系数据库中各对象变更的持续监控。例如,反病毒程序要求某些类型的对象的变更(包括这些对象的添加)触发病毒扫描。类似地,对各实体的全文本索引在持续性基础上完成。如果应用程序对基础关系数据库的连接中断,通告就会丢失,并且连接一恢复,就可能要求多得多的工作来恢复各操作。对变更的监控(和响应)的无缝恢复将能够节省连接恢复时的处理和时间,该变更包括在应用程序对关系数据库的连接中断期间出现的变更。
鉴于前述,需要一种能够在基于数据库的存储系统中使用并提供良好性能和可量测性的变更通告程序。本发明满足这一需要。
概述
为了提供变更通告,应用程序向变更通告系统注册并允许应用程序经由预定(subscription)获取关于指定变更的信息。变更通告系统监控基础关系数据库内数据的变更并在队列中存储与接收到的请求相关的变更信息。应用程序能够从队列中访问相关变更以确定响应于该应用程序的请求出现了什么变更。
根据一个实施例,创建了两类监视程序(watcher)。如果应用程序请求一非持久监视程序,则当该应用程序丢失或终止与变更通告系统的连接时,队列内有关该应用程序的剩余信息就被移除并且不再会有对响应于该应用程序请求的变更的跟踪出现。然而,如果请求持久监视程序,则即使应用程序终止或丢失连接,队列内的剩余信息仍被保留,并且与来自该应用程序的请求相关的任何附加变更都被存储在该队列中。当应用程序重新连接时,断开连接期间的变更信息在队列中可用,像在重新连接期间和之后的变更一样。
以此方式,应用程序可以在各种对象范围(在对象的独立项目级别、文件夹内容级别或者完整的层次级别)处、并且针对各种事件类型(创建、更新、删除操作)、对象类型(文档、消息等)和对象种类(项目、扩展、链接等)来访问事件通告预定选项的丰富集合。此外,事件通告可以在会话终止(自愿或者非自愿)期间被保留,从而可能实现监控的无缝恢复。
通过下面对本发明的以及附图的详细说明,将会明了本发明的其他特征和优点。
附图说明
当结合所附的附图进行阅读时,可以更好地理解上面的摘要以及下面对本发明的详细说明。出于说明本发明的目的,在附图中示出了本发明的各个方面的示例性实施例;然而,本发明不限于所公开的具体方法和手段。附图中:
图1是表示了在其中可以结合本发明各方面的计算机系统的框图;
图2是示出了分成三个组件群的计算机系统的框图;硬件组件、硬件/软件接口系统组件以及应用程序组件;
图3是根据本发明一个实施例的变更通告系统采取的步骤的流程图;
图4是根据本发明一个实施例的变更通告系统和特定数据流的框图;以及
图5是根据一个实施例由变更通告系统400跟踪客户410的变更所采取的步骤的流程图。
详细说明
示例性计算环境
本发明的许多实施例可在计算机上执行。图1及以下讨论旨在提供对适合于在其中实现本发明的计算环境的简要概括描述。虽然不是必需,本发明的诸方面能以诸如由客户工作站或服务器的计算机上执行的程序模块的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。此外,本发明可用其它计算机系统配置实现,包括手持设备、多处理器系统、基于微处理器的系统或可编程消费者电子设备、网络PC、小型机、大型机等。本发明还能在分布式计算环境中实现,其中任务由通过通信网络链接的远程处理设备完成。在分布式计算环境中,程序模块可被置于本地或远程的存储器设备中。
如图1所示,示例性通用计算系统包括传统的个人计算机20等,它包括处理单元21、系统存储器22和将包括系统存储器的各种系统组件耦合到处理单元21的系统总线23。系统总线23可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。系统存储器包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统26(BIOS)包含有助于诸如启动时在个人计算机20中元件之间传递信息的基本例程,它存储在ROM 24中。个人计算机20也可包括用于对硬盘(未示出)进行读写的硬盘驱动器27、用于对可移动磁盘28进行读写的磁盘驱动器29以及用于对可移动光盘31,如CD-ROM或其它光介质进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28以及光盘驱动器30分别通过硬盘驱动器接口23、磁盘驱动器接口32和光盘驱动器接口33连接至系统总线23。驱动器及其相关的计算机可读介质为个人计算机20提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。虽然这里描述的示例性环境采用硬盘、可移动磁盘29和可移动光盘31,本领域技术人员理解,在示例性操作环境中也能使用可存储能由计算机访问的数据的其它类型计算机可读介质,如盒式磁带、闪存卡、数字视频盘、Bernoulli盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等。类似地,示例环境还可包括许多类型的监控设备,如热传感器和安全或火警系统,及其它信息来源。
若干程序模块能存储在硬盘、磁盘29、光盘31、ROM24或RAM25中,包括操作系统35、一个或多个应用程序36、其它程序模块37和程序数据38。用户能通过如键盘40和定位设备42等输入设备将命令和信息输入到个人计算机20。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这里和其它输入设备常通过耦合到系统总线的串行接口46连接到处理单元21,但也可通过其它接口连接,如并行口、游戏口或通用串行总线(USB)。监视器47或其它类型的显示设备也通过如视频适配器48的接口连接到系统总线23。除监视器47以外,个人计算机通常包括如扬声器和打印机等其它外围输出设备(未示出)。图1的示例系统还包括主适配器55、小型计算机系统接口(SCSI)总线56和连接到SCSI总线的外部存储设备62。
个人计算机20可使用到如远程计算机49的一个或多个远程计算机的逻辑连接在网络环境中操作。远程计算机49可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并通常包括以上对个人计算机20描述的许多或所有元件,虽然在图1中只示出存储器存储设备50。图1中画出的逻辑连接包括局域网(LAN)51和广域网(WAN)52。那样的网络环境常见于办公室、企业范围计算机网络、内联网和因特网。
当在LAN网络环境中使用时,个人计算机20通过网络接口或适配器53连接至局域网51。当在WAN网络环境中使用时,个人计算机20通常包括调制解调器54,或用于通过广域网52与,如因特网建立通信的其它装置。内置或外接的调制解调器54通过串行端口接口46连接系统总线23。在网络环境中,相对个人计算机20画出的程序模块或其部分可存储在远程存储器存储设备中。将会理解:所示的这些网络连接起示例性的作用,也可以使用在计算机之间建立通信链路的其他手段。
如图2的框图所示,计算机系统200可以被粗略地分为三个组件群:硬件组件202、硬件/软件接口组件204、以及应用程序组件206(在本文的某些上下文中也被称为“用户组件”或“软件组件”)。
在计算机系统200的各个实施例中,并且参考回图1,硬件组件202尤其可以包括中央处理单元(CPU)21、存储器(ROM24和RAM25两者)、基本输入输出系统(BIOS)26、以及诸如键盘40、鼠标42、监视器47和/或打印机(未示出)的各种输入/输出(I/O)设备。硬件组件202包括计算机系统200的基本物理基础结构。
应用程序组件206包括各种软件程序,包括但不限于编译器、数据库系统、字处理程序、商用程序、视频游戏等。应用程序提供各种途径,通过这些途径,就能够利用计算机资源来解决问题、提供解决方案并为各用户(机器、其他计算机系统和/或终端用户)处理数据。
硬件/软件接口组件204包括(并且在某些实施例中由以下各项唯一地组成)操作系统,而操作系统本身在大多数情况下包括外壳和内核。“操作系统”(OS)是用作应用程序和计算机硬件之间中介物的指定程序。硬件/软件接口组件204还可以包括虚拟机监视器(VMM)、公共语言运行时库(CLR)或其功能等效物、Java虚拟机(JVM)或其功能等效物、或者在计算机系统内用以代替或补充操作系统的其他这些软件组件。硬件/软件接口系统的目的在于提供一个在其中用户能够执行应用程序的环境。任何硬件/软件接口系统的目标在于使得计算机系统易于使用,并能以高效的方式利用计算机硬件。
硬件/软件接口系统通常在启动时被装入计算机系统,并在其后管理计算机系统内的所有应用程序。应用程序通过经由应用程序接口(API)请求服务来与硬件/软件接口系统交互。某些应用程序能够让终端用户经由诸如命令语言或用户图形界面(GUI)的用户接口来与硬件/软件接口系统交互。
硬件/软件接口系统传统上执行有关应用程序的各种服务。在多个程序同时运行的多任务硬件/软件接口系统中,硬件/软件接口系统确定各应用程序应该以何种次序运行以及确定在作为轮换切换至另一应用程序之前应该允许每个应用程序允许多长时间。硬件/软件接口系统还管理多个应用程序之间内部存储器的共享,并且处理来自诸如硬盘、打印机和拨号端口之类的附连硬件设备的输入以及对其的输出。硬件/软件接口系统还将有关操作的状态和可能已发生的任何错误的消息发送给每个应用程序(并且在特定情况下,发送给终端用户)。硬件/软件接口系统还卸载批作业(例如,打印)的管理,以使得原始应用程序免除这一工作并能够继续执行其他的处理和/或操作。在能提供并行处理的计算机上,硬件/软件接口系统还管理划分程序,使得它同时在多个处理器上运行。
硬件/软件接口系统外壳(这里简称“外壳”)是到硬件/软件接口系统的交互式最终用户接口。(外壳也称为“命令解释器”,或在一个操作系统中称为“操作系统外壳”)。外壳是可直接由应用程序和/或最终用户访问的硬件/软件接口系统的外层。与外壳相反,内核是直接与硬件组件交互的硬件/软件接口系统的最内层。
虽然可构想本发明的许多实施例尤其适用于计算机化的系统,然而在本说明中不意味着将本发明限于那些实施例。相反,这里使用的术语“计算机系统”旨在包括能存储和处理信息和/或能使用存储的信息控制设备本身的行为或执行的任何和所有设备,而不管那些设备本质上是否为电子的、机械的、逻辑的、或虚拟的。
数据变更通告
为了允许应用程序能够至少部分基于关系数据库来监控在存储系统中存储的独立项目、文件夹或者项目域内的变更,建立一变更通告框架。可以对特定类型的变更事件(创建、更新、删除、更新及安全设置等)进行监控。
根据一个实施例,与期望注意一个或多个实体、文件夹或域内变更的应用程序(或其他实体)交互的变更通告系统将进行如图3所示的动作。图3是由变更通告系统根据本发明一个实施例采取的步骤的流程图。如图3所示,变更通告系统的第一步骤300是接收关于做出请求的实体的标识信息。在一个实施例中,这为该变更通告系统的通告客户组成了请求。变更通告系统在一个实施例中被集成到包含关系数据库存储的文件系统中。在替换实施例中,变更通告系统是与关系数据库存储通信(直接或间接)的层或实体。
通告客户的注册允许请求实体从变更通告系统获取客户句柄。这允许该应用程序它与变更通告系统的事务处理中用唯一的标识符。在某些实施例中,在客户注册期间存储安全信息,从而允许变更通告系统确定对可经由变更通告与该应用程序共享的信息有何限制(如果有的话)。在一个实施例中,如果该应用程序对一项目有读访问权限,则仅递送有关该项目的变更通告。
在通告客户已被注册之后,如步骤310所示,变更通告系统将提供通告的有关的变更信息注册。在一个实施例中,这通过监视程序预定的注册来实现。通告客户从步骤300提供可用于注册预定的句柄。每个预定都在文件系统中指定为其请求通告的一个或多个特定元素。例如,在一个基于关系数据库的文件系统的示例中,能被监视的元素可以包括实体、文件夹和域。元素的说明可以是直接的(例如,指定要监视的具体域)或者是其他方式的(例如,指定其名称匹配某一常规表达式的所有文件夹)。另外,每个预定指定应被监控的数据变更事件的种类。例如,预定可以请求有关文件系统内创建、删除或元素变更的通告。在一个实施例中,可以呈现用于指定元素的默认值以及数据变更事件的类型。这样,例如在这一实施例中,如果没有指定元素(由直接指定引用或其他方式)也没有指定变更类型,则考虑对全部元素内所有可能变更的通告请求。
监视程序预定可以在任何时刻注册。在一个或多个监视程序预定已注册之后,如步骤320所示,将变更通告提供给请求实体。在某些实施例中,变更通告被同步提供。例如,在变更通告系统已经注册了所期待的实体信息和变更信息之后,可由请求实体调用“WaitForChanges(等待变更)”方法。这一方法将等待变更——它在一得到变更通告系统通告时就返回变更通告。在其他实施例中,变更通告被异步提供。在异步实施例中,请求实体能够在一段时间间隔经过之后访问其变更通告,并且该请求实体接收来自该间隔期间的所有变更通告。这样,可以调用“ReadOldNotifications(读取旧通告)”方法来确定是否有关于该请求实体的任何信息未决,并且返回任何未决通告。在一个实施例中,呈现了一种组合了WaitForChanges和ReadOldNotifications功能性的方法,在该方法中,如果有任何未决通告存在,则在调用未决通告时立即返回,而如果没有,则在变更由变更通告系统通告时返回。
在一个实施例中,变更通告可从变更通告系统经由通告客户提供。在另一实施例中,应用程序发信号表明它准备好通过上述调用变更通告系统的方法来接收这一通告。该通告作为相关变更的集合返回。在一个实施例中,变更作为在变更队列上执行的等待查询的结果返回。等待是仅在找到匹配该查询的数据时才返回的一特定类型的查询(找出,例如在数据库系统中)。队列可以包括若干监视程序的变更,然而该等待查询(仅在找到匹配该查询的数据时返回)被构造为仅接收作为有关该客户的已注册监视程序预定的响应的变更。
可以注册来自单个客户的任何数量的监视程序预定。对于客户注册新的监视程序预定并没有限制,可以是只在创建稍后或者是只在通告被请求或接收之前。在上述实施例中,与任何已注册预定相关的所有通告在单个集合内被返回给该监视程序。在其它的实施例中,可以为每个监视程序预定返回分开的响应。在其它一些实施例中,没有注册通告客户,而是注册了单个预定客户,包含并具体化为该通告客户和一个监视程序预定。
根据本发明的一个实施例,监视程序在其与变更通告系统的连接终止时终止。此时或在往后清除期间的某些时刻,队列内有关该已终止监视程序的任何通告被删除,并且响应于该监视程序预定的通告不再排队。这类监视程序叫做非持久监视程序。根据本发明的其它实施例,还提供了被称为持久监视程序的一类监视程序。
持久监视程序客户可以持续多个会话。这就使得创建持久监视程序客户的应用程序能够确保它们不错过它们已为其注册的任何变更。当创建该持久监视程序客户的会话结束时,不从队列中删除有关该客户的变更通告。相反地,它们被保留。实际上,队列上该持久监视程序的所有通告都被保留直到该持久监视程序客户请求将其删除。当创建该持久监视程序客户的应用程序在终止之后重新连接时,队列将包含该客户在终止时已位于队列上但尚未请求删除的并与监视程序预定相关的任何通告,以及在终止之后放置在该队列上的任何相关通告。应用程序随后创建一新客户并读取这些通告(并且在读取它们之后,能够请求将其删除以节省队列上的空间)。
因为持久监视程序客户的通告直到持久监视程序客户要求时才被移除,所以就增加了该应用能接收所有相关通告的把握。例如,如果通告被发送给运行持久监视程序客户的应用程序但是没被收到(例如,因为存在连接的意外终止),随后该应用程序将不会请求将其删除,并且当连接重新建立时,这些通告将仍然在队列中对该持久监视程序可用。在一个实施例中,持久监视程序可以请求在队列内及两个给定时刻(由时间戳、计数器点击或其他方式引用)之间出现的变更有关的任何变更通告。
根据本发明的各实施例,可以提供持久监视程序、非持久监视程序、或其两者。
图4是根据本发明一个实施例的变更通告系统和特定数据流的框图。如图4所示,变更通告系统400经由客户410与应用交互。这些客户410是注册监视程序客户的应用程序和变更通告系统400的监视程序预定的应用程序。注册事务未在图4中示出。
有关监视程序预定的信息(以及有关监视程序预定的关联客户410的身份)被存储在预定表420内。在一个实施例中,存储有两个表——客户预定表和监视程序预定表。客户预定表存储所有的客户注册。对于持久监视程序客户,保持在客户预定表内的信息直到该持久监视程序客户请求将其移除。对于非持久监视程序客户,一旦关闭与该客户相关联的连接,就移除该客户数据。监视程序预定表保持有关已注册监视程序的信息。预定表数据可以被图式化并存储为被跟踪变更的关系数据库内的数据,或如图4所示,也可被分开存储。
通告分派程序430是变更通告系统400的核心。在一个实施例中,通告分派程序430是如预定表420所指示对关系数据库(实体表440)执行查询并在通告队列460中存储变更通告的背景线程。实体表440可由诸如发布程序450之类的外部实体变更。这些数据通告都对实体表440(该关系数据库基础存储系统)发生。输入实体表被示出作为变更通告系统400的一部分,但是也可与其分开。
在一个实施例中,通告分派程序通过对来自预定表420和实体表440的数据执行联结操作来找出实体表440内的各自的变更信息。在某些实施例中,部分客户410可能未被允许查看实体表440内的所有数据,并且在这些实施例中,有关客户410允许访问的变更的变更通告仅被存储在通告队列460上。
在一个实施例中,通告队列460使用关系数据库表被实现,并且客户410使用等待查询以确定是否已将响应于监视程序预定的变更通告放置入通告队列460。队列条目包括用以标识变更通告所针对客户410的客户标识符,以及时间戳。因为多个变更通告可被立刻递送(例如,在重新连接的持久监视程序的情况下),所以该时间戳允许客户410知道各变更以何次序出现。虽然通告队列460以在其中客户410接收有关变更通告的信息的方式呈现,但是可以考虑客户410从通告分派程序430接收变更通告的所有方法。通常,在某些实施例中,系统由针对变更请求信息(预定表420)的存储、确定是否已做出相关变更的通告分派程序430、以及将通告传递给客户的通告程序组成。
服务代理程序470确定非持久监视程序客户410是否已断开连接,并且如果是,则清零属于该非持久监视程序客户410的变更通告队列。服务代理程序470还管理其他客户状态信息,诸如预定表420内的信息,以保持预定表420最新。另外,在其中支持持久监视程序的一个实施例中,服务代理程序470确定监视程序客户410是否已要求移除变更通告或终止,并且为这些请求的每一个在预定表420和通告队列460上执行清除操作。
图5是由变更通告系统400根据一个实施例跟踪客户410的变更所采取的步骤的流程图。如图5所示,在第一步骤500,向关系数据库查询相关数据修改。在一个实施例中,该步骤500仅在关系数据库已发生变更时执行。
在第二步骤510,将相关数据修改提供给变更通告系统的客户。通告包括有关发生的变更的信息,例如正被监视的项目到底变更了什么——是该项目本身、该项目的某些成分、或者某些关联项目。此外,通告包括有关触发该通告的事件类型的信息。关于该项目的任何数据或元数据的变更可以是该变更的起源。
在某些实施例中,框架经由作为应用程序编程接口一部分的公布的方法为应用程序提供工具。提供的工具包括:
·注册——应用程序能够注册通告客户。以此方式,可以经由单个应用程序指定的客户句柄来处理有关一应用的独立的通告预定。
·预定——已注册的通告客户能够注册监视程序预定,以指定要被监视的数据变更事件(例如,有关一实体、文件夹、或域的变更事件)。通告客户可以注册任何数量的这些监视程序预定。(在其它实施例中,没有注册是必需的,并且预定直接由该应用程序获取。)
·未决变更的枚举——所有未决数据变更都在注册之后或重启期间为预定的监视程序枚举。
·通告的生成——生成有关预定已被注册的数据变更事件的通告。
·通告的排队——通告被排入通告队列以响应预定的监视程序。
·通告的供应——来自通告队列的相关通告被提供给预定的监视程序。
·终止——提供一种方法来终止独立的监视程序或终止一通告客户。
·清除——用于非持久监视程序的容错通告的清除。
·删除监视程序和删除客户——这有关监视程序如何指示其完成并从变更通告系统中移除其信息。可以是删除独立监视程序预定,或是删除任何能被请求的客户相关信息。虽然这些既可以为持久监视程序也可以为非持久监视程序实现,但是在持久监视程序的实施例中,持久监视程序客户必须使用这些,或者该变更将继续为这些客户排队。
结论
如之前所示,本发明针对用于组织、搜索以及共享数据的存储平台。本发明的存储平台扩展并且扩大了现有文件系统和数据库系统之外的数据存储的概念,并且被设计为用于所有类型的数据的存储,包括结构化的、非结构化的、或者半结构化的数据例如关系(表列)数据、XML,以及一种被称作项目的新形式的数据。通过其共同存储基础和图式化的数据,本发明的存储平台允许用于客户、知识工人以及企业的更有效的应用程序开发。它提供了丰富的并且可扩展的应用程序编程接口,所述接口不仅可以使用其数据模型中固有的性能,而且包含并扩展了现有文件系统和数据库访问方法。可以理解,在不脱离其宽泛的发明概念的情况下,可以对以上所述的实施例进行的变更。因此,本发明并不限于所公开的特殊实施例,而是旨在覆盖由所附权利要求所规定的本发明的精神和范围内的所有变更。
如以上所述很明显,本发明的各种系统、方法、以及方面的所有或者一部分可以以程序代码(即,指令)的形式来体现。这种程序代码可以被存储在计算机可读介质上,例如磁的、电的或者光的存储介质,在非限定情况下包括软盘、CD-ROM、CD-RW、DVD-ROM、DVD-RAM、磁带、闪速存储器、硬盘驱动器、或者其它机器可读存储介质,其中当程序代码被载入到机器例如计算机或服务器中并由机器执行时,所述机器就变成用于实施本发明的装置。本发明还可以以在一些传输介质上被传输的程序代码的形式来体现,在传输介质上例如在电线或者电缆上、通过光纤、通过网络,包括因特网或内部网,或者通过任何其它形式的传输,其中,当程序代码被接收并且被载入到机器例如计算机中并且由机器执行时,所述机器就变成用于实施本发明的装置。当在通用处理器上被实现时,所述程序代码与处理器相结合,以便提供类似于特定逻辑电路的操作的独特装置。

Claims (19)

1.一种用于向实体提供关于关系数据库内指定类型数据变更的变更通告的方法,所述方法包括:
接收标识所述实体的实体信息;
接收关于所述变更的指定类型的变更信息;以及
将关于在所述关系数据库内所述指定类型的变更的变更通告数据提供给所述实体。
2.如权利要求1所述的方法,其特征在于,所述将变更通告数据提供给所述实体的步骤包括:
在队列中存储所述变更通告数据。
3.如权利要求2所述的方法,其特征在于,所述将变更通告数据提供给所述实体的步骤包括:
响应来自所述队列的针对数据的请求。
4.如权利要求3所述的方法,其特征在于,所述响应来自所述队列的针对数据的请求的步骤包括:
响应在所述队列上执行的等待查询。
5.如权利要求2所述的方法,其特征在于,所述响应来自所述队列的针对数据的请求的步骤包括:
使用实体信息确定所述请求是否由所述实体发出。
6.如权利要求1所述的方法,其特征在于,所述变更涉及所述关系数据库内的指定项目,其中对所述关系数据库内所述指定项目的访问受安全需求所限,所述方法还包括:
确定所述实体履行所述安全需求。
7.如权利要求2所述的方法,其特征在于,所述队列包括附加的变更通告信息项目,每个所述附加的变更通告信息项目对应于请求实体,所述方法还包括:
如果对所述实体的连接被终止,就删除所述队列内对应于所述实体的任何所述附加的变更通告信息。
8.如权利要求2所述的方法,其特征在于,所述队列包括附加的变更通告信息项目,每个所述附加的变更通告信息项目对应于请求实体,所述方法还包括:
确定对所述实体的连接被终止;
确定对所述实体的新连接存在;以及
使用所述新连接提供对应于所述请求实体的所述附加的变更通告信息项目。
9.一种用于向实体提供至少一个变更通告的系统,每个变更通告关于数据库内一变更,所述系统包括:
存储关于所述实体的实体信息以及关于至少一个变更定义的变更信息的预定表,所述变更定义则定义了对所述数据库的一个或多个可能的变更;
通告分派程序,所述通告分派程序用于连接至所述预定表,所述预定表用于连接至所述数据库,并且所述通告分派程序为所述变更定义所固有的的数据库变更来查询所述数据库并接收关于一相干变更的数据;以及
用于连接至所述通告分派程序的通告程序,所述通告程序用于连接至所述实体,所述通告程序提供关于所述相干变更的至少一个通告。
10.如权利要求9所述的系统,其特征在于,所述通告程序包括:
存储关于所述相干变更的至少一个所述通告的至少一个的队列。
11.如权利要求10所述的系统,其特征在于,所述队列接收来自所述实体的查询并且其中所述关于所述相干变更的至少一个通告的供应是响应所述查询的。
12.如权利要求10所述的系统,其特征在于,还包括:
服务代理程序,如果在所述通告程序和所述实体之间的所述操作性连接被终止,则所述服务代理程序从所述队列中移除对应于所述实体的所有相干变更。
13.一种包括计算机可执行指令的计算机可读介质,所述计算机可执行指令用于执行以下步骤:
为关于与至少一个变更定义相对应的数据变更的信息来查询数据库,每个所述至少一个变更定义对应于来自一组可能的请求实体集的一请求实体;以及
将关于所述数据变更的数据变更数据提供给所述请求实体之一。
14.如权利要求13所述的计算机可读介质,其特征在于,所述提供关于所述数据变更的数据变更数据的步骤还包括:
为每个所述请求实体,在队列中存储通告数据项目,所述通告数据项目包括所述数据变更数据以及对应于所述请求实体的实体标识符;
用来自所述队列内所述通告数据项目之中的至少一个响应的通告数据项目,响应来自所述请求实体之一的对所述队列中数据的请求,其中每个所述响应的通告数据项目包括与所述请求实体之一相对应的实体标识符。
15.如权利要求14所述的计算机可读介质,其特征在于,所述通告数据还包括标识时间点的时间数据,其中所述对数据的请求包括时间范围,并且对每个所述响应的通告数据项目的所述时间数据被包含在所述范围内。
16.如权利要求14所述的计算机可读介质,其特征在于,所述请求是所述队列上的等待请求。
17.如权利要求13所述的计算机可读介质,其特征在于,还包括:
提供一种用于实体来注册作为所述可能的请求实体之一的方法。
18.如权利要求13所述的计算机可读介质,其特征在于,还包括:
提供一种用于所述可能的请求实体之一来注册对应于所述实体的变更定义的方法。
19.如权利要求13所述方法,其特征在于,所述将关于所述数据变更的数据变更数据提供给所述请求实体之一的步骤仅在确定所述请求实体之一具有访问所述数据变更数据的权限之后才被执行。
CN2006800295656A 2005-08-25 2006-08-04 数据变更通告 Active CN101243445B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/211,869 US7543003B2 (en) 2005-08-25 2005-08-25 Providing change notifications to an entity-regarding a change of a specific type to data in a relational database
US11/211,869 2005-08-25
PCT/US2006/030279 WO2007024438A1 (en) 2005-08-25 2006-08-04 Data change notifications

Publications (2)

Publication Number Publication Date
CN101243445A true CN101243445A (zh) 2008-08-13
CN101243445B CN101243445B (zh) 2013-01-16

Family

ID=37771918

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800295656A Active CN101243445B (zh) 2005-08-25 2006-08-04 数据变更通告

Country Status (7)

Country Link
US (1) US7543003B2 (zh)
KR (1) KR101203306B1 (zh)
CN (1) CN101243445B (zh)
BR (1) BRPI0614928A2 (zh)
MX (1) MX2008002506A (zh)
RU (1) RU2421803C2 (zh)
WO (1) WO2007024438A1 (zh)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7392259B2 (en) * 2004-12-14 2008-06-24 Electronics And Telecommunications Research Institute Method and system for supporting XQuery trigger in XML-DBMS based on relational DBMS
US20090055511A1 (en) * 2007-08-20 2009-02-26 International Business Machines Corporation Non-programmatic access to data and to data transfer functions
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US20100077324A1 (en) * 2008-09-23 2010-03-25 Microsoft Corporation Pluggable presentation and domain coupling
JP5360978B2 (ja) * 2009-05-22 2013-12-04 株式会社日立製作所 ファイルサーバ、及びファイルサーバにおけるファイル操作通知方法
US8495044B2 (en) * 2009-09-02 2013-07-23 Microsoft Corporation File system node updates
US8825731B2 (en) 2010-05-18 2014-09-02 International Business Machines Corporation Mobile device workload management for cloud computing using SIP and presence to control workload and method thereof
US9471700B2 (en) * 2010-05-18 2016-10-18 Tksn Holdings, Llc System and method for monitoring changes in databases and websites
GB2500356A (en) 2011-01-20 2013-09-18 Box Inc Real time notification of activities that occur in a web-based collaboration environment
US9015601B2 (en) 2011-06-21 2015-04-21 Box, Inc. Batch uploading of content to a web-based collaboration environment
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
US9652741B2 (en) 2011-07-08 2017-05-16 Box, Inc. Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
US9978040B2 (en) 2011-07-08 2018-05-22 Box, Inc. Collaboration sessions in a workspace on a cloud-based content management system
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8515902B2 (en) 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
WO2013062599A1 (en) 2011-10-26 2013-05-02 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
GB2498047B (en) * 2011-11-16 2015-09-30 Box Inc Managing updates at clients used by a user to access a cloud-based collaboration service
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
GB2500152A (en) 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
US9019123B2 (en) 2011-12-22 2015-04-28 Box, Inc. Health check services for web-based collaboration environments
US8332349B1 (en) * 2012-01-06 2012-12-11 Advent Software, Inc. Asynchronous acid event-driven data processing using audit trail tools for transaction systems
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
US9054919B2 (en) 2012-04-05 2015-06-09 Box, Inc. Device pinning capability for enterprise cloud service and storage accounts
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US9027108B2 (en) 2012-05-23 2015-05-05 Box, Inc. Systems and methods for secure file portability between mobile applications on a mobile device
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US10754710B1 (en) * 2012-06-20 2020-08-25 Amazon Technologies, Inc. Transactional watch mechanism
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
US9237170B2 (en) 2012-07-19 2016-01-12 Box, Inc. Data loss prevention (DLP) methods and architectures by a cloud service
US10122598B2 (en) 2012-07-25 2018-11-06 International Business Machines Corporation Subscription watch lists for event handling
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US8868574B2 (en) 2012-07-30 2014-10-21 Box, Inc. System and method for advanced search and filtering mechanisms for enterprise administrators in a cloud-based environment
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9558202B2 (en) 2012-08-27 2017-01-31 Box, Inc. Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
JP5982343B2 (ja) 2012-10-17 2016-08-31 ボックス インコーポレイテッドBox, Inc. クラウドベース環境におけるリモートキー管理
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9507795B2 (en) 2013-01-11 2016-11-29 Box, Inc. Functionalities, features, and user interface of a synchronization client to a cloud-based environment
EP2757491A1 (en) 2013-01-17 2014-07-23 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US9633037B2 (en) 2013-06-13 2017-04-25 Box, Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US8886671B1 (en) 2013-08-14 2014-11-11 Advent Software, Inc. Multi-tenant in-memory database (MUTED) system and method
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US9619581B2 (en) 2013-12-20 2017-04-11 Microsoft Technology Licensing, Llc Constructing queries for execution over multi-dimensional data structures
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
US9852221B1 (en) 2015-03-26 2017-12-26 Amazon Technologies, Inc. Distributed state manager jury selection
US10356157B2 (en) * 2015-04-16 2019-07-16 Google Llc Systems and methods for notifying users of changes to files in cloud-based file-storage systems
US20170161288A1 (en) * 2015-12-02 2017-06-08 OSNEXUS Corporation Data analytics engine for facilitating real-time subscriber based data analysis
US10783144B2 (en) 2016-04-01 2020-09-22 Arista Networks, Inc. Use of null rows to indicate the end of a one-shot query in network switch
US10860568B2 (en) 2016-04-01 2020-12-08 Arista Networks, Inc. External data source linking to queries in memory
US10284673B2 (en) * 2016-04-01 2019-05-07 Arista Networks, Inc. Interface for a client of a network device
US10261949B2 (en) 2016-04-01 2019-04-16 Arista Networks, Inc. Packed row representation for efficient network serialization with direct column indexing in a network switch
US10783147B2 (en) 2016-04-01 2020-09-22 Arista Networks, Inc. Query result flow control in a network switch
US10642844B2 (en) 2016-04-01 2020-05-05 Arista Networks, Inc. Non-materialized tables with standing queries
WO2019158975A1 (en) * 2018-02-16 2019-08-22 Pratik Sharma Notification mechanism for cloud administrator
EP3687133B1 (en) * 2019-01-22 2021-12-15 Advanced Digital Broadcast S.A. System and method for synchronization of media objects between devices operating in a multiroom system
US11966959B2 (en) 2020-09-23 2024-04-23 International Business Machines Corporation Subscription of marketplace content based on search queries
WO2023128006A1 (ko) * 2021-12-30 2023-07-06 한국전자기술연구원 다수 데이터 플랫폼 분산 환경에서 캐싱된 데이터 플랫폼 정보 기반 데이터 요청 처리 방법
WO2023128141A1 (ko) * 2021-12-30 2023-07-06 한국전자기술연구원 다수 데이터 플랫폼 분산 환경에서 분산 데이터 취합을 위한 데이터 조회 요청 중복 방지 방법
KR102406979B1 (ko) * 2021-12-30 2022-06-10 한국전자기술연구원 다수 데이터 플랫폼 분산 환경에서 캐싱된 데이터 플랫폼 정보 기반 데이터 요청 처리 방법

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5493679A (en) * 1993-10-29 1996-02-20 Hughes Aircraft Company Automated logistical relational database support system for engineering drawings and artwork
US6301584B1 (en) * 1997-08-21 2001-10-09 Home Information Services, Inc. System and method for retrieving entities and integrating data
US6292803B1 (en) * 1997-11-18 2001-09-18 Honeywell International Inc. Object state change and history management mechanism
US6041327A (en) * 1997-12-12 2000-03-21 Telefonaktiebolaget Lm Ericsson Implementation of notification capabilities in relational databases
US6721740B1 (en) * 1998-05-29 2004-04-13 Sun Microsystems, Inc. Method and apparatus of performing active update notification
KR20010059593A (ko) * 1999-12-30 2001-07-06 이계철 웹기반 중개자 서버를 이용한 데이터베이스간 연동정보현행화방법
US7031437B1 (en) * 2000-10-30 2006-04-18 Nortel Networks Limited Method and system for providing remote access to previously transmitted enterprise messages
GB2379296B (en) * 2001-09-01 2005-05-25 Ibm A data storage system having a unified container layer for an active data store
US7315863B2 (en) * 2001-09-20 2008-01-01 Oracle International Corp Method and apparatus for automatic notification of database events
WO2003051014A2 (en) * 2001-12-11 2003-06-19 British Telecommunications Public Limited Company Event notification over a communications network
JP2005526311A (ja) * 2002-02-22 2005-09-02 アイピーロックス・インコーポレイテッド データベースシステムを監視するための方法および装置
US6721907B2 (en) * 2002-06-12 2004-04-13 Zambeel, Inc. System and method for monitoring the state and operability of components in distributed computing systems
US7412436B2 (en) * 2002-07-20 2008-08-12 Microsoft Corporation System and interface for manipulating a database
US20040205048A1 (en) * 2003-03-28 2004-10-14 Pizzo Michael J. Systems and methods for requesting and receiving database change notifications
US7162472B2 (en) * 2003-06-24 2007-01-09 Microsoft Corporation System and method for database change notification
US7644376B2 (en) * 2003-10-23 2010-01-05 Microsoft Corporation Flexible architecture for notifying applications of state changes
US20060155581A1 (en) * 2005-01-10 2006-07-13 George Eisenberger Systems with user selectable data attributes for automated electronic search, identification and publication of relevant data from electronic data records at multiple data sources

Also Published As

Publication number Publication date
KR101203306B1 (ko) 2012-11-20
KR20080047346A (ko) 2008-05-28
MX2008002506A (es) 2008-04-07
WO2007024438A1 (en) 2007-03-01
US7543003B2 (en) 2009-06-02
RU2421803C2 (ru) 2011-06-20
RU2008106952A (ru) 2009-08-27
BRPI0614928A2 (pt) 2011-04-19
CN101243445B (zh) 2013-01-16
US20070050392A1 (en) 2007-03-01

Similar Documents

Publication Publication Date Title
CN101243445B (zh) 数据变更通告
US7779419B2 (en) Method and apparatus for creating templates
US7640249B2 (en) System and method for transactional session management
US7480816B1 (en) Failure chain detection and recovery in a group of cooperating systems
US5923833A (en) Restart and recovery of OMG-compliant transaction systems
JP4637842B2 (ja) クラスタ化されたコンピューティングシステムにおける高速なアプリケーション通知
US20090307530A1 (en) Distributed testing system and techniques
US6594779B1 (en) Method, system and program products for managing the checkpointing/restarting of resources of a computing environment
US6477569B1 (en) Method and apparatus for computer network management
CN101853186A (zh) 分布式事务恢复系统和方法
US9274857B2 (en) Method and system for detecting work completion in loosely coupled components
US9189303B2 (en) Shadow queues for recovery of messages
US6615265B1 (en) Enabling planned outages of application servers
US20080275981A1 (en) Client server system and method for executing an application utilizing distributed objects
US20080091712A1 (en) Method and system for non-intrusive event sequencing
US20070226231A1 (en) Systems and methods for managing business issues
US20080163083A1 (en) Tailored object
US7275250B1 (en) Method and apparatus for correlating events
US20060230109A1 (en) Mediator-based recovery mechanism for multi-agent system
CN117056116A (zh) 一种流程管理方法和电子设备
US10169259B2 (en) Pattern-based service bus architecture using activity-oriented services
CN110737510A (zh) 块设备管理系统
KR20170130911A (ko) Dds-dbms 연동 도구의 실시간 변경 데이터 발간 서비스 수행 방법
JP2005063240A (ja) 階層型データベース検索システム、方法、および該システムのプログラム
CN112732415A (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: 20150424

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

Effective date of registration: 20150424

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.