<< La programmazione ad oggetti >> La programmazione orientata agli oggetti (OOP) è un paradigma di programmazione, che prevede di raggruppare in un’unica entità (la classe) sia le strutture dati sia le procedure che operano su di esse. In questo modo viene creato un “oggetto” software dotato di proprietà (dati) e metodi (procedure) che operano sui dati dell’oggetto stesso. Questo tipo di programmazione è alla base di tutti i moderni linguaggi ed è fondata su tre principi: Ereditarietà: tecnica di programmazione basata sulla creazione di nuove classi usando oggetti o classi già esistenti. Le nuove classi “ereditano” le caratteristiche e le funzionalità delle vecchie. L’ereditarietà consente di riutilizzare il codice esistente,introducendo solo le modifiche necessarie per l’implementazione delle nuove funzionalità. Incapsulamento: inserimento di dati (proprietà) e funzionalità (metodi) all’interno di un unico oggetto. Polimorfismo:possibilità per uno stesso oggetto di assumere più forme; pensiamo per esempio ad una procedura che può ricevere 2,3 o 4 parametri e si comporta diversamente in base al numero di parametri che riceve. Informazioni sulla tecnologia Java La tecnologia Java è nata come strumento di programmazione per computer da un piccolo progetto segreto denominato "Green Project" sviluppato presso Sun Microsystems nel 1991. I componenti del "Green Team" (13 persone in tutto coordinate da James Gosling) si chiusero in un anonimo ufficio sulla Sand Hill Road a Menlo Park, interruppero tutte le regolari comunicazioni con Sun e lavorarono senza sosta per 18 mesi. L'obiettivo era quello di anticipare e pianificare quale sarebbe stata la successiva evoluzione dell'informatica. Inizialmente giunsero alla conclusione che una delle tendenze più significative sarebbe stata la progressiva integrazione tra dispositivi digitali di largo consumo e computer. Crearono così un codice di linguaggio di programmazione indipendente dai dispositivi denominato "Oak". Per dimostrare l'importanza di questo nuovo linguaggio per il futuro dei dispositivi digitali, il "Green Team" sviluppò un apparecchio portatile interattivo per i dispositivi di home-entertainment destinato al settore della televisione via cavo digitale. Tuttavia, l'idea era troppo avanzata per quei tempi e il settore della televisione via cavo digitale non era pronto per compiere il balzo in avanti che la tecnologia Java prospettava. Si scoprì invece che Internet era pronto per la nuova tecnologia e proprio in concomitanza con l'iniziale introduzione pubblica della rete nel 1995, il team fu in grado di annunciare che il browser Internet Netscape Navigator avrebbe incorporato la tecnologia Java. Attualmente, a quasi dieci anni dalla sua nascita, la piattaforma Java è stata scelta da più di 4 milioni di sviluppatori di software, viene utilizzata in tutto il mondo in tutti i principali settori industriali ed è presente in una vasta gamma di dispositivi, computer e reti basati su qualsiasi tecnologia di programmazione. Di fatto, per le sue caratteristiche di versatilità, efficienza, portabilità della piattaforma e sicurezza, Java è la tecnologia ideale per il network computing ed è per questo motivo che attualmente più di 2,5 miliardi di dispositivi sono basati sulla tecnologia Java: • • • • Più di 700 milioni di PC 708 milioni di telefoni cellulari e altri dispositivi portatili (fonte: Ovum) 1 miliardo di smart card Decoder, stampanti , web cam, giochi, sistemi di navigazione per veicoli, terminali delle lotterie, apparecchiature mediche, parchimetri e così via. Attualmente, la tecnologia Java viene applicata a una vasta gamma di reti e dispositivi, quali Internet, i supercomputer scientifici, i computer portatili, i telefoni cellulari, i simulatori di mercato di Wall Street, le console per videogiochi e le carte di credito, ovvero praticamente ovunque. Il miglior modo per visualizzare in anteprima queste applicazioni è visitare il sito java.com, un eccellente sito che offre una panoramica e numerose informazioni per le aziende, gli utenti e gli sviluppatori di software che utilizzano la tecnologia Java. Perché gli sviluppatori di software scelgono la tecnologia Java Il linguaggio di programmazione Java è stato accuratamente perfezionato, esteso, testato e provato da una comunità attiva di più di quattro milioni di sviluppatori di software. Matura, estremamente solida e sorprendentemente versatile, la tecnologia Java è diventata uno strumento prezioso che consente agli sviluppatori di: • • Scrivere software su una piattaforma con la possibilità di eseguirlo su qualsiasi altra piattaforma Creare programmi da eseguire all'interno di un browser Web • • • e di servizi Web Sviluppare applicazioni lato server per forum online, negozi, sondaggi, elaborazione di moduli HTML e molto altro ancora Combinare le applicazioni o i servizi basati sulla tecnologia Java per creare applicazioni o servizi altamente personalizzati Scrivere applicazioni potenti ed efficienti per telefoni cellulari, processori remoti, prodotti di consumo a basso costo e quasi tutti i dispositivi digitali Utilizzo dei JavaBean JavaBean sono componenti software contenenti una classe Java. Solitamente, vengono inseriti in un elemento contenitore (come un form) e svolgono funzioni che spaziano da una semplice animazione a calcoli complessi. Nella maggior parte dei casi si tratta di componenti grafiche che sono utilizzate come control all’interno di pagine JSP o programmi Java. Fra i JavaBean più diffusi troviamo strumenti di rappresentazione di grafici, progress bar, (barre di scorrimento) , calendari, orologi, calcolatrici. La possibilità di poter facilmente riutilizzare questi oggetti è molto importante, perché permette al programmatore di poter disporre velocemente di tutto un universo di librerie e soluzioni in continua crescita. Esistono migliaia di oggetti Java (a pagamento o gratuiti) che permettono di affrontare qualsiasi problematica: dalla lettura di un flusso XML alla comunicazione con le porte seriali, dall’invio di email alla gestione di server FTP. Qualunque problematica il programmatore debba risolvere, con molta probabilità esiste già un oggetto Java che può aiutarlo. Le componenti di un applicativo Le componenti fondamentali di un applicativo sono tre: # La logica, cioè il nucleo stesso dell’applicazione che determina la qualità del prodotto: # L’interfaccia, cioè la parte di codice che interagisce con l’utente e svolge un ruolo importantissimo nella vendita del prodotto, perché ne rappresenta l’aspetto esteriore; # L’accesso ai dati, cioè la parte di codice che deve occuparsi della gestione e del trattamento dei dati, e sempre molto più spesso anche di quelli messi a disposizione da altri software. Interoperabilità Negli ultimi tempi, per la diversificazione degli strumenti utilizzati nelle aziende, si è affermato un concetto molto importante: i dati devono essere accessibili indipendentemente dal software usato. Questo nuovo concetto, conosciuto come interoperabilità , ha favorito la diffusione dei database relazionali ed ha messo in discussione quegli applicativi scritti con linguaggi che offrono soltanto “filesystem” proprietari. Mediante le tecnologie offerte da Java, il concetto di interoperabiltà è oggi completamente attuabile e facilmente integrabile su qualsiasi realtà software anche di più vecchia generazione. Application Server L’Application Server è un software che fornisce l’infrastruttura e le funzionalità di supporto, sviluppo ed esecuzione di applicazioni e componenti server in un contesto distribuito. Si tratta di un complesso di servizi orientati alla realizzazione di applicazioni per il WEB, e non solo, con un alto grado di complessità ma nel contempo utilizzabili anche in contesti semplificati. E’ un ambiente centralizzato destinato allo sviluppo e all’implementazione di applicazioni per il business. Senza questa infrastruttura il software che gestisce l’azienda risulta disperso in posizioni isolate, condizione che rende la manutenzione più costosa, e gli upgrade più complessi, con effetti negativi sulle prestazioni. Le componenti L’Application Server è composto da moduli realizzati secondo standard ben definiti. I moduli normalmente presenti in un Application Server sono: - contenitore di componenti “Server-side” gestore degli accessi degli utenti e della sicurezza gestore delle transazioni gestione e accesso a database o in generale a sorgenti da dati esterne interfaccia per l’accesso ad un sistema “LEGACY” altri componenti per l’ottimizzazione delle prestazioni Java e .NET Attualmente le tecnologie su cui si possono basare gli Application Server sono Java e .NET. Java è decisamente più diffusa e annovera numerose implementazioni sia commerciali che “open source”. Gli standard di Java sono il risultato di un rapporto sinergico tra SUN (azienda americana leader nel settore) e la partecipazione libera di sviluppatori in tutto il mondo. Gli standard su cui si fonda la tecnologia .NET sono invece stabiliti direttamente da MICROSOFT. Nel mondo Java, gli Application Server compatibili con le specifiche di SUN sono detti Application Server J2EE. I vantaggi L’adozione dell’Application Server offre particolari benefici soprattutto nel settore dello sviluppo e della gestione integrata dei sistemi. I principali vantaggi possono essere così riassunti: - semplificazione delle attività di sviluppo software capacità di produrre velocemente applicazioni transazionali altamente scalabili utilizzo massivo della programmazione ad oggetti gestione delle transazioni che assicura l’integrità del dato accrescendo l’affidabilità saclabilità, partizionamento delle applicazioni e distribuzione delle componenti - alte prestazioni grazie al “multithreading” al “load balancing” al “caching” ed alla concessione ai database - estensibilità, robustezza e sicurezza. ----------------------------------------------