Wiki-Quellcode von Schnittstelle ONYX Reporter

Version 284.1 von Carina Enke am 08.05.2019

Zeige letzte Bearbeiter
1 {{sv-translation language="de"}}
2 {{layout}}
3 {{layout-section ac:type="single"}}
4 {{layout-cell}}{{/layout-cell}}
5 {{/layout-section}}
6
7 {{layout-section ac:type="two_right_sidebar"}}
8 {{layout-cell}}
9
10 {{/layout-cell}}
11
12 {{layout-cell}}
13 {{scroll-ignore}}
14 {{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}}
15
16
17 {{toc/}}
18 {{/panel}}
19 {{/scroll-ignore}}
20 {{/layout-cell}}
21 {{/layout-section}}
22
23 {{layout-section ac:type="single"}}
24 {{layout-cell}}
25 == Allgemeines ==
26
27 Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen:
28
29 |(((
30 armSite
31 )))|(((
32 Anmeldung von Folgerequests beim ONYX Reporter.
33 )))
34 |(((
35 initiateSite
36 )))|(((
37 Initiiert die Reporter-Session (Übertragung des CPs).
38 )))
39 |(((
40 disarmSite
41 )))|(((
42 Freigabe von allen Reporter-Ressourcen für diese Session.
43 )))
44 |(((
45 getResultValues
46 )))|(((
47 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.
48 )))
49 |(% colspan="1" %)(% colspan="1" %)
50 (((
51 getResultVariables
52 )))|(% colspan="1" %)(% colspan="1" %)
53 (((
54 Gibt alle bzw. die angeforderten Outcome-Variablen für den Test zurück. Hierfür sind kein armSite, initiateSite oder disarmSite erforderlich.
55 )))
56
57 == Anmeldung des LMS ==
58
59 {{code language="xml" title="Anmeldung des LMS"}}
60 @WebMethod(operationName = „armSite")
61 public String armSite(
62 @WebParam(name = „version") final Integer version,
63 @WebParam(name = „userId") final String userId,
64 @WebParam(name = „optionalRole") final Integer role,
65 @WebParam(name = „secretToShare") final String secretToShare,
66 @WebParam(name = „optionalUserLastName") final String userLastName,
67 @WebParam(name = „optionalUserFirstName") final String userFirstName,
68 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
69 }
70 {{/code}}
71
72 === Parameter armSite ===
73
74 |(((
75 version
76 )))|(((
77 Angefragte Version: 1
78 )))
79 |(((
80 userId
81 )))|(((
82 UserId des anfragenden Reporter-Benutzers
83 )))
84 |(((
85 optionalRole
86 )))|(((
87 Optional. Rolle des Benutzers. 0 = Student, 1= Tutor
88 )))
89 |(((
90 secretToShare
91 )))|(((
92 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
93 )))
94 |(((
95 optionalUserLastName
96 )))|(((
97 Optional. Nachname des Benutzers.
98 )))
99 |(% colspan="1" %)(% colspan="1" %)
100 (((
101 optionalUserFirstName
102 )))|(% colspan="1" %)(% colspan="1" %)
103 (((
104 Optional. Vorname des Benutzers.
105 )))
106 |(% colspan="1" %)(% colspan="1" %)
107 (((
108 additionalParams
109 )))|(% colspan="1" %)(% colspan="1" %)
110 (((
111 Reserved for future use.
112 )))
113
114 === ReturnValue armSite ===
115
116 |(((
117 String
118 )))|(((
119 Session ID, mit der alle weiteren Reporter-Aufrufe gekennzeichnet werden müssen.
120 )))
121
122 == Initialisierung durch LMS ==
123
124 {{code language="xml" title="Initialisierung durch LMS"}}
125 @WebMethod(operationName = „initiateSite")
126 public String initiateSite(
127 @WebParam(name = „version") final Integer version,
128 @WebParam(name = „sessionId") final String sessionId,
129 @WebParam(name = „secretToShare") final String secretToShare,
130 @WebParam(name = „students") final ArrayList<ResultsForStudent> students,
131 @WebParam(name = „optionalContentPackage") final byte[] contentPackage,
132 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
133 }
134 {{/code}}
135
136 === Parameter initiateSite ===
137
138 |(((
139 version
140 )))|(((
141 Angefragte Version: 1
142 )))
143 |(% colspan="1" %)(% colspan="1" %)
144 (((
145 sessionId
146 )))|(% colspan="1" %)(% colspan="1" %)
147 (((
148 SessionId, wie von armSite zurück geliefert.
149 )))
150 |(((
151 secretToShare
152 )))|(((
153 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
154 )))
155 |(((
156 students
157 )))|(((
158 Liste der Studenten mit ihren Resultaten. Siehe unten.
159 )))
160 |(((
161 optionalContentPackage
162 )))|(((
163 Optional. Content Package (gezippt) als Byte-Array.
164 )))
165 |(((
166 additionalParams
167 )))|(((
168 Reserved for future use.
169 )))
170
171 === ReturnValue initiateSite ===
172
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
198 {{code}}
199 @WebMethod(operationName = „disarmSite")
200 public Boolean disarmSite(
201 @WebParam(name = „version") final Integer version,
202 @WebParam(name = „sessionId") final String sessionId,
203 @WebParam(name = „secretToShare") final String secretToShare,
204 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
205 }
206 {{/code}}
207
208
209
210 === Parameter disarmSite ===
211
212 |(((
213 version
214 )))|(((
215 Angefragte Version: 1
216 )))
217 |(% colspan="1" %)(% colspan="1" %)
218 (((
219 sessionId
220 )))|(% colspan="1" %)(% colspan="1" %)
221 (((
222 SessionId, wie von armSite zurück geliefert.
223 )))
224 |(((
225 secretToShare
226 )))|(((
227 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
228 )))
229 |(((
230 additionalParams
231 )))|(((
232 Reserved for future use.
233 )))
234
235 === ReturnValue disarmSite ===
236
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 |(((
260 version
261 )))|(((
262 Angefragte Version: 1
263 )))
264 |(% colspan="1" %)(% colspan="1" %)
265 (((
266 sessionId
267 )))|(% colspan="1" %)(% colspan="1" %)
268 (((
269 SessionId, wie von armSite zurück geliefert.
270 )))
271 |(((
272 secretToShare
273 )))|(((
274 Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
275 )))
276 |(((
277 requestedValues
278 )))|(((
279 Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück.
280 )))
281 |(((
282 additionalParams
283 )))|(((
284 Reserved for future use.
285 )))
286
287 === ReturnValue getResultValues ===
288
289 |(((
290 HashMap<String, String>
291 )))|(((
292 Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
293 )))
294
295 == Abfrage von Ergebnisvariablen durch LMS ==
296
297 {{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}}
298  @WebMethod(operationName = „getResultVariables")
299 public HashMapWrapper getResultVariables(
300 @WebParam(name = „version") final Integer version,
301 @WebParam(name = „contentPackage") final byte[] contentPackage,
302 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
303 }
304 {{/code}}
305
306 === Parameter getResultVariables ===
307
308 |(((
309 version
310 )))|(((
311 Angefragte Version: 1
312 )))
313 |(((
314 contentPackage
315 )))|(((
316 Content Package (gezippt) als Byte-Array.
317 )))
318 |(((
319 additionalParams
320 )))|(((
321 Reserved for future use.
322 )))
323
324 === ReturnValue getResultVariables ===
325
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]]
341
342 [[image:attach:HashMapWrapperjava2.png]]
343
344 === Wrapper für die ArrayList<ResultsForStudent> ===
345
346 ResultsForStudentsWrapper.java:
347
348 [[image:attach:ResultsForStudentsWrapperjava.png]]
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 * [[doc:ONYX Player Interface]]
361 {{/layout-cell}}
362 {{/layout-section}}
363 {{/layout}}
364 {{/sv-translation}}
365
366 {{sv-translation language="en"}}
367 {{layout}}
368 {{layout-section ac:type="two_equal"}}
369 {{layout-cell}}
370 ====== Content: ======
371
372
373
374 {{toc maxLevel="5" outline="true" absoluteUrl="true" style="square"/}}
375 {{/layout-cell}}
376
377 {{layout-cell}}
378
379 {{/layout-cell}}
380 {{/layout-section}}
381
382 {{layout-section ac:type="single"}}
383 {{layout-cell}}
384 == General information ==
385
386 The API to the ONYX WebReporter enables the communication between the LMS and the Reporter. Therefore, a couple of commands will be executed:
387
388 |(((
389 armSite
390 )))|(((
391 Registration of sequence requests at the ONYX Reporter
392 )))
393 |(((
394 initiateSite
395 )))|(((
396 Initiates the Reporter session (transmission of the CP).
397 )))
398 |(((
399 disarmSite
400 )))|(((
401 Release of all Reporter resources for this session.
402 )))
403 |(((
404 getResultValues
405 )))|(((
406 Returns all (requested) results for the test. Condition: There is only one student in the list transmitted with initiateSite.
407 )))
408 |(% colspan="1" %)(% colspan="1" %)
409 (((
410 getResultVariables
411 )))|(% colspan="1" %)(% colspan="1" %)
412 (((
413 Returns all (requested) outcome variables for the test. No armSite, initiateSite, or disarmSite is required.
414 )))
415
416 == Login through the LMS ==
417
418 {{code language="xml" title="Login through the LMS"}}
419 @WebMethod(operationName = „armSite")
420 public String armSite(
421 @WebParam(name = „version") final Integer version,
422 @WebParam(name = „userId") final String userId,
423 @WebParam(name = „optionalRole") final Integer role,
424 @WebParam(name = „secretToShare") final String secretToShare,
425 @WebParam(name = „optionalUserLastName") final String userLastName,
426 @WebParam(name = „optionalUserFirstName") final String userFirstName,
427 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
428 }
429 {{/code}}
430
431 === Parameter armSite ===
432
433 |(((
434 version
435 )))|(((
436 Requested version: 1
437 )))
438 |(((
439 userId
440 )))|(((
441 UserId of the requested Reporter user
442 )))
443 |(((
444 optionalRole
445 )))|(((
446 Optional. User role. 0 = student, 1 = tutor
447 )))
448 |(((
449 secretToShare
450 )))|(((
451 A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
452 )))
453 |(((
454 optionalUserLastName
455 )))|(((
456 Optional. Last name of the user.
457 )))
458 |(% colspan="1" %)(% colspan="1" %)
459 (((
460 optionalUserFirstName
461 )))|(% colspan="1" %)(% colspan="1" %)
462 (((
463 Optional. First name of the user.
464 )))
465 |(% colspan="1" %)(% colspan="1" %)
466 (((
467 additionalParams
468 )))|(% colspan="1" %)(% colspan="1" %)
469 (((
470 Reserved for future use.
471 )))
472
473 === ReturnValue armSite ===
474
475 |(((
476 String
477 )))|(((
478 Session ID which has to be used to mark any other Reporter call.
479 )))
480
481 == Initialisation through LMS ==
482
483 {{code language="xml" title="Initialisation through LMS"}}
484 @WebMethod(operationName = „initiateSite")
485 public String initiateSite(
486 @WebParam(name = „version") final Integer version,
487 @WebParam(name = „sessionId") final String sessionId,
488 @WebParam(name = „secretToShare") final String secretToShare,
489 @WebParam(name = „students") final ArrayList<ResultsForStudent> students,
490 @WebParam(name = „optionalContentPackage") final byte[] contentPackage,
491 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
492 }
493 {{/code}}
494
495 === Parameter initiateSite ===
496
497 |(((
498 version
499 )))|(((
500 Requested version: 1
501 )))
502 |(% colspan="1" %)(% colspan="1" %)
503 (((
504 sessionId
505 )))|(% colspan="1" %)(% colspan="1" %)
506 (((
507 SessionId, as returned by armSite.
508 )))
509 |(((
510 secretToShare
511 )))|(((
512 A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
513 )))
514 |(((
515 students
516 )))|(((
517 List of students and their results. See below.
518 )))
519 |(((
520 optionalContentPackage
521 )))|(((
522 Optional. Content package (zipped) as byte array.
523 )))
524 |(((
525 additionalParams
526 )))|(((
527 Reserved for future use.
528 )))
529
530 === ReturnValue initiateSite ===
531
532 |(((
533 String
534 )))|(((
535 Absolute URL of the Reporter site for the IFrame. The URL has to be amended by the LMS with the following URL parameters:
536
537 * sid: Session ID, as returned by armSite
538 * (((
539 uid: Student ID, as registrated in the initiateSite at the ONYX Reporter
540 )))
541 )))
542
543 {{code language="xml"}}
544 public class ResultsForStudent {
545    private String studentId = „";
546    private String firstname = „";
547    private String lastname = „";
548    private String groupname = „";
549    private String tutorname = „";
550    private File contentFile = null;
551    private byte[] resultsFile = null;
552 }
553 {{/code}}
554
555 == Logout through the LMS ==
556
557
558
559 {{code}}
560 @WebMethod(operationName = „disarmSite")
561 public Boolean disarmSite(
562 @WebParam(name = „version") final Integer version,
563 @WebParam(name = „sessionId") final String sessionId,
564 @WebParam(name = „secretToShare") final String secretToShare,
565 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
566 }
567 {{/code}}
568
569
570
571 === Parameter disarmSite ===
572
573 |(((
574 version
575 )))|(((
576 Requested version: 1
577 )))
578 |(% colspan="1" %)(% colspan="1" %)
579 (((
580 sessionId
581 )))|(% colspan="1" %)(% colspan="1" %)
582 (((
583 SessionId, as returned by armSite.
584 )))
585 |(((
586 secretToShare
587 )))|(((
588 A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
589 )))
590 |(((
591 additionalParams
592 )))|(((
593 Reserved for future use.
594 )))
595
596 === ReturnValue disarmSite ===
597
598 |(((
599 Boolean
600 )))|(((
601 True in the case of success, otherwise false.
602 )))
603
604 == Request of learner results through the LMS ==
605
606 {{code language="xml" title="Request of learner results through the LMS"}}
607  @WebMethod(operationName = „getResultValues")
608 public HashMapWrapper getResultValues(
609 @WebParam(name = „version") final Integer version,
610 @WebParam(name = „sessionId") final String sessionId,
611 @WebParam(name = „secretToShare") final String secretToShare,
612 @WebParam(name = „requestedValues") final HashMap<String, String>
613 requestedValues,
614 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
615 }
616 {{/code}}
617
618 === Parameter getResultValues ===
619
620 |(((
621 version
622 )))|(((
623 Requested version: 1
624 )))
625 |(% colspan="1" %)(% colspan="1" %)
626 (((
627 sessionId
628 )))|(% colspan="1" %)(% colspan="1" %)
629 (((
630 SessionId, as returned by armSite.
631 )))
632 |(((
633 secretToShare
634 )))|(((
635 A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
636 )))
637 |(((
638 requestedValues
639 )))|(((
640 Can be empty, in which case all result variables are returned. If keys are included, only the keys will be returned.
641 )))
642 |(((
643 additionalParams
644 )))|(((
645 Reserved for future use.
646 )))
647
648 === ReturnValue getResultValues ===
649
650 |(((
651 HashMap<String, String>
652 )))|(((
653 Map of result variables, key is the variable name, value is the respective variable's value (HashMap is wrapped)
654 )))
655
656 == Request of result variables through the LMS ==
657
658 {{code language="xml" title="Request of result variables through the LMS"}}
659  @WebMethod(operationName = „getResultVariables")
660 public HashMapWrapper getResultVariables(
661 @WebParam(name = „version") final Integer version,
662 @WebParam(name = „contentPackage") final byte[] contentPackage,
663 @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
664 }
665 {{/code}}
666
667 === Parameter getResultVariables ===
668
669 |(((
670 version
671 )))|(((
672 Requested version: 1
673 )))
674 |(((
675 contentPackage
676 )))|(((
677 Content package (zipped) as byte array.
678 )))
679 |(((
680 additionalParams
681 )))|(((
682 Reserved for future use.
683 )))
684
685 === ReturnValue getResultVariables ===
686
687 |(((
688 HashMap<String, String>
689 )))|(((
690 Map of result variables, key is the variable name, value is the respective variable's value (HashMap is wrapped)
691 )))
692
693 == Wrapper ==
694
695 Since the transmission of maps and lists via JAX-WS can cause problems, they have to be wrapped.
696
697 === Wrapper for HashMap<String, String> ===
698
699 HashMapWrapper.java:
700
701 [[image:attach:HashMapWrapperjava.png]]
702
703 [[image:attach:HashMapWrapperjava2.png]]
704
705 === Wrapper for the ArrayList<ResultsForStudent> ===
706
707 ResultsForStudentsWrapper.java:
708
709 [[image:attach:ResultsForStudentsWrapperjava.png]]
710 {{/layout-cell}}
711 {{/layout-section}}
712 {{/layout}}
713 {{/sv-translation}}