
Data Source:
Il data source, per la precisione data intermediary, da noi creato ci permette di gestire in modo automatico un insieme di web services per il reperimento di contenuti. Per effettuare interrogazioni ai web services utilizziamo file di configurazione xml che permettono di interrogare ogni singolo webservice con i parametri da lui supportati. In seguito basandosi sul file di configurazione, viene creato in modo ricorsivo un file di elaborazione xslt che verra' processato con l'output di quel web services. Queste richieste prima di essere restituite verrano convertite e concatenate con quelle degli altri web services.
Application Logic:
L'application Logic a seconda del tipo della richiesta crea dinamicamente menu contestuali. Questi sono di tre tipi:
- - Top Ten di un genere
- - Libri correlati - Libri scritti dallo stesso autore
Application Controller:
L'application Controller legge da un catalogo xml gli url dei cataloghi del DS e del DF. Se si cerca un elenco l'AC interroga i vari DS prendendo le infomazioni necessarie nei rispettivi cataloghi costruendo un xml che concatena opportunamente i vari xml restituiti dai DS. Ciascun DS viene interrogato solo se supporta la ricerca voluta, altrimenti si passa al successivo.
Se si cerca una scheda l'AC interroga solo il DS che fornisce quella scheda. Una volta interrogati i DS l'AC prepara la richiesta per il formatter scelto (prendendo sempre tutto il necessario dai cataloghi). Per mantenere "variabili di sessione" come il layout corrente l'AC utilizza in maniera opportuna POST e GET. Se per esempio si effettua una ricerca per elenco e poi si cambia layout la ricerca non viene ripetuta perche' l'elenco viene "passato".
Formatter:
Il formatter chiama formatter-frammento e utilizzando Xpath inserisce in delle variabili i vari elementi da inserire nella pagina. Il formatter-frammento costruisce i vari "frammenti" utilizzando dei fogli xslt. Il layout finale e' a tre colonne, con a sinistra quick query e un "riassunto" dell'elenco, al centro il contenuto e a destra i menu contestuali.
