Wiki-Quellcode von Schnittstelle ONYX Reporter

Version 389.1 von tleu am 01.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
215
216 |(((
217 version
218 )))|(((
219 Angefragte Version: 1
220 )))
221 |(% colspan="1" %)(% colspan="1" %)
222 (((
223 sessionId
224 )))|(% colspan="1" %)(% colspan="1" %)
225 (((
226 SessionId, wie von armSite zurück geliefert.
227 )))
228 |(((
229 secretToShare
230 )))|(((
231 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
232 )))
233 |(((
234 additionalParams
235 )))|(((
236 Reserved for future use.
237 )))
238
239 === ReturnValue disarmSite ===
240
241 |(((
242 Boolean
243 )))|(((
244 True bei Erfolg, sonst false.
245 )))
246
247 == Abfrage von Lernerresultaten durch LMS ==
248
249 {{code title="Abfrage von Lernerresultaten durch LMS" language="xml"}}
250  @WebMethod(operationName = „getResultValues")
251 public HashMapWrapper getResultValues(
252 @WebParam(name = „version") final Integer version,
253 @WebParam(name = „sessionId") final String sessionId,
254 @WebParam(name = „secretToShare") final String secretToShare,
255 @WebParam(name = „requestedValues") final HashMap<String, String>
256 requestedValues,
257 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
258 }
259 {{/code}}
260
261 === Parameter getResultValues ===
262
263 |(((
264 version
265 )))|(((
266 Angefragte Version: 1
267 )))
268 |(% colspan="1" %)(% colspan="1" %)
269 (((
270 sessionId
271 )))|(% colspan="1" %)(% colspan="1" %)
272 (((
273 SessionId, wie von armSite zurück geliefert.
274 )))
275 |(((
276 secretToShare
277 )))|(((
278 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
279 )))
280 |(((
281 requestedValues
282 )))|(((
283 Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück.
284 )))
285 |(((
286 additionalParams
287 )))|(((
288 Reserved for future use.
289 )))
290
291 === ReturnValue getResultValues ===
292
293 |(((
294 HashMap<String, String>
295 )))|(((
296 Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
297 )))
298
299 == Abfrage von Ergebnisvariablen durch LMS ==
300
301 {{code title="Abfrage von Ergebnisvariablen durch LMS" language="xml"}}
302  @WebMethod(operationName = „getResultVariables")
303 public HashMapWrapper getResultVariables(
304 @WebParam(name = „version") final Integer version,
305 @WebParam(name = „contentPackage") final byte[] contentPackage,
306 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
307 }
308 {{/code}}
309
310 === Parameter getResultVariables ===
311
312 |(((
313 version
314 )))|(((
315 Angefragte Version: 1
316 )))
317 |(((
318 contentPackage
319 )))|(((
320 Content Package (gezippt) als Byte-Array.
321 )))
322 |(((
323 additionalParams
324 )))|(((
325 Reserved for future use.
326 )))
327
328 === ReturnValue getResultVariables ===
329
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 macht (clientseitig gefüllte Listen werden leer über den WS versandt und kommen daher auch leer serverseitig an), müssen diese gewrappt werden.
339
340 === Wrapper für die HashMap<String, String> ===
341
342 HashMapWrapper.java:
343
344 [[image:attach:HashMapWrapperjava.png]]
345
346 [[image:attach:HashMapWrapperjava2.png]]
347
348 === Wrapper für die ArrayList<ResultsForStudent> ===
349
350 ResultsForStudentsWrapper.java:
351
352 [[image:attach:ResultsForStudentsWrapperjava.png]]
353 {{/layout-cell}}
354 {{/layout-section}}
355
356 {{layout-section ac:type="two_right_sidebar"}}
357 {{layout-cell}}
358
359 {{/layout-cell}}
360
361 {{layout-cell}}
362 ====== relevante Links: ======
363
364 * [[doc:Schnittstelle ONYX WebPlayer]]
365 {{/layout-cell}}
366 {{/layout-section}}
367 {{/layout}}