Corso Sviluppatore servizi per il Web (WCF) Lezione 01



Documenti analoghi
I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

B.P.S. Business Process Server ALLEGATO C10

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Note di rilascio. Aggiornamento disponibile tramite Live Update a partire dal. Il supporto per Windows XP e Office 2003 è terminato

E.S.B. Enterprise Service Bus ALLEGATO C11

Il web server Apache Lezione n. 3. Introduzione

Visual basic base Lezione 01. L'ambiente di sviluppo

MANUALE ESSE3 Gestione Registro delle lezioni

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

WorkFLow (Gestione del flusso pratiche)

Cross Software ltd - Prosyt srl. Maximum extent of technology Il gestionale più avanzato sul mercato. Pag. 1

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Le fattispecie di riuso

INVIO SMS

Reti di Telecomunicazione Lezione 8

BDX 3D-EDITOR (autore: Marco Bedulli) Scopo del software. Caratteristiche fondamentali. Linguaggi utilizzati. Navigazione 3D

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Gestione Risorse Umane Web

MODULO 5 Appunti ACCESS - Basi di dati

Installazione e caratteristiche generali 1

Volume GESTFLORA. Gestione aziende agricole e floricole. Guidaall uso del software

Overview su Online Certificate Status Protocol (OCSP)

Registratori di Cassa

Il sistema C.R.M. / E.R.M.

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).

GHPPEditor è un software realizzato per produrre in modo rapido e guidato un part program per controlli numerici Heidenhain.

Configurazione di Outlook Express

Hardware delle reti LAN

Progettare un Firewall

Dispensa di Informatica I.1

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Mac Application Manager 1.3 (SOLO PER TIGER)

Brochure Internet. Versione The Keyrules Company s.r.l. Pagina 2 di 8

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

ControlloCosti. Cubi OLAP. Controllo Costi Manuale Cubi

Light CRM. Documento Tecnico. Descrizione delle funzionalità del servizio

Prodotto <ADAM DASHBOARD> Release <1.0> Gennaio 2015

la tua presenza e il tuo BUSINESS ON-LINE

Approfondimento: Migrazione dei database e backup della posta

Versione 1. (marzo 2010)

MANUALE MOODLE STUDENTI. Accesso al Materiale Didattico

Lifephone. Introduzione. Database. Sito

Sistemi informativi secondo prospettive combinate

TERM TALK. software per la raccolta dati

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

MANUALE DELLA QUALITÀ Pag. 1 di 6

EDICOLA MANAGER EM Importer

LE RETI: STRUMENTO AZIENDALE

Office 2007 Lezione 08

Automazione Industriale (scheduling+mms) scheduling+mms.

File, Modifica, Visualizza, Strumenti, Messaggio

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Corso di PHP. Prerequisiti. 1 - Introduzione

PROCEDURE DI FIRMA PER I PIP PRESENTATI NEI BANDI APPRENDISTATO

WEB SEMINAR Dettaglio servizio

SCENARIO. Personas ALICE Lucchin / BENITO Condemi de Felice. All rights reserved.

Lite Standard Licenza supplementare. Professional Licenza supplementare Licenza Lite Standard Licenza supplementare

FPf per Windows 3.1. Guida all uso

Sistemi di Antivirus CEFRIEL. Politecnico di Milano. Consorzio per la Formazione e la Ricerca in Ingegneria dell Informazione. Politecnico di Milano

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

Introduzione all Information Retrieval

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

Il calendario di Windows Vista

2.7 La cartella Preparazioni e CD Quiz Casa

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

InitZero s.r.l. Via P. Calamandrei, Arezzo

PRESENTAZIONE. Chi è B-Bright

lem logic enterprise manager

Reti di calcolatori ed indirizzi IP

Antivirus. Lezione 07. A cosa serve un antivirus

Mon Ami 3000 Centri di costo Contabilità analitica per centri di costo/ricavo e sub-attività

Corso su LINQ Lezione 16. Introduzione

Lite Standard Licenza supplementare. supplementare Licenza Lite Standard Licenza supplementare

Maschere di sottorete a lunghezza variabile

SOLUZIONE Web.Orders online

Una metodologia per la specifica di software basato su componenti

Gestore Comunicazioni Obbligatorie - VARDATORI - Progetto SINTESI Dominio Provinciale Modulo Applicativo:COB Procedura VARDATORI

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

Concetti di base di ingegneria del software

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Istruzioni. Il cuore del dispositivo è un Embedded PC Linux che raccoglie e gestisce tutte le funzioni dell' apparecchiatura.

Una novità di Microsoft per il lancio sul mercato di Microsoft Visual Studio 2005 è stata quella sia

LA GESTIONE DEL MARKETING AZIENDALE AI TEMPI DEL WEB 3.0

Firewall applicativo per la protezione di portali intranet/extranet

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

MANUALE UTENTE Fiscali Free

CP Customer Portal. Sistema di gestione ticket unificato

ZFIDELITY - ZSE Software & Engineering Pag.1 / 11

Database. Si ringrazia Marco Bertini per le slides

Guida all uso di Java Diagrammi ER

Alla scoperta della nuova interfaccia di Office 2010

IL SISTEMA INFORMATIVO

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

Transcript:

01 Introduzione Introduzione alla tecnologia WCF Premessa Il corso su WCF di cui state leggendo la prima lezione, vi guiderà alla scoperta di questa nuova tecnologia introdotta da Microsoft per venire incontro alle esigenze dei moderni sviluppatori software i quali si ritrovano sempre più spesso a dover sviluppare applicazioni orientate ai servizi, ovvero applicazioni che hanno necessità di comunicare con altre applicazioni in maniera distribuita. WCF, acronimo di Windows Communication Foundation, uno dei nuovi framework introdotti con la versione 3.0 del.net Framework, consente lo sviluppo di applicazioni e servizi che comunicano tra loro anche attraverso reti distribuite lasciando però allo stesso tempo la piena libertà al programmatore di ridefinire ogni aspetto di questo scenario. Nelle prossime lezioni conosceremo quindi questa nuova tecnologia e come essa ci permetta di implementare, anche abbastanza facilmente, applicazioni orientate ai servizi (SOA). Questo corso è rivolto a tutti coloro che già sviluppano in.net e desiderano approfondire la conoscenza di Windows Communication Foundation per realizzare applicazioni innovative. E richiesta ovviamente una conoscenza anche solo di base del.net Framework in generale ed uno tra i due linguaggi principali del Framework, C# o VB.NET. Per questioni di spazio però, gli esempi proposti nelle lezioni saranno scritti solo nel linguaggio C# in quanto l implementazione dei concetti che affronteremo non è molto differente tra un linguaggio e l altro. Tutti gli esempi faranno uso dell ambiente di sviluppo Microsoft Visual Web Developer 2008 Express Edition oppure di Microsoft Visual C# 2008 Express Edition a seconda degli specifici esempi che verranno proposti. Gianni Malanga - Merlin Wizard DMC 2009 Tutti i diritti riservati 1

Ovviamente l ambiente di sviluppo più idoneo per sviluppare in WCF ed usufruire di tutte le sue funzionalità è Visual Studio 2008 nella sua versione completa (Standard o Professional) ma anche con le versioni Express è possibile ugualmente realizzare delle applicazioni complete. Nelle successive lezioni vedremo come installare questi prodotti. Obiettivo finale di questo corso è quindi quello di permettervi di acquisire una buona conoscenza della tecnologia WCF anche dal punto di vista teorico e di poterla utilizzare attivamente nel vostro lavoro quotidiano. Le origini di WCF Windows Communication Foundation, meglio conosciuta come WCF, è una tecnologia presentata per la prima volta da Microsoft alla Professional Developer Conference (PDC) del 2003 sotto il nome in codice di Indigo. WCF nasce come evoluzione delle precedenti tecnologie rivolte allo sviluppo di applicazioni SOA, Service-Oriented Architecture, quali.asmx Web Services,.NET Remoting,.NET Enterprise Services e Web Service Enhancements (WSE). Queste tecnologie sono state quindi assorbite da un unico framework che ne riunisce le potenzialità ma soprattutto semplifica il modello di programmazione unificandolo e rendendo quindi di conseguenza molto semplice passare da una tecnologia (o protocollo) all altra senza alcuno sforzo. Come abbiamo detto, WCF consente lo sviluppo di applicazioni SOA, ma quali sono le caratteristiche di questa categoria di applicazioni? Per SOA si intende una architettura basata sull implementazione o la fruizione di servizi e si basa su quattro principi fondamentali: Confini Espliciti: la tecnologia ed il linguaggio utilizzati per l implementazione del servizio sono noti solo al servizio stesso mentre all esterno non vengono esposte caratteristiche od informazioni che sono irrilevanti al fine della fruizione del servizio. Servizi Autonomi: il servizio deve poter essere eseguito e modificato senza per questo influire sui client che lo utilizzano. Detto in altre parole, il servizio non deve dipendere da caratteristiche del client e non deve modificare, in seguito a modifiche ed aggiornamenti, il modo in cui questi lo richiamano. I Servizi espongono solo contratti o schemi: il servizio deve esporre ai client solo schemi e contratti utili alla sua fruizione che non devono in alcun modo dipendere dalla specifica tecnologia utilizzata per la sua implementazione. Questo significa che il servizio non deve mai esporre tipi o classi specifiche del linguaggio di programmazione utilizzato per realizzarlo. Gianni Malanga - Merlin Wizard DMC 2009 Tutti i diritti riservati 2

Compatibilità basata su regole prestabilite: le regole di comunicazione tra i servizi ed i loro client sono prestabilite e non possono essere modificate arbitrariamente dopo la loro prima pubblicazione. L architettura di WCF WCF è quindi un Framework che racchiude tutti i pregi delle precedenti tecnologie nate per lo sviluppo service oriented ed a questi vi aggiunge la facilità di implementazione oltre alla estrema versatilità di utilizzo. Le altre tecnologie, comunque, non vengono sostituite da WCF ma a questo vi si affiancano per consentire allo sviluppatore la scelta della tecnologia di volta in volta più opportuna per lo sviluppo della specifica applicazione che si intende realizzare. WCF introduce diversi nuovi concetti che è necessario conoscere prima di poter iniziare a sviluppare e che vedremo dettagliatamente nel corso delle prossime lezioni. Per sviluppare servizi WCF non è necessario dover conoscere nuovi strumenti in quanto tutto può essere fatto utilizzando i classici strumenti e linguaggi di programmazione che già conosciamo. Questa è una caratteristiche di tutti i componenti del.net Framework e come tale, anche WCF, si avvantaggia di questa importante caratteristica. L architettura di WCF si basa sui servizi ed in particolare sui messaggi che questi servizi permettono di scambiare. A grandi linee i componenti fondamentali di WCF sono quindi il messaggio, il mittente ed il destinatario. A questi componenti si affiancano i corrispondenti Layer che ospitano tutte le funzionalità e le classi necessarie alla gestione di ciascun momento della comunicazione. I layer sono: Contracts Layer Service Model Layer Messaging Layer Hosting Layer Questa separazione di WCF in layer consente di mantenere ben separati i vari strati preposti alla gestione della comunicazione tra il servizio ed i suoi client. In questo modo è possibile variare il comportamento di ciascun layer od anche sostituirlo completamente con uno differente, senza per questo intaccare il comportamento degli altri layer che difatti continueranno a fare il loro lavoro. Gianni Malanga - Merlin Wizard DMC 2009 Tutti i diritti riservati 3

Vediamo quindi uno schema che illustra i componenti fondamentali dell architettura di WCF: Figura 1 Il Service Model Layer, rappresentato dal Service runtime, è lo strato preposto al controllo del messaggio ed al suo adattamento alle esigenze dello specifico servizio che si sta realizzando. E il layer più vicino allo strato Contract e per questo motivo è anche uno degli strati più utilizzati. Il Service runtime si occupa della gestione degli errori (Error Behavior), della transazione (Transaction Behavior) della concorrenza (Concurrency Behavior) e di numerosi altri importanti aspetti relativi al rapporto tra il messaggio (Messaging Layer) ed il contratto (Contract Layer). Nello specifico, nello strato Service Layer si fa uso dei Behavior, ovvero di particolari componenti totalmente personalizzabili dallo sviluppatore che permettono di eseguire i compiti più disparati e che sono il vero cuore dello strato Service. Vedremo i Behavior più approfonditamente nelle prossime lezioni, evidenziamo ora solo una particolare caratteristica di questi componenti, ovvero il fatto di essere dissociati totalmente dal contratto che il servizio stipula con i suoi client. Gianni Malanga - Merlin Wizard DMC 2009 Tutti i diritti riservati 4

Un behavior infatti può essere implementato lato server e non necessariamente deve essere conosciuto anche dal client. Il Messaging Layer è ovviamente il layer più importante di tutta l architettura WCF, in quanto proprio in questo layer viene implementata la gestione dei messaggi che il servizio trasporta. Componenti fondamentali di questo strato sono i Channel, ovvero quei componenti che utilizzano i protocolli di comunicazione, quali ad esempio HTTP o Named Pipe per consentire il trasporto dei messaggi ed il loro adattamento in base allo specifico channel prescelto. Altro compito fondamentale dei channel, è quello di eseguire l encoding del messaggio in differenti formati sulla base delle scelte dello sviluppatore e quindi ad esempio in formato binario, testo, XML, e così via. I Channel si suddividono in tre categorie denominate Channel Shapes: Protocols Encoders Transports I Channel di tipo Protocols, si occupano della trasformazione del messaggio in un formato idoneo per l utilizzo con i diversi protocolli disponibili. Gli Encoders invece codificano il messaggio sulla base delle impostazioni definite dallo sviluppatore per il servizio, ed infine i channel di tipo Transports che invece trasformano il messaggio in un formato idoneo allo specifico protocollo di trasporto prescelto (HTTP, Named Pipe, Tcp, ecc). L Hosting Layer (nello schema Activation and Hosting) è lo strato del servizio WCF che si occupa di dare ospitalità al servizio. In questo strato troviamo l ambiente di esecuzione del servizio che ad esempio potrebbe essere rappresentato da uno degli host più comuni per un servizio WCF, IIS (Internet Information Services). Oltre ad IIS troviamo però, dalla sua versione 7.0 in poi, anche un nuovo host realizzato appositamente per WCF, denominato WAS (Windows Activation Services), il quale consente anche di utilizzare sotto IIS, protocolli differenti dal protocollo HTTP. Lo strato Contract è l unico strato che ha un rapporto diretto con l applicazione o client ed è lo strato a cui perviene il lavoro svolto dai tre strati inferiori. In WCF per contratto, si intende cosa offre il servizio e quali sono le regole che i client devono rispettare per poterne usufruire. Gianni Malanga - Merlin Wizard DMC 2009 Tutti i diritti riservati 5

Non vi è un solo tipo di contratto in WCF ma vi sono cinque tipologie ben definite di possibili contratti che un servizio WCF può esporre ai suoi client: Service Contract Data Contract Message Contract Fault Contract Callback Contract Il Service Contract è il contratto tipico di un servizio WCF che definisce le funzionalità del servizio, i parametri da passare e da ricevere e le modalità di fruizione. I parametri definiti in un Service Contract sono rappresentati dai tipi semplici del.net Framework, quindi nel momento in cui questi tipi semplici non sono più sufficienti per gli scopi del servizio e si ha la necessità di utilizzare tipi custom più complessi, allora è possibile realizzare un Data Contract, che definisce appunto i tipi custom che si intende utilizzare per lo scambio di dati da e verso il servizio. Se oltre alle informazioni strettamente necessarie alla specifica operazione che il servizio deve compiere, si ha anche la necessità di scambiare dati accessori che quindi non fanno parte della singola funzionalità ma servono al contesto di esecuzione del servizio, allora possiamo implementare un Message Contract che ci permette appunto di gestire informazioni generiche relative al servizio in se e non alla specifica operazione. Quando abbiamo la necessità di gestire le eccezioni, possiamo invece far uso di un Fault Contract per definire anche in caso di errori, quale convenzione utilizzare per comunicarlo al client. Questo tipo di contratto non è obbligatorio ma ci consente comunque di mantenere un maggior controllo sul nostro servizio. Infine un Callback Contract è un contratto molto particolare che, implementato sul client invece che sul server, permette in un preciso momento di invertire i ruoli e consentire quindi al server di contattare il client per comunicargli informazioni particolari. Vedremo più dettagliatamente ognuna di queste tipologie di contratti nelle prossime lezioni, insieme, ovviamente, anche ad esempi di codice per chiarire meglio le idee. Chiudiamo questa prima lezione su WCF accennando al ruolo importante che rivestono gli Attributi del.net Framework nella realizzazione di servizi WCF. Gianni Malanga - Merlin Wizard DMC 2009 Tutti i diritti riservati 6

Un Attributo.NET è una particolare classe che possiamo utilizzare per decorare una qualsiasi altra classe e più in generale, tipo, del.net Framework per specializzarne ulteriormente il comportamento o per impostarne specifiche proprietà. Gli attributi più comunemente utilizzati in WCF sono ServiceContractAttribute e OperationContractAttribute, utilizzati rispettivamente per definire come servizio una classe od una interfaccia e per definire come operation alcuni suoi metodi. Se consideriamo che il tipo più idoneo alla definizione di un servizio WCF è una interfaccia, possiamo definire una interfaccia come servizio ed un suo membro come operation nel seguente modo: [ServiceContract()] public interface IMyService { [OperationContract()] string GetAddress( string customername); } Anche se ridotto all osso, queste righe di codice definiscono un servizio WCF che ovviamente, essendo rappresentato da una interface, dovrà essere implementato da una classe per poter essere utilizzato da un client, operazione che vedremo nelle prossime lezioni del corso. Gianni Malanga - Merlin Wizard DMC 2009 Tutti i diritti riservati 7