Zuletzt geändert von Carina Enke am 13.02.2024

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