08 Schnittstelle ONYX Reporter
Allgemeines
Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen:
armSite | Anmeldung von Folgerequests beim ONYX Reporter. |
initiateSite | Initiiert die Reporter-Session (Übertragung des CPs). |
disarmSite | Freigabe von allen Reporter-Ressourcen für diese Session. |
getResultValues | Gibt alle bzw. die angeforderten Resultate für den Test zurück. Voraussetzung: Es ist nur exakt ein Student in der bei initiateSite übertragenen Liste. |
getResultVariables | Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich. |
Anmeldung des LMS
public String armSite(
@WebParam(name = „version") final Integer version,
@WebParam(name = „userId") final String userId,
@WebParam(name = „optionalRole") final Integer role,
@WebParam(name = „secretToShare") final String secretToShare,
@WebParam(name = „optionalUserLastName") final String userLastName,
@WebParam(name = „optionalUserFirstName") final String userFirstName,
@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
}
Parameter armSite
version | Angefragte Version: 1 |
userId | UserId des anfragenden Reporter-Benutzers |
optionalRole | Optional. Rolle des Benutzers. 0 = Student, 1= Tutor |
secretToShare | Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. |
optionalUserLastName | Optional. Nachname des Benutzers. |
optionalUserFirstName | Optional. Vorname des Benutzers. |
additionalParams | Reserved for future use. |
ReturnValue armSite
String | Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen. |
Initialisierung durch LMS
public String initiateSite(
@WebParam(name = „version") final Integer version,
@WebParam(name = „sessionId") final String sessionId,
@WebParam(name = „secretToShare") final String secretToShare,
@WebParam(name = „students") final ArrayList<ResultsForStudent> students,
@WebParam(name = „optionalContentPackage") final byte[] contentPackage,
@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
}
Parameter initiateSite
version | Angefragte Version: 1 |
sessionId | SessionId, wie von armSite zurück geliefert. |
secretToShare | Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. |
students | Liste der Studenten mit ihren Resultaten. Siehe unten. |
optionalContentPackage | Optional. Content Package (gezippt) als Byte-Array. |
additionalParams | Reserved for future use. |
ReturnValue initiateSite
String | Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern:
|
private String studentId = „";
private String firstname = „";
private String lastname = „";
private String groupname = „";
private String tutorname = „";
private File contentFile = null;
private byte[] resultsFile = null;
}
Abmeldung durch LMS
public Boolean disarmSite(
@WebParam(name = „version") final Integer version,
@WebParam(name = „sessionId") final String sessionId,
@WebParam(name = „secretToShare") final String secretToShare,
@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
}
Parameter disarmSite
version | Angefragte Version: 1 |
sessionId | SessionId, wie von armSite zurück geliefert. |
secretToShare | Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. |
additionalParams | Reserved for future use. |
ReturnValue disarmSite
Boolean | True bei Erfolg, sonst false. |
Abfrage von Lernerresultaten durch LMS
public HashMapWrapper getResultValues(
@WebParam(name = „version") final Integer version,
@WebParam(name = „sessionId") final String sessionId,
@WebParam(name = „secretToShare") final String secretToShare,
@WebParam(name = „requestedValues") final HashMap<String, String>
requestedValues,
@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
}
Parameter getResultValues
version | Angefragte Version: 1 |
sessionId | SessionId, wie von armSite zurück geliefert. |
secretToShare | Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben. |
requestedValues | Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück. |
additionalParams | Reserved for future use. |
ReturnValue getResultValues
HashMap<String, String> | Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) |
Abfrage von Ergebnisvariablen durch LMS
public HashMapWrapper getResultVariables(
@WebParam(name = „version") final Integer version,
@WebParam(name = „contentPackage") final byte[] contentPackage,
@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
}
Parameter getResultVariables
version | Angefragte Version: 1 |
contentPackage | Content Package (gezippt) als Byte-Array. |
additionalParams | Reserved for future use. |
ReturnValue getResultVariables
HashMap<String, String> | Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt) |
Wrapper
Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden.
Wrapper für die HashMap<String, String>
HashMapWrapper.java:
Wrapper für die ArrayList<ResultsForStudent>
ResultsForStudentsWrapper.java: