SaaS vs SOA
Nylig har alle aspekter ved utvikling av programvareapplikasjoner for bedrifter blitt flyttet bort fra tradisjonell produktbasert tilnærming til nyere servicebaserte tilnærminger. Den raske veksten av SaaS (Software as a Service) og SOA (Service Oriented Architecture) er et direkte resultat av det. SaaS er kategorien cloud computing der hovedressursene som er tilgjengelige som en tjeneste er programvareapplikasjoner. SOA er en arkitektonisk modell der løsningslogikken presenteres som tjenester.
Hva er SaaS?
Cloud computing er en type databehandling der ressurser gjøres tilgjengelig over internett. Oftest er disse ressursene utvidbare og svært visualiserte ressurser, og de leveres som en tjeneste. SaaS er en av kategoriene/metodene for cloud computing. Som nevnt ovenfor er ressurser tilgjengelig som en tjeneste gjennom SaaS spesifikt programvareapplikasjoner. Her deles en applikasjon på tvers av flere klienter ved å bruke "en-til-mange"-modellen. Fordelen som tilbys for SaaS-brukeren er at brukeren kan unngå å installere og vedlikeholde programvare og kan frigjøre seg fra komplekse krav til programvare/maskinvare. Leverandøren av SaaS-programvare, også kjent som vertsbasert programvare eller on-demand-programvare, vil ta seg av sikkerheten, tilgjengeligheten og ytelsen til programvaren fordi de kjøres på leverandørens servere. Ved å bruke en multitenant-arkitektur blir én enkelt applikasjon levert til millioner av brukere gjennom nettlesere. Kunder trenger ikke lisensiering på forhånd, mens leverandører får en lavere kostnad fordi de bare vedlikeholder ett program. Populær SaaS-programvare er Salesforce.no, Workday, Google Apps og Zogo Office.
Hva er SOA?
SOA er en arkitektonisk modell der løsningslogikken presenteres som tjenester. Ved å ha tjenester som hovedmetode for å levere løsninger, streber SOA etter å være svært effektiv, smidig og produktiv enn andre eksisterende teknologiløsninger. SOA gir støtte for å realisere fordelene med tjenesteorienterte prinsipper og tjenesteorientert databehandling. Mange forskjellige teknologier, forskjellige produkter, applikasjonsprogrammeringsgrensesnitt og andre forskjellige utvidelser utgjør vanligvis en SOA-implementering. Anvendelse av tjenesteorienterte prinsipper på programvareløsninger produserer tjenester og disse er den grunnleggende logikken i SOA. Disse tjenestene kan eksistere autonomt, men de er absolutt ikke isolerte. Tjenester opprettholder visse vanlige og standardfunksjoner, men de kan utvikles og utvides uavhengig. Tjenester kan kombineres for å lage andre tjenester. Tjenester er kun oppmerksomme på andre tjenester gjennom tjenestebeskrivelser og kan derfor betraktes som løst koblet. Tjenester kommuniserer ved hjelp av autonome meldinger som er intelligente nok til å selvstyre sine egne deler av logikken. De viktigste SOA-designprinsippene er løs kobling, servicekontrakt, autonomi, abstraksjon, gjenbrukbarhet, komponerbarhet, statsløshet og oppdagbarhet.
Hva er forskjellen mellom SaaS og SOA?
SOA er en produksjonsmodell som omhandler design og bygging av programvare ved å anvende de tjenesteorienterte dataprinsippene på programvareløsninger, mens SaaS er en modell for salg og distribusjon av programvareapplikasjoner. I enklere termer er SaaS et middel for å levere programvare som tjenester over internett til sine abonnenter, mens SOA er en arkitektonisk modell der den minste logiske enheten er en tjeneste. Så SOA (en arkitektonisk strategi) og SaaS (en forretningsmodell) kan ikke sammenlignes direkte. For å få maksim alt utbytte av kostnadsreduksjon og smidighet, anbefales det imidlertid sterkt at bedrifter integrerer SOA og SaaS sammen.