Mokabyte

Dal 1996, architetture, metodologie, sviluppo software

  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti
  • Argomenti
    • Programmazione & Linguaggi
      • Java
      • DataBase & elaborazione dei dati
      • Frameworks & Tools
      • Processi di sviluppo
    • Architetture dei sistemi
      • Sicurezza informatica
      • DevOps
    • Project Management
      • Organizzazione aziendale
      • HR
      • Soft skills
    • Lean/Agile
      • Scrum
      • Teoria della complessità
      • Apprendimento & Serious Gaming
    • Internet & Digital
      • Cultura & Società
      • Conferenze & Reportage
      • Marketing & eCommerce
    • Hardware & Tecnologia
      • Intelligenza artificiale
      • UX design & Grafica
  • Ultimo numero
  • Archivio
    • Archivio dal 2006 ad oggi
    • Il primo sito web – 1996-2005
  • Chi siamo
  • Ventennale
  • Libri
  • Contatti

Nel numero:

98 luglio
, anno 2005

SOA come fondamento della Infrastruttura Enterprise

Service Oriented Architecture e Model Driven Architecture

Avatar
Doriano Gallozzi

Doriano Gallozzi è nato a Roma nel 1964 e si è laureato in Ingegneria Elettronica (indirizzo Informatica) nel 1989. Da sempre interessato a problematiche di analisi, progettazione e sviluppo di Sistemi Informativi, ha lavorato per diversi anni in aziende del settore informatico italiano (gruppo ENI, gruppo Telecom Italia), dove ha acquisito diverse esperienze tanto nel campo della progettazione e sviluppo del software (in ambiente M/F come in ambiente distribuito) quanto nel campo dei RDBMS (DBA su diversi progetti per clienti finali quali Telecom Italia). Da gennaio 2000 lavora nella Divisione Prevendita di Compuware Italia. La sua attività verte principalmente sulla piattaforma J2EE e tecnologie correlate, ma anche su ambiti tecnologici quali le soluzioni di Project Management per IT-Governance, i Portali Web, gli strumenti di Business Process Automation, l‘Enterprise Application Integration.

MokaByte

SOA come fondamento della Infrastruttura Enterprise

Service Oriented Architecture e Model Driven Architecture

Picture of Doriano Gallozzi

Doriano Gallozzi

  • Questo articolo parla di: Architetture dei sistemi, Programmazione & Linguaggi

Partire dai requisiti di business per costruire un modello che implementi in modo affidabile un‘architettura di tipo SOA. Troppo complesso? No, se partiamo col piede giusto! E‘ infatti di fondamentale importanza individuare e applicare un approccio metodologico completo, che parta dai requisiti di business, si traduca successivamente in una architettura solida e di qualità, possegga meccanismi per implementarla adeguatamente secondo quanto richiesto dalle specifiche SOA

Introduzione

L‘idea di mettere la nostra infrastruttura applicativa in grado di offrire i propri servizi ad altre applicazioni tramite rete è nata in ambito CORBA all‘inizio degli anni ‘90, ben prima dell‘avvento delle architetture cosiddette Service Oriented (abbreviate in SOA), in cui la “rete” (all‘epoca di CORBA denominata in modo abbastanza pittoresco “meganet”) è oggi la rete Internet (rif.[1]). In effetti in questi ultimi tempi si è parlato molto di SOA, grazie anche alla sempre maggiore diffusione della tecnologia Web Services, che proprio in ambito SOA giocano un ruolo da protagonisti. Tuttavia, pensare di implementare in modo efficiente e affidabile una SOA rivolgendo il proprio focus al solo sviluppo di Web Services non è la soluzione migliore. E‘ infatti di fondamentale importanza individuare e applicare un approccio metodologico completo, che parta dai requisiti di business, si traduca successivamente in una architettura solida e di qualità , possegga meccanismi per implementarla adeguatamente secondo quanto richiesto dalle specifiche SOA e porti a una infrastruttura applicativa facilmente manutenibile e, al tempo stesso, estremamente flessibile a rispondere a eventuali cambiamenti. Stiamo chiedendo un pò troppo? Forse no, e ne parleremo in questo articolo.

Service Oriented Architecture (SOA)

Con l‘avvento dei Web Services è nato un diverso e più evoluto modo di concepire la possibilità  di fornire servizi applicativi, sfruttando quel gigantesco canale di intercomunicazione che è la rete Internet. Come è noto, un Web Service non è molto diverso da un componente software “tradizionale”. Ciò che lo differenzia è un ristretto – ma significativo – insieme di caratteristiche, e cioè:

  • è univocamente individuato da un identificativo (detto URI, concettualmente analogo al ben noto URL)
  • la sua interfaccia è descritta in un file XML
  • può essere reperito da altri sistemi software

Gli Web Services giocano un ruolo centrale nelle cosiddette Service Oriented Architecture (SOA), di cui possono costituire i componenti base e in cui trovano definiti i propri elementi caratteristici, quali operazioni, tipi dati, indirizzi di rete ecc.
In generale, una SOA è sostanzialmente un sistema in cui sono definiti tre ruoli e tre operazioni, ossia:

Ruoli

  • Service Provider, chi fornisce il servizio e ne pubblica la descrizione per reperirlo
  • Service Consumer, chi usufruisce del servizio, in sostanza l‘applicazione che ne richiede una o più funzionalità 
  • Service Broker, chi gestisce le descrizioni dei servizi pubblicati, rendendole disponibili

Operazioni

  • Publish, azione tramite cui un servizio pubblica la propria descrizione (una sorta di “carta d‘identità  del servizio)
  • Find, azione tramite cui chi cerca un servizio “consulta” l‘insieme delle descrizioni disponibili
  • Bind, azione tramite cui chi ha trovato il servizio richiesto si “lega” a chi lo fornisce, usufruendone e in tal modo invocandone le funzionalità 

In figura 1 è riportata una schematizzazione della SOA.

Impiegare la SOA

D‘accordo, vada per la SOA per i nostri obiettivi di business, ma ecco immediatamente il problema successivo: come realizzarla in modo pratico, efficiente e soprattutto affidabile? In effetti, molti sono i casi in cui aziende di ragguardevoli dimensioni decidono di procedere a implementare architetture Service Oriented, ma lo fanno con strumenti tradizionali, spesso semplicemente “raccogliendo a piene mani” dal proprio parco applicativo una serie di componenti software e predisponendone l‘uso – in modo talora alquanto artigianale – a mò di Web Services. Va da sè che questo porta spesso a implementazioni frammentarie e alquanto costose (in termini di tempo e denaro) che, anche se più o meno compatibili con le specifiche tecniche di una SOA, perdono l‘allineamento con gli obiettivi di business che dovrebbero essere alla base di quanto una SOA dovrebbe poter offrire. In sostanza il problema non è soltanto di “promuovere in avanti” la propria infrastruttura a un livello SOA – ad esempio “pubblicando” sul Web i propri componenti – ma anche di “guardare indietro”, facendo in modo che essa rifletta in pieno, in modo efficace ed efficente, il proprio business. Il problema quindi comincia a cambiare formulazione: quale soluzione o metodologia scegliere per colmare questo gap tra business requirements e architettura IT, e che porti a una infrastruttura che sia “SOA-compliant”?

Il parere degli analisti

La risposta ci viene direttamente dal gran numero di storie di successo che documentano come un approccio basato su metodologie e tecniche di modellazione possa essere la strada ideale. Stiamo parlando di impiegare in modo pragmatico la Model Driven Architecture (MDA, vedere rif.[1] e rif.[2]). E‘ proprio grazie all‘impiego di tale metodologia che è possibile rendere veloce ed efficiente la realizzazione di potenti architetture di livello enterprise che se da una parte sono totalmente compatibili con i propri business requirements, dall‘altra sono completamente allineate con le specifiche tecniche richieste dalla SOA. Su questi aspetti diverse community di analisti si sono pronunciate in modo chiaro e dettagliato. Ad esempio, in uno studio condotto da Gartner Group (rif.[3]), gli autori descrivono una serie di risultati raccolti presso aziende che hanno impiegato con successo MDA nell‘ambito di tool cosiddetti ARAD (Architected Rapid Application Development). Secondo quanto affermano gli autori, il valore aggiunto di un simile approccio è dovuto a diversi fattori tra cui:

  • costi sostenuti minori rispetto al previsto (fino a un quinto del previsto budget per l‘intero sviluppo) per acquisizione di tool ARAD, compresi i costi di training
  • ROI maggiore del previsto, oltre il 900% in media
  • aumento della produttività  maggiore del previsto, grazie all‘impiego di tool e tecniche ARAD

Gli ARAD tool vengono considerati “facili da apprendere e in grado di garantire elevata produttività “. Le applicazioni sviluppate con tali tool sono considerate “rapide da mettere in esercizio, più performanti e di qualità  media elevata” (fig. 2).

Gartner Group non è la sola a descrivere questi aspetti. Uno studio pubblicato da Middleware Company (rif.[4]), mette a confronto, scegliendo una applicazione J2EE-tipo (la ben nota PetStore di Sun, vedere rif[5]), l‘impiego di un tool tradizionale e l‘impiego di un tool che adotta un approccio ARAD basato su tecniche di modellazione MDA. Il risultato – ampiamente documentato nello studio citato – è sorprendente: 35% di aumento della produttività  a favore del tool ARAD/MDA senza alcuna perdita di qualità . Un ulteriore studio, condotto dall‘azienda EDS, effettua un confronto tra il numero di linee di codice da scrivere manualmente necessarie a implementare la Java PetStore Application utilizzando uno strumento MDA e la quantità  di codice da scrivere impiegando un tool tradizionale. I risultati – 610 linee nel caso MDA, 14.273 nel caso IDE tradizionale – parlano da soli)

Modellare il business

Impiegare MDA in modo pragmatico significa unire alla potenza espressiva dei modelli l‘efficacia e l‘efficienza di quei meccanismi necessari a trasformare un modello in un altro – i cosiddetti transformation patterns – il cui ruolo chiave in ambito MDA è esemplificato nella figura 3.

In tal modo è possibile creare applicazioni complesse di livello enterprise attraverso l‘impiego di un insieme di modelli sviluppati a partire dai business requirements, e precisamente:

  • Un modello che riflette la struttura delle informazioni che l‘applicazione dovrà  utilizzare (Class Model)
  • Un modello che riflette gli aspetti comportamentali dell‘applicazione (Service Model)
  • Un modello che riflette l‘esatta sequenza in cui i diversi task devono essere eseguiti (Process Model)

In figura 4 un esempio di Class Model (UML Class Diagram)

In figura 5 un esempio di Process Model (UML Activity Diagram)

Il passo successivo: Business Process Automation

Una volta ottenuta una solida e stabile infrastruttura di livello enterprise in grado di mappare senza soluzione di continuità  i requisiti di business (punto di partenza) con le specifiche tecniche di una SOA (punto di arrivo), il passo successivo che consegue in modo logico consiste nell‘individuare e comprendere l‘esatta sequenza di componenti e sub-componenti necessari ad eseguire un determinato processo – fase detta tipicamente di orchestrazione (fig.6).

Siamo dunque arrivati a una architettura orientata al servizio (SOA), che grazie all‘impiego pragmatico di MDA riflette completamente il nostro business e che opera adesso come esecutore di processi aziendali attraverso un workflow engine basato sulla cosiddetta “orchestration technology”. Verrebbe quindi la curiosità  di estendere ulteriormente il discorso e di esplorare le potenzialità  di questo nuovo ambito, la cosiddetta Business Process Automation….ma questa è un‘altra storia, e ne parleremo prossimamente!

Conclusioni

Mettere in piedi una solida infrastruttura applicativa di livello enterprise in grado di implementare i propri processi di business in modo tanto efficiente da rispondere con prontezza agli eventuali cambiamenti, e che sia al tempo stesso in grado di offrire servizi all‘esterno – tramite il Web – nel modo previsto dalle specifiche SOA. Come risolvere questo problema in modo efficace ed efficiente? Impiegando la modellazione MDA in modo pragmatico, cioè assieme ai cosiddetti transformation patterns, necessari per mappare tra loro i modelli MDA. Nel presente articolo si è cercato di discutere come le diverse esigenze – tecnologiche da un lato, di business dall‘altro – potessero trovare in questo tipo di approccio una soluzione completa, affidabile ed estremamente flessibile, fino ad affacciarsi sulla soglia del passo immediatamente successivo, laddove i Processi di Business stessi vengano gestiti in modo “orchestrato”: la Business Process Automation.

Riferimenti

[1]
D. Frankel “SOA and MDA”, MDA Journal, June 2005
http://www.bptrends.com/

[2]
Mokabyte, “Uso della Model Driven Architecture nello Sviluppo di Applicazioni J2EE”, parte 1 e 2
https://www.mokabyte.it/2004/07/mda-1.htm
https://www.mokabyte.it/2004/09/mda-2.htm

[3]
M. Blechar – M. Hotle, “ARAD Methods and Tools: Improve Productivity and ROI”, Gartner Group, October 11, 2004

[4]
Middleware Company “Model Driven Development for J2EE utilizing a Model Driven Architecture (MDA) Approach”
http://www.compuware.com/products/optimalj/1794_ENG_HTML.htm

[5]
Sun Microsystems “The Java Petstore Application”
http://java.sun.com/developer/releases/petstore/

Avatar
Doriano Gallozzi

Doriano Gallozzi è nato a Roma nel 1964 e si è laureato in Ingegneria Elettronica (indirizzo Informatica) nel 1989. Da sempre interessato a problematiche di analisi, progettazione e sviluppo di Sistemi Informativi, ha lavorato per diversi anni in aziende del settore informatico italiano (gruppo ENI, gruppo Telecom Italia), dove ha acquisito diverse esperienze tanto nel campo della progettazione e sviluppo del software (in ambiente M/F come in ambiente distribuito) quanto nel campo dei RDBMS (DBA su diversi progetti per clienti finali quali Telecom Italia). Da gennaio 2000 lavora nella Divisione Prevendita di Compuware Italia. La sua attività verte principalmente sulla piattaforma J2EE e tecnologie correlate, ma anche su ambiti tecnologici quali le soluzioni di Project Management per IT-Governance, i Portali Web, gli strumenti di Business Process Automation, l‘Enterprise Application Integration.

Facebook
Twitter
LinkedIn
Picture of Doriano Gallozzi

Doriano Gallozzi

Doriano Gallozzi è nato a Roma nel 1964 e si è laureato in Ingegneria Elettronica (indirizzo Informatica) nel 1989. Da sempre interessato a problematiche di analisi, progettazione e sviluppo di Sistemi Informativi, ha lavorato per diversi anni in aziende del settore informatico italiano (gruppo ENI, gruppo Telecom Italia), dove ha acquisito diverse esperienze tanto nel campo della progettazione e sviluppo del software (in ambiente M/F come in ambiente distribuito) quanto nel campo dei RDBMS (DBA su diversi progetti per clienti finali quali Telecom Italia). Da gennaio 2000 lavora nella Divisione Prevendita di Compuware Italia. La sua attività verte principalmente sulla piattaforma J2EE e tecnologie correlate, ma anche su ambiti tecnologici quali le soluzioni di Project Management per IT-Governance, i Portali Web, gli strumenti di Business Process Automation, l‘Enterprise Application Integration.
Tutti gli articoli
Nello stesso numero
Loading...

Web Services: Il punto sulla standardizzazione

II parte: Specifiche di seconda generazione

Un Java Open Source

Una versione aperta della piattaforma Java?

Multimedialità su J2ME

III parte: Catturare, salvare e modificare una foto

Soluzioni Oracle per l‘alta affidabilità

Oracle Data Guard

MokaCMS: Open Source per il Web Content Management

VI parte: Da XML ad PDF utilizzando XSLT e FO (prima puntata)

Architetture e tecniche di progettazione EJB

I parte: Architettura di una applicazione tipo

Il networking in Java

I parte: le basi del networking

Nella stessa serie
Loading...

Il dilemma del prigioniero

Un “gioco serio” per comprendere la cooperazione

Accessibilità in team di prodotto: sfide, normative e best practice

II parte: Analisi di un caso reale

Adattare l’agilità ai contesti: una chiave di lettura

I parte: Un caso di studio con le sue peculiarità

Talento, performance, carriera: uno sguardo d’insieme

I parte: Che cosa è il talento?

Accessibilità in team di prodotto: sfide, normative e best practice

I parte: Cosa è l’accessibilità e perché implementarla

Il web al tempo della GEO (Generative Engine Optimization)

II parte: Strategie per strutturare i contenuti

Un backlog non tanto buono

II parte: Caratteristiche e ruolo del backlog.

FIWARE: Open APIs for Open Minds

V parte: Implementazione del sistema di ricarica

Il web al tempo della GEO (Generative Engine Optimization)

I parte: Struttura e ricerca delle informazioni

Un backlog non tanto buono

I parte: Un progetto con qualche difficoltà

DDD, microservizi e architetture evolutive: uno sguardo d’insieme

X parte: Il ruolo del Software Architect

FIWARE: Open APIs for Open Minds

IV parte: Sistema di ricarica intelligente per veicoli elettrici

Tra Play14 e serious gaming

Un ponte tra gioco e apprendimento

DDD, microservizi e architetture evolutive: uno sguardo d’insieme

IX parte: Event Sourcing is not Event Streaming

FIWARE: Open APIs for Open Minds

III parte: Tecnologie e implementazione

Agilità organizzativa

II parte: Qualche caso d’esempio

Agilità organizzativa

I parte: Individui e interazioni nelle aziende moderne

FIWARE: Open APIs for Open Minds

II parte: Generic Enablers per costruire ecosistemi smart

Intelligenza artificiale e industria

Riflessioni sull’uomo e sulla macchina

Effetto Forrester e dinamiche dei sistemi di produzione

La storiella di una birra per comprendere il Lean

DDD, microservizi e architetture evolutive: uno sguardo d’insieme

VIII parte: La filosofia dell’architettura del software

Digital revolution: trasformare le aziende in ecosistemi digitali

XVIII parte: Una piattaforma comune a tutti gli eventi

Scene dalla “neolingua”

Panoramica semiseria dell’incomunicabilità aziendale

Autenticazione schede elettorali… lean!

Simulazione lean nella gestione di un seggio

Mokabyte

MokaByte è una rivista online nata nel 1996, dedicata alla comunità degli sviluppatori java.
La rivista tratta di vari argomenti, tra cui architetture enterprise e integrazione, metodologie di sviluppo lean/agile e aspetti sociali e culturali del web.

Imola Informatica

MokaByte è un marchio registrato da:
Imola Informatica S.P.A.
Via Selice 66/a 40026 Imola (BO)
C.F. e Iscriz. Registro imprese BO 03351570373
P.I. 00614381200
Cap. Soc. euro 100.000,00 i.v.

Privacy | Cookie Policy

Contatti

Contattaci tramite la nostra pagina contatti, oppure scrivendo a redazione@mokabyte.it

Seguici sui social

Facebook Linkedin Rss
Imola Informatica
Mokabyte