Technisch Ontwerp One Fox eDAV Technisch ontwerp van de One Fox eDAV module
Kenmerk: Document: Status: Publicatie:
TO_EDAV_MVDB_51 V1,2 / TO eDAV v2.2 Definitief 28-2-2013
Documenthistorie Wanneer
Versie
Wie
Wat en waarom
25-02-2010
0,1
Ron v. Oosterhout
Initiële versie van technisch ontwerp
30-03-2010
1,0
Ron v. Oosterhout
Encryptie toevoeging.
16-04-2010
1,1
Ron v. Oosterhout
Opmerkingen verwerkt (Michel Hummel)
17-07-2012
1.2
Matthijs van den Bovenkamp
Uitbreiding voor tablets.
Dienstverlener One Fox www.OneFox.nl Jens Peters Tel.: 030-2324 350
Technisch Ontwerp One Fox eDAV
Inhoudsopgave 1
Inleiding ......................................................................................................................................... 4
2
Functionele beschrijving ........................................................................................................ 5
3
Systeem vereisten ..................................................................................................................... 6 3.1 SERVER................................................................................................................................................ 6 3.2 CLIËNT................................................................................................................................................. 6
4
Technieken .................................................................................................................................... 7
5
Architectuur.................................................................................................................................. 8 5.1 OVERVIEW ........................................................................................................................................... 8 5.2 DEPLOYMENT DIAGRAM ...................................................................................................................... 9 5.3 CLASS DIAGRAM............................................................................................................................... 10
6
Encryptie .......................................................................................................................................12
7
Configuratie .................................................................................................................................13
8
Lijst bestanden ..........................................................................................................................16
3 / 16
Technisch Ontwerp One Fox eDAV
1 Inleiding Dit document is het technisch ontwerp van de One Fox eDAV module. De eDAV module is een WebDAV adapter, waarmee documentatie uit OpenText DM gehaald kan worden. Deze documentatie kan vervolgens met bijhorende client applicaties bekeken en bewerkt worden en dan via eDAV weer terug geüpload worden naar OpenText DM. De eDAV module maakt gebruik van de WebDAV techniek, wat een uitbreiding is op het http protocol. Voor deze oplossing is geen cliënt software noodzakelijk, behalve de applicatie waarmee het document bewerkt kan worden. De eDAV module maakt gebruik van de DM API om de juiste documentatie uit eDOCS te halen. Er zijn verschillende authenticatie modules gemaakt voor het afhandelen van de authenticatie. Zo is er bijvoorbeeld een windows authenticatie module zodat via de windows credentials documenten uit EDOCS geopend kunnen worden. Deze module wordt onder andere gebruikt wanneer eDAV toegepast wordt via een iPad of windows verkenner. Ook is er een basic authenticatie module die onder andere gebruikt wordt wanneer eDAV wordt toegepast via een Android Tablet, en een url authenticatie module zodat via een webapplicatie via "Single-Sign On" documenten uit eDOCS geopend kunnen worden. Om een document te openen dient een request gestuurd te worden naar de eDAV module die afhankelijk van de gekozen authenticatie module anders opgebouwd wordt. Hoe dit verschilt per authenticatie module, vind je terug in hoofdstuk 4 “Authenticatie Modules” van de FO.
4 / 16
Technisch Ontwerp One Fox eDAV
2 Functionele beschrijving De eDAV module is een oplossing die het mogelijk maakt om documenten uit OpenText eDOCS direct te openen in bijhorende cliënt applicaties zonder het document eerst lokaal te downloaden en zonder dat hiervoor een installatie van een eDOCS cliënt noodzakelijk is. Het desbetreffende document dat is geopend in de cliënt applicatie, wordt ook rechtstreeks weer opgeslagen in eDOCS. De eDAV module maakt dit mogelijk door gebruikt te maken van WebDAV techniek wat een uitbreiding is van het http protocol. Voor deze oplossing is geen cliënt software noodzakelijk behalve de applicatie waarmee het document geopend of bewerkt kan worden. Voor het gebruik van de eDAV module op een tablet moet er ook een applicatie aanwezig zijn die een WebDAV verbinding kan maken. Om een document te openen dient een request gestuurd te worden naar de eDAV module. Er zijn verschillende authenticatie modules gemaakt voor het afhandelen van de authenticatie. Deze verschillende modules zijn: Windows Authentication Module: Authenticatie vindt plaats via windows authenticatie (onder adere gebruikt bij een windows verkenner map en de iPad). Basic Authentication Module: Authenticatie vindt plaats via basic authenticatie (onder andere gebruikt bij de tablets met Android). Url Based Authentication Module: Gebruikersnaam en wachtwoord worden meegestuurd in de request. Samen met de library en het document nummer (onder andere gebruikt bij een webapplicatie). Encrypted Url Based Authentication Module: Gebruikersnaam en wachtwoord worden meegestuurd in de request, waarbij het wachtwoord versleuteld wordt. Ook de library en het documentnummer worden meegestuurd. Encrypted Url Based Authentication Module V2: Documentnummer, library, gebruikersnaam en wachtwoord worden versleuteld meegestuurd als virtuele map. Hierdoor kan je de naam naar wens invullen. De request ziet er dan als volgt uit: http://<servernaam>/<eDAV virtual directory>/[versleutelde gegevens]/<document naam>.<extensie> versleutelde gegevens: [<docnumber>][
][][<password>]
Deze vijf modules zullen uitgebreider beschreven worden in het functioneel ontwerp.
5 / 16
Technisch Ontwerp One Fox eDAV
3 Systeem vereisten Om de eDAV module te installeren, dient uw systeem aan de volgende eisen te voldoen:
3.1 Server Hardware Verbinding kunnen maken met een DM server; Beschikbaar via http en/of https voor de cliënt; Software DM API; Internet Information Services (IIS) 7; Microsoft .NET Framework 3.5; Microsoft Windows 2008 R2 Server.
3.2 Cliënt Hardware op de cliënt is niet van toepassing. Software Tablet
Besturingssysteem o IOS; o Android. Een applicatie met WebDAV ondersteuning o ReaddleDocs (iPad) o WebDAV Navigator (Android) Bijhorende cliënt applicaties om de eDOCS documenten mee te openen o Polaris Office o Open Office o Documents To Go o Office Suite
Software werkstation Besturingssysteem o Windows XP; o Vista (incl. http://support.microsoft.com/kb/841215); o Windows 7 (incl. http://support.microsoft.com/kb/841215). Browser o Internet Explorer 7, of hoger. Bijhorende cliënt applicaties voor de ondersteunde bestanden, bijvoorbeeld: o Microsoft Office (Word, Excel, PowerPoint); Windows verkenner
6 / 16
Technisch Ontwerp One Fox eDAV
4 Technieken De eDAV module maakt gebruik van verschillende componenten. Deze componenten zorgen onder andere voor de integratie met eDOCS.
Microsoft.NET Framework 3.5 o Framework van Microsoft voor het ontwikkelen van software op het Windows platform. DM API 5.2.1.0 o Technische interface om te kunnen integreren met Open Text eDOCS. Dit is onderdeel van DM Extensions. ITHit WebDav Server versie 2.1 o Een framework dat basis functionaliteit biedt voor het gebruik maken van WebDAV. o Dit component is onderdeel van de eDAV installatie en behoeft geen extra handelingen en licenties. o informatie over IT Hit webdav server vindt je hier: http://www.webdavsystem.com/server o Informatie over de licentie vindt je hier is meegeleverd als bijlage document.
WebDav is een protocol dat staat voor Web-based Distributed Authoring and Versioning. Het is een uitbreiding op het HTTP protocol en is ontworpen om mogelijkheden te bieden voor het lezen en schrijven van documenten op het wereldwijde web. De eDAV koppeling maakt gebruik van de IT Hit WebDav server die de afhandeling van de WebDAV requests afhandelt. De eDAV houdt zich dan ook niet bezig met de afhandeling van alle verschillende WebDAV operaties, maar maakt gebruik van de interfaces die IT Hit WebDAV server blootstelt voor het opslaan, ophalen en vergrendelen van documenten. Onze koppeling maakt gebruik van dit protocol waardoor we de mogelijkheid hebben om eDOCS documenten over het web te openen, bewerken en uit en in te checken.
7 / 16
Technisch Ontwerp One Fox eDAV
5 Architectuur 5.1 Overview
Bovenstaande figuur beschrijft de architectuur van een inrichting van OpenText eDOCS waarbij eDAV geïnstalleerd is. In een procesapplicatie (webapplicatie, verkenner) op een werkstation of tablet wordt op een link geklikt waardoor een aanvraag voor een document over http naar de eDAV koppeling gestuurd wordt. Afhankelijk van de gekozen authenticatie module kan deze aanvraag er anders uit zien. De authenticatie module valideert de gebruiker die de aanvraag doet. Is deze aanvraag valide dan pakt de eDAV koppeling de aanvraag op en haalt met behulp van de DM API het document uit eDOCS en stuurt deze over http met behulp van webDAV naar het werkstation of de tablet. Op dit moment wordt het document vergrendeld binnen eDOCS. Het document wordt op het werkstation of de tablet geopend vanaf de server in de applicatie voor dit documenttype (bijvoorbeeld MS Office of Adobe Reader). Op het moment dat de gebruiker in de applicatie opslaat wordt het document via webDAV opgeslagen op de server. Tevens wordt bij het sluiten van de applicatie het document weer ontgrendeld binnen eDOCS. De DM API maakt het mogelijk om applicatie te laten communiceren met eDOCS. Dit is een set met functionaliteiten die ontwikkelaars de mogelijkheid biedt om hun applicaties te integreren met eDOCS. De eDAV module maakt dan ook gebruik van deze API om te communiceren met eDOCS. De verdere beschrijving van de architectuur gebeurt middels een aantal diagrammen. Eerst zal een "deployment diagram" getoond worden die een globaal overzicht geeft van de eDAV module. Vervolgens zal een "class diagram" de module in detail beschrijven.
8 / 16
Technisch Ontwerp One Fox eDAV
5.2 Deployment diagram In onderstaande schema zijn fysieke servers weergegeven waar de verschillende componenten geïnstalleerd worden. De interfaces op deze componenten worden in de volgende paragraaf uitgewerkt.
De eDAV module dient uitgerold te worden op een Windows 2008 R2 Server met Microsoft .Net Framework 3.5 De eDAV module ondersteunt integratie met client applicaties die WebDAV ondersteuning hebben. Zo heb je bijvoorbeeld: iPad o ReaddleDocs o GoodReader o Pages o IAnnotate Android Tablet o WebDAV navigator Polaris Office Open Office Office Suite Documents To Go Werkstation o Browser o Windows Verkenner o Microsoft Office
9 / 16
Technisch Ontwerp One Fox eDAV
5.3 Class Diagram 5.3.1 eDAV module
Bovenstaande "class diagram" is het klasse diagram van de One Fox eDAV module. De interfaces waar van afgeleid wordt zijn de interfaces die worden aangeboden door het IT HIT WebDAV server framework. Folder: Folder representeert een folder uit OpenText eDOCS. De eDAV koppeling ondersteunt nog geen folders. Er zijn meerdere soorten folders binnen eDAV, bijvoorbeeld RootFolder. Document: Document representeert een document uit OpenText eDOCS. De koppeling biedt ondersteuning voor onder andere Microsoft Word, Microsoft Excel en Microsoft Powerpoint. HierarchyItem: HierarchyItem is de basis class voor zowel folders als documenten. WebDavHander: WebDavHander is een HttpHandler die de request afhandelt. WebDavEngine: als de request een webdav request is, wordt deze opgepakt door de DMWebDavEngine, die vervolgens het juiste HierarchyItem aanmaakt. DocNumberNotFoundException: het opgegevend document nummer kon niet gevonden worden. InvalidApplicationIdException: Het aangevraagde document heeft een applicatie id, waarvan de extensie niet geconfigureerd is." PermissionDeniedException: De opgegeven credentials hebben niet genoeg rechten.
10 / 16
Technisch Ontwerp One Fox eDAV
DMException: De DM API geeft een foutmelding terug voor de aanvraag. Deze foutmelding is voorzien van een code en beschrijving en wordt middels deze exception gelogd. Deze melding zal o.a. gegeven worden als de DM-server niet beschikbaar is of als de gebruiker niet valide is.
5.3.2 Authenticatie module
Hierboven staat het voorbeeld van een authenticatie module "class diagram". De authenticatie module bestaat uit een HttpModule die de authenticatie voor een request afhandelt. De authenticatie module die gebruikt wordt is middels het configuratie bestand van de eDAV koppeling aangegeven. Hoe een authenticatie module geconfigureerd wordt kun je terug lezen in de installatie handleiding, en in het functioneel ontwerp.
11 / 16
Technisch Ontwerp One Fox eDAV
6 Encryptie Het is mogelijk om voor de eDAV koppeling te kiezen voor het gebruik van de URLBased authenticatie module. Deze authenticatie module maakt gebruik van encryptie. Waarbij gebruikt gemaakt wordt van de volgende instellingen: Algorithm = Symmetric Password-based key generation = PBKDf2 standard Het wachtwoord dat door de eDAV authenticatie module verwacht wordt bevat een timestamp om te bepalen of de aanvraag na een ingestelde tijdslimiet niet meer geldig is. De waarde die versleuteld wordt, ziet er dan ook als volgt uit: syntax: voorbeeld:
<wachtwoord>+yyyy-MM-dd HH:mm:ss welkom+2010-03-09 12:15:21
De "+" wat gebruikt wordt is een "carriage return teken" In de eDAV module wordt geconfigureerd welke sleutel gebruikt wordt voor de versleuteling van het wachtwoord en hoe lang het duurt voor een aanvraag niet meer geldig is (Timeout). In het FO staat beschreven hoe deze waardes in te stellen zijn. Bij het openen van het document zit de timestamp verwerkt in de bestandsnaam van het document. Er wordt geen sessie gebruikt in WebDav, acties in Word(zoals opslaan, en afsluiten) sturen een request naar de eDav koppeling, deze requests bevatten nog steeds dezelfde bestandsnaam en ook dezelfde timestamp. Als zo'n actie na de ingestelde timeout wordt uitgevoerd, is de timestamp niet meer geldig, en zal eDav de actie niet meer uitvoeren op eDocs. Als Office niet tijdig wordt afgesloten zal het bestand gelocked blijven in DM. Als dezelfde gebruiker het bestand opnieuw opent dan kan dit omdat hij ook het bestand heeft gelocked. De gebruiker kan hem dan verder bewerken.
12 / 16
Technisch Ontwerp One Fox eDAV
7 Configuratie Dit hoofdstuk beschrijft hoe de eDav module geconfigureerd moet worden. Dit kan gedaan worden met behulp van het bestand "web.config". Dit bestand is een XML document en bevat een aantal onderdelen waarmee de eDav module geconfigureerd wordt. Niet alle secties in het bestand mogen aangepast worden, hieronder worden dan ook alleen die onderdelen besproken die aanpassing vereisen voor de installatie van de eDav module met behulp van Basic Authentication. <SearchForm FormName="<SearchForm>" /> <SearchFolder LocalizedName="Snelzoekopdrachten" /> <SearchContentFolder LocalizedName="Zoeken op inhoud" /> <SearchProfileFolder LocalizedName="Zoeken op registratievelden" /> <SearchContentProfileFolder LocalizedName="Zoeken op registratievelden en inhoud" /> <Applications> <Application Extension="<extenties>" ApplicationName="<APP>" /> <Application Extension="doc;docx;rtf" ApplicationName="MS WORD" /> <Application Extension="xls;xlsx" ApplicationName="MS EXCEL" /> <Application Extension="ppt;pptx" ApplicationName="MS POWERPOINT" /> <Application Extension="pdf" ApplicationName="ACROBAT" /> <Application Extension="jpg" ApplicationName="JPG" /> <Application Extension="" ApplicationName="FOLDER" /> <Application Extension="txt" ApplicationName="NOTEPAD" />
13 / 16
Technisch Ontwerp One Fox eDAV
DMConfiguration: Deze sectie in de "web.config" bestaat uit een aantal algemene parameters voor de eDav module. DMConfiguration.ProfileHierarchieItemFormat Met behulp van de reguliere expressie die vermeld staat in de ProfileHierarchieItemRequestSyntax wordt de Request opgedeeld in stukken. Deze parameter geeft aan in welke volgorde de stukken staan. BasicAuthenticationModule: {0} [{1}]{5} DMConfiguration.ProfileHierarchieItemRequestSyntax: Deze parameter beschrijft de syntax van de request die binnen komt voor het openen van bestanden. Dit is een reguliere expressie en wordt gebruikt om de EDMS bibliotheek, gebruikersnaam, wachtwoord en documentnummer uit de request te halen. Deze waarde is afhankelijk van de authenticatie module die gekozen wordt. Hieronder staan de waardes voor de verschillende modules. BasicAuthenticationModule: ^(.*?)\ \[([^\]]*)\](\..*$|$) DMConfiguration.DefaultLibraryName: De naam van de bibliotheek van eDocs die gebruikt zal worden. DMConfiguration.DefaultLibraryDbName: De naam van de database waarvan eDocs gebruik maakt. ProfileForm.FormName: Dit is de naam van het formulier dat gebruikt wordt door de eDav module om documenten die opgevraagd worden te locken en te unlocken. Daarnaast wordt dit formulier gebruikt voor het ophalen en wegschrijven van het bestand. SearchForm.FormName: Dit is de naam van het formulier dat gebruikt wordt om aan de hand van de opgegeven bibliotheek en documentnummer het juiste document te vinden wat opgehaald moet worden. Item.LocalizedName Dit zijn de taalinstellingen voor de verschillende termen die gebruikt worden. De verschillende eigenschappen zijn: PublicFoldersFolder, RecentItemsFolder, SearchFolder, SearchContentFolder, SearchProfileFolder, SearchContentProfileFolder. Applications: De applications sectie beschrijft de verschillende applicaties die ondersteund worden door de koppeling. Application.Extension: De extension beschrijft de extensie voor de applicaties zoals deze geconfigureerd is in eDcos voor deze applicatie. Application.ApplicationName: De applicationname beschrijft de naam van de applicatie zoals deze geconfigureerd is in eDcos.
14 / 16
Technisch Ontwerp One Fox eDAV
NewProfileParameters: Binnen deze node worden de verplichte velden aangegeven voor het aanmaken van nieuwe documenten en mappen. NewProfileParameters.Document: Hier binnen komen de verplichte velden voor documenten. NewProfileParameters.Folder: Hier binnen komen de verplichte velden voor folders. NewProfileParameters.Document.Field.Name: De naam van het verplichte veld. NewProfileParameters.Document.Field.Value: De waarde voor het verplichte veld. Hier zijn 3 dynamische waarde mogelijk: $NAME = Bestandsnaam $IDENTITY = Ingelogde gebruiker $APP = Applicatie Met behulp van de volgende sectie in het configuratie bestand kan de gebruikte authenticatie module ingesteld worden. Er kan maar één module tegelijk gebruikt worden.
httpModules.add.type: Deze waarde geeft aan wat de class is die gebruikt moet
worden en in welke .dll bestand deze staat. de syntax hiervoor is "class, library". Er zijn vijf mogelijke modules voor het afhandelen van de authenticatie. Deze zullen uitgebreider beschreven worden in het functioneel ontwerp. In de configuratie is nu gekozen voor de volgende module: OneFox.eDav.Modules.BasicAuthentication.BasicAuthenticationModule
Deze module is gebaseerd basic authentication en vraagt met behulp van een formulier aan de gebruiker om zijn gebruikersnaam en wachtwoord in te vullen. Een request ziet er dan als volgt uit: http://<servername>/OneFox.eDAV/[] [<document nummer>].<extensie>
15 / 16
Technisch Ontwerp One Fox eDAV
8 Lijst bestanden Het uitrolpakket van de eDAV module bevat de volgende bestanden: Binaire componenten: /bin/Hummingbird.DM.Server.Interop.PCDClient.dll /bin/ITHit.WebDAV.Server.dll /bin/License.lic /bin/log4net.dll /bin/log4net.xml /bin/OneFox.DM.dll /bin/OneFox.DM.pdb /bin/OneFox.eDav.dll /bin/OneFox.eDav.Modules.CustomAuthentication.dll /bin/OneFox.eDav.Modules.CustomAuthentication.Encrypted.dll /bin/OneFox.eDav.Modules.CustomAuthentication.Encrypted.pdb /bin/OneFox.eDav.Modules.CustomAuthentication.pdb /bin/OneFox.eDav.pdb /bin/OneFox.eDav.Util.dll /bin/OneFox.eDav.Util.pdb Het global.asax bestand: /global.asax De configuratie template bestanden: /BasicAuthentication.Web.config.tmpl /UrlBaseAuthentication.Web.config.tmpl /UrlBaseAuthenticationV2.Web.config.tmpl /WindowsAuthentication.Web.config.tmpl
16 / 16