Service Oriented Architecture (SOA) is a modern approach to build distributed application and greatly reduce the time, effort and cost to develop the software projects. SOA provides the dynamic paradigm for composing distributed application even in heterogeneous environments. This is also introducing challenges: due to its distributed nature, service-oriented applications does not give a direct control over each third-party service integrated in the architecture (for example, they might change during time and be incorrect with respect to their initial functionality, the one for which they were chosen). Starting from a language invented at Politecnico di Milano for facing the problem of monitoring and recovery in specific situation of service coordination, we built a more general language for observing and asserting conditions on system operation in a wider range of possible contexts, disconnecting itself from a sole framework. In this text, we will explain the grammar and the features of the language, and even its working environment. We also provide a series of examples and tutorials for support the understanding, and for showing its power and flexibility.

Oggigiorno, l'approccio moderno e più utilizzato per lo sviluppo di applicazioni è denominato Service Oriented Architecture (SOA): i principali benefici ottenuti sono la realizzazione di applicazioni distribuite in un minor tempo e con minor sforzo, più flessibili e facilmente integrabili. SOA fornisce un paradigma dinamico per la composizione di applicazioni distribuite anche in ambienti eterogenei. Questo porta con se anche delle difficoltà e introduce nuove problematiche: data la loro natura distribuita, le applicazioni service-oriented che sfruttano e integrano servizi di terzi-parti non hanno ne garanzie, ne controllo diretto su queste componenti esterne. La giurisdizione su ciascun servizio è del fornitore, che, nell'arco del tempo, può modificare o dismettere il servizio; di conseguenza, questo può causare malfunzionamenti e complicazioni in tutte quelle architetture composte che sfruttano tale servizio. All'interno del Politecnico di Milano è stato sviluppato un linguaggio proprio per far fronte al problema del monitoraggio e del recupero da errori, concentrandosi sull'ambito della coordinazione di web services. In questa tesi, partendo dal linguaggio di cui sopra, andiamo a costruire un linguaggio di più generico uso, che fornisce funzioni di monitoraggio e analisi di precise condizioni sul funzionamento del sistema. L'insieme dei possibili contesti raggiungibili viene ampliato, slegandosi quindi dal solo ambiente della composizione di web services. Mostreremo e spiegheremo la grammatica del linguaggio, le sue caratteristiche e il funzionamento d'insieme. Tutto questo sarà fatto seguendo un approccio pragmatico: ogni passaggio sarà chiarito con opportuni esempi e casi d'uso che ne mostreranno le capacità e la flessibilità. Saranno anche brevemente descritti dei tutorial, realizzati appositamente e resi disponibili online, per mostrare come il linguaggio sia adattabile a diverse situazioni e in diverse circostanze. Tutto il materiale sarà inoltre liberamente accessibile su un sito web dedicato, nato proprio con l'idea di facilitare l'uso e l'apprendimento di questo strumento.

Specl : an assertion language for service data objects

BRUNETTI, RICCARDO
2012/2013

Abstract

Service Oriented Architecture (SOA) is a modern approach to build distributed application and greatly reduce the time, effort and cost to develop the software projects. SOA provides the dynamic paradigm for composing distributed application even in heterogeneous environments. This is also introducing challenges: due to its distributed nature, service-oriented applications does not give a direct control over each third-party service integrated in the architecture (for example, they might change during time and be incorrect with respect to their initial functionality, the one for which they were chosen). Starting from a language invented at Politecnico di Milano for facing the problem of monitoring and recovery in specific situation of service coordination, we built a more general language for observing and asserting conditions on system operation in a wider range of possible contexts, disconnecting itself from a sole framework. In this text, we will explain the grammar and the features of the language, and even its working environment. We also provide a series of examples and tutorials for support the understanding, and for showing its power and flexibility.
ING - Scuola di Ingegneria Industriale e dell'Informazione
18-dic-2013
2012/2013
Oggigiorno, l'approccio moderno e più utilizzato per lo sviluppo di applicazioni è denominato Service Oriented Architecture (SOA): i principali benefici ottenuti sono la realizzazione di applicazioni distribuite in un minor tempo e con minor sforzo, più flessibili e facilmente integrabili. SOA fornisce un paradigma dinamico per la composizione di applicazioni distribuite anche in ambienti eterogenei. Questo porta con se anche delle difficoltà e introduce nuove problematiche: data la loro natura distribuita, le applicazioni service-oriented che sfruttano e integrano servizi di terzi-parti non hanno ne garanzie, ne controllo diretto su queste componenti esterne. La giurisdizione su ciascun servizio è del fornitore, che, nell'arco del tempo, può modificare o dismettere il servizio; di conseguenza, questo può causare malfunzionamenti e complicazioni in tutte quelle architetture composte che sfruttano tale servizio. All'interno del Politecnico di Milano è stato sviluppato un linguaggio proprio per far fronte al problema del monitoraggio e del recupero da errori, concentrandosi sull'ambito della coordinazione di web services. In questa tesi, partendo dal linguaggio di cui sopra, andiamo a costruire un linguaggio di più generico uso, che fornisce funzioni di monitoraggio e analisi di precise condizioni sul funzionamento del sistema. L'insieme dei possibili contesti raggiungibili viene ampliato, slegandosi quindi dal solo ambiente della composizione di web services. Mostreremo e spiegheremo la grammatica del linguaggio, le sue caratteristiche e il funzionamento d'insieme. Tutto questo sarà fatto seguendo un approccio pragmatico: ogni passaggio sarà chiarito con opportuni esempi e casi d'uso che ne mostreranno le capacità e la flessibilità. Saranno anche brevemente descritti dei tutorial, realizzati appositamente e resi disponibili online, per mostrare come il linguaggio sia adattabile a diverse situazioni e in diverse circostanze. Tutto il materiale sarà inoltre liberamente accessibile su un sito web dedicato, nato proprio con l'idea di facilitare l'uso e l'apprendimento di questo strumento.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2013_12_Brunetti.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 604.58 kB
Formato Adobe PDF
604.58 kB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/88867