The ILIAS Hub Plugin acts as a middleware and allows developers to easily import data from foreign sources to sync with categories, courses, users and memberships.
8. Middleware
Drittsystem: XML-Export ILIAS
▶ Kategorie 1
▶ Kategorie 2
▼ Unterkategorie 2.1
▼ Unterkategorie 2.2
▶ Kategorie 3
Name
ID
Kategorie 1 1
0
Kategorie 2 2
3
Parent-ID
0
2
4
0
Unterkategorie 2.2
5
Unterkategorie 2.1
2
Kategorie 3
<categories>
<c id='1'>
<pid>0</pid>
<title>
Kategorie 1
</title>
</c>
[...]
</categories>
Middleware hub
9. Middleware vs. 1 zu 1
• Nur 1 Synchronisationsmechanismus
• Aufwand zum Anbinden eines Systemes sehr gering
• Auslagern der Middleware auf Drittserver !
Zugriffsbeschränkung
• Mehrere Datenquellen
10. hubObjekte für
Synchronisation
vorbereiten
hubSyncHistory
hubSyncHistory-
Objekt für ext_id
holen
ist delivery_date <
pickup_date?
hubObjekt als nicht
mehr geliefert
markieren
ja
hubObjekt als
erneut geliefert
markieren
nein
Status für Objekt
abfragen
ist eine ILIAS-ID
vorhanden?
ja
Wurde das
hubObjekt als nicht
mehr geliefert
markiert?
NEW
nein
Wurde das Objekt
bereits durch Hub
DELETED
ja
nein
Wurde das ILIAS-Objekt
ja nein
gelöscht?
DELETED_I
N_ILIAS UPDATED
hubObjekte für
Synchronisation
vorbereiten
gelöscht?
ALREADY_D
ELETED
nein
ja
Wurde das Objekt
ls gelöscht
markiert?
nein
NEWLY_DEL
IVERED
ja
Statusmodell
13. Ablauf der Synchronisation
connect()"
• Es wird versucht sich mit dem Drittsystem zu verbinden, im Erfolgsfall wird true zurückgegeben."
parseData"
• Die Daten auf dem Drittsystem werden gelesen und in der Klasse gespeichert (bspw. in $this->data = array();). Im Erfolgsfall wird true
zurückgegeben."
getData"
• Die Daten werden abgeholt."
getChecksu
m"
• Die von der Anbindung berechnete Anzahl Datensätze wird geholt und mit der Anzahl Datensätze aus getData() verglichen. Sind beide Werte
gleich, wird weitergefahren."
buildEntries"
• Die einzelnen hubUser-Einträge werden erstellt."
14. Hooks
• Nach dem Lesen der Daten
• Vor und nach Objektverarbeitung
• Formular
• Semester
• Externer Status