Beschreibung
Verfahren, Vorrichtung und Speichermedium mit Software zum Anzeigen von Eigenschaften eines Objektes einer Server- Software in einem Client-Rechner
Die Erfindung betrifft ein Verfahren, einen Client-Rechner, einen Server-Rechner sowie ein Speichermedium mit entsprechender Software zum Anzeigen von Eigenschaften eines Objektes einer Server-Software in einem Client-Rechner sowie vorzugsweise die Behandlung von tabellarischen Ob ekt-Listen- Fenstern in Netzwerkmanagement-Systemen.
Die zentrale Verwaltung von heterogenen Netzwerken wird mit einer steigenden Anzahl von zu verwaltenden Diensten und Schnittstellen immer komplexer. Einen wesentlichen Aspekt bildet hierbei die Verwaltung der physikalischen und logischen Verbindungen in einem heterogenen Netzwerk.
Selbst für einen einzelnen Rechner eines Netzwerk muss dabei eine Vielzahl von Verbindungen verwaltet werden. Beispielsweise kann der Rechner physikalisch mit dem Netzwerk und einer Vielzahl weiterer Untereinheiten, wie lokaler Drucker oder Festplatte, verbunden sein. Zusätzlich können parallel eine Vielzahl logischer Verbindungen des Rechners zu anderen Rechnern des Netzwerkes, in das Internet oder andere Netze bestehen.
In einer objektorientierten Software zur Verwaltung der Verbindungen dienen dabei Objekte als programmtechnische
Repräsentation für Vorrichtungen, beispielsweise eine Verbindungsleitung, einen IP-Router oder dessen Untereinheiten, und auch für abstrakte logische Daten, beispielsweise eine Verbindung, einen Bereich oder einen Kommunikationsendpunkt. Die Verbindungsdaten werden dann als Attribute der Objekte verwaltet. Beispielsweise für eine logische Verbindung zwischen zwei Rechnern könnte ein Objekt
Verbindung! angelegt werden, das als Attribute Rechnerl , Rechner2 und Verbindungstypl enthält.
Die in der Software zur Verwaltung der Verbindungen vorhandenen Daten müssen dabei beispielsweise einem
Administrator des Netzwerkes zur Verfügung gestellt werden, damit dieser die Daten überwachen oder anpassen kann. Auch um die Daten für den Administrator nicht nur an einem einzigen Endgerät oder Arbeitsplatz verfügbar zu machen, werden die Daten von einem Server für eine Vielzahl von Endgeräten als Clients bereitgestellt.
Als minimale Funktion ist dabei in den Clients eine graphische Benutzerschnittstelle (GUI) bereitzustellen, die serverseitig gespeicherte Daten für einen Benutzer auf einer Anzeigeeinheit des Clients darstellen kann.
Ein Beispiel eines auf einem Bildschirm eines Clients dargestellten Fensters als graphische Benutzeroberfläche ist in Fig. 6 gezeigt. Das entsprechende Verfahren zwischen
Server und Client zum Anzeigen der Daten ist mit seinen wesentlichen Schritten und Nachrichtenflüssen in Fig. 7 dargestellt.
In Fig. 6 sind unter einer Titelzeile 61 des Fensters ein Auswahlfeld 62 für Filtermethoden und ein Eingabefeld für Filter-Parameter 63 dargestellt. Weiterhin umfasst das Fenster eine Liste für Attribute 64 bis 66, die in Feldern 67 bis 69 für Objekte eines Objekttypl dargestellt werden. Die Filter dienen dabei einer Einschränkung oder Sortierung der anzuzeigenden Datenmenge.
In diesem Fenster können jedoch nur Attribute von Objekten eines Objekttyps Objekttypl angezeigt werden. Da jeder Typ von Objekten unterschiedliche Filter-Methoden sowie Filter- Parameter und in Art oder Anzahl unterschiedliche Attribute
64 bis 66 enthält, wird für jeden Objekttyp ein speziell angepasstes Fenster verwendet.
Das Nachrichtenflussdiagramm in Fig. 7 zeigt einen Server 70 und einen Client 80. Zunächst wählt in einem Schritt 71 ein nicht dargestellter Benutzer einen Objekttyp aus und bekommt daraufhin das Fenster aus Figur 6 angezeigt.
Dem Benutzer werden in einem Schritt 72 die für den Objekttyp bekannten, fest in der graphischen Benutzerschnittstelle einprogrammierten Filtermethoden sowie zugehörigen Filterparameter zur Auswahl angezeigt. Nach Auswählen einer Filtermethode Fl und Eingabe von Filterparametern FPl sendet der Client 80 eine Anforderung 81 für eine gefilterte Objektliste an den Server 70. In diesem wird in einem Schritt 73 eine Filterung von Objekten gemäß der angeforderten Filtermethode Fl und der angeforderten Filter-Parameter FPl durchgeführt. Als Ergebnis wird eine Liste von Objekten erhalten, die für den Objekttyp in der Server-Software bekannt sind. Diese Liste wird mit einer Nachricht 82 an den Client 80 gesandt.
Optional wird in dem Client in einem Schritt 74 von dem Benutzer eines der ihm angezeigten Objekte ausgewählt und mit einer Nachricht 83 die Eigenschaften des ausgewählten Objektes angefordert.
Mit einer Nachricht 84 erhält der Client die Attribute AI bis A3 für ein oder mehrere Objekte. Diese zeigt er schließlich in einem Schritt 75, beispielsweise in den Feldern 67 bis 69 der Fig. 6, an.
Üblicherweise sind also die dem Benutzer angezeigten Eigenschaften, in Form der angebotenen Filter-Methoden, Filter-Parameter und anzuzeigenden Attribute, fest in dem Programmcode des Fensters aus Fig. 6 einprogrammiert.
Häufig kommt serverseitig ein weiterer Objekttyp hinzu oder es ändert sich die Auswahl der Eigenschaften eines Objekttyps, die ein Server für den Client anbieten möchte. In diesen Fällen wird für die Client-Software ein neues Fenster programmiert oder die Programmierung der vorhandenen Fenster angepasst. Somit muss dann die gesamte Client-Software zur Darstellung der Fenster neu übersetzt und gelinkt werden.
Für das Verbindungsmanagement-System ist es also notwendig die Client-Software bzw. dessen GUI in allen Clients des
Systems anzupassen, wenn sich aus Änderungen oder Ergänzungen in dem System neue Eigenschaften für bekannte Objekte oder neue bisher nicht bekannte Objekttypen ergeben.
Aufgabe der vorliegenden Erfindung ist es, ein Verfahren, einen Client-Rechner, einen Server-Rechner sowie Speichermedien mit entsprechender Software zum Anzeigen von Eigenschaften serverseitig gespeicherter Objekte in einem Client-Rechner bereitzustellen, die eine Änderung der Art oder Anzahl von Eigenschaften eines Objektes in der Server- Software unabhängig von einer entsprechenden Änderung der Client-Software ermöglichen.
Diese Aufgabe wird durch die Gegenstände der unabhängigen Patentansprüche gelöst. Die abhängigen Patentansprüche beschreiben bevorzugte Ausführungsformen der Erfindung.
Ein Aspekt der vorliegenden Erfindung ist das Anzeigen von Eigenschaften für Objekte verschiedener Typen in einem einzigen flexiblen Fenster in einem Client-Rechner. Dafür werden in einem Server-Rechner die Objekte auf ihre für sie definierten Eigenschaften untersucht. Das Untersuchen auf definierte Eigenschaften wird dabei insbesondere ermöglicht durch Einhalten einer entsprechenden Namenskonvention für Klassen und deren Methoden in dem Server-Rechner. Als Objekt kann hier sowohl eine Instanz der Klassen als auch die Klasse selbst gesehen werden. Die Einhaltung einer entsprechend
angepassten Vererbungshierarchie für die Klassen und Objekte der Server-Software kann ein solches Verfahren unterstützen.
Gemäß der Erfindung umfasst ein Verfahren zum Anzeigen von Eigenschaften von Objekten einer Server-Software auf einer Anzeigeeinrichtung eines Client-Rechners, wobei ein Objekt eine programmtechnische Struktur ist, welche die Eigenschaften und aufrufbare Methoden aufweist, folgende Schritten: Senden von Anforderungsdaten für die Eigenschaften eines Objektes der Server-Software von dem Client-Rechner an den Server-Rechner, Ermitteln der angeforderten Eigenschaften in dem Server-Rechner, Senden der ermittelten Eigenschaften von dem Server-Rechner an den Client-Rechner, Anzeigen der gesendeten Eigenschaften auf der Anzeigeeinrichtung des Client-Rechners, wobei der Schritt des Ermitteins der
Eigenschaften eine vorbestimmte Namenskonvention, die für Methoden von Objekten der Server-Software verwendet wird, anwendet, um die für das Objekt definierten Methoden am Methodennamen zu erkennen, und die Eigenschaften mittels der erkannten Methoden bestimmt.
Somit können Eigenschaften von Objekten, die auch eine für den Client unbekannte Struktur aufweisen können, in einer graphischen Benutzeroberfläche auf dem Client-Rechner angezeigt werden. Zudem kann für das Anzeigen von
Eigenschaften verschiedener Objekttypen in dem Client-Rechner das gleiche flexible Fenster einer GUI verwendet werden. Dieses flexible Fenster muss dann auch bei Einführung von neuen Objekttypen im Server-Rechner nicht mehr angepasst werden.
Gemäß einer bevorzugten Ausgestaltung des Verfahrens werden in dem Schritt des Ermitteins die angeforderten Eigenschaften als Rückgabewerte eines Aufrufs der erkannten Methoden bestimmt. Methoden, die Eigenschaften als Rückgabewerte ihres Aufrufs bereitstellen sind häufig bereits vorhanden. Dann müssen in der Server-Software lediglich diese Methoden nach
der vorbestimmten Namenkonvention benannt werden, um die gewünschte Flexibilität zu erreichen. Weiterhin kann in der Server-Software eine zentrale Funktion den Schritt des Ermitteins für alle Objekttypen ausführen, wodurch weiterer Codierungsaufwand eingespart wird. Zusätzlich ist es auf diesem Wege möglich, für eine Methode, die als Rückgabewert eine Eigenschaft liefert, durch Verwenden oder Nichtverwenden der vorbestimmten Namenkonvention zu entscheiden, ob der Rückgabewert dieser Methode auf einem Client-Rechner als Eigenschaft angezeigt wird.
Gemäß einer weiteren Ausgestaltung des Verfahrens werden in dem Schritt des Ermitteins die angeforderten Eigenschaften aus den Methodennamen der erkannten Methoden bestimmt. Somit können als Eigenschaften des Objekts neben Attributen auch Informationen über die für das Objekt definierten Methoden angezeigt werden. Neben der Ermittlung von für das Objekt definierten Methoden kann durch eine entsprechend angepasste Namenskonvention in dem Methodennamen auch weitere Information enthalten sein.
Vorzugsweise werden in dem Schritt des Sendens von Anforderungsdaten Filter angefordert, die für das Objekt definiert sind, wobei in dem Schritt des Ermitteins die erkannten Methoden Filtermethoden sind. Somit können einem Benutzer an der Anzeigeeinrichtung des Client-Rechners unabhängig vom Objekttyp Filter zur Auswahl bereit gestellt werden, die beispielsweise eine Einschränkung oder Auswahl von Objekten vornehmen können, deren Eigenschaften in einem weiteren Schritt angezeigt werden sollen.
Besonders vorteilhaft ist es, aus dem Namen der Filtermethoden zumindest die Anzahl oder die Art der für die Filtermethode definierten Filterparameter zu bestimmen. Auf diesem Wege können allein durch Erkennen und Auswerten der
Filtermethodennamen die definierten Filter und eine für jeden
Filter variable Anzahl oder Art von Parametern ermittelt werden.
Gemäß einer bevorzugten Ausgestaltung des Verfahrens werden in dem Schritt des Ermitteins weiterhin Zusatzinformationen zu den Eigenschaften des Objektes ermittelt. Somit kann der Schritt des Anzeigens der Eigenschaften des Objekts entsprechend der Zusatzinformation flexibel angepasst oder die Eigenschaften des Objekts in einer der Zusatzinformation entsprechenden Weise aufbereitet werden. Als
Zusatzinformation kann beispielsweise der Name einer anzuzeigenden Eigenschaft ermittelt werden, können Filterparameter bestimmt werden oder Eigenschaften, wie Referenzen auf andere Objekte oder sprachabhängig zu ersetzende Eigenschaften, entsprechend verwaltet werden.
Gemäß einer weiteren bevorzugten Ausgestaltung des Verfahrens sind die erkannten Methoden Schnittstellenmethoden für die Eigenschaften des Objekts, die als Zusatzinformation in ihrem Methodennamen die Namen der Eigenschaften umfassen. Somit kann aus dem Methodennamen der Name der Eigenschaft abgeleitet und als Zusatzinformation verwendet werden.
Vorzugsweise sind in der Server-Software zur Laufzeit der Server-Software Objekte gespeichert, die eine Objektklasse repräsentieren, wobei Instanzen der Objektklasse zur Laufzeit der Server-Software erzeugt und gespeichert werden können oder Objekte gespeichert werden, die eine Instanz einer Objektklasse sind. Möglich ist hier auch, eine erste Gruppe von Objekten zu verwenden, denen jeweils eine Vielzahl von Objekten zugeordnet sein kann. Für den Fall solcher zugeordneter oder abgeleiteter Objekte sind mehrstufige Verfahren denkbar, um zunächst die für ein Objekt definierten Objekte zu ermitteln, um dann die Eigenschaften der ermittelten Objekte anzuzeigen.
Gemäß einer bevorzugten Ausführungsform eines solchen Verfahrens umfasst der Schritt des Sendens von Anforderungsdaten weiterhin die Schritte eines Sendens einer Listenanforderung, die eine Liste von Objekten gemäß eines ersten Filters anfordert, von dem Client-Rechner an den Server-Rechner und eines Sendens der anhand des ersten Filters in dem Server bestimmten Liste von Objekten von dem Server-Rechner an den Client-Rechner sowie eines Anzeigens der Liste von Objekten in dem Client-Rechner für ein mögliches Auswählen des Objektes aus der Liste von Objekten. Somit kann einem Benutzer eine Objektliste angeboten werden, aus der er ein einzelnes Objekt auswählen kann, dessen Eigenschaften er betrachten möchte.
Bei einer vorteilhaften Ausgestaltung des Verfahrens umfasst der Schritt des Sendens von Anforderungsdaten weiterhin die Schritte eines Sendens einer Filteranforderung von dem Client-Rechner an den Server-Rechner, ein Auswerten der Filteranforderung in dem Server-Rechner, wobei die für das Objekt definierten Filtermethoden anhand eines vorbestimmten Namensanteils in Namen von Filtermethoden bestimmt werden, eines Sendens der ermittelten Filter von dem Server-Rechner an den Client-Rechner sowie eines Anzeigens der empfangenen Filter in dem Client-Rechner für ein Auswählen eines zweiten Filters aus den empfangenen Filtern. Vorzugsweise ist der zweite Filter der vorbenannte erste Filter. Somit wird das erfindungsgemäße Verfahren in einer zweistufigen Form anwendbar.
Gemäß der Erfindung kann ein Client-Rechner und/oder ein
Server-Rechner angepasst sein bzw. Mittel enthalten, um in einem Client-Server-System die entsprechenden Schritte des beschriebenen Verfahrens auszuführen.
Ein Speichermedium kann gemäß der Erfindung eine ausführbare Kommandosequenz oder Client- bzw. Server-Software enthalten, die angepasst ist, auf einem Client- bzw. Server-Rechner die
entsprechenden Schritte des beschriebenen Verfahrens auszuführen.
Im folgenden werden bevorzugte Ausführungsformen der Erfindung anhand der Zeichnungen beschrieben, welche im einzelnen zeigen:
Fig. 1 eine schematische Darstellung eines Client-Server- Systems gemäß der Erfindung;
Fig. 2 eine schematische Darstellung der Einheiten eines
Server- oder eines Client-Rechners;
Fig. 3 eine schematische Darstellung einer einfachen Vererbungshierarchie für Objektklassen;
Fig. 4 eine Darstellung einer graphischen Benutzeroberfläche gemäß der Erfindung;
Fig. 5 ein Nachrichtenflussdiagramm in einem Client-
Server-System gemäß der Erfindung;
Fig. 6 eine Darstellung einer Benutzeroberfläche gemäß dem Stand der Technik;
Fig. 7 ein Nachrichtenflussdiagramm für ein Verfahren in einem Client-Server-System gemäß dem Stand der Technik.
Zunächst werden für ein Netzwerkmanagement-System oder Verbindungsmanagement-System am Beispiel der Figuren 1 bis 3 die grundlegenden Begriffe vertieft, bevor die Erfindung insbesondere mit Bezug auf die Figuren 4 und 5 erläutert wird.
Fig. 1 zeigt ein Client-Server-System mit einem Server 10, der eine Server-Software 11 sowie eine optionale Datenbank 12 umfasst. In der Server-Software 11 ist ein Objekt 13 bis 15
dargestellt. Der Server-Rechner 10 ist mit einer Vielzahl von Client-Rechnern 20a bis 20c verbunden, die jeweils eine Client-Software 21a bis 21c aufweisen.
Die Client-Software 21a bis 21c zeigt für einen nicht dargestellten Benutzer auf einer Anzeigevorrichtung 22a bis 22c des Client-Rechners 20a bis 20c eine graphische Benutzeroberfläche an, die zur Visualisierung von Eigenschaften des serverseitig gespeicherten Objekts 13 bis 15 dient.
Das Objekt 13 bis 15 ist ein Objekt einer nicht dargestellten Vielzahl von Objekten in der Server-Software 11. Für eine bevorzugte Ausführungsform ist in Fig. 1 seine innere Struktur dargestellt. Neben der Kernfunktionalität 13 des Objekts umfasst es eine erste Schnittstelle 14, zur Bereitstellung der Eigenschaften des Objekts oder seiner Instanzen, und eine zweite Schnittstelle 15, die beispielsweise Funktionen zum Erzeugen von Instanzen des Objekts oder dessen Filtermethoden bereitstellt. Es ist anzumerken, dass die als Server-Software bezeichnete Einheit 11 lediglich eine Komponente der auf dem Server 10 ablaufenden Software sein kann.
Fig. 2 zeigt eine schematische Darstellung der wesentlichen Einheiten eines Rechners.
Ein Server-Rechner wird üblicherweise eine CPU 23, einen Speicher 24 zur persistenten Datenspeicherung beispielsweise der Serversoftware, einen Arbeitsspeicher 25 sowie eine externe Schnittstelle 28 zur Anbindung des Server-Rechners an das Client-Server-System beispielsweise über ein Netzwerk umfassen.
Eigenschaften von Objekten der Server-Software können temporär im Arbeitsspeicher 25 oder persistent im Speicher 24
gespeichert sein. Die Eigenschaften können aber auch in einer separaten Datenbank abgelegt sein, die über die externe Schnittstelle 28 oder über eine optionale interne Schnittstelle 29 mit dem Server-Rechner verbunden sein kann.
Optional umfasst der Server-Rechner eine Eingabeeinheit 26 sowie eine Ausgabeeinheit 27, die beispielsweise zur Administration der Server-Software einsetzbar sind.
Ein Client-Rechner wird zumindest eine CPU 23, einen
Arbeitsspeicher 25, eine Ausgabeeinheit 27, vorzugsweise eine Anzeigeeinrichtung, und die externe Schnittstelle 28 umfassen. Über die externe Schnittstelle 28 ist der Client- Rechner mit dem Client-Server-System beispielsweise über das Netzwerk verbunden.
Sinnvollerweise umfasst der Client-Server einen Speicher 24 zur persistenten Speicherung der Client-Software, die über eine externe Schnittstelle 28 von einem Server Daten erhält, welche die Eigenschaften von Objekten umfassen. Die
Eigenschaften können dann mittels der Ausgabeeinheit 27 für den Benutzer anzeigt werden.
Üblicherweise umfasst der Client-Rechner weiterhin eine Eingabeeinheit 26, um Benutzereingaben beispielsweise in Antwort auf angezeigte Daten zu ermöglichen.
Eingabeeinheiten 26 können dabei eine Vielzahl von Untereinheiten, wie beispielsweise Tastatur, Maus, Mikrophon oder berührungsempfindliche Bildschirme aufweisen. Auch
Ausgabeeinheiten 27 können eine Vielzahl von Untereinheiten, wie beispielsweise Bildschirm, Lautsprecher und Drucker umfassen.
Fig. 3 zeigt ein Beispiel einer Vererbungshierarchie für die in einer Server-Software verwendete Vielzahl von Klassen B0 bis B32. Üblicherweise werden die Klassen B0 bis B32
voneinander abgeleitet. Die Klasse B21 ist von der Klasse Bll abgeleitet, die wiederum von der Klasse BO abgeleitet wurde.
Eine Klasse ist dabei eine durch entsprechenden Programmcode definierte Struktur, die beispielsweise in den
Programmiersprachen JAVA oder C++ geschrieben sein kann. In einer Klasse können Methoden und Attribute definiert werden. Die Attribute weisen dabei einen Attributnamen sowie einen Attributwert auf, der als Datenfeld oder Inhalt des Attributs aufgefasst werden kann. Methoden sind Daten verarbeitende ausführbare Programmstrukturen, die auch als aufrufbare Methoden oder Funktionen bezeichnet werden können. Sie können einen optionalen Eingabewert verarbeiten und als Ergebnis einen optionalen Rückgabewert liefern. Eine Klasse wird eindeutig durch ihren Namen gekennzeichnet, der auch als Basisname bezeichnet wird.
Zur Laufzeit der Server-Software wird eine Klasse durch ein Objekt repräsentiert. Instanzen einer Klasse können als weitere Objekte erzeugt werden. Die Server-Software weist also eine Vielzahl von Objekten auf, die sowohl Klassen als auch Instanzen der Klassen sein können. Für die Objekte sind sowohl Attribute als auch Methoden definiert, die beide als Eigenschaften der Objekte bezeichnet werden.
Beispielsweise könnte der Rechner aus Figur 2 in der Serversoftware durch ein Objekt Rechnerl dargestellt werden, das eine Instanz der Klasse Hardware_Rechner ist, die wiederum aus der Klasse Hardware abgeleitet ist. Die Einheiten 23 bis 29 können als Objekte Obj23 bis Obj29 durch
Instanzen einer Klasse Hardware_Untereinhei t dargestellt werden. Eine Server-Software in dem Rechner kann nun auf Anforderung die Eigenschaften der Objekte Rechnerl oder Obj23 bis Obj29 an einen Client-Rechner senden, der die Eigenschaften anzeigen soll. Üblicherweise verwaltet eine
Server-Software auch Eigenschaf en weiterer Einheiten aus dem von ihr verwalteten Netzwerk. In diesem Beispiel wird aus
Gründen der Transparenz auf deren Berücksichtigung verzichtet.
Durch die Strukturierung des Objektes 13 bis 15 in der Server-Software 11 in Figur 1 ist bereits eine mögliche Implementierung der Server-Objekte durch Enterprice Java Beans (EJB) angedeutet. Bei Verwendung von EJBs unterscheidet man üblicherweise zwischen Session Beans, die im wesentlichen temporäre Daten speichern, und Entity Beans, deren Eigenschaften persistent gespeichert werden.
Das Objekt 13 bis 15 stellt eine Entity Bean dar. Es besteht aus einem Home-Interface 15, welches Methoden zum Erzeugen oder Vernichten von Instanzen der Entity Bean ("create" oder "delete") sowie die entsprechenden Filtermethoden ("find") umfasst, einem Remote-Interface 14, in welcher die Schnittstellenmethoden ("get" und "set") zur Bereitstellung der Eigenschaften des Objekts enthalten sind, und die eigentliche Kernfunktion 13 oder Bean. Einer einfachen Namenskonvention folgend heißen die drei entsprechenden Klassen "<Basisname>Home" , "<Basisname>Remote" und "<Basisname>Bean" .
Die Namen der Filter-Methoden beginnen mit dem Präfix "findLwBy", während in dem Remote-Interface 14 die
Schnittstellenmethoden zum Ermitteln eines Attributs mit dem Präfix "get_" beginnen.
Das Home-Interface 15 kann weiterhin eine Methode zum Erkennen einzelner Objekte oder Instanzen der Entity Bean bereitstellen. Der Name bzw. die Existenz der Entity Bean kann dem Client dabei über eine zusätzliche nicht dargestellte Komponente, wie dem "Java Name Directory Interface" (JNDI), bekannt sein.
Figur 4 zeigt ein Fenster mit einer Liste von Objekten und deren Eigenschaf en, wie es von einer graphischen
Benutzeroberfläche einer Client-Software in einem Client- Rechner auf dessen Bildschirm oder Ausgabeeinheit angezeigt wird.
Neben einer Titelleiste 41 des Listenfensters ist ein Auswahlfeld 42 für einen Basisnamen, der einen Namen einer Objektklasse repräsentiert, ein Auswahlfeld 43 für eine Filtermethode sowie ein Eingabefeld 44 für optionale Filterparameter dargestellt.
Weiterhin ist neben einer Liste von Objekten 45, in welcher beispielsweise Objektnamen in den Feldern 46 angezeigt werden, eine Liste von Attributen oder Eigenschaften mit zwei Spalten Attributname 47 und Attributwert 49 mit entsprechenden Feldern 48 und 50 angezeigt.
Die Liste der Objekte 45 und die Liste der Attribute 47, 49 sind dabei in ihrer Zeilenzahl variabel ausgestaltet.
Für das beschriebene Beispiel des Rechners aus Figur 2 wird als Basisname Hardware__Untereinhei t von dem Benutzer eingegeben oder aus einer Liste von Basisnamen ausgewählt. Dann werden die für das Objekt dieser Klasse definierten Filtermethoden ( findLwby_Name, findLwby__Interfaces, ...) im Feld 43 zur Auswahl angeboten. Nach Auswahl des Filters findLwby_Interfaces werden in der Objektliste 45 die in dem Rechner verwalteten Schnittstelleneinheiten obj28 und obj29 in den Feldern 46 angezeigt. Automatisch werden für das erste Objekt obj28 in der Liste der Attribute 47,90 dessen Eigenschaften angezeigt: "Status | extern, maximale Datenrate | 56kB, aktive Verbindungen | *". Das Symbol "*" deutet einerseits an, dass aktive Verbindungen über die externe Schnittstelle bestehen. Andererseits zeigt es weiterhin an, dass diese Eigenschaften nicht in der Spalte 49, sondern nur in einem Detailfenster dargestellt werden können. Das
Detailfenster kann entweder nach einer Auswahl des Benutzers,
beispielsweise durch Anklicken des Feldes mit dem Symbol "*", oder automatisch geöffnet werden.
Weiterhin können die Einträge in der Spalte Attributwert 49 formatfrei, also unabhängig vom Datentyp des Attributwerts, dargestellt werden. Dazu kann beispielsweise der Inhalt der Eigenschaften, also der Attributwert, in ein einheitliches zur generischen Darstellung geeignetes Format, beispielsweise eine Zeichenfolge, konvertiert werden.
Die einzelnen durch gestrichelte Linien getrennten Bereiche des Listenfensters können optional, schrittweise erst nach der entsprechenden Benutzereingabe in dem darüber liegenden Bereich angezeigt werden. Das Anzeigen kann, durch eine später beispielhaft beschriebene vorbestimmte Auswahl oder Defaultauswahl, ohne eine Benutzereingabe vollständig angezeigt und mit Daten ausgefüllt werden.
Ferner wird vorzugsweise die Objektliste 45 dem Benutzer in einer nicht dargestellten, aber beispielsweise für Browser üblichen, hierarchischen Baumstruktur angezeigt. Eine solche Baumstruktur aller Objekte kann optional zusätzlich zur Objektliste 45 angezeigt werden.
Nicht dargestellt ist in Fig. 4 ebenfalls, dass der Benutzer die Eigenschaften oder Attribute in verschiedenen Modi anzeigt bekommen kann. So kann er wahlweise die Eigenschaften in einem der Modi "Betrachten", "Bearbeiten" oder "Erzeugen" anzeigen lassen.
Das Nachrichtenflussdiagramm der Fig. 5 zeigt Verfahrensschritte und ausgetauschte Nachrichten in einem Client-Server-System, die ein erfindungsgemäßes Anzeigen serverseitig gespeicherter Eigenschaften von Objekten in einem Client ermöglichen. Im einzelnen zeigt Figur 5 ein
Nachrichtenflussdiagramm zwischen Server 10 und Client 20 in einem Netzwerkmanagement-System. Neben Schritten 31 bis 37
sind Nachrichten 51 bis 56 dargestellt, die zwischen dem Server 10 und dem Client 20 ausgetauscht werden.
Unter Bezugnahme auf Fig. 5 werden im Folgenden exemplarisch drei bevorzugte Ausführungsformen der Erfindung beschrieben, welche die Schritte 31 bis 33 und/oder 35 bis 37 umfassen.
Dabei wird einem nicht dargestellten Benutzer in einem optionalen Schritt 31 eine Vielzahl von Basisnamen, die Objektklassen repräsentieren, zur Auswahl angeboten. Der Benutzer kann einen Basisnamen auswählen.
Zunächst werden Anforderungsdaten für die Eigenschaften eines Objektes der Serversoftware von dem Client 20 zum Server 10 gesendet 51, 55. In Schritten 32, 36 werden die angeforderten Eigenschaften dann im Server 10 ermittelt. Dabei wird eine Namenskonvention ausgenutzt, die in der Server-Software für Methoden von Objekten verwendet wird, um die für das Objekt definierten Methoden zu erkennen. Vorzugsweise mittels der erkannten Methoden werden dann die Eigenschaften bestimmt.
Mit einer Nachricht 53,56 werden die Eigenschaften an den Client 20 gesandt und in diesem in einem Schritt 33,37, vorzugsweise für den Benutzer, angezeigt.
Es wird deutlich, dass die Schritte 31 bis 33 sowie 35 bis 37 nach dem gleichen Prinzip ablaufen. Der Unterschied zwischen diesen beiden Ausführungsformen ist zunächst darin zu sehen, dass mit den Schritten 31 bis 33 Methoden als Eigenschaften eines Objekts auf dem Client angezeigt werden, während mit den Schritten 35 bis 37 Attribute als Eigenschaften eines Objekts angezeigt werden.
Während die Attribute als angeforderte Eigenschaften vorzugsweise als Rückgabewerte der erkannten Methoden bestimmt werden, können Methoden als angeforderte
Eigenschaften aus den Methodennamen der erkannten Methoden bestimmt werden.
Als dritte Ausführungsform kann der in Fig. 5 dargestellte Gesamtablauf angesehen werden.
Mit der Anforderungsnachricht 51 fordert der Client 20 von dem Server 10 eine Liste der für den Basisnamen definierten Filter an. Dabei umfasst ein Filter einen Namen der Filtermethode sowie eine optionale beliebige Anzahl von Filterparametern .
Der Server 10 erkennt die definierten Filter für eine durch den Basisnamen repräsentierte Objektklasse als Objekt, indem er die Methoden der Objektklasse untersucht. In der Server- Software wird eine Namenskonvention für Filtermethoden eingehalten, die es ermöglicht die Filtermethoden unter den Methoden zu erkennen. Beispielsweise können Filtermethoden einheitlich mit einem Präfix "findLwBy" versehen sein. Die Server-Software erkennt also die Filtermethoden an ihren Namen .
Weiterhin kann der Server 10 das Objekt auf seine Filterparameter untersuchen, beispielsweise wenn diese als Zusatzinformation aus den Namen der Filtermethoden abgeleitet werden können.
In der Nachricht 52 werden die so bestimmten Filter von dem Server 10 an den Client 20 gesendet. In dem Client 20 werden die Filter in einem Schritt 33 dem nicht dargestellten Benutzer zur Auswahl angeboten, der durch eine optionale Benutzereingabe den Filter Fl und einen Filterparameter FPl auswählt .
Mit einer Nachricht 53 fordert der Client 20 von dem Server 10 eine Liste von Instanzen der Objektklasse gemäß der Filtermethode Fl mit dem Filterparameter FPl an. In einem
Schritt 34 erfolgt diese Filterung der Objekte auf dem Server 10.
Eine Liste der Objekte der Objektklasse, die optional gemäß dem ausgewählten Filter gefiltert ist, wird mit einer Nachricht 54 an den Client 20 gesandt. In einem Schritt 35 kann der nicht dargestellte Benutzer aus der erhaltenen Liste der Objekte, die ihm angezeigt wird, ein Objekt, beispielsweise das Objekt 01, auswählen.
Eine Nachricht 55 fordert von dem Server 10 die Attribute des Objekts 01 an. In einem Schritt 36 untersucht die Server- Software das Objekt 01 auf seine Attribute. Dazu kann mit der Nachricht 55 beispielsweise eine Referenz auf das Objekt 01 sowie entweder mit der Anforderung 51 oder innerhalb der Anforderungsdaten der Nachricht 55 der Basisname der Objektklasse an den Server 10 gesandt werden.
In dem Server 10 erkennt die Server-Software die Eigenschaften von Instanzen der Objektklasse anhand des Namens der Objektklasse und einer Namenskonvention für Schnittstellenmethoden, welche die Eigenschaften der Instanzen der Objektklasse bereitstellen.
So können beispielsweise alle Attribute oder Eigenschaften von Objekten, die von dem Server 10 für den Client 20 verfügbar gemacht werden sollen, mit einem Präfix "get_<Attributname>" gekennzeichnet sein. Somit kann die Server-Software beim Auswerten das Objekt bzw. die Objektklasse der Instanz auf Methoden der entsprechenden Namenskonvention untersuchen, um zu bestimmen, welche Eigenschaften das Objekt 01 besitzt. Die gleiche Methode kann dann zur Bestimmung der Eigenschaft verwendet werden.
In einer Nachricht 56 werden die so bestimmten Attribute, die also nach Datentyp, Anzahl der Eigenschaften und natürlich ihrem Inhalt variieren, zum Client-Rechner übertragen, um in
einem Schritt 37 in einer entsprechend flexiblen Struktur in dem Client 20 für den Benutzer angezeigt zu werden.
Jeder der in Figur 5 dargestellten Auswahlschritte 31, 33 und 35 kann durch eine vorab definierte Default-Auswahl ersetzt werden. Beispielsweise bietet sich als voreingestellte Default-Auswahl an, automatisch einen ersten Basisnamen von möglichen Basisnamen zu wählen, als Filter eine alphabetische Sortierung zu verwenden und ein erstes Objekt der Objektliste automatisch zu selektieren. Die Auswahlschritte entsprechen einer Auswahl in den Elementen 42, 43 und 45, die im Listenfenster 41 der Figur 4 dargestellt sind. Eine solche Default-Auswahl könnte entweder sofort zu Beginn der Darstellung des Listenfensters 41 oder nach Ablauf einer gewissen Zeitspanne ohne Benutzereingabe verwendet werden.
Das Anzeigen der Eigenschaften eines Objekts kann dabei beispielsweise auch in einem separat aber automatisch geöffneten Detail-Fenster erfolgen. Die Anforderungsdaten umfassen vorzugsweise eine Referenz auf das Objekt. Es kann beispielsweise entweder der Name des Objektes oder ein Zeiger auf das Objekt an den Server-Rechner übertragen werden.
Durch die vorbestimmte Namenskonvention können in den Methodennamen noch weitere Zusatzinformationen zu den
Eigenschaften des entsprechenden Objekts kodiert werden. Der Attributname als eine Zusatzinformation kann im Methodennamen enthalten sein ( "get_<Attributname>" ) , aber auch als Rückgabewert zusammen mit der Methode bestimmt werden ("get_A10" liefert Attributname und -wert).
Als Zusatzinformation kann sich einerseits die Anzahl der Eigenschaften des Objekts ergeben und andererseits auch der Datentyp der Eigenschaften. Beispielsweise kann ein Präfix für Methodennamen verwendet werden, der den Datentyp spezifiziert. So könnte eine Methode, die ein Zeichen übergibt, mit "get_c_", eine Methode, die eine Zahl übergibt,
mit "get_n_" und eine Methode, die eine Zeichenkette übergibt, mit "get_s_" beginnen.
Weiterhin können somit auch komplexere Datentypen voneinander unterschieden und entsprechend behandelt werden.
Beispielsweise kann eine Methode, die mit einem Präfix "get_T_" beginnt, eine Referenz auf ein abhängig von der Programmiersprache noch zu übersetzendes Objekt übergeben, während eine Funktion "get_R_<Basisname>" eine Referenz auf ein anderes Objekt übergibt, das erst durch Öffnen eines weiteren Detailfensters auf dem Client-Server angezeigt wird.
Der Schritt des Ermitteins der Zusatzinformation erfolgt also auf dem Server 10, es bleibt jedoch offen, die Zusatzinformation im Server 10 oder erst im Client 20 auszuwerten. Die Zusatzinformation kann mit den angeforderten Eigenschaften an den Client 20 gesandt werden.
In dem erfindungsgemäßen System kann auf dem Server 10 entschieden werden, welche Attribute auf dem Client 20 für ein Objekt sichtbar sein sollen. Für ein Attribut, welches nicht angezeigt werden soll, wird einfach die Namenskonvention für seine Schnittstellenmethode nicht eingehalten. Diese Methode wird nicht erkannt und das Attribut somit nicht angezeigt.
Die Auswahl der anzuzeigenden Eigenschaften kann geändert werden oder es können neue Objekttypen oder -klassen eingeführt werden, ohne dass die entsprechende Client- Software zur Darstellung der Eigenschaften angepasst werden muss. Dies ist insbesondere bei der Verwendung einer Vielzahl von Servern in verschiedenen Schichten sowie bei der üblichen Vielzahl von Clients, die von einem Server bedient werden, ein wesentlicher Fortschritt.
Für den Benutzer ist es möglich, allein durch Angabe des Basisnamens in einem Fenster automatisch und generisch in
diesem Fenster die Attribute oder Eigenschaften beliebiger Objekte angezeigt zu bekommen.
Um ein dynamisches Casten mittels des "Liskov Substitution Principle" zu gewährleisten, muss für die Klassen der Server- Software eine bestimmte Vererbungshierarchie eingehalten werde .
In einer bevorzugten Ausgestaltungsform werden in der Server- Software und der Client-Software entweder objektorientierte Schnittstellen (CORBA, RMI, DCON) oder nachrichtenbasierte Schnittstellen verwendet. Im Falle einer im wesentlichen aus der graphischen Benutzerschnittstelle, beispielsweise in Form eines Browsers, bestehenden Client-Software können ferner als Schnittstellen-Spezifikationen beispielsweise CGI-BIN, ULC oder HTTP verwendet werden.
Neben dem einfachen in Fig. 1 gezeigten System mit zwei Schichten, in welchem auch eine Vielzahl von Servern mit der Vielzahl von Clients verbunden sein könnte, sind beispielsweise auch mehrschichtige Modelle insbesondere durch Auslagern der optionalen Datenbank 12 in eine eigene Rechnereinheit denkbar. Grundsätzlich kann für andere Anwendungen der Server-Rechner auch als Client oder der Client-Rechner auch als Server fungieren.
Es ist offensichtlich, dass die Anwendung der beschriebenen Verfahren auf beliebige Systeme mit zumindest zwei Schichten erfolgen kann.