zmapServer - thread based external interfaces

Summary

Modules

The zmapServer module exist to provide concurrent thread base interfaces to external databases. It uses the zmapThread module.

--- put this in a table and extend ---
zmapServerProtocolHandler is the front end that is used by zmapView etc to request data.
zmapServer interfaces between zmapServerProtocolHandler and the thread base servers.
acedb/, DAS, and pipe/ are the servers that run in these threads.

Related pages

zmapView contains some notes about requesting data from pipeServer modules and other issues.

pipeServer details usage of that module.

Threads some notes about thread startup and shutdown.

Servers and Threads

Traditionally with a single ACEDB server thsi will have been kept active with ZMap and ZMap would not run without it. With the advent of pipeServers being used to request data on demand it becomes necessary to have threads startup , run and then be cleared up, a function that has been planned but not implemented. There is code to kill off threads on shutdown, but the threads code does not include a clean exit!

Tasks that need doing include:

Requesting data by coordinate

If unspecified a data source is requested to return data from coordinates 1 to N ie the whole sequence. We need to be able to request data for a marked region or other subsets of this. Currently start and end coordinates are included in requests to pipeServers, but this is opnly triggered from the ZMap coordinates given at startup.