populo bearbeitet strukturierte Rechercheanfragen (wie sie etwa von Web-Browsern initiiert werden) für allegro-Datenbanken und liefert ein geeignet aufbereitetes Ergebnis zurück. Für die eigentliche Recherchearbeit bedient es sich des Avanti-Servers und seiner Auftragssprache.
populo ist Free Software unter der Gnu General Public Library Licence.
Downloadmöglichkeiten bestehen unter .
Genauso wie Avanti kann auch populo verschiedene
Datenbanken betreuen.
Um die von populo zu leistenden Aufgaben besser verstehen zu können,
folgt zunächst eine Beschreibung der notwendigen Arbeitsschritte.
Die Eingabe der Rechercheanfrage erfolgt über einen (WWW-)Client.
Dieser schickt seine Anfrage an das populo-Programm populo.pl,
welches diese Anfrage aufbereitet und einen entsprechenden
Auftrag für Avanti formuliert.
Das von Avanti produzierte Ergebnis muß von populo nun noch in
geeigneter Weise in eine HTML-Seite gepackt und zurück an den Browser
geschickt werden.
In der Praxis gibt es viele Anforderungen an dieses an sich recht
einfache Strickmuster:
Wünschenswert ist also eine symbolische Notation für URLs
innerhalb der Anbindung.
Die Layout-Komponenten der Datenbankanbindung sollen also möglichst
reines HTML sein.
Wünschenswert ist also eine freie Zuordnung von WWW-Datenbanken
zu realen Datenbanken analog dem symbolischen Mechanismus,
den Avanti bietet.
Es sind also für einen Job mehrere Ausgabeseiten wünschenswert
Es ist also wünschenswert, daß verschiedene Rechercheeinstiege
auf dieselbe Art der Anzeige führen können.
Wünschenswert ist also eine einfache Kombinierbarkeit verschiedener
Grundelemente.
populo versucht auf folgende Weise, diesen Anforderungen an die
Flexibilität gerecht zu werden:
Die notwendigen Rechercheangaben werden populo als Paare
Name
Während die Benennung der Übergabeparameter im allgemeinen völlig
frei ist, haben zwei dieser HTTP-Felder feste Bedeutung für populo:
Die Angabe eines Jobsubtyps ermöglicht es, die Angabe
eines zusätzlichen Parameters von der Wahl eines Submit-Buttons
abhängig zu machen.
Gibt es beispielsweise in einem Formular zwei Knöpfe vorwärts
blättern und rückwärts blättern, so ist es sinnvoll, beide
auf eine Jobdatei
Ist kein solches HTTP-Feld übermittelt worden, so wird der
Jobtyp anhand der datenbankspezifischen Konfigurationsdatei
initialisert.
Diese Angaben sind in populo im weiteren Verlauf unter den
Variablennamen
Damit die Verarbeitung der Anfrage ordnungsgemäß vorgenommen werden
kann, muß es zur Datenbank Db eine korrespondierende
datenbankspezifische Konfigurationsdatei Db.pl geben und zu
JobTyp eine auftragsspezifische Templatedatei JobTyp.job.
Damit korrespondiert (falls nicht JobTyp im Verlauf der
Verarbeitung der Anfrage modifizert wird) eine Datei JobTyp.htm
mit dem Template für die Ausgabe. In welchen Verzeichnissen diese
Templatedateien zu finden sind, ist (datenbankspezifisch) in der
Konfigurationsdatei spezifiziert.
Abgesehen von den zwei grundlegenden HTTP-Feldern (und den zugehörigen
populo-Variablen) ist noch folgendes festgelegt:
Ist keine Datenbank angegeben oder eine nichtexistierende (d.h. es
wurde keine Konfigurationsdatei gefunden), so schaltet populo
automatisch um auf die festverdrahtete Datenbank
=Wert übergeben.
Im weiteren Programmverlauf stehen diese Angaben unter Rückgriff auf
die Routine IniVar zur Verfügung.
db (wird kein solches angegeben, nimmt populo als Default
die (nicht vorhandene) Datenbank nodb).
t_xxx[_yyy]
(typischerweise der name-Teil des Submit-Buttons).
Hierbei ist xxx durch den Jobtyp und der optionale
yyy-Teil durch einen eventuellen Jobsubtyp zu ersetzen.
blaetter.job zu führen. Die Knöpfe
belegen bei Betätigung aber nur ein HTTP-Feld unterschiedlich,
daher wird die Art des Knopfes zusätzlich zur gewünschten
Auftragsart als t_blaetter_next und t_blaetter_prev
in das name-Tag hineincodiert: Der Variable JobTyp wird
dann blaetter zugewiesen und JobSubtyp der Wert
next oder prev.
Db, JobTyp und JobSubtyp zugänglich.
nodb mit
dem einzigen JobTyp nodb