Service-oriented architecture: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Recupero di 1 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5
 
(24 versioni intermedie di 8 utenti non mostrate)
Riga 3:
[[File:SOA Elements.png|thumb|upright=1.4|Elementi di una SOA, di Dirk Krafzig, Karl Banke, e Dirk Slama. ''Enterprise SOA''. Prentice Hall, 2005]]
 
== DescrizioneDefinizioni esistenti ==
Nell'ambito di un'architettura ''Service-Oriented Architecture'' è 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. Inoltre, risulta più agevole aggiungere nuovi servizi e modificare i processi per rispondere alle specifiche esigenze di business. Così facendo, 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 è particolarmente adatta per le aziende che presentano una discreta complessità di processi e applicazioni. Infatti, viene agevolata l'interazione tra le diverse realtà aziendali. Le attività di business ora possono sviluppare processi efficienti sia internamente che esternamente. Parallelamente aumenta la flessibilità e l'adattabilità dei processi.
 
Benché molte aziende offrano prodotti che possono formare la base di una ''Service-Oriented Architecture'' va sottolineato che la ''Service-Oriented Architecture'' non è un prodotto.
 
La chiave sta nella totale assenza di business logic sul client SOA, il quale è totalmente agnostico rispetto alla piattaforma di implementazione, riguardo ai protocolli, al binding, al tipo di dati, alle policy con cui il servizio produrrà l'informazione richiesta. Tutto a beneficio dell'indipendenza dei servizi, 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.
 
''Service-Oriented Architecture'' può anche essere vista come uno stile dell'architettura dei [[sistema informatico|sistemi informatici]] che permetta la creazione delle applicazioni sviluppate, combinando servizi debolmente accoppiati e interoperabilità degli stessi. Questi servizi interagiscono secondo una definizione formale, detta protocollo o contratto, come per i [[Web Services Description Language]] indipendente dalla piattaforma sottostante e dalle tecnologie di sviluppo (come Java, .NET, ecc.). Per esempio, i servizi 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 service, facilitando quindi la riusabilità.
 
''Service-Oriented Architecture'' può supportare l'integrazione e la consolidazione di attività all'interno di complessi sistemi aziendali (sistemi di [[Enterprise Application Integration|EAI]]) ma non specifica o fornisce la metodologia o il framework per documentare capacità e potenzialità dei servizi.
 
I linguaggi di alto livello come [[Business Process Execution Language]] e le specifiche come ''Web Services Choreography Description Language'' 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 esistenti ===
Una ''Service-Oriented Architecture'' è progettata per il collegamento a richiesta di risorse computazionali (principalmente applicazioni e dati), per ottenere un dato risultato per gli utenti, che possono essere utenti finali o altri servizi. L'''Organization for the Advancement of Structured Information Standards'' (Organizzazione per lo sviluppo di standard sull'informazione strutturata) definisce la Service Oriented Architecture così:
 
{{citazione| Un paradigma per l'organizzazione eè l'utilizzo delle risorse distribuite che possono essere sotto il controllo di domini di proprietà differenti. Fornisce un mezzo uniforme per offrire, scoprire, interagire ed usare le capacità di produrre gli effetti voluti consistentemente con presupposti e aspettative misurabili. | Organization for the Advancement of Structured Information Standards }}
 
Nonostante il fatto che esistano molteplici definizioni di ''Service-Oriented Architecture'', solo il gruppo ''Organization for the Advancement of Structured Information Standards'' ha prodotto una definizione formale applicabile profondamente sia alla tecnologia che ai domini aziendali.
Riga 40 ⟶ 25:
Cioè, mentre apprezziamo il valore degli elementi esposti a destra, noi prediligiamo
gli elementi indicati a sinistra. | [http://www.soa-manifesto.org/default_italian.html Manifesto SOA] }}
 
== Descrizione ==
Nell'ambito di un'architettura ''Service-Oriented Architecture'' è 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. Inoltre, risulta più agevole aggiungere nuovi servizi e modificare i processi per rispondere alle specifiche esigenze di business. Così facendo, 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 è particolarmente adatta per le aziende che presentano una discreta complessità di processi e applicazioni. Infatti, viene agevolata l'interazione tra le diverse realtà aziendali. Le attività di business ora possono sviluppare processi efficienti sia internamente che esternamente. Parallelamente aumenta la flessibilità e l'adattabilità dei processi.
 
Benché molte aziende offrano prodotti che possono formare la base di una ''Service-Oriented Architecture'' va sottolineato che la ''Service-Oriented Architecture'' non è un prodotto.
 
La chiave sta nella totale assenza di business logic sul client SOA, il quale è totalmente agnostico rispetto alla piattaforma di implementazione, riguardo ai protocolli, al binding, al tipo di dati, alle policy con cui il servizio produrrà l'informazione richiesta. Tutto a beneficio dell'indipendenza dei servizi, 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.
 
''Service-Oriented Architecture'' può anche essere vista come uno stile dell'architettura dei [[sistema informatico|sistemi informatici]] che permetta la creazione delle applicazioni sviluppate, combinando servizi debolmente accoppiati e interoperabilità degli stessi. Questi servizi interagiscono secondo una definizione formale, detta protocollo o contratto, come per i [[Web Services Description Language]] indipendente dalla piattaforma sottostante e dalle tecnologie di sviluppo (come Java, .NET, ecc.). Per esempio, i servizi 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 service, facilitando quindi la riusabilità.
 
''Service-Oriented Architecture'' può supportare l'integrazione e la consolidazione di attività all'interno di complessi sistemi aziendali (sistemi di [[Enterprise Application Integration|EAI]]) ma non specifica o fornisce la metodologia o il framework per documentare capacità e potenzialità dei servizi.
 
I linguaggi di alto livello come [[Business Process Execution Language]] e le specifiche come ''Web Services Choreography Description Language'' 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 correlate ==
Riga 49:
== Protocolli di comunicazione correlati ==
Il service oriented computing non è legato ad una specifica tecnologia. Può essere realizzato usando una vasta gamma di tecnologie, comprese:
* [[Representational State Transfer]] (REST), un linguaggio usato per la definizione del servizio è Web Application Description Language;
* [[chiamata di procedura remota]] (RPC);
* [[Distributed Component Object Model]] (DCOM), definiti mediante [[Interface Description Language]];
* [[Common Object Request Broker Architecture]] (CORBA), definiti mediante [[Interface Description Language]].
 
Bisogna sottolineare il fatto che, perché una architettura possa essere definita ''orientata ai servizi'', il protocollo di comunicazione deve permettere anche di definire i servizi, i parametri in ingresso ed in uscita, come viene fatto, ad esempio con il [[Web Services Description Language]].
Riga 62:
 
* '''Standard aperti''': per poter operare in ambienti multipiattaforma è necessario, o quantomeno consigliabile, utilizzare esclusivamente standard aperti quali [[XML]], [[Web Services Description Language|WSDL]] e [[WS-Security]] (WSS).
* '''Modularità''': bisogna trovare il giusto equilibrio tra i servizi erogati da ogni singolo componente, creando un insieme bilanciato di piccoli servizi riutilizzabili per le funzioni comuni e servizi più grandi per processi specifici. Tale aspetto viene mutuato dal [[Component-based software engineering]]<ref>[{{Cita web |url=http://petritsch.co.at/download/SOA_vs_component_based.pdf |titolo=Service-Oriented Architecture (SOA) vs. Component Based Architecture] |accesso=4 aprile 2015 |dataarchivio=21 aprile 2015 |urlarchivio=https://web.archive.org/web/20150421174209/http://petritsch.co.at/download/SOA_vs_component_based.pdf |urlmorto=sì }}</ref>.
* '''Contratti di servizio''': [[Web Services Description Language]] è la specifica standard per la creazione di contratti di Web service, un contratto definito avrà come conseguenza servizi più flessibili. Un'alternativa è il [[Web Application Description Language]], che permette di definire servizi che usano la tecnologia [[Representational State Transfer]] e [[JSON]].
* '''Framework di integrazione''': implementano i pattern di integrazione<ref>[http://www.pearsoned.co.uk/bookshop/detail.asp?WT.oss=enterprise%20integration%20patterns&WT.oss_r=1&item=100000000041627 pattern di integrazione]</ref> e permettono una gestione più ordinata dell'orchestrazione dei servizi.
Riga 88:
 
==Bibliografia==
* {{Cita libro | cognome=Barry | nome=Douglas K. | titolo= Web Services and Service-Oriented Architectures: The Savvy Manager's Guide | url=https://archive.org/details/webservicesservi0000barr | editore= Morgan Kaufmann Publishers | anno=2003 | città=San Francisco | isbn=1-55860-906-7 }}
* {{Cita libro | cognome=Bieberstein | nome=Norbert | coautori= Sanjay Bose, Marc Fiammante, Keith Jones, Rawn Shah | titolo= Service-Oriented Architecture Compass - Business Value, Planning and Enterprise Roadmap | editore= IBM Press| anno=2005 | città=Upper Saddle River | isbn=0-13-187002-5 }}
* {{Cita libro | cognome=Bloomberg| nome=Jason| coautori= Ronald Schmelzer | titolo= Service- orient or Be Doomed| url=https://archive.org/details/serviceorientorb00bloo| editore= WILEY | anno=2006 | città=Hoboken, New Jersey| isbn=0-13-187002-5}}
* {{Cita libro | cognome=Erl | nome=Thomas | titolo= Service-Oriented Architecture: A Field Guide to Integrating XML and Web Services | url=https://archive.org/details/serviceorienteda0000erlt_f1c5 | editore= Prentice Hall PTR | anno=2004 | città=Upper Saddle River | isbn=0-13-142898-5 }}
* {{Cita libro | cognome=Erl | nome=Thomas | titolo= Service-Oriented Architecture: Concepts, Technology, and Design | url=https://archive.org/details/serviceorienteda0000erlt_f1c5 | editore= Prentice Hall PTR | anno=2005 | città=Upper Saddle River | isbn=0-13-185858-0 }}
* {{Cita libro | cognome=Hurwitz | nome=Judith | coautori=Robin Bloor, Carol Baroudi, Marcia Kaufman | titolo= Service Oriented Architecture for Dummies | editore= Wiley | anno=2006 | città=Hoboken | isbn=0-470-05435-2 }}
* {{Cita web | cognome = Shan | nome = Tony | coautori = Hua, Winnie | anno = 2006 | url = http://www.irma-international.org/viewtitle/3073/ | titolo = A Service-Oriented Solution Framework for Internet Banking | formato = PDF | editore= International Journal of Web Services Research, Vol. 3, Issue 1, pp 29-48 }}
Riga 125:
| nome =
| anno = 2006
| url = httphttps://www.amazon.com/gp/product/1427600252/sr=8-1/qid=1155236512/ref=sr_1_1/002-5004521-0480820?ie=UTF8
| titolo = The Emergence of Grid and Service-Oriented IT: An Industry Vision for Business Success
| tipo = Paperback| editore= Tabor Communications, Inc.
Riga 165:
 
== Altri progetti ==
{{interprogetto|commonspreposizione=Category:Service-oriented architecturesulla}}
 
== Collegamenti esterni ==
*{{en}} Consorzio OASIS: [http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm Modello di riferimento per le SOA]
*{{en}} InfoWorld: [https://web.archive.org/web/20060204060647/http://infoworld.com/techindex/portal/soa.html SOA News] Articoli sulle SOA
*{{cita web|1=http://colab.cim3.net/cgi-bin/wiki.pl?AnnouncementofSOACoP|2=Comunità di pratica sulle SOA|lingua=en|accesso=1 agosto 2007|urlarchivio=https://web.archive.org/web/20070813232434/http://colab.cim3.net/cgi-bin/wiki.pl?AnnouncementofSOACoP|dataarchivio=13 agosto 2007|urlmorto=sì}}
*{{en}} [https://web.archive.org/web/20060212051921/http://weblogs.java.net/blog/johnreynolds/archive/2005/01/the_soa_elevato.html La definizione di SOA di John Reynolds in due frasi] Articolo
*{{cita web|1=http://wiki.java.net/bin/view/Javapedia/ServiceOrientedArchitecture|2=Wiki su SOA nel sito java.net|lingua=en|accesso=14 febbraio 2006|urlarchivio=https://web.archive.org/web/20060228204752/http://wiki.java.net/bin/view/Javapedia/ServiceOrientedArchitecture|dataarchivio=28 febbraio 2006|urlmorto=sì}}
*{{en}} [https://web.archive.org/web/20170915191919/http://soa-zone.com/ SOA Zone] Blog molto consultato a livello industriale
*{{cita web|http://www.customers.com/articles/Service-Oriented-World-Cheat-Sheet/|"Service-Oriented World" di Patricia Seybold|lingua=en}}
 
=== Definizioni di Service-Oriented Architecture ===
* {{cita web|url=http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=soa-rm|titolo=Modello di Riferimento SOA di OASIS (SOA-RM)|lingua=en}}
* {{cita web|httphttps://www.xml.com/pub/a/ws/2003/09/30/soa.html|XML.com Cos'è una service-oriented_architecture|lingua=en}}
* {{cita web|1=http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html|2=Javaworld.com Cos'è una service-oriented_architecture|lingua=en|accesso=4 gennaio 2007|dataarchivio=6 giugno 2007|urlarchivio=https://web.archive.org/web/20070606190654/http://www.javaworld.com/javaworld/jw-06-2005/jw-0613-soa.html|urlmorto=sì}}
* {{cita web|1=http://isp.webopedia.com/TERM/S/Service_Oriented_Architecture.html|2=Definizione tratta da Webopedia|lingua=en|accesso=4 gennaio 2007|dataarchivio=30 novembre 2006|urlarchivio=https://web.archive.org/web/20061130032624/http://isp.webopedia.com/TERM/S/Service_Oriented_Architecture.html|urlmorto=sì}}
* {{cita web|1=http://soa.omg.org/|2=Definizione dell'Object Management Group|lingua=en|accesso=4 gennaio 2007|dataarchivio=7 dicembre 2006|urlarchivio=https://web.archive.org/web/20061207183601/http://soa.omg.org/|urlmorto=sì}}
* {{cita web|1=http://searchwebservices.techtarget.com/gDefinition/0,294236,sid26_gci929153,00.html|2=Definizione di Whatis.com|lingua=en|accesso=4 gennaio 2007|dataarchivio=22 febbraio 2007|urlarchivio=https://web.archive.org/web/20070222101941/http://searchwebservices.techtarget.com/gDefinition/0,294236,sid26_gci929153,00.html|urlmorto=sì}}
* {{cita web|1=http://www.service-architecture.com/web-services/articles/service-oriented_architecture_soa_definition.html|2=Web service e SOA|lingua=en|accesso=14 febbraio 2006|dataarchivio=11 febbraio 2011|urlarchivio=https://web.archive.org/web/20110211195040/http://www.service-architecture.com/web-services/articles/service-oriented_architecture_soa_definition.html|urlmorto=sì}}
* {{cita web|1=http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci1017004,00.html|2=Definizioni da parte di esperti industriali|lingua=en|accesso=4 gennaio 2007|dataarchivio=10 novembre 2006|urlarchivio=https://web.archive.org/web/20061110141657/http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci1017004,00.html|urlmorto=sì}}
 
{{Controllo di autorità}}