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==
|