19.1.4 | Granularität der Server-Methoden |
Die Definition einer gut durchdachten Server-Schnittstelle ist eine der wichtigsten Aufgaben bei der Entwicklung objektorientierter Server-Komponenten. Die Schnittstelle des Servers entscheidet darüber, wie die Komponente benutzt wird und in welchem Kontext der Server eingesetzt werden kann. Man sollte sich beim Entwurf darüber im Klaren sein, dass bei jedem Methoden-Aufruf über das Netzwerk ein Server-Objekt kontaktiert, dort eine Methode aufgerufen und das Ergebnis anschließend wieder über Netzwerk an den Aufrufer zurück transportiert wird. Das heißt, wenn die Server-Schnittstelle sehr viele primitive Methoden zur Verfügung stellt, muss relativ viel Netzwerkkommunikation durchgeführt werden (z. B. wenn von einem Personen-Datensatz jedes Attribut der Person über einen eigenen Methoden-Aufruf vom Server gelesen wird). Eine Schnittstelle, die Methoden-Aufrufe über das Netzwerk enthält, sollte somit Daten bereits in in gewisser Weise gebündelt übertragen (z. B. Übertragung eines kompletten Personen-Datensatzes bei einem Methoden-Aufruf statt Einzel-Attributen). Dabei überlegt man sich zunächst, welche Daten vom Server gemeinsam verwendet werden und in welchen Daten-Paketen sie zusammen übertragen werden. Am Beispiel der Person könnte man sich z. B. vorstellen, zunächst die Basisdaten einer Person gemeinsam zu übermitteln (Name, Vorname, Geburtsdatum etc.). Die Übertragung der Adresse wäre in einem anderen Aufruf denkbar.