Service-oriented architecture: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1:
 
Nell'ambito dell'[[informatica]], con la locuzione [[lingua inglese|inglese]] di '''Service-Oriented Architecture''' (SOA) viene indicata un'architettura [[software]] atta a supportare l'uso di [[Web service|servizi Web]] per soddisfare le richieste degli utenti così da consentire l'utilizzo delle singole [[applicazione|applicazioni]] come ''componenti'' del processo di business.
 
[[Immagine:SOA Elements.png|thumb|right|300px|Elementi di una SOA, di Dirk Krafzig, Karl Banke, e Dirk Slama. ''Enterprise SOA''. Prentice Hall, 2005]]
 
Nell'ambito di un'architettura SOA è quindi possibile modificare, in maniera relativamente più semplice, le modalità di interazione tra i servizi, oppure la combinazione nella quale i servizi vengono utilizzati nel processo, così come risulta più agevole aggiungere nuovi servizi e modificare i processi per rispondere alle specifiche esigenze di business: il processo di business non è più vincolato da una specifica [[sistema (informatica)|piattaforma]] o da un'applicazione ma può essere considerato come un componente di un processo più ampio e quindi riutilizzato o modificato.
 
L'architettura orientata ai servizi si presenta particolarmente adatta per le aziende che presentano una discreta complessità di processi e applicazioni, dal momento che agevola l'interazione tra le diverse realtà aziendali permettendo, al contempo, alle attività di business di sviluppare processi efficienti, sia internamente che esternamente ed aumentarne la flessibilità e l'adattabilità.
 
Benché molte aziende offrano prodotti che possono formare la base di una SOA va sottolineato che la SOA non è un prodotto.
 
Un'architettura orientata ai servizi non è legata ad una specifica tecnologia. Può essere realizzata usando una vasta gamma di tecnologie, comprese [[REST]], [[Chiamata di procedura remota|RPC]], [[Distributed Component Object Model|DCOM]], [[CORBA]] o i [[Web service|Web services]]. SOA può essere implementata anche non usando nessuno di questi protocolli e, per esempio, basarsi sul file system, trasferendo i dati in base alle specifiche dell'interfaccia tra i processi, conformemente al concetto di SOA. La chiave è l'indipendenza dei servizi, definiti da un'interfaccia specifica, che possono essere chiamati per eseguire i propri compiti in un modo standard, senza che il servizio abbia conoscenza dell'applicazione chiamante e senza che l'applicazione abbia conoscenza, o necessiti di averne, del servizio che effettivamente eseguirà l'operazione.
 
SOA può anche essere vista come uno stile dell'architettura dei sistemi informatici che permetta la creazione delle applicazioni sviluppate, combinando servizi debolmente accoppiati e interoperabilità degli stessi. Questi servizi interoperano secondo una definizione formale, detta protocollo o contratto, come per i [[Web Services Description Language|WSDL]] indipendente dalla piattaforma sottostante e dalle tecnologie di sviluppo (come Java, .NET, ecc). I servizi, per esempio, scritti in Java usando la piattaforma Java EE e quelli in C# con .NET possono essere utilizzati dall'applicazione sovrastante. Le applicazioni in esecuzione su una piattaforma possono anche utilizzare servizi in esecuzione su altre, come con i Web services, facilitando quindi la riusabilità.
 
SOA può supportare l'integrazione e la consolidazione di attività all'interno di complessi sistemi aziendali, ma non specifica o fornisce la metodologia o il framework per documentare capacità e potenzialità dei servizi.
 
I linguaggi di altro livello come [[BPEL]] e le specifiche come WS-CDL e WS-Coordination estendono il concetto di servizio, fornendo un metodo per definire e supportare la coordinazione dei servizi di rifinitura con quelli maggiori, che, di conseguenza, possono essere inclusi in flussi di controllo e processi aziendali implementati con applicazioni composte o portali.
 
 
== Definizioni di SOA ==
Line 37 ⟶ 21:
 
Sebbene molte definizioni di SOA si limitino alla tecnologia o solo ai Web Services, questo aspetto è predominante nei fornitori di tecnologia. Nel 2003 questi parlavano di Web Services, e nel 2006 di Motori di Processo.
 
== Descrizione ==
 
Nell'ambito di un'architettura SOA è quindi possibile modificare, in maniera relativamente più semplice, le modalità di interazione tra i servizi, oppure la combinazione nella quale i servizi vengono utilizzati nel processo, così come risulta più agevole aggiungere nuovi servizi e modificare i processi per rispondere alle specifiche esigenze di business: il processo di business non è più vincolato da una specifica [[sistema (informatica)|piattaforma]] o da un'applicazione ma può essere considerato come un componente di un processo più ampio e quindi riutilizzato o modificato.
 
L'architettura orientata ai servizi si presenta particolarmente adatta per le aziende che presentano una discreta complessità di processi e applicazioni, dal momento che agevola l'interazione tra le diverse realtà aziendali permettendo, al contempo, alle attività di business di sviluppare processi efficienti, sia internamente che esternamente ed aumentarne la flessibilità e l'adattabilità.
 
Benché molte aziende offrano prodotti che possono formare la base di una SOA va sottolineato che la SOA non è un prodotto.
 
Un'architettura orientata ai servizi non è legata ad una specifica tecnologia. Può essere realizzata usando una vasta gamma di tecnologie, comprese [[REST]], [[Chiamata di procedura remota|RPC]], [[Distributed Component Object Model|DCOM]], [[CORBA]] o i [[Web service|Web services]]. SOA può essere implementata anche non usando nessuno di questi protocolli e, per esempio, basarsi sul file system, trasferendo i dati in base alle specifiche dell'interfaccia tra i processi, conformemente al concetto di SOA. La chiave è l'indipendenza dei servizi, definiti da un'interfaccia specifica, che possono essere chiamati per eseguire i propri compiti in un modo standard, senza che il servizio abbia conoscenza dell'applicazione chiamante e senza che l'applicazione abbia conoscenza, o necessiti di averne, del servizio che effettivamente eseguirà l'operazione.
 
SOA può anche essere vista come uno stile dell'architettura dei sistemi informatici che permetta la creazione delle applicazioni sviluppate, combinando servizi debolmente accoppiati e interoperabilità degli stessi. Questi servizi interoperano secondo una definizione formale, detta protocollo o contratto, come per i [[Web Services Description Language|WSDL]] indipendente dalla piattaforma sottostante e dalle tecnologie di sviluppo (come Java, .NET, ecc). I servizi, per esempio, scritti in Java usando la piattaforma Java EE e quelli in C# con .NET possono essere utilizzati dall'applicazione sovrastante. Le applicazioni in esecuzione su una piattaforma possono anche utilizzare servizi in esecuzione su altre, come con i Web services, facilitando quindi la riusabilità.
 
SOA può supportare l'integrazione e la consolidazione di attività all'interno di complessi sistemi aziendali, ma non specifica o fornisce la metodologia o il framework per documentare capacità e potenzialità dei servizi.
 
I linguaggi di altro livello come [[BPEL]] e le specifiche come WS-CDL e WS-Coordination estendono il concetto di servizio, fornendo un metodo per definire e supportare la coordinazione dei servizi di rifinitura con quelli maggiori, che, di conseguenza, possono essere inclusi in flussi di controllo e processi aziendali implementati con applicazioni composte o portali.
 
 
==Tecnologie alla base della SOA==