Avanti Indietro Indice

3. Progetti ASF

Per quanto Apache sia probabilmente il più popolare, la Apache Software Foundation è la casa madre di molti altri progetti. Questa sezione fornisce una rassegna dei più rilevanti, organizzati con criterio logico. La maggioranza di essi appartiene al progetto Jakarta od al progetto XML. Il progetto Jakarta ospita i progetti basati su Java mentre il progetto XML ospita, manco a farlo apposta, i progetti collegati all'XML.

3.1 Applicazioni e Ambienti

I seguenti sono applicazioni e ambienti di sviluppo che fanno parte di ASF.

3.1.1 Server

I seguenti sono alcuni progetti ASF per il lato server.

Tomcat

Tomcat è la nave ammiraglia del progetto Jakarta. Costituisce l'implementazione ufficiale di riferimento per le tecnologie Servlet Java e JavaServer Pages.

Per saperne di più si consulti la homepage di Tomcat.

JAMES (Java Apache Mail Enterprise Server)

Complementare rispetto alle altre tecnologie Apache lato server, JAMES fornisce un server 100% Java, concepito come completa e portabile soluzione per un motore di posta per l'impresa, basato sui protocolli "aperti" attualmente disponibili (SMTP, POP3, IMAP, HTTP)

Maggiori informazioni si possono trovare qui.

Lucene

Jakarta Lucene è un motore per la ricerca testuale, ad alte prestazioni, perfettamente attrezzato, scritto in Java e parte del progetto Jakarta. Per maggiori informazioni si veda http://jakarta.apache.org/lucene/

Jetspeed

Jetspeed è un portale web scritto in Java. Possiede una API modulare che consente l'aggregazione di differenti fonti di dati (XML, SMTP, iCalendar)

3.1.2 Gestione dei contenuti

I seguenti sono progetti relativi alla gestione dei contenuti

Slide

Slide è un ambiente ad alto livello per la gestione dei contenuti. Concettualmente, fornisce un'organizzazione gerarchica del contenuto binario che può essere immagazzinato in archivi dati arbitrari, eterogenei e distribuiti. In aggiunta, Slide integra servizi di sicurezza, di bloccaggio e di versioning. Provvede anche all'implementazione server e client di WebDAV. Maggiori informazioni sulla home page di Slide

Alexandria

Alexandria è un sistema integrato di gestione della documentazione. Mette insieme tecnologie comuni a molti altri progetti open source come CVS e JavaDoc. L'intento è quello di integrare codice sorgente e documentazione per incoraggiare la documentazione e la condivisione del codice. Maggiori informazioni presso http://jakarta.apache.org/alexandria/index.html

3.1.3 Ambienti

I seguenti sono infrastrutture per lo sviluppo per applicazioni

Turbine

Turbine è un ambiente basato su servlet che permette a esperti sviluppatori Java di sviluppare rapidamente applicazioni web sicure. Turbine mette insieme una piattaforma per eseguire codice Java e componenti riutilizzabili. Alcune delle sue caratteristiche includono: integrazione con sistemi di template, sviluppo secondo il modello MVC, Access Control List, supporto per la localizzazione e così via. Maggiori informazioni si possono trovare sul sito web di Turbine.

Avalon

Per chi abbia familiarità con sistemi Perl o BSD, Avalon è grosso modo l'equivalente di CPAN o della collezione di Port per le tecnologie Java di Apache. Non si limita a fornire linee guida per un deposito comune di codice, ma va oltre: costituisce uno sforzo per creare, progettare, costruire e mantenere una infrastruttura comune per applicazioni server scritte usando il linguaggio Java. Fornisce i mezzi affinché progetti lato server in Java possano essere facilmente integrati e compilati l'uno sull'altro. Ulteriori informazioni si trovano sul sito web di Avalon.

3.2 Presentazione

I seguenti sono sistemi di template, motori di trasformazione e altri progetti relativi a presentazioni.

Cocoon

Cocoon trae vantaggio da altre tecnologie XML di Apache come Xerces, Xalan e FOP per fornire un completo ambiente XML per il publishing. L'ambiente può dialogare con molte fonti di dati diverse e può rendere il contenuto in svariati formati finali come PDF, HTML, XML e RTF. Può essere eseguito come servlet o come programma da linea di comando. È possibile saperne di più, riguardo a Cocoon, sulla homepage del progetto

Velocity

Velocity è un motore di template basato su Java. Può essere usato come utilità indipendente per generare codice sorgente, HTML, relazioni o può essere combinato con altri sistemi per fornire servizi di template. Velocity è basato sul paradigma "Model View Controller", che rafforza la separazione tra il codice Java e il template HTML. È possibile saperne di più su Velocity qui.

AxKit

AxKit è un popolare Application Server basato su XML per mod_perl e Apache. Consente la separazione tra contenuto e presentazione e permette la conversione al volo da XML a ogni altro formato.

Xalan

Xalan è un processore XSLT disponibile per Java e C++. XSL è un linguaggio stylesheet per XML. La T sta per Transformation. XML è valido per l'archiviazione di dati strutturati (informazioni). Talvolta può rendersi necessario visualizzare tali dati o applicare qualche altra trasformazione. Xalan prende il documento XML originale, legge la configurazione per le conversioni (stylesheet) e lo restituisce come HTML, testo semplice o come altro documento XML. Per saperne di più su Xalan si consultino le homepage dei progetti Xalan Java e Xalan C++.

FOP

Dal sito web: FOP è un'applicazione Java che legge l'albero degli oggetti di formattazione e lo trasforma in un documento PDF . FOP prende dunque un documento XML e lo restituisce come PDF, in modo simile a quanto fa Xalan con l'HTML o i file di testo. Per saperne di più su FOP si veda qui.

3.3 Parser e Librerie per l'Accesso ai Documenti

Le seguenti sono differenti librerie che possono essere usate per analizzare e manipolare una varietà di formati di documenti.

Xerces

Il progetto Xerces fornisce un parser XML per una varietà di linguaggi, inclusi Java, C++ e Perl. I binding Perl sono basati sui sorgenti C++. Un parser XML è uno strumento usato per l'accesso programmatico a documenti XML. Ecco una descrizione degli standard supportati da Xerces:

L'iniziale codice di base per il progetto XML di Xerces fu donato da IBM. Maggiori informazioni si possono ottenere presso le homepage Xerces Java, Xerces C++ e Xerces Perl .

Batik

Batik è un toolkit basato su Java per applicazioni che vogliano usare immagini nel formato Scalable Vector Graphics (SVG) per vari scopi come la visualizzazione, la generazione o la manipolazione.

È incentrato su XML e aderente alle specifiche W3C. È un po' atipico rispetto agli altri progetti Apache, in quanto fornisce un componente grafico. Batik fornisce degli hook per estendere la struttura tramite tag personalizzati e permette la conversione da SVG ad altri formati come JPEG o PNG. Si può saperne di più sulla homepage di Batik

POI

Il progetto POI consiste di API per manipolare vari formati di file basati sul formato OLE 2 Compound Document di Microsoft usando soltanto Java. Questo include i documenti Word e Excel. Si possono trovare maggiori informazioni presso http://jakarta.apache.org/poi/

3.4 Interoperabilità

Le seguenti sono librerie per la comunicazione remota e l'interoperabilità tra i server.

SOAP

Apache SOAP ("Simple Object Access Protocol") e Axis sono implementazioni del protocollo SOAP

SOAP è un protocollo leggero per lo scambio di informazioni in ambiente decentralizzato e distribuito. È un protocollo basato su XML che consiste di tre parti:

Fondamentalmente, si può pensare a SOAP come a un sistema di chiamate di procedura remota, basato su HTTP e XML. Da un lato questo comporta verbosità e lentezza rispetto ad altri sistemi. Dall'altro agevola l'interoperabilità, il debugging e lo sviluppo di client e di server per una varietà di linguaggi, dal momento che la maggioranza dei moderni linguaggi dispone di moduli HTTP e XML. Per saperne di più si veda la homepage di Apache SOAP

XML-RPC

Il progetto XML-RPC è un'implementazione Java del protocollo XML-RPC, un protocollo leggero simile a SOAP e suo predecessore.

Sicurezza XML

Il progetto sicurezza di XML fornisce la verifica della firma digitale dei documenti XML per lo scambio sicuro di documenti.

3.5 Sviluppo

Apache Portable Runtime

Il progetto APR fornisce uno strato di portabilità che astrae un certo numero di API per la manipolazione di file, l'accesso alla rete e così via. È scritto in C e funziona sulla maggior parte delle versioni di Unix, su Windows e una varietà di altri sistemi. Costituisce la base di Apache 2.0.

Ant

Ant è uno strumento di compilazione scritto in Java. Dispone di una API modulare e può essere esteso con la creazione di nuovi task. È governato da file di configurazione in XML.

Byte Code Library

La Byte Code Engineering Library (BCEL) è una libreria per analizzare, creare e manipolare i file binari delle classi Java.

Log4j

Questo pacchetto fornisce una infrastruttura per la gestione dei log compatibile con le applicazioni Java. Può essere abilitato all'avvio senza modificare il file binario ed è stato progettato con un occhio alle prestazioni. Può essere trovato presso http://jakarta.apache.org/log4j/

ORO and Regexp

ORO è un pacchetto completo che fornisce supporto alle espressioni regolari per Java. Include il supporto alle espressioni regolari Perl5, alle espressioni glob e così via. Il tutto sotto licenza Apache. Per saperne di più su ORO si veda http://jakarta.apache.org/oro/index.html. Un altro pacchetto leggero, della ASF, per espressioni regolari, è Regexp.

Struts

Struts è un progetto Apache che tenta di trasportare il paradigma progettuale Model-View-Controller (MVC) nello sviluppo web. È basato sulle tecnologie Servlet e JavaServer Pages. La parte "modello" è composta di oggetti Java lato server, che rappresentano lo stato interno dell'applicazione. La parte "vista" è costruita attraverso le JavaServer Pages (JSP), che sono una combinazione di HTML/XML statico e di Java. Le JSP permettono inoltre allo sviluppatore di definire nuovi tag. La parte "controller" consiste di servlet, che accolgono le richieste (GET/POST) del client, agiscono sul modello e aggiornano la vista fornendo la JSP appropriata. È possibile saperne di più sulla pagina del progetto Struts.

Taglibs

La tecnologia JavaServer Pages permette agli sviluppatori di aggiungere funzionalità tramite tag personalizzati. Il progetto Taglibs intende essere un archivio comune per tali estensioni. Include tag per utilità comuni (per es. date), per l'accesso a database SQL e così via.

Per saperne di più su TagLibs si veda http://jakarta.apache.org/taglibs/. Una più ampia documentazione è inclusa nel pacchetto.

Database

OJB è uno strumento per la mappatura di database che permette la persistenza e l'archiviazione di oggetti Java nei database relazionali. Xindice è un database nativo XML per l'archiviazione e l'interrogazione di documenti XML.

Commons

Il progetto Commons fornisce una grande varietà di componenti Java riutilizzabili con minime dipendenze.

3.6 Testing

I seguenti progetti ASF riguardano il testing e l'analisi delle prestazioni.

httpd-test

Il progetto httpd-test fornisce un ambiente di test per il server web Apache e strumenti come flood per il test del carico HTTP.

Cactus

Cactus è un ambiente di test per la verifica di codice Java lato server, come Servlet e EJB.

JMeter

È uno strumento per i test scritto in Java, con un'interfaccia grafica. Si può ottenere presso http://jakarta.apache.org/jmeter/.

Lakta

Lakta è uno strumento end-to-end di testing HTTP.

Watchdog

Il progetto Watchdog è un corredo di set per la convalida delle specifiche Servlet e JavaServer Pages.


Avanti Indietro Indice