Here is a draft for the (very simple) protocol to get information about the needed software module (Software Module Information Protocol (SMIP)):
A request is in this format: SMIP <version>: request Needed: <protocol or MIME type> <"interpretor" or "client"> A response in this format: SMIP <version>: response <"successful" or "error"> If no error is returned: Path: <path to the main file of the application> Communication: <communication type> <version> is the SMIP protocol version valid values for <communication type> are: "stdio": data transfer (for example the URI from which the client should get the data) by using the "stdout" or "stdin" stream. "commandline": for interpretors only, the data is passed to the program by using the command line. "file=*": the data is written in the file * to pass from the one application to the other. An example for a request and response (on a Windows system): Request: SMIP 1.0: request Needed: image/png interpretor Response: SMIP 1.0: response successful Path: C:\Windows\png.exe Communication: stdio Or an example when an error is returned: Request: SMIP 1.0: request Needed: UnknownProtocol client Response: SMIP 1.0: response error An extended model of how the modules should work together: there is one main application, where the user enteres the URI which should be loaded. This application runs the client for the needed protocol, and then, after the client did its work, the interpretion software for the needed MIME type. Then ist could close itself. The interpretor renders the data and calls, if needed, another client or interpretor (for instance, for pictures or if the user clicks on a hyperlink). Daniel Kraft --- http://www.daniel-kraft.net/
