10 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:
Content:
- Allgemeines
- Anmeldung des LMS
- Initialisierung durch LMS
- Abmeldung durch LMS
- Abfrage von Lernerresultaten durch LMS
- Abfrage von Ergebnisvariablen durch LMS
- Wrapper
- General information
- Login through the LMS
- Initialisation through LMS
- Logout through the LMS
- Request of learner results through the LMS
- Request of result variables through the LMS
- Wrapper
General information
The API to the ONYX WebReporter enables the communication between the LMS and the Reporter. Therefore, a couple of commands will be executed:
armSite | Registration of sequence requests at the ONYX Reporter |
initiateSite | Initiates the Reporter session (transmission of the CP). |
disarmSite | Release of all Reporter resources for this session. |
getResultValues | Returns all (requested) results for the test. Condition: There is only one student in the list transmitted with initiateSite. |
getResultVariables | Returns all (requested) outcome variables for the test. No armSite, initiateSite, or disarmSite is required. |
Login through the 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 | Requested version: 1 |
userId | UserId of the requested Reporter user |
optionalRole | Optional. User role. 0 = student, 1 = tutor |
secretToShare | A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication. |
optionalUserLastName | Optional. Last name of the user. |
optionalUserFirstName | Optional. First name of the user. |
additionalParams | Reserved for future use. |
ReturnValue armSite
String | Session ID which has to be used to mark any other Reporter call. |
Initialisation through 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 | Requested version: 1 |
sessionId | SessionId, as returned by armSite. |
secretToShare | A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication. |
students | List of students and their results. See below. |
optionalContentPackage | Optional. Content package (zipped) as byte array. |
additionalParams | Reserved for future use. |
ReturnValue initiateSite
String | Absolute URL of the Reporter site for the IFrame. The URL has to be amended by the LMS with the following URL parameters:
|
private String studentId = „";
private String firstname = „";
private String lastname = „";
private String groupname = „";
private String tutorname = „";
private File contentFile = null;
private byte[] resultsFile = null;
}
Logout through the 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 | Requested version: 1 |
sessionId | SessionId, as returned by armSite. |
secretToShare | A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication. |
additionalParams | Reserved for future use. |
ReturnValue disarmSite
Boolean | True in the case of success, otherwise false. |
Request of learner results through the 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 | Requested version: 1 |
sessionId | SessionId, as returned by armSite. |
secretToShare | A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication. |
requestedValues | Can be empty, in which case all result variables are returned. If keys are included, only the keys will be returned. |
additionalParams | Reserved for future use. |
ReturnValue getResultValues
HashMap<String, String> | Map of result variables, key is the variable name, value is the respective variable's value (HashMap is wrapped) |
Request of result variables through the 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 | Requested version: 1 |
contentPackage | Content package (zipped) as byte array. |
additionalParams | Reserved for future use. |
ReturnValue getResultVariables
HashMap<String, String> | Map of result variables, key is the variable name, value is the respective variable's value (HashMap is wrapped) |
Wrapper
Since the transmission of maps and lists via JAX-WS can cause problems, they have to be wrapped.
Wrapper for HashMap<String, String>
HashMapWrapper.java:
Wrapper for the ArrayList<ResultsForStudent>
ResultsForStudentsWrapper.java: