Version 397.1 von Carina Enke am 13.02.2024

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