CN1224875A - 数据库管理系统的动态修改 - Google Patents
数据库管理系统的动态修改 Download PDFInfo
- Publication number
- CN1224875A CN1224875A CN98126274A CN98126274A CN1224875A CN 1224875 A CN1224875 A CN 1224875A CN 98126274 A CN98126274 A CN 98126274A CN 98126274 A CN98126274 A CN 98126274A CN 1224875 A CN1224875 A CN 1224875A
- Authority
- CN
- China
- Prior art keywords
- operator
- handling procedure
- server
- space
- tuple
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
这里公开了用于向一个服务器动态地增加功能的方法、装置和制造产品。在服务器从一个联网客户接收第一算子,其中第一算子表示要增加到服务器上的新功能。为第一算子安排一第一处理程序。在服务器中执行第一处理程序,其中第一处理程序登记一个与新功能相联系的第二算子,并为第二算子安装一第二处理程序,以执行新功能。
Description
本发明一般地涉及由计算机实现的数据库管理系统,特别地,涉及向一个由服务器计算机执行的数据库管理系统动态地增加功能的方法。
数据库系统是提供固定数量功能的大的单片结构。为了增加数据库系统的功能,一个非常熟练的数据库系统开发者必须打开源代码并且非常费力地对其进行处理,例如增加和修改源代码,对其进行编译、测试,最后将其传送给客户。无论哪里这个周期都可能花上几个月到几年的时间。另外,一旦生成了一个新系统,在能够使用新功能之前,用户必须停止使用旧系统,安装新系统,然后运行新系统。
因此,在该领域中需要一种机构,允许开发者和用户向一个数据库系统动态地增加新功能,从而使用户能立即访问新特征。本发明解决了这些和其他问题,这将在下面进一步进行说明。
为了克服上述现有技术中的局限性,并且克服在阅读和理解本说明书之后将变得明显的其它局限性,本发明公开了用于向一个服务器动态地增加功能的方法、装置和制造产品。在服务器从一个联网客户接收第一算子,其中第一算子表示要增加到服务器上的新功能。为第一算子安排一个第一处理程序。在服务器中执行第一处理程序,其中第一处理程序登记与新功能相联系的第二算子,并为第二算子安装一个第二处理程序,以执行该新功能。
现在参见附图,在附图中相同的标号代表相应的部件,其中:
图1简要地显示了本发明的最佳实施例的环境,特别地,显示了一个使用网络将T空间客户连到T空间服务器的典型的分布式计算机系统;
图2显示了依据本发明的T空间客户的实现形式;
图3显示了依据本发明的T空间服务器的结构;以及
图4是显示依据本发明的由T空间执行的逻辑的流程图。
下面参考附图对最佳实施例进行说明,其中附图也是说明中的一部分,通过显示可以实现本发明的一特定实施例来显示本发明。应该理解的是,在不偏离本发明的范围的情况下,可以应用其它实施例,并且进行结构上的改变。
概述
被称为“T空间”的本发明包括一个使用一个交互元组空间(Tuplespace)模型、用于建立全局可视通信缓冲存储器的网络媒件系统。元组空间模型还在下列文献中有进一步的说明:David Gelernter和Arthur J.Bernstein的“通过全局缓冲存储器的分布式通信”,PODC1982,第10-18页,1982年(下文称之为Gelernter 82);NicholasCarriero和David Gelernter的“前后关系中的琳达”,CACM32(4),第444-458页,1984(下文称之为Carriero84);以及David Gelernter的“琳达的生成通信”,TOPLAS7(1),第80-112页,1985(下文称之为Gelernter85);这里将这些文献都作为参考。
T空间是元组空间模型与一些有效扩展功能的一个超集。本发明用通常在大企业数据库系统中发现的数据库特征来扩展元组空间的幂。并且,本发明还提供动态地下载新功能的能力。这种组合会产生一种结构,该结构立刻提供一个小型数据库、一个可扩展的计算环境、以及一个安全而容易使用的通信层。
元组空间
元组空间是一个全局共享的、联合寻址的存储器空间,该存储器空间被组织成一个元组组群。元组空间的概念最初是作为琳达协调(coordination)语言的一部分由Gelernter在[Gelernter82]和[Gelernter85]中提出的,这两篇在这里都作为参考。一个标准顺序计算语言(例如C或Fortran)和少量元组空间通信基元(primitive)的组合产生一个完全的并行程序设计语言(例如C-琳达或Fortran-琳达)。
元组空间系统的基本元素是一个元组,该元组仅仅是多个给定类型的值或字段的一个向量。使用模板通过匹配技术对元组进行联合寻址。模板(或反元组)与元组相似,但在向量中的一些(零个或多个)字段可能由被称为形式字段的给定类型的保持位(没有值)来代替。如果在模板中的一个形式字段与一个元组字段具有相同的类型,则称其与该元组字段匹配。如果模板字段不是形式的,这两个字段也必然具有相同的值。如果一个模板与一个元组具有相同数目的字段并且每个模板字段与相应的元组字段匹配,则该模板与该元组匹配。
下面的表1显示了一些简单的元组和模板。
表1
简单元组举例
样本元组 | 说明 | 样本与模板匹配吗(浮点,“世界你好”整型) | 样本与模板匹配吗(浮点,串,345.0) |
<2.24,“世界你好”,345> | 带有三个字段的元组:(1)值为2.24的浮点数,(2)值为“世界你好”的串,以及(3)值为345的整型数 | 是 | 否 |
<2,24,“世界你好”,345.0> | 带有三个字段的元组:(1)值为2.24的浮点数,(2)值为“世界你好”的串,以及(3)值为345.0的浮点数 | 否 | 是 |
<> | 带有0字段的元组 | 否 | 否 |
由一个处理来生成一个元组并通过写基元放置在元组空间中。用读和取基元来读取或移去元组,这采用一个模板并返回第一匹配元组。(注意,因为该空间是非结构式的,在多个匹配元组中的选择是任意的且与实施方式有关的。)大多数元组空间实施既提供元组检索基元的闭锁版本又提供元组检索基元的非闭锁版本。例如,闭锁读一直要等到在元组空间中找到一个匹配元组,而如果没有立即找到匹配元组,非闭锁版本则返回一个值“元组未找到”。
元组空间提供一个简单而有效的机构用于中间处理通信和同步,这是并行和分布式编程的关键。一个带有共享数据的处理“产生”一个元组并将其放入元组空间。一个需要数据的处理只需从该空间要求一个元组。虽然不象报文传送系统那么有效,但由于如下原因,元组空间程序一般更容易写和维护:
目的不耦合(全匿名通信):大多数报文传送系统是部分匿名的:报文的接收者不必识别发送者,但发送者总是必须指定接收者。但元组的生成者不需要知道关于该元组将来使用或其目的地的任何信息。
空间不耦合:由于元组是使用一个联合寻址方案来检索的,多个地址-空间-不相交处理以相同的方式访问元组。
时间不耦合:元组具有自己的使用寿命,与产生这些元组的处理或任何可能读这些元组的处理无关。这使得时间-不相交处理可以无间隙地进行通信。
元组空间使用一个以联合寻址为特征的简单数据档案库(repository)来扩展报文传送系统。从概念上来说,元组空间在功能上高于一个纯报文传送系统,但远远低于关系数据库系统,因为大多数实施形式不包括事物处理、持久性或查询工具的任何有效形式。
在过去的十五年中对元组空间系统的研究一直在稳步地进行着,但主要是面向着高性能并行计算市场。近来,对元组空间的兴趣在分布式系统的研究者之间发展着。例如,SUN微系统公司近来已经公开了一个基于元组空间的内部项目,称之为“Java空间”,在1997年Sun微系统公司的JavaSpaceTM说明书修订版0.4中进行了说明,这里将其作为参考。而且,在整个国家的各个大学中的计算机科学系现在也在进行以用JavaTM表示的元组空间为特征的程序设计课题。
一个元组空间系统的基本优点是灵活性。由于缺少一个模式,元组空间并不限制其存储的元组的格式或它们包含的数据的类型。由于对现代分布式系统的需要主要涉及灵活性,因此元组空间是一个显然的选择。
元组空间系统的可量测性是由元组操作的完全匿名所提供的。服务器或客户都不需要保持连接处理的记录。
时间不耦合是由元组空间与数据库相似的特征所提供的,其使用寿命与任何客户处理无关。此外,元组空间的简单性使其能在一个有限环境中运行。最后,元组通信的自定义特性允许很大程度的内部可操作性和可扩展性。
T空间
被称为“T空间”的本发明是一个用JavaTM程序设计语言实现的网络媒件系统,因此它通过平台无关性和一个用于所有数据类型的标准类型表示来自动处理网络的普遍存在。T空间用数据管理功能和下载新语义功能的能力扩展了基本元组空间模型。
T空间的突出特征是:
元组空间算子超集:T空间实现元组空间算子的标准集:读、进(取)和出(写)。另外,它包括取和读的闭锁和非闭锁版本,面向集的算子,例如扫描和消耗扫描。
永久数据档案库:T空间采用与大型关系数据库系统相似的数据库功能来管理其中的数据。以一种事务处理上下文的形式来执行T空间运算,以确保数据的完整性。
数据库索引和查询能力:T空间对数据进行标引以便进行高效的检索。扩展的查询能力为应用程序提供了用详细查询查找数据的工具,同时仍保持一个简单、易使用的界面。
可动态修改的行为:除了内建算子的扩展集,T空间允许动态地定义新算子,将新算子下载到T空间服务器并立即使用。这是与具有有限动态功能(通常以触发器形式)的关系数据库系统所不同的。
访问控制:用户可以通过在元组空间基础上设置用户和小组许可来建立安全策略。
T空间适用于任何具有分布或数据存储要求的应用程序。它可以执行一个关系数据库系统的许多任务,而不必采用过分限制(和基本)类型的系统、严格的模式、笨重的用户界面或严格的运行存储器要求。在某种意义上,它是一个用于每天使用的常见计算机的数据库系统,例如,用于不产生复杂SQL查询、但需要网络可访问的可靠存储的计算机。
图1简要地显示了本发明的最佳实施例的环境,特别地,显示了一个使用网络102将一个或多个T空间客户104和106连到一个T空间服务器108的典型的分布式计算机系统100。一个典型的资源组合可以包括在个人计算机或工作站上实现的客户104和106、以及在个人计算机、工作站、迷你计算机或主机上实现的服务器108。网络102可以包括诸如LAN、WAN、SNA网络和因特网的网络。
根据一个元组空间模型,T空间客户104或106通过元组、即字段的有序向量与T空间服务器108进行通信,其中每个字段描述一种类型和一个值。此外,T空间客户104和106通过T空间服务器108彼此进行通信。
例如,T空间客户104可以发出一个写调用,以便将一个<测试1>元组插入T空间服务器108。<测试1>元组被送到T空间服务器108,存到一个由T空间服务器108管理的T空间数据库110中。然后,T空间客户106发出一个读查询,指定<测试1>作为查询模板。将查询模板送到T空间服务器108,用于查询T空间数据库110。找到<测试1>,将元组的一个复制返回到T空间客户106。
一般使用计算机程序来实现本发明,其中计算机程序由T空间客户104和106和/或T空间服务器108来执行。这些计算机程序使T空间客户104和106和/或T空间服务器108来执行这里所述的所期望的功能。一般地,计算机程序有形地存在于一个设备、载体或介质中或可从其读出,例如存储器、数据存储设备和/或通过数据通信设备与计算机相连的远程设备。因此,本发明可以实现为使用标准程序设计和/或工程技术来生成软件、固件、硬件或其任意组合的方法、装置或制造产品。这里使用的术语“制造产品”(或者为“计算机程序载体”)包括任何提供对在执行相同或相似功能时有用的指令和/或数据的访问的设备、载体或介质。当然,本领域普通技术人员将会理解,在不偏离本发明的范围的情况下对该结构可以作出许多修改。
基本T空间元组命令
基本的T空间元组操作是写、取和读,其中写操作将一个元组变元存储在T空间数据库110中,取操作和读操作都使用一个与T空间数据库110中的元组相匹配的模板变元。取操作移去并返回T空间数据库110中的第一匹配元组,而读操作返回匹配元组的一个复制,而不改变T空间数据库110。如果未找到匹配,则取操作和读操作都返回JavaTM类型的空操作,而不改变T空间数据库110。还提供了这些操作的闭锁版本,例如等待取和等待读,(如果未找到匹配)一直闭锁到由另一个处理写入一个匹配元组。(琳达程序设计者将这些基元的语义识别为out,inp,rdp,in和rd。)
T空间还应用扫描、消耗扫描和计数操作来扩展标准元组空间。扫描和消耗扫描操作分别是读和取的多设置版本,并返回一个与模板变元匹配的“元组的元组”。计数操作只返回匹配元组的一个整数计数值。
T空间客户
图2显示了依据本发明的T空间客户104或106的实现形式。客户104或106包括一个客户库200,该客户库200包括一个元组空间分类,一个用于向T空间服务器108发送命令或请求的通信库202,以及一个处理从T空间服务器108接收的响应的响应处理线程(thread)204。在这个例子中,T空间客户104或106执行两个应用程序线程206和208。应用程序线程206和208控制来自客户库200的元组空间分类的例子,客户库200使用通信库202向T空间服务器108发送请求。应用程序线程206和208共享一个监控保护的输出TCP/IP流,而响应处理线程204处理单个输入的TCP/IP流。
在T空间客户104或106和T空间服务器108之间的所有通信最好都是非闭锁的。以这种方式,在T空间客户104或106的相同JavaTM虚拟机中的多个线程可以共享一个到每个空间服务器108的TCP/IP连接。如果T空间客户104或106中的一个线程发出一个闭锁请求,则在发送请求之后在通信库202中闭锁,当响应到达时由响应处理线程204唤醒。
响应处理线程204使用一个输出请求列表将来自T空间服务器108的响应与来自应用程序线程206或208的请求联系起来,其中每个请求被指定一个唯一的请求识另符。用请求识别符作为一个密钥将回叫对象插入输出请求列表内,其中回叫对象有两种方法:(1)等待响应方法,减少一个信号量,从而闭锁请求应用程序线程206或208,直到响应到达;以及(2)调用方法,增加信号量,从而解开请求应用程序线程206或208。
T空间服务器
图3显示了依据本发明的T空间服务器108的结构,图4是显示依据本发明的由T空间服务器108执行的逻辑的流程图。T空间服务器108包括一个通信层300、顶级命令处理程序302、算子登记处304、处理程序工厂306、处理程序执行层308、数据库API(应用程序程序设计界面)310、以及(实际存储元组空间的)数据库110。
一个命令或请求作为T空间客户104或106的一个方法调用出现。由T空间客户104或106的通信层202将处理该请求所需的所有信息综合进该请求,送到T空间服务器108,然后由T空间服务器108上的通信层300分解开(如步骤400所示)。一般地,该请求包括一个或多个算子和其有关参数(如果有的话)。
T空间服务器108在接收到请求后调度顶级命令处理程序302(如步骤402所示)。顶级命令处理程序302的主要功能是利用算子登记处304为请求中的算子安排合适的处理程序工厂306。
一般将算子组织成族。例如,本发明的一个实施例可以包括一个基本T空间或元组空间算子(例如,写( ),取( ),读( )等等)的族、一个管理算子(例如,新用户( ),改变用户( ),设置口令( ),等等)的族以及一个管理T空间系统本身的算子(例如,新元组空间( ),增加工厂( ),删除工厂( ),增加处理程序( ),删除处理程序( ),等等)的族。通常对于一个特定族有一个处理程序工厂306。
给定一个算子、一个元组、一个T空间客户104或106识别符、以及/或一个T空间客户104或106的访问控制特许指示,处理程序工厂306为该算子产生一个合适的处理程序(如步骤404所示),其中处理程序是算子的一种实现形式(例如,程序代码)。这种结构提供了最大的灵活性,因为处理程序工厂306可以将算子的处理程序的实现形式定制成与算子和/或算子的调用者的身份和/或调用者的访问控制特许一起提供的操作数或参数的类型。
使用算子的参数作为输入,对算子的处理程序进行调度,以便由处理程序执行308执行(如步骤406所示)。处理程序执行,然后可以将其结果返回到顶级命令处理程序302,然后通过通信层300依次将结果返回到T空间客户104或106。
一般地,处理程序通过数据库API层310作用在存储在T空间数据库110中的一个元组空间上。数据库API层310提供处理元组空间所必须的核心数据库功能。由于灵活性和可量测性的原因,在本发明中可以使用不同的数据库API110实现形式。
除了标准算子,例如写( )、读( )和取( ),还有一些算子,包括加处理程序(Add Handler)( )、改变处理程序( )和删除处理程序( ),允许在T空间服务器108中动态地定义新算子或动态地修改现有的算子。当一个T空间客户104或106希望例如通过增加一个新算子或修改一个现有的算子来动态地修改T空间服务器108的功能时,可以使用加处理程序算子来定义该算子并将它的逻辑提供给T空间服务器108。
例如,一个T空间客户104或106向一个包括加处理程序( )算子的T空间服务器108发出一个命令或请求,其中该加处理程序( )算子具有识别新算子和其处理程序的参数。如上所述,T空间服务器108在接收到请求后调度顶级命令处理程序302。顶级命令处理程序302为加处理程序( )算子安排合适的处理程序工厂306。处理程序工厂306然后为加处理程序( )算子安排合适的处理程序,即加处理程序。
使用加处理程序( )算子的参数作为输入,调度加处理程序,以便由处理程序执行308执行。加处理程序在算子登记处304中将新算子登记在合适的或指定的族下,并且将新算子安装在合适的处理程序工厂306中。加处理程序然后将其结果返回到顶级命令处理程序302,然后通过通信层300将结果返回到T空间客户104或106。
最好使用面向对象的设计技术来实现包括处理程序的T空间服务器108的分量,这在E.Gamma,R.Helm,R.Johnson和J.Vlissides的“设计模式:可再应用的面向对象软件的元素”,Addison Wesley,1994(下文称之为(Gamma94))中进行了描述,这里作为参考。
在最佳实施例中,依靠JavaTM程序设计语言或环境来提供一个算子的处理程序的实现形式(例如,程序代码)。由于JavaTM程序设计语言采用了固有的可移植性和平台无关性,这允许算子和处理程序在网络102上的移动和执行。此外,JavaTM是一种解释语言,因此提供了将处理程序下载另一个计算机执行而不必重新编译的能力。这是与其他语言、例如C++所不同的,为了在其他硬件和软件平台上运行,其他语言通常不仅需要重新编译,还常常需要重新写程序代码。
工厂/处理程序方法允许动态地定制T空间。可以增加新命令来增加功能,在不停止系统的情况下可以改变现有的命令实现形式,并且可以为操作数或为发出命令的客户或同时为二者定制命令实现形式。给定一个命令串、一个元组操作数和用于命令发出者的客户识别符,工厂选择一种实现形式(一个处理程序)来执行该命令。
虽然这不是一个普通的使用,但可以开发出复杂的处理程序并将其下载进T空间服务器108中。所有的处理程序必须实现一个标准的处理程序界面,该界面具有一个执行命令的方法,给定顶级命令的元组操作数。处理程序的实现形式还使数据库API310可以达到,允许元组从T空间数据库110移进和移出并在这些元组上执行与数据有关的操作。
使用加工厂(Add Factory)和加处理程序方法可以分别将新工厂和处理程序下载到T空间服务器108。当然,在写新工厂和处理程序时必须特别小心,应该只有指定的入口具有增加新工厂和处理程序的访问控制特许。
结论
这里结束了本发明的最佳实施例的说明。总的来说,本发明包括用于向一个服务器动态地增加功能的方法、装置和制造产品。在服务器从一个联网客户接收第一算子,其中第一算子表示要增加到服务器上的新功能。为第一算子安排一第一处理程序。在服务器中执行第一处理程序,其中第一处理程序登记一个与新功能相联系的第二算子,并为第二算子安装一第二处理程序,以执行新功能。
下面说明实现本发明的一些替换形式。本领域普通技术人员将会认识到,不同的计算机程序设计语言、数据库系统、操作环境和操作系统可以替代这里所描述的那些。本领域普通技术人员将会认识到,本发明可以用于任何类型的计算机系统,不必限制在一种客户一服务器结构上。本领域普通技术人员将会认识到,本发明可以用于许多类型的处理程序实现形式,不必限制在这里所述的例子中。本领域普通技术人员将会认识到,算子和处理程序的替换方法可以替代这里所述的方法,而不偏离本发明的范围。
前述的对本发明的最佳实施例的说明是出于显示和说明的目的。并不包括所有情况或将本发明限制到所公开的部分。根据上述说明可以作出许多修改和变化。本发明的范围并不局限于该详细说明,而是由附带的权利要求所限定。
Claims (15)
1.一种向一个服务器动态地增加功能的方法,包括步骤:
(a)在服务器从一个联网客户接收一第一算子,其中,第一算子表示要增加到服务器的新功能;
(b)为第一算子安排一个第一处理程序;以及
(c)在服务器中执行第一处理程序,其中第一处理程序登记一个与新功能相联系的第二算子,并为第二算子安装一个第二处理程序,以执行新功能。
2.如权利要求1所述的方法,其特征在于,安排第一处理程序的步骤还包括通过使用第一算子搜索一算子登记处来安排第一处理程序的步骤。
3.如权利要求1所述的方法,其特征在于,安排第一处理程序的步骤还包括为第一算子安排一处理程序工厂的步骤。
4.如权利要求3所述的方法,其特征在于,在处理程序工厂中安排第一处理程序的步骤还包括当第一算子被提供给处理程序工厂时从处理程序工厂产生第一处理程序的步骤。
5.如权利要求4所述的方法,其特征在于,从处理程序工厂产生第一处理程序的步骤还包括使用一个或多个从一个包括第一算子、一个元组、一个客户识别符和一个访问控制特许的组群中选出的指标从处理程序工厂选择第一处理程序的一个合适的实现形式的步骤。
6.如权利要求1所述的方法,其特征在于,服务器接受一个或多个算子,并且将算子组织进一个或多个族中。
7.如权利要求6所述的方法,其特征在于,每个算子族具有一个处理程序工厂。
8.如权利要求1所述的方法,其特征在于,每个算子包括零个或多个参数。
9.如权利要求8所述的方法,其特征在于,第二算子包括一个或多个从一个包括第二算子的一个识别和第二算子的一个实现方式的组群中选择出的参数。
10.如权利要求1所述的方法,其特征在于,还包括步骤:
(d)在服务器从一个联网客户接收第二算子,其中第二算子表示要由服务器执行的新功能;
(e)为第二算子安排第二处理程序;以及
(f)在服务器中执行第二处理程序,其中第二处理程序执行新功能。
11.如权利要求10所述的方法,其特征在于,执行第二处理程序的步骤还包括与一个存储在服务器上的数据库进行交互的步骤。
12.如权利要求11所述的方法,其特征在于,数据库是一个元组空间。
13.如权利要求10所述的方法,其特征在于,执行第二处理程序的步骤还包括第二处理程序通过一个数据库应用程序程序设计界面与一个存储在服务器上的数据库进行交互的步骤。
14.一种用于向一个服务器动态地增加功能的用计算机实现的装置,包括:
(a)一个服务器;以及
(b)一个或多个由服务器执行的指令,用于在服务器从一个联网客户接收一第一算子,其中第一算子表示要增加到服务器的新功能;
(c)一个或多个由服务器执行的指令,用于为第一算子安排一第一处理程序;以及
(d)一个或多个由服务器执行的指令,用于在服务器中执行第一处理程序,其中第一处理程序登记一个与新功能相联系的第二算子,并为第二算子安装一个第二处理程序,以执行新功能。
15.一种制造产品,包括一个有形地包含一个或多个指令的载体,当该一个或多个指令由计算机执行时能使计算机执行一种用于向一个服务器动态地增加功能的方法,该方法包括步骤:
(a)在服务器从一个联网客户接收一第一算子,其中,第一算子表示要增加到服务器的新功能;
(b)为第一算子安排一个第一处理程序;以及
(c)在服务器中执行第一处理程序,其中第一处理程序登记一个与新功能相联系的第二算子,并为第二算子安装一个第二处理程序,以执行新功能。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/013768 | 1998-01-27 | ||
US09/013,768 | 1998-01-27 | ||
US09/013,768 US5963947A (en) | 1998-01-27 | 1998-01-27 | Technique of dynamically adding functionality from a client to manipulated data at a server |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1224875A true CN1224875A (zh) | 1999-08-04 |
CN1146820C CN1146820C (zh) | 2004-04-21 |
Family
ID=21761653
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB981262740A Expired - Fee Related CN1146820C (zh) | 1998-01-27 | 1998-12-25 | 数据库管理系统的动态修改 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5963947A (zh) |
EP (1) | EP0932099A3 (zh) |
JP (1) | JPH11272483A (zh) |
CN (1) | CN1146820C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632113A (zh) * | 2020-12-31 | 2021-04-09 | 北京九章云极科技有限公司 | 一种算子管理方法和算子管理系统 |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6598094B1 (en) | 1998-03-20 | 2003-07-22 | Sun Microsystems, Inc. | Method and apparatus for determining status of remote objects in a distributed system |
US6832223B1 (en) | 1996-04-23 | 2004-12-14 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6182083B1 (en) | 1997-11-17 | 2001-01-30 | Sun Microsystems, Inc. | Method and system for multi-entry and multi-template matching in a database |
US6138238A (en) | 1997-12-11 | 2000-10-24 | Sun Microsystems, Inc. | Stack-based access control using code and executor identifiers |
US6560656B1 (en) | 1998-02-26 | 2003-05-06 | Sun Microsystems, Inc. | Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system |
US6487607B1 (en) | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
US6393497B1 (en) | 1998-03-20 | 2002-05-21 | Sun Microsystems, Inc. | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system |
US6438614B2 (en) | 1998-02-26 | 2002-08-20 | Sun Microsystems, Inc. | Polymorphic token based control |
US6578044B1 (en) | 1997-11-17 | 2003-06-10 | Sun Microsystems, Inc. | Method and system for typesafe attribute matching |
US6421704B1 (en) | 1998-03-20 | 2002-07-16 | Sun Microsystems, Inc. | Method, apparatus, and product for leasing of group membership in a distributed system |
US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US6185611B1 (en) | 1998-03-20 | 2001-02-06 | Sun Microsystem, Inc. | Dynamic lookup service in a distributed system |
US5845075A (en) * | 1996-07-01 | 1998-12-01 | Sun Microsystems, Inc. | Method and apparatus for dynamically adding functionality to a set of instructions for processing a Web document based on information contained in the Web document |
US6728737B2 (en) | 1996-10-11 | 2004-04-27 | Sun Microsystems, Inc. | Method and system for leasing storage |
US5832529A (en) | 1996-10-11 | 1998-11-03 | Sun Microsystems, Inc. | Methods, apparatus, and product for distributed garbage collection |
US6237009B1 (en) | 1996-10-11 | 2001-05-22 | Sun Microsystems, Inc. | Lease renewal service |
US6826759B2 (en) * | 1997-04-01 | 2004-11-30 | Sun Microsystems, Inc. | Method and apparatus for discovering and activating software components |
US6604127B2 (en) | 1998-03-20 | 2003-08-05 | Brian T. Murphy | Dynamic lookup service in distributed system |
KR20010034514A (ko) | 1998-02-26 | 2001-04-25 | 케네쓰 올센 | 원격 메소드를 식별하는 해시 판정 방법 및 시스템 |
US20020046228A1 (en) * | 1998-03-20 | 2002-04-18 | Sun Microsystems, Inc. | Method and system for facilitating access to a lookup service |
US6289384B1 (en) * | 1998-06-05 | 2001-09-11 | I2 Technologies, Inc. | System and method for event notification through a firewall |
US6502134B1 (en) * | 1999-05-05 | 2002-12-31 | Nextpage, Inc. | Tuple-based information space for data exchange between applications |
US6553402B1 (en) | 1999-05-05 | 2003-04-22 | Nextpage, Inc. | Method for coordinating activities and sharing information using a data definition language |
US6845393B1 (en) | 1999-06-14 | 2005-01-18 | Sun Microsystems, Inc. | Lookup discovery service in a distributed system having a plurality of lookup services each with associated characteristics and services |
GB2353612B (en) * | 1999-08-24 | 2003-11-12 | Mitel Corp | Processing by use of synchronised tuple spaces and assertions |
US6507865B1 (en) | 1999-08-30 | 2003-01-14 | Zaplet, Inc. | Method and system for group content collaboration |
US6523063B1 (en) | 1999-08-30 | 2003-02-18 | Zaplet, Inc. | Method system and program product for accessing a file using values from a redirect message string for each change of the link identifier |
US6496849B1 (en) | 1999-08-30 | 2002-12-17 | Zaplet, Inc. | Electronic media for communicating information among a group of participants |
US6691153B1 (en) | 1999-08-30 | 2004-02-10 | Zaplet, Inc. | Method and system for process interaction among a group |
US6463461B1 (en) | 1999-08-30 | 2002-10-08 | Zaplet, Inc. | System for communicating information among a group of participants |
US6505233B1 (en) | 1999-08-30 | 2003-01-07 | Zaplet, Inc. | Method for communicating information among a group of participants |
US6457045B1 (en) | 1999-08-30 | 2002-09-24 | Zaplet, Inc. | System and method for group choice making |
US6453337B2 (en) | 1999-10-25 | 2002-09-17 | Zaplet, Inc. | Methods and systems to manage and track the states of electronic media |
US6751619B1 (en) * | 2000-03-15 | 2004-06-15 | Microsoft Corporation | Methods and apparatus for tuple management in data processing system |
US6868447B1 (en) * | 2000-05-09 | 2005-03-15 | Sun Microsystems, Inc. | Mechanism and apparatus for returning results of services in a distributed computing environment |
US6973493B1 (en) * | 2000-05-09 | 2005-12-06 | Sun Microsystems, Inc. | Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment |
US7072967B1 (en) * | 2000-05-09 | 2006-07-04 | Sun Microsystems, Inc. | Efficient construction of message endpoints |
US7130885B2 (en) | 2000-09-05 | 2006-10-31 | Zaplet, Inc. | Methods and apparatus providing electronic messages that are linked and aggregated |
US7353387B2 (en) * | 2001-03-08 | 2008-04-01 | International Business Machines Corporation | Method and system for integrating encryption functionality into a database system |
GB2375264B (en) * | 2001-05-02 | 2004-10-13 | Mitel Knowledge Corp | Remote assembly of messages for distributed applications |
US7660887B2 (en) | 2001-09-07 | 2010-02-09 | Sun Microsystems, Inc. | Systems and methods for providing dynamic quality of service for a distributed system |
US7756969B1 (en) | 2001-09-07 | 2010-07-13 | Oracle America, Inc. | Dynamic provisioning of identification services in a distributed system |
GB0128595D0 (en) | 2001-11-29 | 2002-01-23 | Mitel Knowledge Corp | Automatic location-aware feature selection |
GB2382946A (en) * | 2001-12-06 | 2003-06-11 | Mitel Knowledge Corp | Displaying user availability |
GB0218710D0 (en) | 2002-08-12 | 2002-09-18 | Mitel Knowledge Corp | Personalizable and customizable feature execution for ip telephony using operational semantics and deontic task trees |
JP4490684B2 (ja) * | 2003-12-26 | 2010-06-30 | 株式会社キーエンス | 端末装置、サーバ装置、サーバプログラム |
US7792874B1 (en) | 2004-01-30 | 2010-09-07 | Oracle America, Inc. | Dynamic provisioning for filtering and consolidating events |
JP2008034947A (ja) * | 2006-07-26 | 2008-02-14 | Fujitsu Ltd | 負荷分散型呼処理システム |
ATE555589T1 (de) * | 2008-06-18 | 2012-05-15 | Qualcomm Inc | Benutzeroberflächen für ein in einem verteilten system angeordnetes dienstobjekt |
US8060603B2 (en) | 2008-06-18 | 2011-11-15 | Qualcomm Incorporated | Persistent personal messaging in a distributed system |
US20090319385A1 (en) * | 2008-06-18 | 2009-12-24 | Jackson Bruce Kelly | Monetizing and prioritizing results of a distributed search |
US10785346B1 (en) * | 2019-04-08 | 2020-09-22 | 2236008 Ontario Inc. | Unblocking processes in interprocess messaging passing |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5129086A (en) * | 1988-11-29 | 1992-07-07 | International Business Machines Corporation | System and method for intercommunicating between applications and a database manager |
US5097533A (en) * | 1988-11-29 | 1992-03-17 | International Business Machines Corporation | System and method for interfacing computer application programs written in different languages to a software system |
GB2242293A (en) * | 1990-01-05 | 1991-09-25 | Apple Computer | Apparatus and method for dynamic linking of computer software components |
US5117349A (en) * | 1990-03-27 | 1992-05-26 | Sun Microsystems, Inc. | User extensible, language sensitive database system |
US5201046A (en) * | 1990-06-22 | 1993-04-06 | Xidak, Inc. | Relational database management system and method for storing, retrieving and modifying directed graph data structures |
JP3058672B2 (ja) * | 1990-11-07 | 2000-07-04 | 株式会社日立製作所 | データベース管理システム |
US5566330A (en) * | 1991-08-20 | 1996-10-15 | Powersoft Corporation | Method for forming a reusable and modifiable database interface object |
CA2098461A1 (en) * | 1992-06-17 | 1993-12-18 | Antony S. Williams | Method and system for registering data formats for objects |
US5504885A (en) * | 1993-06-29 | 1996-04-02 | Texas Instruments Incorporated | O-R gateway: a system for connecting object-oriented application programs and relational databases |
US5504886A (en) * | 1993-07-02 | 1996-04-02 | International Business Machines Corporation | System and method for applying user supplied relation definitions to application files for a relational database |
US5706505A (en) * | 1994-08-19 | 1998-01-06 | Microsoft Corporation | Method and system for binding data in a computer system |
US5619685A (en) * | 1994-11-04 | 1997-04-08 | Ball Corporation | Run-time dynamically adaptive computer process for facilitating communication between computer programs |
US5758074A (en) * | 1994-11-04 | 1998-05-26 | International Business Machines Corporation | System for extending the desktop management interface at one node to a network by using pseudo management interface, pseudo component interface and network server interface |
JPH0962526A (ja) * | 1995-08-28 | 1997-03-07 | Fujitsu Ltd | 耐故障型rpcシステムおよび方法 |
US5850517A (en) * | 1995-08-31 | 1998-12-15 | Oracle Corporation | Communication link for client-server having agent which sends plurality of requests independent of client and receives information from the server independent of the server |
US5892946A (en) * | 1995-09-12 | 1999-04-06 | Alcatel Usa, Inc. | System and method for multi-site distributed object management environment |
US5826270A (en) * | 1995-12-28 | 1998-10-20 | Csg Systems, Inc. | Methods and systems for client or customer-site transaction processing in a distributed database system |
US5838972A (en) * | 1996-02-09 | 1998-11-17 | Sun Microsystems, Inc. | Method and apparatus for dynamically loading an input run-time module and an output run-time module |
US5758087A (en) * | 1996-06-14 | 1998-05-26 | International Business Machines Corporation | Apparatus and method for predicted response generation |
US5848246A (en) * | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
-
1998
- 1998-01-27 US US09/013,768 patent/US5963947A/en not_active Expired - Fee Related
- 1998-12-25 CN CNB981262740A patent/CN1146820C/zh not_active Expired - Fee Related
-
1999
- 1999-01-13 JP JP11006142A patent/JPH11272483A/ja active Pending
- 1999-01-22 EP EP99300495A patent/EP0932099A3/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112632113A (zh) * | 2020-12-31 | 2021-04-09 | 北京九章云极科技有限公司 | 一种算子管理方法和算子管理系统 |
Also Published As
Publication number | Publication date |
---|---|
EP0932099A3 (en) | 2006-11-08 |
EP0932099A2 (en) | 1999-07-28 |
CN1146820C (zh) | 2004-04-21 |
US5963947A (en) | 1999-10-05 |
JPH11272483A (ja) | 1999-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1146820C (zh) | 数据库管理系统的动态修改 | |
JP4627777B2 (ja) | データに関数を適用した結果に対する構造化インデックス | |
CA3003756C (en) | Storing and retrieving data of a data cube | |
EP1738290B1 (en) | Partial query caching | |
US7536406B2 (en) | Impact analysis in an object model | |
CN102799644B (zh) | 基于元数据的数据库动态查询系统和数据库动态查询方法 | |
US7480661B2 (en) | Query services for database system | |
US20040186915A1 (en) | Systems and methods for scheduling data flow execution based on an arbitrary graph describing the desired data flow | |
US7577637B2 (en) | Communication optimization for parallel execution of user-defined table functions | |
US20050278152A1 (en) | Systems and methods for distributing a workplan for data flow execution based on an arbitrary graph describing the desired data flow | |
WO2010042238A1 (en) | System and method for data warehousing and analytics on a distributed file system | |
CN102541631B (zh) | 以多线程不同驱动源执行计划处理查询的方法和系统 | |
JP4809652B2 (ja) | .netデータ型およびインスタンスの持続性ストレージ | |
US20070027849A1 (en) | Integrating query-related operators in a programming language | |
US6618720B1 (en) | Common spool files for maintaining join indexes | |
EP1815349A2 (en) | Methods and systems for semantic identification in data systems | |
CN100397397C (zh) | 基于关系数据库的xml数据存储与访问方法 | |
CN1707496A (zh) | 基于活动的知识管理方法及系统 | |
Zhu et al. | Developing a dynamic materialized view index for efficiently discovering usable views for progressive queries | |
CN109857390B (zh) | 一种Git仓库文件注解系统的注解传递方法 | |
Wang et al. | Regular expression matching on billion-nodes graphs | |
Revathi et al. | Auto JSON: An Automatic Transformation Model for Converting Relational Database to Non-relational Documents | |
CN107992566A (zh) | 基于Hibernate的数据映射方法及系统 | |
CN1737751A (zh) | 实现对象持续化服务的系统及其方法 | |
Chung et al. | Access to indexed hierarchical databases using a relational query language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20040421 Termination date: 20100125 |