CAPITOLO 4 – RISORSE: AMBIENTE DI SVILUPPO E LIBRERIE
4.1 STRUMENTI PER LO SVILUPPO
4.1.1 Java EE
Java Platform, Enterprise Edition (o Java EE) rappresenta lo standard di mercato per il Java computing aziendale. La piattaforma fornisce API e un ambiente di runtime per lo sviluppo e l’esecuzione di software, inclusi servizi di rete e web. Può essere visto come una estensione di Java Standard Edition (Java SE) con lo scopo di facilitare la creazione di applicazioni distribuite, robuste ed estremamente accessibili, riducendo il tempo di sviluppo, migliorando le prestazioni delle applicazioni e riducendone la complessità. Grazie a numerosi anni di esperienza, risulta essere una piattaforma con un’ampia community e ricca di documentazione. Java EE mette a disposizione degli standard che sono implementati da numerosi framework commerciali (WebLogic, Websphere, MQSeries) e open source (GlassFish, JBoss, Hibernate, Open JPA, Jersey) per la gestione di transazioni, sicurezza etc.. Il software per Java EE è principalmente sviluppato in linguaggio di programmazione Java. La applicazioni Java EE sono fatte di componenti, e ne vengono definiti quattro tipi:
Le applet sono applicazioni GUI che vengono eseguite in un browser web.
Le applicazioni sono programmi che vengono eseguiti su un client, ed in genere si tratta di GUI o programmi di elaborazione batch.
Le applicazioni Web (fatte da servlet, servlet filters, web event listener, pagine JSP e JSF) vengono eseguiti in un contenitore web e rispondono alle richieste HTTP dei client web.
Enterprise application (fatte da Enterprise Java Beans, Java Message Service, Java Transaction API, chiamate asincrone, servizio timer, RMI/IIOP) vengono eseguite in un contenitore EJB.
I componenti devono essere assemblati e rilasciati in un contenitore (container), ovvero ambienti runtime standardizzati che forniscono servizi specifici ai componenti, come sicurezza e gestione delle transazioni. Java EE include un insieme standard di tecnologie per lo sviluppo Java lato server, tra le quali Servlet, Java Server Pages (JSP), Java Server Faces (JSF), Enterprise JavaBeans (EJB), Java Messaging Service (JMS), Java Persistence API (JPA), Java API per servizi Web XML (JAX-WS ), e Java API per RESTful Web Services (JAX-RS).
4.1.2 Eclipse
Eclipse è un ambiente di sviluppo integrato (IDE) multilinguaggio e multipiattaforma scritto in Java. Nasce come evoluzione dell’ambiente di sviluppo per Java Visual Age di IBM, è diventato Open Source dal 2001 e dal 2003 è controllato dalla Eclipse Foundation, organizzazione no- profit indipendente alla quale appartengono, tra le altre, grandi società come Ericsson, HP, IBM ed Intel. Un aspetto importante è la possibilità di consentirne l’utilizzo per prodotti e servizi commerciali. La sua natura “open” lo ha reso quindi velocemente adattabile alle esigenze dei suoi utenti; originariamente è stato rilasciato sotto i termini della Common Public License e successivamente sotto la Eclipse Public License. Si tratta quindi di un software gratuito ed Open Source, anche se incompatibile con la GNU General Public License. Il kit di sviluppo software Eclipse (SDK) comprende gli strumenti necessari per la realizzazione di applicazioni Java. Eclipse è inoltre basato su un’architettura a plugin che lo rende fortemente modulare e liberamente espandibile dagli utilizzatori in modo da soddisfare le loro esigenze, e può quindi essere usato per sviluppare applicazioni anche in altri linguaggi di programmazione come Ada, ABAP, C, C++, COBOL, Fortran, Haskell, JavaScript, Lasso, Perl, PHP, Python, R, Ruby, Scala, Clojure, Groovy, Scheme, e Erlang. Il workspace permette la gestione delle risorse di utente che sono organizzate in uno o più progetti di massimo livello gerarchico. Eclipse supporta lo sviluppo per Tomcat, GlassFish e molti altri server e permette di installare il server desiderato direttamente dall’IDE. Per lo svolgimento del lavoro, è stato fatto uso di due plugin: WTP e ADT. Il progetto “Eclipse Web Tools Platform” estende la piattaforma Eclipse con dei tool dedicati allo sviluppo di applicazioni Web e Java EE, mentre il plugin “Android Developer Tools” fornisce una serie di strumenti che si integrano con l’IDE Eclipse, permettendo l’accesso a numerose funzioni che consentono lo sviluppo rapido di applicazioni per il sistema operativo Android. Entrambi includono editor (anche grafici) per differenti linguaggi di programmazione, wizard e applicazioni built-in per semplificare lo sviluppo, tool e API per il supporto alla fase di deployment, esecuzione e testing di applicazioni.
4.1.3 Database Oracle
Oracle è uno tra i più famosi database management system (DBMS), cioè sistema di gestione di basi di dati, scritto in linguaggio C. Oracle fa parte dei cosiddetti RDBMS (Relational DataBase Management System) ovvero di sistemi di database basati sul Modello relazionale che si è affermato come lo standard dei database dell'ultimo decennio. La società informatica che lo produce, la Oracle Corporation, è una delle più grandi del mondo. È stata fondata nel 1977 ed ha la sua sede centrale in California. Il fondatore nonché Chief Executive Officer ed importante azionista è Lawrence J. Ellison. La prima versione di Oracle risale al 1977, da allora sono state introdotte numerose modifiche e miglioramenti per seguire gli sviluppi tecnologici, fino ad arrivare alla versione 12c R1. Attualmente sono disponibili le seguenti edizioni:
“Enterprise Edition” (EE) è l'ideale per le industrie e grandi aziende;
“Standard Edition” (SE) è l'ideale per le medie aziende;
“Standard Edition One” progettato per le Medie Imprese e dipartimenti aziendali;
“Express Edition” (XE) è totalmente gratuito, orientato a studenti e programmatori.
Per la realizzazione del prototipo è stato fatto uso del sistema già presente nella struttura, mentre per effettuare delle operazioni di test in locale la scelta caduta su Oracle Database 11g Express Edition (Oracle Database XE). Si tratta di una edizione con alcuni limiti ma per il resto analoga e perfettamente compatibile con le altre versioni commerciali di Oracle: può salvare al massimo 11 gigabyte per ogni utente su disco, usa al massimo un gigabyte di memoria principale, una sola cpu, un host. È quindi sicuramente interessante per un utilizzo come ambiente di sviluppo, per usi accademici, nella distribuzione di applicazioni per ISV ecc. L’uso e la gestione del database è stata facilitata dall’ambiente di sviluppo integrato SQL Developer, il quale offre un supporto allo sviluppo delle applicazioni PL/SQL, un foglio di lavoro per l'esecuzione di query e script e una console DBA per la gestione del database. SQL Data Modeler invece ha permesso la creazione e l’esportazione degli schemi logici e la realizzazione del reverse engineering.