Zuletzt geändert von Carina Enke am 26.11.2025

Zeige letzte Bearbeiter
1 {{section}}
2 {{column width="60%"}}
3
4 {{/column}}
5
6 {{column width="30%"}}
7 {{panel title="Inhalt"}}
8 {{toc start="2"/}}
9 {{/panel}}
10
11 {{panel title="Weiterführende Inhalte"}}
12 * [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
13 {{/panel}}
14 {{/column}}
15 {{/section}}
16
17
18 == Allgemeines ==
19
20 Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen:
21
22 (% class="wrapped" %)
23 |(((
24 armSite
25 )))|(((
26 Anmeldung von Folgerequests beim ONYX Reporter.
27 )))
28 |(((
29 initiateSite
30 )))|(((
31 Initiiert die Reporter-Session (Übertragung des CPs).
32 )))
33 |(((
34 disarmSite
35 )))|(((
36 Freigabe von allen Reporter-Ressourcen für diese Session.
37 )))
38 |(((
39 getResultValues
40 )))|(((
41 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.
42 )))
43 |(% colspan="1" %)(% colspan="1" %)
44 (((
45 getResultVariables
46 )))|(% colspan="1" %)(% colspan="1" %)
47 (((
48 Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich.
49 )))
50
51 == Anmeldung des LMS ==
52
53 {{code language="xml" title="Anmeldung des LMS"}}
54 @WebMethod(operationName = „armSite")
55 public String armSite(
56 @WebParam(name = „version") final Integer version,
57 @WebParam(name = „userId") final String userId,
58 @WebParam(name = „optionalRole") final Integer role,
59 @WebParam(name = „secretToShare") final String secretToShare,
60 @WebParam(name = „optionalUserLastName") final String userLastName,
61 @WebParam(name = „optionalUserFirstName") final String userFirstName,
62 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
63 }
64 {{/code}}
65
66 === Parameter armSite ===
67
68 (% class="wrapped" %)
69 |(((
70 version
71 )))|(((
72 Angefragte Version: 1
73 )))
74 |(((
75 userId
76 )))|(((
77 UserId des anfragenden Reporter-Benutzers
78 )))
79 |(((
80 optionalRole
81 )))|(((
82 Optional. Rolle des Benutzers. 0 = Student, 1= Tutor
83 )))
84 |(((
85 secretToShare
86 )))|(((
87 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
88 )))
89 |(((
90 optionalUserLastName
91 )))|(((
92 Optional. Nachname des Benutzers.
93 )))
94 |(% colspan="1" %)(% colspan="1" %)
95 (((
96 optionalUserFirstName
97 )))|(% colspan="1" %)(% colspan="1" %)
98 (((
99 Optional. Vorname des Benutzers.
100 )))
101 |(% colspan="1" %)(% colspan="1" %)
102 (((
103 additionalParams
104 )))|(% colspan="1" %)(% colspan="1" %)
105 (((
106 Reserved for future use.
107 )))
108
109 === ReturnValue armSite ===
110
111 (% class="wrapped" %)
112 |(((
113 String
114 )))|(((
115 Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen.
116 )))
117
118 == Initialisierung durch LMS ==
119
120 {{code language="xml" title="Initialisierung durch LMS"}}
121 @WebMethod(operationName = „initiateSite")
122 public String initiateSite(
123 @WebParam(name = „version") final Integer version,
124 @WebParam(name = „sessionId") final String sessionId,
125 @WebParam(name = „secretToShare") final String secretToShare,
126 @WebParam(name = „students") final ArrayList<ResultsForStudent> students,
127 @WebParam(name = „optionalContentPackage") final byte[] contentPackage,
128 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
129 }
130 {{/code}}
131
132 === Parameter initiateSite ===
133
134 (% class="wrapped" %)
135 |(((
136 version
137 )))|(((
138 Angefragte Version: 1
139 )))
140 |(% colspan="1" %)(% colspan="1" %)
141 (((
142 sessionId
143 )))|(% colspan="1" %)(% colspan="1" %)
144 (((
145 SessionId, wie von armSite zurück geliefert.
146 )))
147 |(((
148 secretToShare
149 )))|(((
150 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
151 )))
152 |(((
153 students
154 )))|(((
155 Liste der Studenten mit ihren Resultaten. Siehe unten.
156 )))
157 |(((
158 optionalContentPackage
159 )))|(((
160 Optional. Content Package (gezippt) als Byte-Array.
161 )))
162 |(((
163 additionalParams
164 )))|(((
165 Reserved for future use.
166 )))
167
168 === ReturnValue initiateSite ===
169
170 (% class="wrapped" %)
171 |(((
172 String
173 )))|(((
174 Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern:
175
176 * sid: Session ID, wie von armSite zurück gegeben
177 * uid: Student ID, wie in initiateSite beim Reporter angemeldet
178 )))
179
180 {{code language="xml"}}
181 public class ResultsForStudent {
182    private String studentId = „";
183    private String firstname = „";
184    private String lastname = „";
185    private String groupname = „";
186    private String tutorname = „";
187    private File contentFile = null;
188    private byte[] resultsFile = null;
189 }
190 {{/code}}
191
192 == Abmeldung durch LMS ==
193
194
195 {{code}}
196 @WebMethod(operationName = „disarmSite")
197 public Boolean disarmSite(
198 @WebParam(name = „version") final Integer version,
199 @WebParam(name = „sessionId") final String sessionId,
200 @WebParam(name = „secretToShare") final String secretToShare,
201 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
202 }
203 {{/code}}
204
205
206 === Parameter disarmSite ===
207
208 (% class="wrapped" %)
209 |(((
210 version
211 )))|(((
212 Angefragte Version: 1
213 )))
214 |(% colspan="1" %)(% colspan="1" %)
215 (((
216 sessionId
217 )))|(% colspan="1" %)(% colspan="1" %)
218 (((
219 SessionId, wie von armSite zurück geliefert.
220 )))
221 |(((
222 secretToShare
223 )))|(((
224 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
225 )))
226 |(((
227 additionalParams
228 )))|(((
229 Reserved for future use.
230 )))
231
232 === ReturnValue disarmSite ===
233
234 |(((
235 Boolean
236 )))|(((
237 True bei Erfolg, sonst false.
238 )))
239
240 == Abfrage von Lernerresultaten durch LMS ==
241
242 {{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}}
243  @WebMethod(operationName = „getResultValues")
244 public HashMapWrapper getResultValues(
245 @WebParam(name = „version") final Integer version,
246 @WebParam(name = „sessionId") final String sessionId,
247 @WebParam(name = „secretToShare") final String secretToShare,
248 @WebParam(name = „requestedValues") final HashMap<String, String>
249 requestedValues,
250 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
251 }
252 {{/code}}
253
254 === Parameter getResultValues ===
255
256 |(((
257 version
258 )))|(((
259 Angefragte Version: 1
260 )))
261 |(% colspan="1" %)(% colspan="1" %)
262 (((
263 sessionId
264 )))|(% colspan="1" %)(% colspan="1" %)
265 (((
266 SessionId, wie von armSite zurück geliefert.
267 )))
268 |(((
269 secretToShare
270 )))|(((
271 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
272 )))
273 |(((
274 requestedValues
275 )))|(((
276 Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück.
277 )))
278 |(((
279 additionalParams
280 )))|(((
281 Reserved for future use.
282 )))
283
284 === ReturnValue getResultValues ===
285
286 |(((
287 HashMap<String, String>
288 )))|(((
289 Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
290 )))
291
292 == Abfrage von Ergebnisvariablen durch LMS ==
293
294 {{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}}
295  @WebMethod(operationName = „getResultVariables")
296 public HashMapWrapper getResultVariables(
297 @WebParam(name = „version") final Integer version,
298 @WebParam(name = „contentPackage") final byte[] contentPackage,
299 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
300 }
301 {{/code}}
302
303 === Parameter getResultVariables ===
304
305 |(((
306 version
307 )))|(((
308 Angefragte Version: 1
309 )))
310 |(((
311 contentPackage
312 )))|(((
313 Content Package (gezippt) als Byte-Array.
314 )))
315 |(((
316 additionalParams
317 )))|(((
318 Reserved for future use.
319 )))
320
321 === ReturnValue getResultVariables ===
322
323 |(((
324 HashMap<String, String>
325 )))|(((
326 Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
327 )))
328
329 == Wrapper ==
330
331 Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden.
332
333 === Wrapper für die HashMap<String, String> ===
334
335 HashMapWrapper.java:
336
337 [[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
338
339 [[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
340
341 === Wrapper für die ArrayList<ResultsForStudent> ===
342
343 ResultsForStudentsWrapper.java:
344
345 [[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]