ilias hub plugin (ilias conference bolzano)
TRANSCRIPT
Inhalt & Ablauf • Anbindung von Verwaltungssystemen – Warum? • Anbindung von Verwaltungssystemen – Wie?
• 1 zu 1 Schnittstelle • Middleware
• Status-Modell • Synchronisations-Prozess • Hooks • Fragen und Diskussion
Wie? ILIASDrittsysteme
LDAP
Verwaltungssystem
Organisations-einheiten
Middleware "hub"
hubUsers
hubCourses
hubCategories
XYZ
Middleware
ILIASDrittsystem: XML-Export
▶ Kategorie 1▶ Kategorie 2
▼ Unterkategorie 2.1▼ Unterkategorie 2.2
▶ Kategorie 3
Name
1
3
Parent-ID
2
0
4
0
Kategorie 1 0
Unterkategorie 2.2
Kategorie 2 2
5
ID
Unterkategorie 2.1
2
Kategorie 3
<categories><c id='1'>
<pid>0</pid><title>
Kategorie 1</title></c>[...]
</categories>
Middleware hub
Middleware vs. 1 zu 1 • Nur 1 Synchronisationsmechanismus • Aufwand zum Anbinden eines Systemes sehr gering • Auslagern der Middleware auf Drittserver !
Zugriffsbeschränkung • Mehrere Datenquellen
hubObjekte für Synchronisation
vorbereiten
hubSyncHistoryhubSyncHistory-Objekt für ext_id
holen
ist delivery_date < pickup_date?
hubObjekt als nicht mehr geliefert
markierenja
hubObjekt als erneut geliefert
markierennein
Status für Objekt abfragen
ist eine ILIAS-ID vorhanden?
Wurde das hubObjekt als nicht
mehr geliefert markiert?
ja
NEW
nein
DELETED
ja
Wurde das ILIAS-Objekt gelöscht?
nein
DELETED_IN_ILIAS UPDATED
neinja
hubObjekte für Synchronisation
vorbereiten
ALREADY_DELETED
Wurde das Objekt bereits durch Hub
gelöscht?
neinja
Wurde das Objekt ls gelöscht markiert?
nein
NEWLY_DELIVERED
ja
Statusmodell
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."
getChecksum"
• 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."
Hooks • Nach dem Lesen der Daten • Vor und nach Objektverarbeitung • Formular • Semester • Externer Status