Jump to main Content | Jump to main Navigation

Client/Server

Client EXEs and DLLs run on a workstation, indexing engine DLLs and EXEs (as an NT Service) run on a server, all databases are accessed via the network. All databases may be opened by many others on the network.

This configuration works by breaking the direct link between DScribe.EXE and Idle.DLL, and inserting a 'network transport' or 'marshalling' layer between the two. DScribe, still talks to what it thinks is Idle.DLL, but is in reality a 'stub' DLL that transmits information across the network to the server. Running on the server, Idle.DLL still talks to what it thinks is DScribe.EXE, but is in reality a stub EXE that transmits and receives information across the network. So instead of

DScribe.EXE <> Idle.DLL

we have

DScribe.EXE <> Stub <very-thin-network-or-isdn-cable> Stub <> Idle.DLL

On the server, the stub is called Disservi.EXE, and runs as an NT service.

On the workstation, the stub is supplied as Ic.DLL, but it is renamed by the installation program to Idle.DLL, when copied. Ic.DLL is much smaller (approx 72 KBytes) than Idle.DLL (approx. 252 KBytes), so you can tell them apart even after they have been renamed.

How do you tell the client where the server is?

DScribe.EXE and DSAdmin.EXE take a /server command line parameter, for example:

C:\DScribe\bin\DScribe.exe /server SEVEN

where the server is called "seven".