Förstudie avveckling av EPi-Server för EBH

Förstudie avveckling av EPi-Server för EBH-stödet
Alternativ 0
Behåll befintlig funktionalitet och design och behåll även EPi-Server
Fördelar:
o Man slipper den engångskostnad som blir med alternativ 1 respektive alternativ 2
Nackdelar:
o Koden kommer även fortsatt att vara föråldrad, vilket innebär stora begränsningar i
vilken nyutveckling som är möjlig att göra i systemet.
o Begränsningarna i den nyutveckling som är möjlig innebär bland annat att utrymmet att
göra anpassningar som underlättar för kommunernas behov är avsevärt mindre.
o Det kommer även fortsatt att vara lika tidskrävande som nu för utvecklarna att rätta
buggar och nyutveckla, vilket innebär fortsatt höga utvecklingskostnader per
utvecklingsuppgift
o Det finns inga automattester i EBH-stödet idag och är inte heller möjligt att utveckla i
befintligt system. Automattester ger säkrare test vid ny utveckling och minskar den tid
som verksamhetens objektspecialister måste avsätta för testning.
o Det kommer även fortsatt att vara lika tidskrävande som nu för verksamhetens
objektspecialister att testa och återtesta ny utveckling
o Enda systemet med EPi-Server inom länsstyrelsernas driftsmiljö
o Årliga licenskostnader, som kommer att öka för att få bästa kapacitet med EPi-Server
o IT-enheten har ingen egen kompetens inom EPi-Server, vilket innebär merkostnad för
extern konsult för hantering av EPi-Serverspecifika frågor
o Ingen långsiktighet i att EBH-stödet byggs på EPi-Server, enligt IT-enhetens bedömning
o Utvecklingslicensen för EPi-Server tillåter bara att en webbserver på utvecklingsservern
använder licensen. Detta betyder att konsulterna får turas om för att lägga upp ny
utveckling på servern, vilket utgör ett hinder i utvecklingsarbetet och är mindre effektivt.
Alternativ 1
Behåll befintlig funktionalitet och design, men ta bort beroendet av EPiServer.
Fördelar:
o Licenskostnaderna för EPiServer försvinner
o Beroendet av den EPiServer-specifika koden försvinner
o Enligt konsultens uppskattning ca 10-20% mindre utvecklingstid vid ändring och tillägg av
befintlig kod
o OM EBH-stödet INTE ska finnas kvar på längre sikt kan det vara en ekonomisk vinst i att behålla
befintlig arkitektur och endast ta bort EPiServer-kopplingarna
Nackdelar:
o En engångskostnad för utvecklingsinsatsen
o Koden kommer även fortsatt att vara föråldrad, vilket innebär stora begränsningar i vilken
nyutveckling som är möjlig att göra i systemet.
o Begränsningarna i den nyutveckling som är möjlig innebär bland annat att utrymmet att göra
anpassningar som underlättar för kommunernas behov är avsevärt mindre.
o Det kommer även fortsatt att vara tidskrävande för utvecklarna att rätta buggar och
nyutveckla, vilket innebär fortsatt höga utvecklingskostnader per utvecklingsuppgift
o Det finns inga automattester i EBH-stödet idag och är inte heller möjligt att utveckla i befintligt
system. Automattester ger säkrare test vid ny utveckling och minskar den tid som verksamhetens
objektspecialister måste avsätta för testning.
o Det kommer även fortsatt att vara lika tidskrävande som nu för verksamhetens objektspecialister
att testa och återtesta ny utveckling.
o Möjligheter att förbättra användarvänligheten finns alltid, men är mer begränsade med
alternativ 1 jämfört med alternativ 2
Estimat uppskattad tid för utvecklingsinsatsen: 600 – 700 timmar
Observera dock att detta är endast ett preliminärt estimat. Utan en komplett detaljerad lösningsspecifikation kan
konsulten inte förbinda sig till en mer exakt uppskattning av antal timmar.
Alternativ 2
Utgå från önskad funktionalitet och skapa ett nytt EBH-stödet 3.0.
Beroendet av EPiServer tas samtidigt bort.
Fördelar:
o Licenskostnaderna för EPiServer försvinner
o Beroendet av den EPiServer-specifika koden försvinner
o Systemet blir betydligt enklare och billigare att vidareutveckla, förvalta och underhålla
o Kortare utvecklingstid per utvecklingsuppgift. Enligt konsultens uppskattning ca 40-50%
mindre utvecklingstid vid ändring och tillägg av befintlig kod
o Kortare startsträcka när nya utvecklare ska sätta sig in i befintlig kodbas
o Stor valfrihet i vilka ändringar och förbättringar som kan göras i systemet, vilket även
innebär möjligheter att göra anpassningar som underlättar för kommunernas behov
o Stora möjligheter att förbättra användarvänligheten
o Möjlighet att anpassa till nya behov längre fram, vilket även innefattar möjlighet att
anpassa till andra enheter (surfplatta, telefon)
o Möjlighet att bygga in automattester. Automattester ger säkrare test vid ny utveckling
och minskar den tid som verksamhetens objektspecialister måste avsätta för testning.
Nackdelar:
o Hög engångskostnad för denna utvecklingsinsats
Estimat uppskattad tid för utvecklingsinsatsen: 1000 – 1200 timmar
Observera dock att detta är endast ett preliminärt estimat. Utan en komplett detaljerad lösningsspecifikation kan
konsulten inte förbinda sig till en mer exakt uppskattning av antal timmar.
Hur ser framtiden ut för EBH-stödet?
Roller för Länsstyrelsen, Naturvårdsverket, kommunerna?
Ska EBH-stödet under ett antal år framöver finnas kvar och
vara det nationella systemet för uppgifter om förorenade områden?
Kommer EBH-stödet även på ett antal års sikt att vara lika viktigt som idag?
Kan EBH-stödet till och med få ännu större betydelse de närmaste åren framöver?
Eller ska något annat system ta över denna roll på några års sikt?
Från och med i år hämtar Naturvårdsverket data till nyckeltalsredovisningen direkt från
EBH-stödet. Systemet ger också underlag till bland annat miljömålsuppföljningar. Nu är
det också på gång att kommunerna ges tillgång till EBH-stödet. Det är därför ännu
viktigare att systemet är användarvänligt och fungerar väl.
Tre aktörer finns idag med i bilden – Länsstyrelsen, Naturvårdsverket och kommunerna.
Kommer alla dessa aktörer att ha kvar samma roller som idag?
Finns det någon annan myndighet med annat system som kan bli aktuell att ta över
motsvarande funktion inom några år?
Schematisk bild av hela systemet EBH-stödet
2015-03-11 Underlaget är framtaget inför EBH-stödets beslutandegrupps möte den 17 mars.
Sida 1 av 2
Jämförelse kostnader mellan alternativen 0, 1 och 2 utifrån Altrans Förstudie avveckling av EPiServer för EBH-stödet
*Tabellen visar uppskattade kostnader för alternativen 0, 1 och 2.
En årlig driftskostnad på 244 000 kr för produktionsmiljö, utvecklingsmiljö och testmiljö är konstanta och kommer att kvarstå oavsett vilket alternativ som
väljs. Eftersom denna summa inte skiljer mellan de olika alternativen har denna kostnad inte tagits med i ovanstående tabell.
Alternativ 1
Uppskattat utifrån aktuellt underlag kommer investeringskostnaderna att sparas in på i storleksordningen 1,5-2 år.
Altrans uppskattning av antal timmar för att genomföra alternativ 1 är 600-700 timmar. Investeringskostnaden för alternativ 1 är 480 000-560 000 kr
(beräknat på en timkostnad på 800 kr för Altran, vilket är den aktuella uppgift vi har). I tabellen har den högsta kostnaden använts, motsvarande 700
timmar. Altrans uppskattning i utvecklingstid som kan sparas vid alternativ 1 är mellan 10-20 %. I tabellen har ett medelvärde använts på 15 %.
Alternativ 2
Uppskattat utifrån aktuellt underlag kommer investeringskostnaderna att sparas in på i storleksordningen 1-1,5 år.
Tabellen ovan visar att med alternativ 2 kommer det att efter denna investeringsinsats att vara möjligt att antingen få ut i storleksordningen dubbelt så
mycket utveckling för samma kostnad eller att alternativt få samma mängd utveckling till halva kostnaden.
Altrans uppskattning av antal timmar för att genomföra alternativ 2 är 1 000-1 200 timmar. Utvecklingskostnaden för alternativ 2 är 800 000-960 000 kr
(beräknat på en timkostnad på 800 kr för Altran, vilket är den aktuella uppgift vi har). I tabellen har den högsta kostnaden använts, motsvarande 1 200
timmar. Altrans uppskattning i utvecklingstid som kan sparas vid alternativ 2 är mellan 40-50 %. I tabellen har ett medelvärde använts på 45 %.
2015-03-11 Underlaget är framtaget inför EBH-stödets beslutandegrupps möte den 17 mars.
Sida 2 av 2
Förvaltningskostnader
Förvaltningens kostnader för kravställan och test är uppskattade utifrån användarrådets samordnares tidredovisning på dessa koder i Agresso. I realiteten
tillkommer det ytterligare tid för övriga testare i användarrådet. Denna tid ersätts dock inte inom förvaltningens budget.
Utifrån aktuellt underlag uppskattar användarrådets samordnare att den tid som förvaltningen lägger ner på kravställan och test kommer att kunna minskas
med cirka 25 % om alternativ 2 väljs.
Förstudie avveckling av EPiServer för EBHstödet
Kompletterande frågor och svar
2015-02-23
1
Innehåll
1
Alternativen .............................................................................................................. 3
Alternativ 0.................................................................................................................................................... 3
Alternativ 1.................................................................................................................................................... 3
Alternativ 2.................................................................................................................................................... 3
2
Förklaring till förstudiens avsnitt 1.11 ........................................................................ 3
Hur långt fram i tiden är det som är ”några år”? .............................................................................................. 3
3
Nyttorna med alternativ 1 .......................................................................................... 3
Minskade licenskostnader .............................................................................................................................. 3
Minskad kodbas............................................................................................................................................. 3
Lättare applikation ......................................................................................................................................... 4
Ingen främmande fågel .................................................................................................................................. 4
Kompetenstillgång ......................................................................................................................................... 4
Lättare att utveckla ........................................................................................................................................ 4
4
Nyttorna med alt. 2 ................................................................................................... 4
Minskade underhålls- och vidareutvecklingskostnader ................................................................................... 4
Tillgodose dagens behov ............................................................................................................................... 5
Möjlighet att anpassa till andra enheter .......................................................................................................... 5
Modern design............................................................................................................................................... 5
Tillgänglighet ................................................................................................................................................ 5
5
Vad ingår? ................................................................................................................. 6
Alternativ 1.................................................................................................................................................... 6
Alternativ 2.................................................................................................................................................... 6
6
Tidsvinster för de olika alternativen............................................................................ 6
Allt beror på utvecklingstakt .......................................................................................................................... 6
2
1 Alternativen
De olika alternativ som finns för EBH-stödet är:
Alternativ 0
EBH-stödets kodbas lämnas som det är. EPiServer-beroendet och all kod i övrigt lämnas
som det är, och underhåll och vidareutveckling sker på plattformen Microsoft
asp.net/Webforms med EPiServer
Alternativ 1
Kopplingarna till EPiServer tas bort, vilket lämnar en ren Microsoft asp.net/Webformsarkitektur
Alternativ 2
Existerande ”backend1” (Reporting Services, MS SQL databas och databaslager (EBHWS från
förstudien)) behålls, medan logik och användargränssnitt byggs om från grunden på
Microsoft asp.net MVC-arkitektur
2 Förklaring till förstudiens avsnitt 1.11
Hur långt fram i tiden är det som är ”några år”?
Med några år menade jag här 2-3 år. En mer rättvisande formulering är kanske ”Eller
kommer eventuellt någon annan myndighet med annat system att ta över motsvarande
funktion innan något förändringsbehov av EBH-stödet uppstår?”
3 Nyttorna med alternativ 1
Vinsterna med att plocka bort EPiServer-beroenden är:
Minskade licenskostnader
EPiServer är förknippat med en årlig kostnad, och föremål för versionsuppdateringar när en
ny version föreligger. Utan EPiServer-beroende kapas licenskostnad och eventuella framtida
licenskostnadsökningar.
Minskad kodbas
Varje kodrad i en applikation är en potentiell felkälla. En inte föraktlig mängd kod i EBHstödet rör kopplingar mot EPiServer. Ofta används i EBH-stödet EPiServer-specifik
funktionalitet som endast duplicerar redan befintlig funktionalitet i bas-plattformen
Microsoft asp.net/ Webforms. Kodbibliotek som EPiServer har kända in- och utgångar. Vad
som sker ”där inne” är dock okänt. Sker något oväntat eller oförutsett inne i ett externt
kodbibliotek är det inget som en utvecklare kan påverka. Ju mindre man använder
1
I ett datorystem brukar man skilja på frontend och backend. Frontend är användargränssnitt och kod för att visa information,
Backend är datalager, dataåtkomst och databearbetning.
tredjepartsbibliotek, desto bättre kontroll över programmet har man som utvecklare. Utan
EPiServer minskas antal kodrader vilket i sin tur ger mindre mängd kod att underhålla och
ett system som är lättare att sätta sig in i och förstå vid underhåll, funktionalitetstillägg och
förändringar.
Lättare applikation
Varje kodrad tar också tid att utföra när applikationen körs. Med färre kodrader och inga
anrop av funktioner i EPiServer-biblioteket, kommer EBH-stödet att blir snabbare och mer
”responsivt”.
Ingen främmande fågel
Inget annat system i Länsstyrelsens IT-miljö använder EPiServer. Ur driftsynpunkt är det bra
med en ”homogen” miljö. Ren Microsoft-kod borde ur den synvinkeln vara att föredra. För
EBH-stödets del är också EPiServer främmande. EPiServer är främst ett CMS2-system, i likhet
med SharePoint (som bland annat används som ramverk för Insidan). EBH-stödet har
mycket lite att göra med publicering av texter, nyheter med mera, som syftet med ett CMSsystem är.
Kompetenstillgång
Det finns betydligt fler IT-konsulter som är bekanta med Microsoft asp.net/ Webforms än
Webforms/EPiServer
Lättare att utveckla
Även utvecklingsmiljön kräver en EPiServer-licens. Dock finns endast en licens för
utveckling, vilket gör att utvecklarna i teamet måste vänta på varandra vid testkörning och
felsökning, samt stoppa EPiServer mellan varje pass. Detta skapar onödiga stopp och
avbrott i utvecklinsprocessen, och förlänger utvecklings- och felksökningstid.
4 Nyttorna med alt. 2
Med alternativ 2 får man samtliga de nyttor som erhålls med alternativ 1. Utöver nyttorna
med alternativ 1 kommer alternativ 2 att ge:
Minskade underhålls- och vidareutvecklingskostnader
Existerande kod är, även med EPiServer-beroenden borta, snårig, och med många oväntade
kopplingar och beroenden. Samtidigt är stora kodblock och delar av användargränssnittet
duplicerade, där samma kod borde kunna användas.
För varje fel som ska hittas eller förändring som ska göras i existerande kod, krävs en djup
analys av stora delar av koden för att hitta rätt, och det är svårt att veta om förändringen
har oväntade effekter på andra ställen i koden, eller om den förändring man gjort verkligen
täcker in alla användningsfall.
4
2
Content Management System (innehållshanteringssystem)
Eftersom användargränssnitt och logik i Webforms-arkitekturen är hårt sammanknuten,
finns mycket små möjligheter att skapa automatiska tester av koden – Idag finns inga
automatiska tester. Arkitekturen för alternativ 2 ger betydligt större möjligheter att skriva
automatiska tester, vilket resulterar i minskad risk för oväntade följdproblem med
tidsödande felsökningar som följd, när förändringar i befintlig kod görs. En ny utvecklare
kan göra förändringar utan oro för oväntade följdfel. Automatiska tester kan eliminera
behovet av manuell genomgång av alla aspekter av applikationen (så kallad
regressionstestning3) vid varje förändring, vilket sparar tid vid acceptanstest inom
verksamheten vid Länsstyrelsen.
Tillgodose dagens behov
Ett program som EBH-stödet modellerar en verklighet och process så som den är när
programmet skapas. Över tid förändras verkligheten och processen kan behöva ändras.
Man behåller dock gärna samma process som tidigare (då det är den process programmet
stödjer). I stället för att underlätta processen, blir programmet ramen för processen. Den
process som modellerades för 6-7 år sedan kanske inte är den optimala idag. En
omskrivning av logik och användargränssnitt skulle ge tillfälle att om så önskas arbeta om
den process och modell applikationen ska ge stöd till.
Möjlighet att anpassa till andra enheter
asp.net/Webforms lanserades långt innan den första smarta telefonen eller surfplattan
lanserades. Det är gjort för presentation på datorskärm, och mycket svårt att anpassa till
mindre skärmar. Med alt. 2 finns alla möjligheter att skapa användargränssnitt med vad
som kallas för ”responsiv design”, dvs. att utseende och sidlayout anpassar sig till vilken typ
av enhet (dator, surfplatta, telefon) som används.
Modern design
Vi är idag betydligt mer ”internet-vana” än för 6-7 år sedan, och har (andra) förväntningar
på hur en webbapplikation ska bete sig. ”Användarupplevelse” är något man kanske mest
talar om i kommersiella applikationer, men det är lika viktigt för att få acceptans för och
användning av ett verksamhetsstöd. Har man använt EBH-stödet många år känner man sig
hemma i den miljön, men om en mängd nya användare ska ges tillgång till EBH-stödet kan
det vara värt att arbeta om utseende och pedagogik, för att bättre svara upp mot nya
användares förväntningar.
Tillgänglighet
Tillgänglighet handlar om hur lätt applikationen är att använda, oberoende av eventuella
funktionshinder. Länsstyrelsens webbapplikationer ska uppfylla tillgänglighetskraven i
standarden WCAG 2.0, nivå AA. För att EBH-stödet ska uppfylla dessa krav, krävs
5
3
När man efter ett funktionstillägg eller felavhjälpning kontrollerar att de gjorda förändringarna inte förorsakat nya fel
omskrivning av användargränssnittet, vilket, då koppling mellan webbsida och
bakomliggande kod i befintlig arkitektur är djup, blir ett i sig mycket omfattande projekt.
Med alternativ 2 kan hänsyn till tillgänglighetskrav tas med från start.
5 Vad ingår?
Estimaten är Altran-tid. I samtliga fall ingår lösningsspecifikation och leverans enligt
specifikation (inkl. ev. buggfixar för att uppnå detta), samt assistans vid
produktionssättning.
Alternativ 1
För alternativ ett är kravbilden enkel, och begränsar sig i stort sett till att EBH-stödet ska se
ut och fungera på samma sätt som tidigare, utan EPiServer. Här krävs sannolikt mycket lite
administrativ tid.
Alternativ 2
Alternativ två är komplexare, och beror mycket på hur stora förändringar, jämfört med
dagens system, som tas in i projektet. Andra faktorer som påverkar är självklart hur mycket
tid som ska läggas på workshops, kravmöte, automattester mm. Jag har i uppskattningen
försökt väga in en ”normalnivå” på dessa aktiviteter, samt enhetstestning4 av de viktigaste
koddelarna. Enhetstestning tar tid vid det initiala utvecklingsarbetet, men eliminerar mycket
tid och osäkerhet vid förvaltning, underhåll och förändringar.
6 Tidsvinster för de olika alternativen
Allt beror på utvecklingstakt
Då framtida (för mig okända) behov av underhåll och nytutveckling är det som styr
ekonomin i de olika alternativen, är det omöjligt att uppge denna faktor i siffror. I stället
6
4
Med enhetstestning testas små kodblock med olika indata för att verifiera att utdata blir korrekt i alla lägen. Teorin är att om
alla små kodblock testas och fungerar som tänkt, kommer också helheten att fungera som tänkt.
försöker jag illustrera det med detta diagram:
På vertikal axel har vi kostnad. Alternativ 0 har ingen initial kostnad, alternativ 2 en högre
initial kostnad, och alternativ 1 befinner sig någonstans däremellan.
På horisontell axel har vi hur mycket förändringar som ska utföras av EBH-stödet i
framtiden. Ju mer förändringar, desto snabbare kommer den initiala kostnaden att ge
avkastning i form av att utvecklings- och underhållskostnaderna blivit lägre. Man kan också
komma till en punkt för alternativ 0 och 1 där en önskad förändring inte går att
åstadkomma alls på den plattformen, utan man tvingas att ändå välja alternativ 2 vid en
senare tidpunkt. Mycket av de utvecklingsinsatser och kostnader som lagts på ”gamla”
plattformen går då förlorade.
Uppskattningsvis blir, vid förändringar av och tillägg till befintlig kod, vinsten med
alternativ 1 10-20%, medan vinsten med alternativ 2 troligen skulle vara runt 40-50%, dvs.
7
tillägg till och förändringar av EBH-stödets kod skulle ta ca halva tiden jämfört med hur
koden ser ut idag.
8
Förstudie avveckling av EPiServer för EBHstödet
2015-02-12
1
Innehåll
1.1
EBH-stödet idag .................................................................................................................................... 3
1.2
EBH och EPiServer idag .......................................................................................................................... 4
1.3
Avveckling av EPiServer-beroenden ....................................................................................................... 4
1.3.1
Behåll befintlig arkitektur .............................................................................................................. 4
1.3.2
Nytt EBH-stöd med ASP.NET MVC – EBH-Stödet 3.0 ....................................................................... 5
1.4
Rättigheter/Behörighetsnivåer ............................................................................................................... 5
1.5
Modernisering av kod ........................................................................................................................... 6
1.5.1
Dagsläge ....................................................................................................................................... 6
1.5.2
Framtid ......................................................................................................................................... 6
1.5.3
Tillgänglighet ................................................................................................................................ 8
1.6
Kompatibilitet med andra/senare webbläsare, touchskärmar, små skärmar ............................................ 8
1.6.1
Internet Explorer 11version 11.0.9600.17501 ................................................................................ 8
1.6.2
Google Chrome version 40.0.2214.111 m...................................................................................... 8
1.6.3
Firefox version 35.0.1 ................................................................................................................... 9
1.6.4
Pekskärmar/surfplattor/telefoner .................................................................................................. 9
1.7
SharePoint-integration ........................................................................................................................ 10
1.8
Ärendehantering ................................................................................................................................. 10
1.9
Kommunernas åtkomst till EBH-stödet - Kommunaccessen ................................................................. 11
1.10
API .................................................................................................................................................. 13
1.11
Sammanfattning och rekommendation ............................................................................................ 14
1.1 EBH-stödet idag
EPISERVER
WEB FORMS
EBH
REPORTING
SERVICES
EBH WS
SQL
DATABAS
ASP.NET
EBH-stödet utgörs idag av tre komponenter:

Webbapplikationen EBH som är en ASP.NET-lösning med Web Forms-arkitektur.
Ovanpå denna finns ett starkt kodmässigt beroende till EPiServer, vars funktionalitet
dock används i mycket liten utsträckning. I EBH-blocket sker all presentation och
behandling av data.

Data lagras i en Microsoft SQL databas

All kommunikation mellan webbapplikation (EBH) och datalager sker via IISapplikationen EBH WS. Detta är en Microsoft WCF1-applikation som tillhandahåller en
3
1
Windows Communication Foundation
uppsättning SOAP2-webbtjänster, som hämtar, uppdaterar och lagrar data i databas,
samt hämtar data från externa system (idag endast Vattenförvaltningens IT-system
Vatteninformationssystem Sverige; VISS).

Reporting Services används för rapportuttag för utskrifter och export till vanliga
format som PDF, Excel mm.

I texten som följer, avses med ”EBH” blocket/systemdelen EBH i bilden ovan, medan
EBH-stödet syftar på hela systemet; EBH, EBH WS, SQL Databas och Reporting
Services.
1.2 EBH och EPiServer idag
EPiServer används, i den utsträckning det går att bedöma utan en total genomlysning av
existerande kod, till följande:

Åtkomsthantering (auktorisering)

Underhåll av texter på startsidan

Lagring och uppdatering av hjälpdokument och blankettmallar

Lagring och underhåll av länkar till webbgis (olika per länsstyrelse)
Dock har samtliga sidor och funktioner i EBH-stödet referenser och kopplingar till
EPiServer-kod. Ofta har ”inbyggd” ASP.NET/Web Forms-funktionalitet ersatts med
motsvarande EPiServer-funktionalitet.
EBH WS, d.v.s. skiktet mellan EBH och SQL-databas, och Reporting Services-delarna har
inget beroende till EPiServer.
1.3 Avveckling av EPiServer-beroenden
1.3.1 Behåll befintlig arkitektur
För att bryta beroendet av EPiServer, krävs relativt omfattande omskrivning av befintlig kod.
Strategin för detta moment blir att starta ett helt nytt ASP.NET web forms projekt och bit för
bit hämta in funktionalitet från befintligt system, plocka bort eventuella EPiServerkopplingar tills allt fungerar som tidigare.
4
2
Simple Object Access Protocol
Alternativet att utgå från existerande kod och plocka bort EPiServer-beroenden bit för bit
känns som en betydligt riskablare väg att gå, med stor risk för ännu mer svåröverskådlig
och svårhanterlig kod, med ökade kostnader för underhåll som följd.
Därtill kommer att skapa de delar av EPiServer som utnyttjats i EBH-stödet; auktorisering,
texter, dokumentlagring och länkhantering.
Målet för detta är exakt bibehållen funktionalitet och design, men utan behov av EPiServer,
tillhörande licenskostnad och EPiServer-specifik kod. Även utan EPiServer kommer dock
kodbasen fortsatt att vara ”snårig” och komplex med många oväntade och ovanliga
beteenden och lösningar.
Estimat tidsåtgång: 600-700 tim
1.3.2 Nytt EBH-stöd med ASP.NET MVC – EBH-Stödet 3.0
Som alternativ till ovan finns möjligheten att, utgående från önskad funktionalitet (snarare
än befintlig funktionalitet), skriva om EBH-delen i ASP.NET MVC
Förutom de fördelar som tas upp under avsnittet Modernisering av kod, ger detta ett
system som är betydligt enklare och billigare att vidareutveckla, förvalta och underhålla.
De olika delarna som idag utgör EBH-stödet kan angripas var för sig. Steg ett är att skriva
om EBH, steg 2 EBH WS som skulle kunna förenklas och effektiviseras betydligt, steg 3
uppdatera Reporting Services till senaste version, samt att låta rapporter nyttja samma
data-access (via EBH WS) som EBH för att ha samma data/frågor oavsett om rapport tas ut,
eller data visas i gränssnittet.
Estimat tidsåtgång (steg 1): 1000-1200 tim
1.4 Rättigheter/Behörighetsnivåer
Rättighets- och behörighetsstrukturen är relativt enkel, med 6 olika behörighetsroller. Med
ekonomi-funktionerna nu inaktiverade, omfattas endast objekt och dokument kopplade till
objekt av åtkomstkontroll. Alla kan se och söka alla objekt, se och söka dokument kopplade
till objekt tillhörande egen organisation, samt ta ut rapporter, medan endast vissa grupper
kan skapa/ändra/ta bort objekt/dokument.
Begränsningen utgörs alltså av tillgång eller icke tillgång till redigeringsverktyg för
objekt/dokument, samt åtkomst till dokument baserat på organisationstillhörighet
(kommun, Länsstyrelse, Naturvårdsverket) vilket bör vara en relativt enkel styrning att
implementera.
5
1.5 Modernisering av kod
1.5.1 Dagsläge
EBH är, under EPiServer, utvecklat på Microsofts ASP.NET Web Forms-teknik. Idag bygger
EBH på Microsoft .net-plattform version 4.0, medan webbservice (EBH WS/databasåtkomst)
bygger på Microsoft .net version 2.0. Aktuell version av Microsoft .net-plattformen är 4.5.1
Användargränssnitt skapas utifrån fördefinierade komponenter som, när systemet körs,
omvandlas till den HTML-kod som bygger upp en sida med dess layout och innehåll i
webbläsaren. Detta har tillåtit snabb utveckling på bekostnad av flexibilitet, då man förlorar
full kontroll över hur den resulterande HTML-koden (och därmed presentationen i
webbläsaren) blir. Web Forms introducerades samtidigt med ASP.NET-plattformen som
ersatte ”klassisk ASP” i början av 2000-talet. ”Under huven” används View State, en teknik
för att hålla reda på vilka förändringar användaren gör i en sida. Om applikationen inte
specifikt talar om vad som är relevant att hålla reda på i en sida, kan detta View State bli
mycket stort, något som påverkar prestanda när det skickas fram och tillbaks mellan
webbläsare och server varje gång en sida öppnas eller sparas. Som exempel är den totala
storleken för sidan Objektsammanfattning i visa-läge ca 400 kB, varav View State utgör
dryga 3/4. Med bra prestanda på datorer och nätverk blir användarupplevelsen inte
nämnvärt påverkad, men med begränsningar i processorkraft och nätverk (så som
surfplattor och andra mobila enheter) påverkas användarens upplevelse av hur effektivt
arbetet utförs av den mängd data som ska överföras och bearbetas.
Web Forms bygger till stor del på post back, d.v.s. användaren öppnar ett formulär, fyller i
information, klickar på Spara varpå sidan laddas om i sin helhet (alternativt en ny sida
laddas).
Det finns en hård koppling mellan användargränssnittets komponenter (textrutor, knappar,
rullgardinsmenyer mm) och bakomliggande kod, vilket innebär att användargränssnittet
inte kan förändras utan att bakomliggande kod också uppdateras.
Utveckling sker med Microsoft Visual Studio 2010, och källkod hanteras i SVN3
1.5.2 Framtid
Ett ledord vid webbutveckling idag är Responsiv Design, d.v.s. sidans layout, utseende och
funktion anpassar sig till den webbläsare (och framför allt skärmstorlek) som används för
att använda systemet. På så sätt kan samma webbapplikation användas oavsett vilken typ
6
3
Apache Subversion – Ett system för versionshantering av källkod
av enhet (dator/surfplatta/telefon) som används. Detta kräver dock full kontroll över den
HTML-kod som skickas till webbläsaren på en nivå som Web Forms inte tillåter.
Responsiv design berörs också i förstudien Koncept Webb 2.0, på Länsstyrelsens uppdrag
utförd av Meridium AB, 2014
Clean Code är sedan en tid ett tankesätt som genomsyrar programutveckling både hos
Altran och hos de flesta större IT-konsulter. Koden ska, förutom att lösa sin uppgift, också
vara skriven på ett sådant sätt att den ska vara självförklarande, lätt att förstå, lätt att
underhålla och lätt att förändra. Fördelen är lägre förvaltnings- och underhållskostnader,
samt kortare startsträcka när nya utvecklare ska sätta sig in i befintlig kodbas.
Med generella, standardiserade kodbibliotek (ex jQuery, Angular m.fl.) underlättas
utvecklingen av klient-logik så som validering av inmatning på ett sätt som fungerar på en
känd mängd webbläsare.
Man talar idag också mycket om one page applications, där allt informationsutbyte mellan
klient och server sker i bakgrunden utan omladdning av sidan. Webbapplikationen upplevs
då mer som ett vanligt datorprogram än något man kör i webbläsaren.
Idag sker nyutveckling på Microsofts ASP.NET-plattform företrädesvis med arkitekturen
MVC (Model View Controller). Den stora fördelen är ”separation of concerns”, d.v.s.
användargränssnitt, data-modell och logik är tydligt separerade, och kan fungera fristående
från varandra. Denna separation tillåter så kallad ”testdriven utveckling” (TDD4) och
underlättar automattestning i allmänhet. Med automatiska tester blir riskerna för oväntade
följdproblem vid förändring/uppdatering av befintlig kod mindre, och omfattningen av
manuella tester av hela systemet vid varje förändring minskas.
Utvecklaren ges full kontroll över användargränssnittets utformning och kan helt fritt ändra
alla aspekter av användargränssnittet utan att bakomliggande kod förändras. Beroende på
skärmstorlek kan exempelvis helt olika vyer av samma data visas i webbläsaren (till
exempel om det finns krav som inte är möjliga att uppfylla med responsiv design).
I jämförelse med Web Forms tar nyutveckling med MVC generellt längre tid, (Web Forms
beskrivs ofta som en arkitektur för RAD5) men sett över ett längre tidsperspektiv där även
förvaltning, underhåll och vidareutveckling vägs in, är uppfattningen att en MVCapplikation ger en lägre totalkostnad än motsvarande Web Forms-applikation.
Utvecklingsmiljön bör uppgraderas till Visual Studio 2013 med källkodshantering på
Länsstyrelsens Team Foundation Server Online. Samtliga systemdelar (EBH, EBH WS, EBH
4
Test Driven Development – Först skrivs program för att testa koden, sedan själva programmet
5
Rapid Application Development – Snabb applikationsutveckling
7
API) bör uppdateras till samma version av .net-plattformen (4.5) för att kunna hanteras
inom samma lösning.
Mina tankar kring detta är kommunicerade med lösningsarkitekt på Länsstyrelsernas ITenhet, som kommer att kommentera efter nästa veckomöte för länsstyrelsernas ITarkitekter, 2014-02-17. Eventuellt kan denna förstudie behöva kompletteras när jag fått
information från detta möte.
1.5.3 Tillgänglighet
Länsstyrelsens riktlinjer för webbtjänster gäller även för interna verktyg. Med tanke på
kommunernas tillgång till EBH-stödet, räknas dessutom EBH-stödet då som externt, även
om det inte är publikt.
Webbaserade system ska uppfylla tillgänglighetskrav, samt följa standarden WCAG6 2, nivå
AA. Vid ny- och vidareutveckling av EBH-stödet måste hänsyn till detta tas. Dagens EBHstöd uppfyller inte mer än undantagsvis riktlinjerna i WCAG. Utan en total omskrivning av
användargränssnitt (och därmed bakomliggande kod) är det inte möjligt att leva upp till de
krav Länsstyrelsens riktlinjer för webbtjänster ställer.
1.6 Kompatibilitet med andra/senare webbläsare, touchskärmar,
små skärmar
1.6.1 Internet Explorer 11version 11.0.9600.17501
EBH-stödet fungerar generellt väl med IE11 om man bortser från vissa kosmetiska
skillnader jämfört med IE9, så som typsnitt, storlek, fet-stil mm.
Rapport-genereringen klagar ibland (sällan) över ett skript som tar lång tid att köra men
visar till slut rapporten om man väljer att inte avbryta körningen.
1.6.2 Google Chrome version 40.0.2214.111 m
Kosmetiska skillnader (typsnitt, storlek mm), men all funktionalitet tycks vara på plats, och
fungera som förväntat. Inga skript-varningar.
8
6
Web Content Accessibility Guidelines
1.6.3 Firefox version 35.0.1
Som i Crome och IE11 fungerar EBH-stödet över lag väl. Kosmetiskt ligger utseendet väl i
linje med det vi är vana vid.
Rapportgenerering tar tid, och ett skript som är en del av rapporten tar, precis som för
IE11, så lång tid att webbläsaren varnar:
Detta skript är sannolikt en del av Reporting Services, och därmed utom utvecklarens
kontroll.
1.6.4 Pekskärmar/surfplattor/telefoner
För pekskärmar finns speciella hänsyn att ta; Så kallade Mouse Over-effekter så som
hjälptexter/tooltip eller rullgardinsmenyer som vecklar ut sig när muspekaren vilar över en
yta stöds inte alls, och knappar, menyer och andra komponenter på sidan måste generellt
göras proportionellt större, för att underlätta användandet.
På små skärmar måste ofta innehållet ”stuvas om” för att ge en bra användarupplevelse.
Delar på sidan som på en datorskärm kan ligga sida vid sida måste på en telefon placeras
under varandra.7 Detta berörs också i förstudien Koncept Webb 2.0
Beroende på plattform (Android, IOS, Windows Phone för att nämna de största) förväntar
man sig också ett visst grafiskt utseende och navigationssystem, som ofta skiljer sig
markant från hur en webbapplikation för datorer är gjord.
Det finns inga möjligheter att anpassa EBH för pekskärmar/surfplattor/telefoner utan att
skapa ett helt nytt användargränssnitt, och därmed till stora delar ny bakomliggande kod.
Beroende på förväntad ”publik”, utformas ofta nya webbplatser nu enligt principen Mobile
First, dvs. man börjar med en mycket enkel webbplats som ”alla” webbläsare och enheter
kan hantera, och bygger på denna enkla webbplats med design, funktioner och finesser i
olika nivåer beroende på vad webbläsaren kan hantera. Detta som kontrast till att börja
9
7
Se Modernisering av kod
med en fullfjädrad webbapplikation, där man plockar bort funktionalitet och finesser allt
eftersom man upptäcker att den anslutna webbläsaren har begränsningar.
1.7 SharePoint-integration
SharePoint är först och främst ett system för innehållshantering, dokumenthantering och
digitalt samarbete mellan anställda på en arbetsplats, till exempel Länsstyrelsens intranät
Insidan. Beröringspunkterna med EBH-stödets funktionalitet är få, och att helt bygga EBHstödets funktionalitet på SharePoint-plattformen skulle bli synnerligen komplext om det
alls skulle låta sig göras. Dock:
Dokument/filer i EBH-stödet lagras idag i SQL-databas. Systemet omfattar dryga 120 000
”filer”, på totalt ca 160 GB. Det finns inget annat sätt att hämta ut dokument än via EBHstödet.
SharePoint skulle med fördel kunna användas som dokumentlager för EBH-stödet.
Dokumenten skulle precis som idag kunna förses med olika metadata (typ av dokument,
koppling till objekt, användare etc.). Dokumenten skulle inifrån SharePoint kunna vara
åtkomliga för de som ges läs- (eller skriv-)rättighet till dokumentbiblioteket, samt som nu,
inifrån EBH-stödet, med de åtkomstregler som gäller i EBH. Vår långa erfarenhet av
SharePoint-implementationer säger oss att arbetet med att migrera den mängden
dokument till SharePoint innebär ett inte oansenligt arbete; speciellt som befintliga
dokument i EBH-stödet idag ligger i en tabell i SQL-databasen, och inte som enskilda filer i
filsystemet.
1.8 Ärendehantering
EBH-stödet saknar idag funktionalitet för koppling till ärendehanteringssystem. För
Länsstyrelsens del är en koppling till Platina, eventuellt med direktlänkning från EBH-stödet
till Platina, relativt enkel att implementera. (Sådan funktionalitet är under utveckling i ett
annat Länsstyrelse-projekt.) Dock flaggar personal inom Länsstyrelsen för att det föreligger
ytterligare komplexitet vad gäller ärendehantering, som kan kräva djupare analys.
Situationen kompliceras också av kommunaccessen, om kommunspecifika objekt ska
länkas till kommunspecifika ärendehanteringssystem. Dels kommer olika
ärendehanteringssystem att kräva olika länkar och länkningsmekanismer; dels måste man
sitta på samma nätverk som ärendehanteringssystemet för att kunna nå det. En tänkbar
lösning är att visa länkar till, och funktionalitet för ärendehanteringssystem endast om
användaren och objekt tillhör samma organisation (kommun, Länsstyrelse, Naturvårdsverk)
10
1.9 Kommunernas åtkomst till EBH-stödet - Kommunaccessen
Hur externa aktörer ska kunna nå EBH-stödet påverkas inte av hur EBH-stödet är
konstruerat, utan är snarare en fråga för IT-avdelningarna på Länsstyrelsen/kommunerna.
Oavsett vilken väg som väljs för avveckling av EPiServer, och tidsplanen för detta arbete,
påverkas tekniskt inte kommunernas åtkomst till EBH-stödet. Medför arbetet större
förändringar av gränssnitt och funktionalitet kan det dock ur pedagogisk synvinkel vara
mindre lämpligt att utsätta nytillkomna användare för stora omställningar i handhavande
och utseende kort efter att de bekantat sig med EBH-stödet.
Åtkomst till, och vad en användare kan göra i EBH-stödet styrs idag med hjälp av
Länsstyrelsens Active Directory, och vilken/vilka grupper användaren tillhör där. Med
inloggningsmöjlighet för användare från samtliga Sveriges kommuner, som i övrigt inte ska
ha tillgång till Länsstyrelsens nät, kan det vara olämpligt att lägga in alla dessa som
användare av Länsstyrelsens nätverk. Hur den frågan ska attackeras är snarast något som
Länsstyrelsernas IT-enhet får fatta beslut om.
Då auktoriseringslogiken i samband med avveckling av EPiServer ändå måste ses över och
implementeras som del av EBH, kan det vara lämpligt att även implementera autentisering
direkt i EBH-stödet. EBH-stödet skulle då behöva förses med modul för
användaradministration. I det fallet skulle, ur EBH-stödets synvinkel, åtkomsthanteringen
förenklas något medan användarhantering kompliceras.
Oaktat hur användaren autentiseras, bör inloggningsförfarandet ske över HTTPS (säker
uppkoppling) för att undvika att användarnamn och lösenord skickas i klartext över i värsta
fall publika nätverk.
För import/export av data från/till olika kommunala system, krävs en djupare analys av
varje annat system, både vad gäller dataöverföring och vilka gemensamma data och
funktioner de olika systemen har. Generellt är det olyckligt att ha data utspritt på flera
enheter. Ett datalager bör alltid vara master-data som övriga enheter läser från och skriver
till. Med schemalagd eller händelsestyrd synkronisering mellan EBH-stödet och
kommunspecifika system borde dock en tillräckligt hög grad av dataintegritet i EBH-stödet
kunna upprätthållas. Idealt exponerar kommunspecifika system ett API där EBH kan hämta
relevant information. Alternativet är att EBH-stödet matas med data från kringliggande
system. Detta skulle innebära allt mellan manuell inmatning av data, till ett API där externa
system automatiskt kan skriva data till EBH-stödet. Här blir ansvarsfrågan för data i EBHstödet något mer komplex. Hur undviker vi till exempel dubbletter om EBH-stödet och
kommunens system saknar gemensam identifierare?
11
Oavsett vilken form av synkronisering av data mellan EBH-stödet och kommunspecifika
system som väljs, kommer det att innebära utveckling av funktionalitet för datautbyte i så
väl kommunens som EBH-stödets ända. Dokument knutna till objekt bör inte finnas i fler än
en upplaga. Risken för att olika versioner av samma dokument finns i olika system är
annars överhängande. Bästa lösningen är att objektknutna dokument lagras i ett
gemensamt dokumentlager som både kommunspecifikt system och EBH-stödet kan nå.
Den version av dokumentet som finns i detta dokumentlager får då anses vara gällande
version oavsett ”lokala” uppdateringar. I annat fall får dokument som är lagrade i andra
nätverk än Länsstyrelsens, göras tillgängliga för EBH-stödet (t.ex. via API hos
dokumentägaren), alternativt att dokument utanför Länsstyrelsens nätverk, knutna till
objekt i EBH-stödet, endast refereras till, och respektive dokumentägare får kontaktas för
åtkomst. Skulle ett för kommuner, länsstyrelser och Naturvårdsverket gemensamt
dokumentlager upprättas, utesluts möjligheten att utnyttja Länsstyrelsens SharePoint-miljö
som dokumentlager för EBH-stödet.
Jag har kontaktat EDP Consult (EDP MiljöReda/EDP Vision Miljö) och Tekis (ECOS) för att få
grepp om dessa applikationers möjligheter när det gäller import/export av data och
information. Tekis är mitt i en stor omskrivning av sin applikation8 och visar ett visst mått
av öppenhet för integrationsmöjligheter för kommande version. Även MiljöReda/EDP Vision
Miljö9 är inte främmande för integrationsfrågor.
Några generella gränssnitt för kommunikation med andra system saknas dock, varför
datautbyte mellan kommunsystem och EBH-stödet kommer att kräva separata utredningar
och utvecklingsprojekt.
8
Se bilaga 1
9
Se bilaga 2
12
1.10 API
EBH
REPORTING
SERVICES
EBH WS
SQL
DATABAS
Externa
system
EBH API
Som en del i kommunaccessen kan dataöverföring göras via en webbtjänst. Åtkomstkontroll
och autentisering kan ske antingen mot Länsstyrelsens ADFS (Active Directory) eller mot
separat autentiseringsmodul.
Vilka data som ska kunna hämtas ut ur systemet via API, och vilka frågor som ett API ska
kunna ta emot måste bli föremål för en separat förstudie, men arkitekturellt
rekommenderar vi att bygga dessa webbtjänster på Microsoft ASP.Net Web API. Data kan då
överföras som XML, JSON eller annat format som det externa systemet begär. Beroende på
vilka som ska ges tillgång till API, kan API göras åtkomligt från allt mellan publik
webbserver för vem som helst, till internt inom Länsstyrelsens ”väggar” med strikt
åtkomstkontroll.
För de kommuner som även i framtiden kommer att använda egna system parallellt med
EBH-stödet kommer sannolikt EBH API att vara kanalen för synkronisering av data mellan de
13
olika systemen. Initialt är Vattenförvaltningens IT-system Vatteninformationssystem Sverige
(VISS) angelägna om att kunna hämta data från EBH-stödet. För det ändamålet kan ett
första steg mot ett fullödigt API tas inom en inte allt för avlägsen framtid.
1.11 Sammanfattning och rekommendation
Frågan som måste besvaras är:
Hur ser framtiden för Länsstyrelsens och EBH-stödets roll ut? Kommer Länsstyrelsens roll,
och EBH-stödets vikt att vara kvar, eller till och med öka de närmaste åren? Eller kommer
eventuellt någon annan myndighet med annat system att ta över motsvarande funktion
inom några år?
I det sistnämnda fallet kan det vara en ekonomisk vinst i att behålla befintlig arkitektur och
endast eliminera EPiServer-kopplingarna. Direkt ekonomiskt kapar vi då licenskostnader,
underhållsmässigt eliminerar vi en ”udda fågel” i IT-miljön, och vi får ett system som är
något lättare att underhålla (färre kodrader, mindre beroenden till externa kodbibliotek).
Är dock ambitionen att EBH-stödet fortsatt ska fylla sin funktion, och utvecklas i takt med
nya förväntningar, standarder, krav och användare rekommenderar jag starkt att direkt ta
det större steget och från grunden skriva om EBH i enlighet med de riktlinjer, önskemål och
krav vi har idag, och med vad vi kan ana av framtiden i åtanke. Vi får, förutom vinsterna
med att endast eliminera EPiServer, ett modernt attraktivt system som kan uppfylla
användarnas krav, lättare anpassas efter nya, nu okända krav och önskemål, och med lägre
underhålls-, drift- och vidareutvecklingskostnader.
Estimerade tider är preliminära estimat. Utan komplett detaljerad lösningsspecifikation kan
vi dock inte förbinda oss till tidsuppskattningar, eller mer exakt estimera tidsåtgången.
14
Bilaga 1
Svar från Tekis (ECOS) på frågan: I vilken utsträckning har ECOS någon form av API för
import/export av data från/till andra system?
Vi är mitt i en stor omskrivning av vårt system Ecos. Som det fungerar idag så kan
kommunen ha en lokal Mifo-databas och vissa av uppgifterna i den databasen kan
synkroniseras med de Mifo-databasuppgifter som finns i Ecos. Synkroniseringen
fungerar så att om kommunen uppdaterar Mifo-databasen så kan de gå in i Ecos och
välja ”Synkronisera Mifo” för att uppdatera Ecos Mifo-databasuppgifter.
Har kommunen en lokal Mifodatabas kan man i Ecos hoppa över till Mifo-databasen för
att se mer uppgifter om motsvarande objekt i Mifo-databasen.
För att skapa integrationer med Tekis olika system krävs att man är en registrerad
integrationspartner. Du kan läsa mer om det och registrera dig här. Efter registreringen
kommer du ha tillgång till våra officiella gränssnitt. Observera att det ännu inte finns
något API för integration mot vårt nya system avseende efterbehandling av förorenad
mark.
Generellt sett har vi inga problem att integrera mot andra system via öppna
webbgränssnitt, men vi är just nu inte så intresserade av att skapa den möjligheten för
vårt gamla system (Ecos 1), eftersom vi räknar med att helt fasa ut det inom loppet av
några år från nu. I den kommande generationen av systemet (Ecos 2) har vi ännu inte
tittat på om/hur en sådan integration kan se ut. Därför ser vi gärna att ni håller oss
uppdaterade kring vad som händer i ert projekt så att vi kan skapa rätt förutsättningar
direkt, både vad det gäller kommunernas möjligheter att läsa länsstyrelsernas data, och
eventuella krav/behov av att skicka data till länsstyrelserna. Integration som handlar om
återrapportering kräver viss framförhållning så att vi har möjlighet att utveckla vårt
system i god tid innan kommunerna förväntas registrera och leverera data till
länsstyrelserna.
15
Bilaga 2
Svar från EDP Consult (ECOS) på frågan: I vilken utsträckning har MiljöReda/EDP Vision Miljö
någon form av API för import/export av data från/till andra system?
Vi har inga bestämda API:er utan gör ändamålsspecifika lösningar för resp. ändamål. I
framtiden kommer det att finnas tydligare gränssnitt för alla kunder när vi (EDP) lyft alla
MiljöReda-kunder till nästa generations system, EDP Vision Miljö.
EDP har byggt olika lösningar för import och export av data i olika filformat. Du får
gärna återkomma med en mer specifik förfrågan.
16