CA2246940C - Method and means for encoding storing and retrieving hierarchical data processing information for a computer system - Google Patents

Method and means for encoding storing and retrieving hierarchical data processing information for a computer system Download PDF

Info

Publication number
CA2246940C
CA2246940C CA002246940A CA2246940A CA2246940C CA 2246940 C CA2246940 C CA 2246940C CA 002246940 A CA002246940 A CA 002246940A CA 2246940 A CA2246940 A CA 2246940A CA 2246940 C CA2246940 C CA 2246940C
Authority
CA
Canada
Prior art keywords
command
tree
nodes
data stream
definition
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
Application number
CA002246940A
Other languages
French (fr)
Other versions
CA2246940A1 (en
Inventor
Dora Vell
Peter K. Shum
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.)
IBM Canada Ltd
Original Assignee
IBM Canada Ltd
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 IBM Canada Ltd filed Critical IBM Canada Ltd
Priority to CA002246940A priority Critical patent/CA2246940C/en
Publication of CA2246940A1 publication Critical patent/CA2246940A1/en
Application granted granted Critical
Publication of CA2246940C publication Critical patent/CA2246940C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/24Querying
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/06Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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/99932Access augmentation or optimizing
    • 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/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • 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/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Abstract

A data transmission dictionary is provided, which is adapted for use by a computer system for encoding, storing, or retrieving hierarchically related data transmission information. The dictionary is comprised of a group of one or more computer searchable definition trees relating to transmission information of the computer system. The trees are derived from a first definition group which includes characteristics of commands, replies or data usable by the computer system. The characteristics include structure and value properties and restrictions, if any, applying to the commands, replies or data. Each tree represents, respectively, a definition of a the command, reply or data to which it relates. Each tree includes a root node identified by name, eg. a codepoint. The root node includesinformation describing the type of definition tree concerned (i.e. whether it relates to a command, reply or data), and may include one or more internal or terminal descendant nodes. These nodes represent components of the definition represented by the tree. The descendent nodes include level information describing the level of the node within its tree.
The nodes may include attribute information, and may include value requirements relating to transmission information represented by the nodes.

Description

CA 02246940 l998-09-04 METHOD AND MEANS FOR ENCODING STORING AND RETRIEVING
HIERARCHICAL DATA PROCESSING INFORMATION FOR A COMPUTER
SYSTEM

FIELD OF THE INVENTION
This invention relates to data processing and storage systems and in particular to methods and means for specifying the syntax of a l,ierd" l,ical language for use in datalldns",i~sions of such systems.

BACKGROUND OF THE INVENTION
Data processing for instance distributed prucessi"g requires a cor" ,e~ lion protocol that definesspecificflows,andi,,l~:,d~,liuns.Theseflowsandinteractionsconveytheintentand results of distributed p~ucesai~g requests. The protocol is necessary for semantic 10 connectivity between l ' 1S and processors in a distributed environment. The protocol must define the responsibilities between the pdl li, i~.a, ll~ and specify when flows should occur and their contents. Distributed . 1S allow operations to be processed over a network of cooperating p,ucesso,b.

1s Clients and servers send information between each other using that set of protocols.
These protocols define the order in which messages can be sent and received the data that accompanies the messages remote processor connection flows and the means for converting data that is received from foreign environments.

20 The client provides the conne.:liol1 between the: 1 and the servers via protocols.
It supports the I : 1 end of the connection by: (1 ) Initiating a remote connection (2) Translating requests from the application into the standardized format otherwise known asgenerating,(3)Translatingrepliesfrom:,ldndd,di~dformatsintotheapplicationformat, otherwise known as parsing (4) Discol1l1e~ li"9 the link from the remote processor when 2s the a,) i~ n terminates or when it switches processors.

The server responds to requests received from the client. It supports the server end of the connection by: (1) Accepting a conl1e~ tiOI1 (2) Receiving input requests and data and converting them to its own internal format (parsing), (3) Constructing (generating) and sending standardized reply messages and data.
s In a particular distributed data plucessi~g architecture uses the Distributed Data Md"age",e"LArchitecture(DDM)usedforthe~ldndd"~ dformatofthemessages. DDM
provides the conceptual framework for constructing common interfaces for command and reply illlt:l-;hdl1ge between a client and a server. Most DDM ~u,,,,,,ands have internal 10 statement counterparts.

BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 depicts DDM Objects.
Fig. 2 depicts a DDM Object Interchange Format.
1s Fig. 3 depicts a flowchart illustrating depth first searching.
Figs. 4a, b illustrate a example DDM Object: Root Node as defined in the architecture.
Figs. 5a, b illustrate an example of the Root Node OPNQRY.
Fig. 6 comprises a diagram l~p,~se"li"g a method of constructing the definition for loosely coupled files.
Fig. 7 illustrates a tree for the Command portion of ACCRDBRM.
Fig. 8 depicts an example of retrieving a definition for the LCF method.
Fig. 9 depicts a CASE method as used in RSM.
Fig. 10 comprises a diagram ,t,p,~ser,li"g the construction of a DDM definition by 2s the root storage method.
Fig. 11 depicts an example of retrieving a definition for the RSM method.
Fig. 12 depicts an ADDG Flowchart.
Fig. 13 depicts a flowchart for step 1 of ADDG; generate DDMTXT.
Fig. 14 depicts a flowchart for step 2 of ADDG; create DDM definitions.
Fig. 15 depicts a flowchart for step 3 of ADDG; assemble DDM definitions.

Fig. 16 depicts ADDG tool pse~ l~ocod~
Figs. 17a-l depict an i",ple",er,l~d DDM dictionary and retrieval method in acco,dal1ce with the instant invention.
Fig. 18 comprises a representation of a DDM Command in the form of a tree.
s Fig. 19 illustrates the DDM Dictionary Definition Syntax.
Fig. 20 depicts parsers and generdlur~ in a Distributed System.
Fig. 21 illustrates a tree for the Command portion of OPNQRY.
Fig. 22 illustrates a tree for the Command Data portion of OPNQRY.
Fig. 23 illustrates a tree for the Reply Data portion of OPNQRY.
1C Fig. 24 depicts the method of parsing and yeneldlion employed by the instant invention .

DEFINITIONS
The following definitions are provided to assist in u"da,:,ld"d;"g the invention described below. Additional i~rur~dtiun may be found in the manual "IBM Distributed Data Management Architecture Level 3: Reference SC21-9526".

DSS (Data Stream Structure): DDM can be viewed as a multi-layer architecture forcommunicating data ",anage",e"l requests between servers located on different data processing systems. All i~runl,dlion is exchanged in the form of objects mapped onto a data stream apprupridl~ to communication facilities being used by DDM. A data stream structure is a set of bytes which contains among others information about whether the enclosed structure is a request reply or data (an object structure); whether the structure is chained to other structures; etc. There are three general types of DDM data stream 2s structures: "request structures" ( RQSDSS ) which are used for all requests to a target system for processing; "reply structures" ( RPYDSS ) which are used for all replies from a target system to a source system regarding the conditions detected during the processing of the request; and "object structures" ( OBJDSS ) which are used for all objects sent between systems.

Mnemonic: specifies a short form of the full name of a DDM object.

Class: describes a set of objects that have a common structure and respond to the same commands.
s Codepoint: A codepoint (code point) specifies the data ,~p,~se"ldlio,l of a dictionary class. Codepoints are hexadecimal synonyms for the named terms of the DDM
architecture. Codepoints are used to reduce the number of bytes required to identify the class of an object in memory and in data streams.

Command: Commands are messages sent to a server to request the execution of a function by that server. For example the command "Get_Record" can be sent to a file system. Each DDM command normally returns (results in the sending of) one or more reply messages or data objects.
DDM cor", lldndS can be described under four headings:

1. Des.;li~,liun. The description part usually includes a Command Name or the "",e",onic name of the command such as "OPNQRY"; and an Expanded Name such as "Open Query" that is a description of the command function.
2. Fa, d~ The pa, dl I It~ or instance variables describe the objects that can (or must be) sent as parameters of the command. The parameters can be sent in any order because they are identified by their class codepoints. The pard",~ are 2s generally associated with a set of attributes (characteristics):
(a) required optional or ignorable. A Required attribute specifies that support or use of a pdla~ l is required: when a parameter is specified as being required in a pdldlll~
list for a command the parameter must be sent for that command . All receivers supporting the command must recognize and process the parameter as defined. When specified in the pardl 11~1~1 list of a reply message the parameter must be sent for that reply message.

All receivers must accept the parameter. An Optional attribute specifies that support or use of a pal a~ iS optional. When a parameter is specified as being optional in a parameter list for a command, the parameter can optionally be sent for that command. All receivers supporting the command must recognize and process the pdldlll~ l as defined and use s the default value if it is not sent. When specified in the parameter list of a reply message, the parameter can optionally be sent for that reply message. All receivers must accept the para",~l~n An Ignorable attribute specifies that a parameter can be ignored by the receiver of a command if the receiver does not provide the support requested. The pa, dl "~l~r can be sent optionally by all senders. The parameter must be recognized by all 10 receivers. The receiver is not required to support the architected default value and does not have to validate the specified value;
(b) Repeatable or Not Repeatable: A Repeatable attribute specifies that a pa, dl 1 n:l~l can be repeated in the value of the object variable being described. There are no requirements that the elements of the list be unique or that the elements of the list be in any order;
15 (c) Length characteristic: This describes the length requirements or restrictions of the co"~spon.li"g data lldnsllliasion.
3. Command Data: the list of all the possible classes of data objects (for example, records) that can be Asso~i~t~d with the command. Each data object is generally 20 associated with a set of attributes (characteristics), as are the parameters.
4. Reply Data: The reply data section lists all possible classes of data objects that can be returned for the command. The list may contain notes about selecting the data objects to return. The reply data objects that are normally returned for the command. When 2s exception conditions occur, the reply data objects may not be returned, instead reply messages may return a des~ of the exception conditions.

All DDM col"",alld~ may be enclosed in a RQSDSS before lldn~",iasion:

30 RQSDSS(command(command parameters)) All DDM command data objects and reply data objects may be enclosed in an OBJDSSstructure for lld"s",ission.

OBJDSS(command-data-object(object pdldl11~ .)) OBJDSS(reply-data-object(object s parameters)) All DDM command replies may be enclosed in a RPYDSS structure for lldn~ll,iasiul1:

RPYDSS(command-reply(reply parameters)) Parsing: the process of verifying syntactic cor, ~.,I"ess of a DDM string (DDM stream), and of lldnsldli"g it into a recognizable internal format.

Generation: the process of creating a valid DDM string from an internal format.

Tree: A tree structure is either: (a) an empty structure, or (b) a node with a number of subtrees which are acyclic tree structures. A node y which is directly below node x is called a direct descende"l of x; if x is at level I and y is at level 1+1 the x is the parent of y and y is the child of x . Also, x is said to be an ancestor of y . The root of the tree is 20 the only node in the tree with no parent. If a node has no descendents it is called a terminal node or a leaf. A node which is not a terminal node nor a root node is an internal node.

DDM Architecture Dictionary: The architecture dictionary describes a set of named d~sc,ilJIiuns of objects. The primary objects listed in the dictionary are broken down into 2s the classes "CLASS" and " HELP". Each of these objects has an external name and an external codepoint that can be used to locate it. These are complex objects (nested collections of many sub-objects). The entries in a dictionary are of varying length and each contains a single complete object. For scalar objects, all of the data of the object i"""edidlt,lyfollowsthelengthandclasscodepointoftheobject.Forcollectionobjects,the 30 data following the length and class codepoint of the collection consists of four byte binary .

numbers specifying the entry number in the dictionary at which the collection is stored.
The DDM Architecture Dictionary is also referred to as the DDM Architecture document.

DDM Architecture: The DDM architecture is fully described by the DDM Architecture
5 Dictionary.

Forest: A grouping of trees.

Parameter: There are three kinds of DDM objects, as shown in Figure 1.

First there are simple scalars which contain only a single instance of one of the DDM data classes, such as a single number or a single character string. DDM attributes, such as length, alignment and scale are simple scalars.
Then, there are mapped scalars which contain a sequence of instances of the DDM data classes that are mapped onto a byte stream by an external descriptor that specifies their class identifier and other attributes.
Finally, there are collections which contain a sequence of scalar and collectionobjects. DDM cur"" ,ands, reply messages, and attribute lists are all examples of collection objects.
All objects (including pal~",~ r~) are transmitted as a contiguous string of bytes with the following format:
(a) a two byte binary length. The length field of an object always includes the length of the length field and the length of the codepoint field, as well as the length of the object's data 25 value;
(b) a two byte binary value that specifies the codepoint of the class that describes the object. All objects are instances of the "CLASS" object that specifies the variables of the object, specifies the col""~and~ to which the object can respond, and provides the programming to respond to messages;
30 (c) an object's data area consists of the data value of primitive classes of objects, such as numbers and character strings, or the element objects of a collection. A pa, a~ lel can be either a scalar or a collection.

Since the class of a DDM object describes its pd,d",~:ler~, it thereby defines the 5 i"l~:r~,l ,al1ge data stream form, as shown in Figure 2. This makes it possible to transmit a command consisting of multiple scalar pdldl I It~ from one manager to another.

Definition: A definition as used in reference to data processing structures and ~,pe,dliol1s described herein is the Ac5or.i-~ion of a name with an attribute list. Definitions are used 10 to specify the characteristics of variables, values and other aspects of objects.

Database Management System (DBMS): A software system that has a catalog describing the data it manages. It controls the access to data stored within it. The DBMS also has transaction ",anagel"e"L and data recovery facilities to protect data integrity.
SQL( Structured Query Language): A language used in database management systems to access data in the database.

Depth First Search: is a means of sy~ ",dlica'!y visiting nodes in a tree. The order is as 20 follows: (1 ) Visit the root node; (2) Visit the children of the root node; (3) To visit a child, chose its children and visit them in turn. In general, other alternatives at the same level or below are ignored as long as the current node that is being visited is not a terminal node. One way to i"",le",e"l depth-first search is depicted in Figure 3.

25 The corlt:a~ondillg pseudo-code is:
1. Form a one element queue consisting of the root node.
2. Until the queue is empty, remove the first element from the queue and add the first element's children, if any, to the front of the queue.

30 Other types of searches are possible, such as breadth-first search, which expands the nodes in order of their proximity to the start node measured by the number of arcs between them.

Application Requester(AR): the source of a request to a remote relational database s ",anage",el ,I system (DBMS). The AR is considered a client.

Application Server(AS): the target of a request from an AR. The DBMS at the AS site provides the data. The AS is considered a server.

10 DESCRIPTION OF THE IBM DISTRIBUTED DATA MANAGEMENT (DDM) LANGUAGE
The Distributed Data Management (DDM) Architecture (as described in the IBM
pl 1 1;- -n IBM Distributed Data Manage",t:"l Architecture Level 3: Reference SC21-9526 ) describes a aldnclaldi~ed language for Distributed AFF -ns. This language is used by the data management components of existing systems to request data services 15 from one another. It manipulates data interchange amongst different kinds of currently existing systems; efficient data i"le",l ,dnge amongst systems of the same kind; common data management facilities for new systems; and evolution of new forms of data I l ,anage" ~enl. DDM provides the abstract models necessary for bridging the gap between disparaterealoperatingsystemilllplelllelllaliuns.someoftheservicesaddressed bythe 20 DDM distributed database models are to (a) establish a connection with a remote database;
(b) create ap~ n specific access methods (packages) in the database or dropping them from the database. These packages include the definitions of ~1~' .1 variables used for input and output of SQL ~Idll:ll ,el ,ts defined by the Application Requester;
25 (c) retrieve descriptions of answer set data;
(d) execute SQL aldl~lllerll~ bound in a database package;
(e) dynamically prepare and execute SQL ~Idl~r"e"l~ in the database;
(f) maintain consistent unit of work boundaries between the application requester and the database;
30 (g) terminate the connection with the database.

SPECIFICATION OF DDM OBJECTS
The DDM Architecture is defined by a "dictionary" of terms that describe the concepts, structures, and protocols of DDM. DDM entities are called objects. They are alsosynonymously called terms. See Figures 4a and 4b for a sample DDM Object. The object 5 drawn is EXCSATRD (Exchange Server Attributes Reply Data). In order to obtain more information about the object EXCSATRD, one should look at the objects that form EXCSATRD. Forexample, the objects EXTNAM, MGRLVLLS, SRVCLSNM, SRVNAM and SRVRLSLV, which constitute the parameters of EXCSATRD are themselves DDM objectsand can be found elsewhere in the architecture (architecture dictionary) in al~,hab~:licdl 10 order.Everyobjecthasahelp variable.Thisvariableisforsul~ple",e"lnli"ful",dliu,1and explains the purpose and the semantics of the object. Another example of a DDM
Command as documented in the DDM architecture reference, above is depicted in Figures 5a, and 5b.

15 Likeobject-orientedlanguages,DDMhasthreecharacteristicsthatmakeitobject-oriented.
These are en-~pslllAtion, i"he,ildnce, and polymorphism.

Enc~ps~ tion is a technique for " ,i"i" ,i~i"g interdependencies amongst separately written objects by defining strict external interfaces. DDM uses this concept to define each object 20 class (an instance of which is an object) that is part of the architecture. Most of the DDM
object classes have the following attributes: inscmd (instance ~:or"" ,ands), clscmd (class cor"",ands),insvar(instancevariables),clsvar(classinstancevariables). Inaddition,there are other attributes, namely length and class.

25 Length indicates length or size of the object. There are two length attributes ~csoci~t~d with most objects: one is the abstract length referring to the fact that if the entire object class were to be lldns, llillt~d, including help text, it would be as long as the value specified with the attribute. This is always "~", where "~ p,~sent:, a indefinite length due to its abstract nature. The second length attribute is a part of the instance variable list. It 30 specifies the length of the object when it is lldns",ill~d as part of the protocol. The length of some objects is clear (fixed) at the time of definition. Most objects however, have variable lengths which are determined depending on their use. Thus, these objects have their lengths available only at the time of l~dnsmi~,siol1 of the objects.

5 Class indicates the class name or codepoint. Each object class has a name which briefly describes its type. Each object class also has a codepoint which is an alternate and more effficient(forlldl)sllliasiun)wayofnamingit.ThisattributeisspecifiedtwiceforeveryDDM
object class, first as a brief description and then, as part of the instance variable list (as a hexdde"i",al number). There are some DDM objects which are not self-describing, when 10 they are lldns",ill~d. That is, when these objects are transmitted they are recognized by the receiver from the context; the length and the codepoint which are essential for the recognition of the object by the receiver are not lldns",ill~d even though these attributes are defined for these objects by DDM. The second characteristic, 15 Inheritance is a technique that allows new, more cperiAli7~od classes to be built from the existing classes. DDM uses the i"helildl1ce structure to encourage the reusability of the definition (and eventually of the code, if the i",~Jle",e"ldliun is object-oriented). The class COMMAND for example, is the superclass of all ~,oi"",a,1ds. From the superclass, the subclass inherits its structure. The third characteristic, Polymorphism is a technique that allows the same command to be understood by different objects, which respond differently.
In this disclosure, the following will be used:
N : the number of terms in the dictionary (number of trees), m: the number of total nodes in the expansion of a DDM command or reply message (number of nodes in a tree;
k : number of top level nodes, dpplUXillldlt:ly N/10 in the specific , described herein;
average number of children per node.

OTHER METHODS
This section describes other methods of hield,~,llical language storage and retrieval lhodolo~J;~c, including Loosely Coupled Files (LCF) and Root Storage Method (RSM).

5 LOOSELY COUPLED FILES (LCF) Given that the DDM model isolates di.,liona~ s from processing, LCF design l~pl~se"t~
the DDM di.,liol1al-ies by a collection of static data structures, which may be generated by macros. Each DDM Dictionary is assembled and link-edited into separate load modules.
10 Isolation of DDM objects requires as search arguments, (a) the object name (character string) and (b) the dictionary identification. The di~ti~ dl ies closely resemble the structure of the DDM documentation i .e. co" ,~ g a network of nodes. Thus, if one is familiar with the DDM documentation, one may correlate DDM concepts (scalars, collections, codepoints) to the LCF DDM Di.,liona,ies.
LCF Retrieval M_ll ,odology:
Since but a single definition of each DDM object exists, the requirement to generate the object orto recognize its existence is dependent upon that single definition. Thus, LCF
creates generation and parsing methods which are driven entirely by the DDM dictionaries.
20 Any DDM object to be generated first isolates the object definition within the appropriate dictionary. Then, it "pushes" the length and codepoint attributes onto a stack if the object is a collection and proceeds recursively through all the instance variables of the collection, halting when a scalar (leaf or terminal node) is encountered . When a scalar (terminal node) is reached, a generator routine is invoked, which "pushes" the scalar length, codepoint as 25 well as the scalar value onto the stack. The length is returned to the invoker at the higher level. In this fashion, when all instance variables of a collection have been processed, the length of the collection is the sum of the lengths returned from the individual invocations.
The example below depicts the LCF pseudo-code for building the definition at run-time.
Note that recursion is used. Another way is depicted in Figure 6 without recursion (i.e.
30 recursion is simulated).

Example Newdef LCF_Construct (IN Codepoint) (~LCF Method for constructing Definition~) s Search for the file identified by the Codepoint Scan for all its pdldl "t:le, ~ (or instance variables), if any If There Are Some Then Do;
1C Scan file for instance variables Do for all the Instance Variables Definition = Definition +
LCF_Construct(Codepoint) End Do;
End If;
End LCF_Construct;

To illustrate the LCF flow and provide some insight with regard to the impact of Dictionary access and recursion on path length consider the example illustrated in Fig. 7 which depicts the definition tree to be built. LCF maintains 13 files for this tree. To illustrate the LCF flow and provide some insight with regard to the impact of Dictionary access and recursion on path length consider the example as depicted in Fig. 8.

Hence, LCF retrieves each file, sequentially searches for pa,d",~ in each file (the 2s search argument is a variable length character string, or DDM Mnemonic, such as RDBNAM in the example above), and then for each parameter found, gets the file and extracts its pa, dl 11~ . This is a recursive method . This recursive step is done at run time, each time one wants to generate or parse a DDM stream. This means that the methods to construct a DDM Dictionary definition is an exhaustive search that goes through the entire file: Hence, in order to build the definition, LCF requires m retrievals and with each retrieval there is a sequential search to locate the parameters.

LCF Storage '' :',c ~IcR~
LCF stores each DDM definition in a file, in the format shown in Figures 5a and 5b. This s meansthateachtermisstoredinaseparatefilewithi,,ru,,,,~tianthatisnotneededbytheparsing and generation processes. Also each of its instance variables are stored in the same fashion, etc.

The storage requirements for LCF are appluxi", ' 'y 1000 + 1ûOm bytes per term in the dictionary, i.e. assuming 1û00 bytes head and tail overhead plus 10û bytes per internal node. Hence, the storage requirements for the entire dictionary are appru,~i",dl~ly:
(1000+100m) N.

ROOT STORAGE METHOD
The Root Storage Method (RSM) appl uxi", ' ~ or simulates the recursion aspects of DDM
object definition construction by an apprupridl~ ,ulemenldliul1 technique (nested CASE
~Idle",er,b,CASE within CASE within CASE). Given this direction, the objects defined within the DDM dictionaries can be entirely eliminated or restricted to objects of a given type. RSM restructures the DDM Diuliunal ie~ by first ol;" lindtil ,9 the dictionary identifier as 20 an element in the search argument, and hence all di-,liona, i~s are merged together. Then, the dictionary search arguments are changed from character strings to codepoints. The character strings are still maintained within the dictionary. Finally, objects defined within the diuliol1alies are restricted to root nodes only. Thus, only DDM uurm~al1da, command data, reply messages and reply data are defined. However, the constituent instance 2s variables of any given DSS (or pdldlll~ ), collection or scalar are not defined.

RSM RETRIEVAL METHODOLOGY
Once the object has been identified to satisfy a request, then for each root level object, a unique root level object generator exists, which will generate one complete object. The 30 object generator non-recursively constructs the instance variables ( " " :1S and scalars) which constitute the object. Consequently, the Generator must simulate the recursion inherent in the geneldliull of all instance variables COIllplisi,)9 that object. Figure 9 depicts the CASE within CASE method. Figure 10 depicts the flowchart of RSM object construction . With this approach, the DDM diuliul1dl ies are partitioned such that objects are s defined within static data structures and the constituent instance variables are hardcoded.
Notethatinthismethod,thedefinitionsofthevariouspa,dl"t:lel~arellalduodedmultipletimes, and that this method is not extendible to all possible variations of DDM. For example, it has the limitation in the number of levels of nesting that CASE ~Idl~l "e"t~ are allowed .

To construct the definition for ACCRDBRM (as depicted in Figure 7 ), RSM undertakes the steps depicted in Figure 11.

To construct a definition, one must execute one retrieval with cost proportional to Log N
15 to the base 2, and m CASE ~Idl~ . Thus, RSM retrieves the root term definition.
Thereafter, the paldlll~ udllaiuns are hard-coded into the procedure. This method approximates the recursion aspects of DDM Object Generation by an i,,,ule,,,e,,tdlion technique (e.g. CASE within CASE... etc.). Due to limitations in programming languages, there are only so many levels of nesting of case ~Idlt:",er,t~ that are possible, hence 20 making the method not expandable. This appears to be a hard limitation. If DDM expands to have more levels, the RSM will exhaust its usefulness. If DDM strings reach a depth exceeding the nesting limit, then redesigning of the code will have to be done. In addition, this method is not well suited to parsing, because DDM is not static. When parsing DDM
Strings the pa, dl I lelt~l a at each level of DDM term in the tree can appear in any order. The 25 CASE within a CASE.. . does not provide all possible co" ,bil Id~ )ns of pa, dl I It:~16'1 ordering.
Also, for each occurrence of the parameter in the dictionary, the semantic procedure AC50~iAt~d with it is duplicated. The programs are hardcoded, and therefore difficult to maintain. Due to the increased size, the programs are more complex. In orderto maintain the program" t:COI "pildliùn is performed each time. Hence, in order to obtain the definition 30 of the DDM term, there is one retrieval necessary and one sequential search in the top level file. Then, a series of embedded CASE ~Idlt:lllelll~ provide the rest of the DDM
definition.

RSM STORAGE METHODOLOGY
s RSM stores only the root or "top level" definitions. The constituent instance variables of the pald" 1~ are not defined. This means that only the top level codepoint definitions are stored as data. All the parameters derived through the root are hardcoded in the program.
Thisresultsinthelossofi"ru""dliumincludingsomeofthenecessaryinformationrequired to parse and generate a DDM string. That is, all the Mrul",dlion about the structure of the 10 pal al 1 l~lel~ iS not available as data. If there are changes in the dictionary, this may result in consi~ ncy problems. While LCF stored all the information for all the codepoints, this method only stores the structural i~run,ldlion for the top level codepoints. The storage requirements for RSM are appluxi~ldlMy 1000+100m pertop level term assuming 1000bytes for head and tail overhead plus 100 bytes per internal node. Hence, there are about (1000+100m)kfortheentiredictionary. Therestoftheinformationforthestructureofthe pdl dl "~l~r::, is hardcoded in the program as depicted in Figure 9. Assuming there are N/10 top level objects, then the cost of storage is (1000+100m) N/10 bytes.

DRAWBACKS OF THE LCF AND RSM METHODS
20 LCF maintains a set of files without constructing the definition. This means that each time a definition of an object is required, LCF has to reconstruct it using the methods described above. There is no added value to reconstructing the definition each time it is required since the same definition will be required over and over again. In addition, LCF does not keep a very compact form of each of the definitions of each of the parameters; it 25 It:",e",be,~ i"runl,dlioll that is not needed, i.e. i"ru""dlion that is not essential for parsing and yene~dlMg. The invention herein overcomes these drawbacks by expanding the definition of a DDM command inside the data structure, and therefore not requiring its reconstruction each time it is accessed and by defining a short form of the data to describe the essence of the definition in a few bytes.

CA 02246940 l998-09-04 RSM only stores the top level node definition of the tree. The rest of the definition is hdldcoded in the program. While this saves on space compared to the LCF method, RSM
does not record the information of the root node in a compact fashion. RSM " ,ai"le:nal1ce may be difficult due to hard coding of each parameter and d~ of code for each s instance of the parameter in the dictionary. RSM is also subject to the limitations of p~uy~d~ Mg languages such as the level of nesting of CASE bldl~mel llb. The invention herein overcomes these problems.

SUMMARY OF THE INVENTION
0 Inconveniencesofothermethodsdiscussedaboveandelsewherehereinareremediedby the means and method provided by the instant invention which is described hereafter.

In accordance with one aspect of the invention a data l,dns,,,i:,siull dictionary is provided, which is adapted for use by a computer system for encoding, storing, or retrieving 15 I,ie,d,~.l,icallyrelateddatal,dl1s",issiuninformation. Thedictionaryiscomprisedofagroup of one or more computer searchable definition trees relating to lldl1b",ibsiol1 Mfulll,dliul1 of the computer system. The trees are derived from a first definition group which includes ullaldl,leliblicb of commands, replies or data usable by the computer system. The chald~ libti~,b include structure and value properties and ,~bl,i.;liuns, if any, applying to 20 the co"""al)ds, replies or data. Each tree represents, respectively, a definition of the command, reply or data to which it relates. Each tree includes a root node identified by name, such as a codepoint. The root node includes i"rul"~dlion describing the type of definition tree concerned (i.e. whether it relates to a command, reply or data), and may include one or more internal or terminal descendant nodes, which nodes represent2s cu" ~,uonel llb of the definition represented by the tree. The descende"l nodes include level information describing the level of the node within its tree. The nodes may include attribute information, and may include value requirements relating to l~d"s",ission information represented by the nodes.

30 The root node of each definition in the dictionary may include i"rul " Idliull relating to length liuns of Ildnsl~,ission information ,~p,~senl,:d by its definition tree.

The attribute information may include a requirement as to whether data l,dns,,,i~siun information l~pn:se~ d by a node is required, optional or ignorable.
s The attribute information also may include i~rulll ' - n on length, repeatability or non-repeatability of data lldns",i:,sion illru~ dlioll represented by the node.

Advantageously, the root node of each of the definition trees may be made the sole 0 acc~s~il,le entry for the tree.

As their size tends to be compact the definition trees may be stored in main memory of the computer system using them for use by parsing or generating programming to process data ll dllSI I ~issiun for the computer system.
Advantageously the definition trees are stored in a compact linear form preferably expressed in a depth first search form.

In accoldal1ce with another aspect of the invention there is provided a method of creating 20 the data lldnsllliasioll dictionary, above, by deriving a group of one or more computer searchable definition trees from a first definition group of nodes defining portions of col"",al1ds replies or data usable by a computer system, col"~,a.,Ii"g each of the nodes by retaining only i~rulllldLion necessary for the processing of data Lldn~lllissiol1 streams according to the definition trees; asse",'' ,g each definition tree by sequencing the 2s cun ,,ua~,L~d nodes in a linear form, starting with the root node of each of the definition trees, by placing illru~ dLion included in each compacted node in a resulting i",,ule",e"L~:d dictionary; and by dSS~Illl '' 19 each child node of said definition tree in turn. The process of asse",~ li.,g each child node involves placing information included in the child node in theresultingi",~.lel"e"L~ddictionaryanda~se",' li.,geachofthechild'schildnodesinturn.
30 The process of assembling a terminal node involves placing illru~ dLiull included in the terminal node in the resulting illl,ulenle~ d dictionary.

In acuo,dal1ce with still another aspect of the invention means is provided for constructing the data ll dnSI I ~ission dictionary described above which comprise an extractor for deriving s a group of one or more computer searchable definition trees from a first definition group of nodes defining portions of coml l Idnd:j replies or data usable by a computer system. A
compactor is provided for compacting each of the nodes while retaining only information necessaryforthep,ucessingofdatalld"~",issiunstreamsaccordingtothedefinitiontrees.
An asse" ,bler is provided for assembling each definition tree starting with the root node for 0 each tree. The asse",blel can place i~,ru~"dliun included in each compacted root node in the resulting i~ule~enl~d dictionary and assemble each of the co",,ua1led node's child nodes, if any, in turn. The asser"blel is adapted to place information included in each child node in the resulting i",,ulel"e"le:d dictionary and to assemble each of said child's child nodes, if any, in turn.
In accordance with a further aspect of the invention the dictionary described above is incorporated into a computer system for use by it for encoding, storing, or retrieving hie,d,uhically related data lldns",issiun information for use by said computer system internally or in communication with another computer system.

Inaccoldancewithanotheraspectoftheinventionthereisprovidedamethodofencoding and decoding a data lldns,,,i~,sion of one or more computer systems using the dictionary described above using the following steps:
sepa,dli"gthedatal,dns",issionintocommand,reply,ordatapartscor,~spolldi"g 25 to individual definitions in the dictionary, and ensuring that the parts conform to required Sp~ ~ " )llS of the data l,dns",issiun protocol used by the system;
foreachoftheparts, retrievingacul~:s,uon~li,ludefinitiontreefromthedictionary, and steppingthroughthedatal,dlla,,,iasionensuringthatrequiredinformationispresent 30 and that relevant rules are obeyed for the tree structure for each of said nodes encountered in the data l,dl1s",i~ion; and also ensuring that structural and value rules relating to the nodes, as described in the definition corresponding to the node are adhered to.

s Advantageously, in the above method when used for encoding the data ll dnsl "i~sion the dictionary definitions serve as a roadmap for the translation of internal data structures of the computer system into a data lldl1slllission which conforms to requirements of the definitions.

0 Advantageously as well in the drult:merl' :led method when used for decoding a data lldllSI I liaSiOIl the dictionary definitions serve as a roadmap for the verification of the data lldn~llliasion according to the definition requirements and the lldnsldlion into internal data structures of the computer system.

15 Inaccordancewithanotheraspectoftheinventionthereisprovidedadistributedcomputer system co" Wl i~i, Ig a source system and destination system. The source system includes an ~r F" 'ic :1 requestor, a parser and a generator supporting the ~,, 1' " 1 requestor.
The destination system includes a server and a parser and generator supporting the server. The parsers and geneldlur~ have access to one or more dictionaries constructed 20 in accordance with the dictionary described above for the purpose of processing data lldnsl"issiol1s between the source and de~li"dliol1 systems.

The distributed computer system described above may contain the de~li, Idlion and source systems within one or a local computer system.
In accordance with yet another aspect of the invention a data processing dictionary is provided, which is adapted for use by a computer system for encoding, storing, or retrieving hie,d,~.l,ical!y related data plucessi~g i"ru"" ' n. The dictionary is comprised of a group of one or more computer sed,~,l ,able definition trees relating to data processing 30 information of the computer system. The trees are derived from a first definition group which includes characteristics of coi"",al1ds, replies or data usable by the computer system. The characteristics include structure and value properties and ,~ ,liuns, if any, applying to the COI "" Id uds, replies or data. Each tree represents, respectively, a definition of a the command, reply or data to which it relates. Each tree includes a root node s identified by name. The root node includes information describing the type of definition tree concerned (i.e. whether it relates to a command, reply or data), and may include one or more internal or terminal descendd"l nodes, which nodes represent components of the definition represented by the tree. The descendent nodes include level information describing the level of the node within its tree. The nodes may include attribute information, 10 and may include value requirements relating to data processing information represented by the nodes.

It may prove advantageous for some of the nodes of the tree to be linked to data stored by the data processing system for, ~pr~se"li"g or accessing the data stored.

DETAILED DESCRIPTION OF THE INVENTION
In the invention described herein below the definitions of DDM uc l"",ands, replies, and data are stored in command, reply, and data trees, respectively.

20 This invention which will be termed the DDM Dictionary Structure Optimizer (including method and means) (DDSO) compacts the definition of nodes of the DDM command andreply data trees by retaining only the il Iru~ ", ' .1 necessary for parsing and generation of the DDM data streams. DDSO also asse" ,bles the definition of a DDM command, reply, or data by sequencing the cor,,,ua~ d nodes in the cont:spol1di"9 tree in a depth first 2s search manner. Definitions are created by first scanning the DDM Architecture document (which may be on line advantageously) and then by extracting the necessary information.
Then, each of the definitions is assembled. In order to explain DDSO, it is first described how to create the DDM Dictionary structure of the invention from the DDM architecture document, then what the storage and retrieval methodologies are, and the formal 30 specification of the definition syntax. Finally, we discuss the advantages and disadvantages of DDSO are ~iccl lcserl CREATING THE DDM DICTIONARY DATA STRUCTURE
The DDM Dictionary Data Structure is a compactform of definitions derived from selections s of the dictionary defined by the DDM architecture document. Each definition is expressed as a tree (having one or more nodes) in a linear form, and preferably expresses it in depth first search form, with each of the nodes defined in a compact form. In general, the steps are the following:

0 Step 0:(Extraction Stage) Get all the codepoints (identifiers of the nodes) for the trees required in the forest. The DDM architecture provides a network of nodes that are pointing to each other. This stage extracts the nodes needed for the trees of the ai''F ' ' 1. Only the root nodes are given to the Extraction Stage. This step calculates which nodes are needed for the definitions.

Step 1: ( Compaction Stage ) Scan all the DDM files created in step 0 for essential information, i.e. the top level codepoint for each node and all node pa~d",~ . Retain the information in DDSO form for the pdldll It~tel . The specifics of the DDSO form are described below . An example of DDSO form is: "RN1: 2401,~255", which indicates attributes (RN), level in the tree (1), unique identifier (2401 ) and length attribute (~255).

Step 2: ( Assembly Stage ) This step asse",bles (expands) each of the pa,d",~ . This means that if a paldlllc~ r 2s itself has parameters (i.e. it is a parent) then the children are added in a depth first search manner, and they are given one level higher than that of the parent.

ADDG (Automated DDM Dictionary Generator) is a convenient tool which can be usedto create one or more DDM Dictionary data structures (dictionaries) from the DDMarchitecture document. ADDG has three steps, as depicted in Figure 12:

1. Generate DDMTXT: This exec steps through the DDM architecture document extracting the i"r~,r",dliun required by the user. This includes the root nodes specified by the user as well as all the nodes required in the expansion of the root nodes. Each of these nodes is extracted into a file with filename equal to the DDM mnemonic term and a file type of 5 DDMTXT. Other files are generated such as DDM FLVL which provides a list of all DDM
terms which are going to be expanded; EXPCDPT FILE which provides a list of all valid part gp~ ions (a part specification specifies whether the DDM object is a command reply or data object) and their coll~a~Jol1dillg DDM codepoints and DDM HEX which provides a list of all DDM mnemonics with corresponding codepoints. The 10 generate_DDMTXT high level flowchart is depicted in Figure 13.

2. Create DDM Definitions:
The Generate DDMTXT exec must be run before the Create_DDM_Definitions exec.
Create_DDM_Definitions creates the DDM_DEF FILE which contains a DDM definition for each DDM Term. It follows the specific rules that were setup in the DDSO form for the dictionary. Create_DDM_Definitions is depicted in Figure 14.

3. Assemble DDM Definitions The Generate_DDMTXT and Create_DDM_Definitions execs must have been executed 20 before this exec is run. This exec asse",L,les all top level DDM terms by asse", Ig parts of several DDM definitions. It also contains the source language specific ~Idl~:lllellla in order to store each definition. The definitions are stored in a file. Pseudocode for the Assemble DDM_Definitions is depicted in Figure 15.

2s The pseudocode for the ADDG tool is shown in Figure 16.

There are therefore two main operations involved in constructing the definition and these are compaction and assembly. Compaction involves storing each parameter in the compacted form while assembly is an expansion process that reassembles a complete 30 definition of a root node in depth first search format. It is possible to compact the definitions CA 02246940 l998-09-04 of each parameter without pe, rurl "i"9 the assembly. Resulting storage savings over LCF
will occur. However, the pe, run, Idl ,ce overhead of LCF to create the definition will have to be incurred, since the definition will have to be created at run-time as opposed to creating the definition before runtime, as is done in the instant invention. It is also possible to assemble the definition without compacting it. Due to the duplication of certain internal nodes, and large storage requirements for each node, this alternative may not prove attractive. However, if compaction and assembly are both done then maximum benefits may be obtained from the instant invention.

10 Storage'' :'lodolc=,y DDSO stores the DDM definition files in the format shown by the example depicted in Figures 17a-l. A DDM definition is a linear exul~ssiol1 of a tree, assembled in depth first search manner, and contains i"run"dliun required, namely: information required for the root node and information stored for non-root nodes. The root node requires 6 bytes for its definition and each non root node requires 11 bytes. If there are m nodes in the tree then the tree requires 11 m + 6 bytes. Hence, for N trees in a dictionary, 11 mN + 6N bytes are required. In addition, a small search table requires 6 bytes per tree, hence 6N bytes.
Therefore the total i,,,l,ler,,e,,ldliull requires 11mN + 12N bytes.

Note that in the example, the constants 11 and 6, i.e. the number of bytes per internal and root nodes respectively are slightly higher. Certain additional characters ( "/"'s) and punctuation (",") were added to improve human readability.

For the example ap,~' " 1, appruxi,,,dlt,ly 5088 bytes of data are required for the dictionary itself and a small lookup table of about 5 10 bytes for the purposes of searching .
Since the definition is already constructed, the cost of retrieval reduces to the cost of a search through the lookup table, eg. the cost using binary searching.

1. Information Stored for Root Node:
30 The following attribute i"rur",atiol1 is stored for the root node:

CA9-91-001 B 2s (a) Carrier Type: i.e. whether it is a request, reply, or data object. In DDM there is one general format for the request data stream structure. The request envelope (RQSDSS) fields must be specified in a certain order because they are not self-defining structures.
Only one command can be carried by a RQSDSS. Similarly, in DDM there is one general s format for the reply data stream structure. All fields must be specified in the order required because the reply envelope (RPYDSS) is not a self-defining structure. Similarly, the data object envelope (OBJDSS) has a pre-specified format, and carries all objects except the coillllldnds and reply messages. An OBJDSS however may carry multiple objects;

10 (b) The codepoint of the root node;

(c)Thelength~,l,a,d,.l~ ,li.,.Thelength,,l,a,aule,i~licincludesdescriptionsforfixedlength objects, variable length objects, objects with a maximum length, and objects with a minimum length.
2. I~Fum~dliull Stored for Internal Nodes and Leaves (terminal nodes):
The following attribute illFolllldliul1 is stored for non-root nodes:
(a) whether the node is Required, Optional, or Ignorable;
(b) whether the node (and its descende"t;,) are repeatable or not;
20 (c) the level or depth of the node in the tree;
(d) the length ~,l Idl dl,l~ ti., of that node.

The first attribute stored is the Required, Optional, or Ignorable attribute.

25 A Required attribute specifies that support or use of a parameter is required: when a pdlar"~l~risspecifiedasbein9requiredinaparameterlistforacommand~theparameter must be sent for that command . All receivers (of ll dnSI "i~siuns) supporting the command must recognize and process the parameter as defined. When specified in the pa,a" ,~
list of a reply message, the parameter must be sent for that reply message. All receivers 30 must accept the pdlalll~l~r.

An Optional attribute specifies that support or use of a parameter is optional. When a pa~ dl ~ ~elt~r is specified as being optional for a parameter in a parameter list for a command, the palalllt:l~r can optionally be sent for that command. All receivers supporting the command must recognize and process the parameter as defined and use the default value if it is not sent. When specified in the parameter list of a reply message, the parameter can optionally be sent for that reply message. All receivers must accept the parameter.

An Ignorable attribute specifies that a parameter can be ignored by the receiver of a command if the receiver does not provide the support requested. The parameter can be sent optionally by all senders. The parameter codepoint must be recognized by all receivers. The receiver can ignore the parameter value.

Next is the R~pe ' '-le or Not Repeatable attribute. A Rel)e ' ~~-le attribute specifies that a paldl"t~ r can be repeated. If it is specified as Not Repeatable it can't. There are no requirements that the elements of the list be unique, or that the elements of the list be in any order. The information stored for root and non root nodes is logically depicted in Figures 21-23.

For example, a top level node with the des~ ,liun " 1,200C,~ " has a carrier of 1 (request), codepoint of hex'200C' and variable length (i.e. up to an unspecified limit).

In addition, a paldm~ , or internal node, with the following description: " RN2:2408,~255 " means that the parameter is required, non-repeatable, has a codepoint of hex'2408' and has variable length of up to 255.
ORDERING OF THE PARAMETERS
Inthe~:",bodi",~:"ldescribedthepd,d",~ ,foreachfulltreearelistedinalinearfashion;
for example, for the tree depicted in Figure 18, the ordering of the pdl dl I l~ l definitions in the tree for depth first search is: N0, N1, L1, N2, N2.1, L2, N2.2, L3, N3, L4, N4, N4.1, N4.1a, L5, N4.1b, L6, N5, L7, where:

N stands for Node, and L stands for Leaf.
The order of the tree is ",ai"ldi"ed. The tree can be reconstituted in a I ,ie,d,.,l,i,,al form, since depth first search orderwas used, and depth i~,ru~"dliun was ",di"ldi"ed.
s Other Parameter Orderings: Because all the valid orderings in which DDM parameters sent are all of the orderings of depth first search (not just those limited to the left-to-right notation convention) it is more convenient to store the definition in this manner. It would be possible, but more expensive to store them in another order. Additional information, eg.
0 parent i~lfum~dliol1, would have to be added to the definition, so that the tree may be reconstructed from the linear form.

RETRIEVAL MECHANISM
In the embodiment of the invention described the retrieval " ,e~,l ,ar,i:" " is based on a simple search technique, a binary search. However, other suitable search methods can be used depending on the range of the codepoints, the values of the codepoints, the size of the forest to be il l ~,uleme, lled ~ etc.

DDM Dictionary Syntax Figure 19 depicts DDM dictionary definition syntax for cor"" ,ands, replies, and data using the ~:I"bodi"~el~l of the invention described herein.

I,,tc:,,u,t:ldlion Rules The rules describing DDM Dictionary syntax can be i"l~r,ul~l~d as follows:
3. ":=" means "is defined by", e.g. A := B means that A is defined by B.
4. "I" means logical or, eg. A := B I C, means that A is either defined as B or C.
5. Lower case characters represent terminal nodes of the definition and are defined as literals.
6 . Upper case characters represent non-terminal nodes and are defined as a collection of terminals and non-terminals.
7. quotes: Items in quotes are literals. For example 'B' means the letter B.

s Acronyms & Syntax used in Figure 19 Carrier indicates the DSS carrier 0 indicates the DSS carrier used for partial replies indicates the DSS carrier field RQSDSS (request DSS), used for co" " "ands;
2 indicates the DSS carrier field RPYDSS (reply DSS), used for replies;
10 3 indicates the DSS carrier field OBJDSS (object DSS), used for objects;
Codept indicates the DDM codepoint: identifier for the DDM term;
Maxlen indicates the maximum length of the DDM term;

Minlen indicates the minimum length of the DDM term; Level indicates the level of the DDM tree, i.e. indicates the level of nesting with the parameter; Length is the length of the DDM pd,d",~l~r; ~ means variable length; $ signals the end of the definition;
LOWERA indicates a lower level architecture used by DDM. This allows for DDM to 5 include other architectures.

The formal sperifi~tion of the definition basically means the following (still referring to Figure 19):

10 DDM_ENTRY: Line 1 is the top level entry and defines the root node. The root node can have either a request, reply or data object envelope and this is specified by the Carrier.
A carrier for the specific ~, ~" " 1 has four possible values, 0 through 3, but this can be extended for other types of envelopes. In addition to the carrier, the root node information includes the codepoint, Codept of the node and the length specification of the root node 1s (the length qper '-~tion of the root node is usually variable length although this is not required. The length specification can specify a fixed length field, a maximum length field, a minimum length field or a variable length field). The root node can be composed of DDM
objects, referred to as DDM_PARMS (first line in the formal spe~;iricdLion) or can be composed of objects of a lower level architecture and can either have itself a lower level 20 data value (Line 2) or can be a collection of lower level objects (Line 3).

DDM_PARMS: If the root node contains a collection of DDM objects and lower levelobjects, then this DDM definition is followed. The DDM object can either be (a) a terminal object (Line 4), with information such as required/optional/ignorable, It:pedIdble/non-2s repe~ le, level of the terminal object in the tree (with root node being level 1), thecodepoint and length characteristic; (b) A terminal object with lower level object contents, with the same cha,d"I~ Iics as the terminal object above (Lines 5-6); ~ Two DDM_PARMS objects. This allows a DDM_PARMS object to recursively define itself in order to allow more than one terminal object and more than one depth in the tree (line 7);
30 (d)OneDDM_PARMSobject.Thisisasyntactictricktoallowforthe'$'whichindicatesthe end of the object, and is required in the definition (Line 8).

LOWOBJ: Allows for the same structure as a DDM object and hence allows nesting and terminal nodes. The terminal nodes contain the same basic information as a DDM terminal s node (Lines 9-11).
Line 12: A carrier can have values ranging from '0' to '3'. This can be expanded to more values as the need arises.
Line 13: The level of the parameter in the tree. The root has level 1 and its children have level 2. If a node has level I then its children have level 1+1.
Line 14: Codept indicates any valid DDM codepoint.
Line 15: Length characteristic for DDM: For example, it may take on the following values: (a) dddd, such as 1233, which means fixed length of 1233, (b) ~ , which means variable length, ~3 ~maxlen, such as ~255 which means that the DDM object has a maximum length of 255, (d) minlen~, such as 255~, which means that the DDM object has length of at least 255. Note that there are only four characters for length. This can easily be expanded as needed Lines 16 and 17: Specification of minlen and maxlen Line 18: "roi" means that the parameter is either required, optional, or ignorable.
Line 19 :"rn" means that the parameter is either repeatable or not.
Line 20 :"d" is any valid digit from 0 to 9.

It is possible to modify the formal cpe ' " n of the syntax in various ways, without changing the intent and the meaning of the invention. Various ways of modifying it include:
(a) adding more carrier types, (b) adding more attributes to the root node, or to the 25 pard",~ nodes; as more attribute characteristics are added to the architecture, more attribute place holders or more valid values may be added to describe DDM;(~) length spe-,iricdliu"s could change such as to add more digits to one length spe~ifiCAtir~n~ or to add a pdldlll~::lel which has both minimum and maximum length l~lliulions. As DDM
evolves, the formal specification for the dictionary syntax will evolve as well.

Example: The files depicted in Figures 5a,b can be stored as follows:

Request:
1,200C,~ /ON2:2110,0022/RN2:2113,0068/RN2:2114,0008/ON2 :2132,0006$

Command Data:
3,200C,~ /ON2:2412,~ ,LOWERAIRR3:0010,~ /OR3:147A, ~ $

There are two degen~,dl~ cases one can look at to compare DDSO with LCF and RSM.0 These are:

(a) a tree with one node: while DDSO stores the node in compact form, LCF stores one node in one file; LCF still needs to scan the file, but does not need to perform the assembly. RSM in the case of the tree with one node reduces to LCF, since there are no 15 CASE statements ~csoci~ted with one node. Hence in the case of the tree with one node, DDSO still maintains its advantage of storage compaction, but is still slightly better than LCF and RSM in performance.

(b) A forest with one tree; in this case, DDSO avoids the binary search. LCF and RSM still 20 have to construct the definition. Hence, in the case of a forest with one tree, the invention has advantages.

HOW DDSO DEFINITIONS ARE USED
The DDSO definitions are retrieved in both the parsing and the yeneldliol1 processing of 2s DDM strings. Parsing means receiving a DDM string, checking its syntactic correctness and building the equivalent internal data structure for use by the local processor.
Generation means receiving an internal data structure and building the DDM string using the definition tree. Figure 20 depicts the parsing and generation process in a requester-serverdistributedsystem.Anap,~ I - " nprogramfirstsubmitsarequestininternalformat.
30 (Step 1) The request is translated into the DDM string by the geneldliol1 process (the generator consults the DDM Dictionary to do this).
(Step 2) Then, the request is sent to the server, which receives it. The parser translates the request into internal format by consulting the DDM dictionary for syntax verification.
(Step 3) Then, the internally formatted request is executed by the server. This can be one s of various different suitable types of servers such as file servers, or database servers.
(Step 4) The server issues one or more replies in internal format, which are translated by the generator (Generator consults the DDM Dictionary) into a DDM string or strings.
(Step 5) DDM reply is sent to the source system.
(Step 6) Finally, the source system's parser translates DDM reply into internal format 0 (Parser consults DDM Dictionary) and returns to the application program.

CONCEPTUAL LAYERING OF DDM
In the specific ~nlbo.li,~ I described the parser and generator advantageously share a common design which stems from pdllilior,i"g DDM data streams (DDM strings) into a series of layers.

The first, or topmost layer, Layer Zero, consists of a DDM Command or a DDM Reply, which constitutes a logical object. A request for parsing or yene,dli"g must always come at layer 0.
Next is Layer One, which is derived from breaking up this logical object into one or more Data Stream Structures, or DSSs (or data communications envelopes) which are linked to each other. For example, the DDM Command to execute an SQL Statement is accompanied by various pa, dl I Ic~ l b as well as command data (the SQL statement). DSSs 2s can include a command part and zero or more command data parts; or, a reply part and zero or more reply data parts; or, one or more reply data parts.

Layer Two consists of the structural properties of a tree without looking at the specific values of the nodes within that tree. An example of a structural property of the tree is the 30 length value at each node which is the sum of its children's length plus a constant (for its CA 02246940 l998-09-04 own length field and codepoint, or identifier).

Finally, Layer Three: consists of each node of the DDM Tree. Each node has structural properties in the tree and valid required values. Examples of the structural properties s within the tree include whether the node is required, optional, ignorable, repeatable, a collection, or a scalar. ( "Collection" refers to an internal node, and "scalar" refers to a leaf node). Examples of values of the nodes: Leaf nodes carry values and these values carry certain restrictions. For example, leaves may be of certain data types, such as enumerated value data types orthey may have certain length ,~t,iutio,)s, such as maximum length.
10 Non leaf nodes don't have values but have length ~ lions.

SOFTWARE ARCHITECTURE FOR DDM PARSING AND GENERATION
METHODS
1s There are three major levels of the DDM Parsing/Generation Process which correspond to the three layers ",e"tioned above, and are depicted in Figure 24.

The first level deals with the processing of a DDM Entry (Multiple Related Data Stream 20 Structures): or relating two logical DDM Objects together. For example, a command must always be followed by command data if it has any. The "links" between the two Data Stream Structures (DSSs) (command, command data objects) are established by the prucessi,)g of the DDM Entry. This level takes care of linking DSSs together, through various continuation bits, and ensures that the rules as defined by DDM architecture for 2s linkage are enforced.

The second level involves processing one Data Stream Structure at a time. This level takes one of the DSSs and looks at its internal structure. Each DSS is composed of a tree.
This level obtains the definition of the relevant DDM object from the DDM Dictionary, and then proceeds to step through the definition, and starts comparing it to the actual data received (parsing), or, uses it as a roadmap to generate the app,upridl~ data stream (y~nel dliun). While level 1 was concerned with the relationship between DSSs, level 2, the DDM layer, takes care of the relationships between the nodes within a DDM tree, with such activities as length checking for collection objects, etc.
s The third level (the action level) concerns itself with individual nodes which include: Action Execution, Action Specifics, and a Link to a Lower Level Architecture. The Action Execution sublevel is the next natural level down and deals with individual nodes. These nodes have properties, such as: required, optional, ignorable, repeatable, etc. It is the 10 responsibility of the Action Execution sublevel to ensure that required nodes are parsed or generated and that other structural properties of the codepoints are obeyed. T h e Action Specifics sublevel deals with the values in individual nodes. The nodes are either collection objects, (i.e. internal nodes: in which case they are composed of other DDM
nodes), or they are scalars (i.e. Ieaf nodes ). The collection objects have no specific values ~c50ri~tr-d with them. The scalars do, and it is the ,~spon ' " y of this sublevel of the hierarchy to ensure that the values parsed or generated are the correct ones. The length attribute is also verified against its corresponding definition in the dictionary. The third sublevel or the lower level architecture sublevel deals with more complex scalar objects defined in another architecture, such as the Formatted Data Object Content Architecture 20 developed by IBM Corporation.

The common Parser and Generator design provides the following advantages including maintainability, generality, and non-recursive ",~LI,odology.

2s M~il ILdil, - ' :' 'y is due to the fact that changes in the syntax of DDM are only limited to the action specifics portion. For example, if a parameter changes, it is very easy to locate the unique instance of its action in the code. Also, the common logic makes it easier to maintain the code. The Parsing and Generation processes use common data structures, such as the Length Tree Data Structure.

The code is very general, in that changes in the dictionary are localized to the action specifics (Generality). One could merely change the action specifics part and have a Parser and Generator for a Distributed File System Application, for example. The structure of DDM is followed and hence changes can easily be incorporated.
s The actions described above are for a Data Base Application. However, it would be relatively easy for a person skilled in the art herein to build a set of actions for another ~r ,~ of DDM and substitute the new set to achieve the intended results.

10 Another advantage of the use of the dictionary of the invention is that the method of use simulates recursion by having a completely expanded dictionary. That is, the DDM Tree is expanded in a depth-first search manner. Therefore, the method has the advantages of a recursive solution without the overhead of the actual recursion.

In terms of storage requirements DDSO shows useful advantages. The efficient utilization of storage is due to the fact that only essential i,,rulllldliun is retained. The dictionary is encoded into a specific format so that it will contain the definition in its most minimal form while still including information about all the nodes in the tree of the definition including the 20 optionality i, IFul " ,dLion about the node, the node's length information, and the node's level il IFul 11 Id~ioll~

Also, there is only one dictionary access per top level DDM definition. One dictionary access gives access to the entire definition as opposed to the definition of the node only.
2s By cou I,Udl i~on, LCF requires as many accesses as the number of pdl dl I It:~el ::H n the tree.
RSM requires one access per top level node, but only provides structural information for the top level node and not the entire definition tree.

In addition to being more storage efficient and requiring only one dictionary access to obtain the full definition, DDSO constructs the definition prior to compile time. Since the definition has been expanded prior to compilation, the recursive step is not done at run time which would be at the expense of the user. DDSO incurs the cost once per definition prior to compiling the code. DDSO uses binary searches into a table of top-level nodes.
DDSO could also utilize other search methods, such as hashing etc. LCF and RSM
5 appear to be limited to sequential search methods.

DDSO code is less complex. DDSO has a unique action for the same node and hence does not duplicate code unnecessarily. DDSO is independent of the pruy,d""l,i"g language. Also, DDSO can use a table driven method while RSM has hardcoded 10 programs. DDSO encodes the definitions as data. A change in DDM architecture would requireRsMtochan9ethepro9ramratherthaniustthedata Forclarity""ai"l~:nd"c~:~and simplicity, the table driven approach has advantages. Also, the method is expandable for future use. DDSO appears to be independent of plUyld"""i"g language, while RSM
appears limited to the number of nestings of CASE ~Idlu"le~, allowed in the 1s Ml,ulel~e~l' " n of programming languages.

DDSO compacts the definitions, and defines a grammar to describe DDM. The expansion of the trees is done before compile time, and hence the recursive step of LCF need not be done foreach DDM tree parsed orgenerated. DDSO is a table-driven method, in which the 20 table contains the node identifier followed by a pointer to the already expanded definition.

DDM DICTIONARY DATA STRUCTURE EXAMPLE
An example of a DDM dictionary according to the invention herein is depicted in Figures 1 7a-l. Some points to note about the example are:
1. Data Structures Used: In this example, a DDM Dictionary data structure and retrieval mechanism are f~iccllcserl It is composed of the following de-,ldldlions:
TABLE: a table COI Itdil liny.
--Sp~ and codepoint: used to search for a root level codepoint concdl~ndlud with the CpF ' " 1, which indicates: CD -command data, CP -command part, RD - reply data to distinguish between carrier types.

--Length of definition s --Pointer of definition: this points to the definition of the tree. This table is used for binary search. The specification and root level are listed in al~Jhab~:lical/numerical order.
TBLBASE: a pointer to the table used to remember the starting location of the o table.
TBL PTR: a pointer used to search through the table DDM_TBL: a template used in conjunction with TBL_PTR to search in the table and obtain the necessary fields.

1. Specific Method to Retrieve the Data:
(a) Find out part specification and codepoint in last four character positions.
(b) Do a binary search in the table to match desired codepoint. When found, then move to the definition buffer area.

The retrieval ",e,.l,ania", depicted in Figures 17k,1 is based on a simple binary search. However, other search methods can be used to fit the particular apF' ' m The above-described er"bo.li",ellb are merely illustrative of the ap;~" " 1 of the principles of the invention . Other dl I ang~l "e, Ib may be devised by those skilled in the art 2s without departing from the spirit and scope of the invention.

The present invention is not limited to the specifically disclosed ~:mbo.li",e"la, and variations and mo~ "' " ls may be made without departing from the scope of the present invention.

Claims (15)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. A computer program product for use in a computer system, said computer program product comprising a computer usable medium having embodied therein a data transmission dictionary, stored in a memory of a computer system for encoding, storing, or retrieving hierarchically related data transmission information comprising:
a plurality of computer searchable definition trees, each said tree representing a compacted request command, a compacted reply command, or a compacted object command, each said tree having a root node identifying a specific request command, reply command, or object command, each said tree having one or more internal or terminal descent nodes, each of said internal or terminal descent nodes representing components of the definition of one of said trees, wherein each of said trees is a linear, depth-first representation of said root node and the one or more internal or terminal descent nodes associated therewith, wherein each said tree is used to generate a specific request command, a specific reply command, or a specific object command therefrom, the generated command representing a data stream of information.
2. The computer program product of claim 1, wherein each said root node includesinformation relating to length restrictions for transmission information represented by the tree thereof.
3. The computer program product of claim 1, wherein each said internal or terminal descent node includes a requirement information indicating whether data transmission information represented by said node is required, optional or ignorable.
4. The computer program product of claim 3, wherein each said internal or terminal descent node also includes information regarding the length, repeatability or non-repeatability of data transmission information represented thereby.
5. The computer program product of claim 1, wherein the root node of each said tree is the sole accessible entry for said tree.
6. The computer program product of claim 1, wherein said plurality of trees may be stored entirely in a main memory of said computer system for use by parsing or generating programming.
7. A computer program product for use in a computer system, said computer program product comprising a data transmission dictionary for encoding, storing, or retrieving hierarchically related data transmission information for use by said computer system internally or in communication with another computer system comprising:
a plurality of computer searchable definition trees, each said tree representing a compacted request command, a compacted reply command, or a compacted object command, each said tree having a root node identifying a specific request command, reply command, or object command, each said tree having one or more internal or terminal descent nodes, each of said internal or terminal descent nodes representing components of the definition of one of said trees, wherein each of said trees is a linear, depth-first representation of said root node and the one or more internal or terminal descent nodes associated therewith, wherein each said tree is used to parse a specific request command, a specific reply command, or a specific object command in order to create one or more commands and parameters therefrom, said one or more commands and parameters being understood to a local processor.
8. A computer program product for use in a computer system, said computer program product comprising a computer usable medium having embodied therein a data processing dictionary for encoding, storing, or retrieving hierarchically related data processing information comprising:
a plurality of computer searchable definition trees, each said tree representing a compacted request command, a compacted reply command, or a compacted object command, each said tree having a root node identifying a specific request command, reply command, or object command, each said tree having one or more internal or terminal descent nodes, each of said internal or terminal descent nodes representing components of the definition of one of said trees, wherein each of said trees is a linear, depth-first representation of said root node and the one or more internal or terminal descent nodes associated therewith, wherein each said tree is used to generate a specific request command, a specific reply command, or a specific object command therefrom, the generated command representing a data stream of information, wherein each said tree is used to parse a specific request command, a specific reply command, or a specific object command in order to create one or more commands and parameters therefrom, said one or more commands and parameters being understood to a local processor.
9. The computer program product of claim 8, wherein said one or more internal orterminal descent nodes are linked to data stored by a data processing system forrepresenting or accessing said stored data.
10. The computer program product of claim 9, wherein each said internal or terminal descent node includes a requirement as to whether data processing information represented by said node is required, optional or ignorable.
11. The computer program product of claim 10, wherein each said internal or terminal descent node also includes information regarding the length, repeatability or non-repeatability of data processing information represented by said node.
12. A computer program product for use in a computer system, said computer program product comprising a computer usable medium having embodied therein a data processing dictionary for encoding, storing, or retrieving hierarchically related data processing information for use by said computer system internally or in communication with another computer system comprising:
a plurality of computer searchable definition trees, each said tree representing a compacted request command, a compacted reply command, or a compacted object command, said compacted request command, compacted reply command, or compacted object command respectively representing a full request command data stream, a full reply command data stream, or a full object command data stream, each said full command data stream representing a mapped data structure understood across a plurality of servers and client located remotely from one another, each said tree having a root node identifying a full request command data stream, a reply command data stream, or an object command data stream, each said tree having one or more internal or terminal descent nodes, each of said internal or terminal descent nodes representing components of the definition of one of said trees, wherein each of said trees is a linear, depth-first representation of said root node and the one or more internal or terminal descent nodes associated therewith, wherein each said tree is used to generate a full request command data stream, afull reply command data stream, or a full object command data stream therefrom, wherein each said tree is used to parse a full request command data stream, a full reply command data stream, or a full object command data stream in order to create one or more additional commands and parameters therefrom, said one or more additional commands and parameters being understood to a local processor.
13. A computer program product for use in a computer system, said computer program product comprising a computer usable medium having embodied therein a data transmission dictionary, stored in a memory of a computer system, for encoding, storing, or retrieving hierarchically related data transmission information comprising:
a plurality of computer searchable definition trees, each said tree representing a compacted request command, a compacted reply command, or a compacted object command, said compacted request command, compacted reply command, or compacted object command respectively representing a full request command data stream, a full reply command data stream, or a full object command data stream, each said full command data stream representing a mapped data structure understood across a plurality of servers and clients located remotely from one another, each said tree having a root node identifying a full request command data stream, a reply command data stream, or an object command data stream, wherein each said tree is used to generate a full request command data stream, afull reply command data stream, or a full object command data stream therefrom, wherein each said tree is used to parse a full request command data stream, a full reply command data stream, or a full object command data stream in order to create one or more additional commands and parameters therefrom, said one or more additional commands and parameters being understood to a local processor.
14. The computer program product of claim 13, wherein each said tree has one or more internal or terminal descent nodes, each of said internal or terminal descent nodes representing components of the definition of one of said trees, wherein each of said trees is a linear, depth-first representation of said root node and the one or more internal or terminal descent nodes associated therewith.
15. The computer program product of claim 14, wherein said internal or terminal descendent nodes include attribute information, and said nodes may include valuerequirements relating to transmission information represented by said nodes.
CA002246940A 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system Expired - Fee Related CA2246940C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CA002246940A CA2246940C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA002246940A CA2246940C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
CA002039365A CA2039365C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CA002039365A Division CA2039365C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system

Publications (2)

Publication Number Publication Date
CA2246940A1 CA2246940A1 (en) 1992-09-29
CA2246940C true CA2246940C (en) 2003-03-11

Family

ID=4147293

Family Applications (5)

Application Number Title Priority Date Filing Date
CA002039365A Expired - Fee Related CA2039365C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
CA002246948A Expired - Fee Related CA2246948C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
CA002246946A Expired - Fee Related CA2246946C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
CA002246940A Expired - Fee Related CA2246940C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
CA002246949A Expired - Fee Related CA2246949C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system

Family Applications Before (3)

Application Number Title Priority Date Filing Date
CA002039365A Expired - Fee Related CA2039365C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
CA002246948A Expired - Fee Related CA2246948C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
CA002246946A Expired - Fee Related CA2246946C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system

Family Applications After (1)

Application Number Title Priority Date Filing Date
CA002246949A Expired - Fee Related CA2246949C (en) 1991-03-28 1991-03-28 Method and means for encoding storing and retrieving hierarchical data processing information for a computer system

Country Status (3)

Country Link
US (3) US5632031A (en)
JP (1) JP3272014B2 (en)
CA (5) CA2039365C (en)

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2039365C (en) * 1991-03-28 2000-01-18 T. Dora Velissaropoulos Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
US5778223A (en) * 1992-03-17 1998-07-07 International Business Machines Corporation Dictionary for encoding and retrieving hierarchical data processing information for a computer system
US5953723A (en) * 1993-04-02 1999-09-14 T.M. Patents, L.P. System and method for compressing inverted index files in document search/retrieval system
US5991751A (en) * 1997-06-02 1999-11-23 Smartpatents, Inc. System, method, and computer program product for patent-centric and group-oriented data processing
US6339767B1 (en) * 1997-06-02 2002-01-15 Aurigin Systems, Inc. Using hyperbolic trees to visualize data generated by patent-centric and group-oriented data processing
US6963920B1 (en) * 1993-11-19 2005-11-08 Rose Blush Software Llc Intellectual asset protocol for defining data exchange rules and formats for universal intellectual asset documents, and systems, methods, and computer program products related to same
EP0826181A4 (en) * 1995-04-11 2005-02-09 Kinetech Inc Identifying data in a data processing system
US6604117B2 (en) 1996-03-19 2003-08-05 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
JP2000507375A (en) * 1996-03-19 2000-06-13 シーベル システムズ,インコーポレイティド Network maintenance method of partially replicated database system
US5873096A (en) 1997-10-08 1999-02-16 Siebel Systems, Inc. Method of maintaining a network of partially replicated database system
US6081798A (en) * 1996-04-24 2000-06-27 International Business Machines Corp. Object oriented case-based reasoning framework mechanism
US5778378A (en) * 1996-04-30 1998-07-07 International Business Machines Corporation Object oriented information retrieval framework mechanism
US5857184A (en) * 1996-05-03 1999-01-05 Walden Media, Inc. Language and method for creating, organizing, and retrieving data from a database
US5721910A (en) * 1996-06-04 1998-02-24 Exxon Research And Engineering Company Relational database system containing a multidimensional hierachical model of interrelated subject categories with recognition capabilities
US5809507A (en) * 1996-07-01 1998-09-15 Sun Microsystems, Inc. Method and apparatus for storing persistent objects on a distributed object network using a marshaling framework
EP0825506B1 (en) 1996-08-20 2013-03-06 Invensys Systems, Inc. Methods and apparatus for remote process control
US5781910A (en) * 1996-09-13 1998-07-14 Stratus Computer, Inc. Preforming concurrent transactions in a replicated database environment
US5852818A (en) * 1996-12-23 1998-12-22 Oracle Corporation Non-recursive method for parameter evaluation within an information management system
JP3484325B2 (en) * 1997-09-02 2004-01-06 富士通株式会社 Agent system device with conditional answer and program storage medium
JP3627055B2 (en) * 1998-02-10 2005-03-09 インターナショナル・ビジネス・マシーンズ・コーポレーション Cache object selection method, cache discard method, and computer
US6105035A (en) * 1998-02-17 2000-08-15 Lucent Technologies, Inc. Method by which notions and constructs of an object oriented programming language can be implemented using a structured query language (SQL)
US6205482B1 (en) * 1998-02-19 2001-03-20 Ameritech Corporation System and method for executing a request from a client application
US6629132B1 (en) * 1998-12-23 2003-09-30 Novell, Inc. Predicate indexing of data stored in a computer with application to indexing cached data
US6345266B1 (en) * 1998-12-23 2002-02-05 Novell, Inc. Predicate indexing for locating objects in a distributed directory
US7966328B2 (en) 1999-03-02 2011-06-21 Rose Blush Software Llc Patent-related tools and methodology for use in research and development projects
US7716060B2 (en) 1999-03-02 2010-05-11 Germeraad Paul B Patent-related tools and methodology for use in the merger and acquisition process
WO2000070417A1 (en) * 1999-05-17 2000-11-23 The Foxboro Company Process control configuration system with parameterized objects
US7089530B1 (en) * 1999-05-17 2006-08-08 Invensys Systems, Inc. Process control configuration system with connection validation and configuration
US6370534B1 (en) * 1999-06-01 2002-04-09 Pliant Technologies, Inc. Blocking techniques for data storage
US6788980B1 (en) 1999-06-11 2004-09-07 Invensys Systems, Inc. Methods and apparatus for control using control devices that provide a virtual machine environment and that communicate via an IP network
US6353820B1 (en) * 1999-09-29 2002-03-05 Bull Hn Information Systems Inc. Method and system for using dynamically generated code to perform index record retrieval in certain circumstances in a relational database manager
US6353819B1 (en) * 1999-09-29 2002-03-05 Bull Hn Information Systems Inc. Method and system for using dynamically generated code to perform record management layer functions in a relational database manager
US6125395A (en) * 1999-10-04 2000-09-26 Piiq.Com, Inc. Method for identifying collections of internet web sites with domain names
US20020035611A1 (en) * 2000-01-14 2002-03-21 Dooley Thomas P. System and method for providing an information network on the internet
US6711574B1 (en) * 2000-02-01 2004-03-23 Emc Corporation Retrieval of management information
US6802022B1 (en) 2000-04-14 2004-10-05 Stratus Technologies Bermuda Ltd. Maintenance of consistent, redundant mass storage images
US6901481B2 (en) 2000-04-14 2005-05-31 Stratus Technologies Bermuda Ltd. Method and apparatus for storing transactional information in persistent memory
FR2811101B1 (en) * 2000-07-03 2002-09-20 Axicare METHOD FOR PROCESSING STRUCTURED DATA USING OBJECT ORIENTED COMPUTER LANGUAGE
US6622137B1 (en) * 2000-08-14 2003-09-16 Formula Telecom Solutions Ltd. System and method for business decision implementation in a billing environment using decision operation trees
US6941294B2 (en) * 2000-08-28 2005-09-06 Emotion, Inc. Method and apparatus for digital media management, retrieval, and collaboration
GB0023169D0 (en) * 2000-09-20 2000-11-01 Ibm Message parsing in message processing systems
US20020129335A1 (en) * 2000-12-18 2002-09-12 Philips Electronics North America Corp. Robust logging system for embedded systems for software compilers
US6948010B2 (en) * 2000-12-20 2005-09-20 Stratus Technologies Bermuda Ltd. Method and apparatus for efficiently moving portions of a memory block
US6886171B2 (en) * 2001-02-20 2005-04-26 Stratus Technologies Bermuda Ltd. Caching for I/O virtual address translation and validation using device drivers
US6766413B2 (en) 2001-03-01 2004-07-20 Stratus Technologies Bermuda Ltd. Systems and methods for caching with file-level granularity
US6874102B2 (en) * 2001-03-05 2005-03-29 Stratus Technologies Bermuda Ltd. Coordinated recalibration of high bandwidth memories in a multiprocessor computer
US6643665B2 (en) 2001-05-10 2003-11-04 Hewlett-Packard Development Company, Lp. System for setting image intent using markup language structures
US6996750B2 (en) * 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
WO2003065172A2 (en) * 2002-01-30 2003-08-07 Core Sdi, Inc. Framework for maintaining information security in computer networks
US6904320B2 (en) 2002-02-14 2005-06-07 Pacesetter, Inc. Sleep apnea therapy device using dynamic overdrive pacing
US6928324B2 (en) 2002-02-14 2005-08-09 Pacesetter, Inc. Stimulation device for sleep apnea prevention, detection and treatment
US6999817B2 (en) 2002-02-14 2006-02-14 Packsetter, Inc. Cardiac stimulation device including sleep apnea prevention and treatment
US7627585B2 (en) * 2002-12-02 2009-12-01 Sap Ag Data structure mapping and packaging
US7272818B2 (en) * 2003-04-10 2007-09-18 Microsoft Corporation Creation of an object within an object hierarchy structure
WO2004107112A2 (en) * 2003-05-23 2004-12-09 Snapbridge Software, Inc. Data federation methods and system
US7630994B1 (en) 2004-03-12 2009-12-08 Netapp, Inc. On the fly summarization of file walk data
US7844646B1 (en) * 2004-03-12 2010-11-30 Netapp, Inc. Method and apparatus for representing file system metadata within a database for efficient queries
US7539702B2 (en) * 2004-03-12 2009-05-26 Netapp, Inc. Pre-summarization and analysis of results generated by an agent
US7293039B1 (en) 2004-03-12 2007-11-06 Network Appliance, Inc. Storage resource management across multiple paths
US8756521B1 (en) 2004-09-30 2014-06-17 Rockwell Automation Technologies, Inc. Systems and methods for automatic visualization configuration
US7634502B2 (en) * 2005-01-24 2009-12-15 Paul Colton System and method for improved content delivery
US7792860B2 (en) * 2005-03-25 2010-09-07 Oracle International Corporation System for change notification and persistent caching of dynamically computed membership of rules-based lists in LDAP
US7672737B2 (en) * 2005-05-13 2010-03-02 Rockwell Automation Technologies, Inc. Hierarchically structured data model for utilization in industrial automation environments
CN101529345B (en) * 2005-05-13 2011-10-19 洛克威尔自动控制技术股份有限公司 Distributed database in an industrial automation environment
US7676281B2 (en) * 2005-05-13 2010-03-09 Rockwell Automation Technologies, Inc. Distributed database in an industrial automation environment
US8799800B2 (en) 2005-05-13 2014-08-05 Rockwell Automation Technologies, Inc. Automatic user interface generation
US7809683B2 (en) 2005-05-13 2010-10-05 Rockwell Automation Technologies, Inc. Library that includes modifiable industrial automation objects
US7650405B2 (en) 2005-05-13 2010-01-19 Rockwell Automation Technologies, Inc. Tracking and tracing across process boundaries in an industrial automation environment
JP4200456B2 (en) * 2005-12-28 2008-12-24 ブラザー工業株式会社 Peripheral device, program, and control method
US8185576B2 (en) 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US7660978B2 (en) * 2007-03-07 2010-02-09 International Business Machines Corporation System and method to provide device unique diagnostic support with a single generic command
US8265789B2 (en) * 2007-12-03 2012-09-11 Electronics And Telecommunications Research Institute Network-based robot system and method for action execution of robot
RU2495476C2 (en) 2008-06-20 2013-10-10 Инвенсис Системз, Инк. Systems and methods for immersive interaction with actual and/or simulated facilities for process, environmental and industrial control
US8463964B2 (en) 2009-05-29 2013-06-11 Invensys Systems, Inc. Methods and apparatus for control configuration with enhanced change-tracking
US8127060B2 (en) 2009-05-29 2012-02-28 Invensys Systems, Inc Methods and apparatus for control configuration with control objects that are fieldbus protocol-aware
CN102012900B (en) * 2009-09-04 2013-01-30 阿里巴巴集团控股有限公司 An information retrieval method and system
US9392072B2 (en) 2010-04-15 2016-07-12 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8484401B2 (en) 2010-04-15 2013-07-09 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US8984533B2 (en) 2010-04-15 2015-03-17 Rockwell Automation Technologies, Inc. Systems and methods for conducting communications among components of multidomain industrial automation system
US9176712B2 (en) 2013-03-14 2015-11-03 Oracle International Corporation Node Grouped Data Marshalling
CN104484337B (en) * 2014-11-19 2018-09-14 西安电子科技大学 The storage method of XML document
CN113590348A (en) * 2021-07-26 2021-11-02 京东科技控股股份有限公司 Parameter transmission method, device, equipment and medium based on tree structure

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5345587A (en) * 1988-09-14 1994-09-06 Digital Equipment Corporation Extensible entity management system including a dispatching kernel and modules which independently interpret and execute commands
US5448726A (en) * 1989-10-23 1995-09-05 International Business Machines Corporation Data base management system with data dictionary cache including a single loadable object descriptor
US5257365A (en) * 1990-03-16 1993-10-26 Powers Frederick A Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
US5202977A (en) * 1990-07-13 1993-04-13 Premenos Corp. Edi translation system using plurality of communication processes and de-enveloping procedure corresponding to transmitted communication process
US5327559A (en) * 1990-10-23 1994-07-05 International Business Machines Corporation Remote and batch processing in an object oriented programming system
CA2039365C (en) * 1991-03-28 2000-01-18 T. Dora Velissaropoulos Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
US5475587A (en) * 1991-06-28 1995-12-12 Digital Equipment Corporation Method and apparatus for efficient morphological text analysis using a high-level language for compact specification of inflectional paradigms
US5481721A (en) * 1991-07-17 1996-01-02 Next Computer, Inc. Method for providing automatic and dynamic translation of object oriented programming language-based message passing into operation system message passing using proxy objects

Also Published As

Publication number Publication date
JP3272014B2 (en) 2002-04-08
US5970494A (en) 1999-10-19
CA2246946A1 (en) 1992-09-29
US5632031A (en) 1997-05-20
CA2039365A1 (en) 1992-09-29
CA2246948C (en) 1999-09-14
CA2039365C (en) 2000-01-18
US5659727A (en) 1997-08-19
JPH0512095A (en) 1993-01-22
CA2246946C (en) 1999-09-14
CA2246948A1 (en) 1992-09-29
CA2246949A1 (en) 1992-09-29
CA2246940A1 (en) 1992-09-29
CA2246949C (en) 2000-04-18

Similar Documents

Publication Publication Date Title
CA2246940C (en) Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
US5778223A (en) Dictionary for encoding and retrieving hierarchical data processing information for a computer system
US5664181A (en) Computer program product and program storage device for a data transmission dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system
US5754845A (en) Portable and dynamic distributed applications architecture
US7792852B2 (en) Evaluating queries against in-memory objects without serialization
US20020078041A1 (en) System and method of translating a universal query language to SQL
US6154747A (en) Hash table implementation of an object repository
US5291583A (en) Automatic storage of persistent ASN.1 objects in a relational schema
US7386541B2 (en) System and method for compiling an extensible markup language based query
US7454429B2 (en) Declarative Dispatch
US20070219959A1 (en) Computer product, database integration reference method, and database integration reference apparatus
JP2005018776A (en) Query intermediate language method and system
CN108959626B (en) Efficient automatic generation method for cross-platform heterogeneous data profile
WO1997048039A1 (en) System and method for relational to object mapping
US5687365A (en) System and method for creating a data dictionary for encoding, storing, and retrieving hierarchical data processing information for a computer system
US7124137B2 (en) Method, system, and program for optimizing processing of nested functions
US20040049495A1 (en) System and method for automatically generating general queries
CA2246943A1 (en) Method and means for encoding storing and retrieving hierarchical data processing information for a computer system
KR20020061888A (en) Method for developing xml application program
Chen et al. Set-at-a-time Access to XML through DOM
Chen Supporting Set-at-a-time extensions for XML through DOM

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed