ILIAS Hub Plugin (ILIAS Conference Bolzano)

15
ILIAS Hub 13 th International ILIAS Conference Bolzano, Italy Fabian Schmid studer + raimann ag

Transcript of ILIAS Hub Plugin (ILIAS Conference Bolzano)

ILIAS Hub 13th International ILIAS Conference

Bolzano, Italy Fabian Schmid

studer + raimann ag

Inhalt & Ablauf •  Anbindung von Verwaltungssystemen – Warum? •  Anbindung von Verwaltungssystemen – Wie?

•  1 zu 1 Schnittstelle •  Middleware

•  Status-Modell •  Synchronisations-Prozess •  Hooks •  Fragen und Diskussion

Warum? •  Prozess-Abbildung •  Zentralisierung •  Datenhoheit

Wie? •  Schnittstellen •  ECS, REST, SOAP, ... •  1 zu 1 Synchronisation

Wie? ILIASDrittsysteme

LDAP

Verwaltungssystem

Organisations-einheiten

Wie? •  Middleware

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

hubUser" hubCategory" hubCourse" hubMembership"

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

Fragen & Diskussion