posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

SQL 2008 torna in carreggiata

La notizia (ormai datata) è che i notification services non saranno parte di SQL 2008.

Posso concordare che togliere una feature già presente in una versione precedente di un prodotto è sempre una brutta cosa.... ma (c'è sempre un "ma") dal punto di vista progettuale chi ha pensato una architettura con una notifica attiva dal lato server verso il client non aveva le idee molto chiare.

Nel mondo Windows, dai tempi remoti del three tier con COM + DCOM (poi MTS e dopo COM+) appariva molto chiaro che una architettura che generi notifiche verso il client è pura follia e la scalabilità viene persa.

Con il Framework l'architettura è rimasta sempre quella e già nella mia prima sessione in un workshop UGIdotNET (2004) dove parlai di Remoting, avevo subito evidenziato quanto sia improponibile "sparare" eventi ai client di un MarshalByRefObject in una applicazione che debba poter scalare.

Suppongo che in SQL 2005 i notification services siano nati per andare incontro ad applicazioni RAD con un microscopico numero di client e suppongo ancora che siano stati tolti per il timore di un loro abuso che porta certamente ad un clamoroso impoverimento delle prestazioni. Solo il mio pensiero ovviamente ...

Perciò non desta alcuna sorpresa quando l'illustre Tibor dice di aver riscontrato che l'interesse per i notification services sia prossimo allo zero.

Print | posted on giovedì 4 ottobre 2007 12:57 |

Feedback

Gravatar

# re: SQL 2008 torna in carreggiata

Concordo pienamente, molto meglio un polling del client verso il server, più scalabile ed anche più affidabile IMHO.
04/10/2007 13:09 | Alesssandro Scardova
Gravatar

# re: SQL 2008 torna in carreggiata

Ciao Fabio, fa piacere sentire un concittadino :)
Concordo con il dissenso e infatti ho scritto che non è bello abbandonare una tecnologia presente nella precedente versione. L'unica spiegazione che mi sono dato è quella che ho scritto, e cioè che i danni che provoca sono di gran lunga superiori ai benefici.

Personalmente non mi faccio mai abbagliare da un prodotto solo perché l'ha lanciato MS in modo più o meno solenne. I notification services non mi sono mai piaciuti per i motivi architetturali che ho esposto e so di non essere da solo.
Quindi non sono daccordo quando dici che tutte le novità possano essere assimilabili a questa "paura" di ritiro delle features.

Tanto per capirci, tecnologie come WPF sono progetti radicalmente differenti in quanto hanno una solidità progettuale ben diversa.
Personalmente al look grafico di WPF una bassa motivazione per scegliere WPF. Ce ne sono tante altre che hanno un valore più alto.
04/10/2007 15:20 | Raffaele Rialdi
Gravatar

# re: SQL 2008 torna in carreggiata

Davide, ho letto i NS sul libro ''Programming Microsoft SQL Server 2005". Non sto parlando per dicerie.
La notifica da parte dei NS al layer superiore è contro qualsiasi logica di applicazione multi tier scalabile. È un concetto consolidato da più di 10 anni.
Dopo aver letto come funzionano, i NS non mi hanno interessato e quindi non ci ho mai sviluppato sopra.
Chi è pigro e non sa come strutturare l'application layer ha sicuramente nei NS una notevole scorciatoia. Questa però è solo fumo e niente arrosto, considerati gli svantaggi in termini di scalabilità.
Lasciamo fare al DB quello che sa fare, e lo fa certamente bene. Il resto non è per lui.
04/10/2007 18:01 | Raffaele Rialdi
Gravatar

# re: SQL 2008 torna in carreggiata

Nino, Biztalk ha un ruolo totalmente differente da quello dello sviluppo di una applicazione.
L'impatto della rimozione dei NS in Biztalk sarà certamente stato valutato ma non conoscendo Biztalk non riesco ad immaginare cosa comporterà nella prossima versione.

Il problema è che usare il DB come pseudo application server è un autogol. In una moderna applicazione la logica non va dentro il DB ed è l'application server a dover "schermare" gli accessi al DB... non ci sono altre soluzioni scalabili.
05/10/2007 00:44 | Raffaele Rialdi
Gravatar

# re: SQL 2008 torna in carreggiata

@ Raffaele:

piccolo OT, rispetto al post, su WPF: il prob è che l'ultimo dei motivi (3D e grafica) per noi "tecnici" (scusa se mi ci sono messo anche io) è il primo per l'ut(o)ente.. :(

su tutto il resto assolutamente d'accordo sulla "forzatura" di design specialmente nel caso gli NS vengano usati come messagging tra livelli differenti. Un pò meno se uso gli NS per "allineare" server di back end differenti (anche se questo potrebbe essere un compito più relegato a BizTalk).
08/10/2007 15:44 | Stefano
Gravatar

# re: SQL 2008 torna in carreggiata

Stefano condivido perfettamente il discorso WPF. All'epoca delle prime beta di WinFX (oggi fx 3.0) dissi che la tecnologia che avrebbe fatto vendere di più era proprio WPF perché alle finezze tecnologiche sono "invisibili" agli utenti.
Se ragioniamo però a livello di costi/benefici, devo anche giustificare l'addozione di una nuova tecnologia. Se il vantaggio fosse solo estetico, probabilmente lo sforzo iniziale per imparare WPF non giustificherebbe la migrazione per molte software house.
Perciò considero, dal punto di vista dello sviluppatore, che la prima motivazione sia tecnologica. La software house impiega comunque meno tempo a sviluppare, ha nuovi vantaggi (le features si vendono bene) ed infine (ma concordo che sia tra le prime per l'utente) la grafica che ipnotizza tutti nella demo.

Se poi vogliamo essere più critici la grafica ha anche il vantaggio di dare maggiore ergonomia alla UI e quindi è un ulteriore vantaggio per l'utente finale.

Per quanto riguarda i NS io continuo a credere che anche sul lato server il disaccoppiamento può solo fare del bene. Usare un messaging a livello data server ha implicazioni critiche sulla scalabilità e la manutenzione. Pensa cosa implichi un aggiornamento sullo schema del DB ... tragedia.
08/10/2007 15:57 | Raffaele Rialdi
Gravatar

# re: SQL 2008 torna in carreggiata

"sopratutto nelcaso gli NS vengano usati come messagging tra livelli differenti"
Boh...mi sa che proprio non avete capito a cosa servono i notification services....servono per mandare EVENTI ALL'UTENTE FINALE!!!!!!!!!! Una mail, un SMS, un piccione viaggiatore....certo che sono inutili e deleteri se pensiamo di usarli come collante di applicazioni enterprise!!!!!
08/10/2007 17:09 | Davide Mauri
Gravatar

# re: SQL 2008 torna in carreggiata

@Gianluca. Giusto chiarimento. Io infatti non ho mai precluso a priori l'uso di stored procedure. Concordo su quanto scrivi.
08/10/2007 18:17 | Raffaele Rialdi
Gravatar

# re: SQL 2008 torna in carreggiata

@Davide. Mi porti delle motivazioni per i NS che sono totalmente inutili se l'architettura dell'applicazione è fatta decentemente.
08/10/2007 18:21 | Raffaele Rialdi
Gravatar

# re: SQL 2008 torna in carreggiata

Davide, sono il primo a parlare di servizi e quindi la soluzione di incapsulare in un servizio la logica dell'invio email è ovvia.
Il discorso del codice cablato fa parte delle "zozzate informatiche" al pari delle execsql dentro le stored. Le porcherie le trovi ovunque e non è questa la soluzione a cui alludo.

L'unico punto di cui parli dovrebbe essere un servizio e non un database. E per garantire il cross platform, i servizi si appoggiano sugli standard WS-*.

Quello su cui non concordo è che la parte di logica sia implementata in un SQL server (anche se ad-hoc non importa).
Sviluppare un servizio senza cablare le regole oggi è triviale e ci sono diverse soluzioni. Una di queste si chiama Workflow Foundation che ha il suo meccanismo di rules decisamente evoluto ed espandibile, tanto da essere stato usato anche in BizTalk.
08/10/2007 21:48 | Raffaele Rialdi
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET