Ladok-adapter

SUNET erbjuder ett antal standardiserade och sammansatta meddelanden från Ladok3 som kan användas i olika sammanhang. Meddelandena är representationer av informationsobjekt i Ladok och är uttryckta i formatet LIS från IMS Global. Dessa meddelanden används även som input till SUNETs Canvas adapter.

Tjänstearkitektur


Lösningen bygger på att Ladok3-adaptern lyssnar på specifika events inne i Ladok och paketerar ihop dessa till sammansatta meddelanden som motsvarar ett helt informationsobjekt, tex studiedeltagande. Sync är ett verb som betyder att information synkroniseras ut till potentiellt många informationslavar. Meddelandet formateras till ett LIS-meddelande. Detta möjliggör att samma meddelande kan användas av flera konsumenter i olika sammanhang.

Grundläggande princip för lösningen är tjänsteorienterad arkitektur med lös koppling:

  • Tillgänglighet
    • Oberoende av om båda applikationerna är uppe samtidigt - löses med asynkron publicering av meddelanden. Konsumenten läser när den kan och i sin egen takt.
  • Informationsmodell
    • Oberoende av applikationernas interna informationsmodeller. Löses via standardiserat informationsformat baserat på LIS från IMS Global.
  • Teknologi
    • Oberoende av hur motparten kommunicerar, Löses med teknikagnostisk endpoint, via Azure Service Bus. Stödjer teknikagnostisk messaging över AMQP. Flera andra protokoll erbjuds för att konsumera tjänsten.
  • Livscykel
    • Oberoende av applikationernas interna livscykel, Löses genom att Ladok3s interna informationsmodell inte exponeras ut mot konsumenten. Ladok3 kan ändras sin interna informationsmodell utan att LIS meddelandet ändras förutsatt att det inte är brytande förändringar.

Tjänsterna förutsätter att konsumenten är idempotent. Det innebär att samma meddelande från tjänsten alltid ger samma resultat hos konsumenten.  Eftersom inte tjänsten känner till om konsumenten tagit emot innehållet tidigare, kan det upplevas som en dubblett hos konsumenten. Det är viktigt att konsumenten inte skapar en dubblett, utan uppdaterar befintlig post med samma information eller själv kastar duplikatet.

Sync Student

Sync Student synkroniserar ut studentmeddelanden. Följande Ladok meddelanden hanteras:

  • StudentTillLarosateEvent
  • LokalStudentEvent
  • KontaktUppgifterEvent

Följande information om studenten tas med:

  • StudentID (Ladok UID)
  • Förnamn
  • Efternamn
  • E-post
  • Personnummer

Genererar ett PersonRecord (LIS) meddelande.

Detaljspecifikation nedan

 

Sync Kurstillfälle

Sync Kurstillfälle synkroniserar ut ett sammansatt meddelande för en studieperiod med alla väsentliga attribut för både kurs och kurstillfälle inkluderat. Följande Ladok meddelanden hanteras:

  • KurstillfalleTillStatusEvent  (status=komplett, paborjad)

  • KurstillfalleUppdateradEvent  (status=komplett, paborjad)

  • KursUppdateradEvent
  • UtbildningstillfalleInstalltEvent

Följande information om kurstillfället tas med:

  • KurstillfällesID (Ladok UUID)
  • Termin
  • Tillfällesskod
  • Kurskod
  • Kursnamn
  • Poäng
  • Undervisningstakt
  • Undervisningstid
  • Studieort
  • Startdatum
  • Slutdatum

Genererar ett CourseOffringRecord (LIS) meddelande.

Detaljspecifikation nedan

Sync Studiedeltagande

Sync tudiedeltagande synkroniserar ut flera händelser som har med studiedeltagande att göra. Följande Ladok meddelanden hanteras:

  • RegistreringEvent
  • RegistreringBorttagenEvent
  • OmregistreringEvent
  • AterbudEvent
  • AterkalladOmregistreringEvent
  • AvbrottEvent
  • AvbrottBorttagetEvent

  • UppehallEvent

  • UppehallBorttagetEvent

Följande information tas med:

  • StudentID (Ladok UUID)
  • KurstillfällesID (Ladok UUID)


När en student lämnar studieuppehåll och lyssnar på Ladoks händelser om detta, så kommer systemet att slå upp vilka pågående kurser studenten har och uppdatera alla dessa medlemskap till att vara inaktiva. När studenten häver uppehållet så reflekteras även detta.

Genererar ett MembershipRecord (LIS) meddelande.

Detaljspecifikation nedan

Sammanfattning meddelande

  • Kolumn Ladok avser de meddelanden som kommer från Ladok
  • Kolumn LIS avser vilket LIS meddelande som skapas utifrån Ladok händelsen.
LadokLISOperation Kommentar 
 StudentTillLarosateEventPersonRecord createPerson 
ForvantatStudiedeltagandeEventMembershipRecord

createMembership

Lägg till medlemskap (Antagen)

status =Active

extensionField:  

   Admitted=true 
   Registered=false
   Break=false
   Dropout=false

   OriginEvent = Ladok.AddAdmission

ForvantatStudiedeltagandeBorttagenEvent MembershipRecord

deleteMembership

Ta bort medlemskap (Antagen)

status =Inactive

extensionField:  
   Admitted=false
   Registered=false   
   Break=false
   Dropout=false

OriginEvent = Ladok.RemoveAdmission

RegistreringEventMembershipRecord

updateMembership

Lägg till registrering

status=Active

extensionField:  
   Admitted=true 
   Registered=true
   Break=false
   Dropout=false

   OriginEvent = Ladok.AddRegistration


 


 OmregistreringEventMembershipRecord updateMembership

Omregistrering

status=Active

extensionField:

   Admitted=true
   Registered=true
   Break=false
   Dropout=false

   OriginEvent = Ladok.ReRegistration


 

 AterkalladRegistreringEventMembershipRecord

updateMembership

Återkallad registrering


status=Inactive
   
extensionField:  

   Admitted=true 
   Registered=false
   Break=false
   Dropout=false

   OriginEvent = Ladok.RemoveRegistration


 AterkalladOmregistreringEventMembershipRecordupdateMembership

Återkallad omregistrering

status=Inactive

extensionField: 

   Admitted=true 
   Registered=false
   Break=False
   Dropout=false

  OriginEvent=Ladok.RemoveReRegistration

 AterbudEventMembershipRecord

deleteMembership

Ta bort medlemskap

status=Inactive
   extensionField: 
   Admitted=false     
   Registered=false   
   Break=False   
   Dropout=false

   OriginEvent=Ladok.RemoveAdmission

 AvbrottEventMembershipRecord

updateMembership

Avbrott

status=Inactive

extensionField:

   Admitted=true
   Registered=false
   Break=true
   Dropout=true

   OriginEvent = Ladok.AddDroppout


 AvbrottBorttagetEventMembershipRecord

updateMembership

Avbrott borttaget

status=Active

extensionField:

   Admitted=true 
   Registered=true
   Break=false 
   Dropout=false

   OriginEvent= Ladok.RemoveDropout

 UppehallEvent MembershipRecord

updateMembership

Studieuppehåll

status=Inactive

extensionField:

   Admitted=true 
   Registered=true
   Break=true
   Dropout=false

   OriginEvent= Ladok.AddBreak


 UppehallborttagenEvent MembershipRecord

updateMembership

Studieuppehåll borttagen

status=Active

extensionField:

   Admitted=true
   Registered=true
   Break=false
  
Dropout=false

   OriginEvent= Ladok.RemoveBreak

 LokalStudentEventPersonRecord updatePerson
 KontaktuppgifterEventPersonRecord updatePerson  
 KurstillfalleTillStatusEventCourseOfferingRecord createCourseOffering
 KurstillfalleUppdateratEventCourseOfferingRecord replaceCourseOffering 

I fältet OriginEvent kan följande värden förekomma: Ladok.AddPerson. Ladok.AddAdmission, Ladok.RemoveAdmission, Ladok.AddRegistration, Ladok.AddReRegistration, Ladok.RemoveRegistration, Ladok.RemoveReRegistration, Ladok.AddDropout, Ladok.RemoveDropout, Ladok.ModifyPerson, Ladok.ModifyPersonContact, Ladok.AddCourseInstance, Ladok.ModifyCourseInstance, Ladok.AddBreak, Ladok.RemoveBreak, Ladok.ModifyCourse, Ladok.RemoveCourseInstance

Filter


Platformen tillhandahåller även möjligheten att filtrera bort vilket händelser från ladok som systemet ska lyssna på. Om man t.ex. skulle vilja endast få medlemskapsmeddelanden för registreringar, så kan man välja att filtrera bort antagningsmeddelanden. För mer information. och för att använda funktionaliteten, kontakta driftsansvarig (UmU).


Early Access


Platformen erbjuder möjligheten till så kallad early-access funktionalitet, vilket innebär att studenterna kan räknas som aktiva redan vid antagning. De räknas då som tidsbegränsat aktiva fram tills dess att registreringsperioden löpt ut. När en registrering på kursen sker så förlängs medlemskapet till kursens slut. Detta är användbart om det önskas att studenterna ska få tillgång till material redan innan kursstart.

För att reglera detta beteende så ska du informera driftsansvarige (UmU) att du önskar använda beteendet. Funktionaliteten bygger på att du skapar en markeringsnyckel i ladok som du markerar kurser som ska använda funktionaliteten. När platformen sedan läser information om kursen från ladok kommer en kontroll göras om markeringsnyckeln är satt på kursen. Om så är fallet kommer antagningsmeddelanden att få roll-status satt till 'Active' istället för det vanliga 'Inactive', och en tidsram för medlemskapet kommer att bli satt. När ett registreringsmeddelanden sedan kommer för studenten så förlängs tidsramen för medlemskapet tills kursens slutdatum.

En kurs som platformen ser är en s.k. early-access kurs kommer att markeras med ett LIS-extension med namn 'EarlyAccess' av typ 'Boolean' satt till värdet 'true'. Om inte är värdet satt till 'false'.




  • No labels