IT-arkitekt A5 Hur stora ska egentligen tjänster vara? Sven-Håkan Olsson, Styrelsemöte.se Tjansteorientering_DF_2011-09-13..ppt © 2009 Dataföreningen.

Slides:



Advertisements
Liknande presentationer
Snabbguide och tips.
Advertisements

ÖPPET KÖP BYTESRÄTT Ingen lag!
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Att identifiera och utveckla ledare
Kampanjuppföljning Hur den senaste kupongkampanjen gick totalt sett vet du säkert. Men hur gick den i exempelvis Skåne jämfört med i Göteborg? Var resultatet.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Talföljder formler och summor
Tyck till på Lnu.se Feedback/förslagslådor – vad ger det?
En Dag i Ramadan Ramadan
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
PowerPoint laget av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
~ Den första mobiltelefonen ~
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
X-mas algebra Är du redo? Klicka!!.
En genomgång av spelet: Dubbelkrig-Grön
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Relationsdatabasdesign
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
HTML - grunder. Program •Html kan skrivas i anteckningar, eller vilket annat textbehandlingsprogram som helst. Mitt tips: Notepad ++ Notepad ++ •Grafiska.
Slöjd Presentation! Av: Malte Bergman.
hej och välkomna EKVATIONER Ta reda på det okända talet.
1 IIR SOA Web Services för SOA-införanden IIR_WS_ _v2.ppt Sven-Håkan Olsson Transacsation.
BEANS NÖJD KUND INDEX (e-survey undersökning)
MS Excel 2010 – Dag 2 Mahmud Al Hakim
Videokonsultation med medborgare
Fi2 Lägesrapport om IT-utvecklingen i fastighetsbranschen
Vad man kan få ut av statistik över alumnerna - några exempel
Lokala teknikmiljöer Utredning GEM-0001-A NUAK Jenny H Svensson, Projektledare.
Integration med appar Sven-Håkan Olsson Styrelsemöte.se / Definitivus
Leif Håkansson’s Square Dancer Rotation
ERGONOMI Vad är det?.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
IT-kompetens Svenska & Engelska. IT-kompetens Svenska & Engelska.
Projektet IT-coacher 2013 Enkäter angående intresset av IT-utbildning för seniorer gjordes i kommunerna Lidköping, Götene och Munkedal. De som svarade.
Grundläggande programmering
Distribuerade filsystem
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Kapitel 13: I/O-system.
En PowerPoint om PowerPoint
EN KOMPLETT INDUSTRIPARTNER ! ALLMÄNT OM MELSEC STYRSYSTEM.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Grunderna - Från ett logiskt perspektiv André Bodin, Anders Edholm – 2011.
Vad är du för typ av person?
Utmaning – Integration mellan molnet och din interna IT Sven-Håkan Olsson, Definitivus.
Från binära till hexadecimala
Vilhelmina november 2009 En lång Historia tal 90-tal 00-tal andra halvan bild-telefon telemedicin telestugor tele-commuting infrastruktur.
Bakgrund! Piteå kommun skall lägga om strukturen i det befintliga nätverket. Det kommer att gå från tre system som löper paralellt med varandra till ett.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Fakta om undersökningen
Debattera.
Elektronisk attestering och signering
Ekvationer Det är inte så svårt?.
1 onTarget project management TM VÄLKOMNA EFFEKTIV KOMMUNAL E-FÖRVALTNING INKLUSIVE SKOLPORTAL Microsoft och Sigma.
Rollfördelning i funktionärsbåset Vem gör vad i Danicahallen.
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Känna till och ha provat metoder och verktyg för processledning
Stöd till en evidensbaserad praktik för god kvalitet inom socialtjänsten – brukarmedverkan vid brukarundersökningar inom LSS • • SKAPAD.
SEO Manager för EPiServer LÅT REDAKTÖRERNA VARA REDAKTÖRER.
Logikprogrammering 21/10 Binära träd
1 Logging and monitoring of TCP traffic in SSH tunnels Masters thesis Anton Persson.
1 IBC Euroforum SoftDev 2.0 utvecklarkonferens /27 SoftDev_ _v1.ppt Sven-Håkan Olsson.
IT utvecklar sociala tjänster! 1 KommITS 9 november 2011, Göteborg Åke Svenson, utredare, f d socialdirektör Järfälla,
Projekt 5.3 Gilpins och Ayalas θ-logistiska modell A Course in Mathematical Modeling - Mooney & Swift.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
BVForum - en genomgång för revisorer Sören Thuresson.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
BEANS NÖJD KUND INDEX 2015 Resultat från webbenkät.
Anpassa fri programvara - Frihet ett, hur nyttjar man den? Copyright © 2006, 2007 Marcus Rejås Rejås Datakonsult Jag ger härmed rätten till alla att nyttja.
Presentationens avskrift:

IT-arkitekt A5 Hur stora ska egentligen tjänster vara? Sven-Håkan Olsson, Styrelsemöte.se Tjansteorientering_DF_2011-09-13..ppt © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Vad är nu en ”tjänst”? ”Tjänst” kan betyda lite vad som helst Att köpa IT-lösningar som tjänst – dvs en slags outsourcing… molntjänster, servicebyrå etc. Ett nutida sätt att strukturera IT-applikationer; tjänsteorientering – Service Oriented Architecture, SOA. SOA passar ofta bra både för tjänsteköp och för interndriftning. Då det finns stora integrationsbehov mellan köpt tjänst och interna system ger SOA extra fördelar. SOA-tjänsters förvaltning , versionering, drifthantering och kontraktshantering är ett stort och ibland eftersatt område.

SOA upp som en sol… Överdrifter: Precis som man överdrev potentialen med objektorientering i slutet av 80-talet, BPR i början på 90-talet, webb i slutet av 90-talet, så överdrev man kraftigt potentialen med SOA i mitten av 2000-talet  Rekylen och besvikelsen blev kraftig. Numera vågar man knappt säga SOA… Men fortfarande kan fördelarna med SOA bli stora, rätt använt 

Pris/fördel (cost/benefit) SOA $ Man överdrev alltså ofta fördelarna – systemflexibilitet som skulle leda till verksamhetsflexibilitet var det viktigaste argumentet för SOA, men gick aldrig att sätta mätetal på. Ökade kostnader för SOA togs sällan med i kalkylen!

Små, ”fingranulära” tjänster Ju mindre legoklossarna blir, desto fler helt olika saker går det att bygga av dem, resonerade många – jääättestor flexibilitet Resulterade i små, fingranulära tjänster T.ex. det som i traditionell design varit varsin SQL-tabell kunde nu bli varsin liten ”tjänst”, en ”SOA-domän”… Fingranulär SOA kunde bli jättedyr!

Vad blir dyrt med fingranulärt? Hopmonteringen av tjänsterna vid användning kunde bli dyr därför att väldigt många tjänsteanrop behövdes, även för enkla saker. Dvs ökad programlogik! (Kan i o f s bemötas med komposit-tjänster.) Prestanda kunde bli dåliga pga pratiga tjänsteanrop – tog tid att lösa, kostade dyrare hårdvara! Risk för uppsplittrad förvaltning , versionering, drifthantering och kontraktshantering! Trassel med datakvaliteten! …fel eller ofärskt data Fokus i min bild-serie

Hm, vad blir dyrt med grovgranulärt då, å andra sidan? Kan behövas ett ökat antal maskingränssnitt till tjänsterna pga att varje kombination av behov riskerar ge varsitt. Kan ev. bemötas genom frivilliga fält etc. Se dock upp med ”schweiziska armékniven” (där ETT enda maskingränssnitt döljer en jättestor kommando-repertoar) eftersom tjänstekontraktet riskerar bli helt urvattnat. Om maskingränssnitten blir mycket komplexa (och kanske dokumenteras dåligt) blir det svårt och därmed dyrt att lära sig att använda dem. Hitta kompromissen grovgranulärt – enkelhet. Dokumentera lättläst och noga.

ACID – ”tekniska transaktioner” IT-arkitekt ACID – ”tekniska transaktioner” A5 Atomicity, Consistency, Independency, Durability Kallas även atomära transaktioner, before-image-journaling eller allt-eller-ingen-uppdatering. Ibland behövs two-phase-commit (2PC Uppdateringar garanteras att inte kunna bli ”halva” Självklart för relationsdatabasuppdateringar men inte för systemintegration/SOA Utan ACID finns risk att t ex en försäljning registreras i handelssystemet men tappas bort i ekonomisystemet Egentligen borde man väl alltid sträva mot ACID, men... Anropande A sammansatt tjänst Anropsgränssnitt 2PC Tjänst B Tjänst C © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

...men synkron ACID för integration kan ge problem IT-arkitekt A5 ...men synkron ACID för integration kan ge problem Inkompatibla teknikmiljöer (trots XA-initiativet t ex) En del system-integrationsprodukter stöder inte alls ACID Ger hårda sw-beroenden (versionsbyten, leverantörsinlåsning etc) Risk får dålig ”uptime” Kan bli riktigt långsamt (faktor 10 för 2PC kan vara realistiskt) Dålig skalbarhet för 2PC pga långa databasinterna lås vilket ger deadlock-timeout Generellt sett alltför “hård koppling” – de flesta anser nog att SOA och synkron ACID vanligen är svårförenligt! Anropande A SOA-snitt. Vanligen EJ lämpligt med ACID och 2PC här! X Tjänst B Tjänst C © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

The Composite Service Pattern Bredvidläsning The Composite Service Pattern Very often Composite Service layers are included in architectures This is a picture from an IBM whitepaper, but many others use the same principles: How about ACID, all-or-nothing?

Lösning 1: ACID under ytan! IT-arkitekt Lösning 1: ACID under ytan! A5 Modellera tjänsterna så att inte flera skulle behövt anropas inom en uppdaterande ACID-transaktion (om nu detta är möjligt) Ha gärna ACID under ytan, inom tjänsten Ex 1: Modellera Kontoöverföring (inte Kontotrans och varsitt anrop med plus- och minusbelopp) Ex 2: Modellera fakturahuvud och fakturarader tillsammans i ett anrop Alltså motiv för TVÅ saker: Grov granularitet på tjänstegränssnitt (dvs större-men-färre anrop)… Grov granularitet på tjänsterna (dvs stora “SOA-domäner”) Men återanvändning etc är istället lättare med liten granularitet så denna fråga måste balanseras och optimeras! Anropande A SOA-snitt Ej ACID här Tjänst B ACID under ytan Nästa bild ACID © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Två sorters granularitet SOA-domäner Maskin- gränssnitt Grov granularitet på maskingränssnitt till tjänsten (dvs större-men-färre anrop) Krävs alltså ifall man ska kunna ha ACID inom tjänsten… fakturahuvud/fakturarader i ett skrivanrop Grov granularitet på tjänsterna (dvs stora SOA-domäner) Krävs i sin tur för att ovanstående ska gå; fakturahuvud och fakturarader måste lagras inom samma ”teknikruta” – SOA-domän – där ACID funkar Granularitetsdebatten blandar ofta ihop dessa två granulariteter

Lösning 1a: ACID under ytan + async Bredvidläsning IT-arkitekt Lösning 1a: ACID under ytan + async A5 Liknar Lösning 1, fast för att slippa så hård koppling mellan två lagringar görs den andra lagringen via äkta leveransskyddad asynkron kö Kallas ibland deferred processing – senarelagd bearbetning B måste ta ansvar även för C Bara ok ifall färskhetskraven är lägre i C Anropande A SOA-snitt Ej ACID här Tjänst B ACID under ytan Tjänst C Modul för deferred processing End-to-end async ACID (se nästa sida) Annan SOA-domän Kö © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Olika ACID-exempel för integration IT-arkitekt Olika ACID-exempel för integration A5 Pgm C Write 1 . . . Write 2 Allt-eller-inget Pgm D Read & delete . . . Write Asynk med äkta leveransskydd Enkel Pgm A Write 1 . . . Write 2 Allt-eller-inget 2PC-variant, synkont Pgm B Write 1 . . . Write 2 Allt-eller-inget © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Om ACID finns så borde väl BASE finnas – bas/syra  Basically Available - Soft-state - Eventual consistency Teoribygge kring principen att uppdatering kan tillåtas få ske strax istället för nu Föregående bild 1a:s “deferred processing” är ett exempel på BASE-principen Extra populärt i REST-världen och när man behöver massiv skalbarhet och hög tillgänglighet Se exempelvis http://queue.acm.org/detail.cfm?id=1394128

Lösning 1b: BASE i Composite Service IT-arkitekt A5 Lösning 1b: BASE i Composite Service Anropande A En mer generaliserad variant av 1a, där B och C ligger ”på samma nivå” Bara ok ifall färskhetskraven är lägre i både B och C. BASE – deferred update Obs, ifall A också har en databas så måste man lösa även den ACID/BASE-frågan Alternativ till säker kö kan kanske vara avancerad omsändnings-hantering + dublettkontroll (idempotency)… många REST- förespråkare gillar detta SOA-snitt Ej ACID här Sammansatt Tjänst BC ACID mot två köer oftast ok ACID Köer End-to-end ACID Tjänst B Uppdat strax Tjänst C Uppdat strax © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Lösning 1c: Read-only, sammansätt utan ACID-behov Bredvidläsning IT-arkitekt A5 Sammansatt tjänst A Anropare 1 WS Anropare 2 WS Smörgåsbord av tjänster SOA-snitt Se upp med sammansatta tjänster (composite services), det ser ju så förledande snyggt ut i Powerpoint fast kan ge problem. Men read-only är OK! Tjänst X Tjänst Y Tjänst Z WS wrap WS wrap Implem. av X Implem. av Y © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Lösning 1d: ”Fuska”, sammansätt med ACID i en teknik Bredvidläsning IT-arkitekt A5 Lösning 1d: ”Fuska”, sammansätt med ACID i en teknik Anropare 1 Anropare 2 WS WS Smörgåsbord av tjänster SOA-snitt Ej ACID Sammansatt tjänst A OO-anrop m uppdatering ACID Implem. av X WS wrap Implem. av Y Funkar endast bra ifall samma programmerings- miljö i A, X, och Y ! Överväg noga – kan ge alltför hård koppling  Tjänst X Tjänst Y Tjänst Z Samma db eller 2PC  © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Lösning 2: Avstämningar! IT-arkitekt A5 = ? Sums for reconciliation Välfungerande 60-talslösning Skapa buntsummor, dagssummor e dyl i bägge ändar, skicka dessa en annan kommunikationsväg Manuell koll eller automatiskt larm Korrigera manuellt eller automatiskt Manuell korrigering kan mycket väl vara optimalt! Logga! Behövs för att kunna göra detektivarbete. Avstämning = eng. reconciliation © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Lösning 3: Visa upp uppdateringsfelen i användargränsnsittet !? Lösning 3: Visa upp uppdateringsfelen i användargränsnsittet Ifall det är ett användargränssnitt ovanpå tjänsteanropen går det ibland att låta felsituationen och efterföljande åtgärdsbeslut direkt överlämnas till användaren Kräver god felupptäckt Kräver användarvänlig dialogdesign Kräver tillräckligt kunniga användare Funkar inte bra server-till-server Logga! Behövs för att kunna göra detektivarbete.

Lösning 4: Optimerad sekvens + felupptäckt! Bredvidläsning IT-arkitekt Lösning 4: Optimerad sekvens + felupptäckt! A5 Anropande A Optimerad variant av ”sista utvägen”: Anropa uppdaterande tjänst först som har sämst sannolikhet att fungera, B i figuren Ifall det skulle bli fel i B, ha begränsad retry-loop i A eller låt användaren göra retry. Gör ej C-anrop. Tjänst B måste klara dubletteliminering (s k idempotency)! Anropa sedan C och hoppas att den inte kraschar (dock låg sannolikhet) Ifall det ändå blir fel, larma till lång verksamhetstransaktion för kompensering etc. Ej ACID stabil Tjänst C (uppdat) instabilare nät+tjänst Tjänst B (uppdat) © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Lösning 5: ”Kontrollerad inkonsistens” Bredvidläsning IT-arkitekt Lösning 5: ”Kontrollerad inkonsistens” A5 Tillåt ”kontrollerad inkonsistens” Modellera så att relaterade objekt kan få vara inkonsistenta innan de verkligen behövs T.ex. tillåt fakturarader utan fakturahuvud temporärt (ifall separat fakturahuvudskrivning skulle misslyckas) Kräver felupptäckt och rättningsåtgärd innan fakturan kan sändas ut Dyr och komplex undantagshantering Inte ovanlig i praktiska fall, t ex bokföring: Avstämningar före bokslut © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Lösning 6: Långa verksamhetstransaktioner! IT-arkitekt A5 Lösning 6: Långa verksamhetstransaktioner! Klar trend nu att koppla lösare vid system-integration (delvis pga SOA/Web Services-ökningen) Måste därvid tänka att en ”transaktion” kan pågå i timmar, dagar eller veckor innan den är definitiv Eng. Long Running Transaction (ordet transaktion här är alltså inte ett tekniskt begrepp som i SQL) Flera av de tidigare lösningarna i bildserien är i själva verket varianter av långa verksamhets-transaktioner Behövs ”compensation schemes”, dvs backnings-funktioner insystemerade i applikationerna (radera inte – betona spårbarhet jmfr kreditfaktura)! Dessa initieras manuellt eller automatiskt Håll ev ordning på dem med tekniskt workflow / orchestration, gärna baserat på BPEL etc OBS att modellering, programmering och testning av långa verksamhetstransaktioner är mycket tidskrävande och dyrt! Se alltså dessa som en sista utväg! © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Summering Naiv användning av tjänsteorientering leder till borttappade uppdateringar, ofärskhet – sämre infokvalitet! Ibland tas inte detta på allvar alls. Om möjligt, bäst är 1: ACID under ytan Därefter 1a/1b: BASE (men drar mer anropskod + idempotency-kod) De andra lösningarna kan vara nyttiga men de knuffar över undantagshantering till verksamhets-processerna och därmed till användarna! Asynk är mer stabilt men leder till mindre färskt data All asynkron felhantering är mycket dyrare att utveckla/testa och riskerar ha fler kvarvarande buggar Alla långa verksamhets-transaktioner är dyra att utveckla/testa, håll nere antalet!

Summering Naiv användning av tjänsteorientering leder till borttappade uppdateringar, ofärskhet – sämre infokvalitet! Ibland tas inte detta på allvar alls. Om möjligt, bäst är 1: ACID under ytan Därefter 1a/1b: BASE (men drar mer anropskod + idempotency-kod) De andra lösningarna kan vara nyttiga men de knuffar över undantagshantering till verksamhets-processerna och därmed till användarna! Asynk är mer stabilt men leder till mindre färskt data All asynkron felhantering är mycket dyrare att utveckla och testa och riskerar ha fler kvarvarande buggar Alla långa verksamhets-transaktioner är dyra att utveckla/testa, håll nere antalet! $  $  Grov-granu-lärt $  $  $ 

(Glöm inte bort transaktionslogg också, brorsan till ACID) Bredvidläsning (Glöm inte bort transaktionslogg också, brorsan till ACID) Alternativa namn: Skrivjournal, förändringslogg, deltalogg, after-image-journaling Säkerställer att information inte ska försvinna. Skyddar mot filsystemskrasch, applikationsfel och mot operatörsmissgrepp etc. Ibland vill man även kunna skydda från användarmissgreppp (ta tillbaka läget som det såg ut för tre dagar sen t.ex, gärna selektivt vilket är svårare) Transaktionsloggen ska finnas separat lagrad så den kan ”återspelas” (s.k. roll-forward) efter att en backup tagen en viss tidpunkt återlagts Måste utformas noga i samklang med backuprutinen (Obs att ett s.k. journaling file system normalt är en enklare sak, för ett annat ändamål - directorykonsistens) Transaktionslogg finns vanligen inbyggd i relationsdatabaser, men ibland kan man vilja designa in en till, på tjänstenivå. Kan dessutom ge fler parallella nyttigheter: Kunna injicera last för test. Felletning. Möjlighet till fördjupad missbruksanalys (auditing). Ej så SOA-problematisk som ACID.

Misslyckad uppdatering --> larm Bredvidläsning IT-arkitekt Misslyckad uppdatering --> larm A5 Undantaget kan vara logiskt. T ex: Inga pengar på kontot Slut på varan i lagret Undantaget kan vara tekniskt. T ex: Ena databasservern har hög last och ger timeout En uppdaterande Web Service över Internet ger timeout medan lokal uppdatering gått vägen Löser ut olika logik beroende på behov, t ex compensation-verb © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Välkända ”långa verksamhetstransaktioner” Bredvidläsning IT-arkitekt Välkända ”långa verksamhetstransaktioner” A5 Inneboende affärslogik – saker går inte att göra exakt samtidigt Kreditkort: Hämtar ut hyrbil, prel-debitering görs, kompenseras bort när slutlig summa debiteras Lägenhetsköp Handpenning först Alla lån-handläggningar görs ofta hos en bank med säljare/köpare närvarande, skulle nåt inte funka får banken kompensera alla transaktionerna Aktiehandel Flera anledningar till att köp kan backas på kvällen T ex pga säkerhetsövervägande Sedeltrassel i bankomat Debitering görs på kontot, bankomaten registrerar problemet i sin logg, nästa dygn kompenseras debiteringen Dagens IT-värld har delvis glömt bort de här idéerna! © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson

Trendspaningar, artiklar Kolla gärna in www.trendspaning.se där jag regelbundet deltar kring tekniktrender etc På min enkla sajt www.definitivus.se finns också ett artikelarkiv för trendspaningarna och annat som successivt fylls på, exempel på ämnen: Lösa transaktioner och rätt data REST och sånt… Facebook eller eID för inloggningen? Hur den lösa kopplingen ändå blir hård Till den som sitter med klistret ESB:n är död – leve ESB:n! + denna bildserie Här gärna av er med kommentarer etc…

Deltagare i styrelse eller nämnd IT-arkitekt A5 Mötessekreterare / dokumentsystem Tack för mej! Dok Styrelsemöte.se Struktur, hantering, säkerhet, loggning… Sven-Håkan Olsson www.styrelsemote.se www.definitivus.se 0708-840134 sven-hakan.olsson[hos]styrelsemote.se Dok Dok Läsplatta Persondator © Dataföreningen Kompetens / Sven-Håkan Olsson. Enstaka bilder får användas om källan anges Deltagare i styrelse eller nämnd © 2009 Dataföreningen Kompetens / Sven-Håkan Olsson