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.

venerdì 22 aprile 2011

POCO vs Entity Framework

Se vi dovesse capitare il seguente errore: Mapping and metadata information could not be found for EntityType.

Sappiate che è quasi certamente dovuto alla non corrispondenza tra le classi del modello e il mapping di EF:
  1. Proprietà scritte male è case sensitive
  2. Proprietà mancanti
  3. Tipi non corrispondenti
  4. Enums nelle classi POCO che a oggi EF non supporta
A me sono servite 12 ore di craniate per scoprire dove era nascosto il problema.

giovedì 14 aprile 2011

Phonegap

Primi esperimenti con Phonegap uno strumento che permette di realizzare applicazioni mobile multipiattaforma. Per ora un primo esperimento Android e uno IPhone.
L'idea è utilizzarla per costruire due app per l'azienda.