Per gli sviluppatori
prodottiprodotti chi siamochi siamo mappa del sitomappa del sito
susu homehome Informazioni per sviluppatori

Info rapide per sviluppatori

Il sistema operativo

Come sistema operativo è stato scelto linux, questa è stata praticamente una scelta obbligata, dato che le featuresrichieste potevano venire offerte solo da linux.

Dovevano essere sistemi mission critical, 24x7e con una spiccata predilezione per il networking, da qui la logica conseguenza della scelta.

Sostanzialmente, in ambiente servernon esistono alternative valide a linux.

Il web server

Il CLnetnasce per l'interfaccia web, ed è stato scelto apachecome web server.

Le ragioni di questa scelta sono ovvie, si tratta del miglior web server esistente, ed è totalmente integrato nelle piattaforme linux.

Il database

Come database è stato scelto PostgreSQLper via delle sue caratteristiche full-featured, per la sua affidabilità mission criticale per le sue elevate performance.

Il termine non va inteso solo nel suo senso velocistico, ma di gestione efficiente della complessità. Il CLnetfa un uso massivo del database, e serviva un software in grado di reggerne la complessità.

E' stato scelto di impiegare largamente la programmazione diretta nel linguaggio nativo di postgres, il PL/pgSql, per tutte le elaborazioni dati.

Questo fornisce un' affidabilitàaltissima sui dati (i dati vengono gestiti unicamente dal database), e delle performancesempre ai massimi livelli (nessun problema di roundtriptra client e server).

Non ultimo, PostgreSQLè perfettamente integrato in ambiente linux.

L'interfaccia web

Per l'interfacciamento web è stato sviluppato un motore ad-hoc. Non è stato utilizzato nessun software application serveresistente, perché sono tutti troppo complicati ed inefficienti.

Non serviva un application servercome quelli che vengono impiegati di solito, ma un motore per interfacce web estremamente personalizzabileed estremamente efficiente.

Nessun prodotto poteva rispondere ai requisiti richiesti, così ne è stato sviluppato uno ad-hoc.

Gran parte dello strato applicativoè stato implementato direttamente sul database, quindi non era richiesta grande complessità nell'interfaccia ma, anzi, una grande linearità e velocità di risposta.

Il CLnet è quasi interamente server side, quindi è stato implementato solo quel poco di javascriptnecessario alla corretta interazione dei browsercol server.

La bash

Per fondere tutti questi elementi assieme, e coordinarne l'attività, è stata scelta la bash.

La bashè la shellstandard di linux, molti non sanno che si tratta di un linguaggio di programmazione full-featured. E' stata scelta perché unisce una grande velocità operativa con una grande flessibilitàdi impiego.

Si sviluppa, si testa e si debuggacon tempistiche estremamente rapide, e si possono scrivere programmi molto più complessi e compatti rispetto ad altri linguaggi di programmazione.

Una caratteristica praticamente unica della bashrisiede nel fatto che si tratta di un interpretepuro, non viene mai compilata, e questo consente di modificarne il codice durante il funzionamento.

La evidente differenza tra le performance di un linguaggio precompilato, ed uno interpretato, può venire totalmente compensata dal fatto che il programma interpretato può venire modificato durante il funzionamento stesso.

Questo rende il codice totalmente dinamico ed attivo, il codice è di per sé modulare, e vengono caricati (ed eseguiti) solo i moduli strettamente necessari. Inoltre diversi di questi moduli vengono scritti di volta in volta, dal codice stesso durante il funzionamento, rendendo il tutto sempre ottimale ed efficiente. Questo si può fare solo con dei linguaggi interpretati.

L' awk

L' awkè un vecchissimo elaboratore di testi (testi con struttura tabellare), questo lo rende estremamente adatto ad elaborare i dati, sia in ingresso che in uscita, verso i database.

La sua compattezza lo rende la scelta migliore per le trasformazioni necessarie ai passaggi dati tra databaseed interfaccia web.

Anche questo è un vero linguaggio di programmazione full-featurede produce elaborazioni efficienti e molto dirette dei dati in transito ( in streaming).

Anche l' awkè programmabile al volo quindi, anche in questo caso, il CLnet predispone il codice da eseguire solo un attimo prima di eseguirlo.

Rappresenta un perfetto complemento alla bash, in quanto possiede caratteristiche analoghe di auto programmazione. Le tecniche sono, ovviamente, leggermente diverse tra i due, ma l'idea è quella.

Clustering e repliche

E' stata scelta un'infrastruttura di tipo clustercon due hardwareindipendenti.

Il modello è active/standby, dove le scritture devono essere inviate ad una sola delle macchine, mentre la secondaria interviene solo in caso di necessità. La commutazione è automatica.

I dati vengono replicati ogni minuto dalla macchina principale a quella secondaria. Questo meccanismo rende possibile effettuare anche repliche in remoto.

Le repliche vengono effettuate ad alto livello (si opera tramite il database), questo permette di utilizzare le repliche anche per le trasmissioni dati in remoto.

Le repliche vengono quindi effettuate anche su piattaforme remote, in modo da disporre di backupremoti, oltre che locali.

Un dettaglio rilevante è che anche le sessioni di lavoro degli utilizzatori siano replicabili, tutto il CLnet è clusterizzabile. In caso di commutazione, gli operatori possono riprendere il lavoro dalle ultime operazioni completate (con circa due minuti di latenza).

Le trasmissioni dati vengono implementate tramite repliche di dati, quindi avvengono direttamente da databasea database, con la sola mediazione di linux.

Sicurezza

I protocolli utilizzati sono httpsall'esterno delle reti locali (aree insicure) e l' httpquando le reti locali si possono considerare sicure, questi due protocolli per l'interfaccia web degli operatori.

Per le trasmissioni da macchina a macchina viene invece usato il protocollo ssh.

Questi protocolli sono stati implementati con un livello di sicurezza molto elevato, e possono venire utilizzati senza problemi attraverso internet.

E' stata presa in seria considerazione la sicurezza informatica, ed i sistemi sono configurati in modo da risultare molto sicuri in quanto tali, e possono quindi essere esposti direttamente su internet senza alcuna protezione aggiuntiva (risulterebbe anzi controproducente).

Aggiornamenti

Grazie al rispetto dei criteri precedentemente illustrati, è possibile effettuare gli aggiornamenti, sia dell'applicativo che della struttura del database, durante il normale funzionamento.

Le modifiche al software applicativo, e le modifiche alla definizione del database, vengono effettuate in maniera coordinata, con i sistemi totalmente funzionanti e con gli utenti attivi.

Questo rende il CLnet un sistema adatto al 24x7, ossia utilizzabile in continuo da qualsiasi parte del pianeta (non c'è nessun concetto di giorno, notteo giorno della settimana).

Non sono previsti reali tempi di fermo per manutenzione o aggiornamenti, ed il fatto di utilizzare un clusterdi due macchine rende possibile tenere i sistemi effettivamente onlinein continuo.

La distribuzione ad albero dei sistemi, l'elevata interconnettività, l'elevata affidabilità, l'elevata sicurezza e l'assenza di fermi macchinarendono il CLnet ottimale anche per strutture aziendali complesse e di grandi dimensioni (livello world-wide).