Indholdsfortegnelse 2. Systemarkitektur... 2 2.1 Præsentationsserverarkitektur... 3 2.2 Applikationsserverarkitektur... 7 Version 7.0 Side 1 af 7
5. Systemarkitektur Arkitekturen for Nyt BBR bygger på den seneste Best Practice for serviceorienterede webapplikationer. En skitse for arkitekturen kan ses i Figur 2.1. BBR-klient Kommuneklient Https (SSL) Internet OWSA-model T (SSL) Præsentationsserver Web site Service Gateway Modul 1 Modul 2... Modul N Service Agenter Applikationsserver WCF Service Interface Lag Batch Service Contract Service Adapter Windows Services Forretnings Lag Forretnings Logik Forretnings Entiteter Data Access Lag Data Access Logik Service Agenter OIOXML SQL Server Eksterne Services: - CPR - ESR - OIS - KMS Figur 2.1 Arkitektur for Nyt BBR Overordnet set består Nyt BBR af følgende tre dele: En moderne databaseplatform, Microsoft SQL Server 2005. Version 7.0 Side 2 af 7
En applikationsserver, baseret på en moderne standardiseret it-platform, Microsoft.NET. Applikationsserveren er implementeret som en serviceorienteret arkitektur og udstiller forretningslogikken som services. En præsentationsserver, som udstiller en browserbaseret brugergrænseflade (BBR-klienten) og en webservicebaseret snitflade, som er baseret på OIOXML (Kommuneklienten). BBR-klientens præsentationsdel er opbygget efter WebClient Software Factory - modellen (WCSF). WCSF tilbyder en generisk arkitektur med et design, som understøtter modularitet og udvidelse. Kort fortalt går det ud på at få separeret og afkoblet de forskellige byggesten i applikationen. Det betyder f.eks., at den visuelle del af applikationen kan udvikles uafhængigt af den forretningsmæssige og styrende del. Ud over de udviklingsmæssige fordele gør det også test af de enkelte dele simplere og mere robust. WCSF bliver beskrevet mere indgående i afsnit 5.1 Præsentationsserverarkitektur. Kommunikation mellem BBRklienten og præsentationsserveren foregår med en krypteret forbindelse (SSL) over internettet. Ud over BBR-klientens præsentationsdel har præsentationsserveren også en Servicegateway. Her udstilles eksterne OIOXML-snitflader gennem en servicefacade til den såkaldte Kommuneklient. Servicegatewayen implementeres med Windows Communication Foundation (WCF). WCF er en del af.net Framework 3.0 og Microsofts samlede programmeringsmodel til at bygge serviceorienterede applikationer. OWSA-model T benyttes til kommunikation med Kommuneklienten. WCF understøtter herudover en række andre muligheder for kommunikation, som senere kan tages i anvendelse. Præsentationsserveren kommunikerer med applikationsserverens udstillede services via et serviceagentlag. Også her benyttes WCF til kommunikationen. Endelig sørger præsentationsserveren for at autentificere brugerne af både BBRklienten og Kommuneklienten. En uddybning heraf findes i kapitlet om Sikkerhed. Forretningslogik og dataaccess implementeres på applikationsserveren og udstilles ved hjælp af services, som kan tilgås af præsentationsserveren. Endvidere implementeres ASP.NET Providers, der bl.a. benyttes til autorisationskontrol i forretningslaget og præsentationslaget. På applikationsserveren implementeres også de programmer, som skal køre som batchjob. Applikationsserverens dele beskrives nærmere i afsnittet Applikationsserverarkitektur. 5.1 Præsentationsserverarkitektur Som tidligere nævnt baseres præsentationsdelen af BBR-klienten på WCSFmodellen (http://www.codeplex.com/websf). Dette er nærmere beskrevet i det følgende ud fra Figur 2. Masterpage Masterpage fungerer generelt som et alternativ til frames, hvor selve funktionaliteten sker på præsentationslaget i stedet for som ved frames, på klientbrowse- Version 7.0 Side 3 af 7
ren. Dette giver en væsentligt mere overskuelig kode samt færre HTTP-kald fra klienten. Masterpage er en del af Web Client Software Factory-konceptet. http://msdn2.microsoft.com/en-us/library/system.web.ui.masterpage.aspx Themes (.skin/.css) Themes kan med fordel anvendes som en ekstra mulighed for at definere standardværdier globalt for standardkontroller, billedstier osv. CSS anvendes som normalt med klasser indeholdende skrifttyper, farvekoder osv. http://msdn2.microsoft.com/en-us/library/ykzx33wh.aspx Masterpage SiteMapDataSource Bliver opbygget efter brugerens rettigheder Modul liste ScriptManager AJAX AJAX Moduler (contentplaceholder) ScriptManagerProxy AJAX Themes UpdatePanel UpdatePanel Navigation Web Client Software Factory ObjectBuilder Composite Web UI Application Block EnterpriseLibrary Page Flow Application Block* Platform Windows Workflow Foundation ASP.NET 2.0 AJAX ASP.NET 2.0 Internet Information Services (IIS) 6.0 Figur 2.2 WCSF Version 7.0 Side 4 af 7
SiteMapDataSource SiteMapDataSource er en metode til at opbygge selve hierarkiet af moduler og sider. Fordelene ved denne metode er, at man kan få den til tjekke rettigheder og roller til de enkelte moduler og sider (fuldautomatisk), og kun vise de sider som den enkelte person har rettigheder til i standard kontrollen. SiteMapDataSource er en del af Web Client Software Factory konceptet. http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.sitemapdatasource.aspx Modulliste I modullisten bliver brugerne præsenteret for de moduler og sider, som han/hun er tildelt rettighed til. Modullisten er en del af Web Client Software Factory-konceptet. http://www.codeplex.com/websf Moduler (ContentPlaceHolder) Dette er området, hvor indholdet af de enkelte sider bliver præsenteret. ContentPlaceHolder er en del af Web Client Software Factory konceptet. http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.contentplaceholder.aspx Scriptmanager (ASP.NET AJAX) Scriptmanager er det framework, som giver mulighed for at benytte ASP.NET AJAX-funktionalitet. Der kan kun være en scriptmanager pr. side, og denne er derfor placeret på masterpage for at håndtere dette globalt for alle sider. http://ajax.asp.net/docs/mref/3b24af40-d9f2-7ddd-cb8e-38a9bb90b9c6.aspx ScriptManagerProxy(ASP.NET AJAX) ScriptManagerProxy er nødvendig, når en side i en ContentPlaceHolder skal referere direkte til Scriptmanager på en masterpage. Hvis man f.eks. vil kalde en webservice, er det nødvendigt at referere direkte til Scriptmanager. Da dette ikke er muligt fra en contentpage, refereres der i stedet til ScriptManagerProxyen. http://ajax.asp.net/docs/mref/20330992-6131-bf15-bd5d-0818cbfe2c08.aspx Navigation Navigation muliggør, at listen af entiteter vises (i f.eks. et treeview). Når en given entitet aktiveres, vises detailskærmbilledet for denne. http://msdn2.microsoft.com/en-gb/library/w25ef46s.aspx GUI-element GUI-element er de ASP.NET-standardkontroller, som de enkelte skærmbilleder indeholder, f.eks. tekstbokse, knapper osv. Også customiserede kontroller kan indgå som GUI-elementer. http://msdn2.microsoft.com/en-gb/library/tt9b3d0f.aspx Web Client Software Factory ObjectBuilder ObjectBuilder er en del af Web Client Software Factory-modellen og er bl.a. med til at holde modulerne adskilt samtidig med, at de skal have mulighed for at kommunikere med hinanden. http://www.codeplex.com/wiki/view.aspx?projectname=objectbuilder EnterpriseLibrary EnterpriseLibrary er et bibliotek af best practice-metoder implementeret i applikationsblokke. Biblioteket er designet til at assistere udvikleren med al- Version 7.0 Side 5 af 7
mindelige Enterprise -udviklingsproblemstillinger. http://www.gotdotnet.com/codegallery/codegallery.aspx?id=295a464a-6072-4e25-94e2-91be63527327 Composite Web UI Application Block Composite Web UI Application Block er en essentiel del af Web Client Software Factory modellen, som håndterer de centrale elementer som f.eks. work item, module init osv. http://www.codeplex.com/websf Page Flow Application Block* Page Flow Application Block er en tilføjelsesmulighed til Web Client Software Factory-modellen, som håndterer sidenavigation separat og hjælper med at holde tilstanden i objekter med lang levetid og komplekse workflow. Page Flow Application Block vil blive anvendt de steder i projektet, hvor der kan drages fordel af denne funktionalitet. http://www.codeplex.com/websf Platform Platformen består af en Windows 2003-server R2. http://www.microsoft.com/windowsserver2003/default.mspx ASP.NET AJAX ASP.NET AJAX er valgt som en tilføjelse til Web Client Software Factorymodellen. Dette er med til at højne brugeroplevelsen væsentligt, da skærmbillederne ikke skal opdateres 100 % ved hver handling, der bliver udført i systemet. Med ASP.NET AJAX er det kun de aktuelle data, der blive opdateret, og dette sker helt asynkront. http://ajax.asp.net/default.aspx?tabid=47 ASP.NET 2.0 Her bliver selve serversiden genereret. De felter, brugeren har rettighed til, bliver godkendt til afsendelse til klienten, de rigtige tooltips bliver genereret, og eventuel præudfyldning af formfelter foretages. For hver enkelt sidenavigation bliver alt XHTML genereret/gengenereret og afsendt til klienten. http://asp.net/ Internet Information Services (IIS) 6.0 Internet Information Services (IIS) 6.0 er den valgte webserver. http://www.microsoft.com/windowsserver2003/iis/default.mspx Version 7.0 Side 6 af 7
5.2 Applikationsserverarkitektur Som det fremgår af Figur 2.1, har applikationsserveren en lagdelt arkitektur, som er baseret på Web Service Software Factory modellen. (http://www.gotdotnet.com/codegallery/codegallery.aspx?id=6fde9247-53a8-4879-853d- 500cd2d97a83). De enkelte lag beskrives nedenfor. ServiceInterface Lag ServiceInterface laget består af to dele: ServiceContract og ServiceAdapter. ServiceContract-komponenten beskriver, hvilke operationer og hvilke data eller beskeder der skal udveksles. ServiceAdapteren implementerer servicekontrakten og udstiller funktionaliteten udadtil. Endvidere er det her, der sker en mapning mellem data beskrevet af servicen og data beskrevet i forretningslaget. ServiceInterface-laget benytter WCF til kommunikation med præsentationsserveren. ForretningsLag Forretningslaget definerer dels forretningsentiteterne fra systemets domænemodel samt den forretningslogik, der er knyttet hertil. Data Access Lag Data Access-laget indeholder den logik, der skal til for at tilgå data i SQLdatabasen. Derudover indeholder den også serviceagenter, der indpakker kommunikationen med eksterne systemer, så det er transparent for forretningslaget at tilgå data. Batch Ud over at udstille services skal applikationsserveren også hoste de programmer, der ikke skal tilgås som services, men f.eks. køre en gang i døgnet. ASP.NET Providers Til at styre sikkerhed og autorisationer implementeres ASP.NET Providers på applikationsserveren. Funktionaliteten heri udstilles som en WCFservice bl.a. til brug af præsentationsserveren. Version 7.0 Side 7 af 7