Once you start having quite a few TYPO3 installs running, it quickly becomes very hard to keep a tab on all of them: which version they use, whether they use multiple languages or multiple domains, which extensions are installed and the versions of those extensions. The aim of the Remote Survey extension is to provide TYPO3 administrators with a central console from which to get an overview of all their TYPO3 installs. The structure should be flexible enough that new information can be added easily.The whole setup implies several extensions:
- this extension, running on a "master" install
- a client extension, running on each install to survey (surveyclient, not created yet on forge)
- the Remote Server extension to handle remote calls (http://typo3.org/extensions/repository/view/remote_server/0.2.0/) (Enable "GET" in Extension configuration)
- additional extension to provide information beyond the base provided by the client and server extensions
The Remote Survey Server provides the following:
- database records to store the data related to the TYPO3 installs to survey (see Database Structure)
- a BE module to view the results of the surveys (and launch a refresh of the data)
- a cache mechanism to store the survey data
- a mechanism to register new survey functions using services of type "remotesurvey"
- a scheduled refreshing of the survey cache would probably be desirable. Use of extension Gabriel should be preferred (avoid creating own cron script)
The Survey Architecture page has more details about the software architecture of both the Remote Survey Server and the Remote Survey Clients and how they interact.
Exchange data format¶
The idea is that extensions located on the client would return the data as XML structure. This doesn't mean using SOAP (too slow and constraining), but just freeform XML (see Data Formats).
The "master" BE module must be able to display the data returned by the client installations. This display must be quite flexible, as it must be able to easily accommodate new XML tags. It must also have a clear interface, as it will be displaying a lot of data (see Backend Module).