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]]
==
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.▼
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
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>
* '''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 =
| 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|
== 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|
* {{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à}}
|