Hinter Client/Server-Anwendungen steht die Idee, Komponenten
einer Applikation so aufzuteilen, dass ihr Betrieb
in einem Netzwerk möglich wird.
Oft wird im Client nur die Benutzerinteraktion (GUI) implementiert (zum Beispiel als Webseite im Browser), während der Server die Bearbeitung von Eingaben übernimmt. Im Kontext einer Datenbankapplikation werden die essenziellen Geschäftsdaten auf einem hochwertigen Datenbankserver verwaltet und gelagert, während die Clients auf preiswerten PCs laufen können.
In diesem Kapitel wollen wir zeigen, welche Möglichkeiten Ruby einem Programmierer bietet, Client/Server-Anwendungen zu entwickeln. Da es sich anbietet, einen Server, der mehrere Benutzer gleichzeitig betreut, mit Threads zu realisieren, klären wir zuerst, wie sich Threads untereinander koordinieren können. Im Anschluss daran gehen wir auf den Datentransfer zwischen Applikationen per Pipe ein und stellen einige Verfahren vor, verteilte Ruby-Applikationen zu erstellen.
Den Abschnitt über SOAP hat uns Michael Neumann zur Verfügung gestellt,
der eine SOAP-Implementation für Ruby entwickelt hat.