Subject | Re: [IB-Architect] Re: Is it _really_ necessary to expose the location of the database file? |
---|---|
Author | Bill Karwin |
Post date | 2000-08-11T04:14:42Z |
Dmitry Kuzmenko wrote:
to a client application! Databases are effectively "public resources",
from the application's point of view, right?
I suggested LDAP simply because it's an open standard. Administrators
generally know how to change an object in an LDAP directory. There are
nice GUI tools to do this.
know how to connect to the database. Currently, that's hardcoded in the
app or else the BDE driver looks it up if you use BDE. What I'm
proposing is to do an alias lookup in the gds32.dll just like BDE does
for its aliases now--except InterBase aliases could be stored locally or
else on a central server.
as pathnames. That means that the client must do the lookup. But it
can be done transparently--the user never needs to know the location to
which the alias maps.
mechanism from scratch is unnecessary.
the alias name, and retrieves a traditional InterBase connection
string. Then the application proceeds to connect over a network to the
IB server.
What we're discussing is whether we implement this using an existing
open standard for a remote directory repository, or we reinvent the
wheel again.
he wants to connect to a simple name like, "PersonnelDatabase". In
order to abstract the server name as well as the path of the database on
that server, we need to allow the client software to look up the alias
from some other information repository. This is the same concept as
DNS.
The advantage is that the application knows only the name
"PersonnelDatabase", and the location of that database can be moved from
server1 to server2 simply by the administrator changing the central
alias definition. We shouldn't need to update the clients to know
"server2:PersonnelDatabase".
Bill Karwin
> I do not understand why LDAP idea rised at all.That sounds perfect for describing databases on a LAN that are available
> LDAP and other tools only useful to know what public resources are available.
> (maybe for more tasks, but it's not sufficent).
to a client application! Databases are effectively "public resources",
from the application's point of view, right?
I suggested LDAP simply because it's an open standard. Administrators
generally know how to change an object in an LDAP directory. There are
nice GUI tools to do this.
> Database server is not the same. Nobody except application developerThe application needs to know. When a user runs the app, it needs to
> need to know how databases on the server are named, in what directory
> they are placed, and moreover, what alias need to be used to access
> these databases.
know how to connect to the database. Currently, that's hardcoded in the
app or else the BDE driver looks it up if you use BDE. What I'm
proposing is to do an alias lookup in the gds32.dll just like BDE does
for its aliases now--except InterBase aliases could be stored locally or
else on a central server.
> aliases for IB is only needed to hide full database paths and names.I was hoping to extend this alias concept to hide server names as well
> Don't they? So, this does not mean that alias list must be published
> in any way.
as pathnames. That means that the client must do the lookup. But it
can be done transparently--the user never needs to know the location to
which the alias maps.
> If some administrator wants to create published DB alias list, he canMIDAS is a proprietary, Windows-only solution. Inventing a new
> do it right now using sockets or other tools (maybe MIDAS).
mechanism from scratch is unnecessary.
> Application first will connect to alias server, then take alias,Exactly right. The application (client) connects to a server to query
> server, database path and name, and then connect to database.
the alias name, and retrieves a traditional InterBase connection
string. Then the application proceeds to connect over a network to the
IB server.
What we're discussing is whether we implement this using an existing
open standard for a remote directory repository, or we reinvent the
wheel again.
> Why client gds32.dll need to know where alias maps and even real database name???I agree fully. The user doesn't care where the database is located, so
> I thought that database name only used to say SERVER what database must
> be open for client. So, client is not interested how database is named.
he wants to connect to a simple name like, "PersonnelDatabase". In
order to abstract the server name as well as the path of the database on
that server, we need to allow the client software to look up the alias
from some other information repository. This is the same concept as
DNS.
The advantage is that the application knows only the name
"PersonnelDatabase", and the location of that database can be moved from
server1 to server2 simply by the administrator changing the central
alias definition. We shouldn't need to update the clients to know
"server2:PersonnelDatabase".
> Have you seen applications that can work with different databases, andWhy limit ourselves to what other applications do? :-)
> they are not development tools? database names are almost hard-coded
> in applications.
Bill Karwin