SaaS vs SOA
Recentemente tutti gli aspetti dello sviluppo di applicazioni software aziendali sono stati spostati dall'approccio tradizionale basato sui prodotti ai nuovi approcci basati sui servizi. La rapida crescita di SaaS (Software as a Service) e SOA (Service Oriented Architecture) ne è il diretto risultato. SaaS è la categoria del cloud computing in cui le principali risorse disponibili come servizio sono le applicazioni software. SOA è un modello architetturale in cui la logica della soluzione è presentata come servizi.
Cos'è SaaS?
Il cloud computing è uno stile di elaborazione in cui le risorse sono rese disponibili su Internet. Molto spesso queste risorse sono risorse estensibili e altamente visualizzate e vengono fornite come servizio. SaaS è una delle categorie/metodologie del cloud computing. Come accennato in precedenza, le risorse disponibili come servizio tramite SaaS sono specificamente applicazioni software. Qui, un'applicazione viene condivisa tra più client utilizzando il modello "uno-a-molti". Il vantaggio offerto all'utente SaaS è che l'utente può evitare l'installazione e la manutenzione del software e può liberarsi da complessi requisiti software/hardware. Il fornitore del software SaaS, noto anche come software in hosting o software on-demand, si occuperà della sicurezza, della disponibilità e delle prestazioni del software poiché questi vengono eseguiti sui server del provider. Utilizzando un'architettura multitenant, una singola applicazione viene fornita a milioni di utenti tramite browser Internet. I clienti non richiedono una licenza anticipata, mentre i fornitori godono di un costo inferiore perché mantengono una sola applicazione. I software SaaS più diffusi sono Salesforce.it, Workday, Google Apps e Zogo Office.
Cos'è la SOA?
SOA è un modello architetturale in cui la logica della soluzione viene presentata come servizi. Avendo i servizi come metodo principale per fornire soluzioni, SOA si sforza di essere altamente efficiente, agile e produttiva rispetto ad altre soluzioni tecnologiche esistenti. SOA fornisce supporto per realizzare i vantaggi dei principi orientati ai servizi e dell'informatica orientata ai servizi. Molte tecnologie diverse, vari prodotti, interfacce di programmazione delle applicazioni e altre varie estensioni costituiscono in genere un'implementazione SOA. L'applicazione dei principi di orientamento ai servizi alle soluzioni software produce servizi e questi sono l'unità logica di base nella SOA. Questi servizi possono esistere autonomamente, ma non sono certo isolati. I servizi mantengono alcune caratteristiche comuni e standard, ma possono essere evoluti ed estesi in modo indipendente. I servizi possono essere combinati per creare altri servizi. I servizi sono a conoscenza di altri servizi solo attraverso le descrizioni dei servizi e quindi possono essere considerati liberamente accoppiati. I servizi comunicano utilizzando messaggi autonomi sufficientemente intelligenti da governare autonomamente le proprie parti logiche. I principi di progettazione SOA più importanti sono accoppiamento libero, contratto di servizio, autonomia, astrazione, riutilizzabilità, componibilità, apolidia e rilevabilità.
Qual è la differenza tra SaaS e SOA?
SOA è un modello di produzione che si occupa della progettazione e costruzione di software applicando i principi di elaborazione orientata ai servizi alle soluzioni software, mentre SaaS è un modello per la vendita e la distribuzione di applicazioni software. In termini più semplici, SaaS è un mezzo per fornire software come servizi su Internet ai propri abbonati, mentre SOA è un modello architetturale in cui la più piccola unità logica è un servizio. Quindi, SOA (una strategia architettonica) e SaaS (un modello di business) non possono essere confrontati direttamente. Tuttavia, per ottenere i massimi vantaggi dalla riduzione dei costi e dall'agilità, si consiglia vivamente alle aziende di integrare SOA e SaaS insieme.