Änderungen von Dokument 08 Schnittstelle ONYX Reporter

Zuletzt geändert von Carina Enke am 13.02.2024

Von Version 398.1
bearbeitet von Carina Enke
am 13.02.2024
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 399.1
bearbeitet von Carina Enke
am 13.02.2024
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Inhalt
... ... @@ -1,3 +1,1151 @@
1 +(% data-xwiki-non-generated-content="java.util.List" %)
2 +(((
3 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
4 +
5 +(% data-xwiki-non-generated-content="java.util.List" %)
6 +(((
7 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
8 +
9 +(% data-xwiki-non-generated-content="java.util.List" %)
10 +(((
11 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
12 +)))
13 +
14 +{{layout-cell}}
15 +
16 +{{/layout-cell}}
17 +
18 +(% data-xwiki-non-generated-content="java.util.List" %)
19 +(((
20 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
21 +
22 +(% data-xwiki-non-generated-content="java.util.List" %)
23 +(((
24 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
25 +
26 +{{toc start="2"/}}
27 +
28 + **Weitere Informationen:**
29 +
30 +* [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
31 +)))
32 +
33 +{{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}}
34 +{{toc start="2"/}}
35 +
36 + **Weitere Informationen:**
37 +
38 +* [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
39 +{{/panel}}
40 +)))
41 +
42 +{{layout-cell}}
43 +{{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}}
44 +{{toc start="2"/}}
45 +
46 + **Weitere Informationen:**
47 +
48 +* [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
49 +{{/panel}}
50 +{{/layout-cell}}
51 +)))
52 +
53 +{{layout-section ac:type="two_right_sidebar"}}
54 +{{layout-cell}}
55 +
56 +{{/layout-cell}}
57 +
58 +{{layout-cell}}
59 +{{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}}
60 +{{toc start="2"/}}
61 +
62 + **Weitere Informationen:**
63 +
64 +* [[Schnittstelle ONYX Player>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
65 +{{/panel}}
66 +{{/layout-cell}}
67 +{{/layout-section}}
68 +
69 +(% data-xwiki-non-generated-content="java.util.List" %)
70 +(((
71 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
72 +
73 +(% data-xwiki-non-generated-content="java.util.List" %)
74 +(((
75 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
76 +
77 +== Allgemeines ==
78 +
79 +Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen:
80 +
81 +(% class="wrapped" %)
82 +|(((
83 +armSite
84 +)))|(((
85 +Anmeldung von Folgerequests beim ONYX Reporter.
86 +)))
87 +|(((
88 +initiateSite
89 +)))|(((
90 +Initiiert die Reporter-Session (Übertragung des CPs).
91 +)))
92 +|(((
93 +disarmSite
94 +)))|(((
95 +Freigabe von allen Reporter-Ressourcen für diese Session.
96 +)))
97 +|(((
98 +getResultValues
99 +)))|(((
100 +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.
101 +)))
102 +|(% colspan="1" %)(% colspan="1" %)
103 +(((
104 +getResultVariables
105 +)))|(% colspan="1" %)(% colspan="1" %)
106 +(((
107 +Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich.
108 +)))
109 +
110 +== Anmeldung des LMS ==
111 +
112 +(% data-xwiki-non-generated-content="java.util.List" %)
113 +(((
114 +" data-xwiki-parameter-name="title" class="xwiki-metadata-container">Anmeldung des LMS
115 +)))
116 +
117 +{{code language="xml" title="Anmeldung des LMS"}}
118 +@WebMethod(operationName = „armSite")
119 +public String armSite(
120 +@WebParam(name = „version") final Integer version,
121 +@WebParam(name = „userId") final String userId,
122 +@WebParam(name = „optionalRole") final Integer role,
123 +@WebParam(name = „secretToShare") final String secretToShare,
124 +@WebParam(name = „optionalUserLastName") final String userLastName,
125 +@WebParam(name = „optionalUserFirstName") final String userFirstName,
126 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
127 +}
128 +{{/code}}
129 +
130 +=== Parameter armSite ===
131 +
132 +(% class="wrapped" %)
133 +|(((
134 +version
135 +)))|(((
136 +Angefragte Version: 1
137 +)))
138 +|(((
139 +userId
140 +)))|(((
141 +UserId des anfragenden Reporter-Benutzers
142 +)))
143 +|(((
144 +optionalRole
145 +)))|(((
146 +Optional. Rolle des Benutzers. 0 = Student, 1= Tutor
147 +)))
148 +|(((
149 +secretToShare
150 +)))|(((
151 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
152 +)))
153 +|(((
154 +optionalUserLastName
155 +)))|(((
156 +Optional. Nachname des Benutzers.
157 +)))
158 +|(% colspan="1" %)(% colspan="1" %)
159 +(((
160 +optionalUserFirstName
161 +)))|(% colspan="1" %)(% colspan="1" %)
162 +(((
163 +Optional. Vorname des Benutzers.
164 +)))
165 +|(% colspan="1" %)(% colspan="1" %)
166 +(((
167 +additionalParams
168 +)))|(% colspan="1" %)(% colspan="1" %)
169 +(((
170 +Reserved for future use.
171 +)))
172 +
173 +=== ReturnValue armSite ===
174 +
175 +(% class="wrapped" %)
176 +|(((
177 +String
178 +)))|(((
179 +Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen.
180 +)))
181 +
182 +== Initialisierung durch LMS ==
183 +
184 +(% data-xwiki-non-generated-content="java.util.List" %)
185 +(((
186 +" data-xwiki-parameter-name="title" class="xwiki-metadata-container">Initialisierung durch LMS
187 +)))
188 +
189 +{{code language="xml" title="Initialisierung durch LMS"}}
190 +@WebMethod(operationName = „initiateSite")
191 +public String initiateSite(
192 +@WebParam(name = „version") final Integer version,
193 +@WebParam(name = „sessionId") final String sessionId,
194 +@WebParam(name = „secretToShare") final String secretToShare,
195 +@WebParam(name = „students") final ArrayList<ResultsForStudent> students,
196 +@WebParam(name = „optionalContentPackage") final byte[] contentPackage,
197 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
198 +}
199 +{{/code}}
200 +
201 +=== Parameter initiateSite ===
202 +
203 +(% class="wrapped" %)
204 +|(((
205 +version
206 +)))|(((
207 +Angefragte Version: 1
208 +)))
209 +|(% colspan="1" %)(% colspan="1" %)
210 +(((
211 +sessionId
212 +)))|(% colspan="1" %)(% colspan="1" %)
213 +(((
214 +SessionId, wie von armSite zurück geliefert.
215 +)))
216 +|(((
217 +secretToShare
218 +)))|(((
219 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
220 +)))
221 +|(((
222 +students
223 +)))|(((
224 +Liste der Studenten mit ihren Resultaten. Siehe unten.
225 +)))
226 +|(((
227 +optionalContentPackage
228 +)))|(((
229 +Optional. Content Package (gezippt) als Byte-Array.
230 +)))
231 +|(((
232 +additionalParams
233 +)))|(((
234 +Reserved for future use.
235 +)))
236 +
237 +=== ReturnValue initiateSite ===
238 +
239 +(% class="wrapped" %)
240 +|(((
241 +String
242 +)))|(((
243 +Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern:
244 +
245 +* sid: Session ID, wie von armSite zurück gegeben
246 +* uid: Student ID, wie in initiateSite beim Reporter angemeldet
247 +)))
248 +
249 +{{code language="xml"}}
250 +public class ResultsForStudent {
251 +   private String studentId = „";
252 +   private String firstname = „";
253 +   private String lastname = „";
254 +   private String groupname = „";
255 +   private String tutorname = „";
256 +   private File contentFile = null;
257 +   private byte[] resultsFile = null;
258 +}
259 +{{/code}}
260 +
261 +== Abmeldung durch LMS ==
262 +
263 +
264 +{{code}}
265 +@WebMethod(operationName = „disarmSite")
266 +public Boolean disarmSite(
267 +@WebParam(name = „version") final Integer version,
268 +@WebParam(name = „sessionId") final String sessionId,
269 +@WebParam(name = „secretToShare") final String secretToShare,
270 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
271 +}
272 +{{/code}}
273 +
274 +
275 +=== Parameter disarmSite ===
276 +
277 +(% class="wrapped" %)
278 +|(((
279 +version
280 +)))|(((
281 +Angefragte Version: 1
282 +)))
283 +|(% colspan="1" %)(% colspan="1" %)
284 +(((
285 +sessionId
286 +)))|(% colspan="1" %)(% colspan="1" %)
287 +(((
288 +SessionId, wie von armSite zurück geliefert.
289 +)))
290 +|(((
291 +secretToShare
292 +)))|(((
293 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
294 +)))
295 +|(((
296 +additionalParams
297 +)))|(((
298 +Reserved for future use.
299 +)))
300 +
301 +=== ReturnValue disarmSite ===
302 +
303 +(% class="wrapped" %)
304 +|(((
305 +Boolean
306 +)))|(((
307 +True bei Erfolg, sonst false.
308 +)))
309 +
310 +== Abfrage von Lernerresultaten durch LMS ==
311 +
312 +(% data-xwiki-non-generated-content="java.util.List" %)
313 +(((
314 +" data-xwiki-parameter-name="title" class="xwiki-metadata-container">Abfrage von Lernerresultaten durch LMS
315 +)))
316 +
317 +{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}}
318 + @WebMethod(operationName = „getResultValues")
319 +public HashMapWrapper getResultValues(
320 + @WebParam(name = „version") final Integer version,
321 + @WebParam(name = „sessionId") final String sessionId,
322 + @WebParam(name = „secretToShare") final String secretToShare,
323 + @WebParam(name = „requestedValues") final HashMap<String, String>
324 + requestedValues,
325 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
326 +}
327 +{{/code}}
328 +
329 +=== Parameter getResultValues ===
330 +
331 +(% class="wrapped" %)
332 +|(((
333 +version
334 +)))|(((
335 +Angefragte Version: 1
336 +)))
337 +|(% colspan="1" %)(% colspan="1" %)
338 +(((
339 +sessionId
340 +)))|(% colspan="1" %)(% colspan="1" %)
341 +(((
342 +SessionId, wie von armSite zurück geliefert.
343 +)))
344 +|(((
345 +secretToShare
346 +)))|(((
347 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
348 +)))
349 +|(((
350 +requestedValues
351 +)))|(((
352 +Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück.
353 +)))
354 +|(((
355 +additionalParams
356 +)))|(((
357 +Reserved for future use.
358 +)))
359 +
360 +=== ReturnValue getResultValues ===
361 +
362 +(% class="wrapped" %)
363 +|(((
364 +HashMap<String, String>
365 +)))|(((
366 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
367 +)))
368 +
369 +== Abfrage von Ergebnisvariablen durch LMS ==
370 +
371 +(% data-xwiki-non-generated-content="java.util.List" %)
372 +(((
373 +" data-xwiki-parameter-name="title" class="xwiki-metadata-container">Abfrage von Ergebnisvariablen durch LMS
374 +)))
375 +
376 +{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}}
377 + @WebMethod(operationName = „getResultVariables")
378 +public HashMapWrapper getResultVariables(
379 +@WebParam(name = „version") final Integer version,
380 +@WebParam(name = „contentPackage") final byte[] contentPackage,
381 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
382 +}
383 +{{/code}}
384 +
385 +=== Parameter getResultVariables ===
386 +
387 +(% class="wrapped" %)
388 +|(((
389 +version
390 +)))|(((
391 +Angefragte Version: 1
392 +)))
393 +|(((
394 +contentPackage
395 +)))|(((
396 +Content Package (gezippt) als Byte-Array.
397 +)))
398 +|(((
399 +additionalParams
400 +)))|(((
401 +Reserved for future use.
402 +)))
403 +
404 +=== ReturnValue getResultVariables ===
405 +
406 +(% class="wrapped" %)
407 +|(((
408 +HashMap<String, String>
409 +)))|(((
410 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
411 +)))
412 +
413 +== Wrapper ==
414 +
415 +Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden.
416 +
417 +=== Wrapper für die HashMap<String, String> ===
418 +
419 +HashMapWrapper.java:
420 +
421 +[[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
422 +
423 +[[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
424 +
425 +=== Wrapper für die ArrayList<ResultsForStudent> ===
426 +
427 +ResultsForStudentsWrapper.java:
428 +
429 +[[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
430 +)))
431 +
432 +{{layout-cell}}
433 +== Allgemeines ==
434 +
435 +Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen:
436 +
437 +(% class="wrapped" %)
438 +|(((
439 +armSite
440 +)))|(((
441 +Anmeldung von Folgerequests beim ONYX Reporter.
442 +)))
443 +|(((
444 +initiateSite
445 +)))|(((
446 +Initiiert die Reporter-Session (Übertragung des CPs).
447 +)))
448 +|(((
449 +disarmSite
450 +)))|(((
451 +Freigabe von allen Reporter-Ressourcen für diese Session.
452 +)))
453 +|(((
454 +getResultValues
455 +)))|(((
456 +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.
457 +)))
458 +|(% colspan="1" %)(% colspan="1" %)
459 +(((
460 +getResultVariables
461 +)))|(% colspan="1" %)(% colspan="1" %)
462 +(((
463 +Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich.
464 +)))
465 +
466 +== Anmeldung des LMS ==
467 +
468 +{{code language="xml" title="Anmeldung des LMS"}}
469 +@WebMethod(operationName = „armSite")
470 +public String armSite(
471 +@WebParam(name = „version") final Integer version,
472 +@WebParam(name = „userId") final String userId,
473 +@WebParam(name = „optionalRole") final Integer role,
474 +@WebParam(name = „secretToShare") final String secretToShare,
475 +@WebParam(name = „optionalUserLastName") final String userLastName,
476 +@WebParam(name = „optionalUserFirstName") final String userFirstName,
477 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
478 +}
479 +{{/code}}
480 +
481 +=== Parameter armSite ===
482 +
483 +(% class="wrapped" %)
484 +|(((
485 +version
486 +)))|(((
487 +Angefragte Version: 1
488 +)))
489 +|(((
490 +userId
491 +)))|(((
492 +UserId des anfragenden Reporter-Benutzers
493 +)))
494 +|(((
495 +optionalRole
496 +)))|(((
497 +Optional. Rolle des Benutzers. 0 = Student, 1= Tutor
498 +)))
499 +|(((
500 +secretToShare
501 +)))|(((
502 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
503 +)))
504 +|(((
505 +optionalUserLastName
506 +)))|(((
507 +Optional. Nachname des Benutzers.
508 +)))
509 +|(% colspan="1" %)(% colspan="1" %)
510 +(((
511 +optionalUserFirstName
512 +)))|(% colspan="1" %)(% colspan="1" %)
513 +(((
514 +Optional. Vorname des Benutzers.
515 +)))
516 +|(% colspan="1" %)(% colspan="1" %)
517 +(((
518 +additionalParams
519 +)))|(% colspan="1" %)(% colspan="1" %)
520 +(((
521 +Reserved for future use.
522 +)))
523 +
524 +=== ReturnValue armSite ===
525 +
526 +(% class="wrapped" %)
527 +|(((
528 +String
529 +)))|(((
530 +Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen.
531 +)))
532 +
533 +== Initialisierung durch LMS ==
534 +
535 +{{code language="xml" title="Initialisierung durch LMS"}}
536 +@WebMethod(operationName = „initiateSite")
537 +public String initiateSite(
538 +@WebParam(name = „version") final Integer version,
539 +@WebParam(name = „sessionId") final String sessionId,
540 +@WebParam(name = „secretToShare") final String secretToShare,
541 +@WebParam(name = „students") final ArrayList<ResultsForStudent> students,
542 +@WebParam(name = „optionalContentPackage") final byte[] contentPackage,
543 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
544 +}
545 +{{/code}}
546 +
547 +=== Parameter initiateSite ===
548 +
549 +(% class="wrapped" %)
550 +|(((
551 +version
552 +)))|(((
553 +Angefragte Version: 1
554 +)))
555 +|(% colspan="1" %)(% colspan="1" %)
556 +(((
557 +sessionId
558 +)))|(% colspan="1" %)(% colspan="1" %)
559 +(((
560 +SessionId, wie von armSite zurück geliefert.
561 +)))
562 +|(((
563 +secretToShare
564 +)))|(((
565 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
566 +)))
567 +|(((
568 +students
569 +)))|(((
570 +Liste der Studenten mit ihren Resultaten. Siehe unten.
571 +)))
572 +|(((
573 +optionalContentPackage
574 +)))|(((
575 +Optional. Content Package (gezippt) als Byte-Array.
576 +)))
577 +|(((
578 +additionalParams
579 +)))|(((
580 +Reserved for future use.
581 +)))
582 +
583 +=== ReturnValue initiateSite ===
584 +
585 +(% class="wrapped" %)
586 +|(((
587 +String
588 +)))|(((
589 +Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern:
590 +
591 +* sid: Session ID, wie von armSite zurück gegeben
592 +* uid: Student ID, wie in initiateSite beim Reporter angemeldet
593 +)))
594 +
595 +{{code language="xml"}}
596 +public class ResultsForStudent {
597 +   private String studentId = „";
598 +   private String firstname = „";
599 +   private String lastname = „";
600 +   private String groupname = „";
601 +   private String tutorname = „";
602 +   private File contentFile = null;
603 +   private byte[] resultsFile = null;
604 +}
605 +{{/code}}
606 +
607 +== Abmeldung durch LMS ==
608 +
609 +
610 +{{code}}
611 +@WebMethod(operationName = „disarmSite")
612 +public Boolean disarmSite(
613 +@WebParam(name = „version") final Integer version,
614 +@WebParam(name = „sessionId") final String sessionId,
615 +@WebParam(name = „secretToShare") final String secretToShare,
616 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
617 +}
618 +{{/code}}
619 +
620 +
621 +=== Parameter disarmSite ===
622 +
623 +(% class="wrapped" %)
624 +|(((
625 +version
626 +)))|(((
627 +Angefragte Version: 1
628 +)))
629 +|(% colspan="1" %)(% colspan="1" %)
630 +(((
631 +sessionId
632 +)))|(% colspan="1" %)(% colspan="1" %)
633 +(((
634 +SessionId, wie von armSite zurück geliefert.
635 +)))
636 +|(((
637 +secretToShare
638 +)))|(((
639 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
640 +)))
641 +|(((
642 +additionalParams
643 +)))|(((
644 +Reserved for future use.
645 +)))
646 +
647 +=== ReturnValue disarmSite ===
648 +
649 +(% class="wrapped" %)
650 +|(((
651 +Boolean
652 +)))|(((
653 +True bei Erfolg, sonst false.
654 +)))
655 +
656 +== Abfrage von Lernerresultaten durch LMS ==
657 +
658 +{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}}
659 + @WebMethod(operationName = „getResultValues")
660 +public HashMapWrapper getResultValues(
661 + @WebParam(name = „version") final Integer version,
662 + @WebParam(name = „sessionId") final String sessionId,
663 + @WebParam(name = „secretToShare") final String secretToShare,
664 + @WebParam(name = „requestedValues") final HashMap<String, String>
665 + requestedValues,
666 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
667 +}
668 +{{/code}}
669 +
670 +=== Parameter getResultValues ===
671 +
672 +(% class="wrapped" %)
673 +|(((
674 +version
675 +)))|(((
676 +Angefragte Version: 1
677 +)))
678 +|(% colspan="1" %)(% colspan="1" %)
679 +(((
680 +sessionId
681 +)))|(% colspan="1" %)(% colspan="1" %)
682 +(((
683 +SessionId, wie von armSite zurück geliefert.
684 +)))
685 +|(((
686 +secretToShare
687 +)))|(((
688 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
689 +)))
690 +|(((
691 +requestedValues
692 +)))|(((
693 +Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück.
694 +)))
695 +|(((
696 +additionalParams
697 +)))|(((
698 +Reserved for future use.
699 +)))
700 +
701 +=== ReturnValue getResultValues ===
702 +
703 +(% class="wrapped" %)
704 +|(((
705 +HashMap<String, String>
706 +)))|(((
707 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
708 +)))
709 +
710 +== Abfrage von Ergebnisvariablen durch LMS ==
711 +
712 +{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}}
713 + @WebMethod(operationName = „getResultVariables")
714 +public HashMapWrapper getResultVariables(
715 +@WebParam(name = „version") final Integer version,
716 +@WebParam(name = „contentPackage") final byte[] contentPackage,
717 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
718 +}
719 +{{/code}}
720 +
721 +=== Parameter getResultVariables ===
722 +
723 +(% class="wrapped" %)
724 +|(((
725 +version
726 +)))|(((
727 +Angefragte Version: 1
728 +)))
729 +|(((
730 +contentPackage
731 +)))|(((
732 +Content Package (gezippt) als Byte-Array.
733 +)))
734 +|(((
735 +additionalParams
736 +)))|(((
737 +Reserved for future use.
738 +)))
739 +
740 +=== ReturnValue getResultVariables ===
741 +
742 +(% class="wrapped" %)
743 +|(((
744 +HashMap<String, String>
745 +)))|(((
746 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
747 +)))
748 +
749 +== Wrapper ==
750 +
751 +Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden.
752 +
753 +=== Wrapper für die HashMap<String, String> ===
754 +
755 +HashMapWrapper.java:
756 +
757 +[[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
758 +
759 +[[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
760 +
761 +=== Wrapper für die ArrayList<ResultsForStudent> ===
762 +
763 +ResultsForStudentsWrapper.java:
764 +
765 +[[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
766 +{{/layout-cell}}
767 +)))
768 +
769 +{{layout-section ac:type="single"}}
770 +{{layout-cell}}
771 +== Allgemeines ==
772 +
773 +Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen:
774 +
775 +(% class="wrapped" %)
776 +|(((
777 +armSite
778 +)))|(((
779 +Anmeldung von Folgerequests beim ONYX Reporter.
780 +)))
781 +|(((
782 +initiateSite
783 +)))|(((
784 +Initiiert die Reporter-Session (Übertragung des CPs).
785 +)))
786 +|(((
787 +disarmSite
788 +)))|(((
789 +Freigabe von allen Reporter-Ressourcen für diese Session.
790 +)))
791 +|(((
792 +getResultValues
793 +)))|(((
794 +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.
795 +)))
796 +|(% colspan="1" %)(% colspan="1" %)
797 +(((
798 +getResultVariables
799 +)))|(% colspan="1" %)(% colspan="1" %)
800 +(((
801 +Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich.
802 +)))
803 +
804 +== Anmeldung des LMS ==
805 +
806 +{{code language="xml" title="Anmeldung des LMS"}}
807 +@WebMethod(operationName = „armSite")
808 +public String armSite(
809 +@WebParam(name = „version") final Integer version,
810 +@WebParam(name = „userId") final String userId,
811 +@WebParam(name = „optionalRole") final Integer role,
812 +@WebParam(name = „secretToShare") final String secretToShare,
813 +@WebParam(name = „optionalUserLastName") final String userLastName,
814 +@WebParam(name = „optionalUserFirstName") final String userFirstName,
815 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
816 +}
817 +{{/code}}
818 +
819 +=== Parameter armSite ===
820 +
821 +(% class="wrapped" %)
822 +|(((
823 +version
824 +)))|(((
825 +Angefragte Version: 1
826 +)))
827 +|(((
828 +userId
829 +)))|(((
830 +UserId des anfragenden Reporter-Benutzers
831 +)))
832 +|(((
833 +optionalRole
834 +)))|(((
835 +Optional. Rolle des Benutzers. 0 = Student, 1= Tutor
836 +)))
837 +|(((
838 +secretToShare
839 +)))|(((
840 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
841 +)))
842 +|(((
843 +optionalUserLastName
844 +)))|(((
845 +Optional. Nachname des Benutzers.
846 +)))
847 +|(% colspan="1" %)(% colspan="1" %)
848 +(((
849 +optionalUserFirstName
850 +)))|(% colspan="1" %)(% colspan="1" %)
851 +(((
852 +Optional. Vorname des Benutzers.
853 +)))
854 +|(% colspan="1" %)(% colspan="1" %)
855 +(((
856 +additionalParams
857 +)))|(% colspan="1" %)(% colspan="1" %)
858 +(((
859 +Reserved for future use.
860 +)))
861 +
862 +=== ReturnValue armSite ===
863 +
864 +(% class="wrapped" %)
865 +|(((
866 +String
867 +)))|(((
868 +Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen.
869 +)))
870 +
871 +== Initialisierung durch LMS ==
872 +
873 +{{code language="xml" title="Initialisierung durch LMS"}}
874 +@WebMethod(operationName = „initiateSite")
875 +public String initiateSite(
876 +@WebParam(name = „version") final Integer version,
877 +@WebParam(name = „sessionId") final String sessionId,
878 +@WebParam(name = „secretToShare") final String secretToShare,
879 +@WebParam(name = „students") final ArrayList<ResultsForStudent> students,
880 +@WebParam(name = „optionalContentPackage") final byte[] contentPackage,
881 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
882 +}
883 +{{/code}}
884 +
885 +=== Parameter initiateSite ===
886 +
887 +(% class="wrapped" %)
888 +|(((
889 +version
890 +)))|(((
891 +Angefragte Version: 1
892 +)))
893 +|(% colspan="1" %)(% colspan="1" %)
894 +(((
895 +sessionId
896 +)))|(% colspan="1" %)(% colspan="1" %)
897 +(((
898 +SessionId, wie von armSite zurück geliefert.
899 +)))
900 +|(((
901 +secretToShare
902 +)))|(((
903 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
904 +)))
905 +|(((
906 +students
907 +)))|(((
908 +Liste der Studenten mit ihren Resultaten. Siehe unten.
909 +)))
910 +|(((
911 +optionalContentPackage
912 +)))|(((
913 +Optional. Content Package (gezippt) als Byte-Array.
914 +)))
915 +|(((
916 +additionalParams
917 +)))|(((
918 +Reserved for future use.
919 +)))
920 +
921 +=== ReturnValue initiateSite ===
922 +
923 +(% class="wrapped" %)
924 +|(((
925 +String
926 +)))|(((
927 +Absolute URL der Reporter-Seite für den IFrame. Dieser ist vom LMS durch die folgenden URL-Parameter anzureichern:
928 +
929 +* sid: Session ID, wie von armSite zurück gegeben
930 +* uid: Student ID, wie in initiateSite beim Reporter angemeldet
931 +)))
932 +
933 +{{code language="xml"}}
934 +public class ResultsForStudent {
935 +   private String studentId = „";
936 +   private String firstname = „";
937 +   private String lastname = „";
938 +   private String groupname = „";
939 +   private String tutorname = „";
940 +   private File contentFile = null;
941 +   private byte[] resultsFile = null;
942 +}
943 +{{/code}}
944 +
945 +== Abmeldung durch LMS ==
946 +
947 +
948 +{{code}}
949 +@WebMethod(operationName = „disarmSite")
950 +public Boolean disarmSite(
951 +@WebParam(name = „version") final Integer version,
952 +@WebParam(name = „sessionId") final String sessionId,
953 +@WebParam(name = „secretToShare") final String secretToShare,
954 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
955 +}
956 +{{/code}}
957 +
958 +
959 +=== Parameter disarmSite ===
960 +
961 +(% class="wrapped" %)
962 +|(((
963 +version
964 +)))|(((
965 +Angefragte Version: 1
966 +)))
967 +|(% colspan="1" %)(% colspan="1" %)
968 +(((
969 +sessionId
970 +)))|(% colspan="1" %)(% colspan="1" %)
971 +(((
972 +SessionId, wie von armSite zurück geliefert.
973 +)))
974 +|(((
975 +secretToShare
976 +)))|(((
977 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
978 +)))
979 +|(((
980 +additionalParams
981 +)))|(((
982 +Reserved for future use.
983 +)))
984 +
985 +=== ReturnValue disarmSite ===
986 +
987 +(% class="wrapped" %)
988 +|(((
989 +Boolean
990 +)))|(((
991 +True bei Erfolg, sonst false.
992 +)))
993 +
994 +== Abfrage von Lernerresultaten durch LMS ==
995 +
996 +{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}}
997 + @WebMethod(operationName = „getResultValues")
998 +public HashMapWrapper getResultValues(
999 + @WebParam(name = „version") final Integer version,
1000 + @WebParam(name = „sessionId") final String sessionId,
1001 + @WebParam(name = „secretToShare") final String secretToShare,
1002 + @WebParam(name = „requestedValues") final HashMap<String, String>
1003 + requestedValues,
1004 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
1005 +}
1006 +{{/code}}
1007 +
1008 +=== Parameter getResultValues ===
1009 +
1010 +(% class="wrapped" %)
1011 +|(((
1012 +version
1013 +)))|(((
1014 +Angefragte Version: 1
1015 +)))
1016 +|(% colspan="1" %)(% colspan="1" %)
1017 +(((
1018 +sessionId
1019 +)))|(% colspan="1" %)(% colspan="1" %)
1020 +(((
1021 +SessionId, wie von armSite zurück geliefert.
1022 +)))
1023 +|(((
1024 +secretToShare
1025 +)))|(((
1026 +Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
1027 +)))
1028 +|(((
1029 +requestedValues
1030 +)))|(((
1031 +Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück.
1032 +)))
1033 +|(((
1034 +additionalParams
1035 +)))|(((
1036 +Reserved for future use.
1037 +)))
1038 +
1039 +=== ReturnValue getResultValues ===
1040 +
1041 +(% class="wrapped" %)
1042 +|(((
1043 +HashMap<String, String>
1044 +)))|(((
1045 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
1046 +)))
1047 +
1048 +== Abfrage von Ergebnisvariablen durch LMS ==
1049 +
1050 +{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}}
1051 + @WebMethod(operationName = „getResultVariables")
1052 +public HashMapWrapper getResultVariables(
1053 +@WebParam(name = „version") final Integer version,
1054 +@WebParam(name = „contentPackage") final byte[] contentPackage,
1055 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
1056 +}
1057 +{{/code}}
1058 +
1059 +=== Parameter getResultVariables ===
1060 +
1061 +(% class="wrapped" %)
1062 +|(((
1063 +version
1064 +)))|(((
1065 +Angefragte Version: 1
1066 +)))
1067 +|(((
1068 +contentPackage
1069 +)))|(((
1070 +Content Package (gezippt) als Byte-Array.
1071 +)))
1072 +|(((
1073 +additionalParams
1074 +)))|(((
1075 +Reserved for future use.
1076 +)))
1077 +
1078 +=== ReturnValue getResultVariables ===
1079 +
1080 +(% class="wrapped" %)
1081 +|(((
1082 +HashMap<String, String>
1083 +)))|(((
1084 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
1085 +)))
1086 +
1087 +== Wrapper ==
1088 +
1089 +Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden.
1090 +
1091 +=== Wrapper für die HashMap<String, String> ===
1092 +
1093 +HashMapWrapper.java:
1094 +
1095 +[[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
1096 +
1097 +[[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
1098 +
1099 +=== Wrapper für die ArrayList<ResultsForStudent> ===
1100 +
1101 +ResultsForStudentsWrapper.java:
1102 +
1103 +[[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
1104 +{{/layout-cell}}
1105 +{{/layout-section}}
1106 +
1107 +(% data-xwiki-non-generated-content="java.util.List" %)
1108 +(((
1109 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
1110 +
1111 +(% data-xwiki-non-generated-content="java.util.List" %)
1112 +(((
1113 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
1114 +)))
1115 +
1116 +{{layout-cell}}
1117 +
1118 +{{/layout-cell}}
1119 +
1120 +(% data-xwiki-non-generated-content="java.util.List" %)
1121 +(((
1122 +" data-xwiki-wikimacrocontent="true" class="xwiki-metadata-container">
1123 +
1124 +====== relevante Links: ======
1125 +
1126 +* [[ONYX Player Interface>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
1127 +)))
1128 +
1129 +{{layout-cell}}
1130 +====== relevante Links: ======
1131 +
1132 +* [[ONYX Player Interface>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
1133 +{{/layout-cell}}
1134 +)))
1135 +
1136 +{{layout-section ac:type="two_right_sidebar"}}
1137 +{{layout-cell}}
1138 +
1139 +{{/layout-cell}}
1140 +
1141 +{{layout-cell}}
1142 +====== relevante Links: ======
1143 +
1144 +* [[ONYX Player Interface>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
1145 +{{/layout-cell}}
1146 +{{/layout-section}}
1147 +)))
1148 +
1 1  {{layout}}
2 2  {{layout-section ac:type="two_right_sidebar"}}
3 3  {{layout-cell}}