<Desc/Clms Page number 1>
Die Erfindung bezieht sich auf eine Schaltungsanordnung zum Erzeugen einer Benützeroberfläche aus einem objektorientierten Datenmodell mit einer Steuerstufe zum Auslesen von sich auf Objekte und deren Attribute beziehenden Daten aus einem Datenbankspeicher, mit einer mit der Steuerstufe verbundenen Rechnerstufe zum Ansteuern eines Bildschirmes, die einerseits an einer Auswahistufe für die auf der Benützeroberfläche anzuzeigenden Daten und anderseits an einem Programmspeicher für Steuerprogramme der Benützeroberfläche angeschlossen ist, und mit einer Eingabeeinheit zum Ansteuern der Auswahlstufe sowie einer Lese- und Schreibeinheit zum Abfragen und Ändern von auf der Benützeroberfläche anzeigbaren Daten.
Bei objektorientierten Datenmodellen werden ausgewählte Gruppen von Daten zu Objekten zusammengefasst, wobei die einzelnen Daten in Form von Attributen gespeichert sind, die sich aus einer Attributbezeichnung und einem Wert zusammensetzen. Die Eigenschaften eines Objektes werden also durch dessen Attribute beschrieben. Gleichartige Objekte, also Objekte mit übereinstimmenden Eigenschaften bilden eine Objektklasse, wobei die einzelnen Objektklassen hierarchisch geordnet werden, wobei die Objekte einer Unterklasse neben allen Attributen ihrer Oberklasse zusätzliche Attribute aufweisen. Die Objekte einer Unterklasse sind daher stets zugleich Objekte ihrer Oberklasse. So kann beispielsweise eine Objektklasse "Person" die Attribute "Name" und "Adresse" beinhalten.
Jede bestimmte, mit Name und Adresse angegebene Person bildet daher ein Objekt der Objektklasse "Person". Dieser Objektklasse "Person" kann eine Unterklasse "Mitarbeiter" hinzugefügt werden, deren Attribute sich auf betriebliche Daten beziehen, beispielsweise das Datum des Dienstvertrages oder den Lohn. Mit einer solchen objektorientierten Datenzusammenfassung ergibt sich eine Datenstrukturierung, die eine vorteilhafte Selektion
<Desc/Clms Page number 2>
von Daten aus einer Fülle von abgespeicherten Daten nach bestimmten Auswahlkriterien ermöglicht. Damit solche selektierten Daten einem Benützer einer entsprechenden Datenbank in einer benützergerechten Form zur Verfügung gestellt werden können, müssen jedoch geeignete Benützeroberflächen geschaffen werden, was im allgemeinen mit einer aufwendigen Programmierarbeit verbunden ist.
Eine für einen Benützer vorteilhafte Datendarstellung auf der Benützeroberfläche ergibt sich häufig erst nach einer Änderung der Benützeroberfläche, was zu zusätzlichen Programmierarbeiten führt.
Um die Dateneingabe in eine Datenbank überprüfen zu können, ist es bereits bekannt, nicht auf eine vorprogrammierte Benützeroberfläche zurückzugreifen, sondern einen Programmspeicher mit Steuerprogrammen zur Erstellung einer Benützerober- fläche vorzusehen, die unter Berücksichtigung der anzuzeigenden bzw. zu ändernden Daten erstellt wird.
Zu diesem Zweck werden die jeweiligen Daten entsprechend ihrer Struktur über eine Steuerstufe aus der Datenbank ausgelesen und in einer Rechnerstufe in Abhängigkeit vom jeweiligen Steuerprogramm zur Ansteuerung des Bildschirms verarbeitet, der dann eine Benützeroberfläche mit einer Liste von Daten in einer Strukturebene anzeigt, beispielsweise alle gespeicherten Objekte. Über eine Auswahistufe, die von einer Eingabeeinheit angesteuert werden kann, kann dann ein Objekt ausgewählt werden, um von diesem Objekt eine Liste aller Attribute, also der Daten der nächsten Strukturebene, zu erhalten, wobei wiederum die Benützeroberfläche über ein in Abhängigkeit von den anzuzeigenden Daten ausgewähltes Steuerprogramm über die Rechnerstufe erzeugt wird.
Dieser Vorgang kann wiederholt werden, bis der anzuzeigende oder zu ändernde Wert auf der Benützeroberfläche dargestellt ist. Nachteilig bei dieser bekannten, selbständigen Programmierung der Benützeroberfläche anhand der anzuzeigenden Daten ist jedoch, dass lediglich die Daten einer Strukturebene in einer Benützeroberfläche dargestellt werden können, so dass eine solche selbständige Programmierung von Benützeroberflächen kein geeignetes Werkzeug zur anwenderbezogenen Benützung und Verwaltung von Daten einer objektorientierten Datenbank darstellt.
Der Erfindung liegt somit die Aufgabe zugrunde, eine Schaltungsanordnung zum Erzeugen einer Benützeroberfläche aus einem objektorientierten Datenmodell der
<Desc/Clms Page number 3>
eingangs geschilderten Art so auszugestalten, dass eine für den Benützer praktikable
Benützeroberfläche zur Benützung und Verwaltung der abgespeicherten Daten zur Verfügung gestellt werden kann, ohne diese Benützeroberflächen gesondert programmieren zu müssen.
Die Erfindung löst die gestellte Aufgabe dadurch, dass die Steuerstufe eine mit einem Objektspeicher verbundene Auswahleinheit für die zum Aufbau von Objekten in einer Klassenhierarchie benötigten Daten aufweist und dass die über die Auswahlstufe auswählbaren Objekte jeweils mit ihren sie von ihrer Oberklasse unterscheidenden Attributen zusammen mit der ihnen zugehörigen Ober- und Unterklasse über die Rechnerstufe aus dem Objektspeicher zur Ansteuerung des Bildschirmes im Sinne einer Anzeige dieser Daten auf der Benützeroberfläche auslesbar sind.
Durch das Vorsehen einer Auswahleinheit für die zum Aufbau von Objekten in einer Klassenhierarchie benötigten Daten und das Abspeichern dieser Daten in einem Objektspeicher kann die Benützeroberfläche über im Programmspeicher abgespeicherte Steuerprogramme entsprechend der Klassenhierarchie der Objektklassen strukturiert werden. Dies bedeutet, dass eine Benützeroberfläche für ein Objekt erstellt wird, das zusammen mit seinen es von der jeweiligen Oberklasse unterscheidenden Attributen gezeigt wird, so dass der Benützer über die in Abhängigkeit von den aus- gewählten Daten programmbedingt erzeugte Benützeroberfläche alle im Zusammenhang mit dem jeweils aufgerufenen Objekt unmittelbar verknüpften Daten zur Verfügung gestellt bekommt.
Diese Daten können aber nicht nur gelesen, sondern gegebenenfalls auch über die vorgesehene Lese- und Schreibeinheit geändert werden.
Der Benützer hat über eine solche Benützeroberfläche aber auch Zugriff zu weiteren Attributen des angezeigten Objektes, weil ja dessen Oberklasse ebenfalls auf der Benützeroberfläche angegeben wird, um bei der Auswahl des zugehörigen Oberklassenobjekts dessen Attribute zu erhalten. In ähnlicher Weise kann eine Benützeroberfläche für eine vorhandene Unterklasse erstellt werden, wobei jeweils das Objekt mit den Attributen dargestellt wird, die nicht von einer Oberklasse geerbt sind.
Die auf der Basis einer Klassenhierarchie aus den abgespeicherten Daten eines Objektspeichers mit Hilfe allgemeiner Steuerprogramme erstellten Benützeroberflächen, die über die Daten des Objektspeichers an den jeweiligen Anwendungsfall
<Desc/Clms Page number 4>
angepasst sind, können somit den meisten Anwenderanforderungen genügen, zumal stets eine weiterreichende Anpassung an neue Anforderungen möglich ist.
Um eine solche weiterreichende Anpassung der Benützeroberflächen an unterschiedliche Bedingungen zu erhalten, kann der Objektspeicher Speichereinheiten für programmbedingt aus Objektklassen oder deren Attributen aufgebaute Objekte mit gesonderten, die Eigenschaften dieser Objekte festlegenden Attributen aufweisen.
So können beispielsweise den in den Speichereinheiten zusätzlich aufgebauten Objekte die Attribute "sichtbar" und "änderbar" zugeordnet werden, um über das Steuerprogramm eine Benützeroberfläche zu erzeugen, die bestimmte Objektklassen oder Attribute zeigt oder unterdrückt. In ähnlicher Weise kann für die angezeigten Attributwerte vorbestimmt werden, ob sie geändert werden können oder nicht.
Mit Hilfe einer analogen Technik lassen sich auch Zugriffsrechte bei der Erstellung von Benützeroberflächen berücksichtigen, weil für die einzelnen Benützer nur Benützeroberflächen für jene Objektklassen erstellt werden können, auf die sie Zugriffsrechte in Form von entsprechend abgespeicherten Attributen haben.
Über geeignete Attributseigenschaften lassen sich im Zusammenhang mit der erfindungsgemässen Erstellung von Benützeroberflächen unterschiedliche Aufgaben in einfacher Weise lösen. So ist es beispielsweise möglich, Attribute zu erstellen, die auf andere Objekte verweisen, was für den Benützer die Möglichkeit eröffnet, auf alle mit einem solchen Attribut "Objektzeiger" versehenen Objekte zuzugreifen und Objektlisten aus diesen Objekten zu erstellen. Da zu den Objekten in den Objektlisten die jeweiligen Attribute zur Verfügung gestellt werden und über entsprechende Attributeigenschaften vom jeweiligen Benützer festgelegt werden kann, ob diese Attribute angezeigt werden sollen, kann jeder Benützer im Rahmen seiner Zugriffsrechte eine individuelle Benützeroberfläche gestalten, und für künftige Darstellungen solcher Objektlisten abspeichern.
In der Zeichnung ist der Erfindungsgegenstand beispielsweise dargestellt, und zwar wird eine erfindungsgemässe Schaltungsanordnung zum Erzeugen einer Benüt-
<Desc/Clms Page number 5>
zeroberfläche aus einem objektorientierten Datenmodell in einem schematischen
Blockschaltbild gezeigt.
Gemäss der dargestellten Schaltungsanordnung sollen aus einem Datenbankspeicher
1, der auch auf voneinander räumlich getrennte Speicherplätze aufgeteilt sein kann,
Daten von einem Benützer abgerufen und benützt werden können, was einen Bildschirm 2 mit einer geeigneten Benützeroberfläche voraussetzt. Damit keine vorprogrammierte Benützeroberfläche erforderlich wird und trotzdem die zur Verfügung zu stellenden Daten in einer für den Benützer vorteilhaften Darstellung dargeboten werden können, ist ein Programmspeicher 3 für Steuerprogramme vorgesehen, mit deren Hilfe eine Benützeroberfläche erstellt werden kann, die die Darstellung der Daten der Datenbank in einer vorgegebenen Struktur über eine Rechnerstufe 4 erlaubt.
Zu diesem Zweck ist der zur Datenabfrage des Datenbankspeichers 1 erforderlichen Steuerstufe 5 eine Auswahleinheit 6 für die zum Aufbau von Objekten in einer Klassenhierarchie benötigten Daten zugeordnet, die in einem Objektspeicher 7 abgelegt werden. Über die Auswahleinheit 6 werden somit nicht Daten einer Strukturebene aus der objektorientierten Datenbank zur Verfügung gestellt, sondern objektweise, so dass im Objektspeicher 7 die abgefragten Daten zu Objektklassen mit den zugehörigen Attributen zusammengefasst sind. Mit Hilfe der im Programmspeicher 3 abgespeicherten Steuerprogramme wird dann über die Rechnerstufe 4 aus den aus dem Objektspeicher 7 ausgelesenen Daten eine Benützeroberfläche erzeugt und der Bildschirm 2 entsprechend angesteuert.
Da die aus dem Objektspeicher 7 ausgelesenen Daten sich einerseits auf das anzuzeigende Objekt und anderseits auf die Attribute dieses Objekts beziehen, die dieses Objekt von seiner Oberklasse unterscheiden, werden in der erstellten Benützeroberfläche alle die Eigenschaften des darzustellenden Objektes unmittelbar kennzeichnenden Attribute angezeigt. Jedes Objekt einer Objektklasse umfasst nicht nur die die Eigenschaften dieser Objektklasse unmittelbar bestimmenden Attribute, sondem auch alle Attribute der in einer Klassenhierarchie übergeordneten Klasse, so dass eine Beschränkung der Zugriffsmöglichkeit auf lediglich die für die jeweilige Objektklasse spezifischen Attribute und nicht auch auf die aus der Oberklasse geerbten Attribute nicht sinnvoll wäre.
Aus diesem Grunde werden neben dem jeweiligen Objekt auch die zugehörige Oberklasse in der erstellten Benützeroberfläche angegeben. Durch eine Anwahl dieser Oberklasse
<Desc/Clms Page number 6>
stehen somit weitere Attribute des ausgewählten Objektes zur Verfügung. Mit der weiteren Angabe einer allfälligen Unterklasse kann somit eine vollständige Informaion über die in der Datenbank abgespeicherten Daten zu einem Objekt erhalten werden, und zwar in einer für den Benützer vorteilhaften Art, weil zufolge der geschilderten Massnahmen sich die Struktur des Objektaufbaus in der Benützeroberfläche wiederfindet.
Um dem Benützer eine entsprechende Eingriffsmöglichkeit auf die angezeigten Daten zu geben, ist eine Eingabeeinheit 8 vorgesehen, mit deren Hilfe die Rechnerstufe 4 über eine Auswahistufe 9 im Sinne einer Auswahl der auf der Benützeroberfläche anzuzeigenden bzw. angezeigten Daten angesteuert werden kann. Über die Auswahistufe 9 lassen sich folglich Objektklassen aus einer Klassenhierarchie, Objekte aus einer Objektklasse oder Attribute aus Objekten anwählen, wobei aufgrund der getroffenen Auswahl unter Umständen neue Benützeroberflächen in der bereits beschriebenen Weise gestaltet werden müssen. Durch eine Lese- und Schreibeinheit 10, die über die Eingabeeinheit 8 ansteuerbar ist, können ausgewählte Werte von Attributen oder Objekten durch den Benützer geändert oder neu eingegeben werden.
Es braucht wohl nicht besonders hervorgehoben zu werden, dass im Objektspeicher 7 nicht nur Objekte aus Daten abgespeichert werden können, die sich auf in der Datenbank abgelegte Werte unmittelbar beziehen, sondern auch Eigenschaften von Objektklassen oder Attributen betreffen. Mit solchen auf Objektklassen oder deren Attribute gegründeten Objekten lassen sich besondere Eigenschaften für bestimmte Attribute oder Objektklassen festlegen, so dass über diese Eigenschaften die Gestaltung der Benützeroberfläche zusätzlich beeinflusst werden kann, beispielsweise indem einem solchen Objekt das Attribut "sichtbar" oder "änderbar" zugeordnet wird. So kann z.
B. das Attribut "Name" einer Objektklasse "Person" selbst ein Objekt mit dem Attribut "änderbar" darstellen. Mit der Vorgabe eines Wertes für dieses Attribut kann "änderbar" dann für die Benützeroberfäche festgelegt werden, ob der Name einer Person durch den jeweiligen Benützer geändert werden kann oder nicht. In ähnlicher Weise können bestimmte Attribute Objekte bilden, die Zugriffseigenschaften definieren, um aus einer Benützeroberfläche Daten von vornherein ausblenden zu können, auf die der Benützer keine Zugriffsrechte hat. Mit der Möglichkeit, Objekt-
<Desc/Clms Page number 7>
klassen bzw.
Attribute von Objektklassen selbst als Objekte mit vorgebbaren Eigenschaften darzustellen, wird eine vielfältige Möglichkeit zu einer Anpassung der Benützeroberflächen an die Bedürfnisse eines Benützers geschaffen, ohne für den jeweiligen Anwendungsfall eine besondere Benützeroberfläche programmieren zu müssen.