Articoli del meseArticoli del mese

Articoli del mese


Stampa articolo

Articolo del Mese - Agosto 2004

Applicazioni Web ad alta disponibilità

John Kneiling by John Kneiling

Per molte ragioni, il web è divenuto l?ambiente preferito per le applicazioni dipartimentali o a beneficio dell?intera impresa. Tuttavia, molte organizzazioni restano dubbiose sulla propria capacità di supportare processi importanti per l?impresa in maniera sufficientemente affidabile.
Ma cosa è necessario fare per assicurare la disponibilità continua di queste applicazioni?
Esistono tre fattori di alta disponibilità (HA, ovvero High Availability): disponibilità, capacità di accesso e prestazioni. In un sistema con applicazioni HA, tutti i necessari servizi di sistema operano correttamente. In altri termini, tutti questi servizi sono accessibili da chi sia abilitato, ovvero possono essere richiesti tramite la rete, così come debbono fornire un minimo di prestazioni standard in termini di utilizzo corretto della rete, delle applicazioni e delle risorse del server.
Per migliorare la disponibilità di un?applicazione è indispensabile un?azione di monitoraggio. Esistono molte metriche, ma indicheremo solamente quelle di base. In primo luogo, la disponibilità del sistema, naturalmente con tutti i necessari servizi per l?impresa.
Quindi, la capacità di accesso. Ovvero, fino a che punto è possibile accedere a questi servizi da locazioni predefinite all?interno dell?organizzazione? Esistono due modi per misurare le performance: il tempo di accesso e risposta misura la percezione dell?utente, mentre la capacità di flusso delle transazioni fornisce quella del provider.
Il bilanciamento del carico consente ai server del web e a quelli delle applicazioni per il web di indirizzare le loro richieste verso le macchine disponibili.
Questa tecnologia aiuta anche il sistema ad affrontare gli stop, reindirizzando le richieste verso risorse in ?hot standby?, ovvero pronte a essere impegnate immediatamente e senza soluzioni di continuità, come nel caso del Database Server 2 nella figura 1. Il bilanciamento del carico ripartisce l?impegno su macchine multiple, fornendo così una capacità di elaborazione superiore a quella di ogni singolo server.
L?aumento incrementale della capacità elaborativa prolunga il ritorno degli investimenti sui server e fornisce una modalità a basso costo per raggiungere un?alta disponibilità, rimuovendo una precisa possibilità di malfunzionamento.
Gli strumenti per il bilanciamento del carico si basano sulla conoscenza dello stato della configurazione, ovvero dello stato corrente e dei tempi di latenza di ogni macchina inserita nella configurazione. Alcuni strumenti supportano locazioni multiple, reindirizzando ciascuna richiesta sulla base della locazione del client in Internet.
Questi strumenti generalmente sono integrati nel web, nelle applicazioni e nei server di eCommerce.
Figura 1 ? Bilanciamento del carico e superamento dei malfunzionamenti
La ridondanza soddisfa due obiettivi: migliora la disponibilità ed elimina la possibilità di malfunzione in un punto singolo del sistema. Se replichiamo le risorse in vicinanza dell?utente, si riduce anche la lunghezza del percorso e si evitano colli di bottiglia potenziali.
Questo accorgimento è definito ?locazione di riferimento? e rappresenta un altro modo per ottimizzare le risorse di dati e applicazioni. Le tattiche migliori per una ridondanza pianificata sono il bilanciamento del carico e la resistenza ai malfunzionamenti del server, oltre all?impiego di configurazioni multiple delle risorse a disposizione.
Le cadute non spaventano
La caduta della sola sessione indica la capacità di un?applicazione di non interrompersi se viene meno il collegamento con l?utente. Si tratta di una capacità che deve essere progettata nell?ambito del sistema ed è implementata normalmente nei server dedicati alle applicazioni web. La mancanza di tale capacità comporta la perdita di tutte le elaborazioni non salvate nel momento della caduta della sessione.
Ad esempio, se un consumatore sta perfezionando un acquisto, verranno perdute tutte le informazioni relative al pagamento da effettuare. Questi dati, relativi alle informazioni sulla sessione attiva, spesso sono indicati con l?acronimo TSD (Transient Session Data).
Per la soluzione di questo problema, esistono due approcci: sessioni persistenti a livello del database e sessioni da memoria a memoria. Entrambe le tecniche sono definite spesso come raggruppamento delle sessioni. Una sessione su database persistente, nel corso del proprio svolgimento memorizza e mantiene i dati di proprio interesse in un database dedicato.
In caso di arresto del server, la sessione viene trasferita su di un altro server web dedicato all?applicazione, in modo trasparente per l?utente. Esiste però una penalizzazione in termini di performance, perché i dati della sessione interessati debbono essere identificati e recuperati per mantenere inalterato lo stato della sessione stessa. Le sessioni da memoria a memoria operano in maniera simile, con la differenza che i dati vengono costantemente duplicati su di un altro server.
Questo approccio elimina il ritardo nella ripartenza dovuto alla ricerca dei dati nel database di riferimento.
Utilizzando Java, l?implementazione della capacità di gestire la caduta della sessione può creare un certa confusione. Prima di tutto, il raggruppamento delle sessioni (Session Clustering) è definito come standard aperto nelle API Java Server. Ma, poiché è implementato in maniera differente e con prodotti diversi, non potete contare su di un raggruppamento tra server di questo tipo, sui quali girano prodotti Java di origine diversa.
Se usate un ambiente J2EE, non utilizzate sessioni EJB per memorizzare i dati delle sessioni TSD. Queste, infatti, mantengono le informazioni di stato come dati in una memoria cache, in modo da consentire un miglioramento delle prestazioni. Il problema deriva dal fatto che, in caso di caduta dell?applicazione, tutti i dati TSD vengono perduti e l?utente deve ripartire dall?inizio.
Un?alternativa migliore è progettare sessioni EJB senza indicazione di stato. In tal modo, questi bean non mantengono in memoria uno stato della sessione e ciascun metodo all?interno della sessione senza stato viene eseguito indipendentemente, evitando collegamenti con dati in memoria.
Tornando all?esempio citato precedentemente, una lista di acquisti può essere mantenuta su di un oggetto persistente e poi spostata nel DBMS a cura della codifica dell?applicazione relativa all?accesso ai dati. Quando l?utente ha terminato gli acquisti e vuole procedere al pagamento, gli articoli prescelti vengono ritrovati all?interno del DBMS (ancora una volta mediante la codifica di accesso ai dati), e la transazione può essere completata.
Se questo tipo di sessione, senza indicazione di stato, si interrompe, il sistema di raggruppamento delle sessioni la sposta su di un server alternativo (vedi Figura 1). Al momento della richiesta del pagamento, il nuovo server legge la shopping list direttamente dal DBMS.
Per realizzare tutto questo in Java, possiamo estendere l?oggetto ?carrello della spesa?, aggiungendo un altro oggetto denominato SelectedItems, ovvero merce selezionata, che è una JavaArrayList di MerchandiseItems. Al momento del pagamento, l?applicazione ritroverà l?oggetto SelectedItems. Questo presuppone l?uso della tecnica di raggruppamento da memoria a memoria.
In termini pratici, avviene questo: se il server cade, gli oggetti saranno parte della sessione dell?utente e, se stiamo utilizzando il raggruppamento delle sessioni, la sessione interessata verrà trasferita in modo trasparente. Le performance miglioreranno perché SectedItems è rappresentato da un bean (in memoria) e non all?interno del DBMS.
Questo approccio opera meglio nel caso di un numero limitato di dati. In caso contrario, grandi quantità di dati non dovrebbero essere memorizzate come oggetti delle sessioni utente. Questo esempio presuppone anche che stiamo utilizzando un approccio allo sviluppo delle applicazioni che isoli la codifica di accesso ai dati, come quello di Model-View-Controller (MVC).
Il problema della disponibilità
Per essere sempre disponibile, un?applicazione con alte performance deve essere scalabile. La scalabilità orizzontale significa che un?applicazione clonata gira su due o più server, configurati in modo da poter superare i malfunzionamenti. La scalabilità verticale pone istanze multiple di un?applicazione su di un server singolo. Questo fornisce una capacità addizionale e una resistenza ai malfunzionamenti a livello di server. Nella figura 2, App 1 possiede una scalabilità orizzontale e verticale, mentre App 2 ha solamente una scalabilità orizzontale.
Il modo più accurato per pianificare la ridondanza, è condurre un?analisi completa di capacità. In primo luogo, determinate le relazioni tra le risorse e la base di riferimento del server utente. Catalogate il numero totale degli utenti, il carico di lavoro concorrente medio e di picco, gli accessi random alla memoria per ogni istanza richiesti dall?applicazione, lo spazio necessario sull?hard disk, ecc.
Se un sistema o un?applicazione cadono, deve esistere una capacità elaborativa sufficiente a supportare il carico medio di utenti, compresi i server web e le applicazioni, la memoria e le altre risorse necessarie. A tale proposito, alcune organizzazioni hanno calcolato che, sotto un carico di lavoro medio, i server non debbano girare oltre il limite del 40 per cento della loro capacità.
Figura 2? Scalabilità e clonazione
Lo sviluppo di un sistema ad alta disponibilità non è una questione di tecnologia, ma piuttosto richiede la progettazione del sistema delle applicazioni in modo da corrispondere alle necessità dell?impresa, realizzando applicazioni con alte prestazioni, disponibili e facilmente utilizzabili.
Questo significa rimuovere i singoli punti di criticità, fornendo una scalabilità orizzontale e isolando la codifica relativa ai dati mediante un approccio del tipo MVC. Altri fattori importanti comprendono l?uso delle tecniche di raggruppamento e di ripartenza delle sessioni, oltre al trattamento dei dati transienti con una logica di recovery ad alta velocità.
Le applicazioni web complesse costituiscono una sfida che può essere affrontata con successo mediante un giusto approccio di progettazione.
 

Applicazioni Web ad alta disponibilità - Technology Transfer

Enterprise information catalog. I requisiti per fare la scelta giusta
Mike Ferguson

La nuova era dell’analisi predittiva - Le aziende alla prova del Machine Learning
Frank Greco

Uno sguardo Agile - Per capire il passato e progettare il futuro
Arie van Bennekum

Trasformazione Agile
Se il product owner diventa un collo di bottiglia

Sander Hoogendoorn

Una Fiat o una Ferrari?
Qual è la più adatta per il business digitale?

Barry Devlin

Vincere la complessità dei dati. È l’ora dello smart data management
Mike Ferguson

Big Data e Analytics - Se il machine learning accelera anche la data science
Mike Ferguson

I dati al centro del business
Christopher Bradley

I Big Data forniscono il contesto e la ricchezza predittiva attorno alle transazioni di business Avere dati coerenti e di qualità resta fondamentale per il processo decisionale
Barry Devlin

Cosa c’è dietro l’angolo? Cinque mosse per diventare un digital leader
Jeroen Derynck

Managing information technology Gestire l’IT come un business nel business
Mitchell Weisberg

Data integration self-service Miglioramento della produttività o caos totale?
Mike Ferguson

Project manager vecchi miti e nuove realtà
Aaron Shenhar

La catena alimentare dei requisiti
Suzanne Robertson

Come diventare un’azienda data-centric
Lindy Ryan

Enterprise analytical ecosystem - Come comprendere il comportamento online dei clienti e capitalizzare il valore dei dati nell’era Big Data
Mike Ferguson

Agilità? Basta Volere
Suzanne Robertson

Ma la vostra architettura è efficace?
Mike Rosen

Se il NoSQL diventa SQL
Rick van der Lans

La data quality e l’impatto sul business
Danette McGilvray

Business analysis e regole di business By Ronald G. Ross con Gladys S.W. Lam
Ronald Ross

Usare Scrum su larga scala: cosa cambia?
Craig Larman

Le architetture per ridurre il debito tecnico
Mike Rosen

Conversando con un marziano
Suzanne Robertson

Cosa c’è di nuovo nel project management?
Aaron Shenhar

Reinventare la Business Intelligence
Barry Devlin

Il nuovo volto della business intelligence
Shaku Atre

Alla ricerca del valore tra i pomodori nell'orto
John Favaro

I big data cambiano il mercato dei Database Server
Rick van der Lans

Un “superstorm” di informazioni
Barry Devlin

I dieci step per la qualità dei dati
Danette McGilvray

Perché è meglio evitare il private cloud?
Jason Bloomberg

Leonardo da Vinci aveva ragione!
Chris Date

Mobile user experience: Come adottare una strategia sostenibile
James Hobart

Cosa significa occuparsi di architettura?
Mike Rosen

Virtualizzazione dei dati e sistemi di Business Intelligence Agili
Rick van der Lans

Modelli e linguaggi naturali, quale il modo migliore per definire i requisiti?
James Robertson

Extreme Scoping: un approccio Agile all'Edw e alla BI
Larissa Moss

BI², la Business Intelligence al quadrato
Barry Devlin

I test di regressione in ambienti legacy
Randy Rice

Le conseguenze della consumerizzazione e del Cloud
Chris Potts

Come vanno gli affari? Chiedetelo al vostro cruscotto
Shaku Atre

Organizzare team di progetto efficienti in ambienti DW/BI
Larissa Moss

Big Data, come e perché
Colin White

Business Capabilities e l'allineamento del business all'IT
Mike Rosen

Il valore della tassonomia nella ricerca delle informazioni
Zach Wahl

BI, ma il Data Warehouse è ancora necessario?
Colin White

Reinventare la Business Intelligence
Barry Devlin

Il cruscotto delle prestazioni: il nuovo volto della Business Intelligence
Shaku Atre

Modelli e processi di User acceptance testing
Randy Rice

I limiti nel gestire l'IT come un Business
Chris Potts

Le componenti fondamentali del Cloud
George Reese

Metadati e DW 2.0
Derek Strauss

BI Open Source: basso costo e alto valore?
Jos van Dongen

Semplicità e requisiti
Suzanne Robertson

Business intelligence e analisi testuale
Bill Inmon

Extreme Scoping™: approcci agili al DW e alla BI
Larissa Moss

Dalla BI a un'architettura IT di livello Enterprise
Barry Devlin

Ambiente efficiente di ricerca di informazioni
James Hobart

Il Business deve trainare la Strategia IT
Chris Potts

Web database: la questione MapReduce (seconda parte)
Colin White

Web database: la questione MapReduce
Colin White

Misura delle prestazioni. I sette comandamenti
Harry Chapman

Le dieci cose che un architetto deve fare per creare valore
Mike Rosen

Sviluppare applicazioni a prova di sicurezza
Ken van Wyk

The ECM Landscape in 2008
Alan Pelz-Sharpe

Ma chi sono gli operatori dell’informazione?
Colin White

Qualità dell’informazione e trasformazione del management
Larry English

Classificazione sistematica delle informazioni
Zach Wahl

L’uso intensivo del Web nelle applicazioni di Bi
Colin White

Enterprise Search
Theresa Regli

La forza dell'astrazione
Steve Hoberman

La strada verso una BI pervasiva
Cindi Howson

Soa, una strategia di test
Randy Rice

Verso una BI più semplice e a minor costo
Colin White

I contenuti “Killer” del Web
Gerry McGovern

Sviluppo iterativo del software per i Dw
Larissa Moss

Qualità delle Informazioni e Datawarehousing
Larry English

Lo scenario Ecm 2008
Alan Pelz-Sharpe

La nascita del Web 3.0
John Kneiling

Documentazione: il dossier del crimine
Suzanne Robertson

L’impatto del Web 2.0 sui portali delle imprese
Colin White

Le tecniche vincenti di IT Management
Ken Rau

Web 2.0
Ed Yourdon

Web di successo se si conosce il cliente
Gerry McGovern

Un approccio alla BI incentrato sui processi
Colin White

Integrare Master Data Management e BI (Parte Seconda)
Mike Ferguson

Integrare Master Data Management e BI (Parte Prima)
Mike Ferguson

Il Project Manager è una Tata
Suzanne Robertson

Web di successo se si conosce il cliente
Gerry McGovern

L'informazione personalizzata
Colin White

La Tassonomia dell'Impresa
Zach Wahl

Managed Meta Data Environment (II parte)
David Marco

Managed Meta Data Environment
David Marco

Migliorare le applicazioni dell'impresa con Web 2.0
James Hobart

La Balanced Scorecard migliora la Performance dell'IT
Harry Chapman

La fusione dei processi dell'impresa grazie a Soa (II parte)
Max Dolgicer

La fusione dei processi dell'impresa grazie a SOA (I parte)
Max Dolgicer

Volere è Potere, in Ogni Senso
Suzanne Robertson

Dimostrate con i numeri il valore dei contenuti del web
Gerry McGovern

Il Back-end della pianificazione strategica dell'It
Ken Rau

L'audit delle prescrizioni di progetto (II parte)
Suzanne Robertson

L'audit delle prescrizioni di progetto (I parte)
Suzanne Robertson

Il Processo di gestione delle informazioni
Ted Lewis

I requisiti come strumento di gestione dei progetti
Suzanne Robertson

Il futuro è nel contenuto killer del web
Gerry McGovern

Alla ricerca del valore tra i pomodori nell'orto
John Favaro

Rilevare i costi sulla base delle attività
Ken Rau

Un percorso verso l'impresa intelligente (II parte)
Mike Ferguson

Un percorso verso l'impresa intelligente (I parte)
Mike Ferguson

Il Data Store Operativo: un lavoro di martello
Claudia Imhoff

Il data warehouse orientato all'impresa
Michael Schmitz

Dieci punti chiave per realizzare balanced scorecard di successo
Harry Chapman

Content management: i contenuti al primo posto
Gerry McGovern

Applicazioni Web ad alta disponibilità
John Kneiling

Il 2004, sarà l'anno in cui abbandoneremo html?
James Hobart

La tecnologia EII ripropone il data warehousing virtuale?
Colin White

Misurare per Gestire
Ken Rau

Volere è Potere, in Ogni Senso
Suzanne Robertson

Realizzare il CPM e l'integrazione della BI
Mike Ferguson

Tutti i punti della FPA
Koni Thompson

Requiem per il Portale?
Colin White

Business Intelligence: dalla teoria alla realtà (II parte)
Shaku Atre

Business Intelligence: dalla teoria alla realtà (I parte)
Shaku Atre

I portali Corporate e di E-business: la nuova generazione del posto di lavoro
Mike Ferguson

I 10 errori da evitare nella realizzazione di un Meta Data Repository (II Parte)
David Marco

I 10 errori da evitare nella realizzazione di un Meta Data Repository (I parte)
David Marco

Usare i modelli per acquisire l'esperienza di progettazione
James Hobart

Realizzare l'Impresa Intelligente
Colin White

.NET or J2EE - Choosing the Right Web Services Framework
John Kneiling

Progettare Applicazioni Mobili di Successo
James Hobart

La Sociologia del Progetto: Identificare e Coinvolgere tutti i Partecipanti
Suzanne Robertson

Integrare la Business Intelligence nell'Impresa (II parte)
Mike Ferguson

Integrare la Business Intelligence nell'Impresa (I parte)
Mike Ferguson

L'Evoluzione del Portale di e-Business (II parte)
Colin White

L'Evoluzione del Portale di e-Business (I parte)
Colin White

Il Consulente WebEAI: Servizi Web, XML e l'Impresa
John Kneiling

Data Mining: Come Gestire le Relazioni con i Clienti Secondo i Principi del CRM
Weaver James

Articoli del mese - Technology Transfer