MAL-Homepage Inhaltsverzeichnis



MAL Dokumentation: Folder




Inhalt:

1. EINLEITUNG
1.1. Vokabulars-Folder
1.2. Bedienung der Folder-Folder
2. ADMINISTRATION
3. DEFINITION
4. PARTNER-DIRECTORIES
5. WORTE FÜR DIE FOLDERBEARBEITUNG
5.1. Allgemeines
5.2. Einrichten eines Folders
5.3. Die wichtigsten 'FO'-Worte
6. LOGBOOK-VERWALTUNG
6.1. Vorgangsweise
6.2. Eigenschaften
6.3. Identifikationen
6.4. Bedienung
7. INTERNES
8. PERFORMANCE-TEST


1. EINLEITUNG

Faktisch sämtliche im MAL-System vorhandenen Worte, die nicht Teil des Kernels sind, sind in Foldern abgespeichert. Folder sind disk-residente Tabellen (im Datenbank-Jargon auch als Relationen bezeichnet). Es gibt zwei Systeme von Foldern (auch "Folder-Folder" bezeichnet):

Public-Foldersystem
Das Public-Foldersystem ist im Public-
Pool gespeichert (Dateien 'public.pl' und 'public.ix') und kann mit dem Wort unser geöffnet werden.

Private-Foldersystem
Das Private-Foldersystem ist im Private-
Pool gespeichert (Dateien 'private.pl' und 'private.ix') und kann mit dem Wort mein geöffnet werden.

MAL-Homepage Inhaltsverzeichnis


1.1. Vokabulars-Folder

Obwohl Folder für verschiedenste Zwecke verwendet werden können, sind sie doch bisher hauptsächlich für die Speicherung und Verwaltung von MAL-Worten in Verwendung. Alle derartigen Folder habe die gleichen Attribute (Tabellenspalten) und werden auch als "Vokabulars-Folder" bezeichnet, weil ihre Daten auf einfache Weise ins
Vokabular geladen werden können.

Vokabularsfolder haben immer folgende Attribute:



Bedienung:

Nach dem Öffnen eines Vokabularfolders (z.B. kann mit dem Wort arbeit der Test- und Entwicklungsfolder geöffnet werden) erscheint ein Browser mit folgenden Menüpunkten:

go
Beim Aufruf des Menüpunktes go wird jener Code, der in der Aufrufumgebung des markierten Wortes steht (dem Environment), gestartet. Die Aufrufumgebung legt in den meisten Fällen Beispiel-Versorgungsdaten auf den Stack und startet dann das Wort selbst (mit objekt \ code).

insert
Bei Aufruf des Menüpunktes insert wird zunächst ein Menü für die Auswahl der Datenart des neuen Eintrags angezeigt.

Je nach Datenart ist in der Folge der Helptext bzw. eine Maske mit dem Namen und der Themenzugehörigkeit (Topic) des neuen Wortes auszufüllen.

code
Der Menüpunkt code öffnet ein Editor-Fenster zum Editieren des MAL-Codes. Man beachte, dass in diesem Fall der einleitende Doppelpunkt und der Name des Wortes nicht Teil des Codes ist.

Also zum Beispiel das Wort 'hypothenuse':

: hypothenuse >> b >> a
a dup * b dup *
+ sqrt ;
würde im Editor-Fenster folgendermaßen aussehen:
>> b >> a
a dup * b dup *
+ sqrt ;

environment
Das Environment dient in der Regel dazu, das Wort mit Beispieldaten für den Test zu versorgen. Es kann aber beliebiger MAL-Code eingetragen werden, was natürlich auch für verschiedene Tricks verwendet werden kann. Durch den Code objekt \ code wird immer der im Folder-Eintrag definierte Code gestartet.

Das Environment für das Wort 'hypothenuse' könnte zum Beispiel folgendermaßen aussehen:

3 4 objekt \ code .

submenu
Das Submenu dient hauptsächlich für den Datenexport und -import (es wurde eingerichtet, um das Hauptmenü nicht zu überfüllen). Mit dem Menüpunkt export werden alle Einträge, die in der ganz rechten Spalte mit '+' markiert sind auf eine Metadatei exportiert und können in der Folge mit dem Menüpunkt insert (auch in einen anderen Folder) eintransferiert werden. Es ist dies die einzig korrekte Möglichkeit, Folder-Einträge von einem Vokabulars-Folder in einen anderen zu kopieren! Details zum Export und Import sind im Kapitel
Logbook-Verwaltung zu finden.

Der Menüpunkt Copy legt eine Kopie des gerade markierten Eintrags im gleichen Folder an. Er erhält einen neuen Namen und eine neue Identifikation.

MAL-Homepage Inhaltsverzeichnis


1.2. Bedienung der Folder-Folder

Nach dem Öffnen eines Folder-Folders mit dem Wort
public oder mein erscheint etwa folgender Browser:

Die Menüpunkte haben folgende Funktionen:

insert
Für das Einrichten eines neuen Folders sind mehrere Arbeitsschritte erforderlich:

Soll der neue Folder eine Partnerdirectory erhalten, so sind darüber hinaus noch folgende Schritte durchzuführen:

MAL-Homepage Inhaltsverzeichnis


2. ADMINISTRATION

Unter Administration wird die Konfiguration eines Folders verstanden. Das betrifft hauptsächlich die Anzahl und Art der Attribute (Tabellenspalten) aber auch die Eingabemaske und ähnliches.

Das Administrationsmenü hat folgende Punkte:

attributes
Bearbeiten der Attributliste:

Der Menüpunkt attributes öffnet eine Tabelle mit den Attributen und ihren Eigenschaften. Mit ? können die Eigenschaften eines Attributes abgefragt werden, mit insert wird ein neues Attribut eingerichtet und mit modify können die die Eigenschaften eines bereits bestehenden Attributes verändert werden.

In allen drei Fällen erscheint folgende Maske

deren Parameter wie folgt zu verstehen sind:

typ
Folgende Datentypen sind für Attribute vordefiniert:

Attribute vom Type 'text' oder 'num' können direkt über die generierte Eingabemaske eingegeben werden. Für alle anderen Datentypen muss man als Programmierer entweder eigene Menüpunkte zum Editieren oder Vorbesetzen, Auswerten usw. vorsehen. Sieh man nichts vor, so wird für den Attributtyp 'file' ein leerer Textverbund, für 'code' eine leere Doppelpunkt-Definition und für '*' ein Leerverbund angelegt.



Auswahllisten und Eingabeüberprüfung:

Mit den Menüpunkten list und checks können Auswahllisten oder Eingabeüberprüfungen für Attribute vom Typ 'text' oder 'num' festgelegt werden. list öffnet eine Tabelle, in die Auswahlwerte eingetragen werden können. checks öffnet folgende Maske:

Für die Werte von Field-Type stehen folgende Auswahlmöglichkeiten zur Verfügung: Zu beachten ist, dass die Auswahllisten und Eingabeüberprüfungen nur dann ausgewertet werden, wenn für Schreibzugriffe auf den Folder die Worte
standard_schreiben bzw. standard_aendern verwendet werden.

MAL-Homepage Inhaltsverzeichnis


3. DEFINITION

Die Bezeichnung "Folder" wird in den Beschreibungen in zweierlei Zusammenhang verwendet:

  1. Ein Folder ist eine tabellenartige Datenstruktur, die in einem Pool (also auf Datei) untergebracht ist.
  2. Ein Folder ist ein Fenster mit der Möglichkeit zum Blättern und einer Menüleiste zum Bearbeiten der Einträge.
Die erste Definition ist die korrekte. Allerdings ist für den Benutzer der Bedienoberfläche die dahinterliegende Datenstruktur im allgemeinen bedeutungslos. Für ihn tritt ein Folder immer in Form eines Fensters zum Blättern auf.

Für den Programmierer sieht die Situation folgendermaßen aus: Außerdem existieren verschiedenste Hilfsfunktionen und Prozeduren, zum Teil mit Bedienoberfläche, für die Verwaltung und Bearbeitung von Foldern.

Definition

Ein Folder ist ein in einem
Pool gespeicherter zweidimensionaler Datenverbund (= Tabelle oder Relation) mit zusätzlichen Verwaltungsdaten. Die Einträge dieses zweidimensionalen Datenverbundes (Objekte oder Foldereinträge) sind Verbunde und haben alle ähnlichen Aufbau (haben alle gleiche Attribute).

Die Folder-Daten (Datensatz: ´FO_daten´) sind mit den Verwaltungsdaten in einem gemeinsamen Verbund untergebracht. In der Folge wird dieser Verbund als Folder bezeichet.

Inhalt eines Folders



Die Datenübergabe an Worte, die mit Foldern arbeiten erfolgt bei den meisten Worten nicht über den Stack, sondern über das Vokabular (dieser Weg ist sinnvoll, da man selten mit mehreren Foldern parallel zu arbeiten hat).

Wenn man also mit einem Folder arbeiten will, so lädt man ihn zuerst mit >voc in das Vokabular. Somit erscheinen die oben angeführten Datensätze (z.B. ´FO_zeilenaufbau´) als Variablen.

Die entsprechende Worte zum Bearbeiten der Folder (z.B. FO_admin) greifen per Namen auf diese Variablen zu. Nachdem diese Variablen alle Poolverweise enthalten, haben die Worte auch die Möglichkeit, Veränderungen im Folder vorzunehmen.

Beispiel:
private \ folderdir \ startup_folder >voc 
FO_admin


Attributtypen:

Die Komponenten eines Folder-Eintrages (=Attribute) können beliebige MAL-Datensätze enthalten. Damit aber manche Zugriffe standardisiert werden können (zum Beispiel das Schreiben, Lesen und Suchen) ist es erforderlich, daß in den Verwaltungsdaten auch die Datentypen der Attribute definiert sind.

Folgende Attributtypen sind möglich:



MAL-Homepage Inhaltsverzeichnis


4. PARTNER-DIRECTORIES

Der Hauptzweck von Foldern ist die Verwaltung von MAL-Worten oder Datensätzen. Sie erleichtern die Dokumentation, Entwicklung und Wartung von MAL-Code. Dies erfordert zu jedem MAL-Wort einige Zusatzinformation für den Benutzer (z.B. Helptext usw.).

Für den Aufruf der MAL-Worte von Programmen aus sind diese Zusatzinformationen unnötiger Balast. Es ist daher naheliegend, eine zweite Adressierstruktur zu haben, von der aus die Worte direkt anprechbar sind. Diese nennt sich Directorystruktur.

Das Bild zeigt etwa die Struktur des Public-Pools, sowie die Zugehörigkeiten der Folder und Directories. Nicht jeder Folder hat eine Partnerdirectory (z.B. der Source-Folder benötigt keine).

Beispiel:

Der Folder

public \ folderdir \ startup_folder

hat die Partnerdirectory

public cool\ startup

eingetragen. Außerdem besitzt dieser Folder ein Attribut mit dem Namen name (Attributtyp: text) und eines mit dem Namen code (Attributtyp:code, disk_resident). Die Partnerdirectory enthält von den Objekten einen Poolverweis auf den Code, der mit dem Namen versehen ist. Z.B. wenn im Folder ein Eintrag mit dem Namen arbeit zu finden ist, so hat die Directory public \ startup folgendes Aussehen:

[ ..... arbeit=publ:27 ... ]

publ:27 sei der Poolverweis auf den Code von arbeit.

Bei jedem Schreiben, Löschen oder Verändern der Objekte im Folder, wird die Directory public \ startup auf neuesten Stand gebracht.

Vom Programm aus kann arbeit also mit

public \ startup \ arbeit

aufgerufen werden.

MAL-Homepage Inhaltsverzeichnis


5. WORTE FÜR DIE FOLDERBEARBEITUNG

5.1. Allgemeines

Worte für Folderzugriffe beginnen stets mit der Zeichenfolge 'FO_'. Einige dieser Worte finden auch bei der vorhin beschriebenen Bedienoberfläche Verwendung. Eine komplette Auflistung aller zum Bereich Folder gehörigen Worte kann unter dem Topic
folders gefunden werden.

Die Klasse voc_pool_class bietet eine einfache Möglichkeit, einen Folder in einem eigenen Pool einzurichten. Man sollte aber davon nur Gebrauch machen, wenn absehbar ist, dass die im Folder gespeicherten Daten nur von lokaler Bedeutung sind. Besteht die Aussicht, dass sie Bestandteil des MAL-Systems werden sollen, so sollten sie im Public- oder Private-Pool untegebracht werden. (Man bedenke in diesem Zusammenhang, dass beim Verschieben von Daten von einem Pool in einem anderen auch alle Poolverweise zu korrigieren sind!).

Aus Gründen der Übersichtlichkeit wird bei den 'FO_'-Worten vorausgesetzt, daß der Folder mit dem Wort >voc ins Vokabular geladen wurde. D.h. die Datensätze 'FO_attribute', 'FO_maske' usw. müssen als Variablen existieren u nd werden nicht am Stack übergeben.

Man kann sich diese Methode als ein Öffnen des Folders vorstellen (dass der Pool in dem sich der Folder befindet geöffnet sein muss wird vorausgesetzt). Alle 'FO_'-Worte greifen dann auf den zuletzt geöffneten Folder zu. Für Mehrfach-Öffnungen kann man das Black-Box-Prinzip der Doppelpunktdefinitionen nützen.

Beispiel:

Umspeichern aller Einträge aus destandardlistem Public-Startup-Folder in den Private-Startup-Folder:

: umspeichern
  : kopieren >> objekt
  objekt FO_read
  ( privaten Folder öffnen)  
  private \ folderdir \ startup_folder >voc
  FO_write ;
( öffentlichen Folder öffnen)
public \ folderdir \ startup_folder >voc
FO_daten each kopieren ;

MAL-Homepage Inhaltsverzeichnis


5.2. Einrichten eines Folders

Bezüglich des Einrichtens eines neuen Folders im Public- oder Private-Pool siehe
Bedienung der Folder-Folder.

Ein neuer Folder wird mit FO_create eingerichtet. Er wird sofort in einen Pool gespeichert. Als Ergebnis wird ein Poolverweis auf den Folder übergeben. Der neue Folder hat keine Attribute. Die Struktur kann mit FO_admin festgelegt werden.

Syntax von FO_create: poolname -> fo

Syntax von FO_admin: ->

Beispiel:
"priv" FO_create >> neufolder
neufolder >voc FO_admin
Für das Merken des Poolverweises auf den neuen Folder ist der Anwender selbst verantwortlich. Z.B. könnte mit cool neufolder . der Poolverweis ermittelt werden und dann mit
: neufolder 37 "priv" poolentry ; 
nach dem Neustart von MAL wieder rekonstruiert werden (angenommen 37 war die Eintragsummer von 'neufolder').

MAL-Homepage Inhaltsverzeichnis


5.3. Die wichtigsten 'FO'-Worte



Die Worte FO_write, FO_read und FO_modify werden dynamisch generiert. Sie sind nur dann im Vokabular zu finden, wenn ein Folder geöffnet, also ins Vokabular geladen wurde.

Das Wort FO_write hat folgende Syntax:



[ att1 att2 ... ] ->



wobei 'attI' jeweils Stackeinträge mit Namen mit den entsprechende Attributwerten sind. Nicht übergebene Attributwerte sucht FO_write im Vokabular.

FO_read hat folgende Syntax:

poolptr -> [ att1 att2 ..]

wobei 'poolptr' ein Poolverweis (Komponente von FO_daten) ist. Das Wort FO_read wird in der Regel nicht benötigt, da das Indizieren aus FO_daten den selben Effekt hat.

Das Wort FO_modify ist ein Verbund mit einzelnen Doppelpunktdefinitonen für jedes Attribut. Diese haben jeweils folgende Syntax:

poolptr sollwert ->

Der Aufruf sieht in der Praxis also etwa folgendermaßen aus:

FO_daten 3 cool, "Fritz" FO_modify \ Vorname

Dieser Code ändert das Attribut Vorname des dritten Folder-Eintrags auf den Wert "Fritz".

Viele der 'FO_' Worte können von FO_admin aus aufgerufen werden. Das Wissen über ihre Funktion ist daher für den Anwender in der Regel nicht erforderlich, kann aber unter Topic folders gefunden werden.

Ein Wort zum Blättern in einem Folder von beliebigen Typ ist FO_browse.

Syntax:

menue ->

'menue' enthält eine Menübeschreibung in der Form, wie sie für das Wort browse erforderlich ist.

Beispiel:
private \ foldedir \ startup_folder >voc
[ "schreiben" "standard_schreiben"
"lesen" "standard_lesen" ] 
FO_browse
Die Worte sind vordefinierte Menüpunkte.

Diese Menübefehle benutzen die im jeweiligen Folder unter ´FO_mask´ gespeicherte Maske für die Ein/Ausgabe von Daten. Sie können nur dann nicht verwendet werden, wenn besondere Funktionen beim Lesen, Schreiben usw. erforderlich sind. Z.B., wenn beim Schreiben automatisch ein Help-Text eingegeben werden soll, oder wenn beim Lesen eine Graphik ausgegeben werden soll usw.

browse_voc und browse_folderfolder sind vordefinierte Blätterbefehle, die auch gleich entsprechende Menüs beinhalten. Ersterer ist für das Blättern in Vokabularsfoldern geeignet und zweiterer für das Blättern in Folder-Foldern.

MAL-Homepage Inhaltsverzeichnis


6. LOGBOOK-VERWALTUNG

Die Logbook-Verwaltung dient zur Koordinierung der Programmentwicklung auf mehreren Maschinen und/oder von mehreren Programmierern. Die wesentlichsten Ziele beim Entwurf der Logbook-Verwaltung waren:

  1. Keine gegenseitige Behinderung durch Sperren.
  2. Kein Zwang zu einheitlichen Programmversionen.
  3. Minimierung von Mehrfachentwicklungen ohne zentrale Koordination.
Der dritte Punkt kann nur bedingt eingehalten werden, da bei Fehlen einer zentralen Koordination jederzeit der Fall eintreten kann, daß zwei Programmierer unabhängig an der Lösung des gleichen Problems arbeiten, ohne voneinander zu wissen.

Letztlich wurde das Risiko von Mehrfachentwicklungen in Kauf genommen, um den Zusatzaufwand für die Programmierer möglichst gering zu halten. Es soll auf keinen Fall zu Behinderungen in der Dynamik der Programmentwicklung kommen.

MAL-Homepage Inhaltsverzeichnis


6.1. Vorgangsweise

Alle der Logbool-Verwaltung unterstellten Daten ('Daten' kann bedeuten: MAL-Code, C++Code, MAL-Stackeinträge usw. ) sind in logisch zusammengehörige Teile, sog. Objekte (=Folder-Eintrag) unterteilt. Ein Objekt kann z.B. eine Doppelpunktdefinition, ein Sourcefile oder ein MAL-Datensatz sein.

Jedes Objekt besitzt eine eindeutige Identifikation (
identifier) und ein Notitzbuch (logbook). Nach jeder Änderung an einem Objekt muß ein Eintrag im Logbook gemacht werden, in dem die Änderung kurz beschrieben wird.

Beim Eintransfer eines Objekts in einen Folder (import) wird zuerst überprüft, ob ein Objekt mit gleicher Identifikation existiert. Wenn nicht, wird das Objekt übernommen. Andernfalls werden die Notizbücher verglichen und folgendermaßen vorgegangen:

  1. Alle Änderungen vom einzutransferierenden Objekt sind bereits beim gefundenen Objekt gemacht worden: kein Eintranfer.
  2. Alle Änderungen vom gefundenen Objekt und noch weitere sind auch beim einzutransferierenden gemacht worden: das gefundene Objekt wird auf neuesten Stand gebracht.
  3. Es exisieren in beiden Objekten Änderungen, die beim jeweils anderen fehlen: kein Eintransfer. Das einzutranferierende Objekt wird in einen Zwischenpuffer gespeichert. Man kann beide Notizbücher vergleichen und eines der beiden Objekte auf den neuesten Stand bringen (oder verwerfen) und den Import erneut versuchen.

MAL-Homepage Inhaltsverzeichnis


6.2. Eigenschaften

Die Logbook-Verwaltung bewirkt eine komplette Dokumentation aller Änderungen im System. Es liegt im Interesse des Programmierers, seine Änderungen zu dokumentieren, da sie sonst bei Kopiervorgängen wieder verloren gehen können.

Die Vermeidung von Sperren wird erkauft, indem auf eine Vollautomatisierung der Versionsverwaltung verzichtet wird. Der Konfliktfall kann nur manuell behoben werden, indem aus zwei Objekten eines mit den Änderungen beider editiert wird.

Im Gegensatz zu Verfahren mit Zugriffssperren verhindert dieses Verfahren nicht die Verästelung in verschiedene Versionen. Der Konfliktfall kann ja nur auftreten, wenn verschiedene Äste wieder zusammengeführt werden sollen. Zugriffssperren beugen diesem Fall vor, die Logbook-Verwaltung zeigt ihn auf, wenn er tatsächlich eintritt.

Unter der Annahme, daß die verschiedenen Programmierer unterschiedliche Schwerpunkte bearbeiten, kann bei einer Aufteilung der Gesamtdaten in entsprechend viele Objekte ohnehin damit gerechnet werden, daß Konfliktfälle nur selten auftreten. Außerdem müssen Konfliktfälle nicht gelöst werden, wenn sie auftreten, sondern erst dann wenn man wirklich von einem Objekt eine Version benötigt, die alle Änderungen in sich vereint.

Die Logbook-Verwaltung erfordert daher nicht, daß zu jedem Zeitpunkt auf allen Anlagen idente Versionen vorhanden sind, sondern unterstützt individuelle Lösungen, die im Bedarfsfall zu einer Übermenge zusammengeführt werden können.

MAL-Homepage Inhaltsverzeichnis


6.3. Identifikationen

Jedes MAL-System hat im 'auto.cpu' File eine Definition cpu_id, die einen zwei bis vier Zeichen langen, für die Maschine kennzeichnenden, String definiert.

Außerdem existiert im Startup-Folder eine Variable
laufende_nummer.

Die Identifikation ist ein String, bestehend aus der 'cpu_id' gefolgt von der Laufenden-Nummer.

Mit dem Wort identifier> wird die letzte gültige Identifikation am Stack übergeben, identifier++ incrementiert die Laufende Nummer.

Wann immer in einen Folder mit insert ein neues Objekt eingefügt wird, erhält es eine neue, über alle Anlagen hinweg eindeutige Identifikation.

MAL-Homepage Inhaltsverzeichnis


6.4. Bedienung

Logbook-Verwaltungen existieren für alle Vokabularsfolder.

Logbook bearbeiten:

Während dem Blättern in einem Folder kann das Logbook für jenes Objekt, auf das der Cursor zeigt mit dem Menüpunkt logbook aufgerufen werden. Man kann dann mit einer Blätterfunktion in den Einträgen des Logbooks blättern, mit edit einen Eintrag editieren oder lesen, mit insert einen neuen Eintrag machen mit modify einen bestehenden modifizieren und mit delete einen löschen.

Zu beachten ist, daß jeder Logbookeintrag eine Identifikation bekommt, wenn er mit insert erzeugt wird. Das Löschen eines Logbook-Eintrages und neu Einfügen hat somit andere Bedeutung, als wenn man einen bestehenden Eintrag editiert.

Transfers:

Der Austransfer von Objekten geschieht mit dem Menüpunkt export im Submenue des Folders. Dabei werden alle jene Objekte, die mit '+' markiert sind (im Attribut 'selected?') im Metaformat auf Datei geschrieben. Existiert im Folder kein Attribut 'selected?', so werden alle Objekte exportiert.

Der Eintransfer wird mit dem Menüpunkt import, ebenfalls im Submenue, durchgeführt. Hat das gelesene Objekt kein Logbook oder keine Identifikation (z.B. weil es von einem alten MAL-System übernommen wurde), dann wird eine Identifikation vergeben und ein leeres Logbook eingerichtet.

Zum Abschluß des Eintransfers erscheint ein Menü, das anzeigt wie viele widersprechende Objekte gefunden wurden und die Möglichkeit offen läßt, diese oder die korrespondierenden zu editieren. Nach dem Editieren wird erneut verglichen.

Im Editiermodus wird zwischen den neu eintransferierten Objekten ('import') und den korrespondierenden im Folder ('target') unterschieden. Man kann per Menü zwischen beiden Logbooks und beiden Codes hin- und herschalten.

import und export funktionieren auch bei Foldern ohne Logbook-Verwaltung.

Im Konfliktfall:

Tritt beim Datenimport bei ein oder mehreren Objekten ein Konfliktfall auf, so erscheint folgendes Menü:

Wählt man in diesem Fall den Menüpunkt exit, so werden die entsprechenden Objekte nicht eintransferiert.

In der Regel wird man jedoch browse auswählen. Es erscheint dann eine Liste der Objekte mit Versionskonflikt. Worin der Konflikt besteht, kann man einfach mit logbook / differences feststellen.

Man muss dann entscheiden, ob es einfacher ist, die Korrekturen des Codes im Import- oder Target-Object durchzuführen. Mit dem Menüpunkt codes kann man rasch zwischen beiden Objekten hin- und herschalten. Hat man die Korrektur(en) durchgeführt, können die entsprechenden Logbookeinträge kopiert werden. Hat man z.B. das Zielobjekt korrigiert, so kann man mit target_object \ other_logbook und Copy Entry die entsprechenden Einträge holen. Hat man die Korrekturen an dem zu importierenden Objekt durchgeführt, so muss man imported_object \ other_logbook aufrufen.

Wenn der Versionskonflikt durch fehlerhafte oder versehentliche Einträge in den Logbooks verursacht wurde kann es genügen, die angezeigten Logbook-Einträge in einem der Objekte (Import oder Target) zu löschen.

MAL-Homepage Inhaltsverzeichnis


7. INTERNES

Die Codes für die Zugriffsbefehle FO_write und FO_modify werden vom Wort
FO_generate_codes) generiert. Dieses wird von FO_admin aufgerufen, nachdem die Attributliste bearbeitet wurde.

Die Generierung bezieht sich auf die Merkmale der Attribute, wie sie in 'FO_attribute' gefunden werden.

'FO_attribute' ist ein Verbund mit jeweils einem Eintrag für ein Attribut. Jeder Eintrag enthält die Daten:

MAL-Homepage Inhaltsverzeichnis


8. PERFORMANCE-TEST

Die Geschwindigkeit der Schreib- und Lesezugriffe eines Folder mit der Struktur eines
Mess-Archivs wurde in Anhängigkeit von der Eintragsanzahl ermittelt.

Die Werte wurden auf einer Anlage mit folgenden Eigenschaften gemessen:

Betriebssystem:
Windows 2000 (5.00.2195), Service Pack 2
Intel Pentium 4 1.70 GHz
261,552 Kb RAM


Harddisk: WDC WD200BB-60CVB0

Jeder Testeintrag hat folgende Attribute:

  "Test" >> Vorname
  "1234" >> Sozialversicherungsnummer
  "56" >> Gewicht
  "1.73" >> Körpergröße
  "M" >> Geschlecht
  "0" >>  Zimmernummer 
  "Stefan" >> Bearbeiter
  "test" >> Projekt
  "keine" >> Diagnose
  "" >> Kommentar
  "test" >> Messkategorie
  systemtime>string >> Uhrzeit >> Datum
  "12345" >> identification
  "-" >> selected?
  "" >> Anforderungs_id
  [ ] >> logbook
  [ ] >> messinstanzen


Die folgende Graphik zeigt die Zeiten für Schreib- und Lesezugriffe, wenn keine Indextabellen verwendet werden.

MAL-Homepage Inhaltsverzeichnis