This application is related to the following commonly owned patent applications, each of which applications is hereby incorporated by reference herein in its entirety:
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
The invention generally relates to the field of database access systems, and more particularly to enterprise integration systems that enable data access to and from external data sources such as legacy systems.
Organizations typically store business information in a variety of databases using a variety of platforms. For example, an organization may employ a Peoplesoft™ information base for managing human resources, an IBM DB2™ system for accounting purposes; and an Oracle™ database system for manufacturing activities. It can often be advantageous to integrate such enterprise information and make it accessible at a single terminal in order to provide the user with meaningful information concerning the status of an organization. A variety of tools for doing this are commercially available such as the Domino Enterprise Connection Services™ (DECS) or Lotus Enterprise Integrator™ (LEI) tools for use with the Domino™ web application development platform marketed by Lotus Development Corp. These interactive and high speed database query products typically have a server engine for processing applications. When access to an external data source is required, the engine typically calls a connector function in order to access the external database and translate requests between the native system and the external system.
In order to access the external system, security credentials must usually be presented. In the prior art integration tools from Lotus Development Corp., the engine either passed along default security credentials or requested security credentials from the user prior to making the connection to the external database. Both of these techniques have shortcomings, as explained in greater detail below. A more practical method is desired to establish connections to external databases, preferably without having to make substantial changes to the database query products or any applications developed by such products.
Generally speaking, the invention establishes connections to external databases automatically using credentials for the user that are appropriate for the external database.
One aspect of the invention provides a method of facilitating access to one or more external databases from a database application. The method includes (a) pre-populating a credential database which maps a user's security credentials relative to the application with the user's security credentials relative to each external database; (b) determining when the user operates the application so as to require access to a given one of the external databases; (c) retrieving the user's security credentials for the given external database from the credential database based on the user's security credentials for the application; and (d) establishing a connection to the given external database using the retrieved security credentials in order to perform the requested database access.
Another aspect of the invention provides a remote database access system. The system includes a server engine for processing an application. An extension manager, interfacing with the server engine, registers and monitors events which require access to a remote database. An enterprise connection service, interfacing with the extension manager, maps data fields from the remote database to data fields employed in the application. The enterprise connection service also enables a user to pre-populate a credentials database which stores the user's security credentials relative to the remote database. A credential manager, initiated by the enterprise connection service, looks up the user's security credentials in the remote database. A connection broker is provided for establishing a connection to the remote database using the security credentials received from the enterprise connection service. A connector translates the database access requests between the application and the external database.
Computer readable media carrying software for implementing the above method and system are also claimed.
The foregoing and other aspects of the invention will become more apparent from the following description of illustrative embodiments thereof and the accompanying drawings which illustrate, by way of example, the principles of the invention. In the drawings:
The data store 24 contains the logic necessary to execute one or more business applications. In the illustrated embodiment, the logic can be declarative in nature, that is, embedded in structured documents which the server engine 22 can parse and process as known in the art. This logic may also be explicitly programmed such as in the form of compiled or interpretable source code embedded in the documents or alternatively provided as executable files.
Some of the documents or executables stored in the data store 24 may have data links to external data stores 30. For example, a “form” document may have a number of form fields linked to an external relational database 30A. Thus, when the user executes a query using this document the server engine 22 must access the external relational database 30A and retrieve the requested information therefrom. This poses a connection and security access problem relative to the external database since the server 22 can host many users, some of whom may have relatively unfettered access in the server application but may not have the same access privileges in the external database.
The conventional approach to handling this problem is to rely on a single set of default security credentials that are used by the server to access the external database. However, this approach can be quite limiting in its practicality since system administrators, not knowing who will access the data, will generally set up the default access privilege to a lowest common denominator. Thus, for instance, either all users have write access to the external database, or no users do. Another way to approach this problem is for the server engine 22 or application executables to request security credentials from the user each and every time the user initiates access to an external data store. This can be a nuisance in practice.
The illustrated system employs a pre-populated credential mapping database 40 in which the user's security credentials for the server business application are relationally linked with the user's security credentials for each external data store that may be accessed. This database 40 is populated only once. Preferably, the server engine 22 is expanded to include a utility function designed to capture and store the user's credential information for each of the other external data stores the user wishes to access. These external credentials are then relationally linked to the credentials the user employed to connect to the server application in the first instance, which information is typically captured by the server engine and stored as a system environment parameter. To ensure security, access to the credential mapping database 40 is preferably restricted such that only that user can view or update his or her credential mapping record in database 40.
Having the pre-populated mapping database 40 enables a credential management function 38 to receive a request for externally sourced data from the server engine 22. The request specifies the external data store, and the particular fields or data requested therefrom. In a multi-user system, the request also includes or is accompanied with information indicating which user made the request. The credential management function 38 uses this information to look up the user's security credentials in database 40 relative to the requested external source.
The extracted security credentials are then passed to a connection manager 42. This component is responsible for taking data requests from the server engine 22 and translating them into requests that can be interpreted by the external data store, and vice versa. The connection manager 42 preferably also includes the requisite logic to establish and manage multiple connections to the external data store. In this case, the security credentials extracted by the credential management function 38 are used to establish a connection with the external data store, e.g., the connection manager logs onto the external data store using the extracted or retrieved user name and password. The connection manager keeps track of the connections which have been established so in the event a connection has already been established using the presented security credentials, that connection can be re-used.
DOMINO™ applications are associated with, among other objects, a Notes™ database 52 and form definitions 54 which provide the user interface for the database 52.
The data for these fields 54A can be linked to an external database by means of an activity document 56, which also forms an element of the DECS administration database 48.
Once the connection, form and activity documents 51, 55, and 57 have been created, the operator then initializes the Notes™ database 52 with the key values for all the records on the external system that may be accessed. The DECS menu features an action for automatically doing this, resulting in key documents or records 53 being created.
In operation, referring to
The extension manager 66 receives from the engine 64 the user name associated with the client 62 which made the document request. This is passed to DECS 70 which, in turn, calls a credential manager 71 that is responsible for looking up the user's security credentials in a credentials database 72. This database is pre-populated with the user's name and security credentials for each external database that may be accessed. As explained previously, this database need only be populated once, and an example of this database is shown in
The retrieved external system credentials are then added to the field list requested from the external source, and DECS 70 passes the data request to a connection broker 74, which is responsible for managing connections to the various external databases. The connection broker 74 creates a new connection to the requested external database 78 using the retrieved security credentials passed along in the field list, or, in the event a connection has already been opened using the retrieved security credentials, re-uses the connection. The connectors 76 provide translation between Notes™ and the external database. The requested fields are thus retrieved from the external database and passed back to DECS 70 which maps the external fields into the Notes™ form fields 54A as specified in the activity document 57. The data is then passed back to the server engine 64 for presentation to the client 62.
It should be appreciated that the foregoing implementation does not require any modifications to the server engine 64, the extension manager 66 or the connection broker 74. Rather, the credential mapping facility is conveniently implemented as an additional function within DECS and the pre-existing architecture. This system can also be used to link a form to more than one external database. In this case, multiple activity documents 56 may be created thereby resulting in multiple event registrations 68 which, in turn, will cause the process described above to be repeated for each link to an external database.
Those skilled in the art will appreciate that numerous modifications and variations may be made to the above-described embodiments without departing from the spirit and scope of the inventions.
Number | Name | Date | Kind |
---|---|---|---|
5201046 | Goldberg et al. | Apr 1993 | A |
5615361 | Leung et al. | Mar 1997 | A |
5757920 | Misra et al. | May 1998 | A |
5768503 | Olkin | Jun 1998 | A |
5806079 | Rivette et al. | Sep 1998 | A |
5822750 | Jou et al. | Oct 1998 | A |
5870747 | Sundaresan | Feb 1999 | A |
5875296 | Shi et al. | Feb 1999 | A |
5899986 | Ziauddin | May 1999 | A |
5913061 | Gupta et al. | Jun 1999 | A |
5931900 | Notani et al. | Aug 1999 | A |
5940819 | Beavin et al. | Aug 1999 | A |
5944824 | He | Aug 1999 | A |
5960200 | Eager et al. | Sep 1999 | A |
5995597 | Woltz et al. | Nov 1999 | A |
6000033 | Kelley et al. | Dec 1999 | A |
6003065 | Yan et al. | Dec 1999 | A |
6006214 | Carey et al. | Dec 1999 | A |
6021496 | Dutcher et al. | Feb 2000 | A |
6065120 | Laursen et al. | May 2000 | A |
6078924 | Ainsbury et al. | Jun 2000 | A |
6078926 | Jensen et al. | Jun 2000 | A |
6088451 | He et al. | Jul 2000 | A |
6091412 | Simonoff et al. | Jul 2000 | A |
6122639 | Babu et al. | Sep 2000 | A |
6128738 | Doyle et al. | Oct 2000 | A |
6145086 | Bellemore et al. | Nov 2000 | A |
6154751 | Ault et al. | Nov 2000 | A |
6157953 | Chang et al. | Dec 2000 | A |
6178511 | Cohen et al. | Jan 2001 | B1 |
6449474 | Mukherjee et al. | Sep 2002 | B1 |
20010011349 | Garrison | Aug 2001 | A1 |
20010054155 | Hagan et al. | Dec 2001 | A1 |
20030055985 | Corb et al. | Mar 2003 | A1 |
20040088259 | Celik | May 2004 | A1 |
20050038758 | Hilbush et al. | Feb 2005 | A1 |
Number | Date | Country |
---|---|---|
991242 | Apr 2000 | EP |
409034838 | Feb 1997 | JP |
11025048 | Jan 1999 | JP |
2000174807 | Jun 2000 | JP |