Servicegen - overview

versione: 3.3.0

SERVICEGEN è uno strumento di generazione di codice specifico per la produzione di interi progetti software che realizzano uno o pi� servizi secondo il paradigma SOA. Attualmente sono supportate due tecnologie target:

Lo strumento permette di definire uno o pi� servizi realizzati all'interno di un componente di prodotto, secondo gli standard di sviluppo e le linee guida vigenti in CSIPIEMONTE.

Il modello che descrive l'applicazione è:

Per ciascuna delle due modalità (C.S.I vs CXF) il progetto viene generato per produrre pacchetti funzionanti su una specifica target platform J2EE, a scelta tra:

Per ciascun componente è possibile definire uno o più definizioni di servizio, ciascuna delle quali è caratterizzata da:

Il componente, oltre a definire un certo numero di servizi, li espone (provides) affinchè possano essere fruiti da sistemi utilizzatori. Questa esposizione è effettuata tramite uno o più binding, che possono essere di quattro tipi (tre per la modalità C.S.I e uno per la modalità CXF):

  1. Modalità C.S.I
    1. Binding PA EJB: è il binding classico, sempre presente, rappresentato da una Porta Applicativa CSI basata su tecnologia EJB e interazione RMI con il fruitore;
    2. Binding Bridge di PA SOAP: è un binding opzionale che permette la fruizione del servizio da parte di un sistema (non necessariamente java) dotato di porta delegata soap;
    3. Binding front-adapter web-services: è un binding opzionale che permette la fruizione del servizio a tutti quei sistemi che non possono utilizzare una porta delegata ma che sono in grado di instaurare una comunicazione web-services rpc soap/http.
  2. Modalità CXF
    1. Binding WS: è il binding classico per i web services soap/http;

A fronte di una applicazione logicamente definita secondo il modello appena esposto, il generatore di applicazione genera progetti di forma differente a seconda che si utilizzi la cartuccia di generazione per C.S.I o per CXF.

generazione di servizi in modalità C.S.I

generazione di servizi in modalità CXF

Lo scenario di utilizzo dello strumento prevede quindi la generazione model driven con round-trip dei servizi: definendo incrementalmente il modello dell�applicazione (secondo il metamodello sepcifico di SERVICEGEN) è possibile generare una applicazione completa che può evolvere nel tempo con round trip monodirezionale modello->codice.

Compito dello sviluppatore è quello di arricchire il codice generato inserendo manualmente nelle apposite regioni protette il codice che implementa il servizio.

Nel caso si utilizzi SERVICEGEN per realizzare servizi di orchestrazione è possibile modellare l'orchestrazione, definendo:

Nel caso dei servizi di orchestrazione il generatore si preoccupa anche di gestire automaticamente:

Cosa cambia a livello di utilizzo nelle due modalità

Le due modalità di realizzazione dei servizi (C.S.I vs CXF) comportano differenze a livello di modellazione, istruzioni di generazione ed implementazione del codice custom. Di seguito le principali differenze.

differenze a livello di modellazione

aspettoCSICXFnote
libreria di tipi base basetypes.servicegen: libreria dei tipi base previsti dal framework di cooperazione applicativa CSI wsbasetypes.servicegen: libreria dei tipi base previsti dallo standard web-services le due modalità operano su typeset differenti: tutto ciò che fa riferimento a tipi deve adeguarsi al typeset adeguato alla modalità (nella definizione di parametri e valori di ritorno)
binding sono supportati i binding ejbpa, pabr, wsfad è supportato il solo binding di tipo ws La modalità CSI non � una modalità standard web services di conseguenza gli insiemi dei binding supportati dalle due modalità sono disgiunti

differenze a livello di generazione

aspettoCSICXFnote
cartuccia it/csi/mddtools/servicegen/workflow/csi14.mwe it/csi/mddtools/servicegen/cxf/cxf.mwe

Limitazioni

Allo stato attuale sono presenti le seguenti limitazioni: