Query-Aktionen

Die bei der Beschreibung einer Query angegebene Aktion ist folgendermaßen zu verstehen:

execute Die Anfrage wird sofort ausgewertet und beantwortet (on-demand-Verarbeitung).
Das ist nur bei der Übertragungsmethode HTTP möglich.
Da es dabei auf kurze Antwortzeiten ankommt, wird die Anwendung auf solche Queries beschränkt, die geringe Datenmengen erzeugen (Einzeltierdaten).
request Die Anfragen mehrerer Clienten werden gesammelt und zu festgelegten Zeiten verarbeitet (Batchverarbeitung).
Die Antworten müssen bei einem zweiten "Anruf" vom Clientprogramm abgeholt werden.
Batchverarbeitung ist bei FTP die einzige Möglichkeit, bei HTTP eine Alternative, und wird für Queries benutzt, die große Datenmengen erzeugen oder umfangreiche Selektionen und Berechnungen verursachen.

Bei "request" ergibt sich die Notwendigkeit, einer bestimmten Anfrage die richtige Ergebnis-Datei zuzuordnen.

   Wenn der Datentransfer zwischen Clientprogramm und VIT mittels HTTP erfolgt, dann wird jeder Query vom aufgerufenen Servlet ein eindeutiges Handle zugeteilt und an das Clientprogramm übermittelt.
Dieses Handle muß dann später vom Client beim HTTP-Download zur Identifizierung der zugehörigen Datei benutzt werden (Aktion "download").
Die Parameter "Handle" und "User" dürfen in der QN-Zeile nicht benutzt werden. 
Pro "Anruf" kann genau eine Query abgesendet bzw. eine Antwortdatei abgeholt werden.
   
  Wenn der Datentransfer zwischen Clientprogramm und VIT mittels FTP erfolgt, oder wenn bei HTTP die Query Bestandteil einer hochgeladenen Datei ist (Aktion "upload"), dann muß vom Clientprogramm mindestens einer der Parameter "Handle" oder "User" in die QN-Zeile eingesetzt werden.
Bei Verwendung von Handle (maximal 36 Zeichen lang) ergibt sich der Dateiname der Ergebnisdatei(en) aus [handle].*.
Handle muß dann per Vereinbarung so konstruiert werden, daß Konflikte zwischen verschiedenen Anfragen und verschiedenen Nutzern ausgeschlossen sind.
Ohne ein bei der Anfrage mitgesendetes Handle ergibt sich der Name aus [user]_[query]_[key].*.
Dabei wird [key] vom VIT so konstruiert, daß Konfliktfreiheit gewährleistet ist. Die entsprechenden Bildungsregeln können jederzeit ohne Absprache mit den Programmierern der Clientsoftware modifiziert werden.

Beispiel: 1234_bestand_88888888_012.ads = 12. Ausgabe des Tierbestandes vom Betrieb 88888888 für den User 1234.
Der Client sucht beim Download entweder nach allen Dateien 1234_*.* oder 1234_bestand_*.*
Eine Abfrage nach 1234_bestand_88888888_*.* wäre falsch, da nicht garantiert werden kann, daß die Betriebsnummer auf Dauer Bestandteil des Keys bleibt.

Eine hochgeladene Datei kann mehrere verschiedene Queries, auch kombiniert mit sonstigen Daten (DN/VN), enthalten.
Dabei ist es gleichgültig, ob der Upload mittels FTP oder HTTP erfolgt.

Neben "execute" und "request" gibt es bei HTTP noch weitere Aktionen zur Durchführung des Dateitransfers (download, upload, quit) sowie zur applikationsspezifischen Steuerung des Servlets (update, list..., print).