giovedì 28 aprile 2011

Enterprise Design: Service Layer

In ambito enterprise è molto comune poter distinguere operazioni che possono essere modellate come servizi ovvero funzionalità indipendenti e condivise da più moduli.

Nell'ambito della reingegnerizzazione del sistema informatico dell'azienda si è pensato di applicare alcuni principi di design cosidetti SOA (Service Oriented Archicture) e in particolare l'idea principale è stata la gestione del motore di ricerca dell'offerta turistica come modulo indipendente a tutti i sistemi.

Prima un pò di teoria.

I 4 principi del design SOA sono:

I confini devono essere espliciti
L'interfaccia del servizio deve essere semplice e chiara più che possibile e avere un approccio consistente con i dati scambiati.

I servizi sono autonomi
Il client deve essere in grado di collegarsi al servizio e con un'unica operazione atomica ottenere il risultato sperato.

I servizi condividono contratti e non classi
Il nucleo dell'architettura SOA è l'interoperabilità questa viene garantita con lo scambio di informazioni relative a come comunicare ma non dell'implementazione del servizio. Questo viene fatto tramite lo scambio di messaggi xml che sono neutrali rispetto alla piattaforma.

I servizi basano il loro consumo su regole di policy
I servizi dovrebbero esporre una policy su come devono essere usati e su questa i client basano il loro utilizzo.

L'interconnessione tra le applicazioni e i motori di ricerca aveva portato ad avere 5 implementazioni diverse di un oggetto che si occupasse dic ercare nella stessa base dati con tutti i relativi problemi di manutenzione e scalabilità.

Oggi è concluso il primo step del nuovo progetto.

Il motore di ricerca è quindi realizzato con la tecnologia Windows Communication Fondation 4.0, in ingresso si aspetta: un xml contentente i parametri di ricerca, il set corrente e la lunghezza in termini di risultati del set di risultati da esporre. In uscita i dati sono incapsulati in un vettore JSON.

Nessun commento: