L'affidabilità nei web services vuol dire molte cose. Una delle più importanti è sicuramente la certezza della recapitazione del messaggio anche in caso questo messaggio sia partizionato in più parti.
Come consuetudine ogni cosa nel mondo "web services" deve essere regolamentato, per ovvi motivi di interoperabilità. Questo dell'affidabilità non fa eccezzione ed ecco quindi che abbiamo OASIS che si occupa del caso WS Reliable Exchange. Questa specifica nasce un pò da WS-ReliableMessaging e un pò da WS-Reliability e vede insieme sia SUN che Microsoft (fra gli altri).
Fatta questa doverosa premessa, volevo concentrarmi sull'implementazione. WCF implementa il protocollo WS-ReliableMessaging e ci si aspetta che sucessivamente adotterà anche WS Reliable Exchange in modo trasparente allo sviluppatore. Il punto di interesse però sta nella sua implementazione. Se è vero che l'affidabilità è mantenuta a livello di canale, così non si può dire a livello di processo. Christian raccoglie un insieme di ragionamenti interessanti. Infatti la domanda più importante che dobbiamo porci è: ma come è gestita l'affidabilità ?
Attualmente è tutto in memoria, per cui se il processo va in dump per qualuncue motivo, addio all'affidabilità ! Ci vorrebbe un meccanismo di persistenza così come adottato in MSMQ.