Internet ed il web

Introduzione
Nel 1957 l’unione sovietica mise in orbita il primo satellite, lo sputnik. Nel 1966 l’USA finanzia il progetto ARPANET per la creazione di una rete sicura su cui condividere i dati e non centralizzata in modo tale che in caso di guerra non sia facilmente distruggibile. Tale rete venne molto usata dalle università per condividere i dati basandosi su un protocollo di trasporto NCP.
Nel 1972 nasce la posta elettronica, da Ray Tomlinson e venne creato il protocollo SMTP da Jon Postel che ideo anche il protocollo DNS per la risoluzione dei nomi e l’introduzione dei domini. Aumentarono i numeri di host e si venne a creare la NSFnet più evoluta ed economica di ARPANET che venne dismessa.
Tim Berner Lee inventa il web per consentire l’accesso veloce al web. Nel 96 Microsoft crea il suo primo browser e cosi continua la crescita esponenziale del web.
Continua a leggere…

Categorie: master

Algoritmi e struttura dati

Problemi computazionali
L’informatica è la scienza che studia la risoluzione di problemi per mezzo di algoritmi, ossia una sequenza di passi che consentono di risolvere il problema.

Questo comporta che:

  • il soggetto che dovrà eseguirli dovrà essere in grado di comprenderli ed eseguirli
  • i dati in ingresso devono essere usati dagli algoritmi per ottenere il risultato
  • l’algoritmo è composto da un insieme di passi finiti, altrimenti non si tratta di un algoritmo di risoluzione.
  • l’esecuzione deve prevedere un tempo finito

Continua a leggere…

Categorie: master

J2EE Patterns: Intercepting Filter

Intercepting Filter

Questo pattern rientra tra i pattern J2EE di tipo Presentation

Contesto
Spesso nelle applicazioni si ha la necessità di intercettare e gestire sia la richiesta che la risposta, quindi il flusso di dati in ingresso ed in uscita che si viene a instaurare sia prima che dopo il processamento.
Molto spesso questa necessità nasce da motivi disparati quali: esigenze di logging, informazioni statistiche di accesso, verifica dei diritti di accesso, verifica dell’encoding utilizzato dal client, supporto al browser utilizzato dal client, necessità di cifrare o encodare i dati ecc.
Per gestire queste problematiche spesso si riscontra l’impiego di una serie di controlli sparsi in tutte le pagine coinvolte ma questa gestione comporta non solo una duplicazione del codice ma oltretutto rende molto fragile l’applicazione a causa di questo approccio del tipo copy-and-paste e per non bastare questo genera un forte accoppiamento tra il front-end ed il back-end. Continua a leggere…

Categorie: J2EE Pattern, java

Bad Practices: Presentation, Business e Integration Tiers

Bad Practices

Nel libro “Core J2EE™ Patterns: Best Practices and Design Strategies, Second Edition” di “Deepak Alur, John Crupi, Dan Malks” sono indicate tutte una serie di bad practices che spesso vengono riscontrate su progetti e che determinano una serie di problemi. Ho pensato di ricapitolare queste casistiche in modo tale da tenerne conto sia in sede di scrittura di codice e sia in sede di refactoring. Tali bad practices vengono riscontrate su tutti i livelli: presentation, business ed integration tiers. Continua a leggere…

Categorie: J2EE Pattern, java

Architettura Esagonale

Translate in English with Google Translate

Evoluzione architettura enterprise
Nel corso degli anni l’architettura software ha subito delle continue innovazione sia per motivi commerciale che a seguito di evoluzioni tecnologiche. Focalizzandosi sulle evoluzioni tecnologiche si è passati da architetture centralizzate ad architetture distribuite.
Inizialmente le architetture erano basate su Mainframes e l’accesso avveniva esclusivamente tramite Terminali, tutto il software era residente su un singolo server, il Mainframe.
Continua a leggere…

Categorie: java

Tell, don’t Ask

Translate in English with Google Translate

Il titolo di questo articolo prende spunto da un principio di programmazione che ho letto recentemente in un articolo “The Art of Enbugging” scritto da Andrew Hunt e David Thomas, gli autori di “The Pragmatic Programmers”.
In questo articolo gli autori fanno delle interessanti considerazioni in merito ai principi di programmazione, osservando che la programmazione è sempre più orientata ad un approccio procedurare piuttosto che ad un approccio funzionale, partendo da una considerazione di Alec Sharp, autore di “Smalltalk by Example”:

Procedural code gets information then makes decisions. Object-oriented code tells objects to do things. (Alec Sharp)

Continua a leggere…

Categorie: java, programmazione

Concorrenza in Java: Thread, Executor e Fork/Join

Thread, Executor e Fork/Join
La concorrenza è la capacità di eseguire in parallelo una parte o diverse parti di un programma. Nei moderni computer forniti di diverse CPU o diversi CORE è possibile sfruttare la parallelizzazione dei processi. Ciò consente di impiegare al meglio l’hardware in nostro possesso, di ridurre il tempo di elaborazione e di servire un numero sempre più elevato di utenze. Il miglioramento dell’esecuzione può essere valutato in base alla legge di Amhdal da cui si ricava che il massimo ricavo lo si ottiene ottimizzando il processo più frequente.
Continua a leggere…

Categorie: java
Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 30 follower