Tämä
dokumentti liitteineen sijoitetaan pilottikorkeakoulun omalle www-palvelimelle,
josta CSC siirtää sen liitteineen 31.3.2008 CSC:n palvelimelle osoitteeseen http://www.csc.fi/hallinto/haka/hankkeita/projektit-ja-pilotit
Lähetä dokumentin URL mailina osoitteeseen arto.tuomi@csc.fi viimeistään
8.1.2008. Dokumentin iteroiminen samassa osoitteessa jo etukäteen on sallittua
ja hyödyllistä.
|
Versio |
Päiväys |
Editoija |
Keskeiset muutokset |
|
0.1 |
7.12.2007 |
JS |
Dokumentin luonti |
|
0.2 |
28.12.2007 |
JS |
Lisäyksiä |
|
0.3 |
2.1.2008 |
JS |
Lisäyksiä ja tarkennuksia |
|
0.4 |
25.4.2008 |
JS |
Lisäyksiä ja
tarkennuksia |
Pilotin tavoiteena oli toteuttaa
ohjelmistoratkaisu joka mahdollistaa:
1.
uuden LDAP rajapintaan syntyneen
henkilön (eduPerson) automaattisen viemisen Voyagerin asiakkaaksi (Patron) ja
2.
uuden Voyageriin syntyneen asiakkaan
(Patron) automaattisen viemisen LDAP:n henkilöriviksi (eduPerson).
Tavoitteena oli myös toteuttaa
ohjelmistoratkaisu, joka mahdollistaa jo olemassaolevien henkilöiden
yhteystietojen päivittämisen LDAP:n ja Voyagerin välillä.
Tavoitteena oli toteuttaa yhteiselle
palvelimelle yhteinen ohjelma, joka käyttää kaikille korkeakouluille yhteisiä
rajapintoja (LDAP ja Voyager).
Järjestelmän rakentamisen
esivaatimukset, ts. mitä samankaltaista järjestelmää havittelevan korkeakoulun
kannattaa/tulee tehdä päästäkseen "lähtöviivalle" ja miksi?
Pilottia varten
Savonia-ammattikorkeakoulun LDAP:iin lisättiin seuraavat attribuutit:
svnSwVoyPatron, svnSwVoyPatronUp, svnSwVoyPatronID ja svnSwVoyPatronStatus.
Attribuuttien nimeämisessä käytettiin seuraavaa tapaa: savoniaSoftwareVoyagerPatron.
Pilotin vaatimat ohjelmat tehtiin
Perl-scriptinä Armas-palvelimelle. PatronUpLoad-ohjelma muodostaa
LDAP-rajapinnasta sif-tiedostomuotoisen sisäänlukutiedoston Voyageria varten. EduPerson
saa korkeakoulun jäsenyyden myötä oikeuden kirjastopalveluihin, jolloin hänelle
viedään svnSwVoyPatron-attribuuttiin arvo ”Yes” (=henkilö tulee viedä kirjaston
asiakkaaksi). PatronUpLoad-ohjelma tarkastelee svnSwVoyPatron-attribuutin
arvoa. Mikäli arvo on ”Yes”, eduPerson viedään Voyager-kantaan. Kun eduPerson
on otettu Voyager-viennin kohteeksi, asetetaan attribuutille svnSwVoyPatronUp
arvo ”Up”, ettei saman rivin vientiä yritetä turhaan uudelleen.
Uusien eduPersoneiden lisäksi
PatronUpLoad poimii myös ne eduPersonit, joiden yhteystiedot ovat muuttuneet.
PatronDownLoad-ohjelma lukee
Voyager-rajapinnasta tuotetun sif-tiedostomuotoisen tiedoston ja purkaa sen
LDAP:n käyttämään muotoon. PatronDownLoad sisältää sekä uudet Patronit että ne
Patronit, joiden yhteystiedot ovat muuttuneet.
Kohdistaminen
eduPerson- ja Patron rivillä tapahtuu ”sotu”:n tai PatronID:n avulla avulla.
Sif-tiedoston
purkaminen:
my
$base_template="
a10
a10 A25 A10 a1 A10
a10 A25 A10 a1 A10
a10 A25 A10 a1 A10
A10 A10 A10 A10 A10
A10 A30 A11
A3 A3 A3 A3 A3 A3 A3 A3 A3 A3
a1 A30 A20 A20 A10
a10 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a5 a1 a*";
open (SIF, "sif.pxtr.20071219.1023");
while ($line =
<SIF>) {
my ($pid, $bc1id, $bc1,
$pg1, $bs1, $bm1,
$bc2id, $bc2, $pg2, $bs2, $bm2,
$bc3id, $bc3, $pg3, $bs3, $bm3,
$reg, $exp, $purge, $vdate,
$vupdated,
$cloc, $iid, $ssn,
$st1, $st2, $st3, $st4, $st5,
$st6, $st7, $st8, $st9, $st10,
$nametype, $surname, $firstname,
$middlename, $title,
$histc, $claimsr, $shelved, $lostitems,
$latemedia,
$histb, $cancelb, $unclaimb,
$histcs, $histd, $histsl,
$unclaimsl, $acount, $loput)= unpack($base_template, $line);
Purettujen tietojen kirjoittaminen LDAP:iin
(uusi eduPerson):
if (!$entry){
$dn = "cn=". $surname.
", ou=voypeople, ou=Test1, dc=ky, dc=local";
$entry = new Net::LDAP::Entry();
$entry->dn($dn);
$entry->add("cn", $cn);
$entry->add("funetEduPersonIdentityCode",
$iid);
$entry->add("svnVoyPatronID",
$pid);
$entry->add("sn", $surname);
$entry->add("givenname",
$firstname);
.
.
$entry->add("objectclass", [
"top", "inetOrgPerson" ]);
$conn->add($entry);
Pilotin perusidea toteutui
arvioidussa työmäärässä.
|
Asia |
Työmäärä |
Arvio työmäärästä, kun apuna on |
|
Tarvittavien yhteyksien luominen
Armas-palvelimelle |
1 htvrk |
1 htvrk. |
|
Perl-scriptien tekeminen |
40 htvrk |
5 htvrk |
|
Pilotissa tarvittavien attribuuttien
luominen LDAP:iin |
1 htvrk |
1 htvrk. |
Patron Upload-osassa skandimerkkien
muunnoksissa sai olla tarkkana, sillä väärä merkistö vaikutti kenttien
pituuksiin. Myös LDAP:n homePostalAddress-attribuutin arvon jakaminen Voyagerin
vaatimiin osiin oli melkoista laskemista.
Pilotille
asetetut tavoitteet saavutettiin. LDAP:n ja Voyagerin välinen tietojen
päivittäminen onnistui tavoitteiden mukaisesti.
Käytettävissä oli Michael Doranin
Texasin yliopistolle tekemä Patron Load-esimerkki sekä LDAP-kirjallisuutta,
joista saatiin pohjaa toteutukselle. Esimerkeistä huolimatta LDAP yhteyden
saaminen ja kirjoituksen onnistuminen vei aikaa.
Patron-tietojen synkronointia
LDAP:in ja MIIS:n välillä ei tässä vaiheessa testattu. Savonia-ammattikorkeakoulu
aikoo kesän aikana korvata MIIS:n ILM:lla (Identity Lifecycle Manager), joten synkronoinnin
testaus oli järkevää jättää samaan yhteyteen muiden ILM:n testausten kanssa.
Savonia-ammattikorkeakoulu ehdottaa
otettavaksi käyttöön uusia kansallisia attribuutteja eduPerson ja Patron –tietojen viemiseksi automaattisesti LDAP:n ja Voyagerin
välillä. Attribuutit olisivat: funetSwVoyPatron, funetSwVoyPatronUp,
funetSwVoyPatronID ja funetSwVoyPatronStatus.
Savonia-ammattikorkeakoulu
viimeistelee parametritiedostot, jolloin ohjelmat voidaan antaa myös toisten
korkeakoulujen käytettäviksi.
The aim of
this pilot was to execute a program, which
1. transfers a new person (eduPerson)
from LDAP into Voyager (Patron) automatically
2. transfers a new person (Patron) from
Voyager into LDAP (eduPerson) automatically
Also we had
aim to execute a program, which updates existing data between LDAP and Voyager.
We had aim
to execute a cooperative program, which uses cooperative interfaces and it is
situated in cooperative server.