Faculteit Ingenieurswetenschappen Vakgroep Electronica en Informatiesystemen Voorzitter: Prof. Dr. Ir. J. van Campenhout
Ontwerp van een dossieropvolgingssysteem door
Lic. Didier DURINCK Lic. Erika PRAET
Promotor: Prof. Dr. Ir. K. DE BOSSCHERE Scriptiebegeleider: Dr. Ir. M. RONSSE
Scriptie ingediend tot het behalen van de academische graad van Master in de Toegepaste Informatica
Academiejaar 2006-2007
'H DXWHXUV JHHIWJHYHQ GH WRHODWLQJ GH]H VFULSWLH YRRU FRQVXOWDWLH EHVFKLNEDDU WH VWHOOHQ
HQGHOHQYDQGHVFULSWLHWHNRSLsUHQYRRUSHUVRRQOLMNJHEUXLN
(ON DQGHU JHEUXLN YDOW RQGHU GH EHSHUNLQJHQ YDQ KHW DXWHXUVUHFKW LQ KHW ELM]RQGHU PHW
EHWUHNNLQJ WRW GH YHUSOLFKWLQJ GH EURQ XLWGUXNNHOLMN WH YHUPHOGHQ ELM KHW DDQKDOHQ YDQ
UHVXOWDWHQXLWGH]HVFULSWLH
MXQL
De promotors,
Prof Dr. Ir. K. De.Bosschere
Dr. Ir. M. Ronsse
De auteurs,
Lic. Erika Praet
Lic. Didier Durinck
'DQNZRRUG Hierbij zouden we graag onze promotor, Prof. Dr. Ir. K. De Bosschere, willen bedanken voor zijn goede raad en hulp bij het ontwerp van de applicatie. Een speciaal bedankje gaat daarbij uit naar onze scriptiebegeleider, Dr. Ir. M. Ronsse, zonder wiens advies en steun deze scriptie heel wat moeizamer vooruit zou zijn gegaan. Verder zou ik alle medestudenten willen bedanken voor het aangename jaar, daarbij denk ik vooral aan Didier, Liesbet en Heidi, met wie ik tijdens het scriptiewerk leuke tijden beleefd heb. In het bijzonder zou ik mijn dank willen betuigen aan mijn moeder en zus, die me altijd gesteund hebben in alles wat ik deed, en aan Thomas, om zijn niet-aflatend optimisme. (Erika Praet) Ik wens vooral mijn ouders en grootouders te bedanken voor de unieke kans die zij mij hebben gegeven om deze aanvullende studie te kunnen volgen. Ik ben hen dan ook dankbaar voor de steun en het vertrouwen die ik van hen gekregen heb.
(Didier Durinck)
2YHU]LFKW Ontwerp van een dossieropvolgingssysteem door Lic. Didier DURINCK Lic. Erika PRAET Scriptie ingediend tot het behalen van de academische graad van Master in de Toegepaste Informatica Academiejaar 2006-2007 Promotor: Prof. Dr. Ir. K. DE.BOSSCHERE Scriptiebegeleider: Dr. Ir. M. RONSSE Faculteit Ingenieurswetenschappen Universiteit Gent Vakgroep Elektronica en Informatiesystemen Voorzitter: Prof. Dr. Ir. J. Van Campenhout Samenvatting Deze scriptie had als doel een dossieropvolgingssysteem te ontwerpen voor de Universiteit Gent, een systeem dat de e-mails bijhoudt die tussen de personeelsleden en studenten van de onderwijsinstelling uitgewisseld worden. De bedoeling van dit systeem is het werk van de UGent personeelsleden, in het bijzonder van de opleidingscommissievoorzitter en de leden van de FSA, te vergemakkelijken. De ontwikkelde applicatie bestaat uit drie onderdelen. Het eerste deel verwerkt en slaat de e-mails op, het tweede laat toe niet-UGent e-mailadressen aan UGent e-mailadressen te linken en met behulp van het derde kan een gebruiker verzonden e-mails opvragen. Zo kunnen personeelsleden dus verifiëren wie een student(e) gecontacteerd heeft en wat er precies werd afgesproken. Trefwoorden: dossieropvolging, webinterface, JSP
,QKRXGVRSJDYH
,1/(,',1*
1.1
Probleemstelling
2
1.2
Doelstelling
3
1.3
Bestaande vergelijkbare systemen
4
+8/30,''(/(1
2.1
Bash
5
2.2
CSS
5
2.3
Ext3
6
2.4
LDAP
6
2.5
JSP
7
2.6
JSP vs. PHP
8
2.7
Procmail
8
2.8
SQL
9
3.1
$33/,&$7,( Verwerken gegevens van inkomende e-mails
3.2
-DYD±µ9HUZHUNMDYD¶ -63±µOLQNPDLOMVS¶ -63±µOLQNMVS¶
-63±µOLQNMVS¶
Opzoeken gegevens
%DVK±µYHUZHUNVK¶
Linken van één of meerdere onbekende e-mailadressen
3.3
3URFPDLO±µSURFPDLOUF¶
-63±µLQGH[MVS¶ /D\RXW
922567(//(1
11 11 13 13 16 16 16 18 19 19 21
4.1
Authenticatie en functionaliteit
24
4.2
BLOB vs. bestand
27
4.3
Archivering
29
%(6/8,7
/,7(5$7885/,-67
,QOHLGLQJ Deze scriptie bestaat uit zes delen:
de inleiding, waarin eerst een overzicht wordt gegeven van de scriptie, waarna de probleemstelling wordt aangebracht, gevolgd door de doelstelling en een vermelding van de systemen waarover andere onderwijsinstellingen beschikken,
een overzicht van de gebruikte hulpmiddelen, waarin kort de achtergrond en betekenis wordt geschetst van de programma’s en programmeertalen die bij de ontwikkeling van de applicatie werden aangewend,
een overzicht van de ontwikkelde applicatie. Deze bestaat uit drie onderdelen: het eerste deel zorgt voor de verwerking en opslag van de e-mails, het tweede geeft de gebruiker de mogelijkheid om niet-UGent e-mailadressen aan UGent emailadressen te linken, en het derde en laatste laat toe om e-mails uit de databank en het bestandssysteem op te zoeken en te raadplegen,
de voorstellen, waarin een aantal toekomstplannen en optimalisaties voorgesteld worden, waaronder authenticatie, opslagformaten en archivering,
het besluit, waarin een korte samenvatting gegeven wordt van het geleverde werk, gevolgd door de voor- en nadelen van het systeem en de gebruikte werkwijze,
de literatuurlijst, waarin de lezer de bibliografische gegevens vindt van de bronnen die voor de scriptie geraadpleegd werden.
1
3UREOHHPVWHOOLQJ Een student(e) komt tijdens zijn of haar studies aan een universiteit met een groot aantal werknemers van de onderwijsinstelling in kwestie in contact, zoals professoren, assistenten, de studentenadministratie, opleidingscommissie, ... Die werknemers zijn echter vaak niet op de hoogte van de andere contacten of afspraken die de student(e) er op na houdt of hield, wat bij problemen vaak tot onnodig tijdverlies kan leiden. Als een student een van zijn professoren mailt in verband met een vrijstelling voor het betreffende vak, en daarvoor toestemming krijgt, kan het bijvoorbeeld gebeuren dat hij of de professor vergeet de studentenadministratie hiervan op de hoogte te brengen waardoor de student later op dat examen een onvoldoende krijgt omdat hij afwezig was. Als hij dit dan achteraf bij de studentenadministratie aankaart, moet de professor opnieuw gecontacteerd worden. Die kan op dat moment echter afwezig of ziek zijn waardoor er uiteindelijk heel wat vooraf gaat aan het alsnog toekennen van die vrijstelling. Dit proces zou efficiënter in zijn werk kunnen gaan. Een gelijkaardig probleem doet zich voor als een student contact opneemt met de opvolger van de voorzitter van een opleidingscommissie na eerder met de vroegere voorzitter gemaild te hebben. De opvolger is minder op de hoogte van de afspraken die reeds gemaakt werden en is genoodzaakt zijn voorganger om uitleg te vragen. Het zou dus voor de werknemers van de universiteit makkelijker zijn als ze zelf zouden kunnen verifiëren wie de student(e) gecontacteerd heeft en wat er precies werd afgesproken. En aangezien de communicatie tussen een student(e) en een werknemer van een onderwijsinstelling vaak via e-mail gebeurt, bestaat een mogelijke oplossing erin de gegevens van de e-mails die uitgewisseld worden op te slaan in een databank. Die e-mails zouden dan nadien door het personeel en de studenten van de universiteit kunnen opgevraagd worden.
2
'RHOVWHOOLQJ
Deze scriptie heeft als doel een ‘dossieropvolgingssysteem’ te creëren en verder uit te werken. Dit systeem zou ervoor moeten zorgen dat studentendossiers automatisch bijgehouden worden, met de mogelijkheid om deze bij te werken. Het is de bedoeling dat een vast e-mailadres (zoals bijvoorbeeld
[email protected]) telkens toegevoegd wordt aan de bestemmelingen in het to-, cc- of bcc-veld van de uitgewisselde emails, zodat de e-mails op een aparte mail server terecht komen, in dit geval de mail server van de gebruiker ‘dossier’. Zodra ze daar aankomen, zullen ze één voor één geanalyseerd, verwerkt en uiteindelijk opgeslagen worden. Bij het verwerken moeten er bepaalde tekens uit de e-mailadressen gehaald worden en moet onderzocht worden of de e-mailadressen al dan niet in LDAP1 voorkomen. Omdat het personeel of de studenten soms andere adressen gebruiken dan het door UGent toegewezen e-mailadres, moet ook de mogelijkheid voorzien worden om die ‘aliassen’ in een databank op te slaan, gelinkt aan het overeenkomstige UGent-adres. Daarom moet de zender van de e-mail automatisch op de hoogte gebracht worden als er nog onbekende emailadressen in zijn e-mail aangetroffen worden. Hij of zij moet daarbij vriendelijk verzocht worden om een link met het juiste UGent e-mailadres in te geven. Leden van de onderwijsinstelling kunnen de gegevens in de e-mails daarna via een webinterface opvragen, sorteren, raadplegen en eventueel aanpassen, afhankelijk van de functie die zij binnen de onderwijsinstelling in kwestie bekleden. Zo heeft een student(e) niet dezelfde rechten als een professor, en een professor niet dezelfde rechten als de decaan.
1
Lightweight Directory Access Protocol, door de Universiteit Gent gebruikt om de gegevens van hun personeelsleden of studenten te raadplegen op een LDAP server. Voor meer informatie, zie 2.4.
3
%HVWDDQGHYHUJHOLMNEDUHV\VWHPHQ Om te weten te komen of er reeds vergelijkbare systemen in andere onderwijsinstellingen gebruikt worden, werden een aantal universiteiten gecontacteerd. Op basis van de verkregen informatie kunnen de universiteiten in drie groepen opgedeeld worden: -
onderwijsinstellingen die niets bijhouden over de mails die tussen hun personeel en studenten worden uitgewisseld.
-
onderwijsinstellingen die er slechts enkele gegevens over bijhouden. Zo kan de K.U.Leuven tot januari 2005 nagaan wie wanneer naar wie gemaild heeft, waarbij de grootte en het onderwerp van de e-mail kunnen opgevraagd worden.
-
onderwijsinstellingen die de uitgewisselde mails bijhouden met behulp van een al dan niet geautomatiseerd systeem. De K.U.Brussel beschikt bijvoorbeeld niet over een geautomatiseerd systeem, de mails worden in geprinte versie aan het dossier van de student in kwestie toegevoegd.
Universiteiten die nieuwe systemen ontwikkelen voor hun studenten, houden echter wel rekening met de mogelijkheid dat in de toekomst een dossieropvolgingssysteem zal toegevoegd worden. Dit is het geval bij de Universiteit van Antwerpen, waar momenteel een nieuw studentenadministratiesysteem uitgewerkt wordt.
4
+XOSPLGGHOHQ
Bij het ontwikkelen van de applicatie werd gebruik gemaakt van een aantal hulpmiddelen. Waarvoor deze middelen precies staan wordt hieronder verduidelijkt, telkens voorafgegaan door een korte geschiedenis.
%DVK Korte geschiedenis
Bash [Fre91, Ram03] werd in 1987 door Brian Fox ontwikkeld. Het programma is het resultaat van een combinatie van de Bourne shell (sh), C shell (csh) en de Korn shell (ksh). Bash is vrij verkrijgbaar en staat op de meeste Linux- en Mac-systemen als standaard-shell ingesteld. Wat is bash Bash of de Bourne Again Shell is een programma dat als interface dient tussen de gebruiker en het besturingssysteem. Het voert shell scripts uit, tekstbestanden met extensie .sh die een of meerdere commando’s bevatten. Elke keer zo’n script wordt opgeroepen, worden de commando’s die erin bevat zijn regel per regel door de shell geïnterpreteerd en aan het besturingssysteem doorgegeven. Over het algemeen geven gebruikers de voorkeur aan dit programma omdat het zoveel functies van de verschillende shells combineert, dus over meer functionaliteit beschikt, en omdat het compatibel is met de Bourne shell. Het programma zelf bevindt zich in /bin/bash. Vergelijkbare programma’s in Windows zijn command.com of cmd.exe.
&66
Korte geschiedenis Al sinds het vroege begin van het World Wide Web beschikte elke soort browser over een interne stylesheet die ervoor zorgde dat elk document op de juiste manier kon geïnterpreteerd worden. In 1994 werd CSS [Wik07a] voorgesteld door Håkon Wium Lie. Wat is CSS CSS of Cascading Style Sheets worden gebruikt bij de opmaak van webpagina’s. De informatie over de opmaak wordt aan de HTML-code toegevoegd. Deze kan zowel in het document zelf als in een extern document verwerkt worden.
5
De stylesheet zorgt ervoor dat de inhoud en de opmaak van de webpagina duidelijk van elkaar gescheiden worden om zo een consistent en gestructureerd geheel te vormen over meerdere webpagina’s heen. Het is dus handiger om van een stylesheet gebruik te maken, als je dezelfde opmaak over verschillende pagina’s wil behouden.
([W
Korte geschiedenis Het ext-bestandssysteem werd ontworpen door Rémy Card in 1992. De ontwikkeling ervan gebeurde om het onpopulaire Minix-bestandssysteem te vervangen. Vorig jaar werd de opvolger van ext3, namelijk ext4, op de markt gebracht. Wat is een schijfbestandssysteem Ext3 of Third Extended File System is een schijfbestandsysteem [Web07c], een bestandssysteem2 dat wordt gebruikt voor het opslaan van bestanden op een opslagmedium. Het staat standaard ingesteld op een Linux-besturingssysteem.
/'$3 Korte geschiedenis LDAP [Web07d, Wik07c, Win02] werd omstreeks 1993 ontwikkeld. Oorspronkelijk zou het protocol LDBP of LightWeight Directory Browsing Protocol genoemd worden. Het was bedoeld als een simpeler alternatief voor het standaard X.500 Directory Access Protocol (DAP), dat eind de jaren 80 ontstond. Omdat LDAP, in tegenstelling tot zijn ingewikkeldere tegenhanger, over TCP/IP werkte, werd het al snel de populairste van de twee. Tegenwoordig wordt het vooral gebruikt voor telefoonboeken en in systeem- en netwerkbeheer. Wat is LDAP LDAP of Lightweight Directory Access Protocol is een netwerkprotocol waarmee je gegevens in LDAP directories kan opvragen en/of veranderen. Een directory is een verzameling van objecten, waarbij elk object uit een aantal attributen bestaat. Die linken een naam aan een of meerdere waarden bv. ‘mail:
[email protected]’. Attributen en hun kenmerken worden vooraf vastgelegd in een schema.
2
Een door het besturingssysteem verzorgde indeling van een opslagmedium.
6
Het protocol wordt door de Universiteit Gent gebruikt om de gegevens van hun personeelsleden of studenten te raadplegen op een LDAP server (ldaps.UGent.be) [Uni07a]. Bijgevolg wordt het protocol in deze scriptie aangewend om na te gaan of een bepaald UGent e-mailadres al dan niet bestaat en om de gegevens op te halen van personen die aan een bepaald zoekcriterium voldoen. Ook bij de authenticatie die in de webinterface zal ingebouwd moeten worden, zal de databank van UGent van pas komen, aangezien daarin ook de wachtwoorden van het personeel en de studenten zitten en op basis daarvan de gebruiker geïdentificeerd kan worden [Uni07d].
-63 Korte geschiedenis Java ontstond begin de jaren 90 onder de werknaam Oak. Oorspronkelijk was het enkel de bedoeling om Java te introduceren in de technische softwarebranche maar toen het internet meer op het voorplan kwam, kwam men bij Sun op het idee om deze Java-techniek ook in een webgebaseerde-omgeving te verwerken. De Java applets waren hier het uiteindelijke resultaat van. De daaropvolgende generatie van Java gaf de mogelijkheid om zaken aan de Server-zijde uit te voeren in de vorm van Java Servlets, Java Enterprise Beans en Java Server Pages [Wik07b]. Deze laatste werd oorspronkelijk ontwikkeld als alternatief voor ASP (Active Server Pages) van Microsoft. Wat is JSP JSP of Java Server Pages is een onderdeel van de J2EE-standaard (Java 2 Enterprise Edition) afkomstig van Sun Microsystems. Het wordt gebruikt om dynamisch HTML, XML e.d. te verwerken en dit op basis van statische en dynamische elementen. Dit gebeurt door Java-code en bepaalde voorgedefinieerde acties in de statische inhoud op te nemen. Bij JSP worden aan de statische inhoud XML-tags toegevoegd. Deze worden JSP-actions genoemd en kunnen worden gebundeld in een “JSP tag library”, een verzameling van acties die gebruikt kunnen worden om een webserver van extra functionaliteit te voorzien. De belangrijkste kenmerken van JSP zijn: -
JSP ondersteunt zowel script- als element-gebaseerde dynamische inhoud;
-
JSP pagina’s zijn gecompileerd voor efficiënte server verwerking;
-
JSP kan gebruikt worden in combinatie met servlets3;
3
Een servlet is een in Java geschreven programma dat binnen een J2EE-webcontainer op een server draait en die gebruik maakt van een aantal diensten die door de webcontainer worden aangeboden.
7
Daarbuiten kent JSP nog een aantal voordelen [Ber03]: -
Het is een specificatie, geen product. Dit betekent dat leveranciers met elkaar kunnen concurreren, wat dan weer resulteert in meer mogelijkheden en een grotere kwaliteit;
-
JSP is een onderdeel binnen J2EE, een compleet platform voor ondernemings toepassingen. Dit betekent dan ook dat JSP een aandeel inneemt in zowel simpele toepassingen tot meer ingewikkeldere.
-63YV3+3 Als we kijken naar wat er allemaal qua vergelijkingen rond JSP en PHP geschreven is geweest [Bla07], kunnen we stellen dat de gegeven opmerkingen zeer uiteenlopend zijn. Afhankelijk van de voorgeschiedenis die de gebruiker heeft, zal hij meer de voorkeur geven aan het ene of aan het andere. Een belangrijk item dat vaak aan bod komt, is het feit dat PHP [Php07, Wik07d] open source is waardoor bedrijven er kritischer tegenover staan en geneigd zijn er minder vertrouwen in te tonen. Ook de reeds bestaande infrastructuur is van groot belang. De meeste bedrijven bouwen liever verder op de codes en middelen waar ze al over beschikken, zonder al te veel investeringen te moeten verrichten. In de meeste gevallen raadt men voor kleine projecten PHP aan, terwijl bij grotere projecten de voorkeur dan weer naar JSP uitgaat. Wij hebben gebruik gemaakt van JavaServer Pages omdat we vertrokken zijn van een JSP bestand dat ons werd aangereikt door de begeleider van ons eindwerk. De specifieke reden waarom JSP werd opgegeven is omdat Plato volledig onder JSP werkt waardoor een programma in jsp makkelijker binnen het geheel te implementeren zou zijn. Een ander argument is dat JavaServer Pages minder problemen heeft met SQL (Oracle) terwijl PHP dit probleem wel heeft. En als laatste kunnen we ook nog melden dat Java reeds tot onze bescheiden kennis behoort.
3URFPDLO
Korte geschiedenis Procmail werd in 1990 uitgebracht door Stephen R. van den Berg [Pro07]. Het programma werkt enkel op Unix servers en systemen [Web07e] en wordt tegenwoordig voornamelijk gebruikt om spam uit de e-mails die op de mail server toekomen te filteren en zodoende
tegen te houden.
8
Wat is procmail Procmail is een Mail Delivery Agent (MDA), een programma dat inkomende e-mails verwerkt volgens de regels die de gebruiker in het .procmailrc bestand gespecificeerd heeft [Wik07e]. Zo kan de gebruiker allerlei acties op de e-mail laten uitvoeren op basis van de gegevens in de e-mail (zender, bestemmeling, onderwerp, grootte e-mail, soort bijlage, …). E-mails afkomstig van bepaalde personen kunnen bijvoorbeeld gedeletet of in verschillende folders ondergebracht worden. Over het algemeen wordt Procmail opgeroepen door de Mail Transfer Agent (MTA) die de emails ontvangt. In dit geval is dit Sendmail, dat doorgaans als standaard MTA staat ingesteld op Unix systemen en heel populair is [Wik07f], wat direct ook de populariteit van Procmail zelf verklaart. Want hoewel MTA’s zelf ook kunnen optreden als MDA, beschikken ze niet over dezelfde functionaliteit.
64/ Korte geschiedenis De originele versie van SQL [W3s07, Wik07g], SEQUEL (Structured English Query Language), werd in 1974 ontwikkeld door een onderzoekscentrum van IBM. SQL was oorspronkelijk bedoeld als hulpmiddel voor businessmanagers, om bedrijfsgegevens te analyseren maar bleek van de gebruiker een te complete kennis van de databank te verwachten. Tegenwoordig wordt SQL nog enkel via applicaties gebruikt om een databank te raadplegen. Wat is SQL SQL of Structured Query Language is door ANSI/ISO erkend als standaardtaal voor een relationeel database management systeem (DBMS). Het is gebaseerd op de relationele algebra en wordt gebruikt om gegevens uit een relationele databank op te vragen en/of aan te passen. Als een gebruiker een bepaalde actie op het DBMS wil uitvoeren, moet die gebruiker een of meerdere queries (opdrachten) formuleren in SQL en deze door middel van een applicatie naar het systeem versturen. Vervolgens voert de DBMS de queries uit, en stuurt eventueel nog een aantal gegevens terug. De simpelste en vaakst voorkomende query is ‘SELECT veld FROM tabel’.
9
$SSOLFDWLH In dit hoofdstuk wordt de werking van de ontwikkelde applicatie uitgelegd, waarbij elk onderdeel ervan op zijn beurt besproken wordt. Het eerste onderdeel dat aan bod komt, is het programma dat uitgevoerd wordt als er een email op ‘mail.elis.ugent.be’ toekomt. Het haalt bepaalde gegevens of meta-info uit de e-mail, verwerkt ze en slaat ze op in een databank terwijl de e-mail en eventuele bijlagen op een bestandssysteem terechtkomen. Als er e-mailadressen in de header worden aangetroffen die noch in LDAP, noch in de tabel met ‘aliassen’ (niet-UGent e-mailadressen) voorkomen, wordt er een e-mail met een hyperlink naar het tweede deel van de applicatie, naar de zender van de originele e-mail verstuurd. Het tweede onderdeel is een webtoepassing die de mogelijkheid aan de zender van de originele e-mail geeft om een link te leggen tussen een niet-UGent e-mailadres en een UGent e-mailadres via de hierboven reeds vermelde hyperlink, waarna het paar in de tabel met ‘aliassen’ wordt opgeslagen en elk voorkomen van de ‘alias’ in de databank met metainfo wordt vervangen door het overeenkomstige UGent-adres. Het derde onderdeel is het belangrijkste deel. Het is een website die door een gebruiker kan aangewend worden om meta-info uit de databank en e-mails en eventuele bijlagen uit het bestandssysteem op te vragen, door een naam in te geven waarop gezocht moet worden in de e-mailadressen in de headers. Daarbij kunnen de meta-info en e-mails afgeprint worden, kan de volgorde waarin de meta-info wordt weergegeven, aangepast worden en kan er verder gefilterd worden op of gemaild worden naar het gekozen e-mailadres.
10
9HUZHUNHQJHJHYHQVYDQGHLQNRPHQGHHPDLOV
)LJXXUVFKHPDZHUNLQJHHUVWHSURJUDPPD
Als een e-mail toekomt op de mail server kijkt Sendmail automatisch in de home-directory van de ontvanger of er een .procmailrc bestand aanwezig is. Zo ja, worden de instructies in dat bestand op de e-mail uitgevoerd, zo nee, wordt de e-mail op de mail server gelaten en aan de Mail User Agent (MUA) van de ontvanger gegeven als deze op de server inlogt. In
dit
geval
worden
e-mails
die
op
‘mail.elis.ugent.be’
aankomen
en
voor
‘
[email protected]’ bestemd zijn door Sendmail doorgestuurd naar de mail server ‘SD90MAC.elis.ugent.be’ (zie figuur 1). Daar kijkt Sendmail in de home-directory van ‘dossier’ of er een .procmailrc bestand aanwezig is, waarna het bestand hieronder wordt uitgevoerd. 3.1.1
Procmail - ‘.procmailrc’ 9(5%26( RQ 0$,/',5 +20(PDLO /2*),/( 0$,/',5ORJ 68%-(&7 CIRUPDLO[6XEMHFWC )520 CIRUPDLOUW[7RC 72 CIRUPDLO[7RC && CIRUPDLO[&FC
11
_aPDLOYHUZHUNVK)5207268%-(&7&&
Wanneer er fouten optreden tijdens de uitvoering van een programma, is het handig als je over de mogelijkheid beschikt om een duidelijke foutmelding en bijkomende informatie te krijgen. In procmail [Van97] is deze optie voorzien, door een samenspel van ‘verbose’ en ‘logfile’. De variabele ‘verbose’ moet gelijkgesteld worden aan ‘on’ of ‘yes’ om een uitgebreid verslag te verzekeren van alle door het programma uitgevoerde acties. Dat verslag wordt opgeslagen in het bestand dat na ‘logfile’ wordt gespecificeerd. Hierin staan dus alle fout- en andere meldingen gegeven door procmail of programma’s die door procmail werden opgeroepen, met daarbij korte beschrijvingen van de verwerkte e-mails (afzender, datum en uur, onderwerp, folder waarin de e-mail werd ondergebracht en grootte in bytes). Deze beschrijvingen worden altijd gegenereerd, ook als er een fout optreedt tijdens de verwerking door het programma, tenzij een variabele ‘logabstract’ gedefinieerd en gelijkgesteld wordt aan ‘no’ (geen beschrijvingen meer) of ‘all’ (enkel een beschrijving als verwerking correct werd uitgevoerd). De e-mail komt daarna terecht in de directory die door ‘maildir’ wordt vastgelegd. Het programma maakt gebruik van formail, een filter in procmail die onder andere kan ingezet worden voor simpele bewerkingen op de header (vandaar ook ‘-x’ gevolgd door een headerveld, waardoor de inhoud van het betreffende veld wordt opgevraagd) [Van96]. Zodoende haalt formail het onderwerp, de afzender en bestemmelingen in het to- en cc-veld uit de e-mail waarna ze aan het shell script verwerk.sh worden doorgegeven. Het merendeel van die gegevens staat tussen dubbele aanhalingstekens om de variabele waartoe ze behoren, af te bakenen, aangezien er in die variabelen spaties kunnen voorkomen en er daardoor verwarring zou kunnen ontstaan over welke woorden bij welke variabele horen. Het cc-veld wordt als laatste doorgegeven omdat de mogelijkheid bestaat dat dit veld leeg is. Mocht het bijvoorbeeld leeg zijn en voor de variabele onderwerp staan, dan zou de inhoud van de variabele onderwerp door het shell script gezien worden als de inhoud van de variabele cc.
12
Omdat het programma in zijn totaliteit telkens met maar een e-mail per keer mag bezig zijn, wordt ‘:0’ (dat aanduidt dat een sorteer- of filterregel volgt) gevolgd door een tweede ‘:’. Hierdoor wordt het volledige programma ‘gelockt’ (zowel het procmail programma als alle opgeroepen programma’s zoals in dit geval bash en daarna java). Dit voorkomt dat twee emails die kort na elkaar arriveren elkaars verwerking storen aangezien de tweede e-mail in een wachtrij komt te staan totdat het programma klaar is met de eerste e-mail. 3.1.2
Bash – ‘verwerk.sh’
Het shell script ‘verwerk.sh’, dat onze begeleider ons aanreikte, staat in voor de verdere verwerking van de e-mail zelf. Eerst worden de header, body en bijlagen uit de e-mail gehaald en met behulp van ext3 voorlopig opgeslagen als ‘mail.header’, ‘mail.body’ en ‘mail.attach-…’, dit in de home-directory van de gebruiker, in dit geval ‘dossier’. Ook wordt de e-mail in zijn geheel bewaard en de grootte van de e-mail in bytes bepaald, waarna het java programma ‘Verwerk.java’ wordt opgeroepen. Aan die oproep worden de gegevens toegevoegd die eerder via het procmail programma werden doorgegeven, samen met de grootte. Nadat die gegevens door het java programma verwerkt werden, en vervolgens in de centrale databank werden opgeslagen, vervangt een ander shell script het woord ‘mail’ in de bestandsnamen ‘mail.header’, ‘mail.body’, etc. door de unieke id dat de databank bij het opslaan genereerde, zie hierna. Deze vervanging vindt plaats om het opvragen van de e-mail en eventuele bijlagen te vergemakkelijken, aangezien er in het bestandssysteem op bestandsnamen kan gezocht worden die beginnen met het id in kwestie. 3.1.3
Java – ‘Verwerk.java’
Dit programma verwerkt de doorgegeven zender, bestemmelingen, onderwerp en grootte voor de gegevens in de databank worden toegevoegd en het unieke id terug aan het reeds besproken shell script wordt gegeven. Er wordt eerst nagegaan of er in het to- en cc-veld wel e-mailadressen aanwezig zijn, door te kijken of het een ‘@’ bevat. Zo ja, wordt er aan de hand van het aantal komma’s geteld hoeveel e-mailadressen het veld bevat, zo nee, wordt een boolean op false gezet zodat het veld niet verder verwerkt wordt.
13
Daarna worden alle e-mailadressen bij elkaar gevoegd, waarna ze één voor één overlopen worden. Tekens die niet in het e-mailadres behoren te staan zoals ‘<’, ‘>’, ‘+...’ - die soms gebruikt worden, gevolgd door de mailinglist waarop de persoon ingeschreven is - worden eruit gefilterd. Hierna checkt het programma of er ‘ugent.be’ in het adres voorkomt. Als dat het geval is, wordt er voor gezorgd dat er enkel ‘ugent.be’ na het apenstaartje komt, ‘
[email protected]’
wordt
bijvoorbeeld
vervangen
door
‘
[email protected]’, anders zal het e-mailadres in de volgende stap niet door LDAP herkend worden. ‘
[email protected]’ wordt eruit gefilterd, waarna de overige UGent emailadressen in LDAP worden opgezocht, om te verifiëren of geldige UGent e-mailadressen werden opgegeven. Als de zoekopdracht geen resultaat terug geeft, of als er geen ‘ugent.be’ in het e-mailadres aanwezig is, wordt in de tabel met aliassen gekeken of het e-mailadres reeds toegevoegd werd en wordt het adres eventueel vervangen door het overeenkomstige UGent e-mailadres. Hieronder vindt u een voorbeeld van de tabel met aliassen. $/,$6 8*(17 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB GLGL#KRWPDLOFRP GLGLHUGXULQFN#XJHQWEH HULNDSUDHW#JPDLOFRPHULNDSUDHW#XJHQWEH HULNDSUDHW#VN\QHWEHHULNDSUDHW#XJHQWEH
Als er e-mailadressen in de header van de e-mail voorkomen die niet in LDAP en niet in de tabel met aliassen te vinden zijn, wordt er een e-mail naar de oorspronkelijke zender verstuurd met daarin de vraag om de onbekende e-mailadressen te linken aan UGent adressen. Het programma verantwoordelijk voor het tot stand brengen van deze link wordt in 3.2 besproken. Na deze verwerking worden de e-mailadressen weer aan de verschillende variabelen toegekend, met behulp van de eerder ingestelde tellers. Vervolgens worden ze met behulp van een sql-commando in de tabel geplaatst, tezamen met een uniek id, een letter die aanduidt of er onbekende e-mailadressen in de header van de e-mail werden aangetroffen, en de datum en tijd waarop de invoeging in de tabel gebeurde. Een voorbeeld van deze tabel vindt u op de volgende pagina.
14
)520B72B68%-(&7&&B,''$7(B2.6,=(B BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB HULNDSUDHW#JPDLOFRPNRHQGHERVVFKHUH#XJHQWEH(QNHOHGRFXPHQWHQ 1 HULNDSUDHW#JPDLOFRPULQLYHUSUDHW#XJHQWEHWHVW1 HULNDSUDHW#JPDLOFRPPLFKLHOURQVVH#XJHQWEH9UDDJLYPVFULSWLH 1 HULNDSUDHW#JPDLOFRPMHQVYDQSUDHW#XJHQWEHJH]RQGKHLGV]RUJHQ 1
Ten slotte wordt het hoogste id na de toevoeging opgevraagd (aangezien de id’s telkens met 1 vermeerderen) waarna de e-mail, header, body en attachments op de harde schijf van de gebruiker ‘dossier’ worden opgeslagen, met in de bestandsnaam het woord ‘mail’ vervangen door het id.
15
/LQNHQYDQppQRIPHHUGHUHRQEHNHQGHHPDLODGUHVVHQ
Zoals in 3.1.3 reeds kort vermeld wordt, stuurt het java programma een e-mail naar de zender als er tijdens de analyse van de e-mail e-mailadressen worden aangetroffen die noch in LDAP noch in de tabel met aliassen voorkomen. Hierin wordt de titel van de onderzochte e-mail vermeld, en wordt aan de zender ervan gevraagd een link te volgen. Een voorbeeld van zo’n e-mail vindt u hieronder.
)LJXXUHPDLOJHVWXXUGGRRUµ9HUZHUNMDYD¶
3.2.1
JSP – ‘linkmail.jsp’ (‘linkmail1.jsp’ en ‘opzoeken_frame3.jsp?id…’)
Bij het aanklikken van de link, wordt ‘linkmail.jsp’ geopend, een webpagina die opgedeeld is in twee frames: ‘linkmail1.jsp’ en ‘opzoeken_frame3.jsp?id=…’. Er wordt in dit geval gebruik gemaakt van frames omdat het tweede frame een reeds bestaande pagina bevat en omdat de code ervan anders letterlijk zou moeten overgenomen worden om een nieuwe pagina te creëren, met daarboven slechts enkele toevoegingen van tekst, wat ons overbodig lijkt. In het eerste frame wordt een korte verduidelijking gegeven van wat van de persoon verwacht wordt die de e-mail ontvangen heeft, namelijk op de onbekende e-mailadressen klikken die in het blauw zijn aangeduid, om deze daarna te kunnen linken aan een UGent emailadres. In het tweede frame bevindt zich de e-mail waarin de onbekende e-mailadressen werden aangetroffen. Voor meer uitleg over dit frame, zie 3.3, aangezien het ook als derde frame dient in het programma dat daarin besproken wordt. Het enige dat hier relevant is, is dat de onbekende e-mailadressen werden omgevormd tot hyperlinks naar ‘link.jsp’, een webpagina bestaande uit drie frames: ‘link_frame1.jsp’, ‘link_frame2.jsp’ en ‘link_frame3.jsp’. 3.2.2
JSP – ‘link.jsp’ (‘link_frame1.jsp’, ‘link_frame2.jsp’ en ‘link_frame3.jsp’)
Een voorbeeld van de webpagina is te vinden op de volgende pagina (figuur 3). Het eerste frame bevat twee velden. In het eerste veld staat het onbekende e-mailadres al ingevuld omdat het als variabele ‘mail’ werd doorgegeven terwijl het tweede veld standaard van
16
‘@ugent.be’ voorzien is, tenzij een variabele ‘ugent’ vanuit het derde frame wordt doorgegeven (zie uitleg derde frame). Als de gebruiker niet op de hoogte is van het overeenkomstige UGent e-mailadres maar wel (een deel van) de achternaam van de persoon kent, kan hij of zij op de hyperlink onderaan het frame klikken, waardoor het tweede frame zichtbaar wordt.
)LJXXUYRRUEHHOGYDQµOLQNMVS¶
Het tweede frame bevat opnieuw een invulveld, waarin de gebruiker (een deel van) de achternaam moet ingeven van de persoon waarvan hij of zij het UGent e-mailadres wil te weten komen. Die input wordt dan aan het derde frame doorgegeven en opgezocht in LDAP. Bij de opzoeking wordt er enkel gezocht in de records waarin een UGent e-mailadres aanwezig is. Als de zoekopdracht geen resultaten oplevert, wordt dit weergegeven maar anders worden er per persoon die aan de zoekopdracht voldoet, verschillende gegevens opgevraagd en opgeslagen in een String. Dit zijn de naam (cn), het UGent e-mailadres (mail), de objectklassen
waartoe
de
persoon
behoort
(objectClass),
de
opleiding
(ugentStudyProgram1), de vakgroep (ou) en het departementsnummer (departmentNumber). Op basis van deze gegevens worden de resultaten van de zoekopdracht in vier groepen onderverdeeld, geïnspireerd op LDAP:
17
-
als de velden ugentStudyProgram1 en ou leeg zijn, en het veld objectClass het woord ‘FormerStudent’ bevat, wordt na de naam van de persoon vermeld dat het een oudstudent is
-
als de velden ugentStudyProgram1 en ou leeg zijn, en het veld objectClass het woord ‘FormerStudent’ niet bevat, wordt het departementnummer vermeld na de naam
-
als enkel het veld ugentStudyProgram1 leeg is, wordt de vakgroep vermeld waartoe de persoon behoort
-
bij de rest wordt de opleiding vermeld
De zoekresultaten worden daarna in alfabetische volgorde opgeslagen en in een keuzelijst weergegeven. De gebruiker moet hieruit een naam kiezen. Het bijhorende UGent emailadres wordt dan doorgegeven aan het overkoepelende ‘link.jsp’, samen met de variabelen ‘mail’ en ‘id’, die respectievelijk het onbekende e-mailadres en het unieke id van de e-mail bevatten. De reden waarom het id wordt bijgehouden, wordt in de bespreking van ‘link2.jsp’ uitgelegd. Als de gebruiker dus beslist om de naam op te zoeken, worden die variabelen van frame naar frame doorgegeven met behulp van het html input type ‘hidden’. Als de gebruiker besluit de e-mailadressen te linken, en op ‘versturen’ drukt, wordt de pagina ‘link2.jsp’ geopend. 3.2.3
JSP – ‘link2.jsp’
Er wordt eerst nagegaan of er in beide velden e-mailadressen werden ingevuld, door te zoeken of er een apenstaartje in beide aanwezig is. Is dit niet het geval, dan wordt de gebruiker terug verwezen naar de invulpagina met een hyperlink. Als er wel een apenstaartje in beide gevonden wordt, zal het ingegeven UGent e-mailadres opgezocht worden in LDAP, dit om te verzekeren dat het om een geldig adres gaat. Als het adres niet in LDAP wordt teruggevonden, dan wordt de gebruiker terug verwezen naar de invulpagina, en anders wordt de adressencombinatie in de tabel met aliassen toegevoegd. En ook in de tabel waarin de gegevens van de e-mails werden opgeslagen, wordt het onbekende adres telkens vervangen door het UGent e-mailadres. Hierna kan de gebruiker terugkeren naar de e-mail (het was in functie hiervan dat de variabele id werd doorgegeven) of naar de zoekpagina, die hierna besproken wordt.
18
2S]RHNHQJHJHYHQV Om de opgeslagen gegevens en e-mails te kunnen raadplegen en opzoeken moet de gebruiker
surfen naar ‘http://escher.elis.ugent.be/dossier/’. De webpagina die geopend
wordt, heeft als naam ‘index.jsp’ en bestaat uit drie frames: ‘opzoeken_frame1.jsp’, ‘opzoeken_frame2.jsp’ en ‘opzoeken_frame3.jsp’. 3.3.1
JSP – ‘index.jsp’ ‘opzoeken_frame3.jsp’)
(‘opzoeken_frame1.jsp’,
‘opzoeken_frame2.jsp’
en
In het eerste frame krijgt de gebruiker de gelegenheid om (een deel van) de naam in te vullen waarop hij of zij wil zoeken. Daarna zal in het tweede frame een overzicht gegeven worden van de gegevens van alle e-mails die e-mailadressen bevatten waarin de opgegeven naam voorkomt, met de recentste e-mail bovenaan. De recentste mail zelf kan in het derde frame geraadpleegd worden, doordat het hoogste - en dus ook recentst toegewezen - id uit de resultaten van de zoekopdracht wordt geselecteerd en overgedragen als variabele. Figuur 4 toont een voorbeeld van de pagina.
)LJXXUµLQGH[MVS¶PHWDOVLQSXWµHULND¶
De naam wordt eerst aan het overkoepelende ‘index.jsp’ doorgegeven, zodat de naam in een keer aan alle daartoe behorende frames wordt doorgegeven. Een andere mogelijkheid zou zijn om het tweede en derde frame in een frame binnen ‘index.jsp’ te plaatsen. Als de naam dan aan dit frame wordt doorgegeven in plaats van aan de pagina zelf, komt het ook
19
bij de beide frames terecht. Op deze manier wordt de input echter niet langer weergegeven in het eerste frame en het is handiger voor de gebruiker om te zien welke naam hij opgegeven heeft. Voor die input evenwel aan de drie frames wordt doorgegeven, wordt er opgevraagd hoeveel verschillende e-mailadressen de zoekopdracht in de from- en to-velden in de databank vindt. Hierbij worden enkel de to-velden onderzocht die maar een e-mailadres bevatten, want bij tovelden met meerdere e-mailadressen zouden deze eerst opgevraagd moeten worden en daarna allemaal apart verwerkt moeten worden, wat teveel tijd in beslag zou nemen, en de zoekactie onnodig langer zou maken. Bovendien zal er bij de e-mails vaak maar een afzender en bestemmeling zijn. Ook wordt enkel gezocht op UGent e-mailadressen omdat de resultaten mogelijk in LDAP moeten opgezocht worden. Want als er meer dan vijf verschillende UGent e-mailadressen gevonden worden, zullen deze in LDAP opgezocht worden en zullen de overeenkomstige personen ingedeeld worden in dezelfde vier groepen die in 3.2.2 besproken werden. Die worden vervolgens op dezelfde manier weergegeven (zie figuur 5).
)LJXXUNHX]HOLMVWELMPHHUGDQYLMIHPDLODGUHVVHQ
De gebruiker moet dan een keuze maken, waarna enkel de e-mails die het UGent emailadres van de gekozen persoon bevatten, worden weergegeven in de lijst in het tweede frame, met de inhoud van de recentste e-mail in het derde frame. De gegevens van die email worden in het tweede frame met behulp van een javascript in blauw aangeduid. Telkens de gebruiker op de gegevens van een e-mail in de lijst klikt, worden deze in blauw aangeduid en verschijnt de e-mail zelf in het derde frame. Als er echter minder dan vijf verschillende UGent e-mailadressen worden aangetroffen, wordt onmiddellijk het overzicht in het tweede frame en de recentste e-mail in het derde frame gegeven. In het overzicht worden telkens per regel opgesomd: het unieke id van de email (wat het voor de UGent studenten en personeel makkelijker maakt ernaar te verwijzen),
20
de datum waarop de e-mail werd ontvangen, de zender, bestemmelingen in het to- en ccveld, het onderwerp en de grootte van de e-mail in kB of MB. In het derde frame wordt de email getoond, met daarin een link naar een of meerdere attachments en hun grootte, als er enige aanwezig waren in de originele e-mail. Ook werden de niet UGent e-mailadressen omgevormd tot hyperlinks naar de link-pagina die in 3.2.2 besproken werd. Alle origineel aanwezige hyperlinks of html-code in de body van de e-mail worden eveneens overgenomen. Bovendien zijn er zowel in het tweede als derde frame bijkomende mogelijkheden voorzien voor de gebruiker. In het tweede frame kan de gebruiker de volgorde van de getoonde emails veranderen door de pijlen naast de titel aan te klikken, waarna er alfabetisch, op datum, nummer of in omgekeerde volgorde gesorteerd wordt, afhankelijk van de richting van de pijl. Ook al wordt de volgorde van de lijst veranderd, de laatst geselecteerde e-mail blijft in blauw aangeduid en in het derde frame aanwezig, door het id ervan aan de frames mee te geven als variabele. Naast elk van de e-mailadressen worden twee symbolen getoond: een enveloppe en een filter. Als de gebruiker de enveloppe aanklikt, wordt een nieuwe e-mail door de lokale Mail User Agent (MUA) geopend, met als bestemmeling het e-mailadres waar het symbool zich naast bevond. De filter zorgt er dan weer voor dat de zoekopdracht zich ditmaal op het emailadres in kwestie concentreert, waardoor enkel de e-mails die dat e-mailadres bevatten getoond zullen worden. In het gele kader van het tweede frame is ‘printer-friendly’ ook een hyperlink, naar ‘opzoeken_frame2_print.jsp’. Dit is een pagina die alle info bevat die op dat moment in het overzicht gegeven wordt, en de volgorde behoudt, maar dan zonder de verschillende symbolen. Er is op die pagina tevens een link voorzien om het printproces te starten, een optie ook aanwezig in het derde frame, terwijl ‘detail van de mail’ de e-mail in een nieuwe pagina opent. 3.3.2
Lay-out
Voor de webpagina werd gewerkt met een stylesheet dat zich binnen de map Style bevindt. Voor de lay-out werd gekozen om alles op een overzichtelijke manier weer te geven met weinig storende elementen, met behulp van CSS1.
21
De drie frames in de pagina werden aangeduid met een id “persoon”, “dossier” en “bodymail”. Binnen deze onderverdeling werden de eigenschappen voor tekstkleur, font, background enz. gedefinieerd. Een onderdeel van de stylesheet:
SHUVRRQ^ ERUGHU))'S[VROLG ` SHUVRRQOHJHQG^ FRORU) IRQWVL]HSW `
22
9RRUVWHOOHQ Dit hoofdstuk bevat een aantal voorstellen die in de toekomst kunnen geïmplementeerd worden, en suggesties om de hiervoor besproken programma’s te optimaliseren. Het eerste voorstel bouwt verder op de mogelijkheden die reeds in Plato voorzien zijn, namelijk de authenticatie van de gebruiker via het door UGent ontworpen programma WebAuth, waardoor bepaalde rechten aan de gebruiker toegekend worden. Die rechten bepalen de mogelijkheden en informatie waarover de gebruiker beschikt. Het tweede voorstel behandelt de verschillende opties die bestonden bij het opslaan van de e-mail en eventuele bijlagen, de reden waarom er voor een bestandssysteem gekozen werd, en een mogelijke verbetering van het programma dat de meta-info in de databank opslaat. In het derde voorstel worden de verschillende mogelijkheden besproken om het archiveren te vereenvoudigen, en de tijdstippen waarop de meta-info, e-mails en eventuele bijlagen het best gewist zouden worden.
23
$XWKHQWLFDWLHHQIXQFWLRQDOLWHLW Het eerste voorstel houdt in dat er in de toekomst een vorm van authenticatie ingebouwd wordt in het programma waarmee de gebruiker de mails kan opvragen. Dit zou er immers voor zorgen dat iedere gebruiker bepaalde gebruikersrechten krijgt op basis van zijn identiteit en dat zijn gegevens beveiligd worden. De Universiteit Gent beschikt hiervoor reeds over goed werkende systemen die toegepast worden in Plato, de digitale studentenadministratie van de Faculteit Ingenieurswetenschappen waar zowel studenten, professoren als leden van de FSA gebruik van kunnen maken. Hierdoor gaat de voorkeur dan ook uit naar een integratie van het dossieropvolgingssysteem in Plato. De mogelijkheden in Plato zijn wel afhankelijk van het soort gebruiker dat zich aanmeldt. Indien we kort de theoretische kant [Apa07] bekijken dan kunnen we twee stappen onderscheiden in het verkrijgen van toegang tot de betreffende informatie. Ook de meeste veiligheidsvoorzieningen werken volgens deze twee stappen. De eerste stap is de authenticatie [Web07a], waarbij de identiteit van de gebruiker wordt gecontroleerd. Dit gebeurt meestal aan de hand van een gebruikersnaam en een paswoord. Deze stap heeft dan ook geen invloed op de toegangsrechten van de gebruiker. De tweede stap is de uiteindelijke authorisatie [Web07b], die ervoor zorgt dat de gebruiker de informatie en mogelijkheden krijgt die gelinkt zijn aan zijn identiteit. Zo zal een administrator bijvoorbeeld alle rechten hebben, terwijl een gewone gebruiker minder rechten zal krijgen. Er wordt als het ware gecontroleerd of een persoon op de gastenlijst staat voor die toegang krijgt tot een bepaald gebied. Tot slot is er de toegangscontrole [Apa07], die meer algemener is. Hier kan de toegang op basis van verscheidene criteria worden geweigerd, bijvoorbeeld op basis van de kenmerken van de gebruiker of de functie die de gebruiker heeft binnen het bedrijf of de instelling. Gebruikers die inloggen op de servers van de Universiteit Gent maken gebruik van een paswoord dat zich in de centrale wachtwoordendatabank van de afdeling ICT bevindt. Alle wachtwoorden zijn geëncrypteerd, zo ook het netwerkverkeer wanneer paswoorden worden verzonden [Uni07d]. Als men dus als administrator inlogt zal men de gebruikers moeten indelen in groepen. Deze groepen
worden
gebruikt
om
gebruikersaccounts,
computeraccounts
en
andere
24
groepsaccounts gemakkelijker onder te verdelen in beheerbare eenheden, aangezien werken met groepen in plaats van met afzonderlijke gebruikers het netwerkonderhoud en – beheer vereenvoudigt. Wanneer een gebruiker zijn dossier wil opvragen zal er een vorm van authenticatie worden gevraagd die het mogelijk maakt om in te loggen als student, professor of FSA. Op die manier kan het systeem dus onderscheid maken tussen de gebruikers van het opvolgingsysteem. Wanneer men inlogt via Plato is het dus al perfect mogelijk om dit onderscheid te maken. De LDAP-databank beschikt over voldoende gegevens om de verschillende gebruikers de nodige functionaliteit aan te bieden die voor hen van toepassing is. Zo zal een student(e) in zijn dossier enkel de e-mails kunnen inkijken die hij of zij met het UGent personeel heeft uitgewisseld. De opleidingscommissievoorzitter zal de mogelijkheid hebben om de e-mails van alle studenten van zijn opleiding te bekijken. In het reeds geschreven programma zijn al enkele mogelijkheden voorzien: de gebruiker kan filteren zodat hij of zij enkel de e-mails kan bekijken van de gekozen student. Daarnaast is het ook mogelijk om via een mailicoontje het standaard ingestelde mailprogramma op te starten en een e-mail te verzenden naar het gekozen adres. De gebruiker kan de lijst met e-mails ook afdrukken, via een afzonderlijke pagina die de lijst vereenvoudigt, door de verschillende iconen weg te laten. FSA zal de volledige toegang krijgen tot het systeem om alle communicatie te kunnen volgen. In de onderverdeling van gebruiksrechten heeft Minerva een gelijkaardig en zeer praktisch systeem met een indeling als cursusbeheerder, begeleider en student [Uni07b]. Deze indeling kent al dan niet meer rechten toe aan de ene of de andere groep. Een interessant medium om studenten aan professoren te koppelen is de vaksite. Studenten krijgen bij de eerste keer dat zij inloggen de mogelijkheid om de vakken aan te duiden die zij het komende academiejaar zullen volgen [Uni07c]. Hierdoor worden ze automatisch toegevoegd aan de gebruikerslijst van de cursusbeheerder (Minerva).
25
Overzicht van de gebruikersfunctionaliteit van het dossieropvolgingssysteem Wanneer men als student inlogt in het systeem zal men enkel de basismogelijkheden aangeboden krijgen. Onder deze basismogelijkheden verstaan we: -
Het bekijken van de verzonden e-mails tussen de student en het UGent-personeel
-
Het afdrukken en het afzonderlijk bekijken van deze maillijst in een andere webpagina
-
Het afdrukken en het afzonderlijk bekijken van een e-mail in een andere webpagina.
Wanneer men als opleidingscommissievoorzitter inlogt in het systeem zal men de basismogelijkheden aangeboden krijgen, alsook de mogelijkheid om e-mails uit de lijst te deleten. Onder deze gebruikersmogelijkheden verstaan we: -
Het bekijken van de verzonden e-mails van en naar studenten van de opleiding
-
Het afdrukken en het afzonderlijk bekijken van deze maillijst in een andere webpagina
-
Het afdrukken en het afzonderlijk bekijken van een e-mail in een andere webpagina
-
Het verwijderen van e-mails uit de lijst binnen de eigen opleiding.
Wanneer personeelsleden van het FSA of het Decanaat inloggen in het systeem zal men de volledige mogelijkheden aangeboden krijgen. Onder deze gebruikersmogelijkheden verstaan we: -
Het bekijken van de verzonden e-mails van alle UGent studenten en personeel
-
Het afdrukken en het afzonderlijk bekijken van deze maillijst in een andere webpagina
-
Het afdrukken en het afzonderlijk bekijken van een e-mail in een andere webpagina
-
Het verwijderen van e-mails van alle studenten en opleidingscommissievoorzitters uit de lijst.
26
%/2%YVEHVWDQG Om de e-mail en eventueel eraan verbonden bijlagen bij te houden, bestaan er drie mogelijkheden: -
Opslaan als BLOB (Binary Large OBject) [Mic07] in een DBMS. Dit is een verzameling binaire data die als een geheel in een BLOB wordt ondergebracht. Het gaat meestal over afbeeldingen, audiobestanden of andere multimedia bestanden.
-
Opslaan als bestand op het bestandssysteem. Het gaat hier over het originele emailbericht, en de
originele bijlagen die in een aparte directory op een medium
worden ondergebracht, in dit geval op een harde schijf. -
Opslaan door een combinatie van databank en bestandssysteem [Asp05], door de bestandsnaam en eventueel het bestandstype in de databank in te voegen terwijl het eigenlijke bestand op het bestandssysteem wordt overgezet.
De voorkeur ging bij dit programma uit naar de tweede optie. Het resultaat is tastbaarder en de bestanden kunnen ook buiten de databank geraadpleegd worden. Verder kunnen ze gemakkelijk anders gestructureerd worden, en er kunnen allerlei acties op het bestand uitgevoerd worden, zoals bijvoorbeeld op virussen scannen, terwijl het onmogelijk is om een BLOB door een virusscanner te laten controleren tenzij het geopend wordt. Ook kunnen allerlei applicaties zoals ftp, browsers, etc. de data uit het bestand halen zonder dat er bijkomende code moet geschreven worden, zoals moet gebeuren om data uit een databank te halen [Asp05]. Verder is het moeilijker om back-ups te maken van BLOBs en vraagt het meer tijd om een BLOB uit een databank op te halen dan een bestand van een bestandssysteem te openen. Bovendien is er vaak een verschil in BLOB-types en functionaliteit in databanksystemen. Als er ooit overgeschakeld wordt op een ander databanksysteem, bestaat de kans dat de bestaande BLOBs niet-compatibel zijn met of heel slecht converteerbaar zijn naar het nieuwe type [Asp05, Mit02]. Bij een combinatie van databank en bestandssysteem zou de synchronisatie van beide problemen kunnen opleveren. Als er iets gewist wordt in het ene systeem, moet het andere die opdracht bijvoorbeeld ook doorvoeren. Daarenboven kan er niet op voorhand bepaald worden hoeveel bijlagen de e-mail bevat. Er zou dus per e-mail al voldoende plaats voor het grootst mogelijk aantal bijlagen moeten voorzien zijn in de databank, wat de databank nodeloos ingewikkeld zou maken, en een verspilling van ruimte zou zijn.
27
In een onderzoek uitgevoerd in april 2006 [Se06] wijst Microsoft echter op het feit dat relatief kleine objecten (kleiner dan 256KB) best in een databank worden ondergebracht, terwijl bestanden groter dan 1MB op een bestandssysteem moeten worden opgeslagen. Aangezien het inefficiënt is plaats voor bijlagen in de databank te voorzien, blijft enkel de e-mail zelf over. De grootte daarvan wordt bepaald voor de e-mail en de bijlagen opgeslagen worden, waardoor het handig zou zijn om e-mails kleiner dan 4KB in een tekstveld (varchar) in de databank op te slaan en de rest op het bestandssysteem te plaatsen.
28
$UFKLYHULQJ
Naarmate het aantal e-mails dat wordt opgeslagen op het bestandssysteem stijgt, heeft het programma dat de e-mails aan de gebruiker toont, steeds meer tijd nodig om de directory met e-mails te doorzoeken. Bij een databank zou dit probleem niet aan de orde zijn aangezien er een index kan gemaakt worden die het zoeken vergemakkelijkt. Bij een bestandssysteem is dit echter ook mogelijk, door een bijkomende indexering aan te brengen. Met andere woorden: door de directory waarin de e-mails ondergebracht worden, onder te verdelen in mappen. Zo kan er een boomstructuur aangelegd worden, met mappen van nul tot negen, en daarin eventueel ook nog telkens mappen van nul tot negen, enz. waarin de emails en bijlagen dan worden opgeslagen op basis van het unieke id dat ze toegewezen kregen. In de toekomst zal er op een bepaald moment tevens een tekort aan plaats op de harde schijf optreden, waardoor een aantal van de bestanden naar andere media zullen moeten overgebracht worden, zoals dvd’s, cd-roms, tape, … Dan blijft de meta-info die zich in de databank bevindt, wel aanwezig, maar kan de e-mail zelf niet meer worden weergegeven. Om dergelijke problemen te voorkomen, zou er best een kolom in de tabel voorzien worden voor back-ups, waarmee dan duidelijk wordt aangegeven of de e-mail en eventuele bijlagen nog direct opvraagbaar zijn. Zo nee, moet aan de gebruikers gemeld worden dat er een back-up gemaakt werd van het bestand en moeten zij doorverwezen worden naar de personen tot wie zij zich best wenden om dit bestand toch nog op te vragen. Een mogelijkheid om de back-up zo lang mogelijk uit te stellen, is dat er een applicatie wordt voorzien die nagaat hoe lang de e-mails al op het bestandssysteem opgeslagen zijn. Vanaf een bepaalde periode zou deze applicatie de bijlagen en dergelijke kunnen wissen, zodat enkel de volledige e-mail ofwel ‘… .full’ beschikbaar blijft. Dit bestand bevat immers alle nodige informatie, ook de bijlagen. Dan blijft er nog een laatste vraag over, namelijk wanneer de e-mails waarvan een back-up werd gemaakt, definitief verwijderd mogen worden. De simpelste oplossing is het opzoeken van de e-mailadressen in LDAP om zo de studenten eruit te filteren, waarna met behulp van ‘ugentlastenrolled’ in LDAP nagegaan wordt wanneer de student in kwestie voor het laatst ingeschreven was in UGent. Als dat langer was dan vijf jaar geleden, worden enkel de emails gewist waarin het enige aanwezige studenten-e-mailadres aan de persoon in kwestie behoort.
29
%HVOXLW
Het eigenlijke dossieropvolgingssysteem bestaat uit twee programma’s: een om de
verzonden e-mails te verwerken, en een om de e-mailadressen die noch in LDAP, noch in de tabel met aliassen voorkomen, te linken aan de overeenkomstige UGent e-mailadressen. Nadat het eerste programma zijn werk heeft gedaan, kan de gebruiker de meta-info over de e-mail raadplegen via een webinterface, alsook de e-mail zelf en eventuele bijlagen. Die webinterface is het derde programma dat in de scriptie besproken werd. Door de ontwikkeling van een dossieropvolgingssysteem wordt het voor alle studenten en personeelsleden van de Universiteit Gent mogelijk om een overzicht bij te houden van de communicatie
tussen
de
studenten
en
personeelsleden,
wat
de
taak
van
de
opleidingscommissievoorzitter, leden van de FSA, etc. vereenvoudigt. De opvolgers van de opleidingscommissievoorzitter krijgen een duidelijker beeld van de communicatie en afspraken tussen hun voorganger en UGent studenten. Ook de leden van de FSA kunnen sneller nagaan of er enige overeenkomsten tussen studenten en personeelsleden werden afgesloten. Een voordeel van het ontwikkelde dossieropvolgingssysteem is dat de databanken centraal gelegen zijn en er dus geen sprake is van distributie. Dit maakt de manier van werken echter ook minder efficiënt, aangezien er geen andere mogelijkheid bestaat om het overzicht van de communicatie te raadplegen als de databank met meta-info niet bereikbaar is door bijvoorbeeld een stroomuitval. De meta-info en e-mails zelf zijn daarentegen op een ander medium opgeslagen, waardoor de kans vermindert dat alle gegevens tegelijk verloren zouden gaan. Over het algemeen kan het dossieropvolgingssysteem gezien worden als een positieve ontwikkeling. Internetverkeer wordt steeds belangrijker in de huidige maatschappij en voor het UGent personeel is het belangrijk gegevens en afspraken te kunnen nagaan.
30
/LWHUDWXXUOLMVW [Apa07]
Apache 2007
[Asp05]
ASP FAQ 11.03.2005
[Bla07]
Blazonry (astonishinc.com) 2007 PHP vs. ASP vs. JSP Part 1. [Online]. http://www.blazonry.com/devnotes/phpasp1.php [05.05.2007].
[Fre91]
Free Software Foundation, Inc 1991-2002 The GNU Bash Reference Manual edition 2.5b. [Online]. http://www.gnu.org/software/bash/manual/bashref.html [09.05.2007].
[Ber03]
Bergsten, Hans 12.2003 JavaServerPages, 3rd Edition (e-book). 1.2.6 The JSP Advantage.
[Mic07]
Microsoft Corporation 2007 ACC: Reading, Storing, & Writing Binary Large Objects (BLOBs). [Online]. http://support.microsoft.com/kb/103257 [13.05.2007].
[Mit02]
Mitchell, Marc 13.10.2002 To Blob or Not to Blob? THAT is the question. [Online]. http://archives.postgresql.org/pgsql-admin/2002-10/msg00318.php [13.05.2007].
[Php07]
PHP 2007
[Pro07]
Procmail.org 2007 [Online]. http://www.procmail.org/procmail.HISTORY.html [07.05.2007].
[Ram03]
Ramey, Chester 1995-2003 BASH Frequently-Asked Questions (FAQ version 3.26). [Online]. http://www.faqs.org/faqs/unix-faq/shell/bash/ [09.05.2007].
[Sea06]
Sears, Russell, en Van Ingen, Catharine, en Gray, Jim 04.2006 To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem? [Online]. http://research.microsoft.com/research/pubs/view.aspx?msr_tr_id =MSR-TR-2006-45 [13.05.2007].
[Uni07a]
Universiteit Gent 2007a Gebruik van de UGent LDAP server als adresboek in uw e-mail client. [Online]. http://www.helpdesk.ugent.be/email/ldap.php [08.05.2007].
Apache HTTP Server: Authentication, Authorization, and Access Control. [Online]. http://httpd.apache.org/docs/1.3/howto/auth.html [11.05.2007]. Should I store images in the database or the filesystem?. [Online]. http://databases.aspfaq.com/database/should-i-store-images-inthe-database-or-the-filesystem.html [13.05.2007].
PHP 5.2.2. [Online]. http://www.php.net/ [07.05.2007].
31
[Uni07b]
Universiteit Gent 2007b ICT&O expertisecentrum: Handleiding lesgevers (Minerva). [Online]. http://icto.UGent.be/files/lesgevershandleidingMinerva.pdf [24.04.2007].
[Uni07c]
Universiteit Gent 2007c ICT&O expertisecentrum: Handleiding studenten (Minerva). [Online]. http://icto.UGent.be/files/studentenintroductie.pdf [24.04.2007].
[Uni07d]
Universiteit Gent 2007d UGent WebAuth. [Online]. http://www.helpdesk.ugent.be/webhosting/webauth.php [08.05.2007].
[Van96]
van den Berg, Stephen R. 21.12.1996 Formail(1). [Online]. http://servers.digitaldaze.com/extensions/procmail/manpages/form ail.1.html [06.05.2007].
[Van97]
van den Berg, Stephen R. 11.04.1997 Procmailrc(5). [Online]. http://servers.digitaldaze.com/extensions/procmail/manpages/proc mailrc.5.html [06.05.2007].
[W3s07]
W3schools 1999-2007
SQL tutorial. [Online]. http://www.w3schools.com/sql/ [03.04.200703.05.2007].
[Web07a] Webopedia (Jupitermedia Corporation) 2007a Authentication [Online]. http://www.webopedia.com/TERM/a/authentication.html [11.05.2007]. [Web07b] Webopedia (Jupitermedia Corporation) 2007b Authorization [Online]. http://www.webopedia.com/TERM/a/authorization.html [11.05.2007]. [Web07c]
Webopedia (Jupitermedia Corporation) 2007c File management system. [Online]. http://www.webopedia.com/TERM/f/file_management_system.htm l [07.05.2007].
[Web07d] Webopedia (Jupitermedia Corporation) 2007d LDAP. [Online]. http://www.webopedia.com/TERM/L/LDAP.html [08.05.2007]. [Web07e] Webopedia (Jupitermedia Corporation) 2007e Procmail. [Online]. http://www.webopedia.com/TERM/P/Procmail.html [07.05.2007].
32
[Wik07a]
Wikipedia 2007a
[Wik07b]
Wikipedia 2007b
[Wik07c]
Wikipedia 2007c
[Wik07d]
Wikipedia 2007d
[Wik07e]
Wikipedia 2007e
[Wik07f]
Wikipedia 2007f
[Wik07g]
Wikipedia 2007g
[Win02]
Windows & .NET Magazine 12.2002 Vederlichte directories: Het LDAP protocol. [Online]. http://216.239.59.104/search?q=cache:Le4ht2fTDa4J:openfortress.nl/doc/essay/LDAP/index.nl.html+ldap&hl=nl&ct=clnk&cd=4&gl=be&lr=lang_nl [08.05.2007].
Cascading Style Sheets. [Online]. http://nl.wikipedia.org/wiki/Cascading_Style_Sheets [07.05.2007]. JSP. [Online]. http://en.wikipedia.org/wiki/JavaServer_Pages [03.05.2007]. Lightweight Directory Access Protocol. [Online]. http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protoco l [08.05.2007]. PHP. [Online]. http://nl.wikipedia.org/wiki/PHP [03.05.2007]. Procmail. [Online]. http://en.wikipedia.org/wiki/Procmail [07.05.2007]. Sendmail. [Online]. http://en.wikipedia.org/wiki/Sendmail [07.05.2007]. SQL. [Online]. http://en.wikipedia.org/wiki/SQL [08.05.2007].
33