Abstract:
Systems and methods for distributed database management are disclosed. In an embodiment, a method of accessing information in a distributed database system having one or more data servers includes establishing a plurality of lattice structures configured to store data elements having inter-related information. A data query initiated by a client is then formulated that includes selected data attributes. The data query is processed to generate a query product, and the plurality of lattice structures are searched to identify data elements corresponding to elements in the query product. Pertinent data files located within another data server are accessed that correspond to the data query and generating a result, and the result is transferred to the initiating client system.

Description:
GOVERNMENT LICENSE RIGHTS  
       [0001]     This invention was made with Government support under U.S. Government contract DAAE07-03-9-F001 awarded by the U.S. Army and Defense Advanced Research Projects Agency (DARPA). The Government has certain rights in this invention. 
     
    
     FIELD OF THE INVENTION  
       [0002]     This invention relates generally to information systems and, more specifically, to systems and methods for data base management and integration.  
       BACKGROUND OF THE INVENTION  
       [0003]     Databases are widely used to store and manage information. Briefly, and in general terms, a database is a collection of related information related to a particular subject that is organized in a useful manner that allows a database user to search for selected information, and to retrieve the information. In one known variation, which is commonly known as a distributed database, the information storage is distributed throughout a plurality of storage sites that are coupled by a communications network. In many present distributed database systems, the information resides in disparate database systems that exist within distinct geographical and/or corporate boundaries, which presents a challenge to database designers and managers. Advantageously, each database user should have the ability to search and access selected information within the disparate databases with the same performance and functionality.  
         [0004]     Referring now to  FIG. 1 , a distributed database system  10  according to the prior art is shown. The system  10  includes a plurality of data servers, or “federated” systems  12  that operably maintain information that is exclusively controlled by a selected one of the data servers  12 . For example, one of the data servers  12  may be controlled by a governmental agency, while another one of the data servers  12  may be controlled by a private organization. The data servers  12  may further include a secure portion  14  and a public portion  16  that are separated by a firewall structure  18 . In general, each of the disparate data servers  12  may require different authentication procedures, access control procedures, or require other protocols and/or procedures that are unique to a selected data server  12 . Accordingly, agents  20  are positioned between the data servers  12  and a middleware infrastructure  22  to allow information sharing between the plurality of data servers  12 . The agents  20  may, for example, include adaptors, brokers or message queues as are understood by those skilled in the art. The middleware infrastructure  22  may manage the transaction between the various data servers  12 , and may accelerate client requests by generally reducing the overall number of resource-expensive connections that occur during an information exchange. The middleware infrastructure  22  may also communicate with an applications infrastructure  24  that provides applications access to the various data servers  12 .  
         [0005]     One drawback associated with the foregoing distributed database system  10  is that the middleware infrastructure  22  and/or the agents  20  are typically difficult and expensive to maintain. Moreover, changes or alterations to the middleware infrastructure  22  and/or the agents  20  may not be properly communicated to each of the data servers  12 , so that transactions between various clients  8 , or between a selected data servers  12  and the applications infrastructure  24 , may occur without notice.  
         [0006]     Another drawback associated with the foregoing database system  10  involves data access in general. For example, if a selected one of the clients  8  initiates a search for desired information content that may reside on one of the data servers  12 , the search must generally include searching each of the data servers  12  to find the desired information. The foregoing procedure is necessarily time-consuming and may occupy significant resources of the system  10  before the desired information is located.  
         [0007]     Still another drawback associated with the database system  10  of  FIG. 1  is that a user may be required to repeatedly enter authentication data as the access request moves throughout the system  10 . For example, the user may be required to enter a variety of passwords or authentication codes at various times during the access request.  
         [0008]     Although desirable results have been achieved, new systems and methods for distributed database management that may have reduced cost and improved searching efficiency would have utility.  
       SUMMARY  
       [0009]     The present invention is directed to systems and methods for distributed database management. Embodiments of systems and methods in accordance with the invention may have reduced cost and improved searching efficiency in comparison with the prior art. In one aspect, a method of accessing information in a distributed database system having one or more data servers includes establishing a plurality of lattice structures configured to store data elements having inter-related information. A data query of a selected data server is then formulated that includes selected data attributes. The data query is processed to generate a query product, and the plurality of lattice structures are searched to identify data elements corresponding to elements in the query product. Pertinent data files located within another data server are accessed that correspond to the data query and generating a result, and the result is transferred to a selected client. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0010]     Preferred and alternate embodiments of the present invention are described in detail below with reference to the following drawings:  
         [0011]      FIG. 1  is a schematic block view of a distributed database system according to the prior art;  
         [0012]      FIG. 2  is a schematic block view of a distributed database management system according to an embodiment of the invention;  
         [0013]      FIG. 3  is a schematic block view of the distributed product system of  FIG. 2 ; and  
         [0014]      FIG. 4  is a flowchart that describes a method of managing a distributed database, according to another embodiment of the invention. 
     
    
     DETAILED DESCRIPTION  
       [0015]     The present invention relates to systems and methods for distributed data base management. Many specific details of certain embodiments of the invention are set forth in the following description and in  FIGS. 2 through 4  to provide a thorough understanding of such embodiments. One skilled in the art, however, will understand that the present invention may have additional embodiments, or that the present invention may be practiced without one or more of the details described in the following description.  
         [0016]      FIG. 2  is a schematic block view of a distributed database management system  30  according to an embodiment of the invention. The distributed database management system  30  includes one or more data servers  12 , as previously shown in connection with  FIG. 1 . The data servers  12  are generally federated systems controlled and maintained by an agency or organization that maintains selected informational content. The data servers  12  may be further divided into subsystems that maintain informational content of different types, or into subsystems that maintain predetermined levels of security for information maintained on the subsystem. For example, the data servers  12  may be subdivided into a secure (or restricted) portion  14  and a publicly accessible portion  16  that are separated by one or more firewall structures  18  to maintain the security of information residing on the restricted portion  14 . The data servers  12  generally include an input/output capability (not shown) that permits one or more users to communicate with the data servers  12 . The input/output capability may include, for example, a computer terminal that is directly coupled to the data servers  12 . Alternately, the input/output capability may also include a personal computing device that is coupled to the data servers  12  through a communications system, such as a local area network (LAN), a wide area network (WAN), or even through a Public Internet connection.  
         [0017]     The data servers  12  also include various “federated” data files. In the present discussion, “federated” informational content refers to information that resides on, and is under the control of a single one of the data servers  12 . The federated information content may include, for example, component part or product specifications, digital representations of component parts and/or assemblies, text documents related to product assemblies, product and/or parts specifications, planning and/or management information and/or business-related documents, or other still other information.  
         [0018]     The client data servers  12  are communicatively coupled to a distributed product system  32 . The system  32  provides a centralized repository for selected lattice data structures that may, upon request, be accessed by clients  8 . The system  32  also advantageously allows one of the data servers  12  to access information in one or more of the other data servers  12 . Accordingly, the system  32  is operable to receive an information request from one or more of the clients  8  and to process the request. If the request is successfully processed by the system  32 , the desired information that was the subject of the information request is returned to the requestor. If the system  32  fails to process the information request, the system  32  transmits a failure message to the client  8  that initiated the request.  
         [0019]     With reference still to  FIG. 2 , the distributed product system  32  includes a memory portion that is configured to store a plurality of lattice structures. The lattice structure is generally an array structure that couples selected data to a corresponding node coordinate value. Accordingly, node values in the lattice structure indicate the position of the selected data. In one particular embodiment of the invention, the distributed product system  32  is configured to store one-dimensional lattice structures. In other embodiments, the system  32  may be configured to store two, three, or “n” dimensional lattice structures. In either case, the lattice structures stored by the system  32  may include uniform, perimetric and curvilinear lattice structures. The distributed product system  32  is also communicatively coupled to an applications infrastructure  24  that permits the clients  8  to access commonly used applications of various types.  
         [0020]      FIG. 3  is a schematic block view of the distributed product system  32  of  FIG. 2  that will be used to describe the system  32  in greater detail. The system  32  includes an information broker  34  that is operable to receive information requests from the plurality of clients  8  and to process the request. In a particular embodiment, the informational request is communicated to the information broker  34  using the well-known extensible markup language common format (XML) that advantageously allows the sharing of data across different systems, particularly systems connected through the Internet. The information request includes key attributes such as a name, a source for the requested information (if known), a data type, a product number, or other suitable information.  
         [0021]     The information broker  34  creates a product that includes the foregoing attributes, and instantiates the product. In the present context, “instantiates” is understood to mean finding at least one instance of a desired word or term, or the particular usage of the word or term. The information broker  34  instantiates the product to a database  36  that retains a plurality of lattice structures. The lattice structures include metadata or other similar content that corresponds to the attributes submitted in the information request. The information broker  34  may then generate other data structures that assist the user in navigating and viewing the desired information by selectively filtering the metadata present in the lattice structures. For example, the information broker  34  may generate one or more referential links that permits the desired information to be viewed. In a specific embodiment, the referential links may be hyperlinks. In any event, the navigational information is returned to the requesting client  8 . When the information broker  34  instantiates the product to the database  36 , a data server  12  that maintains the federated data may also be notified that an inquiry that stems from a client  8  has occurred. Accordingly, the system  12  that maintains the federated data may inform the requesting client  8  when a change to the federated data occurs at some future time.  
         [0022]     Still referring to  FIG. 3 , the information broker  34  further includes a data cabinet  38  in communication with each of the data servers  12 . The cabinets  38  may be used to temporarily store information sent from the information broker  34  prior to transferring the information to the requesting client  8 . Alternately, the cabinets  38  may be used to sequester requested information that may be subject to security or proprietary restrictions. For example, a cabinet  38  that includes secure information may await the transfer of an appropriate security key prior to releasing the sequestered data.  
         [0023]      FIG. 4  is a flowchart that will be used to describe a method  40  of managing a distributed database, according to another embodiment of the invention. At block  42 , a data query is initiated at a selected one of the clients  8  (as shown in  FIG. 2  and  FIG. 3 ). The data query may include a name, a source for the requested information, a data type, a product number, or other suitable information. The data query may then be converted into an appropriate format before it is transferred to the information broker  34  (as shown in  FIG. 3 ). For example, the data query may be converted to the extensible markup language (XML), as discussed in detail above. At block  44 , the formatted data query is transferred to the information broker  34 , and a query product is generated. At block  46 , lattice structures stored in the database  36  (also shown in  FIG. 3 ) are searched relative to the query product. When the requested information is identified in the plurality of lattices stored in the database, one or many referential links may be requested by the information broker  34  allowing the information to be extended to other data servers and returned to the requesting client  8 , as shown at block  48 . At block  50 , the one or more of the data servers  12  that retain the federated data is requested to retrieve and return the desired data to the information broker  34  that will return the result set back to the client  8 .  
         [0024]     The foregoing methods and systems may advantageously avoid several of the shortcomings present in the prior art. For example, the requirement for extensive data searching that extends into each of the data servers is avoided, since the search extends only to the lattice structures that include various nodes having metadata positioned at the nodes. The metadata thus serve as “placeholders” for the actual information. The foregoing methods and systems also advantageously avoid large, cumbersome middleware infrastructures generally required in distributed database structures. In particular, the requirement for agents, or “adaptor programs” is eliminated.  
         [0025]     Still other advantages are readily apparent in the foregoing methods and systems. Since the data servers are relatively loosely coupled to the distributed product system, each of the data servers retains the ability to alter internal processes without affecting the operation of other data servers that operate within the distributed product system, thus enhancing partnering agility. General infrastructure benefits are also apparent, since process advantages occur in a collaborative and controlled process. For example, cycle times are shortened, since a search of each data servers is avoided. Moreover, since changes to metadata in the lattice structures are communicated to all users having a common interest in the information, the need for communicating revision information and data is advantageously avoided. Still further, the foregoing methods and systems advantageously avoid the need for a user to repeatedly enter identifying information, such as passwords and the like, as the user accesses different data servers.  
         [0026]     While preferred and alternate embodiments of the invention have been illustrated and described, as noted above, many changes can be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention is not limited by the disclosure of these preferred and alternate embodiments. Instead, the invention should be determined entirely by reference to the claims that follow.