CodeX: LDAP-Schema för LADOK



Relevanta dokument
LDAP i KK2.1. Innehåll. Sammanställt av Roland Hedberg Version: 1.0 Datum:

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Teknisk beskrivning PDL i HSA

Instruktion för att kunna använda Säkerhetstjänsternas administrationsgränssnitt

NSL Manager. Handbok för nätverksadministratörer

Design och underhåll av databaser

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

Schemaändring version 4.6 och version Information om schemaändring version 2.0

Lokala regler för kurs på grundnivå och avancerad nivå vid Linnéuniversitetet

BILAGA 3 Federationsgemensamma attribut

Sätt att skriva ut binärträd

Dokumentschema förpackning av externa objekt. Version: 1.0 Status: Standard Datum:

Fältbeskrivning kurstillfälle

Sites/GC/FSMO. EC Utbildning AB

Nya Ladok (L3) Utbildningsplan. Utbildningsplan Datum: Beslutad av Styrgruppen Handläggare: Madeleine Andrén

Objektorienterad programmering

En snabb titt på XML LEKTION 6

Hantera informationspaket i system för bevarande

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Kravspecifikation. Överföring av uppgifter till CSN Bologna-anpassningar. Anpassningar av Ladok till ny utbildningsstruktur STU 2007:T

Grunderna i SQL del 1

Schematransformation SLU

Checklista: Beständiga identifierare

DIG IN TO. Nätverksadministration

Databasdesign. E-R-modellen

Hola! Du har blivit antagen till någon av nedanstående distanskurser i spanska VT Spanska avdelningen på Linnéuniversitetet i Växjö hälsar dig

REGEL FÖR UTBILDNINGSPLANER

Antagning och reservantagning. Antagning till kurs och program vid KI

Major Release 3.1. Vad innebär Major Release 3.1 för svenska användare?

Ba rande tra konstruktioner, 7,5 hp

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Tidigt uppföljningssystem Skövde

Classes och Interfaces, Objects och References, Initialization

Informationsspecifikation för levnadsvanor. Tobakskonsumtion, alkoholkonsumtion, fysisk aktivitet och matvanor

Objektorientering Användning

Introduktion till arv

Slutexamensarbete i psykologi 30 hp ht 2015-vt 2016

Sammanställning av studentutvärderingen för kursen Estetiska lärprocesser 15 hp, ht 2007

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Riktlinjer vid examination

Riktlinjer för Verksamhetsförlagd utbildning, VFU6, inom förskollärarutbildningen. Ht 15

Övningar Dag 2 En första klass

Utveckling av webbapplikationer med.net, DVA213 (1 av 5)

Ladok. Introduktion för användare i Ladok. Att Logga in i Ladok 2. Arbetsfält att känna igen 3. Snabbkommandon 4. Ladok utan mus 5.

Kortfattad sammanfattning av studenternas synpunkter och förslag

INSTITUTIONEN FÖR SPRÅK OCH LITTERATURER

RS01 Resultat på prov

Konceptuell modellering

Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter

Nätverksoperativsystem i Datornätverk (Windows Server) DVA202, VT Tentamen

CSN-rapportering, gymnasiet

Reducering till relationsscheman

Begreppslista. Begrepp Definition Exempel/Kommentar Preliminär. En användarbehörighet är kombinationen av. någon organisation.

HSA-schema tjänsteträdet. Version

JHS 193 Unik identifierare för geografisk information Bilaga 1. Process för att bilda URI

Mall och riktlinjer för kursplan för kurser på grundnivå och avancerad nivå. Fastställd av KUFU Reviderad av KUFU

4 39% 27% 27% 37% 34% 31% 5 19% 9% 21% 18% 13% 22% 6 - Mycket nöjd med stödet för självstudier 17% 10% 4% 9% 7%

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

el o;; Utbildningsplan för Kognitionsvetenskapligt kandidatprogram Bachefor Programmein Cognitive Science 180 Högskolepoäng

RV03 Ändring av betygsskala

Instuderingsfrågor ETS052 Datorkommuniktion

HSA Anslutningsavtal. HSA-policy

HexaFlip. Kravspecifikation

Införandeplan. Handlingsplan. KA-system Version 1.0

Examen Examensmål och examenskriterier för de examina som utbildningen leder till (se ovan) framgår av gällande nationell och lokal examensordning.

Att komma igång med FirstClass (FC)!

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

Specialistsjuksköterskeprogrammet - inriktning vård av äldre, 60 hp

Selma Manual Kurstillfälle, kurspaket, programtillfälle. Studentcentrum/Ladokgruppen

Att eventuellt lägga in en extra gäst föreläsning med någon aktiv i arbetslivet som arbetar med animering i webb miljö.

Internationella studenter och deras villkor. Helena Gradin Studentcentrum/International Office

Nr Iakttagelse Risk Risknivå Pensionsmyndighetens svar till Riksrevisionen , dnr VER

ALEPH ver. 18 ALEPH Digital Asset Module (ADAM)

Lathund- Skapa objekt i TimeEdit 3 på Stockholms universitet

Towards Blocking---resistant Communication on the Internet

CMAST Internationell Inriktning

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

Hantering av hyperlänkar

Minnesanteckningar från Målseminarium Uppföljning

Föreläsning 9: Arv och UML

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Doktorander vid forskarskolor för lärare hösten 2015

Programinformation för. Automationsteknik, 120 högskolepoäng

Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...

Antagningsordning. Utbildning vid Gymnastik- och idrottshögskolan

NyA-webben Nyheter och planerad vidareutveckling

» Ny Ingenjörsutbildning (NyIng)

Behörighet till delfunktion ger rätt att söka, visa och skriva ut sökresultat. För uppdatering krävs särskild behörighet.

Programmering för språkteknologer II, HT2014. Rum

Minskat intresse för högre studier särskilt för kurser

Projektarbete 2: Interaktiv prototyp

Examensarbeten inom matematik Gemensamma riktlinjer för hantering

Underlag för bedömningssamtal vid verksamhetsförlagd utbildning (VFU) vid specialistsjuksköterskeprogrammet med inriktning

Handbok för registervård. - Del 7

OOP Objekt-orienterad programmering

Hur kunde man lyckas?

Utvärderingar VFU läsåret 2014/ Katja Cederholm

Lathund Automatiserad överföring av kurs mellan KursInfo och Ladok. 2. Kriterier för automatiserad överföring

Transkript:

Leif Johansson, Stockholms universitet <leifj@it.su.se> Detta dokument beskriver ett LDAP-schema och en URN-struktur för LADOKinformation. Syftet är att konstruera ett schema som kan användas för att modellera en delmängd av LADOK informationsmodell tillräcklig för representation av information om antagna och registrerade studenter, lärare, examinatorer och andra liknande relationer i en högskolas enterprisekatalog. Table of Contents Vem bör läsa detta dokument... 1 Relation med LpW... 1 Design... 1 En URN-specifikation för LADOK... 2 Objektmodell... 3 LADOK-Schema v1.0... 4 Exempel... 7 Användning av schemat... 8 Referenser... 8 Vem bör läsa detta dokument Detta dokument riktar sig till mjukvaruutvecklare och katalogadministratörer vid svenska högskolor och universitet. Dokumentet är tekniskt och förutsätter kunskap om LDAP och schemadesign. Förtrogenhet med objektmodellering underlättar förståelsen av schemats design. Läsaren förutsätts också vara insatt i hur LADOK är strukturerad. Relation med LpW Design LpW - LADOK på Webb utgör ett alternativt sätt att komma åt information i LADOK. Många tillämpningar ställer emellertid krav på prestanda som LpW inte kan uppfylla. Tillgång till LADOKdata i en LDAP-katalog är ofta en naturlig lösning på prestandaproblemet för sådana applikationer. LADOK har en komplex informationsstruktur som inte är uttryckt i OO-termer. Detta faktum och andra egenskaper hos LADOK medför att en fullständig representation av LADOK som ett LDAPschema varken är möjlig eller speciellt intressant. Detta dokument är resultatet av arbete inom CodeX arbetsgrupp för LDAP inom Svenska Universitet och Högskolor. Denna arbetsgrupp har fokuserat på användningen av LADOK-data inom IT-drift (kontoadministration, behörighetskontroll mm). Designmålen för schemat har varit: 1. Representera grupperingar av personer (tex alla antagna studenter till en viss kurs) som auxiliära objektklasser associerade med objekt av typen groupofuniquenames eller groupof- Names. Syftet med detta mål är att LADOK-relaterade grupper ska kunna användas av andra applikationer (tex mailinglistor) som inte behöver känna till gruppernas association med LADOK. 2. Schemat ska så långt som möjligt inte förutsätta någon speciell trädstruktur i katalogen. Detta 1

medför att vissa referenser mellan objekt i schemat måste göras explicit mha attribut istället för implicit baserat på katalogstrukturen. 3. Schemat ska medge att vanliga sökningar och uppdateringar kan ske effektivt. 4. Schemat skall uppfylla kraven som ställs på enterprisekatalogen av VHS NyA. 5. Schemat skall inte kräva syntaxer, namn- eller strukturregler eller matchningsregler som inte är implementerade i marknadsledande LDAP-servrar. 6. Schemat skall uppfylla kraven i [codex-directory-bcp]. En URN-specifikation för LADOK Referenser mellan objekt i LDAP kan antingen ske med DN (distinguished name) eller med annan data som via en sökning i katalogen unikt bestämmer ett entry. Referenser som använder DN förutsätter att katalogstrukturen är relativt stabil och inte (tex) påverkas av personers organisationstillhörighet. En sådan stabilitet kan vara svår att uppnå och de flesta katalogservrar implementerar inte referensintegritet för DN ens inom samma server. Därför är det ofta bra att skapa korsreferenser på annat sätt. Ett sätt är att skapa ett enhetligt namnrum som är oberoende av katalogens namnstruktur. Vid vissa högskolor har man sedan en tid använt ett namespace för att referera till LADOK-kurser där kurskoden ingår som komponent i namnet. Genom att konstruera ABNF [RFC2234] för en sådan namnstruktur gör man det enkelt att göra sökningar i katalogen efter kurser samtidigt som man kringgår begränsningar till följd av att attributvärden i LDAP är strängar (se design-mål ovan angående strukturerad data). Ett URN [RFC2141] är ett sätt att formalisera denna ide samtidigt som man på ett unikt sätt kan referera till samtliga i schemat representerade informationsobjekt (kurser, prov, kurstillfällen etc etc). En URN-specifikation blir dessutom utbyggbar på ett naturligt sätt. Detta är ABNF för URN-specifikationen för LADOK-schemat. Vi har valt att inte använda svenska ord som tokens för att undvika framtida problem med utf8 i protokollparametrar. ladok-urn = "urn:ladok:" ladok-urn-nss ladok-urn-nss = "info:" school-id ":" info-spec info-spec = ( course / course-instance / test ) school-id = 1( ALPHA / DIGIT ) course = "c" "-" code course-instance = "ci" "-" semester "-" code 0*1( ";" uniquepart ) uniquepart = 1( ALPHA / DIGIT ) test = "t" "-" code code = 1( ALPHA / DIGIT ) semester = 4*4( DIGIT ) ("1" / "2") För att göra det möjligt att representera andra entiteter än rena informationsobjekt införs prefixet info: för det URN-träd som innehåller referenser till kurser, prov och kurstillfällen. Den av LADOK-konsortiet tilldelade databasidentiteten (ex US för Stockholms universitet") skall användas som school-id. Här avses den unika koden som identifierar objektet i motsvarande LADOK-tabell. Terminer anges i LADOK-format dvs året (4 siffror) följt av en terminssiffra som är antingen 1 eller 2 (VT respt HT). Multipla kursinstanser kan förekomma på samma termin. I LADOK använder man diverse tabeller (tex ETYPBEN) för att skilja dem åt. produktionen uniquepart kan konstrueras mha denna tabell. Exempel En URN som refererar till kursen AI1020: 'Introduktionskurs i Astronomi' vid Stockholms universitet: urn:ladok:info:us:c-ai1020. 2

Objektmodell Även om ett schema inte är en OO-modell är det ändå värdefullt att se en UML-modell av ett schema speciellt om schemat är någorlunda komplext. Detta är den UML-modell som ligger till grund för LADOK-schemat: Det finns i huvudsak två typer av objektklasser i schemat: dels klasser som (i OO-termer) ärver från ladok-object och dels klasser som ärver från ladok-relatedobject. Objektklasserna ladok-course, ladok-test och ladok-courseinstance är strukturella klasser De två sistnämnda hör även till den andra typen av objektklasser eftersom det är associerade med kurser. Klasserna ladok-courseinstanceproperties och ladok-locality är bärare av metadata om kurstillfällen som inte måste implementeras av alla. Syftet med att separera dessa attribut (tex kurstid, kursform etc) är att göra uppdelningen tydligare samtidigt som applikationer enkelt kan avgöra om metadata finns representerat i katalogen. Den andra typen av objektklasser är auxiliära objekt som samtliga är associerade med någon av de strukturella objekten. Typen av association (grupp, person, roll, etc) är bestämt av objektklassen. Detta faktum medför att sökningar av typen "alla studenter registrerade på en kurs" eller kommer att använda filter av typen objektclass=ladok-course i kombination med andra filter. Det är förhållandevis enkelt att optimera en katalogserver så att sådana sökningar blir effektiva. Objekt som är associerade med ladok-objekt (auxiliära objektklasser) saknar alltså egen unik identifierare men har alla ett attribut ladok-associatedobjecturn som innehåller URN för de LADOK-objekt (kurser, prov etc) som associationen avser. Detta attribut är flervärt men samtliga associerade objekt måste vara av samma typ. Namnregler och strukturregler kan inte specificeras i LDAP-schema och detta schema innehåller inga formella sådana regler. Emellertid skall följande krav uppfyllas av implementationer av detta schema: 3

1. Strukturella objekt skall namnges med cn-attributet. Namnet kan innehålla samma värde som värdet av attributet ladok-identifierurn men andra namngivningssystem för RDN kan förekomma. Applikationer ska bara använda attributet ladok-identifierurn. 2. Entryn av objektklass ladok-group skall vara associerade med strukturella entryn av typ groupofnames eller groupofuniquenames. Klienter skall välja värdet av attributet member respektive uniquemember som listan på personer som har den av ladok-grouptype givna associationen med de strukturella objekten som är associerade med gruppen. I enlighet med hantering av grupper i [codex-directory-bcp] är värdet av uniquemember alltid ett DN (dvs ej på formen # uid). LADOK-Schema v1.0 Schemat följer syntaxen i [RFC2252]. ## Objektidentifierare # se-id OBJECT IDENTIFIER ::= { iso(1) member-body(2) se(752) } # su-id OBJECT IDENTIFIER ::= { se-id (su.se)43 } # ladok-id OBJECT IDENTIFIER ::= { su-id 8 } # ladok-oc-id OBJECT IDENTIFIER ::= { ladok-id oc(1) } # ladok-a-id OBJECT IDENTIFIER ::= { ladok-id a(2) } ## Attributtyper attributetype ( 1.2.752.43.8.2.1 NAME 'ladok-identifierurn' DESC 'A ladok-urn' attributetype ( 1.2.752.43.8.2.2 NAME 'ladok-credits' DESC 'Course or test-credits multiplied by 10' attributetype ( 1.2.752.43.8.2.3 NAME 'ladok-ectscredits' DESC 'Course or test-credits according to ECTS multiplied by 10.' attributetype ( 1.2.752.43.8.2.4 NAME 'ladok-associatedobjecturn' DESC 'The URN of the associated LADOK object' attributetype ( 1.2.752.43.8.2.5 NAME 'ladok-semester' DESC 'Semester according to LADOK standard format' attributetype ( 1.2.752.43.8.2.6 NAME 'ladok-courseinstancepace' DESC 'Course pace in %' 4

attributetype ( 1.2.752.43.8.2.7 NAME 'ladok-courseinstanceform' DESC 'Undervisningsform (distans etc)' attributetype ( 1.2.752.43.8.2.8 NAME 'ladok-courseinstancetime' DESC 'Undervisningstid (dag,kväll)' attributetype ( 1.2.752.43.8.2.9 NAME 'ladok-courseinstancestartdate' DESC 'The date (week) the course starts in.' EQUALITY generalizedtimematch ORDERING generalizedtimeorderingmatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 ) attributetype ( 1.2.752.43.8.2.10 NAME 'ladok-courseinstanceenddate' DESC 'The date (week) the course ends by.' EQUALITY generalizedtimematch ORDERING generalizedtimeorderingmatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 ) attributetype ( 1.2.752.43.8.2.11 NAME 'ladok-courseinstancetype' DESC 'Kurstyp (ETYPBEN)' attributetype ( 1.2.752.43.8.2.12 NAME 'ladok-roletype' attributetype ( 1.2.752.43.8.2.13 NAME 'ladok-grouptype' attributetype ( 1.2.752.43.8.2.14 NAME 'ladok-persontype' attributetype ( 1.2.752.43.8.2.15 NAME 'ladok-orgidentifier' DESC 'The department identifier from LADOK' attributetype ( 1.2.752.43.8.2.16 NAME 'ladok-orgdn' DESC 'The organizational reference (DN) of an object' EQUALITY distinguishednamematch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) 5

attributetype ( 1.2.752.43.8.2.17 NAME 'ladok-orgunitdn' DESC 'The organizationalunit reference (DN) of an object' EQUALITY distinguishednamematch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 1.2.752.43.8.2.18 NAME 'ladok-primaryorgunitdn' DESC 'The primary organizationalunit reference (DN) of an object' EQUALITY distinguishednamematch SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 ) attributetype ( 1.2.752.43.8.2.19 NAME 'ladok-idendifierurn' ## Objektklasser objectclass ( 1.2.752.43.8.1.1 NAME 'ladok-structuralobject' DESC 'The base class of all LADOK structural objects' SUP top STRUCTURAL MUST ( cn ) ) objectclass ( 1.2.752.43.8.1.2 NAME 'ladok-object' DESC 'The base class of all LADOK auxiliary objects' MAY ( description ) MUST ( ladok-idendifierurn ) ) objectclass ( 1.2.752.43.8.1.3 NAME 'ladok-course' DESC 'A course (KURS)' SUP ladok-object MUST ( ladok-credits $ ladok-ectscredits ) MAY ( ladok-orgdn $ ladok-orgunitdn $ ladok-primaryorgunitdn ) ) objectclass ( 1.2.752.43.8.1.4 NAME 'ladok-test' DESC 'A test (PROV2)' SUP ladok-object MUST ( ladok-credits $ ladok-ectscredits ) ) objectclass ( 1.2.752.43.8.1.5 NAME 'ladok-courseinstance' DESC 'A course-instance (KTILL2)' SUP ladok-object MUST ( ladok-semester ) ) objectclass ( 1.2.752.43.8.1.6 NAME 'ladok-courseinstanceproperties' DESC 'Extra data about a course-instance.' SUP ladok-object MAY ( ladok-courseinstancestartdate $ ladok-courseinstanceenddate $ ladok-courseinstancepace $ ladok-courseinstancetype $ ladok-courseinstancetime $ ladok-courseinstanceform ) ) 6

Exempel objectclass ( 1.2.752.43.8.1.7 NAME 'ladok-relatedobject' MUST ( ladok-associatedobjecturn ) ) objectclass ( 1.2.752.43.8.1.8 NAME 'ladok-person' SUP 'ladok-relatedobject' MUST ( ladok-persontype ) ) objectclass ( 1.2.752.43.8.1.9 NAME 'ladok-group' SUP 'ladok-relatedobject' MUST ( ladok-grouptype ) ) objectclass ( 1.2.752.43.8.1.10 NAME 'ladok-role' SUP 'ladok-relatedobject' MUST ( ladok-roletype ) ) objectclass ( 1.2.752.43.8.1.11 NAME 'ladok-locality' MAY ( l $ st $ street ) ) objectclass ( 1.2.752.43.8.1.12 NAME 'ladok-organization' MUST ( ladok-orgidentifier ) ) Kursen AI1020: 'Introduktionskurs i Astronomi' vid Stockholms universitet. Observera att värdet av dn, ladok-orgdn och ladok-orgdn är beroende av hur katalogen är strukturerad och inte är specificerat av schemat. Exemplet utelämnar alla operationella attribut och använder den experimentella objektklassen namedobject [NamedObject] som strukturell objektklass istället för ladok- StructuralObject. I exemplet används en namngivning av entryt som inte är relaterat till ladokidentiferurn för att illustrera att namngivnigen är helt oberoende av den globalt unika identifieringen av objektet som ges av objektets URN. dn: cn=grundkurs,ou=astronomi,ou=kurser,dc=su,dc=se cn: Grundkurs ladok-identifierurn: urn:ladok:info:us:c-ai1020 ladok-credits: 50 ladok-ectscredits: 75 description: Introduktionskurs i astronomi description;lang-en: Introductory course in Astronomy ladok-orgunitdn: ou=astronomi,o=stockholms universitet,c=se ladok-orgdn: o=stockholms universitet,c=se objectclass: ladok-course objectclass: ladok-object objectclass: namedobject objectclass: top Att göra 1. Fler exempel. 7

Användning av schemat Det beskrivna schemat kan användas på många sätt. Detta avsnitt specificerar vissa sökningar som en klient kan förvänta sig fungera och vara så hastighets-optimerade som möjligt. Referenser [NamedObject] Named Object LDAP ObjectClass.???. [codex-directory-bcp] CodeX: Rekommendationer för drift och strukturering av katalogsystem. 2003. Leif Johansson. [RFC2141] URN Syntax. May 1997. R. Moats. [RFC2234] Augmented BNF for Syntax Specifications: ABNF. November 1997. D. Crocker and P. Overell. [RFC2252] Lightweight Directory Access Protocol (v3): Attribute Syntax Definitions. December 1997. M. Wahl. A. Coulbeck. T. Howes. S. Kille. 8