Wiki-Quellcode von Schnittstelle ONYX Reporter

Version 369.1 von sandra_riediger am 15.12.2014

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