.net CMS

Sviluppatori

Questo breve introduttivo, si prefissa di fornire un quadro generico sull’applicativo web visto dal lato sia del “webmaster”, che da quello dello sviluppatore, verranno qui definite quelle che sono le caratteristiche e i meccanismi fondamentali che ne regolano il funzionamento

L’idea di base che ha pervaso lo sviluppo dell’applicativo web fin dalle sue origini, fu quella di creare un fondamento per lo sviluppo sul web di applicazioni altamente performanti, facile da gestire, senza compromessi e senza limiti, ed è per questo che il motto adottato è “noi incominciamo dove gli altri finiscono”. Assolutamente non è stato creato un semplice CMS per gestire un sito web, ma un applicativo che ha la caratteristica nativa di poter gestire infiniti siti web persino su domini differenti, anche il supporto multilingua è nativo e viene fatto largo uso di tecnologie multithread in modo da ottenere il massimo delle prestazioni e sfruttare al meglio i server multiprocessori su cui l’applicativo girerà in maniera estremamente performante grazie alle potenzialità dell’ambiente professionale .NET.
La facilità d’utilizzo è stato il nostro imperativo categorico, ragion per cui l’istallazione dell’applicativo non è vincolata a caratteristiche particolari da parte dell’servizio di hosting, infatti non vengono utilizzate istruzioni che in qualche modo potrebbero violare la “security policy level”, situazione non tanto scontata perché gran parte dei CMS in distribuzione, a causa di istruzioni potenzialmente pericolose contenute nel loro codice, funzionano senza intoppi solamente se installate su hosting che adottano una “security policy level” molto blanda.
Proprio per rendere compatibile l’applicativo con il più largo ventaglio possibile di servizi hosting offerti in rete, e per accentuarne le la sicurezza, l’applicativo web è nato per funzionare con un basilare trust level medium. Da parte del servizio di hosting non è nemmeno richiesto il supporto e la connessione dei database in quanto, per nessun algoritmo è stato fatto uso di database, nemmeno per il forum o per l’archiviazione dei contenuti, il tutto usando una soluzione brillante ed estremamente performante:
In via generale, lo schema classico con il quale un applicativo accede ai dati, avviene tramite una interrogazione al database, tecnicamente detta query. Il database di sovente si trova in remoto, ovvero su un server diverso da quello in cui gira l’applicativo, l’interrogazione parte, il server accede ad dispositivo di memorizzazione in cui si trova il database, elabora e restituisce una serie di record in cui sono contenuti i risultati della richiesta. Tale processo, implica inesorabilmente delle tempistiche che sono quelle fisiche sia dovute alla trasmissione dati tra computer che quelle dovute all’elaborazione della richiesta come anche i tempi di reazione. Tale gestione va ad intaccare inesorabilmente le performance dell’applicativo, ragion per cui chi opera secondo questo schema di sovente viene costretto ad adottare uno stratagemma per ridurre il numero delle query al database, ovvero si crea una copia lato client del risultato della query o di ciò che è l’elaborato prodotto tramite essa, tale copia viene mantenuta in un dispositivo logico tecnicamente conosciuto come cache e l’applicativo usa il più possibile questa copia, anziché inviare le query al database con il risultato che non sempre i contenuti visualizzati risultino aggiornati dato che il dispositivo di sincronizzazione viene fatto o con un timer o su eventi particolari, c’è anche la casistica in cui le query sono tutte talmente differenti tra loro che quindi non risulta possibile mettere nella cache tutti i risultati, ciò avviene negli applicativi che hanno una forte personalizzazione in base all’utente utilizzatore, ecco quindi che le applicazioni web che fanno uso di database, sono praticamente forzate a fornire dati piatti, uguali per tutti proprio in modo da ridurre le query al database avvantaggiando invece l’accesso più performante alle copie contenute nella cache.
La nostra soluzione completamente rivoluzionaria rispetto alla tecnica descritta sopra, consiste d’archiviare i dati nel disco ordinati in maniera tale che le directory e sottodirectory fungano all’equivalente delle tabelle di un database e i record siano rappresentati da file scritti nel formato standard XML, uno per ogni record. Con questo ordinamento dei dati, ogni query non è nient’altro che una semplice interrogazione al disco alla quale provvede autonomamente la circuiteria del disco stesso a gestire – grazie all’accesso DMA – senza incidere minimamente sulle performance della CPU e in maniera pressoché immediata, coadiuvati anche dalla cache hardware del disco che non è affatto una copia non sincronizzata del contenuto originario. Tale tecnica fa si che i dati, quali per esempio quelli generati dal forum, dai foto album, dagli articoli inseriti e la lista utenti, si trovino sempre ordinati e classificati ad albero, nelle sottocartelle di App_Data che è l’unica cartella abilitata in scrittura. Per velocizzare la gestione e l’accesso ai dati, è stato sviluppato un dispositivo di cache interno che viene messo anche a disposizione degli sviluppatori, il quale tiene in ram in modo intelligente, non la copia di dati su disco, ma l’oggetto vivo che si sta manipolando: Viene tenuto in vita nella cache l’istanza di un oggetto di programmazione, il che significa che una qualsiasi modifica inerente ad un oggetto, anche se contenuto nella cache, si riflette sull’originale e quindi ogni manifestazione dell’applicativo non raffigurerà sfasamenti dovuto ai tempi d’aggiornamento nella cache, in quanto nella cache – detto in parole povere - per via della tecnica utilizzata, non vi sono copie ma gli originali sui quali si sta lavorando.

Argomenti nella stessa categoria