WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Flexible distributed network database containing configuration information for a network divided into domains    

Get related patents on CD
United States Patent5664170   
Link to this pagehttp://www.wikipatents.com/5664170.html
Inventor(s)Taylor; Bradley (Palo Alto, CA)
AbstractA network database. The network database is arranged in a plurality of domains in a logical hierarchy. Each domain of the hierarchy represents a body of information associated with a logically related group of users or related group of computers. A relative naming scheme is implemented in which a domain stores the names of only its parent domain and child domains. This permits reconfiguration of the network to be accomplished without changing the database structure. Each domain stores information in a hierarchical structure known as a "directory." Each directory consists of a list of zero or more "properties," each having an associated name and ordered list of values.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Drawing from US Patent 5664170
Flexible distributed network database containing configuration

     information for a network divided into domains - US Patent 5664170 Drawing
Flexible distributed network database containing configuration information for a network divided into domains
Inventor     Taylor; Bradley (Palo Alto, CA)
Owner/Assignee     NeXt Computer, Inc. (Redwood City, CA)
Patent assignment
All assignments
Company News
Publication Date     September 2, 1997
Application Number     08/543,322
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     October 16, 1995
US Classification     709/220 707/102 709/226
Int'l Classification     G06F 017/30 G06F 015/16
Examiner     Black; Thomas G.
Assistant Examiner     Choules; Jack M.
Attorney/Law Firm     Fish & Richardson P.C.
Address
Parent Case     This is a continuation of application Ser. No. 08/255,556 filed Jun. 8, 1994, which issued as U.S. Pat. No. 5,459,863 on Oct. 17, 1995, which is a continuation of application Ser. No. 07/953,077 filed Sep. 29, 1992, abandoned, which is a divisional of application Ser. No. 07/520,091 filed May 7, 1990, abandoned.
Priority Data    
USPTO Field of Search     395/600 395/650 395/425 395/325 395/200 395/200.03 395/200.1
Patent Tags     flexible distributed network database containing configuration information network divided into domains
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5414812
Filip
707/103R
May,1995

[0 after 0 votes]
5410691
Taylor
707/100
Apr,1995

[0 after 0 votes]
5386525
Noack
707/100
Jan,1995

[0 after 0 votes]
5313629
Abraham
707/103R
May,1994

[0 after 0 votes]
5237654
Shackelford
715/804
Aug,1993

[0 after 0 votes]
5191650
Kramer
709/227
Mar,1993

[0 after 0 votes]
5187790
East
719/316
Feb,1993

[0 after 0 votes]
5155847
Kirouac
709/221
Oct,1992

[0 after 0 votes]
5142670
Stone
711/113
Aug,1992

[0 after 0 votes]
5136716
Harvey
709/228
Aug,1992

[0 after 0 votes]
5129083
Cutler
707/103R
Jul,1992

[0 after 0 votes]
5101348
Arrowood
709/242
Mar,1992

[0 after 0 votes]
5055999
Frank
711/163
Oct,1991

[0 after 0 votes]
5049873
Robins
340/825.01
Sep,1991

[0 after 0 votes]
4961134
Crus
707/8
Oct,1990

[0 after 0 votes]
4961139
Hong
707/1
Oct,1990

[0 after 0 votes]
4937736
Chang
711/208
Jun,1990

[0 after 0 votes]
4914571
Baratz
707/10
Apr,1990

[0 after 0 votes]
4903196
Pomerene
712/217
Feb,1990

[0 after 0 votes]
4897782
Bennett
707/10
Jan,1990

[0 after 0 votes]
4888681
Barnes
707/101
Dec,1989

[0 after 0 votes]
4875159
Cary
707/203
Oct,1989

[0 after 0 votes]
4873517
Baratz
370/236
Oct,1989

[0 after 0 votes]
4827411
Arrowood
707/206
May,1989

[0 after 0 votes]
4775955
Liu
711/145
Oct,1988

[0 after 0 votes]
4731734
Gruner
711/202
Mar,1988

[0 after 0 votes]
4716586
Bauer
711/163
Dec,1987

[0 after 0 votes]
4604694
Hough
710/200
Aug,1986

[0 after 0 votes]
4584639
Hardy
726/2
Apr,1986

[0 after 0 votes]
4532625
Stover
370/225
Jul,1985

[0 after 0 votes]
4525780
Bratt
711/163
Jun,1985

[0 after 0 votes]
4354227
Hays, Jr.
710/240
Oct,1982

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B

[0 market size comments]
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 market share comments]
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 license availability comments]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


I claim:

1. A computer-implemented method for storing configuration information for a network of computers comprising performing on at least one computer of the network the steps of:

creating a domain hierarchy representing a logical organization of the network and consisting of a plurality of domains, each domain associated with one or more computers on the network, each domain in the hierarchy including a name and a server computer address for each domain logically located either directly above or directly below the domain;

creating within each of the domains a database of configuration information for storing information associated with the domain and information associated with resources and services of the computers associated with domain; and,

storing each database on storage media of at least one of the computers associated with its domain.

2. The method of claim 1 where the server computer address is an IP address.

3. The method of claim 1 where the step of creating a domain hierarchy is performed by instructions configured to create a hierarchy of any number of one or more levels.

4. The method of claim 1 where each database of configuration information stores information in a list of properties, each comprising a property name and a list of values associated with the property name.

5. The method of claim 1 further comprising:

restricting access by users to values associated with a first property by creating a second property associated with the first property, the second property having values that identify permissible access to values associated with the first property;

comparing a user's identification with the second property's values when the user attempts to access the first property's values; and

denying access by the user to the first property's values when the second property's values do not include the user's identification for the access.

6. The method of claim 5 where the user attempting to access the first property's values is not a network administrator.

7. The method of claim 1 where each database of configuration information is a directory tree including one or more directories for storing configuration information.

8. The method of claim 7 further comprising modifying the database of configuration information in response to a user request by adding a directory to the database of configuration information.

9. The method of claim 7 further comprising modifying the database of configuration information in response to a user request by removing a directory from the database of configuration information.

10. The method of claim 1 where

each database of configuration information is a directory tree including one or more directories for storing configuration information;

each directory stores information in a list of properties; and

each property consists of a property name and a list of values associated with the property name.

11. The method of claim 1 where a copy of each database of configuration information is stored on computers associated with the domain associated with the database.

12. The method of claim 1 further comprising steps for maintaining data integrity of data in the database of configuration information comprising:

assigning to an instance identifier to the data when the data is created; and

changing the instance identifier whenever its assigned data is changed.

13. The method of claim 12 further comprising requiring an identifier value as an element of a request to change the data, which value must agree with the then-current value of the instance identifier of the data for the request to be honored.

14. The method of claim 1 where

each domain has one computer in the domain that is a master server, which is a server that allows information to be both read from and written to the database of configuration information for the domain, called the domain information; and

a change in domain information made by a master server for a domain is propagated incrementally by the master server to any clone servers in the domain, which are servers that allow their copies of domain information to be read but not written except at the request of their master server.

15. The method of claim 14 where

the master server for each domain has stored a copy of the domain information for the domain and periodically performs the steps of generating a check sum of its copy of the domain information for the domain and providing the check sum to all clone servers in the domain; and where the method further comprises

transferring the entire domain information from a master server to a clone server whenever a periodic check determines that a master-provided check sum does not agree with a check sum generated by the clone of the clone's copy of the domain information.

16. The method of claim 1 further comprising modifying the database of configuration information in response to a user request by adding a property to the database of configuration information.

17. The method of claim 1 further comprising modifying the database of configuration information in response to a user request by removing a property to the database of configuration information.

18. A method for adding a new domain of configuration information to a hierarchy of domains describing an operating network of computers, comprising:

creating a master server for the new domain on one of the computers in the new domain; and

during operation of the network of computers dynamically updating (i) any domain directly above the new domain by updating its configuration information to include the new domain as a child (ii) any domains directly below the new domain by updating their configuration information to make the new domain their parent, and (iii) the former parent domains of any domains for which the new domain became the parent by being inserted into the hierarchy by removing as children the domains that became children of the new domain;

where

after all of the updating steps are performed, the configuration information of the new domain includes a server computer address for each parent and child domain of the new domain.

19. A method for removing an old domain of configuration information from a hierarchy of domains describing an operating network of computers, comprising:

during operation of the network of computers dynamically updating (i) any domain directly above the old domain by updating its configuration information to include as children all the children of the old domain, and (ii) any domains directly below the old domain by updating their configuration information to make the parent of the old domain their parent;

where

after all of the updating steps are performed, the configuration information of any former parent of the old domain includes a server computer address for each former child of the old domain and any former child of the old domain includes a server computer address for each former parent.

20. A method for storing logical configuration information in a network database comprising:

executing on at least one computer of the network operations for creating a list of properties of a directory of a directory tree of a domain associated with one or more computers of the network, each property of the list of properties containing a name and a list of values, each property defining a subset of the logical configuration information;

said operations defining a name for each property;

said operations defining a list of values associated with each property name, the values representing the subset of the logical configuration information associated with the property; and,

said operations storing the property list, names and values on a computer associated with the domain of the directory tree of the property list.

21. A method of storing configuration information for a network of computers, the method comprising the steps of:

on at least one computer of the network, executing operations for creating a domain hierarchy consisting of a plurality of domains, said domain hierarchy representing a logical organization of the network, each domain associated with computers on the network;

said operations creating a directory tree within each of the domains, each said directory tree including one or more directories for storing information associated with the corresponding domain and information associated with resources and services of the computers available to that domain;

said operations storing each directory tree on storage media of a master computer within the domain associated with the directory tree; and

said operations storing a copy of at least one of the directory trees on storage media of a clone server computer (in the domain associated with the at least one directory tree) different from the master server computer;

wherein each directory includes a list of properties that define a subset of the configuration information, each property having a property name and a list of associated values.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to the field of networks and in particular to maintaining configuration information in a collection of databases.

2. Background Art

In modern computing environments, it is commonplace to employ multiple computers or workstations linked together in a network to communicate between, and share data with, network users. A network also may include resources, such as printers, modems, file servers, etc., and may also include services, such as electronic mail. Information about the computers on the network, and the users, resources and services available to those computers, is referred to as "configuration information."

In some prior art systems, configuration information is typically stored in flat ASCII files. A disadvantage of storing configuration information in a such files occurs when users seek access to configuration information to identify available resources and there is typically more information available in that file than the user requires. As a result, the user must search through unneeded information to find the information desired. It may be desired to define different levels and amounts of information associated with different levels of users.

One disadvantage of many prior art network systems is that only one level of user is defined. In other words, each user or computer is considered "equal" in the network hierarchy. This limits the ability to define different levels of information Another drawback of prior art network systems is that they lack flexible directory schemes. Only one level of directories typically can be defined, and directories are typically "read only." Writing to directories is possible only in a few special circumstances. Another disadvantage of some prior art systems is that if backup copies of the network database are stored on different computers, the only method of updating the database is to transfer complete copies of the master database to the backup systems.

Other prior art network databases also typically have highly restrictive directories. The ISO Directory Service (X.500) is one such prior art network system. The directories require a schema to describe the structure of the directory. There is typically no mechanism for creating new schemas, so creating new directories is not possible. In addition, there is no replication capability to accomplish network database backup.

Some prior art network systems support multiple levels of hierarchy such that different user levels may be defined. However, in such systems, the number of levels is limited, and all levels must be used. For many networks, hierarchical flexibility is highly desirable.

Another disadvantage of prior art network systems is their general lack of flexibility in the ability to make desired changes to the structure of the network. For example, when new computers or users are added, moved or deleted, a network administrator is often required to implement the changes.

Therefore, one object of this invention to provide a network system with a plurality of user hierarchies.

Another object of this invention is to provide a network system that has flexible directories which permit reading and writing of properties and permits the creation of new directories.

It is yet another object of this invention to provide a network system that allows network operations to be performed from any location on the network.

Another object of this invention is to provide a network system that allows for incremental replication of the network database.

Another further object of this invention is to provide a network system that permits flexible reorganization of the network structure.

It is another object of this invention to provide a network system that allows security levels to be easily defined.

Other objects and advantages of the present invention will become apparent upon reading the specification and drawings, in which like reference numerals refer to like parts throughout.

SUMMARY OF THE INVENTION

This invention is directed to a network database system for storing and sharing information on a network. The information may be network configuration data, such as user names, user ID's, computer addresses, passwords, personal data, user preference default settings, printers, services, etc. The network database information can also include any data that is to be accessible to a number of network users at the same time.

The network database system of this invention is arranged in a hierarchy of "domains," each of which includes certain information. While a domain can store virtually any information, it contains information about other domains, and typically contains information about the users associated with the computers and any groups the users may belong to, along with resources and services available to that group. A domain serves one or more computers of network.

At the top of the domain hierarchy is the root domain. There may be beneath the root domain subdomains that contain zero or more domains. The information available to each domain is organized into a hierarchy of directories. A directory might contain a list of users, for a list of groups of users. Each directory stores information as ordered lists of "properties". Each property consists of a "name" to identify the property and an ordered list of values associated with the name.

This invention also uses a method referred to as "relative naming." Relative naming refers to the fact that each domain in the domain hierarchy is named relative to its parent domain. A parent domain is the domain logically above a domain in the hierarchy. A domain need not store information about any other domains other than its parent domain and children domains. This allows restructuring of, additions to, or deletions from the domain hierarchy to be implemented by updating only those domains affected by the change.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is a hierarchical view of an o