Ä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 396.1
bearbeitet von Carina Enke
am 13.02.2024
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Titel
... ... @@ -1,1 +1,1 @@
1 -Schnittstelle ONYX Reporter
1 +10 Schnittstelle ONYX Reporter
Übergeordnete Seite
... ... @@ -1,0 +1,1 @@
1 +ONYX.Systeminformationen.WebHome
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.tleu
1 +XWiki.carina
Inhalt
... ... @@ -1,38 +1,13 @@
1 1  {{layout}}
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"/}}
4 +
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 -
28 -
29 -
30 -)))
31 -|=(((
32 -JIRA
33 -)))|(((
34 -
35 -)))
8 +{{panel borderColor="#ddd" bgColor="#f0f0f0" borderStyle="solid" title="Inhalt"}}
9 +{{toc start="2"/}}
10 +{{/panel}}
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  
20 +(% 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.
39 +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"}}
51 +{{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  
66 +(% class="wrapped" %)
92 92  |(((
93 93  version
94 94  )))|(((
... ... @@ -131,6 +131,7 @@
131 131  
132 132  === ReturnValue armSite ===
133 133  
109 +(% 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"}}
118 +{{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  
132 +(% class="wrapped" %)
156 156  |(((
157 157  version
158 158  )))|(((
... ... @@ -188,6 +188,7 @@
188 188  
189 189  === ReturnValue initiateSite ===
190 190  
168 +(% class="wrapped" %)
191 191  |(((
192 192  String
193 193  )))|(((
... ... @@ -211,10 +211,21 @@
211 211  
212 212  == Abmeldung durch LMS ==
213 213  
214 -Abfrage von Lernerresultaten durch LMS
215 215  
216 -
193 +{{code}}
194 +@WebMethod(operationName = „disarmSite")
195 +public Boolean disarmSite(
196 +@WebParam(name = „version") final Integer version,
197 +@WebParam(name = „sessionId") final String sessionId,
198 +@WebParam(name = „secretToShare") final String secretToShare,
199 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
200 +}
201 +{{/code}}
217 217  
203 +
204 +=== Parameter disarmSite ===
205 +
206 +(% class="wrapped" %)
218 218  |(((
219 219  version
220 220  )))|(((
... ... @@ -240,6 +240,7 @@
240 240  
241 241  === ReturnValue disarmSite ===
242 242  
232 +(% 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
241 +{{code language="xml" title="Abfrage von Lernerresultaten durch LMS"}}
242 + @WebMethod(operationName = „getResultValues")
243 +public HashMapWrapper getResultValues(
244 + @WebParam(name = „version") final Integer version,
245 + @WebParam(name = „sessionId") final String sessionId,
246 + @WebParam(name = „secretToShare") final String secretToShare,
247 + @WebParam(name = „requestedValues") final HashMap<String, String>
248 + requestedValues,
249 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
250 +}
253 253  {{/code}}
254 254  
253 +=== Parameter getResultValues ===
254 +
255 +(% class="wrapped" %)
255 255  |(((
256 256  version
257 257  )))|(((
... ... @@ -270,36 +270,436 @@
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
274 +requestedValues
274 274  )))|(((
275 -Liste der Studenten mit ihren Resultaten. Siehe unten.
276 +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
279 +additionalParams
279 279  )))|(((
280 -Optional. Content Package (gezippt) als Byte-Array.
281 +Reserved for future use.
281 281  )))
283 +
284 +=== ReturnValue getResultValues ===
285 +
286 +(% class="wrapped" %)
282 282  |(((
288 +HashMap<String, String>
289 +)))|(((
290 +Map der Result-Variables, Key ist der Variablenname, Value der jeweilige Wert (HashMap ist gewrappt)
291 +)))
292 +
293 +== Abfrage von Ergebnisvariablen durch LMS ==
294 +
295 +{{code language="xml" title="Abfrage von Ergebnisvariablen durch LMS"}}
296 + @WebMethod(operationName = „getResultVariables")
297 +public HashMapWrapper getResultVariables(
298 +@WebParam(name = „version") final Integer version,
299 +@WebParam(name = „contentPackage") final byte[] contentPackage,
300 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
301 +}
302 +{{/code}}
303 +
304 +=== Parameter getResultVariables ===
305 +
306 +(% class="wrapped" %)
307 +|(((
308 +version
309 +)))|(((
310 +Angefragte Version: 1
311 +)))
312 +|(((
313 +contentPackage
314 +)))|(((
315 +Content Package (gezippt) als Byte-Array.
316 +)))
317 +|(((
283 283  additionalParams
284 284  )))|(((
285 285  Reserved for future use.
286 286  )))
322 +
323 +=== ReturnValue getResultVariables ===
324 +
325 +(% class="wrapped" %)
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||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
341 +
342 +[[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
343 +
344 +=== Wrapper für die ArrayList<ResultsForStudent> ===
345 +
346 +ResultsForStudentsWrapper.java:
347 +
348 +[[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
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: ======
354 +
355 +{{/layout-cell}}
293 293  
357 +{{layout-cell}}
358 +====== relevante Links: ======
294 294  
360 +* [[ONYX Player Interface>>doc:ONYX.Systeminformationen.Schnittstelle ONYX Player.WebHome]]
361 +{{/layout-cell}}
362 +{{/layout-section}}
363 +{{/layout}}
295 295  
296 -{{children all="true"/}}
365 +{{layout}}
366 +{{layout-section ac:type="two_equal"}}
367 +{{layout-cell}}
368 +====== Content: ======
369 +
370 +{{toc start="2"/}}
297 297  {{/layout-cell}}
298 298  
299 299  {{layout-cell}}
300 -====== relevante Links: ======
374 +
375 +{{/layout-cell}}
376 +{{/layout-section}}
301 301  
302 -* [[lorem ipsum>>url:https://www.bps-system.de/help/display/OPAL/Handbuch+OPAL||shape="rect"]]
378 +{{layout-section ac:type="single"}}
379 +{{layout-cell}}
380 +== General information ==
381 +
382 +The API to the ONYX WebReporter enables the communication between the LMS and the Reporter. Therefore, a couple of commands will be executed:
383 +
384 +|(((
385 +armSite
386 +)))|(((
387 +Registration of sequence requests at the ONYX Reporter
388 +)))
389 +|(((
390 +initiateSite
391 +)))|(((
392 +Initiates the Reporter session (transmission of the CP).
393 +)))
394 +|(((
395 +disarmSite
396 +)))|(((
397 +Release of all Reporter resources for this session.
398 +)))
399 +|(((
400 +getResultValues
401 +)))|(((
402 +Returns all (requested) results for the test. Condition: There is only one student in the list transmitted with initiateSite.
403 +)))
404 +|(% colspan="1" %)(% colspan="1" %)
405 +(((
406 +getResultVariables
407 +)))|(% colspan="1" %)(% colspan="1" %)
408 +(((
409 +Returns all (requested) outcome variables for the test. No armSite, initiateSite, or disarmSite is required.
410 +)))
411 +
412 +== Login through the LMS ==
413 +
414 +{{code language="xml" title="Login through the LMS"}}
415 +@WebMethod(operationName = „armSite")
416 +public String armSite(
417 +@WebParam(name = „version") final Integer version,
418 +@WebParam(name = „userId") final String userId,
419 +@WebParam(name = „optionalRole") final Integer role,
420 +@WebParam(name = „secretToShare") final String secretToShare,
421 +@WebParam(name = „optionalUserLastName") final String userLastName,
422 +@WebParam(name = „optionalUserFirstName") final String userFirstName,
423 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
424 +}
425 +{{/code}}
426 +
427 +=== Parameter armSite ===
428 +
429 +|(((
430 +version
431 +)))|(((
432 +Requested version: 1
433 +)))
434 +|(((
435 +userId
436 +)))|(((
437 +UserId of the requested Reporter user
438 +)))
439 +|(((
440 +optionalRole
441 +)))|(((
442 +Optional. User role. 0 = student, 1 = tutor
443 +)))
444 +|(((
445 +secretToShare
446 +)))|(((
447 +A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
448 +)))
449 +|(((
450 +optionalUserLastName
451 +)))|(((
452 +Optional. Last name of the user.
453 +)))
454 +|(% colspan="1" %)(% colspan="1" %)
455 +(((
456 +optionalUserFirstName
457 +)))|(% colspan="1" %)(% colspan="1" %)
458 +(((
459 +Optional. First name of the user.
460 +)))
461 +|(% colspan="1" %)(% colspan="1" %)
462 +(((
463 +additionalParams
464 +)))|(% colspan="1" %)(% colspan="1" %)
465 +(((
466 +Reserved for future use.
467 +)))
468 +
469 +=== ReturnValue armSite ===
470 +
471 +|(((
472 +String
473 +)))|(((
474 +Session ID which has to be used to mark any other Reporter call.
475 +)))
476 +
477 +== Initialisation through LMS ==
478 +
479 +{{code language="xml" title="Initialisation through LMS"}}
480 +@WebMethod(operationName = „initiateSite")
481 +public String initiateSite(
482 +@WebParam(name = „version") final Integer version,
483 +@WebParam(name = „sessionId") final String sessionId,
484 +@WebParam(name = „secretToShare") final String secretToShare,
485 +@WebParam(name = „students") final ArrayList<ResultsForStudent> students,
486 +@WebParam(name = „optionalContentPackage") final byte[] contentPackage,
487 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
488 +}
489 +{{/code}}
490 +
491 +=== Parameter initiateSite ===
492 +
493 +|(((
494 +version
495 +)))|(((
496 +Requested version: 1
497 +)))
498 +|(% colspan="1" %)(% colspan="1" %)
499 +(((
500 +sessionId
501 +)))|(% colspan="1" %)(% colspan="1" %)
502 +(((
503 +SessionId, as returned by armSite.
504 +)))
505 +|(((
506 +secretToShare
507 +)))|(((
508 +A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
509 +)))
510 +|(((
511 +students
512 +)))|(((
513 +List of students and their results. See below.
514 +)))
515 +|(((
516 +optionalContentPackage
517 +)))|(((
518 +Optional. Content package (zipped) as byte array.
519 +)))
520 +|(((
521 +additionalParams
522 +)))|(((
523 +Reserved for future use.
524 +)))
525 +
526 +=== ReturnValue initiateSite ===
527 +
528 +|(((
529 +String
530 +)))|(((
531 +Absolute URL of the Reporter site for the IFrame. The URL has to be amended by the LMS with the following URL parameters:
532 +
533 +* sid: Session ID, as returned by armSite
534 +* (((
535 +uid: Student ID, as registrated in the initiateSite at the ONYX Reporter
536 +)))
537 +)))
538 +
539 +{{code language="xml"}}
540 +public class ResultsForStudent {
541 +   private String studentId = „";
542 +   private String firstname = „";
543 +   private String lastname = „";
544 +   private String groupname = „";
545 +   private String tutorname = „";
546 +   private File contentFile = null;
547 +   private byte[] resultsFile = null;
548 +}
549 +{{/code}}
550 +
551 +== Logout through the LMS ==
552 +
553 +
554 +{{code}}
555 +@WebMethod(operationName = „disarmSite")
556 +public Boolean disarmSite(
557 +@WebParam(name = „version") final Integer version,
558 +@WebParam(name = „sessionId") final String sessionId,
559 +@WebParam(name = „secretToShare") final String secretToShare,
560 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
561 +}
562 +{{/code}}
563 +
564 +
565 +=== Parameter disarmSite ===
566 +
567 +|(((
568 +version
569 +)))|(((
570 +Requested version: 1
571 +)))
572 +|(% colspan="1" %)(% colspan="1" %)
573 +(((
574 +sessionId
575 +)))|(% colspan="1" %)(% colspan="1" %)
576 +(((
577 +SessionId, as returned by armSite.
578 +)))
579 +|(((
580 +secretToShare
581 +)))|(((
582 +A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
583 +)))
584 +|(((
585 +additionalParams
586 +)))|(((
587 +Reserved for future use.
588 +)))
589 +
590 +=== ReturnValue disarmSite ===
591 +
592 +|(((
593 +Boolean
594 +)))|(((
595 +True in the case of success, otherwise false.
596 +)))
597 +
598 +== Request of learner results through the LMS ==
599 +
600 +{{code language="xml" title="Request of learner results through the LMS"}}
601 + @WebMethod(operationName = „getResultValues")
602 +public HashMapWrapper getResultValues(
603 + @WebParam(name = „version") final Integer version,
604 + @WebParam(name = „sessionId") final String sessionId,
605 + @WebParam(name = „secretToShare") final String secretToShare,
606 + @WebParam(name = „requestedValues") final HashMap<String, String>
607 + requestedValues,
608 + @WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
609 +}
610 +{{/code}}
611 +
612 +=== Parameter getResultValues ===
613 +
614 +|(((
615 +version
616 +)))|(((
617 +Requested version: 1
618 +)))
619 +|(% colspan="1" %)(% colspan="1" %)
620 +(((
621 +sessionId
622 +)))|(% colspan="1" %)(% colspan="1" %)
623 +(((
624 +SessionId, as returned by armSite.
625 +)))
626 +|(((
627 +secretToShare
628 +)))|(((
629 +A secret string that allows the server and client to encrypt their communication. Must remain the same for any further communication.
630 +)))
631 +|(((
632 +requestedValues
633 +)))|(((
634 +Can be empty, in which case all result variables are returned. If keys are included, only the keys will be returned.
635 +)))
636 +|(((
637 +additionalParams
638 +)))|(((
639 +Reserved for future use.
640 +)))
641 +
642 +=== ReturnValue getResultValues ===
643 +
644 +|(((
645 +HashMap<String, String>
646 +)))|(((
647 +Map of result variables, key is the variable name, value is the respective variable's value (HashMap is wrapped)
648 +)))
649 +
650 +== Request of result variables through the LMS ==
651 +
652 +{{code language="xml" title="Request of result variables through the LMS"}}
653 + @WebMethod(operationName = „getResultVariables")
654 +public HashMapWrapper getResultVariables(
655 +@WebParam(name = „version") final Integer version,
656 +@WebParam(name = „contentPackage") final byte[] contentPackage,
657 +@WebParam(name = „additionalParams") final HashMapWrapper additionalParams) {
658 +}
659 +{{/code}}
660 +
661 +=== Parameter getResultVariables ===
662 +
663 +|(((
664 +version
665 +)))|(((
666 +Requested version: 1
667 +)))
668 +|(((
669 +contentPackage
670 +)))|(((
671 +Content package (zipped) as byte array.
672 +)))
673 +|(((
674 +additionalParams
675 +)))|(((
676 +Reserved for future use.
677 +)))
678 +
679 +=== ReturnValue getResultVariables ===
680 +
681 +|(((
682 +HashMap<String, String>
683 +)))|(((
684 +Map of result variables, key is the variable name, value is the respective variable's value (HashMap is wrapped)
685 +)))
686 +
687 +== Wrapper ==
688 +
689 +Since the transmission of maps and lists via JAX-WS can cause problems, they have to be wrapped.
690 +
691 +=== Wrapper for HashMap<String, String> ===
692 +
693 +HashMapWrapper.java:
694 +
695 +[[image:attach:HashMapWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
696 +
697 +[[image:attach:HashMapWrapperjava2.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
698 +
699 +=== Wrapper for the ArrayList<ResultsForStudent> ===
700 +
701 +ResultsForStudentsWrapper.java:
702 +
703 +[[image:attach:ResultsForStudentsWrapperjava.png||data-xwiki-image-style="img-screen" data-xwiki-image-style-border="true" width="500"]]
303 303  {{/layout-cell}}
304 304  {{/layout-section}}
305 305  {{/layout}}
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