Zuletzt geändert 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
11 **Weitere Informationen:**
12
13 * [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
14 {{/panel}}
15 {{/layout-cell}}
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
24 (% class="wrapped" %)
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 )))|(((
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.
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
55 {{code language="xml" title="Anmeldung des LMS"}}
56 @WebMethod(operationName = „armSite")
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) {
65 }
66 {{/code}}
67
68 === Parameter armSite ===
69
70 (% class="wrapped" %)
71 |(((
72 version
73 )))|(((
74 Angefragte Version: 1
75 )))
76 |(((
77 userId
78 )))|(((
79 UserId des anfragenden Reporter-Benutzers
80 )))
81 |(((
82 optionalRole
83 )))|(((
84 Optional. Rolle des Benutzers. 0 = Student, 1= Tutor
85 )))
86 |(((
87 secretToShare
88 )))|(((
89 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
90 )))
91 |(((
92 optionalUserLastName
93 )))|(((
94 Optional. Nachname des Benutzers.
95 )))
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 )))
110
111 === ReturnValue armSite ===
112
113 (% class="wrapped" %)
114 |(((
115 String
116 )))|(((
117 Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen.
118 )))
119
120 == Initialisierung durch LMS ==
121
122 {{code language="xml" title="Initialisierung durch LMS"}}
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
136 (% class="wrapped" %)
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
172 (% class="wrapped" %)
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
194 == Abmeldung durch LMS ==
195
196
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}}
206
207
208 === Parameter disarmSite ===
209
210 (% class="wrapped" %)
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
236 (% class="wrapped" %)
237 |(((
238 Boolean
239 )))|(((
240 True bei Erfolg, sonst false.
241 )))
242
243 == Abfrage von Lernerresultaten durch LMS ==
244
245 {{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}}
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 }
255 {{/code}}
256
257 === Parameter getResultValues ===
258
259 (% class="wrapped" %)
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 |(((
278 requestedValues
279 )))|(((
280 Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück.
281 )))
282 |(((
283 additionalParams
284 )))|(((
285 Reserved for future use.
286 )))
287
288 === ReturnValue getResultValues ===
289
290 (% class="wrapped" %)
291 |(((
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
299 {{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}}
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
310 (% class="wrapped" %)
311 |(((
312 version
313 )))|(((
314 Angefragte Version: 1
315 )))
316 |(((
317 contentPackage
318 )))|(((
319 Content Package (gezippt) als Byte-Array.
320 )))
321 |(((
322 additionalParams
323 )))|(((
324 Reserved for future use.
325 )))
326
327 === ReturnValue getResultVariables ===
328
329 (% class="wrapped" %)
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
338 Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden.
339
340 === Wrapper für die HashMap<String, String> ===
341
342 HashMapWrapper.java:
343
344 [[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
345
346 [[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
347
348 === Wrapper für die ArrayList<ResultsForStudent> ===
349
350 ResultsForStudentsWrapper.java:
351
352 [[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
353 {{/layout-cell}}
354 {{/layout-section}}
355 {{/layout}}