Att integrera appar med molntjänster och med andra appar, med interna verksamhetssystem samt med användarens andra datorer och enheter



Relevanta dokument
Vad är vad uppe bland molnen stratus, cumulus eller nimbus?

Frukostmöte om Molnet

Molntjänster. Översikt. Lektion 1: Introduktion till molntjänst. Introduktion till molntjänst. Vilka tjänster finns? Säkerhet.

Hur du väljer stil för integrering av moln applikationer med egna applikationer

Innehåll Molntjänster... 4 Vad är detta?... 5 Cirkeln sluts... 6 The Cloud... 7 The Cloud (forts.)... 8 Definition av molntjänster...

DIG IN TO Nätverksadministration

Arkitektur för Bistånd

Instabilt med sammansatta tjänster?

Hur den lösa kopplingen ändå blir hård

Vad är molnet? Vad är NAV i molnet? Vem passar NAV i molnet för? Fördelar med NAV i molnet Kom igång snabbt...

Välkommen! Bakgrund Cloud Sweden Vad är molnet? Legala aspekter på molntjänster.

Daniel Akenine, Teknikchef, Microsoft Sverige

JHS 179 Planering och utveckling av en övergripande arkitektur Bilaga 9. Virtualisering och molntjänster i planering av teknologiarkitektur

Diagnostisktprov Utveckla i Azure

BTH Studentkontohantering API Management

Molntjänster och molnteknologi: En ordlista

Introduktion till molntjänster Tekniken bakom molntjänster och legala utmaningar

Framgångsfaktorer i molnet!

Distribuerade affärssystem

Cloud Computing för arkitekter Sten Sundblad IASA och Sundblad & Sundblad

MOLNTJÄNSTER ÄR DET NÅGOT FÖR OSS?

Molnlösning i praktiken (del 3)

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server

Välkommen! SA S PSA S Im I puls s Mobilite t t e 8 1

App-klient för smartphones Power BI Arbetsflöde CRM Online Webb-klienten Dokumenthantering Molnet...

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q3

Säkerhetskopiering och återställning av asynkrona system

Våg 2010 We re all in!

Varför är jag här? Presentera projektet. SUNETS moln kontra andra moln behandlas inte. Prata lite om Windows 10 och molnet.

Migration to the cloud: roadmap. PART 1: Möjligheter och hinder för att migrera till molnet

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2015.Q1

O365- Konfigurering av SmartPhone efter flytt till Office 365 alt ny installation

Introduktion till migrering till molnet. PART 4: Plattformar för molntjänster

Prestanda, skalbarhet och tillgänglighet Torbjörn Stavenek

Säkerhetskopiera mobilen

Hå rd- och mjukvårukråv såmt rekommendåtioner fo r 3L Pro from version 2013.Q2

SNITS-Lunch. Säkerhet & webb

Kunskapsbank ICARUS DB

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Aditro Our focus benefits yours Molnet -- Presentation

Tekniska lösningar som stödjer GDPR

Tekniska lösningar som stödjer GDPR

Donator. Partnerprogram. Från produkt till molntjänst.

Vägen till det Hybrida molnet Hur byggde vi vårt hybrida moln och vad säger kunderna som har tagit steget? Jonas Emilsson Anders Jansson

Intro icore Cloud Services. What about the cloud!

Systemkrav WinServ II Edition Release 2 (R2)

Web Services. Cognitude 1

Introduktion till migrering till molnet. PART 5: Infrastruktur för molntjänster

Utmaningar vid molnupphandlingar

Molntjänster välj rätt lösning. Del 2. Plattformar, tjänster och juridik. Sven-Håkan Olsson Styrelsemöte.se / Definitivus AB

Säkerhet och förtroende

Plattform as a Service, leverantör tillhandahåller plattformen, jag tillhandahåller applikation och ansvarar för denna.

Molntjänster -- vad är molnet?

När hög tillgänglighet inte blir hög

Borde den svarta lådan vara grå?

Från Data till Process

Android. Ett alternativ till traditionella Windows-datorer

Minnesisolering för virtuella maskiner en hypervisorstudie

Marketplace As a Service. White Label-tjänst

Funktionalitet i TimberTime?

Starta din försäljning med hjälp av sociala medier

SÄKRA DIN AFFÄR VART DEN ÄN TAR DIG. Protection Service for Business

Smartare affärer med det bästa från molnet

Mobile First Video on demand och livesändningar på Internet. Juni 2012

Virtuell Server Tjänstebeskrivning

GÄSTENS DIGITALA RESA IDAG OCH FRAMÅT

LAJKA-GUIDE. Jätteguide till molnets 9 bästa. näthårddiskar. 7 De bästa gratisalternativen 7 Så väljer du rätt 7 Smarta säkerhetstips

Säkerställ er tillgänglighet Kommunikationsrapporteringsverktyg

EBITS Arbetsgruppen för Energibranschens Reviderad Informationssäkerhet

Sustainable engineering and design

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold

Utvärdering av distansmötesverktyg via Internet.

Om du har ett mailkonto tex. Outlook har du också ett konto i Microsoft

Inlämningsarbete Case. Innehåll Bakgrund bedömning inlämningsarbete... 2 Inlämnade arbeten... 4

OFFICE 365 OCH LICENSIERING. Fredrik Gotting, IT Strategy & Development Manager, Pulsen

EXFLOW DYNAMICS NAV ELEKTRONISK FAKTURAHANTERING

Säkerhet 2.0. Ta en titt in i framtiden. Per Hellqvist. Senior Security Specialist

Den stora frågan är ju om jag ska köpa en IPhone eller någon telefon med Android (Känns som att det är dessa två alternativ som gäller idag, eller?

Administrera ArcGIS for Server. Erik Bruhn Johnny Björk

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

Microsoft Dynamics 365 Business Application vs. ERP. Företagen måsta sätta sig själva i förarsätet

Windows 8 och det nya arbetslivet. Magnus Holmér IT strategisk rådgivare

CNET SOLUTIONS VÅRA TILLÄMPNINGSOMRÅDEN FÖR IOT

GÖTEBORG IT Trender och tendenser

Mjukvarukraft Integration som Tjänst (ipaas)

KAP 18 SQL SERVER AGENT

Hogias Ekonomisystem. Systemkrav för enanvändarinstallation fr o m version av GENERELLA KRAV

Hot eller möjlighet? Datormolnet och SMHI. Lisa Hammar, IT-arkivarie, SMHI. Mallversion

för iscala & Epicor ERP

Systemkrav 2014 för enanvändarinstallation fr o m version av

Office Du har tillgång till Office överallt. Verktyg för professionella. Verktyg för samarbete. Enkel installation och hantering

Cloud Computing. Richard Richthoff Strategisk Rådgivare Radar Group International

#integrationsdagarna16. Välkomna INTEGRATIONSDAGARNA 2016

Systemkrav. Systemkrav för Hogia Approval Manager. Gäller från och med programversion

Swedbank Mobile Loadtesting. LoadRunner Mobile App protocol

En unik plattform för förskola och fritids, utvecklad i Sverige

En unik lärplattform utvecklad i Sverige för svenska skolor. Inspirerad av sociala medier.

Systemkrav Bilflytt 1.4

Plattform 2010 Ansluta till Skellefteå kommun via VPN

Fem fördelar med att automatisera redovisningen

Transkript:

S-H_Olsson_app_moln_internt_2012-02-09.pptx Att integrera appar med molntjänster och med andra appar, med interna verksamhetssystem samt med användarens andra datorer och enheter Sven-Håkan Olsson Styrelsemöte.se / Definitivus AB Sven-Håkan Olsson / Definitivus. Enstaka bilder får återges med angivande av källan.

Mötesdokument Manuell inläggning Integrerat ärendesystem Sekreteraren förbereder möten, kvalitetskollar, skickar ut prel-dok och slutliga dok, notifieringse-post, ser historik Styrelsemöte.se Inlagda dokument för mötet Deltagarnas privata varianter av dokumenten Läsplatta (eller smart-tel) Persondator

Dagens ämne? Hjärnan sysslar med mönsterigenkänning ett enormt antal gånger / sekund för att vi ska kunna överleva De fyras gäng : Design Patterns, 1994 Att kunna känna igen sig och därmed återanvända egna/andras erfarenheter från förra gången man såg det mönstret Vi tolkar ordet mönster väldigt fritt här idag Några olika mönstertyper visas Avbryt gärna för diskussion Vissa bilder kan bli bredvidläsning beroende på tidsåtgång Vi ser till att tillgängliggöra bilderna

APPAR OCH INTEGRATION

Vad har vi appar till? Integration ofta nyttig här Kul Personlig effektivitet Integration krävs! Isolerade öar av info: urtrist. Sociala nätverk Affärsprocesser

Utmaningen - varför är det så svårt? Ett axplock: Säkerhetsmodeller och multitasking i dagens bästsäljande läsplattor/smarttelefoner är mycket olika vilket gör att integrationer kan behöva göras på olika sätt på olika plattformar Om appen bör fungera även vid dålig radiotäckning (3G/WiFi) så blir integrationen klart annorlunda än ren online Kvalitetsproblemen tillgänglighet/uptime, svarstider, säkerhet mm Att hantera sammansatta transaktioner, så att inte data kommer bort Framtidssäkring - dagens app-modell kontra traditionell webb kontra genomslag för html5

App <--> app internt Varje app får av säkerhetsskäl bara leka inom sin egen sandlåda. Teknikdetaljerna för integration är snåriga, och olika i ios och Android App1 App2 Fler direktmekanismer finns förberedda i Android och styrs via s.k. manifest som användaren ska godkänna vid installation Några få direktmekanismer finns förberedda i ios, exempel: - Maila det här - Öppna URL i webbläsare - Öppna URL i YouTube - Öppna det här i installerad PDF-läsare (UIDocumentInteractionController )

App <--> app via omväg För att ta sig runt sandlådan går många omvägen via extern molntjänst (krävs radiotäckning vid synkning mm mm) App1 App2 Dropbox etc

App <--> interna system App Direkt integration kan ge mycket hög affärsnytta. Ärenden, order, kundinfo, lagersaldo Säkerhetsutmaningar vid dubbelriktad kommunikation till interna system. Ofta vill man gå via mellanserver i DMZ vilket adderar komplexitet. Ärendesystem, affärssystem etc Brandvägg

App <--> molntjänst <--> interna system Ibland är en kombination app molntjänst internt system lämplig. T ex Styrelsemöte.se App Molntjänst Ärendesystem, affärssystem etc Om det passar, utåtriktad kommunikation är mycket säkrare Brandvägg

Online mode + Ständigt online ger enkel app och färskt data Sämre upplevd stabilitet 3G-avgifter utomlands horribla App Annat system (moln eller internt)

Offline mode + MEN 3G-täckningen ÄR inte 100% (ibland flyger man, åker i tunnlar, är i glesbygd, utlandet osv) + Offline mode ökar upplevd stabilitet Ofärskt data MEN ökar också komplexiteten avsevärt App Annat system Offline mode kräver databas i appen. Teknikval? SQLite, CoreData, fil, Sybase mfl Synkning krävs före/efter offline. Synkprotokoll ganska komplexa och har ibland varit buggiga. Egenutveckla vs köpa? I enkla fall synkas hela filer, i andra fall enstaka dataposter. Separat Online-mode också? Tidsmönster Strax + Nu?

Borttappat data Skrivning 1, orderhuvud t ex Skrivning 2, orderrader t ex App 1 2 Annat system Ett avbrott kan leda till borttappat data. Datainkonsistens ofta jättefarligt. Måste ha en mycket tydlig strategi för att hantera borttappat data! Lösningsmönstren kan heta BASE, långa verksamhetstransaktioner, ACID etc.

Multitasking Olika! Kan påverka integrationsdesignen. Ex: ios I stort sett insomnar en app helt när den inte syns Sju speciella undantag: Background audio - application continues to run in the background as long as it is playing audio or video content Voice over IP - application is suspended when a phone call is not in progress Background location - application is notified of location changes Push notifications (APNS, from 3:rd party servers) Local notifications - application schedules local notifications to be delivered at a predetermined time Task completion - application asks the system for extra time to complete a given task Fast app switching - application does not execute any code and may be removed from memory at any time Android I stort sett insomnar en app när den inte syns Men en app kan ha en service En service får exekvera vidare i bakgrunden Måste vara försiktig så inte bakgrundsjobbet förbrukar mycket radioeffekt, då försämras batteritiden Kan polla en server (medan ios behöver push från server) Push kan i sig kan vara bra, Android har fått C2DN

DATAKVALITET VID INTEGRATION

ACID tekniska transaktioner Atomicity, Consistency, Independency, Durability Kallas även atomära transaktioner, before-image-journaling eller allteller-ingen-uppdatering. Ibland behövs two-phase-commit (2PC), 3 eller fler parter Uppdateringar garanteras att inte kunna bli halva Självklart för relationsdatabasuppdateringar men inte för systemintegration/soa Utan ACID risk att t ex en försäljning registreras i handelssystemet men tappas bort i ekonomisystemet Anropande A sammansatt tjänst Egentligen borde man väl alltid sträva mot ACID, men... Anropsgränssnitt 2PC Tjänst B Tjänst C 16

...men ACID för integration kan ge problem Inkompatibla teknikmiljöer (trots XA-initiativet t ex) En del systemintegrationsprodukter 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 deadlocktimeout Anropande A X SOA-snitt. Vanligen EJ lämpligt med ACID och 2PC här! Alltför hård koppling Tjänst B Tjänst C 17

Lösning 1: ACID under ytan! 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 Anropande A 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 SOA-snitt Ej ACID här 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! Tjänst B ACID under ytan ACID 18

Lösning 1a: ACID under ytan + async 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 Tyvärr behövs vanligen även felflöde tillbaks från C (logiska och tekniska fel) Annan SOA-domän Anropande A Tjänst B ACID under ytan SOA-snitt Ej ACID här Tjänst C Modul för deferred processing Kö 19 End-to-end async ACID (se nästa sida)

Allt-eller-inget Allt-eller-inget Allt-eller-inget Allt-eller-inget Allt-eller-inget Olika ACID-exempel för integration (i detta exempel: avisering till annat system) Pgm C Pgm A Write 1... Write 2 Pgm B Write 1... Write 2 Write 1... Write 2 Pgm D Read & delete... Write Enkel 2PC-variant, synkont Asynk med äkta leveransskydd 20

Om ACID finns så borde väl BASE finnas bas/syra BASE 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 21

Lösning 1b: BASE i Composite Service 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/BASEfrågan Alternativ till säker kö kan vara avancerad omsändnings-hantering + dublettkontroll (idempotency) många RESTförespråkare gillar detta Sammansatt Tjänst BC ACID mot två köer oftast ok Köer Anropande A SOA-snitt Ej ACID här ACID End-to-end ACID Tjänst B Uppdat strax Tjänst C Uppdat strax 22

Lösning 1c: Vid read-only, sammansätt utan ACID-behov Anropare 1 Anropare 2 WS WS SOA-snitt Sammansatt tjänst A Se upp med sammansatta tjänster (composite services), det ser ju så förledande snyggt ut i Powerpoint fast kan ge problem. WS Tjänst X WS wrap Implem. av X Tjänst Y WS wrap Implem. av Y Tjänst Z Men read-only är OK! 23

Lösning 1d: Fuska, sammansätt med ACID i en teknik Anropare 1 Anropare 2 SOA-snitt WS WS Sammansatt tjänst A Ej ACID ACID Funkar endast bra ifall samma programmeringsmiljö i A, X, och Y! OO-anrop m uppdatering Tjänst X WS wrap Implem. av X Tjänst Y WS wrap Implem. av Y Tjänst Z Överväg noga kan ge alltför hård koppling Samma db eller 2PC 24

Lösning 2: Avstämningar! Välfungerande 60-talslösning Skapa buntsummor, dagssummor e dyl i bägge ändar, skicka dessa en annan kommunikationsväg =? Sums for reconciliation 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 25

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. 26

Lösning 4: Optimerad sekvens + felupptäckt! Optimerad variant av sista utvägen : 1. Anropa uppdaterande tjänst först som har sämst sannolikhet att fungera, B i figuren 2. 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. 3. Tjänst B måste klara dubletteliminering (s k idempotency)! 4. Anropa sedan C och hoppas att den inte kraschar (dock låg sannolikhet) 5. Ifall det ändå blir fel, larma till lång verksamhetstransaktion för kompensering etc. instabilare nät+tjänst Anropande A Tjänst B (uppdat) Ej ACID Tjänst C (uppdat) stabil 27

Lösning 5: Kontrollerad inkonsistens 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 28

Lösning 6: Långa verksamhetstransaktioner! Klar trend att koppla lösare vid systemintegration 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 är i själva verket varianter av långa verksamhetstransaktioner 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 OBS att modellering, programmering och testning av långa verksamhetstransaktioner är mycket tidskrävande och dyrt! Se alltså dessa som en sista utväg! 29

Andra kvalitetsfrågor Tillgänglighet/uptime Onlinelösningar alltid känsliga, särskilt för dålig 3G-täckning, men även för serverstopp. Varje mellanserver adderar risk för dålig tillgänglighet Synkrona anrop till många parallella tjänster ger dålig uptime Prestanda/svarstider 3G-nätet har långa fördröjningstider, även ifall bandbredden är hög stort problem vid pratig kommunikation Både bandbredd och latens blir sämre vid dålig radiosignal Synkning av stora filer en vanlig prestandabov Säkerhet Stort område; virusskydd, kommunikationskryptering. lagringskryptering, villkor för molntjänster, inloggning, remote wipe mm mm

Summering Naiv användning av integrering leder till bort-tappade uppdateringar, ofärskhet sämre infokvalitet! Ibland tas inte detta på allvar alls. Ibland spelar det ingen roll. 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 verksamhetsprocesserna 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! 31

Balansera/optimera! Naiv användning av integrering leder till bort-tappade uppdateringar, ofärskhet sämre infokvalitet! Ibland tas inte detta på allvar alls. Ibland spelar det ingen roll. 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 verksamhetsprocesserna 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! $ 32 $

MOLNETS EGENSKAPER VID INTEGRATION

Nytt? Molnen är ingen ny STOR PRINCIP, det är fortfarande outsourcing, däremot är det några detaljer som skiljer sig jämfört med tidigare och dessa detaljer får STOR INVERKAN: Dramatiskt mycket flexiblare kapacitetstillgång Flexibel prissättning och mycket lägre priströskel (i vissa fall 0 kr) Förlitande på att Internet duger för kommunikation mellan kund och outsourcingpartner och Internet är billig kommunikation 34

Olika kategorier av moln Molnförvirringen i datapressen och på Nätet är rätt stor! Det har gjorts kategoriseringar av många slag. Jag föreslår här en kategorisering baserad på: Vilken sorts it-resurs eller modul är det du som kund egentligen placerar i molnet? Resonemanget utvecklas mer i www.definitivus.se > inlägg trendspaning > Vad är vad uppe bland molnen 35

GUIklient - - - Internet - - - Eget OS. IaaS Eget Windows. Kö. ~PaaS ipaas? Strukturerad lagring. PaaS Egenutvecklade kodmoduler. Hel appl. SaaS Moln-lev typ 1 Teknik-ex: Amazon EC2 Rackspace CSe Moln-lev typ 2 Teknik-ex: Citrix VMware Moln-lev typ 3 Teknik-ex: Amazon AWS Rackspace CFi (Samt delvis typ 4.) SQL-tjänster Moln-lev typ 4 Teknik-ex: Google GAE MS Azure Sharepoint Moln-lev typ 5 Teknik-ex: Salesforce Google Apps Exchange Office365 36

Branschförkortningar IaaS Infrastructure as a Service Men vaddå infrastruktur, det är ju hela VM? PaaS Platform as a Service Men vaddå plattform, det är ju hela appservrar? SaaS Software as a Service Samma som ASP, Application Service Provider Kombination av att hyra applikationslicens och driftning av densamma ipaas Integration Platform as a Service Ny förkortning; integrationstjänster i molnet 37

Diverse externa system... Diverse appar... Diverse interna system... Stort integrationsbehov Hur fixa brandvägg, DMZ, proxys? Eget OS. Eget Windows. Kö. Lagring. Egenutvecklade kodmoduler. Hel appl. Moln-lev typ 1 Moln-lev typ 2 Moln-lev typ 3 Moln-lev typ 4 Moln-lev typ 5 38

Skydda kommunikationen https, VPN-tunnel, meddelandeinnehållskrypto Internnät Internet Eget OS. Eget Windows. Kö. Lagring. Egenutvecklade kodmoduler. Hel appl. Moln-lev typ 1 Moln-lev typ 2 Moln-lev typ 3 Moln-lev typ 4 Moln-lev typ 5 39

Inlåsning? I flera fall är API:erna inom molntjänsterna proprietära och kan heller ofta inte exekvera utanför molnet. I andra fall kanske API:erna är öppna, men inte relevanta om du skulle ta hem driften till en egen server. Särskilt viktigt för PaaS då du ju troligen skriver egen programkod som ska exekvera i molnleverantörents appserver. Eller har egen programkod utanför molnet som ska ropa på lagring inne i en PaaS-tjänst. KAPSLA IN! Gör klasser som innesluter de proprietära API:erna så att du kan byta lättare om du tröttnat på en molnleverantör. Ex: Storage i Amazon, Google och MS Azure har olika API:er, men ändå relativt liknande. Om du inte behöver utnyttja väldigt speciella finesser kan du skriva klasser som kan klara av alla tre alternativen. Azure-queue kanske kan kapslas in så du kan byta till MSMQ om du skall flytta hem driften. Liknande med Azure Service Bus. 40

Exempel: Moln och integration Tänkbar inkapsling av proprietära API:er, för minskad inlåsning Externa användare - GAE Blob-REST. - AWS S3-REST. - Azure-REST. Appar - GAE Blob-REST. - AWS S3-REST. - Azure-REST. Egendef. REST eller SOAP Interna applikationer - Azure Service Bus. - XMPP. - Mm... Öppen accessnyckel, tidsbegränsad Hemlig accessnyckel - GAE web. - AWS EC2. - Azure Web Role. Hemlig accessnyckel - GAE Task Queue. - AWS SQS. - Azure Queue. - GAE Blob el BigTable. - AWS S3 el SimpleDB. - Azure Blob el Table. - GAE Blob-REST. - AWS S3-REST. - Azure-REST. - GAE Backend. - AWS EC2. - Azure Worker Role. 41

Latensfördröjningar Var står egentligen servern i molnet, det har jag kanske ingen aning om? Australien, Taiwan, USA eller Finland...? Ljushastigheten ställer till problem. Används satelliter för kommunikationskedjan försvinner hela 0,5 s i ljushastighetslatens för fråga/svar. Även problem utan satellit ifall det är på andra sidan jordklotet. Även alla vackra skikt av ESB:er, nav, SQL, fasader, inkapslingar ger klart mätbar latens, ihopadderat. Alltså: Kan inte ha pratiga applikationsprotokoll som vi kan på ett vanligt LAN i en serverhall! Coarse granular SOA... 42

Appformalia Vad får jag ha i en app? Apple tillåter inte appar som direkt konkurrerar med deras affärsmodeller Godkännande av app? Apples godkännandeprocedur är ganska noggrann och tar tid Apple har fördelen låg virusrisk Android tillåter app-nerladdning från många konkurrerande håll. Androids egen Market har numera viss virus-scan. Distribution Krångligt för leverantör att distribuera ios-app till företagskund (måste ofta gå via Gift this app, Gift-card eller kontokort) Äganderätt till data Kommer Googles nya spion-leveransvillkor att påverka även appsidan för Android? 43

Molnformalia Får servern stå i vilket land som helst? Amerikanska regler? Patriot Act står över allt? Kan man bli stämd på en halvmiljard i USA? Sämre lagstiftning för personlig integritet, PUL etc? Vad händer med datat vid ett nytt 11 sept (förhoppningsvis ej)? Vad händer vid beslag av typen Pirate Bay där andra, oskyldiga outsourcingkunder fick servrar konfiskerade i veckor? Svensk förvaltningslag/eu-rätt? Offentlighetsprincip? FRA? Risk för industrispionage? I samverkan med mindre nogräknad statlig övervakning i det landet? Förtroende för moln-leverantören? Extra backup hemma? Måste göras klart vilka klockslag som gäller (UTC/GMT ) Kunden måste själv hålla statistik på användning för att kunna attestera moln-fakturorna (GB, antal tick, antal användare, hur många beordrade GHz när etc). Kan ofta lösas i integrationsgränssnitten! 44

Appframtid? Slår Windows igenom på plattor/smarttelefoner? Andra OS? Slår html5 ut dagens feta appar? Får vanlig webb en revival? Kommer det fram bekvämare programmeringsmiljöer för apputveckling? Blir det lättare att skriva samma app för både Android och ios (och Windows)? 45

Integrationskunskap Synnerligen viktigt att överväga både helhet och detaljer inom app-integration. Mönstren, avvägningarna, fördelar/nackdelar osv i samband med integration är känd kunskap. Hämta erfarenheter från områdena SOA (Service Oriented Architecture), EAI (Enterprise Application Integration), ESB (Enterprise Service Bus), REST, ACID/BASE mm mm! Gå på utbildning hos Dataföreningen Kompetens

Sven-Håkan Olsson www.styrelsemote.se www.definitivus.se www.trendspaning.se > spanare > veckans teknikspaning sven-hakan.olsson@styrelsemote.se 0708-840134