Änderungen von Dokument 08 Schnittstelle ONYX Reporter

Zuletzt geändert von Carina Enke am 13.02.2024

Von Version 387.1
bearbeitet von tleu
am 01.12.2014
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 390.1
bearbeitet von Carina Enke
am 18.12.2023
Änderungskommentar: Renamed from xwiki:ONYX.Schnittstelle ONYX Reporter

Zusammenfassung

Details

Seiteneigenschaften
Übergeordnete Seite
... ... @@ -1,0 +1,1 @@
1 +Systeminformationen
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.tleu
1 +XWiki.carina
Inhalt
... ... @@ -1,38 +1,22 @@
1 +{{sv-translation language="de"}}
1 1  {{layout}}
3 +{{layout-section ac:type="single"}}
4 +{{layout-cell}}{{/layout-cell}}
5 +{{/layout-section}}
6 +
2 2  {{layout-section ac:type="two_right_sidebar"}}
3 3  {{layout-cell}}
4 -====== Inhalt: ======
5 -
6 -
7 -
8 -{{toc style="square" maxLevel="5" outline="true" absoluteUrl="true"/}}
9 +\\
9 9  {{/layout-cell}}
10 10  
11 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 -
13 +{{scroll-ignore}}
14 +{{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}}
28 28  
29 -
30 -)))
31 -|=(((
32 -JIRA
33 -)))|(((
34 -
35 -)))
16 +
17 +{{toc/}}
18 +{{/panel}}
19 +{{/scroll-ignore}}
36 36  {{/layout-cell}}
37 37  {{/layout-section}}
38 38  
... ... @@ -42,6 +42,7 @@
42 42  
43 43  Über die Schnittstelle zum ONYX WebReporter erfolgt jede Kommunikation zwischen dem LMS und dem Reporter. Dazu erfolgt eine Reihe von Aufrufen:
44 44  
29 +(% class="wrapped" %)
45 45  |(((
46 46  armSite
47 47  )))|(((
... ... @@ -60,9 +60,7 @@
60 60  |(((
61 61  getResultValues
62 62  )))|(((
63 -Gibt alle bzw. die angeforderten Resultate für den Test zurück. Voraussetzung:
64 -
65 -Es ist nur exakt ein Student in der bei initiateSite übertragenen Liste.
48 +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.
66 66  )))
67 67  |(% colspan="1" %)(% colspan="1" %)
68 68  (((
... ... @@ -74,7 +74,7 @@
74 74  
75 75  == Anmeldung des LMS ==
76 76  
77 -{{code title="Anmeldung des LMS" language="xml"}}
60 +{{code language="xml" title="Anmeldung des LMS"}}
78 78  @WebMethod(operationName = „armSite")
79 79  public String armSite(
80 80  @WebParam(name = „version") final Integer version,
... ... @@ -89,6 +89,7 @@
89 89  
90 90  === Parameter armSite ===
91 91  
75 +(% class="wrapped" %)
92 92  |(((
93 93  version
94 94  )))|(((
... ... @@ -131,6 +131,7 @@
131 131  
132 132  === ReturnValue armSite ===
133 133  
118 +(% class="wrapped" %)
134 134  |(((
135 135  String
136 136  )))|(((
... ... @@ -139,7 +139,7 @@
139 139  
140 140  == Initialisierung durch LMS ==
141 141  
142 -{{code title="Initialisierung durch LMS" language="xml"}}
127 +{{code language="xml" title="Initialisierung durch LMS"}}
143 143  @WebMethod(operationName = „initiateSite")
144 144  public String initiateSite(
145 145  @WebParam(name = „version") final Integer version,
... ... @@ -153,6 +153,7 @@
153 153  
154 154  === Parameter initiateSite ===
155 155  
141 +(% class="wrapped" %)
156 156  |(((
157 157  version
158 158  )))|(((
... ... @@ -188,6 +188,7 @@
188 188  
189 189  === ReturnValue initiateSite ===
190 190  
177 +(% class="wrapped" %)
191 191  |(((
192 192  String
193 193  )))|(((
... ... @@ -211,10 +211,23 @@
211 211  
212 212  == Abmeldung durch LMS ==
213 213  
214 -Abfrage von Lernerresultaten durch LMS
201 +\\
215 215  
216 -
203 +{{code}}
204 +@WebMethod(operationName = „disarmSite")
205 +public Boolean disarmSite(
206 +@WebParam(name = „version") final Integer version,
207 +@WebParam(name = „sessionId") final String sessionId,
208 +@WebParam(name = „secretToShare") final String secretToShare,
209 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
210 +}
211 +{{/code}}
217 217  
213 +\\
214 +
215 +=== Parameter disarmSite ===
216 +
217 +(% class="wrapped" %)
218 218  |(((
219 219  version
220 220  )))|(((
... ... @@ -240,6 +240,7 @@
240 240  
241 241  === ReturnValue disarmSite ===
242 242  
243 +(% class="wrapped" %)
243 243  |(((
244 244  Boolean
245 245  )))|(((
... ... @@ -248,10 +248,21 @@
248 248  
249 249  == Abfrage von Lernerresultaten durch LMS ==
250 250  
251 -{{code title="Abfrage von Lernerresultaten durch LMS" language="xml"}}
252
252 +{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}}
253 + @WebMethod(operationName = „getResultValues")
254 +public HashMapWrapper getResultValues(
255 + @WebParam(name = „version") final Integer version,
256 + @WebParam(name = „sessionId") final String sessionId,
257 + @WebParam(name = „secretToShare") final String secretToShare,
258 + @WebParam(name = „requestedValues") final HashMap<String, String>
259 + requestedValues,
260 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
261 +}
253 253  {{/code}}
254 254  
264 +=== Parameter getResultValues ===
265 +
266 +(% class="wrapped" %)
255 255  |(((
256 256  version
257 257  )))|(((
... ... @@ -270,36 +270,443 @@
270 270  Ein geheimer String, mit dessen Hilfe Server und Client ihre Kommunikation verschlüsseln. Muss bei jeder weiteren Kommunikation gleich bleiben.
271 271  )))
272 272  |(((
273 -students
285 +requestedValues
274 274  )))|(((
275 -Liste der Studenten mit ihren Resultaten. Siehe unten.
287 +Kann leer sein, dann werden alle Result-Variables zurück geliefert. Sind Keys enthalten, so kommen nur diese zurück.
276 276  )))
277 277  |(((
278 -optionalContentPackage
290 +additionalParams
279 279  )))|(((
280 -Optional. Content Package (gezippt) als Byte-Array.
292 +Reserved for future use.
281 281  )))
294 +
295 +=== ReturnValue getResultValues ===
296 +
297 +(% class="wrapped" %)
282 282  |(((
299 +HashMap<String, String>
300 +)))|(((
301 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
302 +)))
303 +
304 +== Abfrage von Ergebnisvariablen durch LMS ==
305 +
306 +{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}}
307 + @WebMethod(operationName = „getResultVariables")
308 +public HashMapWrapper getResultVariables(
309 +@WebParam(name = „version") final Integer version,
310 +@WebParam(name = „contentPackage") final byte[] contentPackage,
311 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
312 +}
313 +{{/code}}
314 +
315 +=== Parameter getResultVariables ===
316 +
317 +(% class="wrapped" %)
318 +|(((
319 +version
320 +)))|(((
321 +Angefragte Version: 1
322 +)))
323 +|(((
324 +contentPackage
325 +)))|(((
326 +Content Package (gezippt) als Byte-Array.
327 +)))
328 +|(((
283 283  additionalParams
284 284  )))|(((
285 285  Reserved for future use.
286 286  )))
333 +
334 +=== ReturnValue getResultVariables ===
335 +
336 +(% class="wrapped" %)
337 +|(((
338 +HashMap<String, String>
339 +)))|(((
340 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
341 +)))
342 +
343 +== Wrapper ==
344 +
345 +Da die Übertragung von Maps und Listen über JAX-WS Probleme machen kann, müssen diese gewrappt werden.
346 +
347 +=== Wrapper für die HashMap<String, String> ===
348 +
349 +HashMapWrapper.java:
350 +
351 +[[image:attach:HashMapWrapperjava.png]]
352 +
353 +[[image:attach:HashMapWrapperjava2.png]]
354 +
355 +=== Wrapper für die ArrayList<ResultsForStudent> ===
356 +
357 +ResultsForStudentsWrapper.java:
358 +
359 +[[image:attach:ResultsForStudentsWrapperjava.png]]
287 287  {{/layout-cell}}
288 288  {{/layout-section}}
289 289  
290 290  {{layout-section ac:type="two_right_sidebar"}}
291 291  {{layout-cell}}
292 -====== untergeordnete Seiten: ======
365 +\\
366 +{{/layout-cell}}
293 293  
368 +{{layout-cell}}
369 +====== relevante Links: ======
294 294  
371 +* [[doc:ONYX Player Interface]]
372 +{{/layout-cell}}
373 +{{/layout-section}}
374 +{{/layout}}
375 +{{/sv-translation}}
295 295  
296 -{{children all="true"/}}
377 +{{sv-translation language="en"}}
378 +{{layout}}
379 +{{layout-section ac:type="two_equal"}}
380 +{{layout-cell}}
381 +====== Content: ======
382 +
383 +
384 +
385 +{{toc maxLevel="5" outline="true" absoluteUrl="true" style="square"/}}
297 297  {{/layout-cell}}
298 298  
299 299  {{layout-cell}}
300 -====== relevante Links: ======
389 +
390 +{{/layout-cell}}
391 +{{/layout-section}}
301 301  
302 -* [[lorem ipsum>>url:https://www.bps-system.de/help/display/OPAL/Handbuch+OPAL||shape="rect"]]
393 +{{layout-section ac:type="single"}}
394 +{{layout-cell}}
395 +== General information ==
396 +
397 +The API to the ONYX WebReporter enables the communication between the LMS and the Reporter. Therefore, a couple of commands will be executed:
398 +
399 +|(((
400 +armSite
401 +)))|(((
402 +Registration of sequence requests at the ONYX Reporter
403 +)))
404 +|(((
405 +initiateSite
406 +)))|(((
407 +Initiates the Reporter session (transmission of the CP).
408 +)))
409 +|(((
410 +disarmSite
411 +)))|(((
412 +Release of all Reporter resources for this session.
413 +)))
414 +|(((
415 +getResultValues
416 +)))|(((
417 +Returns all (requested) results for the test. Condition: There is only one student in the list transmitted with initiateSite.
418 +)))
419 +|(% colspan="1" %)(% colspan="1" %)
420 +(((
421 +getResultVariables
422 +)))|(% colspan="1" %)(% colspan="1" %)
423 +(((
424 +Returns all (requested) outcome variables for the test. No armSite, initiateSite, or disarmSite is required.
425 +)))
426 +
427 +== Login through the LMS ==
428 +
429 +{{code language="xml" title="Login through the LMS"}}
430 +@WebMethod(operationName = „armSite")
431 +public String armSite(
432 +@WebParam(name = „version") final Integer version,
433 +@WebParam(name = „userId") final String userId,
434 +@WebParam(name = „optionalRole") final Integer role,
435 +@WebParam(name = „secretToShare") final String secretToShare,
436 +@WebParam(name = „optionalUserLastName") final String userLastName,
437 +@WebParam(name = „optionalUserFirstName") final String userFirstName,
438 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
439 +}
440 +{{/code}}
441 +
442 +=== Parameter armSite ===
443 +
444 +|(((
445 +version
446 +)))|(((
447 +Requested version: 1
448 +)))
449 +|(((
450 +userId
451 +)))|(((
452 +UserId of the requested Reporter user
453 +)))
454 +|(((
455 +optionalRole
456 +)))|(((
457 +Optional. User role. 0 = student, 1 = tutor
458 +)))
459 +|(((
460 +secretToShare
461 +)))|(((
462 +A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
463 +)))
464 +|(((
465 +optionalUserLastName
466 +)))|(((
467 +Optional. Last name of the user.
468 +)))
469 +|(% colspan="1" %)(% colspan="1" %)
470 +(((
471 +optionalUserFirstName
472 +)))|(% colspan="1" %)(% colspan="1" %)
473 +(((
474 +Optional. First name of the user.
475 +)))
476 +|(% colspan="1" %)(% colspan="1" %)
477 +(((
478 +additionalParams
479 +)))|(% colspan="1" %)(% colspan="1" %)
480 +(((
481 +Reserved for future use.
482 +)))
483 +
484 +=== ReturnValue armSite ===
485 +
486 +|(((
487 +String
488 +)))|(((
489 +Session ID which has to be used to mark any other Reporter call.
490 +)))
491 +
492 +== Initialisation through LMS ==
493 +
494 +{{code language="xml" title="Initialisation through LMS"}}
495 +@WebMethod(operationName = „initiateSite")
496 +public String initiateSite(
497 +@WebParam(name = „version") final Integer version,
498 +@WebParam(name = „sessionId") final String sessionId,
499 +@WebParam(name = „secretToShare") final String secretToShare,
500 +@WebParam(name = „students") final ArrayList<ResultsForStudent> students,
501 +@WebParam(name = „optionalContentPackage") final byte[] contentPackage,
502 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
503 +}
504 +{{/code}}
505 +
506 +=== Parameter initiateSite ===
507 +
508 +|(((
509 +version
510 +)))|(((
511 +Requested version: 1
512 +)))
513 +|(% colspan="1" %)(% colspan="1" %)
514 +(((
515 +sessionId
516 +)))|(% colspan="1" %)(% colspan="1" %)
517 +(((
518 +SessionId, as returned by armSite.
519 +)))
520 +|(((
521 +secretToShare
522 +)))|(((
523 +A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
524 +)))
525 +|(((
526 +students
527 +)))|(((
528 +List of students and their results. See below.
529 +)))
530 +|(((
531 +optionalContentPackage
532 +)))|(((
533 +Optional. Content package (zipped) as byte array.
534 +)))
535 +|(((
536 +additionalParams
537 +)))|(((
538 +Reserved for future use.
539 +)))
540 +
541 +=== ReturnValue initiateSite ===
542 +
543 +|(((
544 +String
545 +)))|(((
546 +Absolute URL of the Reporter site for the IFrame. The URL has to be amended by the LMS with the following URL parameters:
547 +
548 +* sid: Session ID, as returned by armSite
549 +* (((
550 +uid: Student ID, as registrated in the initiateSite at the ONYX Reporter
551 +)))
552 +)))
553 +
554 +{{code language="xml"}}
555 +public class ResultsForStudent {
556 +   private String studentId = „";
557 +   private String firstname = „";
558 +   private String lastname = „";
559 +   private String groupname = „";
560 +   private String tutorname = „";
561 +   private File contentFile = null;
562 +   private byte[] resultsFile = null;
563 +}
564 +{{/code}}
565 +
566 +== Logout through the LMS ==
567 +
568 +
569 +
570 +{{code}}
571 +@WebMethod(operationName = „disarmSite")
572 +public Boolean disarmSite(
573 +@WebParam(name = „version") final Integer version,
574 +@WebParam(name = „sessionId") final String sessionId,
575 +@WebParam(name = „secretToShare") final String secretToShare,
576 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
577 +}
578 +{{/code}}
579 +
580 +
581 +
582 +=== Parameter disarmSite ===
583 +
584 +|(((
585 +version
586 +)))|(((
587 +Requested version: 1
588 +)))
589 +|(% colspan="1" %)(% colspan="1" %)
590 +(((
591 +sessionId
592 +)))|(% colspan="1" %)(% colspan="1" %)
593 +(((
594 +SessionId, as returned by armSite.
595 +)))
596 +|(((
597 +secretToShare
598 +)))|(((
599 +A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
600 +)))
601 +|(((
602 +additionalParams
603 +)))|(((
604 +Reserved for future use.
605 +)))
606 +
607 +=== ReturnValue disarmSite ===
608 +
609 +|(((
610 +Boolean
611 +)))|(((
612 +True in the case of success, otherwise false.
613 +)))
614 +
615 +== Request of learner results through the LMS ==
616 +
617 +{{code language="xml" title="Request of learner results through the LMS"}}
618 + @WebMethod(operationName = „getResultValues")
619 +public HashMapWrapper getResultValues(
620 + @WebParam(name = „version") final Integer version,
621 + @WebParam(name = „sessionId") final String sessionId,
622 + @WebParam(name = „secretToShare") final String secretToShare,
623 + @WebParam(name = „requestedValues") final HashMap<String, String>
624 + requestedValues,
625 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
626 +}
627 +{{/code}}
628 +
629 +=== Parameter getResultValues ===
630 +
631 +|(((
632 +version
633 +)))|(((
634 +Requested version: 1
635 +)))
636 +|(% colspan="1" %)(% colspan="1" %)
637 +(((
638 +sessionId
639 +)))|(% colspan="1" %)(% colspan="1" %)
640 +(((
641 +SessionId, as returned by armSite.
642 +)))
643 +|(((
644 +secretToShare
645 +)))|(((
646 +A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
647 +)))
648 +|(((
649 +requestedValues
650 +)))|(((
651 +Can be empty, in which case all result variables are returned. If keys are included, only the keys will be returned.
652 +)))
653 +|(((
654 +additionalParams
655 +)))|(((
656 +Reserved for future use.
657 +)))
658 +
659 +=== ReturnValue getResultValues ===
660 +
661 +|(((
662 +HashMap<String, String>
663 +)))|(((
664 +Map of result variables, key is the variable name, value is the respective variable's value (HashMap is wrapped)
665 +)))
666 +
667 +== Request of result variables through the LMS ==
668 +
669 +{{code language="xml" title="Request of result variables through the LMS"}}
670 + @WebMethod(operationName = „getResultVariables")
671 +public HashMapWrapper getResultVariables(
672 +@WebParam(name = „version") final Integer version,
673 +@WebParam(name = „contentPackage") final byte[] contentPackage,
674 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
675 +}
676 +{{/code}}
677 +
678 +=== Parameter getResultVariables ===
679 +
680 +|(((
681 +version
682 +)))|(((
683 +Requested version: 1
684 +)))
685 +|(((
686 +contentPackage
687 +)))|(((
688 +Content package (zipped) as byte array.
689 +)))
690 +|(((
691 +additionalParams
692 +)))|(((
693 +Reserved for future use.
694 +)))
695 +
696 +=== ReturnValue getResultVariables ===
697 +
698 +|(((
699 +HashMap<String, String>
700 +)))|(((
701 +Map of result variables, key is the variable name, value is the respective variable's value (HashMap is wrapped)
702 +)))
703 +
704 +== Wrapper ==
705 +
706 +Since the transmission of maps and lists via JAX-WS can cause problems, they have to be wrapped.
707 +
708 +=== Wrapper for HashMap<String, String> ===
709 +
710 +HashMapWrapper.java:
711 +
712 +[[image:attach:HashMapWrapperjava.png]]
713 +
714 +[[image:attach:HashMapWrapperjava2.png]]
715 +
716 +=== Wrapper for the ArrayList<ResultsForStudent> ===
717 +
718 +ResultsForStudentsWrapper.java:
719 +
720 +[[image:attach:ResultsForStudentsWrapperjava.png]]
303 303  {{/layout-cell}}
304 304  {{/layout-section}}
305 305  {{/layout}}
724 +{{/sv-translation}}
HashMapWrapperjava.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Größe
... ... @@ -1,0 +1,1 @@
1 +135.3 KB
Inhalt
HashMapWrapperjava2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Größe
... ... @@ -1,0 +1,1 @@
1 +187.3 KB
Inhalt
ResultsForStudentsWrapperjava.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.XWikiGuest
Größe
... ... @@ -1,0 +1,1 @@
1 +83.3 KB
Inhalt
Confluence.Code.ConfluencePageClass[0]
id
... ... @@ -1,1 +1,1 @@
1 -3342396
1 +3342390
url
... ... @@ -1,1 +1,1 @@
1 -https://www.bps-system.de/help/display/SOV/wiki/spaces/ONYX/pages/3342396/Schnittstelle ONYX Reporter
1 +https://www.bps-system.de/help/display/SOV/wiki/spaces/ONYX/pages/3342390/Schnittstelle ONYX Reporter