1. Konzept

Eines der Ziele bei der Entwicklung des Client-/Server-Protokolls von GREYHOUND war es, dass eine vollständige Schnittstelle für Drittapplikation entsteht und dass die Schnittstelle möglichst effizient aufgebaut ist. GREYHOUND kapselt deshalb alle Methoden, welche für eine Interaktion von Client und Server nötig sind, in abstrakten Klassen. GREYHOUND kann diese abstrakten Klassen je nach gewählten Protokoll auf unterschiedliche Art übertragen.
Die ursprüngliche Planung von GREYHOUND sah nur RPCP und XML-RPC für die Datenübertragung vor. Bereits in der Planung wurde aber dafür gesorgt, dass jederzeit weitere Protokolle hinzugefügt werden können. So konnten wir in der späten Beta-Phase innerhalb weniger Tage JSON-RPC implementieren. Theoretisch ist es jederzeit möglich, weitere Übertragungsprotokolle zu ergänzen.
Die verschiedenen Services und Klassen für die Datenübertragung werden in der Entwicklung nicht händisch angelegt. Wir haben uns für diesen Zweck ein Tool geschaffen, in welchem die gewünschten Typen, Klassen, Services und Events definiert werden können. Der Quelltext der nötigen Klassen für den GREYHOUND Server und Client wird anschließend vollautomatisch generiert. Die entsprechenden Methoden müssen nun auf Serverseite noch implementiert werden (Programmlogik).
Es wird auf beiden Seiten (Server und Client) immer mit einem abstrakten Objekt gearbeitet, welches transparent für den Entwickler für das entsprechende Übertragungsprotokoll serialisiert und deserialisiert wird. Auf Grundlage dieser Dokumentation können entsprechende Objekte für andere Programmier- und Scripting-Sprachen erstellt werden.