gif gif up gif contents
Nächste Seite: 6.1.2 Programmierschnittstelle Vorige Seite: 6.1 Beschreibung der bisherigen

6.1.1 Kommunikationsschnittstelle

ConceptBase kommuniziert nach dem Client/Server-Prinzip über einen IPC-Kanal mit den Anwendungsprogrammen. Die Interprozeßkommunikation ist durch sogenannte Sockets realisiert, die vom Betriebssystem zur Kommunikation zwischen Prozessen auf verschiedenen Rechnern innerhalb des Internets bereitgestellt werden. Sockets stellen für die Applikationen spezielle Dateien dar, auf die Zeichenketten geschrieben und von denen Zeichenketten gelesen werden können.

Der Server kontrolliert ständig die Sockets der angeschlossenen Anwendungsprogramme. Sobald von einem Programm eine Nachricht empfangen wurde, wird die Nachricht ausgewertet und die entsprechende Funktion innerhalb des Servers aufgerufen. Während der Bearbeitungszeit kann der Server keine Nachrichten verarbeiten, weswegen die eingehenden Nachrichten vom Betriebssystem gepuffert werden. Sobald die Funktion vollständig bearbeitet wurde, wird eine Antwort an das Anwendungsprogramm zurückgeschickt. Die Nachrichten, die der ConceptBase-Server empfangen kann und als Antwort an Programme verschickt, haben eine bestimmte Syntax, die im Anhang F.2 angegeben ist.

Das Client-Programm wartet während der Bearbeitungszeit seiner Nachricht auf eine Antwort des Servers. Sofern es sich nicht um ein Programm handelt, das mehrere Threadsgif benutzt, ist es während dieser Zeit blockiert. Der Server sendet die Antwort unabhängig von der Größe als einen Block an den Klienten. Neben den Datenbankoperationen bietet der ConceptBase-Server auch Kommunikationsdienste für die Anwendungsprogramme an. Damit ist es möglich zwischen den Klienten eines Servers Nachrichten auszutauschen. Dafür verwaltet der Server für jeden Klienten eine Nachrichtenwarteschlange, in der er auch selbst Nachrichten einfügen kann. So werden zum Beispiel die Fehlerbeschreibungen für eine vorangehende Operation in dieser Warteschlange gespeichert. Der Client kann, nachdem ein Fehler für die letzte Datenbankoperation gemeldet wurde, die Fehlermeldungen vom ConceptBase-Server erfragen.



Christoph Quix
31. Juli 1996