CN1203430C - 数据管理系统和数据管理方法 - Google Patents
数据管理系统和数据管理方法 Download PDFInfo
- Publication number
- CN1203430C CN1203430C CNB001292854A CN00129285A CN1203430C CN 1203430 C CN1203430 C CN 1203430C CN B001292854 A CNB001292854 A CN B001292854A CN 00129285 A CN00129285 A CN 00129285A CN 1203430 C CN1203430 C CN 1203430C
- Authority
- CN
- China
- Prior art keywords
- data
- module
- application program
- manipulation part
- management system
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- 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/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
-
- 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/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure 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/99941—Database schema or data structure
- Y10S707/99948—Application of database or data structure, e.g. distributed, multimedia, or image
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种数据管理系统,包括:数据存储系统,用于存储将要对其进行操作的、具有不同操作内容的数据;操作单元,用于从所述数据存储系统读取所述应用程序所要求的数据,从所述多个数据操作部分中选择一个应对所述数据执行操作的数据操作部分,以使被读出的所述数据与将由所述应用程序用以执行处理的数据模型相适应,并且将由被选择的数据操作部分操作过的数据提供给应用程序;以及对信息进行相关记录的单元,所述信息用于确定在将所述数据存储系统中所存储的数据提供给所述应用程序时,应该选择哪个数据操作部分以及应该采取什么样的顺序对所述数据进行操作;所述操作单元被配置成根据与被读出的数据相关而被记录的所述信息进行操作。
Description
技术领域
本发明涉及数据管理系统和用于在计算机中提供数据管理和操作功能的数据管理方法。
背景技术
在计算机中被处理的数据通常是被使用文件系统或者数据库管理系统来进行管理的。
这个文件系统通过将名字加到上面来管理称作字节序列的非常基本的数据。文件系统所管理的字节序列数据称作文件。应用程序可以执行基本操作,以将新数据写入到文件中或者从文件中读取已经被写入的数据。
这样,这个文件系统提供了基本的、灵活的称作字节序列的一个数据模型。但是,字节序列是在概念上非常低层的一个数据模型,所以应用程序需要对字节序列定义和使用对这个应用程序唯一的数据管理结构和操作,以使用这个数据模型来解决在计算机中实际遇到的各种问题。因为这个原因,数据独立性低,并且很难在多个应用程序中共享数据。
另一方面,数据库管理系统通过预先假设一个具体的数据模型的使用,提供了对该具体数据模型的具体的、更复杂的功能。最广泛使用的数据库管理系统是基于关系数据模型的关系数据库管理系统。关系数据库管理系统通过将所有数据用表来表示,从而对所有数据进行管理,并且提供通过规定一个关键字搜寻被存储在表中的数据的功能,或者使用称作JOIN的一个操作来在多个表中搜寻相关数据的功能。应用程序使用关系数据库管理系统所提供的各种操作功能来执行处理,如果必要的数据能够以表的形式被定义。也有使用不是关系数据模型的其它数据模型的数据库管理系统,例如网络数据模型和对象数据模型。
在使用数据库管理系统管理数据的情形下,数据管理和操作对应用程序是分开的,并且是在数据库管理系统侧被执行的。即,可以实现数据的独立性,以使通过在多个应用程序之间共享数据而更容易地使用数据。另外,数据库管理系统提供了功能,例如事务处理所需要的一致性管理,在多个应用程序之间共享数据的处理情形中的互斥控制,和在发生故障时的恢复处理。
这样,数据库管理系统通过用高层次概念来规定具体的数据模型,从而提供各种管理和操作功能,以使可以实现高的数据独立性,并且容易在多个应用程序之间共享数据。但是,尽管可以轻易地设计与数据库管理系统所提供的数据模型匹配的一个应用程序并且轻易地实现一个高性能,但是难以设计与这个数据模型不匹配的一个应用程序并且也难以实现高的性能。从数据的灵活性角度来说,与文件系统相比,其可以获得的自由度是有限的,并且对新的数据或者数据模型的管理和操作功能的可扩展性也比较差。
发明内容
所以,本发明的目的是提供数据库管理系统和数据管理方法,它能够改善灵活性,独立性和可扩展性。
根据本发明的一个方面,提供了一种数据管理系统,具有对客户提供数据管理和操作的功能的多个数据操作部分,用于对从数据存储系统输出的数据进行操作,并且将数据提供给应用程序进行处理,其中所述数据管理系统包括:
数据存储系统,用于存储将要对其进行操作的、具有不同操作内容的数据;
操作单元,用于从所述数据存储系统读取所述应用程序所要求的数据,从所述多个数据操作部分中选择一个应对所述数据执行操作的数据操作部分,以使被读出的所述数据与将由所述应用程序用以执行处理的数据模型相适应,并且将由被选择的数据操作部分操作过的数据提供给应用程序;以及
对信息进行相关记录的单元,所述信息用于确定在将所述数据存储系统中所存储的数据提供给所述应用程序时,应该选择哪个数据操作部分以及应该采取什么样的顺序对所述数据进行操作;
所述操作单元被配置成根据与被读出的数据相关而被记录的所述信息进行操作。
根据本发明的另一个方面,提供了一种数据管理方法,具有对客户提供数据管理和操作功能的多个数据操作部分,用于对从数据存储系统输出的数据进行操作,并且将数据提供给应用程序进行处理,其中所述数据管理方法包括以下步骤:
读出步骤,在从所述应用程序接收到对被存储在所述数据存储系统中的所需要的数据执行处理的请求后,从所述数据存储系统中读出所述应用程序所需要的数据;
选择步骤,从具有各不相同的操作内容的数据操作部分中,选择出对在所述读出步骤中读出的数据执行操作的数据操作部分,以使所述数据与将由所述应用程序用以执行处理的数据模型相适应;
操作步骤,由在所述选择步骤中选择的数据操作部分对在所述读出步骤中读出的数据进行操作,并且将所述数据提供给应用程序;以及
记录步骤,对信息进行相关记录的步骤,所述信息用于确定在将所述数据存储系统中所存储的数据提供给所述应用程序时,应该选择哪个数据操作部分,以及应该采取什么样的顺序对所述数据进行操作;
其中所述数据操作部分根据与在所述读出步骤中读出的数据相关而被记录的信息进行操作。
根据本发明的另一个方面,提供了一种计算机可以使用的媒质,这个计算机可以使用媒质中包括用于促使计算机用作数据管理系统的计算机可以读取的程序代码,这个数据管理系统用于对从数据存储系统输出的数据进行操作并且将数据提供给应用程序的处理,这个计算机可以读取的程序代码包括:第一计算机可以读取的程序代码,用于促使所述计算机在从应用程序接收到对被存储在数据存储系统中的一个所需要数据执行处理的一个请求后,从这个数据存储系统中读取出被这个应用程序所请求的数据;第二计算机可以读取的程序代码,用于促使所述计算机从多个预先提供的对数据进行操作的具有不同操作内容的数据操作模块中,选择出那些应对这个数据执行操作以使这个数据与适合于应用程序所需要执行的处理的数据模型相适应的数据操作模块;和第三计算机可以读取的程序代码,用于促使所述计算机使用被选择的数据操作模块对数据进行操作,并且将数据操作模块操作过的这个数据提供给应用程序。
附图说明
从下面结合附图的描述中,可以对本发明的其它特征和优点更清楚。
图1示出了根据本发明数据管理系统所管理的示例性数据结构的示意图。
图2示出了图1中所显示的数据实体和特性之间的示例性关系的示意图。
图3示出了根据本发明的实施方式的数据管理系统的一般示例性结构的框图。
图4示出了根据本发明的实施方式的数据管理系统的更具体示例性结构的框图。
图5示出了在图3和图4的数据管理系统中所使用的数据操作模块管理表的示例图。
图6示出了在图3和图4的数据管理系统中所使用的名字管理表的示例图。
图7示出了在图3和图4的数据管理系统中使用文件系统模块的示例性方法的示意图。
图8示出了描述在图3和图4的数据管理系统中使用文件系统模块的方法的示例性描述的示意图。
图9示出了在图3和图4的数据管理系统中使用XML模块的示例性方法的示意图。
图10示出了描述在图3和图4的数据管理系统中使用XML模块的方法的示例性描述的示意图。
图11示出了在图3和图4的数据管理系统中一个关键字-值模块管理作为XML文档的关键字和值对的示例性管理格式的示意图。
图12示出了在图3和图4的数据管理系统中使用一个关键字-值模块的示例性方法的示意图。
图13示出了描述在图3和图4的数据管理系统中使用一个关键字-值模块的方法的示例性描述的示意图。
图14示出了在图3和图4的数据管理系统中一个关键字-值模块管理特性的一个示例性管理格式的示意图。
图15示出了在图3和图4的数据管理系统中使用一个特性模块的示例性方法的示意图。
图16示出了描述在图3和图4的数据管理系统中使用一个特性模块的方法的示例性描述的示意图。
图17示出了在图3和图4的数据管理系统中一个关键字-值模块管理目录的示例性管理格式的示意图。
图18示出了在图3和图4的数据管理系统中使用目的模块的示例性方法的示意图。
图19示出了描述在图3和图4的数据管理系统中使用目录模块的方法的示例性描述的示意图。
图20示出了在图3和图4的数据管理系统中数据打开处理的示例性流图的示意图。
图21示出了指示可以在图3和图4的数据管理系统中被使用的类别和数据操作模块之间的对应关系的示例性规则的示意图。
图22示出了可以在图3和图4的数据管理系统中被使用的<file/>的示例性规则的示意图。
图23示出了在图3和图4的数据管理系统中数据产生处理的示例性流图的示意图。
图24示出了可以在图3和图4的数据管理系统中被使用的具有上下文的示例性规则的示意图。
图25示出了在图3和图4的数据管理系统中使用具有上下文的规则的示例性方法的示意图。
图26示出了在图3和图4的数据管理系统中规则搜寻的示例性过程的流图。
图27A,27B,和27C示出了可以在图3和图4的数据管理系统中被使用的目录和数据结构,和两个目录的两个规则的示例的示意图。
图28A,28B,28C,28D和28E示出了可以在图3和图4的数据管理系统中被使用的目录和数据结构,和两个目录的两个规则,和两个数据的两个模块结构的另一个示例的示意图。
图29示出了在图3和图4的数据管理系统中使用一个扩展的关键字-值模块的示例性方法的示意图。
图30示出了描述在图3和图4的数据管理系统中使用一个扩展的关键字-值模块的方法的示例性描述的示意图。
具体实施方式
参考图1到图30,下面将详细描述根据本发明的一个数据管理系统的一个实施方式。
在这个实施方式中,将描述通过将特性加到数据管理系统中的数据上来以一个分层名字空间来管理数据的一个示例性情形。
对这样一个数据管理方法,可以使用WebDAV,但是本发明不局限于这个情形。在“分布式授权的HTTP扩展-WebDAV”(RFC 2518)中公开了WebDAV的规范。
在这个实施方式的数据管理系统中,为了通过附加分层名字来管理数据,用目录结构来管理名字的一个分层结构。即,这个目录可以具有任意数目的其它目录和其下一分层结构中的数据。例如,在图1所显示的分层结构示例中,显示了3个数据“data1”,“data2”,“data3”和3个目录“dir1”,“dir2”,“dir3”,其中用类似于“/dir1/dir2/data1”,“/dir1/dir2/data2”,“/dir1/dir3/data3”的名字来管理这3个数据。注意,在WebDAV中,数据和目录被称作资源,并且目录也被称作收集夹。
这个实施方式的数据管理系统所管理的数据可以是如文件系统中的任何形式的二进制数据,如XML文档的结构化数据,和可以通过规定一个关键字值而进行访问的、与数据库类似的数据。除了上面这些,还可以根据各种扩展的数据模型来管理数据。XML的细节被公开在“扩展的标记语言(XML)1.0”(万维网协会)。
如图1所显示的,每一个目录(201)或者数据(202)都有一个特性(203),这个特性是属性名字和属性值对的集合。这个特性被用于记录各种信息,例如其目录,文件产生的日期,访问权限,拥有者,等等。
在这个实施方式的数据管理系统中,目录和特性也被当作数据进行管理。例如,从实现的角度来说,图1示例所显示的数据管理结构可以被看作是图2中所显示的结构,其中作为目录(例如302和304)实体的数据具有表示它们的子目录或者数据(例如303和307)的特性的信息,并且特性数据(例如303和307)具有表示相应目录或者数据(例如304和308)的实体的信息。换句话说,可以说是提供了表示目录的数据模型和表示特性的数据模型。
图3显示了根据这个实施方式的数据管理系统的一般示例性结构。
注意,在这个实施方式中,将描述使用文件系统作为一个数据存储系统的情形。在图3中,文件系统3管理在稳定存储器媒质,例如硬盘31中的文件。这里,稳定存储器装置是例如一个硬盘的一个存储器装置,其中即使关闭了电源,被存储在其中的数据内容也不会消失。
简而言之,在从应用程序2接收到请求后,数据管理系统1执行管理文件系统3的文件操作。例如,对应用程序2提供了对文件系统3中的数据模型转换(从被记录在文件中的二进制格式转换到XML,例如)和某些数据模型中的操作功能。
如图3所显示的,数据管理系统1包括3个类型的构成部件,包括一个资源管理器11,n类数据操作模块管理器12-1到12-n,其中n是比1大或者与1相等的一个整数,并且n类数据操作模块112-i与数据操作模块管理器12-i相应(i=1到n)。
注意,在图3中,在每一个虚线框中所描述的矩形表示功能相同的数据操作模块(这同样适用于下面所描述的图4)。例如,在图3中,与第一数据操作模块管理器12-1相应的、在一个虚线框中被描述的3个矩形均表示功能相同的数据操作模块112-1(这同样适用于其它数据操作模块112-2和112-3)。
这个数据操作模块112-i为其用户(应用程序2或者资源管理器11)提供某些数据管理和操作功能。例如,如下面将要被描述的,提供了用于按照XML文档来管理和操作二进制文件的一个功能或者在XML文档中使用一个关键字和一个值对的一个相关存储器功能。即,数据操作模块的功能是使下一层的数据或者数据模块表现为其它类型的数据或者数据操作模块,并且同时对这个其它类型的数据或者数据模块提供管理和操作功能。
在这个实施方式的数据管理系统1中,一个或者多个数据操作模块112-i的一个集合为应用程序2或者资源管理器11提供了对一个数据进行管理和操作的功能。即,在应用程序2或者资源管理器11通过利用数据管理系统1对文件系统3中的数据,目录和特性执行处理的情形下,根据数据模型、操作内容等等来联合使用一个或者多个数据操作模块112-i,如图3所显示的示例性情形。
注意,在这个实施方式中,根据应用程序2等的请求,利用分层组合的数据操作模块的示例性情形包括了从最底层的数据操作模块到一个分层结构的范围,如图7,9,12,15,18,25和28所显示的。
另外,对每一个操作目的数据,均存在数据操作模块112-i的一个实体。所以,当多个操作实体(应用程序2或者资源管理器11)同时操作时,实际上有同时存在(或者使用)多个功能相同的多个数据操作模块112-i的情形(如图3所显示的示例性情形),仅存在(或者使用)一个数据操作模块112-i的情形,和不存在(或者使用)数据操作模块112-i的情形。
功能相同的数据操作模块112-i由相应的一个数据操作模块管理器12-i所管理。如上面所描述的,每一个数据操作模块管理器12-i所管理的数据操作模块112-i可以是多个,一个或者没有。在图3的示例中,数据操作模块管理器(1)正在管理3个数据操作模块(1),数据操作模块管理器(2)正在管理5个数据操作模块(2),并且数据操作模块管理器(n)正在管理7个数据操作模块(n)。
另外,在这个实施方式中,在数据操作模块管理器12-i和数据操作模块112-i之间的一个关系与在面向对象编程语言中类和实例之间的关系等效。在实际以面向对象的方式实现数据操作模块管理器12-i和数据操作模块112-i的情形下,仅需要对数据操作模块管理器12-i进行编程,并且可以在操作期间根据需要产生或者删除数据操作模块112-i。
资源管理器11的一个功能是用于在从应用程序2接收到一个数据操作请求后,进行一个建立来通过组合所需要的数据操作模块112-i来使能一个所需要的操作。资源管理器11具有用于管理目前在被使用的数据名字和数据操作模块之间的对应关系的一个名字管理表22,和在组合数据操作模块时需要被使用的一个数据操作模块管理表21。
下面,将进一步详细地描述这个数据管理系统。
图4显示了这个数据管理系统的一个更详细的示例性结构。
这个数据管理系统1具有5个类型的数据操作模块管理器,包括一个文件系统模块管理器12,一个XML模块管理器13,一个关键字-值模块管理器14,一个目录模块管理器15和一个特性模块管理器16。另外,与它们对应的是,将根据需要使用5类数据操作模块112-116。注意,图4中所显示的数据操作模块的存在状态(使用状态)仅表示某一个时刻时的一个示例,并且将被数据操作主体根据数据操作状态而进行改变。另外,在图4中,为了简单,部分地省略了用于相应模块的标号112-114。
图5显示了资源管理器11中数据操作模块管理表21的一个示例性结构。
数据操作模块管理表21记录了在每一个数据操作模块的一个名字和指向管理这个数据操作模块的数据操作模块管理器的一个指针之间的对应关系。
在图5的这个示例中,用XML部件,例如<Propm/>和<xmlm/>来规定数据操作模块的名字。这些数据操作模块的名字将在描述访问相应数据所需要的数据操作模块的“组合方法”中被使用。
图6显示了资源管理器11中名字管理表22的一个示例性结构。
名字管理表22记录了每一个目前被使用的目录或者数据的一个名字,指向关于其特性的一个特性模块的一个指针,和在目录的情形下指向关于其目录的一个目录模块的一个指针之间的对应关系。注意,如下面将要描述的,特性模块116是表示这个特性的一个数据操作模块,目录模块115是表示这个目录的一个数据操作模块。
在图6的这个示例中,名字如“/dir1”,“/dir1/dir2/data1”,等等。另外,在图6中,指向特性模块的指针的列和指向目录模块的指针的列是空的,但是,在实践中将输入合适的指向特性模块的指针和指向目录模块的指针。
下面,将描述图4的示例性结构中的数据操作模块的功能。
第一个数据操作模块是文件系统模块。
文件系统模块112是一个数据操作模块,其作用是具有对在数据管理系统1下面所提供的文件系统3进行抽象化。其主要功能是对被记录在文件系统3中的二进制数据提供写入/读取功能。
文件系统模块112对二进制数据所提供的操作示例包括在下面:
(1)读取:从一个规定的偏移位置开始读取一个规定长度的数据。
(2)写入:从一个规定的偏移位置开始写入一个规定长度的数据。
在使用文件系统模块112访问二进制数据的情形下,通常仅使用文件系统模块112,如图7所显示的。在这个示例中,被记录在低层文件系统3中的、名字为“f2468”的一个文件的内容被高层应用程序2显示为二进制数据。
在如图7访问二进制数据的情形下,将例如如图8所显示的,描述“数据操作模块的组合方法”。这里,表示文件系统模块的一个部件<fsm>后面是在低层文件系统3中具有管理信息的一个部件<file>,然后是表示实际的管理名字的<name>f2468</name>。
通过在相应数据的特性或者目录的实体中描述它,资源管理器11管理“数据操作模块的组合方法”。
第二个数据操作模块是XML模块。
XML模块113以一个内部表示形式将关于XML文档的一个树形结构数据存储在在XML模块113下面被提供的文件系统模块112所提供的二进制数据上,并且使能对这个树形结构数据的操作,例如读取这个树形结构中的一个文档,并且添加/删除树中的一部分。
在这点上,就有可能使用在“文档对象目录(DOM)层1规范”(万维网协会)中所公开的一个DOM接口,例如,来作为用于操作这个XML文档的树形结构数据的一个接口。如果需要,也可以使用其它原接口。
XML模块113提供的对XML文档执行的操作示例包括在下面:
(1)CHILD:提取第一个子元素或者文本。
(2)NEXT:提取具有相同父亲的下一个元素或者文本。
(3)PREV:提取具有相同父亲的前一个元素或者文本。
(4)PARENT:提取一个父亲元素。
(5)REMOVE:删除一个规定的元素或者文本。
(6)ADDFIRST:将一个新元素或者文本作为第一个儿子来添加。
(7)ADDLAST:将一个新元素或者文本作为最后一个儿子来添加。
在使用XML模块113来访问XML文档数据的情形下,通常XML文档113和文件系统模块112被组合使用,如图9所显示的。
在这点上,将例如如图10所显示的,描述“数据操作模块的组合方法”。这里,表示XML模块的一个部件<xmlm>后面是在这个XML模块下面被提供的文件系统模块的信息。
第三个数据操作模块是关键字-值模块。
关键字-值模块114是用于存储多个一个关键字和一个值对的一个数据操作模块,并且通过规定对被存储的一个关键字和一个值对集合的一个关键字的相关访问。在这个实施方式中,关键字模块114以XML文档的形式存储一个关键字和一个值对集合。所以,关键字-值模块114提供关于XML文档113所提供的XML文档的相关存储器功能。
关键字-值模块114所提供的操作示例包括在下面:
(1)FIND:提取一个规定关键字的一个值。
(2)ADD:登记一具体的关键字和值对。
(3)REMOVE:删除与这个关键字相关的一个规定关键字和一个值的对。
关键字-值模块114以图11所显示的一个格式管理作为XML文档的一个关键字和一个值对集合。在图11中,每一个<entry>部件具有一个关键字,并且每一个<value>部件具有一个值。这个示例记录了其中一个关键字“OSAKA”具有一个值“TAKOYAKI”,和一个关键字“HAKATA”具有一个值“KARASHIMENTAIKO”的一个状态。
在图11的示例中,通过串行安排它们来管理一个关键字和一个值对,但是也可能使用一个实现方式来使能通过使用众所周知的数据结构,例如二进制树或者B-TREE的快速搜寻。本发明的特征之一是可以改变关键字-值模块114的一个内部实现方式而不会影响其它数据操作模块和使用关键字-值模块114的应用程序2。
在使用关键字-值模块114来访问数据的情形下,通常组合使用XML模块113,关键字-值模块114,和文件系统模块112,如图12所显示的。
在这点上,将例如如图13所显示的,描述“数据操作模块的组合方法”。这里,表示关键字-值模块的一个部件<kvm>后面是在这个关键字-值模块下面被提供的XML模块的信息,然后是在这个XML模块下面被提供的文件系统模块的信息。
第四个数据操作模块是特性模块。
特性模块116被数据管理系统1(资源管理器11)使用来进行内部管理。在这个实施方式中,数据管理系统1管理关于被关键字-值模块114所提供的相关存储器功能的一个属性名字和一个属性值对集合。
特性模块116将提供的特性操作示例包括在下面。
(1)FINDPROP:搜寻一个规定属性名字的一个值。
(2)ADDPROP:增加一规定的属性名字和一个属性值对。
(3)REMPROP:删除一规定的属性名字和一个属性值对。
图14显示了在特性模块116通过使用关键字-值模块114作为一个XML文档的特性的一个属性名字和一个属性值对的情形下,一个XML文档的一个示例。图14是数据“data1”的特性的一个示例。
在图14中,每一个<key>部件指示特性的一个属性名字,每一个<value>部件指示特性的一个属性值。这里,有3个属性,包括表示数据的产生日期和时间的“creationdate”,表示数据的一个拥有者的“owner”,和用于描述在访问这个数据的实体中所需要的数据操作模块的组合方法。这个相应的<value>部件表示它们的属性值。
这里,“模块”属性具有用于将数据的属性连接到这个实施方式中数据管理系统1的数据的实体。如下面将要描述的,在应用程序2通过打开它来访问具有这个特性的数据实体的情形下,资源管理器11根据写入这个“模块”属性中的信息来选择和组合所需要的数据操作模块。
在通过使用特性模块116来访问数据的情形下,通常特性模块116,关键字-值模块114,XML模块113和文件系统模块112被组合使用,如图15所显示的。
在这点上,将例如如图16所显示的,描述“数据操作模块的组合方法”。这里,表示特性模块的一个部件<propm>后面是在这个特性模块后提供的关键字-值模块的信息,然后是在这个关键字-值模块下面被提供的XML模块的信息,然后是在这个XML模块下面被提供的文件系统模块的信息。
第五个数据操作模块是目录模块。
目录模块115被数据管理系统1(资源管理器11)用于进行内部管理,与特性模块116类似。数据管理系统1以在已经存在这个目录下面的一个目录名字或者一个数据名字所给出的一个关键字和关于在访问其特性中所需要的数据操作模块的组合方法的信息所给出的一个值之间的对应关系来管理目录。在这个实施方式中,在关键字-值模块114所提供的相关存储器功能上管理对应关系。
目录模块15所提供的对目录的操作示例包括在下面。
(1)LOOKUP:搜寻一个规定名字的一个数据的一个特性数据。
(2)MKDIR:将一个新目录作为一个儿子添加。
(3)MKDATA:将一个新数据作为一个儿子添加。
(4)RMDIR:删除一个目录。
(5)RMDATA:删除一个数据。
图17显示在其中目录模块115提供使用关键字-值模块114,管理作为一个XML文档的、已经存在于目录下面的一个目录名字或者数据名字对和关于在访问其特性所需要的数据操作模块的组合方法的信息的情形下,一个XML文档的一个示例。图17示出了在图1中的目录“dir2”的实体的一个示例。在图17中,每一个<key>部件表示是一个儿子的一个目录或者一个数据的名字,每一个<value>部件表示关于在访问其它特性中所需要的数据操作模块组合方法的信息。这里,两个数据“data1”和“data2”被作为儿子而管理。
在应用程序2请求对数据“data1”进行访问的一个情形下,资源管理器11首先从图17所显示的目录“dir2”的实体中搜寻具有“data1”作为<key>的表目的<value>,并且根据在<value>中所写入的描述来选择和组合访问“data1”的特性数据所需要的数据操作模块。结果,就产生了如图14所显示的管理信息的特性模块116,以使这被记录在相同的名字管理表22中,而从特性数据中提取“模块”的属性值,并且使用被提取的“模块”属性值来选择和组合在访问与“data1”实体相应的XML文档数据中所需要的数据操作模块。然后,作为这个结果而被产生的XML模块113的一个指针被给到应用程序2。
在使用目录模块115访问数据的情形下,通常目录模块115,关键字-值模块114,XML模块113和文件系统模块112是组合地被使用的,如图18所显示的。
在这点上,将如图19所显示的,描述″组合数据操作模块的一个方法″,例如。这里,表示目录模块的一个部件<dirm>后面是在这个目录模块后提供的关键字-值模块的信息,然后是在这个关键字-值模块下面被提供的XML模块的信息,然后是在这个XML模块下面被提供的文件系统模块的信息。
如上面已经描述的,资源管理器11选择和组合在访问被记录在特性数据或者目录中的描述所规定的数据时所需要的数据操作模块。现在,就针对图20的一个示例性情形来描述这个操作。这里,将使用图1和图14所显示的具体示例。
图20显示了在应用程序2命令数据管理系统1中的资源管理器11打开数据“/dir1/dir2/data1”的情形下,数据管理系统1的内部操作。在下面,将使用图20所示的号码来描述处理流图。
(1)应用程序2命令数据管理系统1打开数据“/dir1/dir2/data1”。这个命令被资源管理器11所接收。
这里,假定“/dir1/dir2/data1”的特性已经被资源管理器11所登记,被在名字管理表22中进行管理并且处于一个可以被访问的状态。如果还不可以访问“/dir1/dir2/data1”特性,就通过使用在目录“dir2”中的信息来组合必要的数据操作模块,将其设置成可以访问的状态,并且登记在名字管理表22中。
在接收到这个命令后,资源管理器11从“data1”特性中提取“模块”属性的值。这里,如图14所显示的,这个值被按照如下的方式给出。
<xmlm>
<fsm>
<file>
<name>f3617</name>
</file>
</fsm>
</xmlm>
(2)下面,资源管理器11通过参考数据操作模块管理表21来检查与<xmlm>相应的数据操作模块管理器。在这个情形下,XML模块管理器13被选择为相应的一个管理器。然后,用一个OPEN打开命令来命令XML模块管理器13来使用下面的信息产生一个XML模块113。
<fsm>
<file>
<name>f3617</name>
</file>
</fsm>
(3)被使用OPEN命令命令产生一个新XML模块113的XML模块管理器13首先通过使用OPEN_MODULE来向资源管理器11请求产生在访问其自己需要使用的二进制数据中所需要的数据操作模块。在这点上,也给出了关于将要被产生的数据操作模块的下述信息。
<fsm>
<file>
<name>f3617</name>
</file>
</fsm>
(4)资源管理器11使用数据操作模块管理表21,检查与在OPEN_MODULE的参数中最上面元素的<fsm>相应的数据操作模块管理器。这里,是文件系统模块管理器12,所以选择了文件系统模块管理器12。然后,用一个OPEN打开命令来命令文件系统模块管理器12使用下面的信息来产生一个文件系统模块112。
<file>
<name>f3617</name>
</file>
(5)文件系统模块管理器12从与被OPEN参数所给出的文件相关的信息中确定文件名字是f3617,并且命令文件系统3打开这个文件。
(6)文件系统3打开这个文件,并且将其文件句柄返回给是一个呼叫源的一个文件系统模块管理器12。
(7)文件系统模块管理器12产生使用文件系统3中文件f3617的句柄的一个文件系统模块112。这里,被产生的文件系统模块将被称作“α”。
(8)文件系统模块管理器12将被产生的文件系统模块α的文件句柄返回给是一个呼叫源的资源管理器11。
(9)资源管理器11将文件系统模块α的文件句柄返回给是OPEN_MODULE的一个呼叫源的XML模块管理器13。
(10)XML模块管理器13产生XML模块113,以在被文件系统模块α所管理的二进制数据上实现XML文档的结构。这里,所产生的XML模块被称作“β”。
(11)XML模块管理器13将XML模块β的句柄返回给是OPEN的一个呼叫源的资源管理器11。
(12)资源管理器11将XML模块β的句柄返回给是OPEN的一个呼叫源的应用程序2。
(13)以后,应用程序2执行处理,而向XML模块β命令对XML文档进行的操作。
现在,到这点为止,已经描述了用于访问一给定数据所需要的数据操作模块的组合方法被写入到特性或者目录中的情形下的操作。但是,在开始产生数据情形下,以某种方法决定组合数据操作模块的方法是必要的。
在下面,将作为在这样一个情形下将要被执行的一个示例性过程,来描述从通过使用规则将被产生的一个数据类别中决定必要的数据操作模块组合的一个方法。
这里,数据类别是表示一个数据类型的名字,并且在这个实施方式中,假定可以获得下面的类别名字。
<property/>:特性的一个类别名字
<directory/>:目录的一个类别名字
<association/>:相关存储的一个类别名字
<document/>:XML文档的一个类别名字
<binary/>:二进制数据的一个类别名字
<file/>:文件的一个类别名字
作为一个规则来管理在类别和实际对这个类别的数据进行操作的数据操作模块之间的一个对应关系。图21显示了这样一个规则的一个示例。如图21所显示的,这个规则描述了哪一个类别的数据可以被哪一个数据操作模块来实现。从<rule>开始的这个规则包括了从<category>开始的一个类别描述部分和从<expand>开始的一个数据操作模块描述部分。
例如,在图21所显示的示例中,第一规则规定为了对特性类别<property/>的数据进行操作就应使用<propm/>所指示的特性模块(116)。类似地,为了对目录类别<directory/>的数据进行操作就应使用<dirm/>所指示的目录模块(115),为了对XML文档类别<document/>的数据进行操作就应使用<xmlm/>所指示的XML模块(113),等等。使用这个方法,对每一个类别管理了至少一个规则。
通过使用用于根据这些规则决定类别和数据操作模块之间对应关系的一个方法,就可以通过改变规则来改变将被使用的数据操作模块,即使在产生相同类别的数据的情形下。
注意,用于<file/>类别的规则被用于描述与文件系统3相关的参数。在图21的示例中,与<file/>类别相应的规则的数据操作模块描述部分仅描述了<file/>,所以在这个情形下没有提供任何特殊的信息。
另外,当文件系统3具有多个分区时,例如,有可能在<file/>的下面提供与图22所显示的<file/>类别相应的一个部件<partition/>,以使如果其值为“1”,就在第一分区中产生一个文件。如果当文件系统模块112在试图产生<file/>类别的数据,即一个文件时遇到了这个规则,就在第一分区中产生这个文件。如果没有这个规则,文件系统3就在一个缺省的分区中产生这个文件。
下面,参考图23,将描述用于在这个实施方式的数据管理系统中产生一个新数据的一个过程。这里,假定预先给出了如图21所显示的规则。后面将描述如何实际地给出这些规则。
图23显示了在应用程序2通过一个CREATE命令来命令数据管理系统1产生其名字为“/dir1/dir3/data3”的XML文档类型的数据。在下面,将使用图23的号码来描述这个过程的流图。
(1)应用程序2通过一个CREATE命令来命令数据管理系统1产生其名字为“/dir1/dir3/data3”的<document/>类型的数据。这个命令被资源管理器11所接收。
这里,假定“/dir1/dir3/data3”的特性已经被资源管理器11所登记,被在名字管理表22中进行管理并且处于一个可以被访问的状态。如果还不可以访问“/dir1/dir3/data3”特性,就通过使用在目录“dir3”中的信息来组合必要的数据操作模块,将其设置成可以访问的状态,并且登记在名字管理表22中。
(2)在接收到这个命令后,资源管理器11从类别名字<document/>搜寻出一个规则,并且确定这可以被XML模块所实现。所以,资源管理器11通过一个CREATE命令来命令XML模块管理器13新产生一个数据实体。
(3)XML模块管理器13需要二进制数据以给自己使用,所以XML模块管理器13通过使用一个CREATE_MODULE命令来向资源管理器11请求产生<binary/>类别的数据。
(4)资源管理器11搜寻与<binary/>类别相应的一个规则,并且确定这可以被文件系统模块所实现。所以,资源管理器11通过一个CREATE命令来命令文件系统模块管理器12新产生一个数据实体。
(5)为了向文件系统3请求产生用于自己使用的一个文件,文件系统模块管理器12需要相关的信息,所以文件系统模块管理器12通过一个CREATE_MODULE命令来请求资源管理器11搜寻与<file/>类别数据相关的信息。
(6)资源管理器11搜寻与<file/>类别相应的一个规则,并且向是一个呼叫源的文件系统模块管理器12返回其<expand/>部分的一个值(这里是<file/>)。这里,在<file/>类别情形的操作与上面所描述的、在<document/>类别或者<binary/>类别情形下的操作是不同的。
(7)文件系统模块管理器12通过使用从资源管理器11所接收的信息,命令文件系统3产生一个新文件。
(8)文件系统3产生一个新文件,并且向文件系统模块管理器12返回关于其名字等等的信息。
(9)文件系统模块管理器12返回一个新产生文件的、在后面打开这个数据时所需要的信息。
(10)资源管理器11向从文件系统模块管理器12返回的信息中加入一个部件<fsm/>,这个部件<fsm/>用于标识是用于处理从文件系统模块管理器12返回的信息的数据操作模块的文件系统模块,并且向发送CREATE_MODULE命令的XML模块管理器13返回所产生的信息。
(11)XML模块管理器13从资源管理器11接收在访问其自己所使用的二进制数据时所需要的数据操作模块的描述,并且将它作为一个产生CREATE的结果而返回。
(12)资源管理器11向从XML模块管理器13返回的信息中加入一个部件<xmlm/>,这个部件<xmlm/>用于标识是用于处理从XML模块管理器13返回的信息的数据操作模块的XML模块。这描述了在访问一个数据“/dir1/dir3/data3”实体时所需要的数据操作模块组合的一个方法,所以这被作为特性的一个“模块”属性值被记录。这完成了处理,所以操作返回到应用程序2。
通过到这点的过程,关于在访问将被新产生的数据时所需要的数据操作模块组合的一个方法的信息被记录在特性中。但是,在这个阶段还不能够实际访问数据,所以在实际访问数据以前,通常执行上面所描述的对数据的打开处理。
注意,上面的描述是针对一个示例情形,其中通过数据管理系统1所提供的CREATE操作来决定在访问数据时所需要的数据操作模块组合的一个方法,和根据所决定的结果,通过使用数据管理系统1所提供的OPEN操作实际组合数据操作模块来将数据设置在可以访问的状态,但是当然也可以轻易地同时处理CREATE操作和OPEN操作。
现在,就可以描述用于从数据类别中搜寻数据操作模块的规则的上下文。如图24所显示的一个示例。
在图24中,被<context/>所包括的一个部分是上下文。在这个上下文中,可以规定通过使用逻辑运算符,例如<and/>,<or/>,和<not/>来组合类别名字例如<document/>和数据操作模块名字例如<xmlm/>而获得的一个逻辑表达式。
具有这个上下文的规则指出,不仅是在类别是相同的情形下将使用<expand>部分中的数据操作模块,而且在与这个类别相应的数据操作模块将被使用的一个位置(例如,在分层结构中,数据操作模块组合的一个位置或者顺序)是上下文中所规定的一个正确位置的情形下,也将使用<expand>部分中的数据操作模块。例如,图24所显示的这个示例表示,仅在类别是<document/>时并且<dtdm/>所表示的数据操作模块不存在于高层时才使用<dtdm/>所表示的数据操作模块。
这里,<dtdm/>所表示的数据操作模块是一个DTD模块117,DTD模块117是用于监视DTD(一个XML文档的一个结构定义)所给出的一个结构是否满足XML文档的一个数据操作模块。<dtdm/>所使用的底层模块是可以对XML文档类别的数据进行操作的模块,并且<dtdm/>本身的行为也表现为当从用户看时,它是对XML文档类别的数据进行操作的数据操作模块。
当图24的规则被与图21的规则进行组合,以使以这个顺序搜寻规则时,如图25所显示的,将以这样的方法来组合数据操作模块,以使在访问XML文档类别数据的情形下,XML模块113被放置在文件系统模块112的上面,并且DTD模块117被放置在它的上面。
注意,在使用DTD模块117的情形下,将提供一个DTD模块管理器。
到这点的描述假定,预先给出了从数据类别中搜寻数据操作模块的规则。实际上,通过将这些规则叠加在目录特性或者数据特性中,并且通过如图26所显示的一个过程来搜寻与给定类别和上下文相匹配的一个规则,就可以很灵活地应用这些规则。
即,在产生某些数据实体时,就从这个数据到根(步骤S11,S13)来依次(根据按照数据分层结构而定义的优先级)跟踪其目录(数据的分层结构),并且使用在跟踪过程中首先发现的、满足类别和上下文条件的一个规则(用于选择数据操作模块的一个选择方法)来决定数据操作模块(步骤S12,S14)。
使用这个方法,在例如如图27A所显示的,在“dir1”的下面存在“dir2”和“dir3”的情形下,如果用于在一个分区号No.0中产生一个文件的<file/>的一个规则被提供给如图27B所显示的“dir1”,并且用于在一个分区号No.1中产生一个文件的<file/>的一个规则被提供给如图27C所显示的“dir2”,就可能实现一个控制,以使可以通过缺省设置在分区号No.1中产生将在“dir2”下面被产生的一个文件,而任何其它将被产生的文件将通过缺省设置在分区号No.0中被产生。
这也可以类似地用于其它类别的数据,以实现这样一个控制,以使根据目录,即使对相同的XML文档也可以使用不同的数据操作模块。
例如,如图28A所显示的,在目录“dir2”下面存在一个名字为“data1”的一个数据,而在目录“dir3”下面存在一个名字为“data2”的一个数据。在这个情形下,就为“dir1”提供如图28B所显示的一个规则,而为“dir2”提供如图28C所显示的一个规则。这里,<xmls/>是一个连续的XML模块的一个名字,而<xmlr/>是一个随机的XML模块的名字。
连续的XML模块和随机的XML模块均是用于在文件系统模块所提供的二进制数据上,以一个扩展的形式存储XML文档的一个树形结构数据的一个数据操作模块,并且是用于提供对树形结构数据进行操作的一个数据操作模块。这些数据操作模块对使用它们的应用程序或者类似的所提供的操作功能与XML模块所相同的。但是,连续的XML模块使用一个内部数据结构,通过这个内部数据结构,对XML文档的连续访问变得更快了,而随机XML模块使用一个数据结构,通过这个数据结构,对XML文档的随机访问得更快了。
通过提供如图28B和图28C所显示的规则,
可以实现这样一个规则,以使在“dir2”下面产生一个XML文档的情形下,可以使用一个随机XML模块,而在“dir1″下面产生一个XML文档的情形下,可以使用一个连续XML模块(包括在“dir3″下面产生一个XML文档的情形,但是不包括在“dir2″下面产生一个XML文档的情形)。
在这个示例中,假定“data1”和“data2”均是作为XML文档而被产生的数据。然后,在“dir2”下面的“data1”的模块分层结构就变成如图28D所显示的,例如,而在“dir3”下面的“data2”的模块分层结构就变成如图28E所显示的,例如。
如这个示例中所类似的,就可以对相同的分层结构提供两个或者多个不同的数据操作模块(如上面的示例,连续XML模块1132和随机XML模块1131),从其中可以选择将被使用的一个数据操作模块。可以这样设置一个选择规则,以使对不同的目录选择不同的数据操作模块,或者替代地,对规则中<context/>部分的不同条件选择不同的数据操作模块。
注意,最好能提供一个能够满足根目录下所有类别的一个缺省规则,因为如果没有提供这样一个规则,就有可能就找不到必要的数据操作模块。
在到现在为止所描述的示例中,在访问数据时所需要的数据操作模块的组合方法是数据操作模块的一个简单堆叠。但是,在这个实施方式的数据管理系统中,也可以使用被设计成与其它数据操作模块组合使用的一个数据操作模块。
图29显示了这样一个数据操作模块的一个示例。
这里,作为一个示例显示了,作为<association/>类别的数据操作模块,可以替代关键字-值模块而被使用的一个扩展关键字-值模块。与关键字-值模块类似的是,扩展的关键字-值模块118也具有作为XML文档的、一个关键字与一个值之间的对应关系,与关键字-值模块不同的是,它还具有一个二进制数据形式的索引,以使使用这个索引可以使用实现快速的搜寻。
对于这样一个扩展的关键字-值模块118,将以如图30所显示的形式描述数据操作模块的一个组合方法。这里,<kva/>是一个表示这个扩展关键字-值模块118的名字。在上面所描述的示例中,将要被这个数据操作模块所使用的下一层数据操作模块的一个描述被放置在这个数据操作模块的名字的下面,但是,这里,提供了<kva/>专用的<kvainfo/>信息。在<kvainfo/>中,有两个部件<data/>和<index/>,其中<data/>记录了用于访问其中记录了一个关键字和一个值的XML文档时所需要的数据操作模块的一个组合方法,而<index/>记录了用于访问其中记录了索引的二进制数据时所需要的数据操作模块的一个组合方法
注意,在使用扩展关键字-值模块118的情形下,将提供一个扩展的关键字-值模块。
另外,上面已经描述了使用一般文件系统作为一个数据存储系统的情形,但是也可以将本发明用于以其它数据模型例如XML数据进行数据输出的一个数据存储系统。在使用XML数据作为将要被这个数据存储系统所处理的数据模型的情形下,例如,在图4的结构中,可以省略文件系统模块和XML模块的这样一个分层结构,而可以根据需要提供将将要被数据存储系统所处理的XML数据用于这个数据管理系统的新XML模块。
另外,在上面,在数据管理系统1中规定了应选择的数据操作模块和它们的使用顺序,但是应用程序2也可能规定数据操作模块的一个组合方法,并且可以将这两个方法一起使用。
在应用程序2规定数据操作模块的一个组合方法的情形下,就可以使用这样一个方法,其中数据管理系统1将关于规定应选择的数据操作模块和将它们应用到数据的顺序的信息(例如,图14的信息)告知给应用程序2,并且应用程序2根据这个信息将数据操作模块的一个组合方法告知给数据管理系统1。
替代地,也可以使用这样一个方法,其中应用程序2通过其独立的操作,请求关于规定应选择的数据操作模块和将它们应用到数据的顺序的信息(例如,图14的信息),并且应用程序2根据这个信息将数据操作模块的一个组合方法告知给数据管理系统1。
例如,在图20所显示的示例中,当在(1)中,应用程序2命令数据管理系统1打开“/dir1/dir2/data1”,而不是使用形式为OPEN(/dir1/dir2/data1)的一个命令时,就将使用下面的形式的一个命令来进行命令。
Open(<xmlm>
<fsm>
<file>
<name>f3617</name>
</file>
</fsm>
</xmlm>)
如所描述的,根据本发明,为了对数据进行操作,提供了具有不同操作功能的多个数据操作模块,并且当从应用程序接收到了关于对一个所需要的数据进行处理的一个请求时,通过选择应对这个数据执行操作的数据操作模块来对这个数据进行操作,以使这个数据将顺从适合于应用程序所需要执行的处理的数据模型(可以被应用程序所理解的一个数据结构,附着了可以被应用程序所使用的功能的数据,等等),所以可以提供一个数据管理系统和一个数据管理方法,这个数据管理方法能够同时改善灵活性,独立性和可扩展性。
根据本发明,通过在例如由文件系统所提供的二进制数据上,组合对某些数据存储系统(用于输出二进制数据的一般文件系统,例如输出与从硬盘中读取的数据完全相同的一个系统,具有用于在将二进制数据转换为XML数据例如后输出数据的一个特殊文件系统,等等)所提供的某些数据模型必要的数据操作模块,就可以获得使用任意数据模型(例如,在数据存储系统是文件系统的情形下,例如XML文档或者相关的存储器)的数据管理和操作,所以可以提供灵活的数据管理功能。
另外,根据本发明,应用程序和数据操作模块是分开的,所以有一个优点是,不需要在应用程序中描述数据操作所需要的处理,这与使用传统的文件系统的情形不同。因为这个原因,即使在多个应用程序共享数据的情形下,也可以轻易地实现数据共享,因为数据操作模块提供了数据操作所需要的处理。另外,可以扩展功能或者交换数据操作模块,而不会对应用程序进行任何的改变。换句话说,实现了一个高度的数据独立性。
另外,根据本发明,可以提供改善扩展性的数据管理功能,这使添加具有一个新功能的数据操作模块,对已有数据操作模块的功能进行升级可以与应用程序无关,并且即使在处理相同类别数据的数据操作模块中,用于提供具有各种特性的数据操作模块而添加一些变化也是可能的。
应注意,使用根据本规范的教义而被编程的一个传统的通用数字计算机就可以方便地实现根据本发明的上述实施方式,这对计算机领域内的技术人员是很明显的。根据本发明的教义,有经验的编程人员可以很轻易地编写合适的软件代码,这对软件领域内的技术人员是很明显的。
特别地,可以用一个软件包的形式方便地实现上面描述的实施方式的数据管理相同。
这样一个软件包可以是采用了包括被存储计算机代码的一个存储媒质的一个计算机程序产品,这个被存储计算机代码被用于对一个计算机进行编程以使这个计算机执行本发明所公开的功能和处理。这个存储媒质可以包括,但是不局限于,任何类型的传统软盘,光盘,CD-ROM,磁光盘,ROM,RAM,EPROM,EEPROM,磁或者光卡,或者任何其它用于存储电子指令的媒质。
应注意到,除了上面已经描述了,可以对上面的实施方式进行许多修改和变化,而不会偏离本发明的新的和有利的特征。所以,所有这样的修改和变化均被认为是包括在后附权利要求书的范围内。
Claims (9)
1.一种数据管理系统,具有对客户提供数据管理和操作的功能的多个数据操作部分,用于对从数据存储系统输出的数据进行操作,并且将数据提供给应用程序进行处理,其中所述数据管理系统包括:
数据存储系统,用于存储将要对其进行操作的、具有不同操作内容的数据;
操作单元,用于从所述数据存储系统读取所述应用程序所要求的数据,从所述多个数据操作部分中选择一个应对所述数据执行操作的数据操作部分,以使被读出的所述数据与将由所述应用程序用以执行处理的数据模型相适应,并且将由被选择的数据操作部分操作过的数据提供给应用程序;以及
对信息进行相关记录的单元,所述信息用于确定在将所述数据存储系统中所存储的数据提供给所述应用程序时,应该选择哪个数据操作部分以及应该采取什么样的顺序对所述数据进行操作;
所述操作单元被配置成根据与被读出的数据相关而被记录的所述信息进行操作。
2.如权利要求1所述的数据管理系统,其中当选择两个以上的所述数据操作部分时,与被选择的所述数据操作部分中分层等级最底层相应的一个数据操作部分对从数据存储系统中输出的数据进行操作,并且将所述数据提供到与所述数据操作部分的上一级结构相应的一个数据操作部分;与被选择的所述数据操作部分中分层等级最上层相应的数据操作部分对从与所述数据操作部分的下一级相应的一个数据操作部分提供的数据进行操作,并且将由所述数据操作部分所提供的数据提供到应用程序。
3.如权利要求1所述的数据管理系统,其中当存储与同一个分层等级相应的两个以上的数据操作部分时,将所述两个以上的数据操作部分之中的一个,作为选择应该对所述数据进行操作的数据操作部分时的候选者。
4.如权利要求1所述的数据管理系统,其中进一步包括确定单元,所述确定单元在数据的类别被指定时,根据预先存储的规则来确定所述类别数据的操作所需要的数据操作部分及其组合方法。
5.如权利要求1所述的数据管理系统,其中所述操作单元包括一个写入单元,用于从所述多个数据操作部分中选择对由所述应用程序产生的数据执行操作的数据操作部分,以便按照数据模型使所述应用程序产生的数据存储在所述数据存储系统中,并将由所选择的数据操作部分进行过操作的数据写入到所述数据存储系统中。
6.如权利要求1所述的数据管理系统,其中当所述应用程序产生一个新数据时,所述操作单元根据由所述应用程序所指定的新数据的类别来确定所述操作单元所应当使用的数据操作部分,并且由所述被指定的数据操作部分指定所述操作单元应该使用的其它数据操作部分,或者指定用以确定所述其它数据操作部分的类别。
7.如权利要求1~7中任一项所述的数据管理系统,进一步包括管理单元,用于按分层的方式管理所述数据存储系统内的多个数据,
其中在选择应对数据执行操作的数据操作部分时,使用从与所述数据的分层等级相关而被存储的选择方法中的一种,所述选择方法是根据基于所述分层等级所规定的规则而确定的。
8.一种数据管理方法,具有对客户提供数据管理和操作功能的多个数据操作部分,用于对从数据存储系统输出的数据进行操作,并且将数据提供给应用程序进行处理,其中所述数据管理方法包括以下步骤:
读出步骤,在从所述应用程序接收到对被存储在所述数据存储系统中的所需要的数据执行处理的请求后,从所述数据存储系统中读出所述应用程序所需要的数据;
选择步骤,从具有各不相同的操作内容的数据操作部分中,选择出对在所述读出步骤中读出的数据执行操作的数据操作部分,以使所述数据与将由所述应用程序用以执行处理的数据模型相适应;
操作步骤,由在所述选择步骤中选择的数据操作部分对在所述读出步骤中读出的数据进行操作,并且将所述数据提供给应用程序;以及
记录步骤,对信息进行相关记录的步骤,所述信息用于确定在将所述数据存储系统中所存储的数据提供给所述应用程序时,应该选择哪个数据操作部分,以及应该采取什么样的顺序对所述数据进行操作;
其中所述数据操作部分根据与在所述读出步骤中读出的数据相关而被记录的信息进行操作。
9.如权利要求8所述的数据管理方法,其中对于被提供给所述应用程序的数据进行处理后产生的数据,由被选择的所述数据操作部分执行操作,并将其写入所述数据存储系统中,以便使所述产生的数据按照所述数据模型存储在所述数据存储系统中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP278261/1999 | 1999-09-30 | ||
JP27826199A JP4167359B2 (ja) | 1999-09-30 | 1999-09-30 | データ管理システム及びデータ管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1290899A CN1290899A (zh) | 2001-04-11 |
CN1203430C true CN1203430C (zh) | 2005-05-25 |
Family
ID=17594885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB001292854A Expired - Fee Related CN1203430C (zh) | 1999-09-30 | 2000-09-30 | 数据管理系统和数据管理方法 |
Country Status (7)
Country | Link |
---|---|
US (2) | US6714946B1 (zh) |
EP (1) | EP1091295B1 (zh) |
JP (1) | JP4167359B2 (zh) |
KR (1) | KR100405745B1 (zh) |
CN (1) | CN1203430C (zh) |
DE (1) | DE60038933D1 (zh) |
TW (1) | TW486634B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786491A (zh) * | 2016-02-23 | 2016-07-20 | 浪潮通信信息系统有限公司 | 一种基于数据描述的命令式智能数据管理系统 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4378029B2 (ja) * | 1999-04-27 | 2009-12-02 | キヤノン株式会社 | データ処理方法及び装置及び記憶媒体 |
EP1304616B1 (en) * | 2001-10-18 | 2010-03-17 | Sun Microsystems, Inc. | Method for processing a data file using a plug-in |
US7617502B2 (en) * | 2002-11-06 | 2009-11-10 | Scientific-Atlanta, Llc | Managing peripheral device drivers |
AU2003292498A1 (en) * | 2002-12-11 | 2004-06-30 | Fraysen Systems Limited | Process data management |
FR2849568B1 (fr) * | 2002-12-26 | 2005-04-29 | Orange France | Systeme et procede de gestion de ressources dans un terminal relie a un reseau de communication |
US20040215747A1 (en) * | 2003-04-11 | 2004-10-28 | Jonathan Maron | System and method for a configuration repository |
US20060069774A1 (en) * | 2004-06-17 | 2006-03-30 | International Business Machine Corporation | Method and apparatus for managing data center using Web services |
US7516122B2 (en) * | 2004-12-02 | 2009-04-07 | Computer Associates Think, Inc. | System and method for implementing a management component that exposes attributes |
JP4804836B2 (ja) * | 2005-08-31 | 2011-11-02 | 三菱電機株式会社 | データ生成装置及びデータ生成プログラム |
CN102026147A (zh) * | 2009-09-17 | 2011-04-20 | 中兴通讯股份有限公司 | 业务用户数据管理系统及其实现业务用户数据管理的方法 |
CN101739292B (zh) * | 2009-12-04 | 2016-02-10 | 曙光信息产业(北京)有限公司 | 基于应用特征的异构集群作业自适应调度方法和系统 |
US20120094600A1 (en) | 2010-10-19 | 2012-04-19 | Welch Allyn, Inc. | Platform for patient monitoring |
JP5524144B2 (ja) | 2011-08-08 | 2014-06-18 | 株式会社東芝 | key−valueストア方式を有するメモリシステム |
JP5762878B2 (ja) | 2011-08-08 | 2015-08-12 | 株式会社東芝 | key−valueストアを有するメモリシステム |
CN104216729B (zh) * | 2013-06-05 | 2017-10-13 | 阿里巴巴集团控股有限公司 | 应用系统的逻辑模块更新实现方法及装置 |
US10915507B1 (en) * | 2014-08-21 | 2021-02-09 | Amazon Technologies, Inc. | Data conversion handler for a run-time execution environment |
CN110019254A (zh) * | 2017-07-17 | 2019-07-16 | 中兴通讯股份有限公司 | 规划区增量记录的处理方法、装置及计算机可读存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5261080A (en) * | 1987-08-21 | 1993-11-09 | Wang Laboratories, Inc. | Matchmaker for assisting and executing the providing and conversion of data between objects in a data processing system storing data in typed objects having different data formats |
JP2644554B2 (ja) * | 1988-11-15 | 1997-08-25 | 株式会社日立製作所 | 情報処理システム |
US5113522A (en) * | 1989-05-17 | 1992-05-12 | International Business Machines Corporation | Data processing system with system resource management for itself and for an associated alien processor |
CN1029050C (zh) * | 1989-10-13 | 1995-06-21 | 国际商业机器公司 | 在数据库系统中强化实施参照约束 |
JPH05342179A (ja) * | 1992-06-11 | 1993-12-24 | Kobe Nippon Denki Software Kk | データベースクライアント・サーバ分散処理システムのデータ処理方法 |
US5446880A (en) * | 1992-08-31 | 1995-08-29 | At&T Corp. | Database communication system that provides automatic format translation and transmission of records when the owner identified for the record is changed |
JPH0695935A (ja) * | 1992-09-11 | 1994-04-08 | Shikoku Nippon Denki Software Kk | データベースのレコードフォーマット変更方式 |
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 |
US5581797A (en) * | 1993-10-22 | 1996-12-03 | Lucent Technologies Inc. | Method and apparatus for displaying hierarchical information of a large software system |
US5727158A (en) * | 1995-09-22 | 1998-03-10 | Integra Soft, Inc. | Information repository for storing information for enterprise computing system |
WO1998055908A2 (en) * | 1997-06-04 | 1998-12-10 | Pangea Systems, Inc. | Method and apparatus for obtaining results from multiple computer applications |
US6167564A (en) * | 1998-09-17 | 2000-12-26 | Unisys Corp. | Software system development framework |
US6523027B1 (en) * | 1999-07-30 | 2003-02-18 | Accenture Llp | Interfacing servers in a Java based e-commerce architecture |
US20020194251A1 (en) * | 2000-03-03 | 2002-12-19 | Richter Roger K. | Systems and methods for resource usage accounting in information management environments |
US6502102B1 (en) * | 2000-03-27 | 2002-12-31 | Accenture Llp | System, method and article of manufacture for a table-driven automated scripting architecture |
US7228407B2 (en) * | 2002-08-13 | 2007-06-05 | International Business Machines Corporation | Adaptive management method and system with automatic dependency resolution |
-
1999
- 1999-09-30 JP JP27826199A patent/JP4167359B2/ja not_active Expired - Fee Related
-
2000
- 2000-09-15 TW TW089118906A patent/TW486634B/zh not_active IP Right Cessation
- 2000-09-18 DE DE60038933T patent/DE60038933D1/de not_active Expired - Fee Related
- 2000-09-18 EP EP00308108A patent/EP1091295B1/en not_active Expired - Lifetime
- 2000-09-20 US US09/666,128 patent/US6714946B1/en not_active Expired - Fee Related
- 2000-09-29 KR KR10-2000-0057358A patent/KR100405745B1/ko not_active IP Right Cessation
- 2000-09-30 CN CNB001292854A patent/CN1203430C/zh not_active Expired - Fee Related
-
2004
- 2004-01-05 US US10/750,889 patent/US20040139122A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786491A (zh) * | 2016-02-23 | 2016-07-20 | 浪潮通信信息系统有限公司 | 一种基于数据描述的命令式智能数据管理系统 |
Also Published As
Publication number | Publication date |
---|---|
US6714946B1 (en) | 2004-03-30 |
KR100405745B1 (ko) | 2003-11-15 |
EP1091295A3 (en) | 2003-09-03 |
KR20010067262A (ko) | 2001-07-12 |
TW486634B (en) | 2002-05-11 |
JP2001101042A (ja) | 2001-04-13 |
US20040139122A1 (en) | 2004-07-15 |
EP1091295B1 (en) | 2008-05-21 |
DE60038933D1 (de) | 2008-07-03 |
CN1290899A (zh) | 2001-04-11 |
JP4167359B2 (ja) | 2008-10-15 |
EP1091295A2 (en) | 2001-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1203430C (zh) | 数据管理系统和数据管理方法 | |
CN1321277A (zh) | 数据库系统 | |
CN1193292C (zh) | 数据处理方法与装置 | |
CN1314226C (zh) | 多媒体文件共享方法和装置 | |
CN1287310C (zh) | 组成多媒体文件的方法和装置 | |
CN1613047A (zh) | 文件系统外壳 | |
CN1656455A (zh) | 管理文件的方法、操作对象显示限制程序和记录介质 | |
CN1109994C (zh) | 文件处理装置与记录媒体 | |
CN101036141A (zh) | 具有持久性、用户可访问的位图值的数据库管理系统 | |
CN1722108A (zh) | 磁盘驱动器、其控制方法以及磁盘伪造的探测方法 | |
CN1578949A (zh) | 数据对象导向的储存系统 | |
CN101044484A (zh) | 信息处理装置、方法以及程序 | |
CN1132564A (zh) | 用于数据存储与检索的方法与装置 | |
CN1276575A (zh) | 数据库存取系统 | |
CN1759389A (zh) | 利用虚拟文件夹的系统和方法 | |
CN1677399A (zh) | 分级数据库管理的系统、方法和程序 | |
CN1552032A (zh) | 数据库 | |
CN1959705A (zh) | 信息处理装置、方法和程序 | |
CN1731398A (zh) | 信息处理装置、文档检索方法 | |
CN1680942A (zh) | 文档组分析设备、文档组分析方法及文档组分析系统 | |
CN1310173C (zh) | 表格式数据显示方法、插入方法、删除方法和更新方法 | |
CN101069181A (zh) | 存储设备和记录介质 | |
CN1653546A (zh) | 记录重放系统、记录重放方法、程序、及记录媒体 | |
CN1722138A (zh) | 结构化文档管理设备、搜索设备、存储和搜索方法及程序 | |
CN1144004A (zh) | 多个客户机共有的数据库系统、数据更新方法及面向文字处理装置的应用 |
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 | ||
C19 | Lapse of patent right due to non-payment of the annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |